{"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.12.12"},"kaggle":{"accelerator":"none","dataSources":[{"sourceType":"datasetVersion","sourceId":14413364,"datasetId":9205632,"databundleVersionId":15229372},{"sourceType":"datasetVersion","sourceId":9966803,"datasetId":6131261,"databundleVersionId":10231149}],"dockerImageVersionId":31286,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false},"papermill":{"default_parameters":{},"duration":18.311274,"end_time":"2026-02-22T17:29:06.2761","environment_variables":{},"exception":null,"input_path":"__notebook__.ipynb","output_path":"__notebook__.ipynb","parameters":{},"start_time":"2026-02-22T17:28:47.964826","version":"2.6.0"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"75dcc2cc","cell_type":"markdown","source":"# Machine learning 1 :  Python, dataframes et graphiques (FR) v2_1 - corrigé\n\n```python\n# Imports: numpy pour le calcul numérique, matplotlib pour tracer, pandas pour les DataFrames, plotly pour les graphiques interactifs\n\nimport numpy as np\nimport matplotlib.pyplot as plt\n\nimport pandas as pd\n\nimport plotly.express as px\n```\n","metadata":{"papermill":{"duration":0.013089,"end_time":"2026-02-22T17:28:51.209015","exception":false,"start_time":"2026-02-22T17:28:51.195926","status":"completed"},"tags":[]}},{"id":"6b234f62-0a72-4309-a2f6-b93e1ca1d81e","cell_type":"code","source":"import numpy as np\nimport matplotlib.pyplot as plt\n\nimport pandas as pd\n\nimport plotly.express as px\n\nimport seaborn as sns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:30:45.328843Z","iopub.execute_input":"2026-05-06T02:30:45.329562Z","iopub.status.idle":"2026-05-06T02:30:45.334768Z","shell.execute_reply.started":"2026-05-06T02:30:45.329528Z","shell.execute_reply":"2026-05-06T02:30:45.333612Z"}},"outputs":[],"execution_count":3},{"id":"9bdab823","cell_type":"markdown","source":"## Introduction à Kaggle\n\nCe notebook est exécuté dans l’environnement **Kaggle**, une plateforme en ligne dédiée à la **science des données** et à l’**apprentissage automatique**.\n\nKaggle fournit :\n\n* un environnement Python prêt à l’emploi\n* des notebooks exécutables dans le navigateur\n* de nombreux jeux de données accessibles facilement\n* des ressources pédagogiques et des compétitions\n\n\n\n### Pourquoi utiliser Kaggle dans ce cours ?\n\nKaggle présente plusieurs avantages pédagogiques :\n\n* **Aucune installation locale requise**\n  Tout se fait via un navigateur web.\n\n* **Environnement standardisé**\n  Les bibliothèques courantes (NumPy, Pandas, scikit-learn, Plotly, etc.) sont déjà installées.\n\n* **Accès simple aux données**\n  Les datasets sont intégrés directement dans l’environnement du notebook.\n\n* **Reproductibilité**\n  Les résultats obtenus peuvent être reproduits à l’identique par tous les étudiants.\n\n\n\n### Organisation de l’environnement Kaggle\n\nDans un notebook Kaggle :\n\n* le code Python s’exécute sur un serveur distant\n* les données sont accessibles via un chemin standard, par exemple :\n\n  ```\n  /kaggle/input/nom-du-dataset/\n  ```\n* les fichiers générés pendant l’exécution sont stockés dans :\n\n  ```\n  /kaggle/working/\n  ```\n\nLes données présentes dans `/kaggle/input/` sont en lecture seule.","metadata":{"papermill":{"duration":0.009934,"end_time":"2026-02-22T17:28:53.935306","exception":false,"start_time":"2026-02-22T17:28:53.925372","status":"completed"},"tags":[]}},{"id":"79282f81","cell_type":"markdown","source":"## Rappels sur les notebooks Jupyter\n\nCe cours est présenté sous forme de **notebook Jupyter**, un environnement interactif combinant :\n\n* texte explicatif\n* formules mathématiques\n* code exécutable\n* visualisations\n\nIl est important de maîtriser les éléments de base pour suivre le notebook efficacement.\n\n\n\n### Types de cellules\n\nUn notebook est composé de **cellules**, qui peuvent être de différents types.\n\n#### Cellules de code\n\nLes cellules de code permettent d’écrire et d’exécuter du code Python.\n\n```python\nx = 2\nx + 3\n```\n\nLe résultat de la dernière instruction est affiché automatiquement.\n\n\n\n#### Cellules Markdown\n\nLes cellules Markdown servent à :\n\n* rédiger des explications\n* structurer le cours\n* afficher des formules mathématiques\n* insérer des images ou des liens\n\nElles ne contiennent pas de code exécutable.\n\n\n\n### Exécution d’une cellule\n\nPour exécuter une cellule (code ou Markdown) :\n\n* **Shift + Entrée**\n  Exécute la cellule et passe à la suivante\n\n* **Ctrl + Entrée**\n  Exécute la cellule sans changer de position\n\n* **Alt + Entrée**\n  Exécute la cellule et insère une nouvelle cellule en dessous\n\n\n\n### Ordre d’exécution\n\nLes cellules peuvent être exécutées **dans n’importe quel ordre**.\nCependant, les variables sont stockées en mémoire dans l’ordre d’exécution réel.\n\nIl est recommandé :\n\n* d’exécuter le notebook de haut en bas\n* de réexécuter toutes les cellules après une modification importante\n\n\n\n### Mise en forme avec Markdown\n\nMarkdown permet de structurer le texte simplement.\n\n#### Titres\n\n```markdown\n# Titre principal\n## Titre de section\n### Sous-section\n```\n\n\n#### Texte en gras et en italique\n\n```markdown\n**texte en gras**\n*texte en italique*\n```\n\n\n#### Listes\n\n```markdown\n- élément 1\n- élément 2\n```\n\nou\n\n```markdown\n1. élément 1\n2. élément 2\n```\n\n\n\n### Formules mathématiques\n\nLes formules utilisent la syntaxe LaTeX.\n\n* Formule en ligne :\n  `$a x + b$`\n\n* Formule centrée :\n\n```markdown\n$$\n\\hat{y} = a x + b\n$$\n```\n\n\n### Insertion d’images\n\nUne image peut être insérée dans une cellule Markdown :\n\n```markdown\n![description](chemin/vers/image.png)\n```\n\n![Logo Centrale Lille](https://centralelille.fr/wp-content/uploads/logo-centrale-lille-x2-2024.png)\n\nDans Kaggle, le chemin correspond généralement au dossier du dataset ou du notebook.\n\n\n\n### Bonnes pratiques\n\n* Séparer clairement les cellules de code et les cellules Markdown\n* Ajouter du texte explicatif avant le code\n* Exécuter régulièrement le notebook pour éviter les incohérences\n* Lire les messages d’erreur en cas de problème d’exécution\n\n```python\n2+2\n```\n","metadata":{"papermill":{"duration":0.010217,"end_time":"2026-02-22T17:28:53.955309","exception":false,"start_time":"2026-02-22T17:28:53.945092","status":"completed"},"tags":[]}},{"id":"46ccdfea-edbd-43c7-abb8-a86b306ab5fb","cell_type":"code","source":"2+2","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:41:13.870695Z","iopub.execute_input":"2026-05-06T02:41:13.871248Z","iopub.status.idle":"2026-05-06T02:41:13.877758Z","shell.execute_reply.started":"2026-05-06T02:41:13.871161Z","shell.execute_reply":"2026-05-06T02:41:13.876738Z"}},"outputs":[{"execution_count":4,"output_type":"execute_result","data":{"text/plain":"4"},"metadata":{}}],"execution_count":4},{"id":"b1e57759-af98-489c-b0b5-021f3767513e","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"id":"ce3d08a3","cell_type":"markdown","source":"## Rappels de base en Python\n\nCe notebook suppose une connaissance élémentaire de Python.\nLa section suivante propose un rappel des notions **strictement nécessaires** pour comprendre et écrire le code utilisé par la suite (manipulation de données, calculs numériques, modèles simples).\n\n\n### Variables et types de base\n\nPython est un langage à typage dynamique : le type est associé à la valeur, pas à la variable.\n\n```python\na = 3          # entier\nb = 2.5        # réel\nc = \"Python\"   # chaîne de caractères\nd = True       # booléen\n```\n\nTypes couramment utilisés :\n\n* `int`\n* `float`\n* `str`\n* `bool`\n\n\n### Listes\n\nLes listes permettent de stocker des collections ordonnées d’éléments.\n\n```python\nvalues = [1, 2, 3, 4, 5]\n```\n\nAccès aux éléments :\n\n```python\nvalues[0]     # premier élément\nvalues[-1]    # dernier élément\nvalues[1:4]   # sous-liste\n```\n\n\n### Boucles `for`\n\nLa boucle `for` permet de parcourir une collection.\n\n```python\nfor v in values:\n    print(v)\n```\n\n\n### Boucle `for` avec `range`\n\nLa fonction `range` génère une suite d’entiers.\n\n```python\nfor i in range(5):\n    print(i)\n```\n\n* commence à 0\n* s’arrête avant la valeur finale\n\nAutres formes :\n\n```python\nfor i in range(2, 6):\n    print(i)\n\nfor i in range(0, 10, 2):\n    print(i)\n```\n\nOn peut créer une liste simplement :\n```python\nlist(range(0, 10, 2))\n```\n\n### Boucle `while`\n\nLa boucle `while` répète un bloc de code tant qu’une condition est vraie.\n\n```python\ncount = 0\n\nwhile count < 5:\n    print(count)\n    count += 1\n```\n\nLa condition doit évoluer pour éviter une boucle infinie.\n\n\n\n### Conditions\n\nLes structures conditionnelles permettent d’exécuter du code selon une condition logique.\n\n```python\nif a > 0:\n    print(\"a est positif\")\nelif a == 0:\n    print(\"a est nul\")\nelse:\n    print(\"a est négatif\")\n```\n\n### Opérateurs booléens\n\nLes opérateurs booléens permettent de **combiner plusieurs conditions**.\n\n```python\nand   # ET logique\nor    # OU logique\nnot   # NON logique\n```\n\nExemples :\n\n```python\nx = 7\n\nx > 0 and x < 10     # True\nx < 0 or x > 5       # True\nnot (x == 7)         # False\n```\n\nCes opérateurs sont très utilisés dans les conditions (`if`, `while`).\n\n\n\n### Exemple \n\n```python\nx = 12\n\nif x % 2 == 0 and x > 10:\n    print(\"x est pair et strictement supérieur à 10\")\n\n# ('%' est l'opérateur de calcul du reste de la division entière) \n```\n\n\n### Fonctions\n\nLes fonctions permettent de structurer et de réutiliser du code.\n\n```python\ndef square(x):\n    return x ** 2\n```\n\n\n### Import de modules\n\nLes fonctionnalités avancées sont fournies par des bibliothèques.\n\n```python\nimport math\nimport numpy as np\n```\n\nIl est courant d’utiliser des alias (`np` pour NumPy).\n\n\n### Commentaires\n\nLes commentaires servent à documenter le code.\n\n```python\n# Ceci est un commentaire\n```\n\n\n### Indentation\n\nL’indentation est **syntaxiquement obligatoire** en Python.\n\n```python\nif a > 0:\n    print(\"ok\")\n```\n\nUne indentation incorrecte provoque une erreur.\n","metadata":{"papermill":{"duration":0.00984,"end_time":"2026-02-22T17:28:54.005783","exception":false,"start_time":"2026-02-22T17:28:53.995943","status":"completed"},"tags":[]}},{"id":"c86975f1","cell_type":"markdown","source":"> **Tester ci-dessous**","metadata":{"papermill":{"duration":0.009786,"end_time":"2026-02-22T17:28:54.026056","exception":false,"start_time":"2026-02-22T17:28:54.01627","status":"completed"},"tags":[]}},{"id":"b378bb03-f649-4fd8-88b1-a81192f089ee","cell_type":"code","source":"liste = [1,2,3,4,5]\n\nfor i in range(5) :\n    print(liste[i])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:45:12.643348Z","iopub.execute_input":"2026-05-06T02:45:12.643946Z","iopub.status.idle":"2026-05-06T02:45:12.649269Z","shell.execute_reply.started":"2026-05-06T02:45:12.643914Z","shell.execute_reply":"2026-05-06T02:45:12.647992Z"}},"outputs":[{"name":"stdout","text":"1\n2\n3\n4\n5\n","output_type":"stream"}],"execution_count":11},{"id":"bd5cf482-7c27-457f-a89b-f4a6e0dd221a","cell_type":"code","source":"liste[-1]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:42:44.808175Z","iopub.execute_input":"2026-05-06T02:42:44.808606Z","iopub.status.idle":"2026-05-06T02:42:44.814983Z","shell.execute_reply.started":"2026-05-06T02:42:44.808574Z","shell.execute_reply":"2026-05-06T02:42:44.813962Z"}},"outputs":[{"execution_count":9,"output_type":"execute_result","data":{"text/plain":"5"},"metadata":{}}],"execution_count":9},{"id":"635af2d2-bde0-4961-91ea-acb51a43e06a","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"fc434040-cc79-465c-8d48-b1dd61e3cde4","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"3f1c2fbf-a3f3-4123-aaa0-f36aeaf94b44","cell_type":"markdown","source":"### 💡 Syntaxe à reprendre\n\n_Repère syntaxique pour aborder l'exercice ci-dessous._\n\n```python\nvalues = list(range(1, 11))\nfor v in values:\n    if v % 2 == 0:\n        print(v)\ntotal = 0\nfor i in range(1, 11):\n    total += i\ntotal\n```\n","metadata":{}},{"id":"3c00bfb0","cell_type":"markdown","source":"> #### Exercice — Rappels Python (sans NumPy)\n>\n>\n> Cet exercice a pour objectif de vérifier la maîtrise des constructions de base de Python nécessaires pour la suite du notebook.\n>\n>\n> **Questions**\n>\n> 1. Créer une liste contenant les nombres de 1 à 10.\n>\n> 2. À l’aide d’une boucle `for`, afficher uniquement les nombres pairs de cette liste.\n>\n> 3. À l’aide d’une boucle `for in range`, calculer la somme des entiers de 1 à 10.\n>\n> 4. Écrire une fonction `mean(values)` qui :\n>\n>    * prend en entrée une liste de nombres\n>    * retourne la moyenne de ces nombres\n>\n> 5. À l’aide d’une boucle `while`, afficher les nombres de 5 à 1 dans l’ordre décroissant.\n>","metadata":{"papermill":{"duration":0.010467,"end_time":"2026-02-22T17:28:54.126198","exception":false,"start_time":"2026-02-22T17:28:54.115731","status":"completed"},"tags":[]}},{"id":"5868a23f-fe7c-4271-83d5-c357c43b5c24","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"56ce2be8-108e-4970-9f74-3072456f9521","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"b98af2a9-e479-4ea4-b869-3a5f0faec705","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"5780c4fd","cell_type":"markdown","source":"## Tableaux et matrices avec Numpy\n\nNumPy permet de manipuler efficacement des **vecteurs** (tableaux 1D) et des **matrices** (tableaux 2D), ainsi que d’effectuer des opérations mathématiques vectorisées.\n\n\n### Vecteurs et matrices\n\nUn **vecteur** est un tableau 1D :\n\n```python\nx = np.array([1, 2, 3, 4])\n```\n\nUne **matrice** est un tableau 2D :\n\n```python\nX = np.array([\n    [1, 2],\n    [3, 4],\n    [5, 6]\n])\n```\n\n\n### Forme d’un tableau (`shape`)\n\n```python\nx.shape\nX.shape\n```\n\n* un vecteur a une forme `(n,)`\n* une matrice a une forme `(n_lignes, n_colonnes)`\n\nLa forme est essentielle pour vérifier la compatibilité des opérations.\n\n\n\n### Changement de forme avec `reshape`\n\nLa méthode `reshape` permet de **modifier la forme d’un tableau** sans changer ses valeurs.\n\n```python\nx = np.arange(1, 11)\nX = x.reshape(5, 2)\n```\n\n* `x` contient 10 éléments\n* `X` est une matrice de 5 lignes et 2 colonnes\n* le nombre total d’éléments doit rester identique\n\n```python\nx.size == X.size\n```\n\n`reshape` est souvent utilisé pour passer :\n\n* d’un vecteur à une matrice\n* d’une représentation linéaire à une représentation tabulaire\n\n\n\n### Sommes et moyennes\n\n```python\nnp.sum(x)\nnp.mean(x)\n```\n\nPour une matrice, il est possible de préciser l’axe :\n\n```python\nnp.sum(X, axis=0)  # somme par colonne\nnp.sum(X, axis=1)  # somme par ligne\n```\n\n\n### Produit scalaire (dot product)\n\nLe **produit scalaire** entre deux vecteurs est une opération fondamentale en régression linéaire.\n\n```python\nu = np.array([1, 2, 3])\nv = np.array([4, 5, 6])\n\nnp.dot(u, v)\n```\n\nIl correspond à :\n\n$$\nu \\cdot v = \\sum_i u_i v_i\n$$\n\n\n\n### Multiplication matrice-vecteur\n\n```python\nX = np.array([\n    [1, 2],\n    [3, 4],\n    [5, 6]\n])\n\nw = np.array([0.5, 1.0])\n\nX @ w\n```\n\nCette opération est centrale dans les modèles linéaires :\n\n$$\n\\hat{y} = X w\n$$\n\n\n\n### Différence entre `*` et `@`\n\n```python\nX * w    # multiplication élément par élément\nX @ w    # produit matrice-vecteur\n```\n\n* `*` : opération élément par élément\n* `@` : produit matriciel\n\n\n### Opérations élément par élément\n\n```python\nx + 1\nx * 2\nx ** 2\n```\n\nCes opérations sont vectorisées et remplacent les boucles explicites.\n","metadata":{"papermill":{"duration":0.01012,"end_time":"2026-02-22T17:28:54.240665","exception":false,"start_time":"2026-02-22T17:28:54.230545","status":"completed"},"tags":[]}},{"id":"ed237360","cell_type":"markdown","source":"> Tester ci-dessous","metadata":{"papermill":{"duration":0.010539,"end_time":"2026-02-22T17:28:54.261854","exception":false,"start_time":"2026-02-22T17:28:54.251315","status":"completed"},"tags":[]}},{"id":"ad63f7e1-8c74-49d6-ad9b-8577979a2d18","cell_type":"code","source":"u = np.array([1, 2, 3])\nv = np.array([4, 5, 6])\n\nnp.dot(u, v)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:50:41.488916Z","iopub.execute_input":"2026-05-06T02:50:41.489377Z","iopub.status.idle":"2026-05-06T02:50:41.496125Z","shell.execute_reply.started":"2026-05-06T02:50:41.489345Z","shell.execute_reply":"2026-05-06T02:50:41.495430Z"}},"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"np.int64(32)"},"metadata":{}}],"execution_count":22},{"id":"3467561d-f666-4aab-a6c5-716a36259ffa","cell_type":"code","source":"X = np.array([\n    [1, 2],\n    [3, 4],\n    [5, 6]\n])\n\nw = np.array([0.5, 1.0])\n\nX @ w","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:51:25.180376Z","iopub.execute_input":"2026-05-06T02:51:25.180919Z","iopub.status.idle":"2026-05-06T02:51:25.188277Z","shell.execute_reply.started":"2026-05-06T02:51:25.180880Z","shell.execute_reply":"2026-05-06T02:51:25.187540Z"}},"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":"array([2.5, 5.5, 8.5])"},"metadata":{}}],"execution_count":23},{"id":"b1cd2ae1-6e60-40b9-b5aa-d93b21c83f65","cell_type":"code","source":"X = np.array([\n    [1, 2],\n    [3, 4],\n    [5, 6]\n])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:47:37.889071Z","iopub.execute_input":"2026-05-06T02:47:37.890270Z","iopub.status.idle":"2026-05-06T02:47:37.895122Z","shell.execute_reply.started":"2026-05-06T02:47:37.890230Z","shell.execute_reply":"2026-05-06T02:47:37.894059Z"}},"outputs":[],"execution_count":12},{"id":"a569cb60-05e6-43be-8441-7397edc1b329","cell_type":"code","source":"x = np.arange(1,12)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:49:26.862717Z","iopub.execute_input":"2026-05-06T02:49:26.863106Z","iopub.status.idle":"2026-05-06T02:49:26.868436Z","shell.execute_reply.started":"2026-05-06T02:49:26.863069Z","shell.execute_reply":"2026-05-06T02:49:26.867271Z"}},"outputs":[],"execution_count":18},{"id":"9014c7fa-f1db-4c2d-bcd8-a6f7029ea7f8","cell_type":"code","source":"x.std()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:49:42.011973Z","iopub.execute_input":"2026-05-06T02:49:42.012345Z","iopub.status.idle":"2026-05-06T02:49:42.018163Z","shell.execute_reply.started":"2026-05-06T02:49:42.012316Z","shell.execute_reply":"2026-05-06T02:49:42.017276Z"}},"outputs":[{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"np.float64(3.1622776601683795)"},"metadata":{}}],"execution_count":21},{"id":"5efea671-04ad-41c1-9bb0-9ae77e09fd2d","cell_type":"code","source":"y = X.reshape(6)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:48:08.564769Z","iopub.execute_input":"2026-05-06T02:48:08.565960Z","iopub.status.idle":"2026-05-06T02:48:08.570789Z","shell.execute_reply.started":"2026-05-06T02:48:08.565905Z","shell.execute_reply":"2026-05-06T02:48:08.569713Z"}},"outputs":[],"execution_count":15},{"id":"0690b7bf-2da7-4e15-a9e3-17041af5847f","cell_type":"code","source":"y.reshape(2,3)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:48:17.617543Z","iopub.execute_input":"2026-05-06T02:48:17.618163Z","iopub.status.idle":"2026-05-06T02:48:17.624575Z","shell.execute_reply.started":"2026-05-06T02:48:17.618130Z","shell.execute_reply":"2026-05-06T02:48:17.623633Z"}},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"array([[1, 2, 3],\n       [4, 5, 6]])"},"metadata":{}}],"execution_count":16},{"id":"991a8194-ed6b-4ad6-b4e1-9e2fa866c7c5","cell_type":"markdown","source":"### 💡 Syntaxe à reprendre\n\n_Repère syntaxique pour aborder l'exercice ci-dessous._\n\n```python\nx = np.array([1, 2, 3, 4, 5, 6])\ntotal_sum = np.sum(X)\nsum_columns = np.sum(X, axis=0)\nsum_rows = np.sum(X, axis=1)\nw = np.array([0.5, 1.0])\ny_hat = X @ w\nelementwise = X * w\nmatmul = X @ w\n(X, total_sum, sum_columns, sum_rows, y_hat, elementwise, matmul)\n```\n","metadata":{}},{"id":"ac61ca0b","cell_type":"markdown","source":"> #### Exercice — Opérations sur vecteurs et matrices (NumPy)\n>\n>\n> Cet exercice a pour objectif de manipuler des vecteurs et des matrices avec NumPy, sans utiliser de boucles, afin de préparer les calculs utilisés en régression linéaire.\n>\n>\n> **Données**\n>\n> On considère le vecteur :\n>\n> ```python\n> x = np.array([1, 2, 3, 4, 5, 6])\n> ```\n>\n>\n> **Questions**\n>\n> 1. Transformer le vecteur `x` en une matrice `X` de forme `(3, 2)` à l’aide de `reshape`.\n>\n> 2. Calculer :\n>\n>    * la somme de tous les éléments de `X`\n>    * la somme par colonne\n>    * la somme par ligne\n>\n> 3. Soit le vecteur de coefficients :\n>\n> ```python\n> w = np.array([0.5, 1.0])\n> ```\n>\n> Calculer le produit matrice–vecteur :\n>\n> ```python\n> X @ w\n> ```\n>\n> 4. Vérifier la différence entre :\n>\n> ```python\n> X * w\n> X @ w\n> ```\n>\n> et expliquer brièvement le résultat observé.\n>","metadata":{"papermill":{"duration":0.010313,"end_time":"2026-02-22T17:28:54.322985","exception":false,"start_time":"2026-02-22T17:28:54.312672","status":"completed"},"tags":[]}},{"id":"f46983a4-549b-48c9-b544-94b95d280ee8","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"dbf818a9","cell_type":"markdown","source":"## Dataframes","metadata":{"papermill":{"duration":0.010304,"end_time":"2026-02-22T17:28:54.380047","exception":false,"start_time":"2026-02-22T17:28:54.369743","status":"completed"},"tags":[]}},{"id":"950bf468","cell_type":"markdown","source":"### `pd.read_csv(...)` : lire un fichier CSV dans un DataFrame\n\n`pandas.read_csv` est la porte d’entrée classique pour transformer un fichier texte (CSV, TSV, etc.) en **DataFrame** (une table en mémoire).\n\n**Idée générale**  \n- Le fichier contient des lignes (observations) et des colonnes (variables).  \n- `read_csv` détecte un séparateur, lit les valeurs, gère les valeurs manquantes, et renvoie un objet `DataFrame`.\n\n**Exemple**  \n```python\ndf = pd.read_csv('/kaggle/input/mini-datasets/co2_mini.csv')\n```\n\n**Paramètres importants à connaître (même si on ne les utilise pas ici)**  \n- `sep=','` : séparateur (utile si c’est `;` ou `\\t`)  \n- `encoding='utf-8'` : encodage du fichier (utile si accents)\n\n**Résultat**  \n`df` est un DataFrame. \n","metadata":{"papermill":{"duration":0.010127,"end_time":"2026-02-22T17:28:54.400628","exception":false,"start_time":"2026-02-22T17:28:54.390501","status":"completed"},"tags":[]}},{"id":"a17138bd","cell_type":"markdown","source":"### Charger un dataset Kaggle avec `read_csv`\n\nDans un notebook Kaggle, les datasets ajoutés au notebook sont automatiquement montés dans un répertoire spécifique. Pour pouvoir les utiliser avec `pandas.read_csv`, il est nécessaire de connaître leur chemin exact.\n\n#### 1. Ajouter le dataset au notebook\n\nAvant toute chose, il faut ajouter le dataset :\n\n1. Ouvrir le notebook Kaggle\n2. Dans le panneau de droite, cliquer sur **Add data**\n3. Rechercher le dataset souhaité\n4. Cliquer sur **Add**\n\nUne fois ajouté, le dataset est accessible en lecture seule.\n\n#### 2. Trouver le chemin du fichier\n\nTous les datasets ajoutés sont disponibles dans le répertoire :\n\n```\n/kaggle/input/\n```\n\nChaque dataset correspond à un sous-dossier, dont le nom est basé sur l’identifiant Kaggle du dataset.\n\n#### Récupérer le chemin exact d’un fichier CSV via l’explorateur de fichiers Kaggle\n\n1. Ouvrir l’onglet **Data** dans le panneau de droite\n2. Déplier le dossier du dataset\n3. Localiser le fichier CSV\n4. Survoler le nom du fichier avec la souris\n5. Une icône apparaît alors à droite du nom du fichier\n6. Cliquer sur cette icône pour copier automatiquement le chemin complet du fichier\n\nExemple de chemin :\n\n```\n/kaggle/input/mini-datasets/co2_mini.csv\n```\n","metadata":{"papermill":{"duration":0.010598,"end_time":"2026-02-22T17:28:54.421652","exception":false,"start_time":"2026-02-22T17:28:54.411054","status":"completed"},"tags":[]}},{"id":"b31d2b19","cell_type":"markdown","source":"> Tester ci-dessous\n\n```python\n# Lecture du fichier CSV dans un DataFrame pandas\n# Compléter avec le bon chemin\ndf = pd.read_csv('/kaggle/input/datasets/pyim59/mini-datasets/co2_mini.csv')\n```\n","metadata":{"papermill":{"duration":0.010034,"end_time":"2026-02-22T17:28:54.441817","exception":false,"start_time":"2026-02-22T17:28:54.431783","status":"completed"},"tags":[]}},{"id":"7586d217-d1a7-4078-b5dc-5cc149b4b6ad","cell_type":"code","source":"df = pd.read_csv('/kaggle/input/datasets/pyim59/mini-datasets/co2_mini.csv')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:55:19.926315Z","iopub.execute_input":"2026-05-06T02:55:19.926842Z","iopub.status.idle":"2026-05-06T02:55:19.954282Z","shell.execute_reply.started":"2026-05-06T02:55:19.926800Z","shell.execute_reply":"2026-05-06T02:55:19.953339Z"}},"outputs":[],"execution_count":24},{"id":"136fa858-3c63-44af-a57e-5a59bf7ce2f0","cell_type":"code","source":"df.head(10)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:55:41.423505Z","iopub.execute_input":"2026-05-06T02:55:41.424013Z","iopub.status.idle":"2026-05-06T02:55:41.433079Z","shell.execute_reply.started":"2026-05-06T02:55:41.423980Z","shell.execute_reply":"2026-05-06T02:55:41.432273Z"}},"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":"   consumption  co2\n0          8.5  196\n1          9.6  221\n2          5.9  136\n3         11.1  255\n4         10.6  244\n5         10.0  230\n6         10.1  232\n7         11.1  255\n8         11.6  267\n9          9.2  212","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>consumption</th>\n      <th>co2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>8.5</td>\n      <td>196</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>9.6</td>\n      <td>221</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>5.9</td>\n      <td>136</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>11.1</td>\n      <td>255</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>10.6</td>\n      <td>244</td>\n    </tr>\n    <tr>\n      <th>5</th>\n      <td>10.0</td>\n      <td>230</td>\n    </tr>\n    <tr>\n      <th>6</th>\n      <td>10.1</td>\n      <td>232</td>\n    </tr>\n    <tr>\n      <th>7</th>\n      <td>11.1</td>\n      <td>255</td>\n    </tr>\n    <tr>\n      <th>8</th>\n      <td>11.6</td>\n      <td>267</td>\n    </tr>\n    <tr>\n      <th>9</th>\n      <td>9.2</td>\n      <td>212</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":26},{"id":"62f35809","cell_type":"markdown","source":"### `df.head()` : un “coup d’œil” sur les premières lignes\n\n`head()` affiche par défaut les **5 premières lignes** d’un DataFrame. C’est un réflexe utile juste après un `read_csv` pour répondre à 3 questions :\n\n- Les **noms de colonnes** sont-ils corrects ?\n- Les **valeurs** ressemblent-elles à ce qu’on attend (pas de virgule mal lue, pas de colonne décalée) ?\n- Les **types** ont-ils l’air cohérents (nombres bien lus comme nombres) ?\n\nExemples :\n```python\ndf.head()      # 5 lignes\ndf.head(10)    # 10 lignes\n```\n\nAstuce : si `head()` montre des `NaN` ou des valeurs bizarres, on revient souvent à `sep`, `decimal`, `encoding` ou `na_values` dans `read_csv`.\n\n```python\n# Affiche les 5 premières lignes du DataFrame pour vérifier l'import\ndf.head()\n```\n","metadata":{"papermill":{"duration":0.010127,"end_time":"2026-02-22T17:28:54.508869","exception":false,"start_time":"2026-02-22T17:28:54.498742","status":"completed"},"tags":[]}},{"id":"ed2d5c46-a450-45ba-9b9f-440fe70487e6","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"0b56595d","cell_type":"markdown","source":"### Le dataset `co2_mini` \n\nDeux colonnes :\n- **`consumption`** : Consommation en L/100km \n- **`co2`** : co2 (Émissions en g/km)\n\nCe dataset est dérivé de \"CO2 Emission by Vehicles\" (mesures réelles de véhicules)\nCe sous-ensemble ne contient que les véhicules utilisant de l'Essence Super (Type 'Z') pour illustrer une corrélation nette.","metadata":{"papermill":{"duration":0.010055,"end_time":"2026-02-22T17:28:54.581614","exception":false,"start_time":"2026-02-22T17:28:54.571559","status":"completed"},"tags":[]}},{"id":"bae98b9e","cell_type":"markdown","source":"### Exploration rapide du dataframe\n\n#### Dimensions du DataFrame\n\n```python\ndf.shape\n```\n\n* Retourne un **tuple** de la forme :\n\n[\n(\\text{nombre_de_lignes}, \\text{nombre_de_colonnes})\n]\n\n* Permet de connaître immédiatement la taille du DataFrame\n\nExemple :\n\n```text\n(100, 3)\n```\n\nCe DataFrame contient :\n\n* 100 lignes (observations)\n* 3 colonnes (variables)\n\n\n\n#### Récupération du nombre de lignes et de colonnes\n\nLe tuple retourné par `df.shape` peut être indexé.\n\n##### Nombre de lignes\n\n```python\ndf.shape[0]\n```\n\n* Correspond au nombre d’observations\n* Très utilisé pour :\n\n  * vérifier la taille du dataset\n  * calculer des moyennes\n  * écrire des formules statistiques\n\n\n\n##### Nombre de colonnes\n\n```python\ndf.shape[1]\n```\n\n\n#### Noms des colonnes\n\n```python\ndf.columns\n```\n\n* Retourne la liste des noms de colonnes\n* Utile pour vérifier l’orthographe exacte des variables\n* Permet d’éviter les erreurs lors de la sélection\n\n\n\n#### Informations générales sur les données\n\n```python\ndf.info()\n```\n\nCette méthode fournit :\n\n* le nombre de lignes\n* le nombre de valeurs non nulles par colonne\n* le type de chaque variable (int, float, object, etc.)\n* une estimation de l’usage mémoire\n\nElle est utile pour identifier :\n\n* les valeurs manquantes\n* les colonnes non numériques\n* les conversions de type nécessaires\n\n","metadata":{"papermill":{"duration":0.011741,"end_time":"2026-02-22T17:28:54.603597","exception":false,"start_time":"2026-02-22T17:28:54.591856","status":"completed"},"tags":[]}},{"id":"fac5c082","cell_type":"markdown","source":"> Tester ci-dessous\n\n```python\ndf.shape\n```\n\n```python\ndf.shape[0]\n```\n\n```python\ndf.info()\n```\n\n```python\ndf.columns\n```\n","metadata":{"papermill":{"duration":0.010179,"end_time":"2026-02-22T17:28:54.625664","exception":false,"start_time":"2026-02-22T17:28:54.615485","status":"completed"},"tags":[]}},{"id":"929f5105-aebb-4ad7-8eba-ae1ae1251037","cell_type":"code","source":"df.shape[1]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:58:52.981412Z","iopub.execute_input":"2026-05-06T02:58:52.981900Z","iopub.status.idle":"2026-05-06T02:58:52.989016Z","shell.execute_reply.started":"2026-05-06T02:58:52.981869Z","shell.execute_reply":"2026-05-06T02:58:52.987792Z"}},"outputs":[{"execution_count":29,"output_type":"execute_result","data":{"text/plain":"2"},"metadata":{}}],"execution_count":29},{"id":"9b4c546a-1ea6-4cf6-a526-75468f6d6067","cell_type":"code","source":"df.info()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:59:10.606833Z","iopub.execute_input":"2026-05-06T02:59:10.607645Z","iopub.status.idle":"2026-05-06T02:59:10.628829Z","shell.execute_reply.started":"2026-05-06T02:59:10.607612Z","shell.execute_reply":"2026-05-06T02:59:10.627768Z"}},"outputs":[{"name":"stdout","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 3202 entries, 0 to 3201\nData columns (total 2 columns):\n #   Column       Non-Null Count  Dtype  \n---  ------       --------------  -----  \n 0   consumption  3202 non-null   float64\n 1   co2          3202 non-null   int64  \ndtypes: float64(1), int64(1)\nmemory usage: 50.2 KB\n","output_type":"stream"}],"execution_count":31},{"id":"7cee375b-a0b5-4578-b1bf-27b2a56dba72","cell_type":"code","source":"df.columns","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T02:59:45.323261Z","iopub.execute_input":"2026-05-06T02:59:45.323568Z","iopub.status.idle":"2026-05-06T02:59:45.330114Z","shell.execute_reply.started":"2026-05-06T02:59:45.323542Z","shell.execute_reply":"2026-05-06T02:59:45.329133Z"}},"outputs":[{"execution_count":32,"output_type":"execute_result","data":{"text/plain":"Index(['consumption', 'co2'], dtype='object')"},"metadata":{}}],"execution_count":32},{"id":"1d22ddc0-8397-45bc-8774-e25f1dacdd5d","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"15172525","cell_type":"markdown","source":"### Sélectionner une colonne d’un DataFrame\n\nAvec pandas, une colonne se récupère le plus souvent de deux façons :\n\n**1) Avec des crochets**\n```python\ndf['co2']           # une colonne → un objet pandas.Series\ndf[['co2']]         # une colonne mais avec double crochets → DataFrame (1 colonne)\ndf[['consumption','co2']]  # plusieurs colonnes → DataFrame\n```\n\n**2) Avec la notation point (pratique, mais plus fragile)**\n```python\ndf.co2\n```\nElle marche seulement si le nom de colonne :\n- n’a pas d’espace,\n- ne contient pas de caractères spéciaux,\n- et ne rentre pas en conflit avec un attribut de pandas.\n\n**Série vs DataFrame (très important)**\n- `df['co2']` → `Series` (1D)  \n- `df[['co2']]` → `DataFrame` (2D)\n\nCertaines fonctions (notamment en ML) exigent un tableau 2D, donc on utilise souvent la version `df[[...]]`.","metadata":{"papermill":{"duration":0.010542,"end_time":"2026-02-22T17:28:54.781881","exception":false,"start_time":"2026-02-22T17:28:54.771339","status":"completed"},"tags":[]}},{"id":"a42fb905","cell_type":"markdown","source":"> Tester ci-dessous\n\n```python\n# Sélection d'une colonne : renvoie une Series pandas\ndf['co2']\n```\n\n```python\ndf[['co2']]\n```\n\n```python\ndf[['consumption','co2']]\n```\n","metadata":{"papermill":{"duration":0.01076,"end_time":"2026-02-22T17:28:54.803317","exception":false,"start_time":"2026-02-22T17:28:54.792557","status":"completed"},"tags":[]}},{"id":"8de824f9-a014-43ce-a334-118ff5cf1bf7","cell_type":"code","source":"df[['co2']]","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:01:25.273530Z","iopub.execute_input":"2026-05-06T03:01:25.274512Z","iopub.status.idle":"2026-05-06T03:01:25.285019Z","shell.execute_reply.started":"2026-05-06T03:01:25.274476Z","shell.execute_reply":"2026-05-06T03:01:25.283743Z"}},"outputs":[{"execution_count":35,"output_type":"execute_result","data":{"text/plain":"      co2\n0     196\n1     221\n2     136\n3     255\n4     244\n...   ...\n3197  219\n3198  232\n3199  240\n3200  232\n3201  248\n\n[3202 rows x 1 columns]","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>co2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>196</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>221</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>136</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>255</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>244</td>\n    </tr>\n    <tr>\n      <th>...</th>\n      <td>...</td>\n    </tr>\n    <tr>\n      <th>3197</th>\n      <td>219</td>\n    </tr>\n    <tr>\n      <th>3198</th>\n      <td>232</td>\n    </tr>\n    <tr>\n      <th>3199</th>\n      <td>240</td>\n    </tr>\n    <tr>\n      <th>3200</th>\n      <td>232</td>\n    </tr>\n    <tr>\n      <th>3201</th>\n      <td>248</td>\n    </tr>\n  </tbody>\n</table>\n<p>3202 rows × 1 columns</p>\n</div>"},"metadata":{}}],"execution_count":35},{"id":"818678be-c533-43aa-95db-bec9e2bff0d0","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"452132aa-7337-47b3-9e21-92045831034c","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"5d0a9f82","cell_type":"markdown","source":"### Statistiques simples : versions Pandas et NumPy\n\nLes statistiques de base peuvent être calculées aussi bien avec **Pandas** qu’avec **NumPy**.\nLes deux approches sont équivalentes sur le fond, mais répondent à des usages légèrement différents.\n\n\n#### Somme des valeurs\n\n##### Avec Pandas\n\n```python\ndf[\"co2\"].sum()\n```\n\n* Méthode attachée à une `Series`\n* Intégrée directement au DataFrame\n* Gère automatiquement les valeurs manquantes\n\n\n\n##### Avec NumPy\n\n```python\nimport numpy as np\n\nnp.sum(df[\"co2\"])\n```\n\n* Fonction générique NumPy\n* Travaille sur des tableaux numériques (fonctionne aussi avec une série Pandas)\n\n\n#### Moyenne\n\n##### Avec Pandas\n\n```python\ndf[\"co2\"].mean()\n```\n\n\n\n##### Avec NumPy\n\n```python\nnp.mean(df[\"co2\"])\n```\n\n\n\n#### Écart-type\n\n##### Avec Pandas\n\n```python\ndf[\"co2\"].std()\n```\n\n##### Avec NumPy\n\n```python\nnp.std(df[\"co2\"])\n```\n\nL’écart-type mesure la dispersion des valeurs autour de la moyenne.\n\n\n#### Valeurs minimale et maximale\n\n##### Avec Pandas\n\n```python\ndf[\"co2\"].min()\ndf[\"co2\"].max()\n```\n\n\n##### Avec NumPy\n\n```python\nnp.min(df[\"co2\"])\nnp.max(df[\"co2\"])\n```\n\n\n\n#### Résumé statistique\n\n```python\ndf[\"co2\"].describe()\n```\n\nou sur toutes les colonnes numériques :\n\n```python\ndf.describe()\n```\n\n","metadata":{"papermill":{"duration":0.011067,"end_time":"2026-02-22T17:28:54.927611","exception":false,"start_time":"2026-02-22T17:28:54.916544","status":"completed"},"tags":[]}},{"id":"3cedbeb5","cell_type":"markdown","source":"> Tester ci-dessous","metadata":{"papermill":{"duration":0.010787,"end_time":"2026-02-22T17:28:54.949738","exception":false,"start_time":"2026-02-22T17:28:54.938951","status":"completed"},"tags":[]}},{"id":"13541152-07b1-4960-b9ac-c3f54a00c860","cell_type":"code","source":"df.describe()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:03:38.975860Z","iopub.execute_input":"2026-05-06T03:03:38.976247Z","iopub.status.idle":"2026-05-06T03:03:38.995606Z","shell.execute_reply.started":"2026-05-06T03:03:38.976217Z","shell.execute_reply":"2026-05-06T03:03:38.994602Z"}},"outputs":[{"execution_count":42,"output_type":"execute_result","data":{"text/plain":"       consumption          co2\ncount  3202.000000  3202.000000\nmean     11.422767   266.043410\nstd       2.436661    56.695972\nmin       5.300000   122.000000\n25%       9.600000   225.000000\n50%      11.000000   255.000000\n75%      12.900000   301.000000\nmax      22.200000   522.000000","text/html":"<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>consumption</th>\n      <th>co2</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>3202.000000</td>\n      <td>3202.000000</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>11.422767</td>\n      <td>266.043410</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>2.436661</td>\n      <td>56.695972</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>5.300000</td>\n      <td>122.000000</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>9.600000</td>\n      <td>225.000000</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>11.000000</td>\n      <td>255.000000</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>12.900000</td>\n      <td>301.000000</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>22.200000</td>\n      <td>522.000000</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}],"execution_count":42},{"id":"b2a6c267-2134-49a1-95fa-7465c0c59dc2","cell_type":"code","source":"np.mean(df['co2'])","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:04:23.683472Z","iopub.execute_input":"2026-05-06T03:04:23.684212Z","iopub.status.idle":"2026-05-06T03:04:23.695062Z","shell.execute_reply.started":"2026-05-06T03:04:23.684138Z","shell.execute_reply":"2026-05-06T03:04:23.693474Z"}},"outputs":[{"execution_count":43,"output_type":"execute_result","data":{"text/plain":"np.float64(266.0434103685197)"},"metadata":{}}],"execution_count":43},{"id":"e6bdb57f-a5c8-4896-8589-5b078ab17b68","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"aadc9f87-1a49-47e4-9b7c-e458f07c7a83","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"09b3a566-f0fe-4457-a6a0-68d21b850022","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"fc067715","cell_type":"markdown","source":"### Statistiques descriptives avec `df.describe()`\n\nLa méthode `describe()` permet d’obtenir rapidement une **synthèse statistique** des colonnes numériques d’un DataFrame.\n\n```python\ndf.describe()\n```\n\nElle calcule automatiquement plusieurs indicateurs décrivant la **distribution des données**.\n\n\n#### Statistiques fournies par `describe()`\n\nPour chaque colonne numérique, `describe()` retourne les statistiques suivantes.\n\n\n\n##### 1. `count`\n\n* Nombre de valeurs **non nulles**\n* Peut être inférieur au nombre de lignes si des valeurs sont manquantes\n\n\n\n##### 2. `mean` (moyenne)\n\n* Moyenne arithmétique des valeurs\n* Donne une valeur centrale globale de la variable\n\n\n##### 3. `std` (écart-type)\n\n* Mesure la **dispersion** des données autour de la moyenne\n* Plus l’écart-type est grand, plus les valeurs sont dispersées\n\n\n\n##### 4. `min`\n\n* Valeur minimale observée dans la colonne\n\n\n\n##### 5. Quartiles (25 %, 50 %, 75 %)\n\nLes quartiles découpent les données **ordonnées** en quatre parties égales.\n\n###### Premier quartile (25 %)\n\n* 25 % des valeurs sont **inférieures ou égales** à cette valeur\n* Noté souvent ( Q_1 )\n\n\n\n###### Deuxième quartile (50 %) — médiane\n\n* Valeur qui partage les données en deux parties égales\n* 50 % des valeurs sont en dessous, 50 % au-dessus\n* Correspond à la **médiane**\n\n\n###### Troisième quartile (75 %)\n\n* 75 % des valeurs sont **inférieures ou égales** à cette valeur\n* Noté souvent ( Q_3 )\n\n\n\n###### Interprétation des quartiles\n\nLes quartiles permettent de :\n\n* comprendre la **répartition** des données\n* identifier la **dispersion centrale**\n* détecter des **valeurs atypiques** (outliers)\n\nL’intervalle interquartile est défini par :\n\n$IQR = Q_3 - Q_1$\n\n\n\n##### 6. `max`\n\n* Valeur maximale observée dans la colonne\n\n```python\ndf.describe()\n```\n","metadata":{"papermill":{"duration":0.010874,"end_time":"2026-02-22T17:28:55.081997","exception":false,"start_time":"2026-02-22T17:28:55.071123","status":"completed"},"tags":[]}},{"id":"61a56523-0767-4fb4-91a8-55df38ce6851","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"512f064b","cell_type":"markdown","source":"### Visualisation de la distribution avec Seaborn : les boxplots\n\n**Seaborn** est une bibliothèque de visualisation statistique construite au-dessus de Matplotlib.\nElle propose des graphiques plus expressifs et mieux adaptés à l’analyse exploratoire des données, avec une syntaxe orientée *DataFrame*.\n\nNous allons utiliser Seaborn pour représenter la distribution de la variable `co2`.\n\n\n#### 1. Rappel : principe du boxplot\n\nUn **boxplot** synthétise une distribution numérique à partir de cinq statistiques descriptives :\n\n* minimum\n* premier quartile ( Q_1 ) (25 %)\n* médiane ( Q_2 ) (50 %)\n* troisième quartile ( Q_3 ) (75 %)\n* maximum\n\nLa boîte représente l’intervalle interquartile :\n\n[\nIQR = Q_3 - Q_1\n]\n\nCet intervalle contient les 50 % centraux des données.\n\n\n#### 2. Structure graphique\n\n* La boîte s’étend de ( Q_1 ) à ( Q_3 )\n* Le trait central correspond à la **médiane**\n* Les moustaches s’étendent jusqu’aux valeurs extrêmes non aberrantes\n\nCe type de graphique permet d’évaluer rapidement :\n\n* la dispersion\n* l’asymétrie\n* la concentration des données\n\n\n\n#### 3. Définition des valeurs aberrantes\n\nUne observation est considérée comme aberrante si :\n\n[\nx < Q_1 - 1.5 \\times IQR\n]\n\nou\n\n[\nx > Q_3 + 1.5 \\times IQR\n]\n\nCes valeurs sont représentées individuellement, généralement sous forme de points.\n\n\n#### 4. Implémentation avec Seaborn\n\n```python\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\nplt.figure(figsize=(6, 4))\n\nsns.boxplot(y=df[\"co2\"])\n\nplt.title(\"Boxplot de la variable CO2\")\nplt.show()\n```\n\n\n#### 5. Interprétation des valeurs aberrantes\n\nLes outliers peuvent résulter :\n\n* d’erreurs de mesure\n* d’erreurs de saisie\n* d’événements atypiques\n* de phénomènes rares mais légitimes\n\nIl convient d’éviter toute suppression automatique.\nUne analyse contextuelle est nécessaire avant toute décision de nettoyage.\n\n```python\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n\nplt.figure(figsize=(6, 4))\n\nsns.boxplot(y=df[\"co2\"])\n\nplt.title(\"Boxplot de la variable CO2\")\nplt.show()\n```\n","metadata":{"papermill":{"duration":0.010987,"end_time":"2026-02-22T17:28:55.14862","exception":false,"start_time":"2026-02-22T17:28:55.137633","status":"completed"},"tags":[]}},{"id":"ed391d40-dbc6-4854-bae6-50881500395b","cell_type":"code","source":"import seaborn as sns\nimport matplotlib.pyplot as plt\n\nplt.figure(figsize=(6, 4))\n\nsns.boxplot(y=df[\"co2\"])\n\nplt.title(\"Boxplot de la variable CO2\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:08:52.351549Z","iopub.execute_input":"2026-05-06T03:08:52.352386Z","iopub.status.idle":"2026-05-06T03:08:52.493268Z","shell.execute_reply.started":"2026-05-06T03:08:52.352348Z","shell.execute_reply":"2026-05-06T03:08:52.492427Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 600x400 with 1 Axes>","image/png":"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\n"},"metadata":{}}],"execution_count":46},{"id":"dd0fe012","cell_type":"markdown","source":"## Visualisation de la distribution avec Seaborn\n\n**Seaborn** est une bibliothèque de visualisation statistique construite au-dessus de Matplotlib.\nElle permet de représenter efficacement les distributions de variables numériques avec une syntaxe adaptée aux DataFrames.\n\nTrois visualisations fondamentales pour l’analyse exploratoire sont :\n\n* l’histogramme\n* la courbe de densité (KDE)\n* le violin plot\n\n\n\n### Histogramme avec Seaborn\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.histplot(\n    data=df,\n    x=\"co2\",\n    bins=100\n)\n\nplt.title(\"Distribution de la variable CO2\")\nplt.show()\n```\n\nL’histogramme représente la distribution en regroupant les observations dans des **intervalles (bins)** :\n\n* chaque bin correspond à une plage de valeurs\n* la hauteur indique le nombre d’observations dans cette plage\n* le paramètre `bins` contrôle le nombre d’intervalles\n\nUn nombre trop faible de bins masque la structure fine de la distribution.\nUn nombre trop élevé amplifie les fluctuations aléatoires.\n\nLe choix du nombre de bins influence donc directement l’interprétation.\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.histplot(\n    data=df,\n    x=\"co2\",\n    bins=100\n)\n\nplt.title(\"Distribution de la variable CO2\")\nplt.show()\n```\n","metadata":{"papermill":{"duration":0.011602,"end_time":"2026-02-22T17:28:57.303657","exception":false,"start_time":"2026-02-22T17:28:57.292055","status":"completed"},"tags":[]}},{"id":"fef3eed3-a10b-4047-a812-e554d3d8aefd","cell_type":"code","source":"sns.histplot(data=df, x='co2', kde=True)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:12:06.063704Z","iopub.execute_input":"2026-05-06T03:12:06.064140Z","iopub.status.idle":"2026-05-06T03:12:06.337537Z","shell.execute_reply.started":"2026-05-06T03:12:06.064101Z","shell.execute_reply":"2026-05-06T03:12:06.336409Z"}},"outputs":[{"execution_count":53,"output_type":"execute_result","data":{"text/plain":"<Axes: xlabel='co2', ylabel='Count'>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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Jxk8eDBRUVH07duXX/3qVwBs27aNK664AofDQUpKCnfeeSe1tbWB177yyit8//vfZ9y4ceTk5PD73/8ev9/PihUrzDodEelCCjsiEpIWLFjAE088wc9+9jN27tzJokWLyMjIwO12M336dJKSktiwYQOvv/46y5cvZ968ead9r7q6OrxeL8nJyd14BiLSXXTXcxEJOTU1NaSlpfHcc8/x3e9+t9VzL774Ig8++CAFBQXExsYC8M4773D11Vdz9OhRMjIyTnq/73//+7z33nvs2LGD6OjobjkHEek+6tkRkZCza9cuGhoamDJlyimfGzt2bCDoAFx88cX4/X727NlzUvsnnniCV199lcWLFyvoiISpCLMLEBFpL4fD0Snv85vf/IYnnniC5cuXM2bMmE55TxEJPurZEZGQM2TIEBwOxyknFA8fPpzPPvsMt9sdeOzjjz/GarUybNiwwGNPPvkkv/jFL1i6dCkTJkzolrpFxBzq2RGRkBMdHc2DDz7Ij370IyIjI7n44os5duwYO3bs4KabbuLhhx9mzpw5PPLIIxw7dox77rmHW265JTBf5//9v//Hz3/+cxYtWkT//v0pLi4GIC4ujri4ODNPTUS6gCYoi0hI8vv9PP7447z44oscPXqUrKws7rrrLhYsWMC2bdu49957ycvLIyYmhtmzZ/PUU08Fgkz//v05dOjQSe/58MMP88gjj3TzmYhIV1PYERERkbCmOTsiIiIS1hR2REREJKwp7IiIiEhYU9gRERGRsKawIyIiImFNYUdERETCmsKOiIiIhDWFHREREQlrCjsiIiIS1hR2REREJKwp7IiIiEhY+/+ernldbMv4qwAAAABJRU5ErkJggg==\n"},"metadata":{}}],"execution_count":53},{"id":"d3960f93","cell_type":"markdown","source":"### Courbe de densité (KDE)\n\nLa **Kernel Density Estimation (KDE)** fournit une estimation continue et lisse de la distribution.\n\nContrairement à l’histogramme :\n\n* il n’y a pas de découpage en classes discrètes\n* on obtient une courbe continue\n* l’aire sous la courbe vaut 1\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.kdeplot(\n    data=df,\n    x=\"co2\",\n    fill=True\n)\n\nplt.title(\"Estimation de densité (KDE)\")\nplt.show()\n```\n\nLa hauteur de la courbe reflète la concentration relative des observations.\n\n\n\n### Histogramme + KDE\n\nSeaborn permet de combiner les deux représentations :\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.histplot(\n    data=df,\n    x=\"co2\",\n    bins=100,\n    kde=True\n)\n\nplt.title(\"Histogramme avec estimation de densité\")\nplt.show()\n```\n\nLes barres montrent les fréquences observées.\nLa courbe superposée montre la tendance continue sous-jacente.\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.kdeplot(\n    data=df,\n    x=\"co2\",\n    fill=True\n)\n\nplt.title(\"Estimation de densité (KDE)\")\nplt.show()\n```\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.histplot(\n    data=df,\n    x=\"co2\",\n    bins=100,\n    kde=True\n)\n\nplt.title(\"Histogramme avec estimation de densité\")\nplt.show()\n```\n","metadata":{"papermill":{"duration":0.012367,"end_time":"2026-02-22T17:28:57.611908","exception":false,"start_time":"2026-02-22T17:28:57.599541","status":"completed"},"tags":[]}},{"id":"71d193c4-7666-4a1c-88eb-40c6f6daa312","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"bd791b78-a082-4b20-a0a7-9969b6c2d5ff","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"d5be5a84","cell_type":"markdown","source":"\n### Violin plot avec Seaborn\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.violinplot(\n    y=df[\"co2\"],\n    inner=\"box\"\n)\n\nplt.title(\"Violin plot de la variable CO2\")\nplt.show()\n```\n\nLe violin plot repose également sur une estimation de densité.\n\n* la largeur du violon correspond à la densité\n* les zones larges indiquent une forte concentration\n* les zones étroites indiquent des valeurs plus rares\n\nL’option `inner=\"box\"` affiche à l’intérieur :\n\n* la médiane\n* les quartiles\n* les valeurs aberrantes\n\nLe violin plot combine donc :\n\n* une synthèse statistique (type boxplot)\n* une représentation continue de la distribution\n\n\n### Complémentarité des graphiques\n\n* L’histogramme décrit la distribution par classes discrètes\n* La KDE fournit une approximation continue\n* Le violin plot combine densité et statistiques descriptives\n\nCes visualisations sont complémentaires et constituent une étape essentielle de l’analyse exploratoire avant toute modélisation.\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.violinplot(\n    y=df[\"co2\"],\n    inner=\"box\"\n)\n\nplt.title(\"Violin plot de la variable CO2\")\nplt.show()\n```\n","metadata":{"papermill":{"duration":0.012356,"end_time":"2026-02-22T17:28:58.203646","exception":false,"start_time":"2026-02-22T17:28:58.19129","status":"completed"},"tags":[]}},{"id":"a70f1f79-f01d-44e6-b438-9da4356cc890","cell_type":"code","source":"plt.figure(figsize=(6, 4))\n\nsns.violinplot(\n    y=df[\"co2\"],\n    inner=\"box\"\n)\n\nplt.title(\"Violin plot de la variable CO2\")\nplt.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:13:28.986295Z","iopub.execute_input":"2026-05-06T03:13:28.987413Z","iopub.status.idle":"2026-05-06T03:13:29.220087Z","shell.execute_reply.started":"2026-05-06T03:13:28.987371Z","shell.execute_reply":"2026-05-06T03:13:29.219307Z"}},"outputs":[{"output_type":"display_data","data":{"text/plain":"<Figure size 600x400 with 1 Axes>","image/png":"iVBORw0KGgoAAAANSUhEUgAAAhwAAAFjCAYAAAB2YtL1AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAWL9JREFUeJzt3Xd4VHXaxvHvtEx6QkIqPSEQAtIRIk0BQURRwYLLCnZkwVXZVcTXVXFXsbsWsCK6urirroqggohSBESkKNKkhE5ICJCeqef9I2RgpEgLMwn357rmIqfMzDNDkrnza8dkGIaBiIiISDUyB7oAERERqf0UOERERKTaKXCIiIhItVPgEBERkWqnwCEiIiLVToFDREREqp0Ch4iIiFQ7BQ4RERGpdgocIiIiUu0UOOSc9Pbbb2MymdiyZctJ3/fGG2+kcePGfvtMJhOPPPLIGantZGzZsgWTycTbb7991p+7yoUXXsiFF154xh7vaO9vTXGq70XV/+Mzzzzzu+c+8sgjmEymU6hOJLAUOKRWGDhwIOHh4RQXFx/znKFDhxISEkJBQcFZrCx4LVq0iEceeYQDBw4EuhQJAps2bWLEiBGkpaURGhpKdHQ0Xbt25YUXXqC8vNzvXJfLxYsvvkinTp2IiooiMjKSTp068eKLL+JyufzOLSsrY+LEifTt25eUlBSioqJo164dr7zyCh6P52y+RAkwBQ6pFYYOHUp5eTmffPLJUY+XlZUxbdo0LrnkEuLj47nhhhsoLy+nUaNGZ+T5y8vLefDBB8/IY50tixYtYvz48QocZ9BXX33FV199FegyTtrnn3/OeeedxwcffMDll1/OSy+9xIQJE2jYsCH33nsvd911l+/c0tJSLr74Yu666y6Sk5N54oknePrpp0lNTeWuu+7i4osvprS01Hf+5s2bufPOOzEMgzFjxvDMM8/QpEkT/vSnP3HzzTcH4uVKgFgDXYDImTBw4ECioqKYOnUqw4YNO+L4tGnTKC0tZejQoQBYLBYsFssZe/7Q0NAz9lhS85SVlREeHk5ISEigSzlpOTk5DBkyhEaNGvHNN9+QkpLiOzZq1Cg2btzI559/7ts3ZswY5s2bx0svvcTo0aN9+0eOHMnEiRMZPXo0f/3rX3nllVcASE5OZtWqVbRs2dJ37ogRI7j55puZMmUKf/vb32jatOlZeKUSaGrhkFohLCyMQYMGMWfOHPLy8o44PnXqVKKiohg4cCBw7DEckyZNomXLltjtdlJTUxk1atQJtQD8dgxHVT/7xo0bufHGG4mNjSUmJoabbrqJsrKy3328Cy+8kFatWrFs2TIuuOACwsLCaNKkCa+++urv3hfgm2++oXv37kRERBAbG8sVV1zB2rVr/eq79957AWjSpAkmk+mExrS8/vrrpKenExYWxvnnn8+CBQuOep7D4eDhhx+madOm2O12GjRowH333YfD4Tih+n/rmWee4YILLiA+Pp6wsDA6dOjARx999Lv3Gz16NJGRkUd9z6+//nqSk5N9zfrTpk1jwIABpKamYrfbSU9P5+9///sRzf6H/9/06NGD8PBwHnjgAd+xw8dwOJ1OHnroITp06EBMTAwRERF0796db7/99pg1P//88zRq1IiwsDB69uzJL7/8ciJvEe+99x4dOnQgLCyMuLg4hgwZwvbt23/3fk899RQlJSVMnjzZL2xUadq0qa+FY8eOHUyePJlevXr5hY0qo0aN4qKLLuLNN99kx44dANStW9cvbFS56qqrAPy+L6V2U+CQWmPo0KG43W4++OADv/379u1j1qxZXHXVVYSFhR3z/o888gijRo0iNTWVZ599lsGDB/Paa6/Rt2/fI/qlT9S1115LcXExEyZM4Nprr+Xtt99m/PjxJ3Tf/fv3c+mll9KhQweeeuop6tevz8iRI3nrrbeOe7+vv/6afv36kZeXxyOPPMKYMWNYtGgRXbt29QWKQYMGcf311wOVH3Dvvvsu7777LgkJCcd83MmTJzNixAiSk5N56qmn6Nq1KwMHDjziQ83r9TJw4ECeeeYZX/P8lVdeyfPPP8911113Qq/9t1544QXatWvHo48+yuOPP47VauWaa67x+8v7aK677jpKS0uPOK+srIzp06dz9dVX+1q63n77bSIjIxkzZgwvvPACHTp04KGHHuL+++8/4nELCgro378/bdu25Z///CcXXXTRUZ+/qKiIN998kwsvvJAnn3ySRx55hPz8fPr168fKlSuPOP9f//oXL774IqNGjWLcuHH88ssv9OrViz179hz3dT722GMMGzaMjIwMnnvuOe6++27mzJlDjx49fjcwT58+nbS0NC644ILjngfw5Zdf4vF4jtqKWGXYsGG43W5mzpx53MfKzc0FKgOJnCMMkVrC7XYbKSkpRnZ2tt/+V1991QCMWbNm+fZNmTLFAIycnBzDMAwjLy/PCAkJMfr27Wt4PB7feS+//LIBGG+99ZZv3/Dhw41GjRr5PQdgPPzww77thx9+2ACMm2++2e+8q666yoiPj//d19KzZ08DMJ599lnfPofDYbRt29ZITEw0nE6nYRiGkZOTYwDGlClTfOdVnVNQUODb99NPPxlms9kYNmyYb9/TTz/t9x4cj9PpNBITE422bdsaDofDt//11183AKNnz56+fe+++65hNpuNBQsW+D1G1f/DwoULj/tcR3t/y8rKjqinVatWRq9evY77WF6v16hXr54xePBgv/0ffPCBARjz588/5nMYhmGMGDHCCA8PNyoqKnz7qv5vXn311SPO79mzp9974Xa7/d4vwzCM/fv3G0lJSX7fG1X/j2FhYcaOHTt8+5csWWIAxj333OPbV/W9VWXLli2GxWIxHnvsMb/nWbVqlWG1Wo/Yf7jCwkIDMK644opjnnO4u+++2wCMFStWHPOc5cuXG4AxZsyYY57jcDiMrKwso0mTJobL5Tqh55aaTy0cUmtYLBaGDBnC4sWL/boGpk6dSlJSEr179z7mfb/++mucTid33303ZvOhH4vbbruN6Ojo3/1L+ljuuOMOv+3u3btTUFBAUVHR797XarUyYsQI33ZISAgjRowgLy+PZcuWHfU+u3fvZuXKldx4443ExcX59rdu3ZqLL76YL7744pRex48//kheXh533HGH3ziFG2+8kZiYGL9zP/zwQ1q0aEFmZiZ79+713Xr16gVw3O6EYzm8ZWr//v0UFhbSvXt3li9fftz7mUwmrrnmGr744gtKSkp8+//73/9Sr149unXrdtTnKC4uZu/evXTv3p2ysjLWrVvn97h2u52bbrrpd+u2WCy+98vr9bJv3z7cbjcdO3Y8au1XXnkl9erV822ff/75dO7c+bj/bx9//DFer5drr73W7/1OTk4mIyPjuO931fdhVFTU774WwDcL7HjnVx073vf46NGjWbNmDS+//DJWq4YSnisUOKRWqRoUOnXqVKCyz3nBggUMGTLkuINEt27dCkDz5s399oeEhJCWluY7frIaNmzot12nTh2g8kPz96SmphIREeG3r1mzZgDHHGtxrNcB0KJFC/bu3es3g+BEVT1uRkaG336bzUZaWprfvg0bNrB69WoSEhL8blW1H22Mze+ZMWMGXbp0ITQ0lLi4OBISEnjllVcoLCz83fted911lJeX89lnnwFQUlLCF198wTXXXOO3nsXq1au56qqriImJITo6moSEBP74xz8CHPE89erVO+EBou+88w6tW7cmNDSU+Ph4EhIS+Pzzz49a+2/fX6j8Pz/e2JoNGzZgGAYZGRlHvOdr16497vsdHR0NcNzp5IerChPHO//3QsnTTz/NG2+8wd///ncuvfTSE3peqR0ULaVW6dChA5mZmbz//vs88MADvP/++xiG4QsiZ9uxQo5hGGe5krPH6/Vy3nnn8dxzzx31eIMGDU7q8RYsWMDAgQPp0aMHkyZNIiUlBZvNxpQpU3zB8ni6dOlC48aN+eCDD/jDH/7A9OnTKS8v9xtPcuDAAXr27El0dDSPPvoo6enphIaGsnz5csaOHYvX6/V7zOONBTrce++9x4033siVV17JvffeS2JiIhaLhQkTJrBp06aTeh+Oxev1YjKZ+PLLL4/6/RYZGXnM+0ZHR5OamnrCA1NbtGgBwM8//0zbtm2Pes7PP/8MQFZW1hHH3n77bcaOHcsdd9xR46aRy+lT4JBaZ+jQofztb3/j559/ZurUqWRkZNCpU6fj3qdqPY7169f7/cXudDrJycmhT58+1Vrz0ezatYvS0lK/Vo5ff/0V4JgrcR7+On5r3bp11K1b1/d4J7NaZdXjbtiwwdc1ApULQOXk5NCmTRvfvvT0dH766Sd69+59RlbE/N///kdoaCizZs3Cbrf79k+ZMuWEH+Paa6/lhRdeoKioiP/+9780btyYLl26+I7PnTuXgoICPv74Y3r06OHbn5OTc1q1f/TRR6SlpfHxxx/7vRcPP/zwUc/fsGHDEft+/fXX4668mp6ejmEYNGnSxNeKdDIuu+wyXn/9dRYvXkx2dvZxz+3fvz8Wi4V33333mANH//Wvf2G1Wrnkkkv89k+bNo1bb72VQYMGMXHixJOuU2o+dalIrVPVmvHQQw+xcuXKE2rd6NOnDyEhIbz44ot+rQ+TJ0+msLCQAQMGVFu9x+J2u3nttdd8206nk9dee42EhAQ6dOhw1PukpKTQtm1b3nnnHb/ZCb/88gtfffWVXxN2VfA4kWm/HTt2JCEhgVdffRWn0+nb//bbbx9x/2uvvZadO3fyxhtvHPE45eXlJ92lY7FYMJlMftNTt2zZwqeffnrCj3HdddfhcDh45513mDlzJtdee+0RzwH+LU9Op5NJkyadVK1Hq/23j7tkyRIWL1581PM//fRTdu7c6dv+4YcfWLJkCf379z/mcwwaNAiLxcL48eOPaDkzDON3V9a97777iIiI4NZbbz3qbJhNmzbxwgsvAJWtUzfddBNff/21b52Nw7366qt888033HLLLdSvX9+3f/78+QwZMoQePXrw73//22+clJw71MIhtU6TJk244IILmDZtGsAJBY6EhATGjRvH+PHjueSSSxg4cCDr169n0qRJdOrUydeXfzalpqby5JNPsmXLFpo1a8Z///tfVq5cyeuvv47NZjvm/Z5++mn69+9PdnY2t9xyC+Xl5bz00kvExMT4rRVSFVr+7//+jyFDhmCz2bj88suPGDcClWM1/vGPfzBixAh69erFddddR05ODlOmTDliDMcNN9zABx98wB133MG3335L165d8Xg8rFu3jg8++IBZs2bRsWPHE34fBgwYwHPPPccll1zCH/7wB/Ly8pg4cSJNmzb1Nd//nvbt29O0aVP+7//+D4fDccT03AsuuIA6deowfPhw/vznP2MymXj33XdPu+vrsssu4+OPP+aqq65iwIAB5OTk8Oqrr5KVleU3iLVK06ZN6datGyNHjsThcPDPf/6T+Ph47rvvvmM+R3p6Ov/4xz8YN24cW7Zs4corryQqKoqcnBw++eQTbr/9dv76178e9/5Tp07luuuuo0WLFgwbNoxWrVrhdDpZtGgRH374ITfeeKPv/Oeff55169bxpz/9iZkzZ/paMmbNmsW0adPo2bMnzz77rO/8rVu3MnDgQEwmE1dffTUffvih3/O3bt2a1q1bn+hbKjVZoKbHiFSniRMnGoBx/vnnH/X4b6fFVnn55ZeNzMxMw2azGUlJScbIkSON/fv3+51zMtNi8/PzT+h5f6tnz55Gy5YtjR9//NHIzs42QkNDjUaNGhkvv/yy33lHmxZrGIbx9ddfG127djXCwsKM6Oho4/LLLzfWrFlzxPP8/e9/N+rVq2eYzeYTqmvSpElGkyZNDLvdbnTs2NGYP3/+EVNBDaNy2uqTTz5ptGzZ0rDb7UadOnWMDh06GOPHjzcKCwuP+xxHe38nT55sZGRkGHa73cjMzDSmTJlyxPTQ3/N///d/BmA0bdr0qMcXLlxodOnSxQgLCzNS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\n"},"metadata":{}}],"execution_count":56},{"id":"9b778e02","cell_type":"markdown","source":"### Nuage de points (scatter plot) avec Seaborn\n\nLe **nuage de points** permet d’étudier la relation entre **deux variables numériques**.\nIl constitue l’outil graphique de référence pour analyser une dépendance potentielle et introduire la **régression linéaire**.\n\nSeaborn fournit une interface claire et adaptée aux DataFrames pour ce type de visualisation.\n\n\n#### Principe du scatter plot\n\nChaque point correspond à une observation du dataset.\n\n* L’axe horizontal représente une variable explicative ( x )\n* L’axe vertical représente une variable cible ( y )\n* Chaque point correspond à un couple ( (x_i, y_i) )\n\nLe scatter plot permet d’observer :\n\n* l’existence d’une relation entre les variables\n* la forme de la relation (linéaire ou non)\n* la dispersion des observations\n* la présence de valeurs atypiques\n\n\n#### Exemple avec Seaborn\n\n```python id=\"vny3kp\"\n\nplt.figure(figsize=(6, 4))\n\nsns.scatterplot(\n    data=df,\n    x=\"consumption\",\n    y=\"co2\"\n)\n\nplt.title(\"Relation entre consommation et CO2\")\nplt.show()\n```\n\n\n## Interprétation du graphique\n\nÀ partir du nuage de points, on peut analyser :\n\n**Tendance globale**\nUne orientation croissante ou décroissante suggère une relation entre les variables.\n\n**Dispersion**\nL’écart des points autour d’une tendance moyenne reflète la variabilité.\n\n**Valeurs aberrantes**\nLes points éloignés du nuage principal peuvent correspondre à des observations atypiques.\n\n```python\nplt.figure(figsize=(6, 4))\n\nsns.scatterplot(\n    data=df,\n    x=\"consumption\",\n    y=\"co2\"\n)\n\nplt.title(\"Relation entre consommation et CO2\")\nplt.show()\n```\n","metadata":{"papermill":{"duration":0.01342,"end_time":"2026-02-22T17:28:58.420675","exception":false,"start_time":"2026-02-22T17:28:58.407255","status":"completed"},"tags":[]}},{"id":"c2fd0134-8b87-4a77-9d81-07f30606c69f","cell_type":"code","source":"sns.scatterplot(data=df, x='co2', y='consumption')","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:15:26.061237Z","iopub.execute_input":"2026-05-06T03:15:26.061668Z","iopub.status.idle":"2026-05-06T03:15:26.283925Z","shell.execute_reply.started":"2026-05-06T03:15:26.061636Z","shell.execute_reply":"2026-05-06T03:15:26.282771Z"}},"outputs":[{"execution_count":57,"output_type":"execute_result","data":{"text/plain":"<Axes: xlabel='co2', ylabel='consumption'>"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"<Figure size 640x480 with 1 Axes>","image/png":"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ICIiIgo7DEBEFPbeeust5OXlITY2FrGxsRg6dCi+/fbb1m4WETUjBiAiCntbtmxBfn4+vv76a+zYsQPJycm49dZbcfz48dZuGhE1EwYgIuoQvF4vXn75Zej1eigUCqSkpODFF18EAOzfvx+33HILVCoVtFotHnnkEZjNZv+5q1evxuTJk9G/f3+kp6fj7bffhtfrxaZNm1rrdoiomTEAEVGHMH36dCxevBizZs3Cjz/+iPfeew/x8fGwWCwYNmwYYmNj8d133+HDDz/EV199hSlTpjR4LavVCpfLhU6dOrXgHRBRS+Jq8ETU7tXW1qJz585YtmwZHnrooYB9b731FqZNm4by8nJEREQAAD777DOMGjUKJ06cQHx8fL3rTZ48GV988QUOHjwIpVLZIvdARC2LPUBE1O4dOnQIDocDQ4YMCbqvX79+/vADADk5OfB6vThy5Ei94xcvXoz3338f69atY/gh6sCkrd0AIqJfSqVSNcl1/vSnP2Hx4sX46quvkJmZ2STXJKK2iT1ARNTupaWlQaVSBR203KtXL/zwww+wWCz+bYWFhRCLxejZs6d/28svv4wFCxZg48aNGDBgQIu0m4haD3uAiKjdUyqVmDZtGp577jnI5XLk5OTgzJkzOHjwIMaNG4c5c+Zg/PjxmDt3Ls6cOYPHH38c999/v3/8z0svvYTZs2fjvffeQ7du3VBZWQkAiIyMRGRkZGveGhE1Ew6CJqIOwev1YtGiRXjrrbdw4sQJJCYm4tFHH8X06dOxf/9+PPnkk9ixYwfUajXGjh2LV155xR9uunXrhtLS0nrXnDNnDubOndvCd0JELYEBiIiIiMIOxwARERFR2GEAIiIiorDDAERERERhhwGIiIiIwg4DEBEREYUdBiAiIiIKOwxAREREFHYYgIiIiCjsMAARERFR2GEAIiIiorDDAERERERh5/8BLDPj++uWhToAAAAASUVORK5CYII=\n"},"metadata":{}}],"execution_count":57},{"id":"2ba20820","cell_type":"markdown","source":"### Introduction à Plotly Express : visualisation interactive\n\n**Plotly Express (px)** est une interface haut niveau de Plotly permettant de produire des graphiques interactifs à partir d’un DataFrame en une seule instruction.\n\nContrairement à Seaborn ou Matplotlib :\n\n* les graphiques sont interactifs par défaut\n* zoom et déplacement sont natifs\n* les valeurs exactes apparaissent au survol (hover)\n* les figures sont facilement intégrables dans des dashboards\n\nSyntaxe générale :\n\n```python\nimport plotly.express as px\n```\n\nChaque appel retourne un objet `fig`, qui peut ensuite être modifié.\n\n\n## 1. Histogramme interactif\n\n```python\nfig = px.histogram(\n    df,\n    x=\"co2\",\n    nbins=100\n)\n\nfig.show()\n```\n\nOptions importantes :\n\n* `nbins` : nombre de classes\n* `color` : séparation par variable catégorielle\n* `histnorm=\"density\"` si normalisation\n\n\n\n## 2. Boxplot interactif\n\n```python\nfig = px.box(\n    df,\n    y=\"co2\"\n)\n\nfig.show()\n```\n\n\n## 3. Violin plot interactif\n\n```python\nfig = px.violin(\n    df,\n    y=\"co2\",\n    box=True,\n    points=\"outliers\"\n)\n\nfig.show()\n```\n\nOptions utiles :\n\n* `box=True` : ajoute médiane et quartiles\n* `points=\"all\" | \"outliers\" | False`\n* `color=\"class\"`\n\n\n\n## 4. Scatter plot interactif\n\n```python\nfig = px.scatter(\n    df,\n    x=\"consumption\",\n    y=\"co2\"\n)\n\nfig.show()\n```\n\n\nAjout d’une droite de tendance :\n\n```python\nfig = px.scatter(\n    df,\n    x=\"consumption\",\n    y=\"co2\",\n    trendline=\"ols\"\n)\n```\n\n\n## Personnalisation avec `update_traces`\n\nLes fonctions `px.*` génèrent une figure contenant une ou plusieurs **traces** (objets graphiques).\n\nLa méthode :\n\n```python\nfig.update_traces(...)\n```\n\npermet de modifier les propriétés graphiques des traces après leur création.\n\nExemple :\n\n```python\nfig = px.histogram(df, x=\"co2\", nbins=50)\n\nfig.update_traces(\n    opacity=0.7,\n    marker_line_color=\"black\",\n    marker_line_width=1\n)\n\nfig.show()\n```\n\nIci :\n\n* `opacity` modifie la transparence\n* `marker_line_color` définit la couleur du contour\n* `marker_line_width` définit l’épaisseur du contour\n\nCette approche sépare :\n\n1. la création du graphique (`px.*`)\n2. l’ajustement esthétique (`update_traces`)\n\nOn peut également modifier la mise en page globale via :\n\n```python\nfig.update_layout(width=600, height=400)\n```\n\n```python\nimport plotly.express as px\n\nfig = px.histogram(\n    df,\n    x=\"co2\",\n    nbins=100\n)\n\nfig.show()\n```\n\n```python\nfig = px.violin(\n    df,\n    y=\"co2\",\n    box=True,\n    points=\"outliers\"\n)\n\nfig.show()\n```\n\n```python\nfig = px.scatter(\n    df,\n    x=\"consumption\",\n    y=\"co2\",\n    trendline=\"ols\"\n)\n\nfig.show()\n```\n\n```python\nfig = px.histogram(df, x=\"co2\", nbins=50)\n\nfig.update_traces(\n    opacity=0.7,\n    marker_line_color=\"black\",\n    marker_line_width=1\n)\n\nfig.show()\n```\n","metadata":{"papermill":{"duration":0.013271,"end_time":"2026-02-22T17:28:58.660903","exception":false,"start_time":"2026-02-22T17:28:58.647632","status":"completed"},"tags":[]}},{"id":"2bdd7435-6e36-48de-ac17-70dda5049ef0","cell_type":"code","source":"fig = px.histogram(df, x=\"co2\", nbins=50)\n\nfig.update_traces(\n    opacity=0.7,\n    marker_line_color=\"black\",\n    marker_line_width=1\n)\n\nfig.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:20:36.670652Z","iopub.execute_input":"2026-05-06T03:20:36.671452Z","iopub.status.idle":"2026-05-06T03:20:36.734502Z","shell.execute_reply.started":"2026-05-06T03:20:36.671417Z","shell.execute_reply":"2026-05-06T03:20:36.733505Z"}},"outputs":[{"output_type":"display_data","data":{"text/html":"<html>\n<head><meta charset=\"utf-8\" /></head>\n<body>\n    <div>            <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>                <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n        <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.35.2.min.js\"></script>                <div id=\"ad1f6814-7d2b-425c-8234-8710cfb3d898\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"ad1f6814-7d2b-425c-8234-8710cfb3d898\")) {                    Plotly.newPlot(                        \"ad1f6814-7d2b-425c-8234-8710cfb3d898\",                        [{\"alignmentgroup\":\"True\",\"bingroup\":\"x\",\"hovertemplate\":\"co2=%{x}\\u003cbr\\u003ecount=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"},\"line\":{\"color\":\"black\",\"width\":1}},\"name\":\"\",\"nbinsx\":50,\"offsetgroup\":\"\",\"orientation\":\"v\",\"showlegend\":false,\"x\":[196,221,136,255,244,230,232,255,267,212,225,239,193,359,359,338,354,338,354,359,202,230,214,230,230,214,235,251,262,258,265,258,288,363,242,239,258,212,304,336,407,347,409,336,407,347,409,306,308,293,262,285,262,285,267,281,281,300,292,209,209,237,237,314,356,332,380,380,388,437,193,200,202,193,200,209,209,209,221,230,228,237,232,193,200,209,221,230,228,237,202,209,232,246,281,292,232,292,281,292,246,292,292,356,191,214,212,292,292,338,317,338,317,338,317,338,317,209,260,230,253,255,320,370,274,324,209,200,278,253,278,228,225,246,228,225,221,235,232,232,248,294,382,340,382,340,382,340,338,377,290,294,292,382,340,276,258,228,324,329,317,320,317,317,304,324,329,338,377,304,235,248,172,189,265,269,283,255,267,253,283,267,294,175,271,244,253,294,334,345,237,244,294,242,281,306,306,285,306,285,306,306,306,301,290,315,310,315,310,363,421,361,400,274,334,225,225,354,347,285,285,345,338,283,283,354,347,239,253,175,320,223,239,223,244,253,244,290,283,297,297,262,380,189,292,292,347,352,334,301,235,221,228,184,216,216,242,242,239,244,242,347,352,304,308,179,212,264,301,301,235,230,239,242,239,235,202,267,269,262,297,310,297,310,419,407,350,359,363,260,278,327,356,278,276,304,269,292,327,205,207,225,246,380,361,361,179,179,179,179,200,179,175,168,200,179,179,179,191,184,191,184,207,196,191,184,207,196,191,184,191,184,191,184,207,196,191,184,207,196,191,184,288,283,267,235,253,264,262,269,297,186,198,200,251,232,246,237,246,242,253,248,253,253,258,232,246,244,248,246,251,322,274,274,274,274,212,228,225,239,290,313,338,310,251,326,358,212,228,225,239,251,255,260,264,292,260,294,297,368,368,393,393,393,393,359,193,218,147,147,389,389,196,221,218,258,288,258,288,209,216,214,216,223,225,283,221,207,212,124,248,246,267,246,296,191,214,140,255,244,230,177,191,212,221,193,359,327,338,356,338,356,379,338,356,340,200,198,205,205,221,209,228,221,209,225,237,251,253,242,246,242,258,344,237,237,239,262,205,306,327,382,347,377,327,382,347,377,294,297,313,207,253,269,253,269,262,269,269,281,281,209,212,235,235,307,354,337,368,327,334,388,419,205,193,207,209,200,193,207,200,193,207,209,209,209,221,225,230,237,230,205,193,207,205,207,221,209,209,228,221,225,221,237,230,237,230,205,209,237,253,283,294,237,237,294,283,294,237,294,294,356,200,216,214,294,294,294,235,248,235,239,230,278,267,278,271,278,267,338,315,338,315,338,315,338,315,209,258,228,251,235,251,336,255,317,336,255,317,209,207,278,253,278,225,225,246,225,225,223,237,235,228,244,292,322,317,334,329,290,294,292,357,386,338,269,258,329,308,225,322,327,320,297,320,297,338,347,297,338,363,322,327,322,317,334,329,216,306,327,283,285,237,248,172,189,246,267,264,269,283,253,285,267,297,172,274,232,246,294,338,237,237,244,244,294,294,242,267,304,304,285,306,288,306,306,306,313,308,313,308,363,306,412,453,334,423,274,329,283,347,347,223,223,285,338,244,253,172,320,221,239,221,244,253,244,283,297,297,264,382,221,228,244,253,290,189,292,294,347,350,334,299,232,221,228,184,205,216,207,244,242,228,354,186,202,209,242,288,301,235,239,248,230,235,262,269,262,306,306,419,426,322,359,375,200,216,258,276,327,359,248,283,288,281,343,304,304,357,345,274,285,327,207,207,225,244,359,359,172,163,172,166,177,172,200,172,175,168,200,172,177,172,189,198,189,198,186,186,207,200,186,186,207,200,186,186,193,212,186,186,207,200,186,186,207,200,186,186,288,283,267,232,255,264,264,271,290,191,202,232,244,232,246,235,246,242,251,255,260,262,267,246,253,253,258,253,258,255,267,242,246,244,251,322,248,255,258,262,274,274,274,274,212,228,218,246,225,239,286,327,212,228,218,246,225,239,281,283,251,255,262,264,292,262,294,297,294,297,370,370,396,396,396,396,359,193,221,150,150,193,221,216,255,225,281,209,212,216,212,214,221,271,219,196,191,202,205,122,239,242,258,246,292,205,216,189,254,251,249,235,180,196,226,197,365,332,346,343,362,343,362,343,362,390,212,224,214,232,224,214,230,211,232,232,247,249,255,344,242,240,244,267,209,313,211,257,273,257,273,266,263,265,300,285,222,307,360,337,375,334,388,408,197,211,207,209,197,211,207,209,209,209,238,217,231,216,241,211,197,211,211,210,221,209,209,232,232,246,238,238,247,238,209,238,263,288,283,238,238,283,288,283,283,283,219,283,244,260,232,245,232,246,238,238,284,271,282,278,284,271,344,321,344,321,344,321,344,321,215,231,257,264,238,257,343,269,322,343,269,322,212,211,282,282,248,231,230,252,231,230,215,240,221,293,289,222,263,221,229,293,332,325,302,218,229,272,284,275,263,335,313,211,328,332,326,302,326,302,339,353,302,302,339,364,255,334,327,332,323,334,312,332,284,283,214,242,226,249,262,247,256,181,193,274,300,177,279,242,252,301,354,246,296,246,296,302,311,311,254,302,264,254,302,264,241,275,279,313,313,370,420,452,331,340,248,336,291,356,356,291,344,229,212,227,237,254,251,177,293,322,212,258,246,258,286,303,303,268,371,225,231,214,258,246,258,289,186,286,293,295,357,360,322,300,302,183,183,268,268,214,308,310,310,417,476,369,216,366,363,303,313,313,361,355,298,335,252,188,206,212,231,188,198,252,277,240,244,239,253,233,270,275,268,401,298,365,203,282,281,335,359,233,248,253,294,287,289,340,289,199,229,181,172,181,170,195,194,181,170,193,203,193,203,198,215,198,203,212,201,212,201,199,214,212,201,212,201,238,260,269,270,278,294,186,183,194,194,208,223,238,249,236,251,259,262,260,272,245,252,250,255,240,251,246,257,260,265,268,272,251,258,257,262,329,334,253,261,260,267,278,278,278,278,217,232,222,250,230,245,272,277,300,286,334,336,217,232,277,222,250,230,245,285,287,255,298,267,262,267,271,300,303,300,303,373,373,403,404,403,404,367,197,224,157,157,197,224,222,254,233,285,217,216,220,124,251,259,248,218,231,231,226,247,232,239,247,192,259,251,210,261,250,190,197,226,197,197,205,217,280,322,331,345,388,450,177,205,204,217,226,210,231,220,238,238,246,249,255,243,241,246,267,253,260,330,330,309,232,259,273,266,263,265,312,285,222,370,307,360,337,375,321,375,407,430,207,197,219,213,210,200,202,206,213,213,213,224,242,228,246,238,211,213,213,224,242,238,228,246,228,213,228,249,249,292,273,292,238,273,292,292,292,245,267,224,242,224,250,228,228,284,273,283,273,284,273,343,324,343,324,343,324,355,213,233,260,260,240,341,270,320,341,270,320,248,233,250,217,236,222,279,295,223,263,223,229,299,329,331,299,222,236,273,284,367,349,290,278,336,312,212,324,330,307,325,302,325,302,339,352,302,302,339,387,256,406,341,332,279,306,323,330,330,333,170,167,226,256,257,200,233,253,259,274,300,184,200,221,280,246,257,301,355,277,242,296,242,296,311,311,253,302,265,253,302,265,238,243,276,280,313,313,368,317,428,461,438,461,331,340,252,231,243,257,176,293,341,214,258,258,303,303,372,226,232,258,258,289,185,286,293,295,355,358,340,346,321,300,301,187,190,273,291,285,273,291,285,221,308,413,467,233,353,281,281,363,363,369,303,303,313,322,305,349,348,365,298,340,234,179,212,222,218,190,275,246,245,259,233,239,275,268,401,212,233,276,318,306,347,359,240,248,253,280,280,276,278,350,237,275,200,184,175,184,175,197,197,213,214,184,175,197,197,215,214,196,210,196,210,205,220,210,227,196,210,213,227,196,210,210,227,196,220,242,261,269,270,278,300,189,188,199,197,209,225,193,195,205,204,221,237,227,241,226,242,228,243,225,242,230,246,232,243,231,246,228,246,233,246,266,267,266,267,219,229,230,249,268,281,281,296,334,334,219,229,230,249,248,285,287,287,390,390,390,400,400,400,401,375,152,200,228,223,255,235,285,204,232,216,220,256,263,221,241,204,219,221,241,204,219,221,244,232,239,249,192,259,251,210,261,250,196,205,209,228,240,197,197,205,217,280,226,292,271,322,332,346,177,203,204,217,203,204,203,203,216,235,235,247,290,290,236,240,226,258,260,304,338,338,248,260,318,223,232,232,239,232,298,298,313,270,245,222,370,389,389,353,389,405,197,219,208,202,208,208,208,183,240,223,245,235,214,208,208,183,240,235,223,245,223,208,236,248,248,241,292,286,292,292,283,292,245,267,222,255,222,249,227,227,280,273,299,280,280,273,283,344,324,344,324,344,324,355,217,222,223,241,240,266,270,317,341,270,317,341,522,248,217,227,216,240,222,291,295,224,263,224,229,311,329,329,302,220,235,273,284,361,348,297,278,336,312,228,213,324,331,325,246,307,325,302,325,302,339,339,352,302,302,339,363,252,403,341,282,312,279,306,323,331,239,325,340,173,170,167,173,224,228,253,260,200,233,251,259,274,301,200,221,257,354,227,277,215,242,296,253,302,265,215,242,296,253,302,265,311,311,200,238,207,243,276,280,313,368,413,317,265,454,464,454,464,336,349,337,350,246,225,231,273,257,176,293,341,214,254,254,286,187,240,259,195,211,371,226,232,262,262,289,185,286,293,295,355,358,340,346,321,300,301,188,189,244,256,245,274,291,285,274,291,285,217,258,313,312,419,473,225,277,272,282,285,364,357,367,302,304,322,322,324,302,275,306,271,356,291,339,236,196,215,214,224,218,222,193,204,227,246,251,248,261,410,209,240,235,282,317,305,346,355,251,268,255,276,265,261,269,238,275,202,184,175,184,174,212,214,184,174,215,214,197,210,197,210,215,227,195,210,215,227,197,210,211,228,203,220,220,232,248,261,269,270,278,300,227,193,195,205,204,221,237,227,241,243,260,249,258,226,242,228,243,225,242,230,246,248,257,250,260,232,243,231,246,324,352,228,246,251,266,233,246,266,267,266,267,285,219,229,249,257,230,249,268,296,281,281,334,334,219,229,249,257,230,249,248,287,285,287,286,229,235,235,242,235,235,249,261,261,279,397,397,397,387,387,388,200,229,239,223,256,235,291,296,204,232,220,227,221,241,206,216,221,241,216,214,224,228,240,227,240,199,252,258,210,261,232,242,196,205,209,228,240,197,197,205,217,280,218,226,292,271,312,324,332,346,264,182,204,221,204,204,204,224,224,252,230,258,260,294,247,262,268,222,230,230,234,230,270,241,220,315,465,207,202,194,207,207,213,207,207,227,256,235,228,256,228,207,231,248,241,282,269,282,282,282,294,273,227,256,227,256,227,256,229,229,229,299,280,299,280,294,273,294,273,294,324,324,269,344,355,270,269,217,222,223,245,223,245,245,314,272,294,341,254,294,522,249,214,227,267,324,222,232,298,337,328,209,227,302,220,235,279,297,355,349,299,286,331,318,381,368,228,214,321,340,325,307,325,304,339,352,339,304,339,363,402,341,255,241,274,282,312,279,306,326,332,239,325,340,173,170,167,173,224,229,253,261,233,251,259,275,301,211,257,354,231,227,277,215,242,296,253,302,265,215,242,296,253,302,265,311,311,200,238,207,243,276,280,313,368,413,229,279,487,493,366,370,366,370,370,370,384,311,246,291,305,365,291,294,225,231,248,273,254,293,341,220,254,254,294,189,261,214,371,226,232,262,262,289,185,190,286,295,295,354,324,330,360,360,299,301,321,186,189,195,199,192,201,253,263,255,255,263,263,282,277,217,235,232,245,237,239,318,299,396,225,262,265,309,309,292,297,370,357,370,264,323,324,315,315,327,275,306,271,356,337,343,303,238,196,215,219,231,221,221,193,204,213,228,244,271,257,254,378,209,234,234,282,312,355,286,355,251,248,268,253,275,265,265,241,270,205,184,175,184,175,212,214,184,175,215,214,197,210,197,210,214,227,197,210,215,228,197,210,214,227,197,220,220,228,246,261,270,271,279,295,233,193,195,205,204,221,237,227,241,243,260,249,258,226,242,228,243,248,286,225,242,230,246,248,257,250,260,232,243,231,246,315,324,352,335,334,350,228,246,251,266,233,246,266,267,266,267,297,219,229,249,257,231,249,265,275,329,219,229,249,257,231,249,264,272,250,253,253,250,261,261,273,295,313,261,261,279,382,397,397,397,382,382,388,200,231,256,235,296,204,232,244,213,232,197,218,215,219,197,219,218,219,233,211,233,242,233,250,199,254,258,210,232,241,196,209,228,240,197,205,217,271,218,226,288,271,312,324,270,333,205,206,205,206,205,205,226,247,226,267,308,226,296,296,347,347,243,222,245,245,252,245,255,255,339,276,241,220,315,401,291,364,291,373,373,204,219,200,219,195,213,204,219,219,249,231,233,257,233,206,222,290,290,290,290,273,231,255,233,231,231,255,255,233,233,233,299,299,280,280,290,290,273,273,290,322,322,273,354,322,322,322,322,322,322,290,273,290,213,207,210,215,339,339,235,215,339,339,235,245,302,302,245,302,254,318,318,200,216,522,250,211,227,203,232,213,238,234,238,209,256,221,268,263,276,324,333,209,227,227,235,219,235,282,296,355,349,290,228,214,321,357,332,343,327,307,305,325,305,325,339,352,358,352,305,305,368,363,393,342,392,255,238,284,282,312,280,311,326,332,239,327,343,183,172,167,183,223,254,261,251,259,228,257,360,231,236,227,232,277,303,215,242,253,265,299,299,215,242,253,265,299,299,200,220,207,217,243,413,368,279,485,493,370,370,370,370,384,311,266,262,258,305,305,354,365,264,294,336,245,242,238,248,273,273,318,254,293,337,220,254,254,294,189,262,214,395,226,232,262,262,285,185,190,286,286,295,324,324,360,360,286,301,321,186,189,253,263,255,255,263,263,282,277,235,232,245,237,318,299,396,309,309,327,275,306,271,356,219,231,221,221,213,271,257,378,286,355,253,265,265,270,205,174,174,197,174,200,184,184,207,191,212,190,210,194,210,246,261,270,271,279,300,233,313,313,271,272,277,277,269,278,329,264,272,250,253,253,250,261,261,273,295,313,261,261,279,386,386,400,400,400,382,382,387,200,231,239,263,236,297,204,232,208,234,208,219,223,208,219,220,219,232,240,232,248],\"xaxis\":\"x\",\"yaxis\":\"y\",\"type\":\"histogram\",\"opacity\":0.7}],                        {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"co2\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"count\"}},\"legend\":{\"tracegroupgap\":0},\"margin\":{\"t\":60},\"barmode\":\"relative\"},                        {\"responsive\": true}                    ).then(function(){\n                            \nvar gd = document.getElementById('ad1f6814-7d2b-425c-8234-8710cfb3d898');\nvar x = new MutationObserver(function (mutations, observer) {{\n        var display = window.getComputedStyle(gd).display;\n        if (!display || display === 'none') {{\n            console.log([gd, 'removed!']);\n            Plotly.purge(gd);\n            observer.disconnect();\n        }}\n}});\n\n// Listen for the removal of the full notebook cells\nvar notebookContainer = gd.closest('#notebook-container');\nif (notebookContainer) {{\n    x.observe(notebookContainer, {childList: true});\n}}\n\n// Listen for the clearing of the current output cell\nvar outputEl = gd.closest('.output');\nif (outputEl) {{\n    x.observe(outputEl, {childList: true});\n}}\n\n                        })                };                            </script>        </div>\n</body>\n</html>"},"metadata":{}}],"execution_count":62},{"id":"fdc7ac3c-38f2-4bfc-85c0-a8ab7c588e6b","cell_type":"code","source":"fig = px.scatter(\n    df,\n    x=\"consumption\",\n    y=\"co2\",\n    trendline=\"ols\"\n)\n\nfig.show()","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:19:18.379784Z","iopub.execute_input":"2026-05-06T03:19:18.380997Z","iopub.status.idle":"2026-05-06T03:19:18.448389Z","shell.execute_reply.started":"2026-05-06T03:19:18.380961Z","shell.execute_reply":"2026-05-06T03:19:18.447306Z"}},"outputs":[{"output_type":"display_data","data":{"text/html":"<html>\n<head><meta charset=\"utf-8\" /></head>\n<body>\n    <div>            <script src=\"https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_SVG\"></script><script type=\"text/javascript\">if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}</script>                <script type=\"text/javascript\">window.PlotlyConfig = {MathJaxConfig: 'local'};</script>\n        <script charset=\"utf-8\" src=\"https://cdn.plot.ly/plotly-2.35.2.min.js\"></script>                <div id=\"7c6e53b2-3806-4894-ab4d-c483519978ae\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div>            <script type=\"text/javascript\">                                    window.PLOTLYENV=window.PLOTLYENV || {};                                    if (document.getElementById(\"7c6e53b2-3806-4894-ab4d-c483519978ae\")) {                    Plotly.newPlot(                        \"7c6e53b2-3806-4894-ab4d-c483519978ae\",                        [{\"hovertemplate\":\"consumption=%{x}\\u003cbr\\u003eco2=%{y}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"marker\":{\"color\":\"#636efa\",\"symbol\":\"circle\"},\"mode\":\"markers\",\"name\":\"\",\"showlegend\":false,\"x\":[8.5,9.6,5.9,11.1,10.6,10.0,10.1,11.1,11.6,9.2,9.8,10.4,8.4,15.6,15.6,14.7,15.4,14.7,15.4,15.6,8.8,10.0,9.3,10.0,10.0,9.3,10.2,10.9,11.2,11.2,11.3,11.2,12.5,15.5,10.5,10.4,11.2,9.2,13.2,14.6,17.7,14.8,17.8,14.6,17.7,14.8,17.8,13.3,13.4,12.5,11.4,12.4,11.4,12.4,11.6,12.2,12.2,12.8,12.7,9.1,9.1,10.3,10.3,13.4,15.5,14.2,16.5,16.5,16.5,19.0,8.4,8.7,8.8,8.4,8.7,9.1,9.1,9.1,9.6,10.0,9.9,10.3,10.1,8.4,8.7,9.1,9.6,10.0,9.9,10.3,8.8,9.1,10.1,10.7,12.2,12.7,10.1,12.7,12.2,12.7,10.7,12.7,12.7,15.5,8.3,9.3,9.2,12.7,12.7,14.7,13.8,14.7,13.8,14.7,13.8,14.7,13.8,9.1,11.3,10.0,11.0,11.1,13.9,16.1,11.9,14.1,9.1,8.7,12.1,11.0,12.1,9.9,9.8,10.7,9.9,9.8,9.6,10.2,10.1,10.1,10.8,12.8,16.6,14.8,16.6,14.8,16.6,14.8,14.7,16.4,12.6,12.8,12.7,16.6,14.8,12.0,11.2,9.9,14.1,14.3,13.8,13.9,13.8,13.8,13.2,14.1,14.3,14.7,16.4,13.2,10.2,10.8,7.5,8.2,11.5,11.7,12.3,11.1,11.6,11.0,12.3,11.6,12.8,7.6,11.8,10.6,11.0,12.8,14.5,15.0,10.3,10.6,12.8,10.5,12.2,13.3,13.3,12.4,13.3,12.4,13.3,13.3,13.3,13.1,12.6,13.7,13.5,13.7,13.5,15.8,18.3,15.7,17.4,11.9,14.5,9.8,9.8,15.4,15.1,12.4,12.4,15.0,14.7,12.3,12.3,15.4,15.1,10.4,11.0,7.6,13.9,9.7,10.4,9.7,10.6,11.0,10.6,12.6,12.3,12.9,12.9,11.4,16.5,8.2,12.7,12.7,15.1,15.3,14.5,13.1,10.2,9.6,9.9,8.0,9.4,9.4,10.5,10.5,10.4,10.6,10.5,15.1,15.3,13.2,13.4,7.8,9.2,11.5,13.1,13.1,10.2,10.0,10.4,10.5,10.4,10.2,8.8,11.6,11.7,11.4,12.9,13.5,12.9,13.5,18.2,17.7,15.2,15.6,15.8,11.3,12.1,14.2,15.5,12.1,12.0,13.2,11.7,12.7,14.2,8.9,9.0,9.8,10.7,16.5,15.7,15.7,7.8,7.8,7.8,7.8,8.7,7.8,7.6,7.3,8.7,7.8,7.8,7.8,8.3,8.0,8.3,8.0,9.0,8.5,8.3,8.0,9.0,8.5,8.3,8.0,8.3,8.0,8.3,8.0,9.0,8.5,8.3,8.0,9.0,8.5,8.3,8.0,12.5,12.3,11.6,10.2,11.0,11.5,11.4,11.7,12.9,8.1,8.6,8.7,10.9,10.1,10.7,10.3,10.7,10.5,11.0,10.8,11.0,11.0,11.2,10.1,10.7,10.6,10.8,10.7,10.9,14.0,11.9,11.9,11.9,11.9,9.2,9.9,9.8,10.4,12.4,13.6,14.4,13.2,10.9,13.9,15.2,9.2,9.9,9.8,10.4,10.9,11.1,11.3,11.5,12.7,11.3,12.8,12.9,16.0,16.0,17.1,17.1,17.1,17.1,15.6,8.4,9.5,6.4,6.4,16.9,16.9,8.5,9.6,9.5,11.2,12.5,11.2,12.5,9.1,9.4,9.3,9.4,9.7,9.8,12.3,9.6,9.0,9.2,5.4,10.8,10.7,11.6,10.7,12.6,8.3,9.3,6.1,11.1,10.6,10.0,7.7,8.3,9.2,9.6,8.4,15.6,14.2,14.7,15.5,14.7,15.5,16.5,14.7,15.5,14.8,8.7,8.6,8.9,8.9,9.6,9.1,9.9,9.6,9.1,9.8,10.3,10.9,11.0,10.5,10.7,10.5,11.0,14.6,10.3,10.3,10.4,11.4,8.9,13.3,14.2,16.6,14.8,16.4,14.2,16.6,14.8,16.4,12.8,12.9,13.3,9.0,11.0,11.7,11.0,11.7,11.4,11.7,11.7,11.9,12.2,9.1,9.2,10.2,10.2,13.1,15.4,14.4,16.0,14.2,14.2,16.5,18.2,8.9,8.4,9.0,9.1,8.7,8.4,9.0,8.7,8.4,9.0,9.1,9.1,9.1,9.6,9.8,10.0,10.3,10.0,8.9,8.4,9.0,8.9,9.0,9.6,9.1,9.1,9.9,9.6,9.8,9.6,10.3,10.0,10.3,10.0,8.9,9.1,10.3,11.0,12.3,12.8,10.3,10.3,12.8,12.3,12.8,10.3,12.8,12.8,15.5,8.7,9.4,9.3,12.8,12.8,12.8,10.2,10.8,10.2,10.4,10.0,12.1,11.6,12.1,11.8,12.1,11.6,14.7,13.7,14.7,13.7,14.7,13.7,14.7,13.7,9.1,11.2,9.9,10.9,10.2,10.9,14.6,11.1,13.8,14.6,11.1,13.8,9.1,9.0,12.1,11.0,12.1,9.8,9.8,10.7,9.8,9.8,9.7,10.3,10.2,9.9,10.6,12.7,14.0,13.8,14.5,14.3,12.6,12.8,12.7,15.5,16.8,14.7,11.7,11.2,14.3,13.4,9.8,14.0,14.2,13.9,12.9,13.9,12.9,14.7,15.1,12.9,14.7,15.8,14.0,14.2,14.0,13.8,14.5,14.3,9.4,13.3,14.2,12.3,12.4,10.3,10.8,7.5,8.2,10.7,11.6,11.5,11.7,12.3,11.0,12.4,11.6,12.9,7.5,11.9,10.1,10.7,12.8,14.7,10.3,10.3,10.6,10.6,12.8,12.8,10.5,11.6,13.2,13.2,12.4,13.3,12.5,13.3,13.3,13.3,13.6,13.4,13.6,13.4,15.8,13.3,17.9,19.7,14.5,18.4,11.9,14.3,12.3,15.1,15.1,9.7,9.7,12.4,14.7,10.6,11.0,7.5,13.9,9.6,10.4,9.6,10.6,11.0,10.6,12.3,12.9,12.9,11.5,16.6,9.6,9.9,10.6,11.0,12.6,8.2,12.7,12.8,15.1,15.2,14.5,13.0,10.1,9.6,9.9,8.0,8.9,9.4,9.0,10.6,10.5,9.9,15.4,8.1,8.8,9.1,10.5,12.5,13.1,10.2,10.4,10.8,10.0,10.2,11.4,11.7,11.4,13.3,13.3,18.2,18.5,14.0,15.6,16.3,8.7,9.4,11.2,12.0,14.2,15.6,10.8,12.3,12.5,12.2,14.9,13.2,13.2,15.5,15.0,11.9,12.4,14.2,9.0,9.0,9.8,10.6,15.6,15.6,7.5,7.1,7.5,7.2,7.7,7.5,8.7,7.5,7.6,7.3,8.7,7.5,7.7,7.5,8.2,8.6,8.2,8.6,8.1,8.1,9.0,8.7,8.1,8.1,9.0,8.7,8.1,8.1,8.4,9.2,8.1,8.1,9.0,8.7,8.1,8.1,9.0,8.7,8.1,8.1,12.5,12.3,11.6,10.1,11.1,11.5,11.5,11.8,12.6,8.3,8.8,10.1,10.6,10.1,10.7,10.2,10.7,10.5,10.9,11.1,11.3,11.4,11.6,10.7,11.0,11.0,11.2,11.0,11.2,11.1,11.6,10.5,10.7,10.6,10.9,14.0,10.8,11.1,11.2,11.4,11.9,11.9,11.9,11.9,9.2,9.9,9.5,10.7,9.8,10.4,12.2,14.2,9.2,9.9,9.5,10.7,9.8,10.4,12.2,12.3,10.9,11.1,11.4,11.5,12.7,11.4,12.8,12.9,12.8,12.9,16.1,16.1,17.2,17.2,17.2,17.2,15.6,8.4,9.6,6.5,6.5,8.4,9.6,9.4,11.1,9.8,12.2,9.1,9.2,9.4,9.2,9.3,9.6,11.8,9.5,8.5,8.3,8.8,8.9,5.3,10.4,10.5,11.2,10.7,12.4,8.9,9.4,8.1,11.1,10.7,10.7,10.0,7.7,8.3,9.6,8.4,15.6,14.2,14.8,14.7,15.5,14.7,15.5,14.7,15.5,16.5,8.9,9.6,9.1,9.9,9.6,9.1,9.8,9.2,9.9,9.9,10.5,10.7,10.9,14.6,10.3,10.3,10.4,11.4,8.9,13.3,9.0,11.0,11.7,11.0,11.7,11.4,11.3,11.4,12.8,12.2,9.5,13.1,15.4,14.4,16.0,14.2,16.5,17.5,8.4,9.0,8.8,8.9,8.4,9.0,8.8,8.9,8.9,8.9,10.2,9.3,9.9,9.3,10.3,8.9,8.4,9.0,8.9,9.0,9.4,8.9,8.9,9.9,9.9,10.5,10.2,10.2,10.5,10.2,8.9,10.2,11.2,12.3,12.1,10.2,10.2,12.1,12.3,12.1,12.1,12.1,9.4,12.1,10.4,11.1,9.9,10.4,9.9,10.5,10.2,10.2,12.1,11.6,12.1,11.8,12.1,11.6,14.7,13.7,14.7,13.7,14.7,13.7,14.7,13.7,9.2,9.9,10.9,11.3,10.2,10.9,14.6,11.5,13.8,14.6,11.5,13.8,9.1,9.0,12.1,12.1,10.6,9.8,9.8,10.7,9.8,9.8,9.2,10.3,9.4,12.5,12.4,9.5,11.2,9.5,9.8,12.5,14.1,13.9,12.8,9.3,9.8,11.6,12.1,11.7,11.2,14.3,13.4,9.0,14.0,14.2,13.9,12.9,13.9,12.9,14.5,15.1,12.9,12.9,14.5,15.6,10.9,14.2,14.0,14.2,13.8,14.3,13.3,14.2,12.2,12.1,9.1,10.3,9.6,10.6,11.1,10.5,10.8,7.7,8.2,11.6,12.8,7.5,11.9,10.3,10.7,12.8,15.1,10.5,12.6,10.5,12.6,12.8,13.3,13.3,10.8,12.9,11.3,10.8,12.9,11.3,10.3,11.7,11.9,13.3,13.3,15.8,17.9,19.3,14.2,14.6,10.6,14.3,12.4,15.1,15.1,12.4,14.7,9.7,9.0,9.7,10.2,10.9,10.7,7.6,12.5,13.9,9.0,11.1,10.6,11.1,12.3,12.9,12.9,11.5,15.9,9.6,9.9,9.0,11.1,10.6,11.1,12.6,8.0,12.2,12.5,12.6,15.1,15.2,14.0,12.9,12.9,7.8,7.8,11.7,11.7,9.1,13.1,13.3,13.3,18.5,21.4,16.3,9.3,15.6,15.2,12.8,13.2,13.0,15.5,15.0,12.4,14.2,10.6,8.0,8.9,9.0,10.4,8.1,8.6,10.7,11.7,10.2,10.4,10.2,10.8,10.0,11.4,11.7,11.4,17.9,14.0,15.5,8.7,12.0,12.0,14.2,15.3,10.2,10.9,10.8,12.2,12.5,12.3,14.5,12.3,8.5,9.8,7.7,7.3,7.7,7.2,8.3,8.2,7.7,7.2,8.2,8.7,8.2,8.7,8.5,9.2,8.5,8.7,9.0,8.6,9.0,8.6,8.5,9.2,9.0,8.6,9.0,8.6,10.4,11.1,11.5,11.5,11.8,12.6,7.9,7.8,8.2,8.3,8.8,9.5,10.1,10.6,10.1,10.7,11.0,11.2,11.1,11.6,10.5,10.7,10.6,10.9,10.2,10.7,10.5,10.9,11.1,11.3,11.4,11.6,10.7,11.0,11.0,11.2,14.0,14.3,10.8,11.1,11.2,11.4,11.9,11.9,11.9,11.9,9.2,9.9,9.5,10.7,9.8,10.4,11.6,11.8,12.8,12.2,14.2,14.3,9.2,9.9,11.8,9.5,10.7,9.8,10.4,12.2,12.3,10.9,12.7,11.4,11.1,11.4,11.5,12.8,12.9,12.8,12.9,16.1,16.1,17.2,17.2,17.2,17.2,15.6,8.4,9.6,6.9,6.9,8.4,9.6,9.4,11.2,10.0,12.2,9.3,9.3,9.4,5.3,10.7,11.2,10.6,9.3,9.9,9.9,9.7,10.6,10.0,10.2,10.6,8.2,11.0,10.7,9.0,11.0,10.7,8.1,8.3,9.6,8.4,8.4,8.7,9.2,11.9,13.7,14.1,14.7,16.4,19.2,7.6,8.8,8.6,9.3,9.7,9.0,9.9,9.4,10.0,10.0,10.5,10.7,10.9,10.3,10.3,10.5,11.4,10.8,11.1,14.1,14.1,13.1,9.9,11.0,11.7,11.4,11.3,11.4,13.4,12.2,9.5,15.9,13.1,15.4,14.4,16.0,13.8,16.0,17.5,18.3,8.7,8.4,9.4,9.1,9.0,8.4,8.6,8.8,9.1,9.1,9.1,9.6,10.4,9.8,10.5,10.2,9.1,9.1,9.1,9.6,10.4,10.2,9.8,10.5,9.8,9.1,9.8,10.6,10.6,12.5,11.7,12.5,10.2,11.7,12.5,12.5,12.5,10.5,11.4,9.6,10.4,9.6,10.7,9.8,9.8,12.1,11.7,12.1,11.7,12.1,11.7,14.7,13.8,14.7,13.8,14.7,13.8,15.1,9.1,10.0,11.1,11.1,10.3,14.6,11.5,13.7,14.6,11.5,13.7,10.6,9.9,10.7,9.3,10.1,9.5,11.9,12.6,9.5,11.2,9.5,9.8,12.7,14.0,14.1,12.8,9.5,10.1,11.7,12.1,15.6,14.9,12.4,11.9,14.3,13.4,9.1,13.8,14.1,13.1,13.9,12.9,13.9,12.9,14.5,15.1,12.9,12.9,14.5,16.6,10.9,17.3,14.6,14.2,11.9,13.0,13.8,14.1,14.1,14.2,7.3,7.2,9.6,10.9,10.9,8.5,10.0,10.8,11.0,11.7,12.8,7.8,8.5,9.4,11.9,10.5,10.9,12.8,15.1,11.8,10.4,12.6,10.4,12.6,13.3,13.3,10.8,12.9,11.3,10.8,12.9,11.3,10.2,10.4,11.8,11.9,13.3,13.3,15.7,13.3,17.9,19.7,18.7,19.7,14.2,14.6,10.7,9.8,10.4,11.0,7.5,12.5,14.6,9.1,11.0,11.0,12.9,12.9,15.8,9.7,9.9,11.0,11.0,12.6,7.9,12.4,12.4,12.6,15.1,15.2,14.7,14.7,13.8,13.1,13.1,8.0,8.1,11.7,12.2,12.1,11.7,12.2,12.1,9.3,13.1,18.5,20.3,10.0,14.6,12.0,12.0,15.6,15.2,16.3,12.8,12.8,13.2,13.8,13.0,14.6,14.3,15.5,12.4,14.5,10.1,8.3,9.0,9.5,9.3,8.1,11.7,9.5,10.4,11.0,10.0,10.2,11.7,11.4,17.9,9.1,10.0,11.7,13.5,13.0,15.0,15.0,10.2,10.5,10.8,12.0,12.0,11.8,11.9,14.5,10.1,11.7,8.5,7.9,7.5,7.9,7.5,8.4,8.4,9.1,9.1,7.9,7.5,8.4,8.4,9.2,9.1,8.3,8.9,8.3,8.9,8.7,9.4,9.0,9.7,8.4,8.9,9.1,9.7,8.3,8.9,9.0,9.7,8.4,9.4,10.4,11.1,11.5,11.5,11.8,12.8,8.0,8.0,8.4,8.4,8.9,9.6,8.2,8.3,8.7,8.7,9.4,10.1,9.7,10.3,9.7,10.4,9.7,10.4,9.6,10.4,9.8,10.5,9.9,10.4,9.9,10.5,9.8,10.5,10.0,10.5,11.4,11.4,11.4,11.4,9.4,9.8,9.9,10.7,11.5,12.1,12.0,12.6,14.2,14.2,9.4,9.8,9.9,10.7,10.6,12.2,12.3,12.3,16.7,16.7,16.7,17.1,17.1,17.1,17.1,16.1,6.7,8.6,9.7,9.5,11.2,10.0,12.2,8.7,9.9,9.3,9.4,10.7,11.1,9.5,10.3,8.7,9.4,9.5,10.3,8.7,9.4,9.4,10.4,10.0,10.2,10.6,8.2,11.0,10.7,9.0,11.0,10.7,8.4,8.7,8.9,9.8,10.3,8.4,8.4,8.7,9.2,11.9,9.6,12.4,11.5,13.7,14.1,14.7,7.6,8.7,8.7,9.3,8.7,8.7,8.7,8.7,9.2,10.0,10.0,10.5,12.4,12.4,10.1,10.3,9.6,11.0,11.1,13.1,14.5,14.5,10.5,11.1,13.7,9.6,9.9,9.9,10.2,9.9,12.8,12.8,13.4,11.5,10.5,9.5,15.9,16.6,16.6,15.1,16.6,17.3,8.4,9.4,8.9,8.6,8.9,8.9,8.9,7.8,10.3,9.5,10.5,10.0,9.1,8.9,8.9,7.8,10.3,10.0,9.5,10.5,9.5,8.9,10.0,10.5,10.5,10.3,12.4,12.2,12.4,12.4,12.1,12.4,10.5,11.4,9.5,10.9,9.5,10.7,9.7,9.7,11.9,11.6,12.7,11.9,11.9,11.6,12.1,14.7,13.8,14.7,13.8,14.7,13.8,15.1,9.3,9.5,9.5,10.3,10.3,11.4,11.5,13.5,14.6,11.5,13.5,14.6,22.2,10.6,9.2,9.6,9.2,10.3,9.5,11.9,12.6,9.5,11.2,9.5,9.8,12.7,14.0,14.0,12.8,9.4,10.1,11.7,12.1,15.4,14.8,12.7,11.9,14.3,13.4,9.7,9.1,13.8,14.1,13.8,10.5,13.1,13.9,12.9,13.9,12.9,14.5,14.5,15.1,12.9,12.9,14.5,15.6,10.8,17.1,14.6,11.9,13.2,11.9,13.0,13.8,14.1,10.2,13.8,14.5,7.4,7.3,7.2,7.4,9.6,9.7,10.8,11.1,8.5,10.0,10.7,11.0,11.7,12.8,8.5,9.4,10.9,15.1,9.9,11.8,9.2,10.4,12.6,10.8,12.9,11.3,9.2,10.4,12.6,10.8,12.9,11.3,13.3,13.3,8.5,10.2,8.8,10.4,11.8,11.9,13.3,15.7,17.7,13.3,11.3,19.4,19.8,19.4,19.8,14.4,15.0,14.5,15.0,10.5,9.6,9.8,11.6,11.0,7.5,12.5,14.6,9.1,10.9,10.9,12.2,8.0,10.2,11.0,8.4,9.1,15.8,9.7,9.9,11.2,11.2,12.6,7.9,12.2,12.4,12.6,15.1,15.2,14.4,14.7,13.7,12.8,12.8,8.0,8.1,10.4,11.0,10.5,11.7,12.4,12.1,11.7,12.4,12.2,9.2,11.1,13.3,13.3,17.9,20.3,9.6,11.8,11.6,12.1,12.2,15.5,15.2,15.7,12.8,13.0,13.8,13.8,13.9,12.8,11.8,13.1,11.6,15.1,12.4,14.5,10.1,8.4,9.1,9.1,9.6,9.3,9.5,8.2,8.7,9.7,10.4,10.8,10.6,11.1,17.5,9.0,10.0,10.0,12.1,13.5,13.0,14.7,15.1,10.7,11.4,10.9,11.8,11.3,11.2,11.4,10.2,11.8,8.6,7.9,7.5,7.9,7.4,9.0,9.1,7.9,7.4,9.2,9.1,8.4,9.0,8.4,9.0,9.2,9.7,8.3,9.0,9.2,9.7,8.4,9.0,9.0,9.7,8.7,9.4,9.3,9.9,10.6,11.1,11.5,11.5,11.8,12.8,9.6,8.2,8.3,8.7,8.7,9.4,10.1,9.7,10.3,10.4,11.1,10.6,11.0,9.7,10.4,9.7,10.4,9.6,10.4,9.8,10.5,10.6,11.0,10.7,11.1,9.9,10.4,9.9,10.5,13.9,15.1,9.8,10.5,10.8,11.4,10.0,10.5,11.4,11.4,11.4,11.4,12.3,9.4,9.8,10.6,11.0,9.9,10.7,11.5,12.6,12.1,12.0,14.3,14.3,9.4,9.8,10.6,11.0,9.9,10.7,10.6,12.3,12.2,12.3,12.3,9.8,10.1,10.1,10.4,10.1,10.1,10.7,11.2,11.2,11.9,17.0,17.0,17.0,16.6,16.6,16.6,8.6,9.8,10.2,9.5,11.2,10.0,12.5,12.8,8.7,9.9,9.4,9.8,9.4,10.3,8.8,9.3,9.4,10.3,9.3,9.2,9.6,9.8,10.2,9.7,10.3,8.6,10.8,11.0,9.0,11.0,9.9,10.3,8.4,8.7,8.9,9.8,10.3,8.4,8.4,8.7,9.2,11.9,9.3,9.6,12.4,11.5,13.3,13.8,14.1,14.7,11.2,7.8,8.7,9.5,8.7,8.7,8.7,9.6,9.6,10.8,9.9,11.0,11.1,12.5,10.6,11.3,11.5,9.5,9.8,9.8,9.9,9.8,11.5,10.3,9.4,13.6,20.0,8.8,8.6,8.3,8.8,8.8,9.1,8.8,8.8,9.4,11.0,10.0,9.7,11.0,9.7,8.8,9.8,10.5,10.3,12.0,11.5,12.0,12.0,12.0,12.6,11.7,9.7,11.0,9.7,11.0,9.7,11.0,9.8,9.8,9.8,12.7,11.9,12.7,11.9,12.6,11.7,12.6,11.7,12.6,13.9,13.9,11.5,14.7,15.1,11.6,11.5,9.3,9.5,9.6,10.4,9.6,10.4,10.5,13.4,11.6,12.6,14.6,10.8,12.6,22.2,10.7,9.1,9.6,11.3,13.8,9.5,9.9,12.7,14.3,14.0,8.9,9.7,12.8,9.4,10.1,12.0,12.6,15.1,14.9,12.7,12.2,14.0,13.5,16.1,15.6,9.7,9.1,13.7,14.5,13.8,13.1,13.9,13.0,14.5,15.1,14.5,13.0,14.5,15.6,17.1,14.6,10.9,10.3,11.6,11.9,13.2,11.9,13.0,13.9,14.2,10.2,13.8,14.5,7.4,7.3,7.2,7.4,9.6,9.7,10.8,11.1,10.0,10.7,11.0,11.7,12.8,9.0,10.9,15.1,9.8,9.9,11.8,9.2,10.4,12.6,10.8,12.9,11.3,9.2,10.4,12.6,10.8,12.9,11.3,13.3,13.3,8.5,10.2,8.8,10.4,11.8,11.9,13.3,15.7,17.7,9.7,11.8,21.5,21.7,15.9,15.7,15.9,15.7,15.7,15.7,16.9,13.3,10.5,12.4,13.0,15.5,12.4,12.6,9.6,9.8,10.6,11.6,10.9,12.5,14.6,9.5,10.9,10.9,12.6,8.1,11.1,9.1,15.8,9.7,9.9,11.2,11.2,12.6,7.9,8.1,12.2,12.6,12.6,15.0,13.7,14.0,15.3,15.3,12.8,12.8,13.7,7.9,8.1,8.4,8.5,8.3,8.6,10.7,11.2,11.1,10.8,11.2,11.2,12.0,11.8,9.2,10.7,9.9,10.9,10.6,10.2,13.5,12.7,17.0,9.6,11.2,11.3,13.2,13.2,12.4,12.6,15.8,15.2,15.7,11.2,13.7,13.7,13.5,13.5,14.0,11.8,13.1,11.6,15.1,14.3,14.6,13.0,10.2,8.4,9.1,9.4,9.9,9.5,9.5,8.2,8.7,9.8,9.7,10.3,11.6,11.0,10.8,16.3,9.0,10.0,10.0,12.1,13.2,15.1,12.2,15.1,10.7,10.5,11.4,10.8,11.7,11.3,11.3,10.3,11.6,8.8,7.9,7.5,7.9,7.5,9.0,9.1,7.9,7.5,9.2,9.1,8.4,9.0,8.4,9.0,9.2,9.7,8.4,9.0,9.2,9.7,8.4,9.0,9.2,9.7,8.4,9.4,9.3,9.7,10.6,11.1,11.5,11.5,11.8,12.6,9.9,8.2,8.3,8.7,8.7,9.4,10.1,9.7,10.3,10.4,11.2,10.7,11.0,9.7,10.3,9.7,10.4,10.6,12.3,9.6,10.4,9.8,10.5,10.6,11.0,10.7,11.2,9.9,10.4,9.9,10.5,13.5,13.9,15.1,14.4,14.1,15.1,9.8,10.5,10.8,11.4,10.0,10.5,11.4,11.4,11.4,11.4,12.7,9.4,9.8,10.6,11.0,9.9,10.7,11.4,11.8,14.1,9.4,9.8,10.6,11.0,9.9,10.7,11.3,11.7,10.7,10.9,10.9,10.7,11.2,11.2,11.6,12.6,13.4,11.2,11.2,11.9,16.3,17.0,17.0,17.0,16.3,16.3,16.6,8.6,9.9,11.2,10.0,12.7,8.7,9.9,10.4,9.2,9.9,8.4,9.4,9.2,9.4,8.4,9.4,9.3,9.4,10.0,9.0,10.0,10.4,10.0,10.7,8.6,10.9,11.0,9.0,9.9,10.3,8.4,8.9,9.8,10.3,8.4,8.7,9.2,11.6,9.3,9.6,12.3,11.5,13.3,13.8,11.5,14.2,8.8,8.8,8.8,8.8,8.8,8.7,9.7,10.6,9.7,11.5,13.2,9.7,12.7,12.7,14.9,14.9,10.4,9.5,10.5,10.5,10.8,10.5,10.9,10.9,14.5,11.8,10.3,9.4,13.6,17.2,12.4,15.7,12.4,16.0,16.0,8.7,9.4,8.5,9.4,8.3,9.1,8.7,9.4,9.4,10.7,9.9,10.0,11.0,10.0,8.8,9.5,12.4,12.4,12.4,12.4,11.7,9.9,10.9,10.0,9.9,9.9,10.9,10.9,10.0,10.0,10.0,12.7,12.7,11.9,11.9,12.4,12.4,11.7,11.7,12.4,13.8,13.8,11.7,15.1,13.8,13.8,13.8,13.8,13.8,13.8,12.4,11.7,12.4,9.1,8.8,9.0,9.2,14.6,14.6,10.1,9.2,14.6,14.6,10.1,10.5,12.8,12.8,10.5,12.8,10.8,13.6,13.6,8.5,9.3,22.2,10.7,9.0,9.6,8.7,9.9,9.1,10.2,10.0,10.2,9.0,11.0,9.5,11.5,11.3,11.8,13.8,14.2,8.9,9.7,9.8,10.1,9.4,10.1,12.1,12.6,15.1,14.8,12.4,9.7,9.1,13.7,15.2,14.2,14.6,13.9,13.1,13.0,13.9,13.0,13.9,14.5,15.1,15.3,15.1,13.0,13.0,15.6,15.6,16.6,14.5,16.7,10.9,10.2,12.0,11.9,13.2,11.8,13.1,13.9,14.2,10.2,13.9,14.6,7.8,7.4,7.2,7.8,9.6,10.8,11.1,10.7,11.0,9.7,10.9,15.3,9.8,10.1,9.9,9.9,11.8,12.9,9.2,10.4,10.8,11.3,12.7,12.7,9.2,10.4,10.8,11.3,12.7,12.7,8.5,9.4,8.8,9.2,10.4,17.7,15.7,11.8,21.4,21.7,15.7,15.7,15.7,15.7,16.9,13.3,11.3,11.1,11.0,12.9,13.0,15.1,15.5,11.3,12.6,14.3,10.4,10.3,10.2,10.6,11.6,11.6,13.5,10.9,12.5,14.5,9.5,10.9,10.9,12.6,8.1,11.1,9.1,16.9,9.7,9.9,11.2,11.2,12.2,7.9,8.1,12.2,12.2,12.6,13.7,13.7,15.3,15.3,12.2,12.8,13.7,7.9,8.1,10.7,11.2,11.1,10.8,11.2,11.2,12.0,11.8,10.7,9.9,10.9,10.6,13.5,12.7,17.0,13.2,13.2,14.0,11.8,13.1,11.6,15.1,9.4,9.9,9.5,9.5,9.8,11.6,11.0,16.3,12.2,15.1,10.8,11.3,11.3,11.6,8.8,7.5,7.5,8.5,7.5,8.6,7.9,7.9,8.9,8.1,9.1,8.1,9.0,8.3,9.0,10.6,11.1,11.5,11.5,11.8,12.8,9.9,13.3,13.3,11.5,11.6,11.8,11.8,11.5,11.9,14.1,11.3,11.7,10.7,10.9,10.9,10.7,11.2,11.2,11.6,12.6,13.4,11.2,11.2,11.9,16.5,16.5,17.1,17.1,17.1,16.3,16.3,16.5,8.6,9.9,10.2,11.5,10.1,12.7,8.7,9.9,8.9,10.0,8.9,9.4,9.6,8.9,9.4,9.4,9.4,9.9,10.3,9.9,10.7],\"xaxis\":\"x\",\"y\":[196,221,136,255,244,230,232,255,267,212,225,239,193,359,359,338,354,338,354,359,202,230,214,230,230,214,235,251,262,258,265,258,288,363,242,239,258,212,304,336,407,347,409,336,407,347,409,306,308,293,262,285,262,285,267,281,281,300,292,209,209,237,237,314,356,332,380,380,388,437,193,200,202,193,200,209,209,209,221,230,228,237,232,193,200,209,221,230,228,237,202,209,232,246,281,292,232,292,281,292,246,292,292,356,191,214,212,292,292,338,317,338,317,338,317,338,317,209,260,230,253,255,320,370,274,324,209,200,278,253,278,228,225,246,228,225,221,235,232,232,248,294,382,340,382,340,382,340,338,377,290,294,292,382,340,276,258,228,324,329,317,320,317,317,304,324,329,338,377,304,235,248,172,189,265,269,283,255,267,253,283,267,294,175,271,244,253,294,334,345,237,244,294,242,281,306,306,285,306,285,306,306,306,301,290,315,310,315,310,363,421,361,400,274,334,225,225,354,347,285,285,345,338,283,283,354,347,239,253,175,320,223,239,223,244,253,244,290,283,297,297,262,380,189,292,292,347,352,334,301,235,221,228,184,216,216,242,242,239,244,242,347,352,304,308,179,212,264,301,301,235,230,239,242,239,235,202,267,269,262,297,310,297,310,419,407,350,359,363,260,278,327,356,278,276,304,269,292,327,205,207,225,246,380,361,361,179,179,179,179,200,179,175,168,200,179,179,179,191,184,191,184,207,196,191,184,207,196,191,184,191,184,191,184,207,196,191,184,207,196,191,184,288,283,267,235,253,264,262,269,297,186,198,200,251,232,246,237,246,242,253,248,253,253,258,232,246,244,248,246,251,322,274,274,274,274,212,228,225,239,290,313,338,310,251,326,358,212,228,225,239,251,255,260,264,292,260,294,297,368,368,393,393,393,393,359,193,218,147,147,389,389,196,221,218,258,288,258,288,209,216,214,216,223,225,283,221,207,212,124,248,246,267,246,296,191,214,140,255,244,230,177,191,212,221,193,359,327,338,356,338,356,379,338,356,340,200,198,205,205,221,209,228,221,209,225,237,251,253,242,246,242,258,344,237,237,239,262,205,306,327,382,347,377,327,382,347,377,294,297,313,207,253,269,253,269,262,269,269,281,281,209,212,235,235,307,354,337,368,327,334,388,419,205,193,207,209,200,193,207,200,193,207,209,209,209,221,225,230,237,230,205,193,207,205,207,221,209,209,228,221,225,221,237,230,237,230,205,209,237,253,283,294,237,237,294,283,294,237,294,294,356,200,216,214,294,294,294,235,248,235,239,230,278,267,278,271,278,267,338,315,338,315,338,315,338,315,209,258,228,251,235,251,336,255,317,336,255,317,209,207,278,253,278,225,225,246,225,225,223,237,235,228,244,292,322,317,334,329,290,294,292,357,386,338,269,258,329,308,225,322,327,320,297,320,297,338,347,297,338,363,322,327,322,317,334,329,216,306,327,283,285,237,248,172,189,246,267,264,269,283,253,285,267,297,172,274,232,246,294,338,237,237,244,244,294,294,242,267,304,304,285,306,288,306,306,306,313,308,313,308,363,306,412,453,334,423,274,329,283,347,347,223,223,285,338,244,253,172,320,221,239,221,244,253,244,283,297,297,264,382,221,228,244,253,290,189,292,294,347,350,334,299,232,221,228,184,205,216,207,244,242,228,354,186,202,209,242,288,301,235,239,248,230,235,262,269,262,306,306,419,426,322,359,375,200,216,258,276,327,359,248,283,288,281,343,304,304,357,345,274,285,327,207,207,225,244,359,359,172,163,172,166,177,172,200,172,175,168,200,172,177,172,189,198,189,198,186,186,207,200,186,186,207,200,186,186,193,212,186,186,207,200,186,186,207,200,186,186,288,283,267,232,255,264,264,271,290,191,202,232,244,232,246,235,246,242,251,255,260,262,267,246,253,253,258,253,258,255,267,242,246,244,251,322,248,255,258,262,274,274,274,274,212,228,218,246,225,239,286,327,212,228,218,246,225,239,281,283,251,255,262,264,292,262,294,297,294,297,370,370,396,396,396,396,359,193,221,150,150,193,221,216,255,225,281,209,212,216,212,214,221,271,219,196,191,202,205,122,239,242,258,246,292,205,216,189,254,251,249,235,180,196,226,197,365,332,346,343,362,343,362,343,362,390,212,224,214,232,224,214,230,211,232,232,247,249,255,344,242,240,244,267,209,313,211,257,273,257,273,266,263,265,300,285,222,307,360,337,375,334,388,408,197,211,207,209,197,211,207,209,209,209,238,217,231,216,241,211,197,211,211,210,221,209,209,232,232,246,238,238,247,238,209,238,263,288,283,238,238,283,288,283,283,283,219,283,244,260,232,245,232,246,238,238,284,271,282,278,284,271,344,321,344,321,344,321,344,321,215,231,257,264,238,257,343,269,322,343,269,322,212,211,282,282,248,231,230,252,231,230,215,240,221,293,289,222,263,221,229,293,332,325,302,218,229,272,284,275,263,335,313,211,328,332,326,302,326,302,339,353,302,302,339,364,255,334,327,332,323,334,312,332,284,283,214,242,226,249,262,247,256,181,193,274,300,177,279,242,252,301,354,246,296,246,296,302,311,311,254,302,264,254,302,264,241,275,279,313,313,370,420,452,331,340,248,336,291,356,356,291,344,229,212,227,237,254,251,177,293,322,212,258,246,258,286,303,303,268,371,225,231,214,258,246,258,289,186,286,293,295,357,360,322,300,302,183,183,268,268,214,308,310,310,417,476,369,216,366,363,303,313,313,361,355,298,335,252,188,206,212,231,188,198,252,277,240,244,239,253,233,270,275,268,401,298,365,203,282,281,335,359,233,248,253,294,287,289,340,289,199,229,181,172,181,170,195,194,181,170,193,203,193,203,198,215,198,203,212,201,212,201,199,214,212,201,212,201,238,260,269,270,278,294,186,183,194,194,208,223,238,249,236,251,259,262,260,272,245,252,250,255,240,251,246,257,260,265,268,272,251,258,257,262,329,334,253,261,260,267,278,278,278,278,217,232,222,250,230,245,272,277,300,286,334,336,217,232,277,222,250,230,245,285,287,255,298,267,262,267,271,300,303,300,303,373,373,403,404,403,404,367,197,224,157,157,197,224,222,254,233,285,217,216,220,124,251,259,248,218,231,231,226,247,232,239,247,192,259,251,210,261,250,190,197,226,197,197,205,217,280,322,331,345,388,450,177,205,204,217,226,210,231,220,238,238,246,249,255,243,241,246,267,253,260,330,330,309,232,259,273,266,263,265,312,285,222,370,307,360,337,375,321,375,407,430,207,197,219,213,210,200,202,206,213,213,213,224,242,228,246,238,211,213,213,224,242,238,228,246,228,213,228,249,249,292,273,292,238,273,292,292,292,245,267,224,242,224,250,228,228,284,273,283,273,284,273,343,324,343,324,343,324,355,213,233,260,260,240,341,270,320,341,270,320,248,233,250,217,236,222,279,295,223,263,223,229,299,329,331,299,222,236,273,284,367,349,290,278,336,312,212,324,330,307,325,302,325,302,339,352,302,302,339,387,256,406,341,332,279,306,323,330,330,333,170,167,226,256,257,200,233,253,259,274,300,184,200,221,280,246,257,301,355,277,242,296,242,296,311,311,253,302,265,253,302,265,238,243,276,280,313,313,368,317,428,461,438,461,331,340,252,231,243,257,176,293,341,214,258,258,303,303,372,226,232,258,258,289,185,286,293,295,355,358,340,346,321,300,301,187,190,273,291,285,273,291,285,221,308,413,467,233,353,281,281,363,363,369,303,303,313,322,305,349,348,365,298,340,234,179,212,222,218,190,275,246,245,259,233,239,275,268,401,212,233,276,318,306,347,359,240,248,253,280,280,276,278,350,237,275,200,184,175,184,175,197,197,213,214,184,175,197,197,215,214,196,210,196,210,205,220,210,227,196,210,213,227,196,210,210,227,196,220,242,261,269,270,278,300,189,188,199,197,209,225,193,195,205,204,221,237,227,241,226,242,228,243,225,242,230,246,232,243,231,246,228,246,233,246,266,267,266,267,219,229,230,249,268,281,281,296,334,334,219,229,230,249,248,285,287,287,390,390,390,400,400,400,401,375,152,200,228,223,255,235,285,204,232,216,220,256,263,221,241,204,219,221,241,204,219,221,244,232,239,249,192,259,251,210,261,250,196,205,209,228,240,197,197,205,217,280,226,292,271,322,332,346,177,203,204,217,203,204,203,203,216,235,235,247,290,290,236,240,226,258,260,304,338,338,248,260,318,223,232,232,239,232,298,298,313,270,245,222,370,389,389,353,389,405,197,219,208,202,208,208,208,183,240,223,245,235,214,208,208,183,240,235,223,245,223,208,236,248,248,241,292,286,292,292,283,292,245,267,222,255,222,249,227,227,280,273,299,280,280,273,283,344,324,344,324,344,324,355,217,222,223,241,240,266,270,317,341,270,317,341,522,248,217,227,216,240,222,291,295,224,263,224,229,311,329,329,302,220,235,273,284,361,348,297,278,336,312,228,213,324,331,325,246,307,325,302,325,302,339,339,352,302,302,339,363,252,403,341,282,312,279,306,323,331,239,325,340,173,170,167,173,224,228,253,260,200,233,251,259,274,301,200,221,257,354,227,277,215,242,296,253,302,265,215,242,296,253,302,265,311,311,200,238,207,243,276,280,313,368,413,317,265,454,464,454,464,336,349,337,350,246,225,231,273,257,176,293,341,214,254,254,286,187,240,259,195,211,371,226,232,262,262,289,185,286,293,295,355,358,340,346,321,300,301,188,189,244,256,245,274,291,285,274,291,285,217,258,313,312,419,473,225,277,272,282,285,364,357,367,302,304,322,322,324,302,275,306,271,356,291,339,236,196,215,214,224,218,222,193,204,227,246,251,248,261,410,209,240,235,282,317,305,346,355,251,268,255,276,265,261,269,238,275,202,184,175,184,174,212,214,184,174,215,214,197,210,197,210,215,227,195,210,215,227,197,210,211,228,203,220,220,232,248,261,269,270,278,300,227,193,195,205,204,221,237,227,241,243,260,249,258,226,242,228,243,225,242,230,246,248,257,250,260,232,243,231,246,324,352,228,246,251,266,233,246,266,267,266,267,285,219,229,249,257,230,249,268,296,281,281,334,334,219,229,249,257,230,249,248,287,285,287,286,229,235,235,242,235,235,249,261,261,279,397,397,397,387,387,388,200,229,239,223,256,235,291,296,204,232,220,227,221,241,206,216,221,241,216,214,224,228,240,227,240,199,252,258,210,261,232,242,196,205,209,228,240,197,197,205,217,280,218,226,292,271,312,324,332,346,264,182,204,221,204,204,204,224,224,252,230,258,260,294,247,262,268,222,230,230,234,230,270,241,220,315,465,207,202,194,207,207,213,207,207,227,256,235,228,256,228,207,231,248,241,282,269,282,282,282,294,273,227,256,227,256,227,256,229,229,229,299,280,299,280,294,273,294,273,294,324,324,269,344,355,270,269,217,222,223,245,223,245,245,314,272,294,341,254,294,522,249,214,227,267,324,222,232,298,337,328,209,227,302,220,235,279,297,355,349,299,286,331,318,381,368,228,214,321,340,325,307,325,304,339,352,339,304,339,363,402,341,255,241,274,282,312,279,306,326,332,239,325,340,173,170,167,173,224,229,253,261,233,251,259,275,301,211,257,354,231,227,277,215,242,296,253,302,265,215,242,296,253,302,265,311,311,200,238,207,243,276,280,313,368,413,229,279,487,493,366,370,366,370,370,370,384,311,246,291,305,365,291,294,225,231,248,273,254,293,341,220,254,254,294,189,261,214,371,226,232,262,262,289,185,190,286,295,295,354,324,330,360,360,299,301,321,186,189,195,199,192,201,253,263,255,255,263,263,282,277,217,235,232,245,237,239,318,299,396,225,262,265,309,309,292,297,370,357,370,264,323,324,315,315,327,275,306,271,356,337,343,303,238,196,215,219,231,221,221,193,204,213,228,244,271,257,254,378,209,234,234,282,312,355,286,355,251,248,268,253,275,265,265,241,270,205,184,175,184,175,212,214,184,175,215,214,197,210,197,210,214,227,197,210,215,228,197,210,214,227,197,220,220,228,246,261,270,271,279,295,233,193,195,205,204,221,237,227,241,243,260,249,258,226,242,228,243,248,286,225,242,230,246,248,257,250,260,232,243,231,246,315,324,352,335,334,350,228,246,251,266,233,246,266,267,266,267,297,219,229,249,257,231,249,265,275,329,219,229,249,257,231,249,264,272,250,253,253,250,261,261,273,295,313,261,261,279,382,397,397,397,382,382,388,200,231,256,235,296,204,232,244,213,232,197,218,215,219,197,219,218,219,233,211,233,242,233,250,199,254,258,210,232,241,196,209,228,240,197,205,217,271,218,226,288,271,312,324,270,333,205,206,205,206,205,205,226,247,226,267,308,226,296,296,347,347,243,222,245,245,252,245,255,255,339,276,241,220,315,401,291,364,291,373,373,204,219,200,219,195,213,204,219,219,249,231,233,257,233,206,222,290,290,290,290,273,231,255,233,231,231,255,255,233,233,233,299,299,280,280,290,290,273,273,290,322,322,273,354,322,322,322,322,322,322,290,273,290,213,207,210,215,339,339,235,215,339,339,235,245,302,302,245,302,254,318,318,200,216,522,250,211,227,203,232,213,238,234,238,209,256,221,268,263,276,324,333,209,227,227,235,219,235,282,296,355,349,290,228,214,321,357,332,343,327,307,305,325,305,325,339,352,358,352,305,305,368,363,393,342,392,255,238,284,282,312,280,311,326,332,239,327,343,183,172,167,183,223,254,261,251,259,228,257,360,231,236,227,232,277,303,215,242,253,265,299,299,215,242,253,265,299,299,200,220,207,217,243,413,368,279,485,493,370,370,370,370,384,311,266,262,258,305,305,354,365,264,294,336,245,242,238,248,273,273,318,254,293,337,220,254,254,294,189,262,214,395,226,232,262,262,285,185,190,286,286,295,324,324,360,360,286,301,321,186,189,253,263,255,255,263,263,282,277,235,232,245,237,318,299,396,309,309,327,275,306,271,356,219,231,221,221,213,271,257,378,286,355,253,265,265,270,205,174,174,197,174,200,184,184,207,191,212,190,210,194,210,246,261,270,271,279,300,233,313,313,271,272,277,277,269,278,329,264,272,250,253,253,250,261,261,273,295,313,261,261,279,386,386,400,400,400,382,382,387,200,231,239,263,236,297,204,232,208,234,208,219,223,208,219,220,219,232,240,232,248],\"yaxis\":\"y\",\"type\":\"scattergl\"},{\"hovertemplate\":\"\\u003cb\\u003eOLS trendline\\u003c\\u002fb\\u003e\\u003cbr\\u003eco2 = 23.237 * consumption + 0.613108\\u003cbr\\u003eR\\u003csup\\u003e2\\u003c\\u002fsup\\u003e=0.997342\\u003cbr\\u003e\\u003cbr\\u003econsumption=%{x}\\u003cbr\\u003eco2=%{y} \\u003cb\\u003e(trend)\\u003c\\u002fb\\u003e\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"marker\":{\"color\":\"#636efa\",\"symbol\":\"circle\"},\"mode\":\"lines\",\"name\":\"\",\"showlegend\":false,\"x\":[5.3,5.3,5.4,5.9,6.1,6.4,6.4,6.5,6.5,6.7,6.9,6.9,7.1,7.2,7.2,7.2,7.2,7.2,7.2,7.2,7.3,7.3,7.3,7.3,7.3,7.3,7.4,7.4,7.4,7.4,7.4,7.4,7.4,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.5,7.6,7.6,7.6,7.6,7.6,7.6,7.6,7.7,7.7,7.7,7.7,7.7,7.7,7.7,7.7,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.8,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,7.9,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.1,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.2,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.3,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.4,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.5,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.6,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.7,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.8,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,8.9,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.1,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.2,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.3,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.4,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.5,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.6,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.7,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.8,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,9.9,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.1,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.2,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.3,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.4,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.5,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.6,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.7,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.8,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,10.9,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.1,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.2,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.3,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.4,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.5,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.6,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.7,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.8,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,11.9,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.1,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.2,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.3,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.4,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.5,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.6,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.7,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.8,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,12.9,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.1,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.2,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.3,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.4,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.5,13.6,13.6,13.6,13.6,13.6,13.6,13.6,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.7,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.8,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,13.9,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.0,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.1,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.2,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.3,14.4,14.4,14.4,14.4,14.4,14.4,14.4,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.5,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.6,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.7,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.8,14.9,14.9,14.9,14.9,14.9,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.1,15.2,15.2,15.2,15.2,15.2,15.2,15.2,15.2,15.2,15.2,15.2,15.3,15.3,15.3,15.3,15.3,15.3,15.3,15.3,15.3,15.4,15.4,15.4,15.4,15.4,15.4,15.4,15.4,15.4,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.5,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.6,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.7,15.8,15.8,15.8,15.8,15.8,15.8,15.8,15.8,15.8,15.9,15.9,15.9,15.9,15.9,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.1,16.1,16.1,16.1,16.1,16.1,16.1,16.3,16.3,16.3,16.3,16.3,16.3,16.3,16.3,16.3,16.3,16.4,16.4,16.4,16.4,16.4,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.5,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.6,16.7,16.7,16.7,16.7,16.8,16.9,16.9,16.9,16.9,16.9,17.0,17.0,17.0,17.0,17.0,17.0,17.0,17.0,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.1,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.2,17.3,17.3,17.4,17.5,17.5,17.5,17.7,17.7,17.7,17.7,17.7,17.7,17.8,17.8,17.9,17.9,17.9,17.9,17.9,17.9,18.2,18.2,18.2,18.3,18.3,18.4,18.5,18.5,18.5,18.7,19.0,19.2,19.3,19.4,19.4,19.7,19.7,19.7,19.8,19.8,20.0,20.3,20.3,21.4,21.4,21.5,21.7,21.7,22.2,22.2,22.2],\"xaxis\":\"x\",\"y\":[123.76895956564458,123.76895956564458,126.09265488712118,137.71113149450412,142.35852213745727,149.32960810188706,149.32960810188706,151.65330342336364,151.65330342336364,156.30069406631682,160.94808470927,160.94808470927,165.5954753522232,167.9191706736998,167.9191706736998,167.9191706736998,167.9191706736998,167.9191706736998,167.9191706736998,167.9191706736998,170.24286599517637,170.24286599517637,170.24286599517637,170.24286599517637,170.24286599517637,170.24286599517637,172.56656131665298,172.56656131665298,172.56656131665298,172.56656131665298,172.56656131665298,172.56656131665298,172.56656131665298,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,174.89025663812956,177.21395195960613,177.21395195960613,177.21395195960613,177.21395195960613,177.21395195960613,177.21395195960613,177.21395195960613,179.53764728108274,179.53764728108274,179.53764728108274,179.53764728108274,179.53764728108274,179.53764728108274,179.53764728108274,179.53764728108274,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,181.86134260255932,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,184.18503792403592,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,186.5087332455125,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,188.83242856698908,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,191.15612388846566,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,193.4798192099423,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,195.80351453141887,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,198.12720985289545,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,200.45090517437202,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,202.7746004958486,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,205.09829581732524,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,207.42199113880181,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,209.7456864602784,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,212.069381781755,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,214.39307710323158,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,216.71677242470818,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,219.04046774618476,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,221.36416306766137,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,223.68785838913794,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,226.01155371061452,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,228.33524903209113,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,230.65894435356773,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,232.9826396750443,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,235.3063349965209,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,237.63003031799747,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,239.9537256394741,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,242.27742096095068,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,244.60111628242726,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,246.92481160390383,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,249.2485069253804,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,251.57220224685705,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,253.89589756833362,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,256.2195928898102,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,258.5432882112868,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,260.86698353276336,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,263.19067885424,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,265.51437417571657,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,267.83806949719315,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,270.1617648186697,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,272.4854601401463,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,274.80915546162294,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,277.1328507830995,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,279.4565461045761,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,281.78024142605267,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,284.10393674752925,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,286.4276320690059,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,288.75132739048246,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,291.07502271195904,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,293.3987180334356,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,295.7224133549122,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,298.0461086763888,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,300.3698039978654,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,302.693499319342,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,305.0171946408186,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,307.3408899622952,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,309.66458528377177,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,311.98828060524835,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,314.311975926725,316.63567124820156,316.63567124820156,316.63567124820156,316.63567124820156,316.63567124820156,316.63567124820156,316.63567124820156,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,318.95936656967814,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,321.2830618911547,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,323.60675721263135,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,325.9304525341079,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,328.2541478555845,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,330.5778431770611,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,332.9015384985377,335.2252338200143,335.2252338200143,335.2252338200143,335.2252338200143,335.2252338200143,335.2252338200143,335.2252338200143,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,337.5489291414909,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,339.87262446296745,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,342.19631978444403,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,344.52001510592066,346.84371042739724,346.84371042739724,346.84371042739724,346.84371042739724,346.84371042739724,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,349.1674057488738,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,351.4911010703504,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,353.814796391827,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,356.1384917133036,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,358.4621870347802,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,360.78588235625676,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,363.10957767773334,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,365.4332729992099,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,367.75696832068655,370.08066364216313,370.08066364216313,370.08066364216313,370.08066364216313,370.08066364216313,372.4043589636397,372.4043589636397,372.4043589636397,372.4043589636397,372.4043589636397,372.4043589636397,372.4043589636397,372.4043589636397,374.72805428511634,374.72805428511634,374.72805428511634,374.72805428511634,374.72805428511634,374.72805428511634,374.72805428511634,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,379.3754449280695,381.699140249546,381.699140249546,381.699140249546,381.699140249546,381.699140249546,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,384.02283557102265,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,386.3465308924993,388.6702262139758,388.6702262139758,388.6702262139758,388.6702262139758,390.99392153545244,393.31761685692896,393.31761685692896,393.31761685692896,393.31761685692896,393.31761685692896,395.6413121784056,395.6413121784056,395.6413121784056,395.6413121784056,395.6413121784056,395.6413121784056,395.6413121784056,395.6413121784056,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,397.96500749988223,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,400.28870282135875,402.6123981428354,402.6123981428354,404.9360934643119,407.25978878578854,407.25978878578854,407.25978878578854,411.9071794287417,411.9071794287417,411.9071794287417,411.9071794287417,411.9071794287417,411.9071794287417,414.23087475021833,414.23087475021833,416.5545700716949,416.5545700716949,416.5545700716949,416.5545700716949,416.5545700716949,416.5545700716949,423.5256560361247,423.5256560361247,423.5256560361247,425.8493513576013,425.8493513576013,428.17304667907786,430.49674200055443,430.49674200055443,430.49674200055443,435.14413264350765,442.11521860793744,446.7626092508906,449.0863045723672,451.40999989384375,451.40999989384375,458.38108585827354,458.38108585827354,458.38108585827354,460.70478117975017,460.70478117975017,465.3521718227033,472.3232577871331,472.3232577871331,497.8839063233755,497.8839063233755,500.20760164485216,504.8549922878053,504.8549922878053,516.4734688951883,516.4734688951883,516.4734688951883],\"yaxis\":\"y\",\"type\":\"scattergl\"}],                        {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"fillpattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"type\":\"scattergl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"baxis\":{\"endlinecolor\":\"#2a3f5f\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"minorgridcolor\":\"white\",\"startlinecolor\":\"#2a3f5f\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#EBF0F8\"},\"line\":{\"color\":\"white\"}},\"header\":{\"fill\":{\"color\":\"#C8D4E3\"},\"line\":{\"color\":\"white\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#2a3f5f\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"white\",\"plot_bgcolor\":\"#E5ECF6\",\"polar\":{\"bgcolor\":\"#E5ECF6\",\"angularaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"#E5ECF6\",\"aaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"white\",\"linecolor\":\"white\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"white\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"#E5ECF6\",\"gridcolor\":\"white\",\"linecolor\":\"white\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"white\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#2a3f5f\"}},\"annotationdefaults\":{\"arrowcolor\":\"#2a3f5f\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"white\",\"landcolor\":\"#E5ECF6\",\"subunitcolor\":\"white\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"white\"},\"title\":{\"x\":0.05},\"mapbox\":{\"style\":\"light\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"consumption\"}},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"co2\"}},\"legend\":{\"tracegroupgap\":0},\"margin\":{\"t\":60}},                        {\"responsive\": true}                    ).then(function(){\n                            \nvar gd = document.getElementById('7c6e53b2-3806-4894-ab4d-c483519978ae');\nvar x = new MutationObserver(function (mutations, observer) {{\n        var display = window.getComputedStyle(gd).display;\n        if (!display || display === 'none') {{\n            console.log([gd, 'removed!']);\n            Plotly.purge(gd);\n            observer.disconnect();\n        }}\n}});\n\n// Listen for the removal of the full notebook cells\nvar notebookContainer = gd.closest('#notebook-container');\nif (notebookContainer) {{\n    x.observe(notebookContainer, {childList: true});\n}}\n\n// Listen for the clearing of the current output cell\nvar outputEl = gd.closest('.output');\nif (outputEl) {{\n    x.observe(outputEl, {childList: true});\n}}\n\n                        })                };                            </script>        </div>\n</body>\n</html>"},"metadata":{}}],"execution_count":61},{"id":"e1b63b53-e18a-4816-93c0-15bb66bad1f2","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"7c3b50a9-747f-47ed-bc7a-4782e116cc98","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"de8dd701","cell_type":"markdown","source":"## Objets en python ","metadata":{"papermill":{"duration":0.015883,"end_time":"2026-02-22T17:29:04.782902","exception":false,"start_time":"2026-02-22T17:29:04.767019","status":"completed"},"tags":[]}},{"id":"fde0c2a8","cell_type":"markdown","source":"### Construction d’une classe en Python\n\nUne **classe** en Python permet de définir un type d’objet personnalisé en regroupant :\n\n* des **données** appelées *attributs*\n* des **fonctions** appelées *méthodes*\n\nL’exemple suivant illustre les éléments fondamentaux d’une classe Python.\n\n```python\n# Définition d'une classe très simple pour illustrer attributs + méthodes\nclass Calculatrice:\n    def __init__(self):\n        # Attribut d'instance : chaque objet aura sa propre 'memoire'\n        self.memoire = 10\n\n    def add(self, x):\n        # Méthode qui modifie l'état interne (la mémoire)\n        self.memoire = self.memoire + x\n```\n\n\n\n#### 1. Définition de la classe\n\n```python\nclass Calculatrice:\n```\n\nLe mot-clé `class` permet de définir une nouvelle classe.\n`Calculatrice` est le nom du type d’objet qui pourra ensuite être instancié.\n\n\n\n#### 2. Le constructeur `__init__`\n\n```python\ndef __init__(self):\n```\n\n* `__init__` est le **constructeur** de la classe\n* Il est appelé **automatiquement** lors de la création d’un objet\n* Il sert à **initialiser les attributs** de l’objet\n\nDans cet exemple, le constructeur ne prend aucun paramètre supplémentaire, mais il pourrait en recevoir.\n\n\n\n#### 3. Le paramètre `self`\n\n* `self` représente **l’instance courante** de la classe\n* Il est toujours le **premier paramètre** des méthodes d’instance\n* Il permet d’accéder aux attributs et aux autres méthodes de l’objet\n\nSans `self`, Python ne saurait pas à quel objet se réfère le code.\n\n\n\n#### 4. Les attributs d’instance\n\n```python\nself.memoire = 10\n```\n\n* `memoire` est un **attribut d’instance**\n* Chaque objet `Calculatrice` possède **sa propre valeur** de `memoire`\n* L’attribut est créé lors de l’appel du constructeur\n\nAinsi, deux objets distincts ont des mémoires indépendantes.\n\n\n\n#### 5. Les méthodes de la classe\n\n```python\ndef add(self, x):\n```\n\n* Une **méthode** est une fonction définie à l’intérieur d’une classe\n* Elle agit sur l’état interne de l’objet via `self`\n* Ici, la méthode `add` modifie l’attribut `memoire`\n\n```python\nself.memoire = self.memoire + x\n```\n\nCette instruction met à jour l’état interne de l’objet.\n\n\n\n#### 6. Création et utilisation d’un objet\n\n```python\ncalc = Calculatrice()   # appel du constructeur\ncalc.add(5)             # appel d'une méthode\nprint(calc.memoire)     # affiche 15\n```\n\n* `Calculatrice()` crée une nouvelle instance\n* `calc.add(5)` modifie la mémoire interne de cet objet\n* Les méthodes sont appelées via la notation pointée\n\n\n#### 7. Résumé\n\n* Une classe définit la **structure et le comportement** des objets\n* `__init__` initialise les attributs\n* `self` fait référence à l’instance courante\n* Les attributs stockent l’état\n* Les méthodes modifient ou exploitent cet état\n\n```python\n# Définition d'une classe  simple pour illustrer attributs + méthodes\nclass Calculatrice:\n    def __init__(self):\n        # Attribut d'instance : chaque objet aura sa propre 'memoire'\n        self.memoire = 10\n\n    def add(self, x):\n        # Méthode qui modifie l'état interne (la mémoire)\n        self.memoire = self.memoire + x\n```\n","metadata":{"papermill":{"duration":0.016107,"end_time":"2026-02-22T17:29:04.815249","exception":false,"start_time":"2026-02-22T17:29:04.799142","status":"completed"},"tags":[]}},{"id":"527798c1-ba39-461d-aa66-3db393107078","cell_type":"code","source":"class Calculatrice:\n    def __init__(self, initial):\n        self.memoire = initial\n\n    def add(self, x):\n        self.memoire = self.memoire + x\n","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:32:13.233152Z","iopub.execute_input":"2026-05-06T03:32:13.234090Z","iopub.status.idle":"2026-05-06T03:32:13.238998Z","shell.execute_reply.started":"2026-05-06T03:32:13.234054Z","shell.execute_reply":"2026-05-06T03:32:13.238091Z"}},"outputs":[],"execution_count":72},{"id":"9a65b976-fdf4-4fbb-997b-29c5e90f984c","cell_type":"code","source":"c = Calculatrice(100)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:32:15.123822Z","iopub.execute_input":"2026-05-06T03:32:15.125107Z","iopub.status.idle":"2026-05-06T03:32:15.131326Z","shell.execute_reply.started":"2026-05-06T03:32:15.125036Z","shell.execute_reply":"2026-05-06T03:32:15.130163Z"}},"outputs":[],"execution_count":73},{"id":"e270df3c-e33b-4495-8301-309dcb794afc","cell_type":"code","source":"c.memoire","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:32:17.080092Z","iopub.execute_input":"2026-05-06T03:32:17.080533Z","iopub.status.idle":"2026-05-06T03:32:17.087644Z","shell.execute_reply.started":"2026-05-06T03:32:17.080502Z","shell.execute_reply":"2026-05-06T03:32:17.086778Z"}},"outputs":[{"execution_count":74,"output_type":"execute_result","data":{"text/plain":"100"},"metadata":{}}],"execution_count":74},{"id":"ad5395b2-c48d-4196-9bc2-0fe2355ec3b9","cell_type":"code","source":"c.add(15)\nc.memoire","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:32:35.550896Z","iopub.execute_input":"2026-05-06T03:32:35.551818Z","iopub.status.idle":"2026-05-06T03:32:35.557639Z","shell.execute_reply.started":"2026-05-06T03:32:35.551781Z","shell.execute_reply":"2026-05-06T03:32:35.556855Z"}},"outputs":[{"execution_count":76,"output_type":"execute_result","data":{"text/plain":"130"},"metadata":{}}],"execution_count":76},{"id":"bc81fbc9-977a-4c07-b1d8-e31d72b6201d","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null},{"id":"0d2f5465","cell_type":"markdown","source":"### Instanciation d’un objet en Python\n\nL’**instanciation** correspond à la création concrète d’un objet à partir d’une classe.\nElle permet de passer d’une **définition abstraite** (la classe) à un **objet utilisable en mémoire**.\n\n```python\n# Instanciation : création d'un objet Calculatrice\nc = Calculatrice()\n```\n\n#### 1. Appel de la classe\n\n```python\nCalculatrice()\n```\n\n* L’appel de la classe avec des parenthèses déclenche la **création d’un nouvel objet**\n* Python réserve un espace mémoire pour cet objet\n* Le constructeur `__init__` est alors appelé **automatiquement**\n\n\n\n#### 2. Appel automatique du constructeur `__init__`\n\nLors de l’instruction :\n\n```python\nc = Calculatrice()\n```\n\nPython exécute implicitement :\n\n```python\nCalculatrice.__init__(c)\n```\n\nDans notre exemple, le constructeur initialise l’attribut :\n\n```python\nself.memoire = 10\n```\n\nL’objet nouvellement créé possède donc immédiatement un état interne.\n\n\n\n#### 3. Création de la variable de référence\n\n```python\nc = ...\n```\n\n* `c` est une **variable de référence**\n* Elle pointe vers l’objet `Calculatrice` créé en mémoire\n* L’objet existe indépendamment du nom de la variable qui le référence\n\n\n\n#### 4. État initial de l’objet\n\nAprès l’instanciation :\n\n```python\nc.memoire\n```\n\nrenvoie la valeur :\n\n```text\n10\n```\n\nChaque nouvel objet instancié à partir de la classe `Calculatrice` possède sa **propre mémoire indépendante**.\n\n\n\n#### 5. Distinction classe / objet\n\n* **Classe** : description du comportement et de la structure (`Calculatrice`)\n* **Objet** : instance concrète créée à partir de la classe (`c`)\n\nUne même classe peut donner naissance à **autant d’objets que nécessaire**, chacun avec son propre état.\n\n\n\n#### 6. Résumé\n\n* L’instanciation crée un nouvel objet en mémoire\n* Le constructeur `__init__` est appelé automatiquement\n* Les attributs sont initialisés dès la création\n* La variable (`c`) référence l’objet créé\n\n```python\n# Instanciation : création d'un objet Calculatrice (appel automatique de __init__)\nc = Calculatrice()\n```\n","metadata":{"papermill":{"duration":0.016639,"end_time":"2026-02-22T17:29:04.890038","exception":false,"start_time":"2026-02-22T17:29:04.873399","status":"completed"},"tags":[]}},{"id":"27fff9fa-1db9-4f02-93bf-1b129a92e9f0","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"f7c36e72","cell_type":"markdown","source":"### Accès aux attributs et appel de méthodes\n\nUne fois l’objet instancié, il est possible :\n\n* de **lire ses attributs**\n* d’**appeler ses méthodes** pour modifier son état interne\n\nLes instructions suivantes illustrent ces deux mécanismes.\n\n```python\n# Lecture de l'attribut memoire\nc.memoire\n\n# Appel d'une méthode : ajoute 20 à la mémoire\nc.add(20)\n\n# Vérifie la nouvelle valeur de la mémoire\nc.memoire\n```\n\n#### 1. Lecture d’un attribut\n\n```python\nc.memoire\n```\n\n* L’attribut `memoire` est accédé via la **notation pointée**\n* Python lit la valeur stockée dans l’objet référencé par `c`\n* Aucune modification de l’état n’est effectuée\n\nÀ ce stade, la valeur retournée est :\n\n```text\n10\n```\n\n\n\n#### 2. Appel d’une méthode\n\n```python\nc.add(20)\n```\n\n* `add` est une **méthode de la classe `Calculatrice`**\n* L’appel se fait également via la notation pointée\n* L’argument `20` est transmis au paramètre `x`\n* Le paramètre `self` est automatiquement lié à l’objet `c`\n\nL’instruction exécutée à l’intérieur de la méthode est :\n\n```python\nself.memoire = self.memoire + x\n```\n\nCe qui modifie l’état interne de l’objet.\n\n\n\n#### 3. Modification de l’état de l’objet\n\nAprès l’appel de la méthode :\n\n* la valeur de `memoire` passe de `10` à `30`\n* l’objet conserve cette nouvelle valeur tant qu’il existe en mémoire\n\n\n\n#### 4. Nouvelle lecture de l’attribut\n\n```python\nc.memoire\n```\n\nCette instruction permet de vérifier que l’état interne a bien été mis à jour.\nLa valeur retournée est désormais :\n\n```text\n30\n```\n\n\n\n#### 5. Point clé à retenir\n\n* Les **attributs** stockent l’état de l’objet\n* Les **méthodes** peuvent lire et modifier cet état\n* Toute modification via une méthode est **persistante** pour l’objet concerné\n\n```python\n# Lecture de l'attribut memoire\nc.memoire\n```\n\n```python\n# Appel d'une méthode : ajoute 20 à la mémoire\nc.add(20)\n```\n\n```python\n# Vérifie la nouvelle valeur de la mémoire\nc.memoire\n```\n","metadata":{"papermill":{"duration":0.015899,"end_time":"2026-02-22T17:29:04.963154","exception":false,"start_time":"2026-02-22T17:29:04.947255","status":"completed"},"tags":[]}},{"id":"31f8edba-8aca-4544-a267-066c202130c6","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"f324d124-a858-46d4-927a-d77865185b36","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"8d8006a9-8fd2-4e14-a2ae-b34fa41da82d","cell_type":"code","source":"","metadata":{},"outputs":[],"execution_count":null},{"id":"f10296e6","cell_type":"markdown","source":"> #### Exercice — Programmation orientée objet : calculateur d’intérêts composés\n>\n>\n> On souhaite modéliser un **capital placé à intérêt composé**.\n>\n> Le capital évolue dans le temps selon la formule :\n>\n> $$\n C_{n+1} = C_n \\times (1 + r)\n $$\n>\n> où :\n>\n> * $C_n$ est le capital à l’année $n$\n> * $r$ est le taux d’intérêt annuel (exprimé en décimal)\n>\n>\n> **Travail demandé**\n>\n> 1. Écrire une classe `CompoundInterestCalculator` contenant :\n>\n>    * un constructeur `__init__(capital_initial, taux)`\n>    * un attribut `capital` représentant le capital courant\n>    * un attribut `taux` représentant le taux d’intérêt annuel\n>\n> 2. Ajouter une méthode `next_year()` qui :\n>\n>    * met à jour le capital en appliquant les intérêts\n>    * modifie l’état interne de l’objet\n>\n> 3. Ajouter une méthode `simulate(n)` qui :\n>\n>    * simule l’évolution du capital sur `n` années\n>    * affiche le capital après chaque année\n>\n> 4. Instancier un objet avec un capital initial de `1000` et un taux de `5 %`.\n>\n> 5. Simuler l’évolution du capital sur `5` années.\n>","metadata":{"papermill":{"duration":0.016622,"end_time":"2026-02-22T17:29:05.121241","exception":false,"start_time":"2026-02-22T17:29:05.104619","status":"completed"},"tags":[]}},{"id":"98ef0ad0","cell_type":"markdown","source":"### Rappel — Chaînes de caractères formatées (f-strings)\n\nEn Python, les **f-strings** permettent d’insérer directement des variables à l’intérieur d’une chaîne de caractères.\n\nLa lettre `f` placée devant la chaîne indique que les expressions entre accolades `{}` doivent être évaluées.\n\n\n\n#### Insertion de variables\n\n```python\nyear = 3\ncapital = 1234.567\n\nprint(f\"Année {year} : capital = {capital}\")\n```\n\nRésultat :\n\n```\nAnnée 3 : capital = 1234.567\n```\n\n\n\n#### Formatage des nombres\n\nIl est possible de **contrôler l’affichage** des nombres.\n\n```python\nprint(f\"{capital:.2f}\")\n```\n\n* `.2f` signifie :\n\n  * `f` : nombre réel (float)\n  * `.2` : deux chiffres après la virgule\n\nRésultat :\n\n```\n1234.57\n```\n\nLe nombre est arrondi pour l’affichage.\n\n\n\n#### Décomposition de l’instruction\n\n```python\nprint(f\"Année {year} : capital = {self.capital:.2f}\")\n```\n\n* `f\"...\"` : chaîne formatée\n* `{year}` : insertion de la valeur de la variable `year`\n* `{self.capital:.2f}` : insertion du capital avec deux décimales\n* `print` : affiche le texte dans la sortie du notebook\n\n```python\nclass CompoundInterestCalculator:\n    def __init__(self, capital_initial, taux):\n        self.capital = capital_initial\n        self.taux = taux\n\n    def next_year(self):\n        self.capital = self.capital * (1 + self.taux)\n\n    def simulate(self, n):\n        for year in range(1, n + 1):\n            self.next_year()\n            print(f\"Année {year} : capital = {self.capital:.2f}\")\n```\n\n```python\ncalc = CompoundInterestCalculator(1000, 0.05)\ncalc.simulate(5)\n```\n","metadata":{"papermill":{"duration":0.017206,"end_time":"2026-02-22T17:29:05.155118","exception":false,"start_time":"2026-02-22T17:29:05.137912","status":"completed"},"tags":[]}},{"id":"9a325063-b2a6-4495-9202-e29706f03e58","cell_type":"code","source":"class InteretsComposes():\n    def __init__(self, Capital, Taux):\n        self.capital = Capital\n        self.taux = Taux\n\n    def next_year(self):\n        self.capital *= 1+self.taux\n\n    def simulate(self,n):\n        for i in range(n):\n            self.next_year()\n            print(f\"année {i+1} : capital ={self.capital:.2f}\")","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:46:15.929229Z","iopub.execute_input":"2026-05-06T03:46:15.930028Z","iopub.status.idle":"2026-05-06T03:46:15.935813Z","shell.execute_reply.started":"2026-05-06T03:46:15.929991Z","shell.execute_reply":"2026-05-06T03:46:15.934819Z"}},"outputs":[],"execution_count":83},{"id":"860b5fe5-dff4-4287-82e7-d799850524c4","cell_type":"code","source":"c = InteretsComposes(1000, 0.05)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:46:19.622609Z","iopub.execute_input":"2026-05-06T03:46:19.623004Z","iopub.status.idle":"2026-05-06T03:46:19.627724Z","shell.execute_reply.started":"2026-05-06T03:46:19.622975Z","shell.execute_reply":"2026-05-06T03:46:19.626556Z"}},"outputs":[],"execution_count":84},{"id":"e621ca56-f809-401f-b83f-6de30ad72bd9","cell_type":"code","source":"c.simulate(5)","metadata":{"trusted":true,"execution":{"iopub.status.busy":"2026-05-06T03:46:21.020016Z","iopub.execute_input":"2026-05-06T03:46:21.021101Z","iopub.status.idle":"2026-05-06T03:46:21.026619Z","shell.execute_reply.started":"2026-05-06T03:46:21.021051Z","shell.execute_reply":"2026-05-06T03:46:21.025536Z"}},"outputs":[{"name":"stdout","text":"année 1 : capital =1050.00\nannée 2 : capital =1102.50\nannée 3 : capital =1157.62\nannée 4 : capital =1215.51\nannée 5 : capital =1276.28\n","output_type":"stream"}],"execution_count":85},{"id":"27f031ac-eafd-4ca7-97ef-c9d3d292807b","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}