diff --git a/Experiments/.ipynb_checkpoints/MQ8_Regression-checkpoint.ipynb b/Experiments/.ipynb_checkpoints/MQ8_Regression-checkpoint.ipynb
new file mode 100644
index 0000000..03be25a
--- /dev/null
+++ b/Experiments/.ipynb_checkpoints/MQ8_Regression-checkpoint.ipynb
@@ -0,0 +1,2605 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
+ "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
+ "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
+ "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
+ "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install pandas\n",
+ "!pip install xlrd\n",
+ "!pip install sklearn\n",
+ "!pip install imblearn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import xlrd\n",
+ "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n",
+ "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n",
+ "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n",
+ "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n",
+ "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n",
+ "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n",
+ "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n",
+ "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n",
+ "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n",
+ "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n",
+ "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n",
+ "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n",
+ "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.01 \t \t \t \t \t \n",
+ "0.02 \t \t \t \t \t \n",
+ "0.03 \t \t \t \t \t \n",
+ "0.04 \t \t \t \t \t \n",
+ "0.05 \t \t \t \t \t \n",
+ "0.06 \t \t \t \t \t \n",
+ "0.07 \t \t \t \t \t \n",
+ "0.08 \t \t \t \t \t \n",
+ "0.09 \t \t \t \t \t \n",
+ "0.1 \t \t 5000.0 \t \t \t \n",
+ "0.2 \t \t \t \t \t \n",
+ "0.3 \t \t \t \t \t \n",
+ "0.4 \t \t \t \t \t \n",
+ "0.5 \t \t \t \t \t \n",
+ "0.6 \t \t \t \t \t \n",
+ "0.7 \t \t \t \t \t \n",
+ "0.8 \t \t \t \t \t \n",
+ "0.9 \t \t \t \t \t \n",
+ "1.0 \t \t 1000.0 \t \t \t \n"
+ ]
+ }
+ ],
+ "source": [
+ "for row_index in range(1,20): #reading first columns\n",
+ " RsR0, H2, LPG, CH4, CO, Alcohol = sheetMQ8.row_values(row_index, start_colx=0, end_colx=6)\n",
+ " print(RsR0, \"\t\", LPG, \"\t\", H2, \"\t\", CH4, \"\t\", CO, \"\t\", Alcohol)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_MQ8 = sheetMQ8.col_values(0)[2:]\n",
+ "MQ8_H2 = sheetMQ8.col_values(1)[2:]\n",
+ "MQ8_LPG = sheetMQ8.col_values(2)[2:]\n",
+ "MQ8_CH4 = sheetMQ8.col_values(3)[2:]\n",
+ "MQ8_CO = sheetMQ8.col_values(4)[2:]\n",
+ "MQ8_Alcohol = sheetMQ8.col_values(5)[2:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def zero_to_nan(values):\n",
+ " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n",
+ " return [float('nan') if x==0 else x for x in values]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "MQ8_H2 =zero_to_nan(MQ8_H2)\n",
+ "MQ8_LPG =zero_to_nan(MQ8_LPG)\n",
+ "MQ8_CH4 =zero_to_nan(MQ8_CH4)\n",
+ "MQ8_CO =zero_to_nan(MQ8_CO)\n",
+ "MQ8_Alcohol =zero_to_nan(MQ8_Alcohol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from sklearn.datasets import load_iris\n",
+ "#from sklearn.cross_validation import train_test_split\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn import datasets\n",
+ "from sklearn import linear_model\n",
+ "\n",
+ "dataH2 = {'RsRo': x_MQ8, 'H2': MQ8_H2}\n",
+ "dataLPG = {'RsRo': x_MQ8, 'LPG': MQ8_LPG}\n",
+ "dataCH4 = {'RsRo': x_MQ8, 'CH4': MQ8_CH4}\n",
+ "dataCO = {'RsRo': x_MQ8, 'CO': MQ8_CO}\n",
+ "dataALcohol = {'RsRo': x_MQ8, 'Alcohol': MQ8_Alcohol}\n",
+ "\n",
+ "dfMQ8_H2 = pd.DataFrame(dataH2)\n",
+ "dfMQ8_LPG = pd.DataFrame(dataLPG)\n",
+ "dfMQ8_CH4 = pd.DataFrame(dataCH4)\n",
+ "dfMQ8_CO = pd.DataFrame(dataCO)\n",
+ "dfMQ8_Alcohol = pd.DataFrame(dataALcohol)\n",
+ "\n",
+ "dfMQ8_H2['H2'] = pd.to_numeric(dfMQ8_H2['H2'])\n",
+ "dfMQ8_LPG['LPG'] = pd.to_numeric(dfMQ8_LPG['LPG'])\n",
+ "dfMQ8_CH4['CH4'] = pd.to_numeric(dfMQ8_CH4['CH4'])\n",
+ "dfMQ8_CO['CO'] = pd.to_numeric(dfMQ8_CO['CO'])\n",
+ "dfMQ8_Alcohol['Alcohol'] = pd.to_numeric(dfMQ8_Alcohol['Alcohol'])\n",
+ "\n",
+ "dfMQ8_H2['H2'] = dfMQ8_H2['H2'].replace('',None, regex=True)\n",
+ "dfMQ8_LPG['LPG'] = dfMQ8_LPG['LPG'].replace('',None, regex=True)\n",
+ "dfMQ8_CH4['CH4'] = dfMQ8_CH4['CH4'].replace('',None, regex=True)\n",
+ "dfMQ8_CO['CO'] = dfMQ8_CO['CO'].replace('',None, regex=True)\n",
+ "dfMQ8_Alcohol['Alcohol'] = dfMQ8_Alcohol['Alcohol'].replace('',None, regex=True)\n",
+ "\n",
+ "#Global X_Predict variable\n",
+ "X_Predict = dfMQ8_LPG.RsRo.apply(lambda x: [x]).tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train H2\n",
+ "dataset2TrainH2 = dfMQ8_H2.copy()\n",
+ "dataset2TrainH2.dropna(inplace=True)\n",
+ "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainH2 = dataset2TrainH2['H2'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainH2, y_trainH2)\n",
+ "#Predict\n",
+ "H2_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_H2 = H2_Predicted\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train LPG\n",
+ "dataset2TrainLPG = dfMQ8_LPG.copy()\n",
+ "dataset2TrainLPG.dropna(inplace=True)\n",
+ "X_trainLPG = dataset2TrainLPG.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainLPG = dataset2TrainLPG['LPG'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainLPG, y_trainLPG)\n",
+ "#Predict\n",
+ "LPG_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_LPG = LPG_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CH4\n",
+ "dataset2TrainCH4 = dfMQ8_CH4.copy()\n",
+ "dataset2TrainCH4.dropna(inplace=True)\n",
+ "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCH4, y_trainCH4)\n",
+ "#Predict\n",
+ "CH4_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_CH4 = CH4_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CO\n",
+ "dataset2TrainCO = dfMQ8_CO.copy()\n",
+ "dataset2TrainCO.dropna(inplace=True)\n",
+ "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCO = dataset2TrainCO['CO'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCO, y_trainCO)\n",
+ "#Predict\n",
+ "CO_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_CO = CO_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train Alcohol\n",
+ "dataset2TrainAlcohol = dfMQ8_Alcohol.copy()\n",
+ "dataset2TrainAlcohol.dropna(inplace=True)\n",
+ "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainAlcohol, y_trainAlcohol)\n",
+ "#Predict\n",
+ "Alcohol_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_Alcohol = Alcohol_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\r\n",
+ "\r\n",
+ "\r\n",
+ "\r\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%config InlineBackend.figure_formats = ['svg']\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.lines as mlines\n",
+ "import matplotlib.transforms as mtransforms\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "fig.set_size_inches(9, 5.5, forward=True)\n",
+ "fig.set_dpi(200)\n",
+ "\n",
+ "# only these two lines are calibration curves\n",
+ "plt.plot(MQ8_H2, x_MQ8, marker='o', linewidth=1, label='H2')\n",
+ "plt.plot(MQ8_LPG, x_MQ8, marker='o', linewidth=1, label='LPG')\n",
+ "plt.plot(MQ8_CH4, x_MQ8, marker='o', linewidth=1, label='CH4')\n",
+ "plt.plot(MQ8_CO, x_MQ8, marker='o', linewidth=1, label='CO')\n",
+ "plt.plot(MQ8_Alcohol, x_MQ8, marker='o', linewidth=1, label='Alcohol')\n",
+ "\n",
+ "\n",
+ "# reference line, legends, and axis labels\n",
+ "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n",
+ "#transform = ax.transAxes\n",
+ "#line.set_transform(transform)\n",
+ "#ax.add_line(line)\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "plt.legend()\n",
+ "\n",
+ "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n",
+ "\n",
+ "fig.suptitle('Calibration plot for MQ-8 data')\n",
+ "ax.set_xlabel('PPM Concentration')\n",
+ "ax.set_ylabel('Rs/Ro')\n",
+ "\n",
+ "\n",
+ "#Save image\n",
+ "plt.savefig('MQ8.svg', format = 'svg', dpi = 1200)\n",
+ "plt.savefig('MQ8.png')\n",
+ "plt.savefig('MQ8.eps', format = 'eps', dpi = 1200)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Experiments/MQ8.eps b/Experiments/MQ8.eps
new file mode 100644
index 0000000..55430d9
--- /dev/null
+++ b/Experiments/MQ8.eps
@@ -0,0 +1,3999 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: MQ8.eps
+%%Creator: matplotlib version 3.0.3, http://matplotlib.org/
+%%CreationDate: Wed Jul 3 21:04:01 2019
+%%Orientation: portrait
+%%BoundingBox: -18 198 630 594
+%%EndComments
+%%BeginProlog
+/mpldict 8 dict def
+mpldict begin
+/m { moveto } bind def
+/l { lineto } bind def
+/r { rlineto } bind def
+/c { curveto } bind def
+/cl { closepath } bind def
+/box {
+m
+1 index 0 r
+0 exch r
+neg 0 r
+cl
+} bind def
+/clipbox {
+box
+clip
+newpath
+} bind def
+%!PS-Adobe-3.0 Resource-Font
+%%Title: DejaVu Sans
+%%Copyright: Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain
+%%Creator: Converted from TrueType to type 3 by PPR
+25 dict begin
+/_d{bind def}bind def
+/_m{moveto}_d
+/_l{lineto}_d
+/_cl{closepath eofill}_d
+/_c{curveto}_d
+/_sc{7 -1 roll{setcachedevice}{pop pop pop pop pop pop}ifelse}_d
+/_e{exec}_d
+/FontName /DejaVuSans def
+/PaintType 0 def
+/FontMatrix[.001 0 0 .001 0 0]def
+/FontBBox[-1021 -463 1793 1232]def
+/FontType 3 def
+/Encoding [ /space /hyphen /slash /zero /one /two /three /four /eight /A /C /G /H /L /M /O /P /Q /R /a /b /c /d /e /f /h /i /l /n /o /p /r /s /t /minus ] def
+/FontInfo 10 dict dup begin
+/FamilyName (DejaVu Sans) def
+/FullName (DejaVu Sans) def
+/Notice (Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. DejaVu changes are in public domain ) def
+/Weight (Book) def
+/Version (Version 2.35) def
+/ItalicAngle 0.0 def
+/isFixedPitch false def
+/UnderlinePosition -130 def
+/UnderlineThickness 90 def
+end readonly def
+/CharStrings 36 dict dup begin
+/.notdef 0 def
+/space{318 0 0 0 0 0 _sc
+}_d
+/hyphen{361 0 49 234 312 314 _sc
+49 314 _m
+312 314 _l
+312 234 _l
+49 234 _l
+49 314 _l
+_cl}_d
+/slash{337 0 0 -92 337 729 _sc
+254 729 _m
+337 729 _l
+83 -92 _l
+0 -92 _l
+254 729 _l
+_cl}_d
+/zero{636 0 66 -13 570 742 _sc
+318 664 _m
+267 664 229 639 203 589 _c
+177 539 165 464 165 364 _c
+165 264 177 189 203 139 _c
+229 89 267 64 318 64 _c
+369 64 407 89 433 139 _c
+458 189 471 264 471 364 _c
+471 464 458 539 433 589 _c
+407 639 369 664 318 664 _c
+318 742 _m
+399 742 461 709 505 645 _c
+548 580 570 486 570 364 _c
+570 241 548 147 505 83 _c
+461 19 399 -13 318 -13 _c
+236 -13 173 19 130 83 _c
+87 147 66 241 66 364 _c
+66 486 87 580 130 645 _c
+173 709 236 742 318 742 _c
+_cl}_d
+/one{636 0 110 0 544 729 _sc
+124 83 _m
+285 83 _l
+285 639 _l
+110 604 _l
+110 694 _l
+284 729 _l
+383 729 _l
+383 83 _l
+544 83 _l
+544 0 _l
+124 0 _l
+124 83 _l
+_cl}_d
+/two{{636 0 73 0 536 742 _sc
+192 83 _m
+536 83 _l
+536 0 _l
+73 0 _l
+73 83 _l
+110 121 161 173 226 239 _c
+290 304 331 346 348 365 _c
+380 400 402 430 414 455 _c
+426 479 433 504 433 528 _c
+433 566 419 598 392 622 _c
+365 646 330 659 286 659 _c
+255 659 222 653 188 643 _c
+154 632 117 616 78 594 _c
+78 694 _l
+118 710 155 722 189 730 _c
+223 738 255 742 284 742 _c
+}_e{359 742 419 723 464 685 _c
+509 647 532 597 532 534 _c
+532 504 526 475 515 449 _c
+504 422 484 390 454 354 _c
+446 344 420 317 376 272 _c
+332 227 271 164 192 83 _c
+_cl}_e}_d
+/three{{636 0 76 -13 556 742 _sc
+406 393 _m
+453 383 490 362 516 330 _c
+542 298 556 258 556 212 _c
+556 140 531 84 482 45 _c
+432 6 362 -13 271 -13 _c
+240 -13 208 -10 176 -4 _c
+144 1 110 10 76 22 _c
+76 117 _l
+103 101 133 89 166 81 _c
+198 73 232 69 268 69 _c
+330 69 377 81 409 105 _c
+441 129 458 165 458 212 _c
+458 254 443 288 413 312 _c
+383 336 341 349 287 349 _c
+}_e{202 349 _l
+202 430 _l
+291 430 _l
+339 430 376 439 402 459 _c
+428 478 441 506 441 543 _c
+441 580 427 609 401 629 _c
+374 649 336 659 287 659 _c
+260 659 231 656 200 650 _c
+169 644 135 635 98 623 _c
+98 711 _l
+135 721 170 729 203 734 _c
+235 739 266 742 296 742 _c
+370 742 429 725 473 691 _c
+517 657 539 611 539 553 _c
+539 513 527 479 504 451 _c
+481 423 448 403 406 393 _c
+_cl}_e}_d
+/four{636 0 49 0 580 729 _sc
+378 643 _m
+129 254 _l
+378 254 _l
+378 643 _l
+352 729 _m
+476 729 _l
+476 254 _l
+580 254 _l
+580 172 _l
+476 172 _l
+476 0 _l
+378 0 _l
+378 172 _l
+49 172 _l
+49 267 _l
+352 729 _l
+_cl}_d
+/eight{{636 0 68 -13 568 742 _sc
+318 346 _m
+271 346 234 333 207 308 _c
+180 283 167 249 167 205 _c
+167 161 180 126 207 101 _c
+234 76 271 64 318 64 _c
+364 64 401 76 428 102 _c
+455 127 469 161 469 205 _c
+469 249 455 283 429 308 _c
+402 333 365 346 318 346 _c
+219 388 _m
+177 398 144 418 120 447 _c
+96 476 85 511 85 553 _c
+85 611 105 657 147 691 _c
+188 725 245 742 318 742 _c
+}_e{390 742 447 725 489 691 _c
+530 657 551 611 551 553 _c
+551 511 539 476 515 447 _c
+491 418 459 398 417 388 _c
+464 377 501 355 528 323 _c
+554 291 568 251 568 205 _c
+568 134 546 80 503 43 _c
+459 5 398 -13 318 -13 _c
+237 -13 175 5 132 43 _c
+89 80 68 134 68 205 _c
+68 251 81 291 108 323 _c
+134 355 171 377 219 388 _c
+183 544 _m
+183 506 194 476 218 455 _c
+}_e{242 434 275 424 318 424 _c
+360 424 393 434 417 455 _c
+441 476 453 506 453 544 _c
+453 582 441 611 417 632 _c
+393 653 360 664 318 664 _c
+275 664 242 653 218 632 _c
+194 611 183 582 183 544 _c
+_cl}_e}_d
+/A{684 0 8 0 676 729 _sc
+342 632 _m
+208 269 _l
+476 269 _l
+342 632 _l
+286 729 _m
+398 729 _l
+676 0 _l
+573 0 _l
+507 187 _l
+178 187 _l
+112 0 _l
+8 0 _l
+286 729 _l
+_cl}_d
+/C{{698 0 56 -13 644 742 _sc
+644 673 _m
+644 569 _l
+610 599 575 622 537 638 _c
+499 653 460 661 418 661 _c
+334 661 270 635 226 584 _c
+182 533 160 460 160 364 _c
+160 268 182 194 226 143 _c
+270 92 334 67 418 67 _c
+460 67 499 74 537 90 _c
+575 105 610 128 644 159 _c
+644 56 _l
+609 32 572 15 534 4 _c
+496 -7 455 -13 412 -13 _c
+302 -13 215 20 151 87 _c
+}_e{87 154 56 246 56 364 _c
+56 481 87 573 151 641 _c
+215 708 302 742 412 742 _c
+456 742 497 736 535 725 _c
+573 713 610 696 644 673 _c
+_cl}_e}_d
+/G{{775 0 56 -13 693 742 _sc
+595 104 _m
+595 300 _l
+434 300 _l
+434 381 _l
+693 381 _l
+693 68 _l
+655 40 613 20 567 7 _c
+521 -6 472 -13 420 -13 _c
+306 -13 216 20 152 86 _c
+88 152 56 245 56 364 _c
+56 482 88 575 152 642 _c
+216 708 306 742 420 742 _c
+467 742 512 736 555 724 _c
+598 712 638 695 674 673 _c
+674 568 _l
+637 598 598 621 557 637 _c
+516 653 473 661 428 661 _c
+}_e{338 661 271 636 227 586 _c
+182 536 160 462 160 364 _c
+160 265 182 191 227 141 _c
+271 91 338 67 428 67 _c
+462 67 493 70 521 76 _c
+549 82 573 91 595 104 _c
+_cl}_e}_d
+/H{752 0 98 0 654 729 _sc
+98 729 _m
+197 729 _l
+197 430 _l
+555 430 _l
+555 729 _l
+654 729 _l
+654 0 _l
+555 0 _l
+555 347 _l
+197 347 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/L{557 0 98 0 552 729 _sc
+98 729 _m
+197 729 _l
+197 83 _l
+552 83 _l
+552 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/M{863 0 98 0 765 729 _sc
+98 729 _m
+245 729 _l
+431 233 _l
+618 729 _l
+765 729 _l
+765 0 _l
+669 0 _l
+669 640 _l
+481 140 _l
+382 140 _l
+194 640 _l
+194 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/O{787 0 56 -13 731 742 _sc
+394 662 _m
+322 662 265 635 223 582 _c
+181 528 160 456 160 364 _c
+160 272 181 199 223 146 _c
+265 92 322 66 394 66 _c
+465 66 522 92 564 146 _c
+606 199 627 272 627 364 _c
+627 456 606 528 564 582 _c
+522 635 465 662 394 662 _c
+394 742 _m
+496 742 577 707 639 639 _c
+700 571 731 479 731 364 _c
+731 248 700 157 639 89 _c
+577 21 496 -13 394 -13 _c
+291 -13 209 21 148 89 _c
+86 157 56 248 56 364 _c
+56 479 86 571 148 639 _c
+209 707 291 742 394 742 _c
+_cl}_d
+/P{603 0 98 0 569 729 _sc
+197 648 _m
+197 374 _l
+321 374 _l
+367 374 402 385 427 409 _c
+452 433 465 467 465 511 _c
+465 555 452 588 427 612 _c
+402 636 367 648 321 648 _c
+197 648 _l
+98 729 _m
+321 729 _l
+402 729 464 710 506 673 _c
+548 636 569 582 569 511 _c
+569 439 548 384 506 348 _c
+464 311 402 293 321 293 _c
+197 293 _l
+197 0 _l
+98 0 _l
+98 729 _l
+_cl}_d
+/Q{{787 0 56 -128 731 742 _sc
+394 662 _m
+322 662 265 635 223 582 _c
+181 528 160 456 160 364 _c
+160 272 181 199 223 146 _c
+265 92 322 66 394 66 _c
+465 66 522 92 564 146 _c
+606 199 627 272 627 364 _c
+627 456 606 528 564 582 _c
+522 635 465 662 394 662 _c
+532 13 _m
+662 -128 _l
+543 -128 _l
+435 -11 _l
+424 -11 416 -12 410 -12 _c
+404 -12 399 -13 394 -13 _c
+291 -13 209 21 148 89 _c
+}_e{86 157 56 248 56 364 _c
+56 479 86 571 148 639 _c
+209 707 291 742 394 742 _c
+496 742 577 707 639 639 _c
+700 571 731 479 731 364 _c
+731 279 714 206 680 146 _c
+646 86 596 41 532 13 _c
+_cl}_e}_d
+/R{{695 0 98 0 666 729 _sc
+444 342 _m
+465 334 486 319 506 296 _c
+526 272 546 240 566 199 _c
+666 0 _l
+560 0 _l
+467 187 _l
+443 235 419 268 397 284 _c
+374 300 343 308 304 308 _c
+197 308 _l
+197 0 _l
+98 0 _l
+98 729 _l
+321 729 _l
+404 729 466 711 507 677 _c
+548 642 569 589 569 519 _c
+569 473 558 434 537 404 _c
+515 374 484 353 444 342 _c
+197 648 _m
+197 389 _l
+321 389 _l
+}_e{368 389 404 400 428 422 _c
+452 444 465 476 465 519 _c
+465 561 452 593 428 615 _c
+404 637 368 648 321 648 _c
+197 648 _l
+_cl}_e}_d
+/a{{613 0 60 -13 522 560 _sc
+343 275 _m
+270 275 220 266 192 250 _c
+164 233 150 205 150 165 _c
+150 133 160 107 181 89 _c
+202 70 231 61 267 61 _c
+317 61 357 78 387 114 _c
+417 149 432 196 432 255 _c
+432 275 _l
+343 275 _l
+522 312 _m
+522 0 _l
+432 0 _l
+432 83 _l
+411 49 385 25 355 10 _c
+325 -5 287 -13 243 -13 _c
+187 -13 142 2 109 33 _c
+76 64 60 106 60 159 _c
+}_e{60 220 80 266 122 298 _c
+163 329 224 345 306 345 _c
+432 345 _l
+432 354 _l
+432 395 418 427 391 450 _c
+364 472 326 484 277 484 _c
+245 484 215 480 185 472 _c
+155 464 127 453 100 439 _c
+100 522 _l
+132 534 164 544 195 550 _c
+226 556 256 560 286 560 _c
+365 560 424 539 463 498 _c
+502 457 522 395 522 312 _c
+_cl}_e}_d
+/b{{635 0 91 -13 580 760 _sc
+487 273 _m
+487 339 473 390 446 428 _c
+418 466 381 485 334 485 _c
+286 485 249 466 222 428 _c
+194 390 181 339 181 273 _c
+181 207 194 155 222 117 _c
+249 79 286 61 334 61 _c
+381 61 418 79 446 117 _c
+473 155 487 207 487 273 _c
+181 464 _m
+199 496 223 520 252 536 _c
+281 552 316 560 356 560 _c
+422 560 476 533 518 481 _c
+559 428 580 359 580 273 _c
+}_e{580 187 559 117 518 65 _c
+476 13 422 -13 356 -13 _c
+316 -13 281 -5 252 10 _c
+223 25 199 49 181 82 _c
+181 0 _l
+91 0 _l
+91 760 _l
+181 760 _l
+181 464 _l
+_cl}_e}_d
+/c{{550 0 55 -13 488 560 _sc
+488 526 _m
+488 442 _l
+462 456 437 466 411 473 _c
+385 480 360 484 334 484 _c
+276 484 230 465 198 428 _c
+166 391 150 339 150 273 _c
+150 206 166 154 198 117 _c
+230 80 276 62 334 62 _c
+360 62 385 65 411 72 _c
+437 79 462 90 488 104 _c
+488 21 _l
+462 9 436 0 410 -5 _c
+383 -10 354 -13 324 -13 _c
+242 -13 176 12 128 64 _c
+}_e{79 115 55 185 55 273 _c
+55 362 79 432 128 483 _c
+177 534 244 560 330 560 _c
+358 560 385 557 411 551 _c
+437 545 463 537 488 526 _c
+_cl}_e}_d
+/d{{635 0 55 -13 544 760 _sc
+454 464 _m
+454 760 _l
+544 760 _l
+544 0 _l
+454 0 _l
+454 82 _l
+435 49 411 25 382 10 _c
+353 -5 319 -13 279 -13 _c
+213 -13 159 13 117 65 _c
+75 117 55 187 55 273 _c
+55 359 75 428 117 481 _c
+159 533 213 560 279 560 _c
+319 560 353 552 382 536 _c
+411 520 435 496 454 464 _c
+148 273 _m
+148 207 161 155 188 117 _c
+215 79 253 61 301 61 _c
+}_e{348 61 385 79 413 117 _c
+440 155 454 207 454 273 _c
+454 339 440 390 413 428 _c
+385 466 348 485 301 485 _c
+253 485 215 466 188 428 _c
+161 390 148 339 148 273 _c
+_cl}_e}_d
+/e{{615 0 55 -13 562 560 _sc
+562 296 _m
+562 252 _l
+149 252 _l
+153 190 171 142 205 110 _c
+238 78 284 62 344 62 _c
+378 62 412 66 444 74 _c
+476 82 509 95 541 113 _c
+541 28 _l
+509 14 476 3 442 -3 _c
+408 -9 373 -13 339 -13 _c
+251 -13 182 12 131 62 _c
+80 112 55 181 55 268 _c
+55 357 79 428 127 481 _c
+175 533 241 560 323 560 _c
+397 560 455 536 498 489 _c
+}_e{540 441 562 377 562 296 _c
+472 322 _m
+471 371 457 410 431 440 _c
+404 469 368 484 324 484 _c
+274 484 234 469 204 441 _c
+174 413 156 373 152 322 _c
+472 322 _l
+_cl}_e}_d
+/f{352 0 23 0 371 760 _sc
+371 760 _m
+371 685 _l
+285 685 _l
+253 685 230 678 218 665 _c
+205 652 199 629 199 595 _c
+199 547 _l
+347 547 _l
+347 477 _l
+199 477 _l
+199 0 _l
+109 0 _l
+109 477 _l
+23 477 _l
+23 547 _l
+109 547 _l
+109 585 _l
+109 645 123 690 151 718 _c
+179 746 224 760 286 760 _c
+371 760 _l
+_cl}_d
+/h{634 0 91 0 549 760 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 760 _l
+181 760 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/i{278 0 94 0 184 760 _sc
+94 547 _m
+184 547 _l
+184 0 _l
+94 0 _l
+94 547 _l
+94 760 _m
+184 760 _l
+184 646 _l
+94 646 _l
+94 760 _l
+_cl}_d
+/l{278 0 94 0 184 760 _sc
+94 760 _m
+184 760 _l
+184 0 _l
+94 0 _l
+94 760 _l
+_cl}_d
+/n{634 0 91 0 549 560 _sc
+549 330 _m
+549 0 _l
+459 0 _l
+459 327 _l
+459 379 448 417 428 443 _c
+408 469 378 482 338 482 _c
+289 482 251 466 223 435 _c
+195 404 181 362 181 309 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+202 494 227 519 257 535 _c
+286 551 320 560 358 560 _c
+420 560 468 540 500 501 _c
+532 462 549 405 549 330 _c
+_cl}_d
+/o{612 0 55 -13 557 560 _sc
+306 484 _m
+258 484 220 465 192 427 _c
+164 389 150 338 150 273 _c
+150 207 163 156 191 118 _c
+219 80 257 62 306 62 _c
+354 62 392 80 420 118 _c
+448 156 462 207 462 273 _c
+462 337 448 389 420 427 _c
+392 465 354 484 306 484 _c
+306 560 _m
+384 560 445 534 490 484 _c
+534 433 557 363 557 273 _c
+557 183 534 113 490 63 _c
+445 12 384 -13 306 -13 _c
+227 -13 165 12 121 63 _c
+77 113 55 183 55 273 _c
+55 363 77 433 121 484 _c
+165 534 227 560 306 560 _c
+_cl}_d
+/p{{635 0 91 -207 580 560 _sc
+181 82 _m
+181 -207 _l
+91 -207 _l
+91 547 _l
+181 547 _l
+181 464 _l
+199 496 223 520 252 536 _c
+281 552 316 560 356 560 _c
+422 560 476 533 518 481 _c
+559 428 580 359 580 273 _c
+580 187 559 117 518 65 _c
+476 13 422 -13 356 -13 _c
+316 -13 281 -5 252 10 _c
+223 25 199 49 181 82 _c
+487 273 _m
+487 339 473 390 446 428 _c
+418 466 381 485 334 485 _c
+}_e{286 485 249 466 222 428 _c
+194 390 181 339 181 273 _c
+181 207 194 155 222 117 _c
+249 79 286 61 334 61 _c
+381 61 418 79 446 117 _c
+473 155 487 207 487 273 _c
+_cl}_e}_d
+/r{411 0 91 0 411 560 _sc
+411 463 _m
+401 469 390 473 378 476 _c
+366 478 353 480 339 480 _c
+288 480 249 463 222 430 _c
+194 397 181 350 181 288 _c
+181 0 _l
+91 0 _l
+91 547 _l
+181 547 _l
+181 462 _l
+199 495 224 520 254 536 _c
+284 552 321 560 365 560 _c
+371 560 378 559 386 559 _c
+393 558 401 557 411 555 _c
+411 463 _l
+_cl}_d
+/s{{521 0 54 -13 472 560 _sc
+443 531 _m
+443 446 _l
+417 458 391 468 364 475 _c
+336 481 308 485 279 485 _c
+234 485 200 478 178 464 _c
+156 450 145 430 145 403 _c
+145 382 153 366 169 354 _c
+185 342 217 330 265 320 _c
+296 313 _l
+360 299 405 279 432 255 _c
+458 230 472 195 472 151 _c
+472 100 452 60 412 31 _c
+372 1 316 -13 246 -13 _c
+216 -13 186 -10 154 -5 _c
+}_e{122 0 89 8 54 20 _c
+54 113 _l
+87 95 120 82 152 74 _c
+184 65 216 61 248 61 _c
+290 61 323 68 346 82 _c
+368 96 380 117 380 144 _c
+380 168 371 187 355 200 _c
+339 213 303 226 247 238 _c
+216 245 _l
+160 257 119 275 95 299 _c
+70 323 58 356 58 399 _c
+58 450 76 490 112 518 _c
+148 546 200 560 268 560 _c
+301 560 332 557 362 552 _c
+391 547 418 540 443 531 _c
+}_e{_cl}_e}_d
+/t{392 0 27 0 368 702 _sc
+183 702 _m
+183 547 _l
+368 547 _l
+368 477 _l
+183 477 _l
+183 180 _l
+183 135 189 106 201 94 _c
+213 81 238 75 276 75 _c
+368 75 _l
+368 0 _l
+276 0 _l
+206 0 158 13 132 39 _c
+106 65 93 112 93 180 _c
+93 477 _l
+27 477 _l
+27 547 _l
+93 547 _l
+93 702 _l
+183 702 _l
+_cl}_d
+/minus{838 0 106 272 732 355 _sc
+106 355 _m
+732 355 _l
+732 272 _l
+106 272 _l
+106 355 _l
+_cl}_d
+end readonly def
+
+/BuildGlyph
+ {exch begin
+ CharStrings exch
+ 2 copy known not{pop /.notdef}if
+ true 3 1 roll get exec
+ end}_d
+
+/BuildChar {
+ 1 index /Encoding get exch get
+ 1 index /BuildGlyph get exec
+}_d
+
+FontName currentdict end definefont pop
+end
+%%EndProlog
+mpldict begin
+-18 198 translate
+648 396 0 0 clipbox
+gsave
+0 0 m
+648 0 l
+648 396 l
+0 396 l
+cl
+1.000 setgray
+fill
+grestore
+gsave
+81 49.5 m
+583.2 49.5 l
+583.2 348.48 l
+81 348.48 l
+cl
+1.000 setgray
+fill
+grestore
+0.800 setlinewidth
+1 setlinejoin
+0 setlinecap
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+145.713 49.5 o
+grestore
+gsave
+136.713016 34.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/one glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+268.613 49.5 o
+grestore
+gsave
+259.613165 33.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/two glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+391.513 49.5 o
+grestore
+gsave
+382.513315 33.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/three glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -3.5 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+514.413 49.5 o
+grestore
+gsave
+505.413464 34.578125 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/four glyphshow
+
+
+grestore
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81.45114 49.5 m
+81.45114 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81.4511 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+96.80613 49.5 m
+96.80613 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+96.8061 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+108.716385 49.5 m
+108.716385 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+108.716 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+118.447772 49.5 m
+118.447772 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+118.448 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+126.675542 49.5 m
+126.675542 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+126.676 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+133.802761 49.5 m
+133.802761 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+133.803 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+140.089414 49.5 m
+140.089414 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+140.089 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+182.709648 49.5 m
+182.709648 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+182.71 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+204.35129 49.5 m
+204.35129 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+204.351 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+219.706279 49.5 m
+219.706279 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+219.706 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+231.616534 49.5 m
+231.616534 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+231.617 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+241.347921 49.5 m
+241.347921 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+241.348 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+249.575691 49.5 m
+249.575691 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+249.576 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+256.70291 49.5 m
+256.70291 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+256.703 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+262.989563 49.5 m
+262.989563 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+262.99 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+305.609797 49.5 m
+305.609797 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+305.61 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+327.251439 49.5 m
+327.251439 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+327.251 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+342.606428 49.5 m
+342.606428 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+342.606 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+354.516683 49.5 m
+354.516683 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+354.517 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+364.24807 49.5 m
+364.24807 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+364.248 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+372.475841 49.5 m
+372.475841 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+372.476 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+379.60306 49.5 m
+379.60306 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+379.603 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+385.889712 49.5 m
+385.889712 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+385.89 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+428.509946 49.5 m
+428.509946 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+428.51 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+450.151588 49.5 m
+450.151588 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+450.152 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+465.506578 49.5 m
+465.506578 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+465.507 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+477.416833 49.5 m
+477.416833 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+477.417 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+487.14822 49.5 m
+487.14822 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+487.148 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+495.37599 49.5 m
+495.37599 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+495.376 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+502.503209 49.5 m
+502.503209 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+502.503 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+508.789862 49.5 m
+508.789862 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+508.79 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+551.410096 49.5 m
+551.410096 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+551.41 49.5 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+573.051738 49.5 m
+573.051738 348.48 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+0 -2 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+573.052 49.5 o
+grestore
+/DejaVuSans findfont
+10.000 scalefont
+setfont
+gsave
+284.771875 19.906250 translate
+0.000000 rotate
+0.000000 0.000000 m /P glyphshow
+6.030273 0.000000 m /P glyphshow
+12.060547 0.000000 m /M glyphshow
+20.688477 0.000000 m /space glyphshow
+23.867188 0.000000 m /C glyphshow
+30.849609 0.000000 m /o glyphshow
+36.967773 0.000000 m /n glyphshow
+43.305664 0.000000 m /c glyphshow
+48.803711 0.000000 m /e glyphshow
+54.956055 0.000000 m /n glyphshow
+61.293945 0.000000 m /t glyphshow
+65.214844 0.000000 m /r glyphshow
+69.326172 0.000000 m /a glyphshow
+75.454102 0.000000 m /t glyphshow
+79.375000 0.000000 m /i glyphshow
+82.153320 0.000000 m /o glyphshow
+88.271484 0.000000 m /n glyphshow
+grestore
+0.800 setlinewidth
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 114.45 o
+grestore
+gsave
+50.000000 110.489319 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/minus glyphshow
+
+18.685547 3.892188 moveto
+/one glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 187.93 o
+grestore
+gsave
+56.000000 183.469233 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/zero glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 261.41 o
+grestore
+gsave
+56.000000 257.449148 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.064063 moveto
+/one glyphshow
+
+6.362305 0.064063 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 3.892188 moveto
+/one glyphshow
+
+
+grestore
+gsave
+/o {
+gsave
+newpath
+translate
+0.8 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-3.5 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 334.89 o
+grestore
+gsave
+56.000000 330.429062 translate
+0.000000 rotate
+/DejaVuSans findfont
+10.0 scalefont
+setfont
+0.000000 0.976562 moveto
+/one glyphshow
+
+6.362305 0.976562 moveto
+/zero glyphshow
+
+/DejaVuSans findfont
+7.0 scalefont
+setfont
+12.820312 4.804688 moveto
+/two glyphshow
+
+
+grestore
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 63.09 m
+583.2 63.09 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 63.09 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 76.029171 m
+583.2 76.029171 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 76.0292 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 85.209658 m
+583.2 85.209658 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 85.2097 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 92.330598 m
+583.2 92.330598 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 92.3306 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 98.148829 m
+583.2 98.148829 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 98.1488 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 103.068073 m
+583.2 103.068073 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 103.068 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 107.329317 m
+583.2 107.329317 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 107.329 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 111.088 m
+583.2 111.088 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 111.088 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 136.569915 m
+583.2 136.569915 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 136.57 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 149.509085 m
+583.2 149.509085 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 149.509 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 158.689573 m
+583.2 158.689573 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 158.69 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 165.810512 m
+583.2 165.810512 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 165.811 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 171.628744 m
+583.2 171.628744 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 171.629 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 176.547988 m
+583.2 176.547988 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 176.548 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 180.809231 m
+583.2 180.809231 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 180.809 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 184.567914 m
+583.2 184.567914 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 184.568 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 210.049829 m
+583.2 210.049829 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 210.05 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 222.989 m
+583.2 222.989 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 222.989 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 232.169488 m
+583.2 232.169488 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 232.169 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 239.290427 m
+583.2 239.290427 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 239.29 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 245.108658 m
+583.2 245.108658 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 245.109 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 250.027903 m
+583.2 250.027903 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 250.028 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 254.289146 m
+583.2 254.289146 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 254.289 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 258.047829 m
+583.2 258.047829 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 258.048 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 283.529744 m
+583.2 283.529744 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 283.53 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 296.468914 m
+583.2 296.468914 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 296.469 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 305.649402 m
+583.2 305.649402 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 305.649 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 312.770342 m
+583.2 312.770342 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 312.77 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 318.588573 m
+583.2 318.588573 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 318.589 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 323.507817 m
+583.2 323.507817 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 323.508 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 327.769061 m
+583.2 327.769061 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 327.769 o
+grestore
+0.800 setlinewidth
+[2.96 1.28] 0 setdash
+0.827 setgray
+gsave
+502.2 299 81 49.5 clipbox
+81 331.527744 m
+583.2 331.527744 l
+stroke
+grestore
+0.600 setlinewidth
+[] 0 setdash
+0.000 setgray
+gsave
+/o {
+gsave
+newpath
+translate
+0.6 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 0 m
+-2 0 l
+
+gsave
+0.000 setgray
+fill
+grestore
+stroke
+grestore
+} bind def
+81 331.528 o
+grestore
+gsave
+43.921875 184.677500 translate
+90.000000 rotate
+0.000000 0.000000 m /R glyphshow
+6.948242 0.000000 m /s glyphshow
+12.158203 0.000000 m /slash glyphshow
+15.527344 0.000000 m /R glyphshow
+22.475586 0.000000 m /o glyphshow
+grestore
+1.000 setlinewidth
+2 setlinecap
+0.122 0.467 0.706 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+455.104786 63.09 m
+455.045398 76.029171 l
+454.985943 85.209658 l
+454.926423 92.330598 l
+454.866836 98.148829 l
+454.807182 103.068073 l
+454.747462 107.329317 l
+454.687674 111.088 l
+454.62782 114.450256 l
+454.025556 136.569915 l
+453.416419 149.509085 l
+452.800249 158.689573 l
+452.176884 165.810512 l
+451.546152 171.628744 l
+450.907877 176.547988 l
+450.261877 180.809231 l
+449.607963 184.567914 l
+448.945937 187.930171 l
+441.830578 210.049829 l
+433.618616 222.989 l
+423.909353 232.169488 l
+412.032267 239.290427 l
+396.732514 245.108658 l
+375.201173 250.027903 l
+338.534084 254.289146 l
+103.827273 258.047829 l
+-1 258.050695 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.122 0.467 0.706 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+455.105 63.09 o
+455.045 76.0292 o
+454.986 85.2097 o
+454.926 92.3306 o
+454.867 98.1488 o
+454.807 103.068 o
+454.747 107.329 o
+454.688 111.088 o
+454.628 114.45 o
+454.026 136.57 o
+453.416 149.509 o
+452.8 158.69 o
+452.177 165.811 o
+451.546 171.629 o
+450.908 176.548 o
+450.262 180.809 o
+449.608 184.568 o
+448.946 187.93 o
+441.831 210.05 o
+433.619 222.989 o
+423.909 232.169 o
+412.032 239.29 o
+396.733 245.109 o
+375.201 250.028 o
+338.534 254.289 o
+103.827 258.048 o
+-1 258.051 o
+grestore
+2 setlinecap
+1.000 0.498 0.055 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+428.475243 63.09 m
+428.459219 76.029171 l
+428.44319 85.209658 l
+428.427156 92.330598 l
+428.411118 98.148829 l
+428.395074 103.068073 l
+428.379026 107.329317 l
+428.362973 111.088 l
+428.346915 114.450256 l
+428.186069 136.569915 l
+428.024737 149.509085 l
+427.862916 158.689573 l
+427.700603 165.810512 l
+427.537794 171.628744 l
+427.374488 176.547988 l
+427.21068 180.809231 l
+427.046368 184.567914 l
+426.881549 187.930171 l
+425.204743 210.049829 l
+423.473546 222.989 l
+421.684311 232.169488 l
+419.83301 239.290427 l
+417.915182 245.108658 l
+415.925868 250.027903 l
+413.859531 254.289146 l
+411.709966 258.047829 l
+409.470185 261.410085 l
+379.601725 283.529744 l
+305.615134 296.468914 l
+-1 296.491766 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+1.000 0.498 0.055 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+428.475 63.09 o
+428.459 76.0292 o
+428.443 85.2097 o
+428.427 92.3306 o
+428.411 98.1488 o
+428.395 103.068 o
+428.379 107.329 o
+428.363 111.088 o
+428.347 114.45 o
+428.186 136.57 o
+428.025 149.509 o
+427.863 158.69 o
+427.701 165.811 o
+427.538 171.629 o
+427.374 176.548 o
+427.211 180.809 o
+427.046 184.568 o
+426.882 187.93 o
+425.205 210.05 o
+423.474 222.989 o
+421.684 232.169 o
+419.833 239.29 o
+417.915 245.109 o
+415.926 250.028 o
+413.86 254.289 o
+411.71 258.048 o
+409.47 261.41 o
+379.602 283.53 o
+305.615 296.469 o
+-1 296.492 o
+grestore
+2 setlinecap
+0.173 0.627 0.173 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+560.372727 63.09 m
+560.361671 76.029171 l
+560.350612 85.209658 l
+560.339551 92.330598 l
+560.328487 98.148829 l
+560.317422 103.068073 l
+560.306353 107.329317 l
+560.295283 111.088 l
+560.284211 114.450256 l
+560.173358 136.569915 l
+560.062274 149.509085 l
+559.950959 158.689573 l
+559.839411 165.810512 l
+559.72763 171.628744 l
+559.615614 176.547988 l
+559.503363 180.809231 l
+559.390874 184.567914 l
+559.278149 187.930171 l
+558.137601 210.049829 l
+556.972148 222.989 l
+555.780678 232.169488 l
+554.562003 239.290427 l
+553.314851 245.108658 l
+552.03786 250.027903 l
+550.729566 254.289146 l
+549.388397 258.047829 l
+548.012656 261.410085 l
+531.861738 283.529744 l
+508.591721 296.468914 l
+466.388827 305.649402 l
+-1 305.676386 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.173 0.627 0.173 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+560.373 63.09 o
+560.362 76.0292 o
+560.351 85.2097 o
+560.34 92.3306 o
+560.328 98.1488 o
+560.317 103.068 o
+560.306 107.329 o
+560.295 111.088 o
+560.284 114.45 o
+560.173 136.57 o
+560.062 149.509 o
+559.951 158.69 o
+559.839 165.811 o
+559.728 171.629 o
+559.616 176.548 o
+559.503 180.809 o
+559.391 184.568 o
+559.278 187.93 o
+558.138 210.05 o
+556.972 222.989 o
+555.781 232.169 o
+554.562 239.29 o
+553.315 245.109 o
+552.038 250.028 o
+550.73 254.289 o
+549.388 258.048 o
+548.013 261.41 o
+531.862 283.53 o
+508.592 296.469 o
+466.389 305.649 o
+-1 305.676 o
+grestore
+2 setlinecap
+0.839 0.153 0.157 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+552.451267 63.09 m
+552.443415 76.029171 l
+552.435562 85.209658 l
+552.427708 92.330598 l
+552.419852 98.148829 l
+552.411995 103.068073 l
+552.404137 107.329317 l
+552.396278 111.088 l
+552.388418 114.450256 l
+552.309752 136.569915 l
+552.23097 149.509085 l
+552.152072 158.689573 l
+552.073056 165.810512 l
+551.993924 171.628744 l
+551.914674 176.547988 l
+551.835306 180.809231 l
+551.75582 184.567914 l
+551.676216 187.930171 l
+550.873571 210.049829 l
+550.058673 222.989 l
+549.231139 232.169488 l
+548.390573 239.290427 l
+547.536558 245.108658 l
+546.668655 250.027903 l
+545.786407 254.289146 l
+544.88933 258.047829 l
+543.976917 261.410085 l
+533.876159 283.529744 l
+521.407009 296.468914 l
+505.107323 305.649402 l
+481.524596 312.770342 l
+438.241428 318.588573 l
+-1 318.606095 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.839 0.153 0.157 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+552.451 63.09 o
+552.443 76.0292 o
+552.436 85.2097 o
+552.428 92.3306 o
+552.42 98.1488 o
+552.412 103.068 o
+552.404 107.329 o
+552.396 111.088 o
+552.388 114.45 o
+552.31 136.57 o
+552.231 149.509 o
+552.152 158.69 o
+552.073 165.811 o
+551.994 171.629 o
+551.915 176.548 o
+551.835 180.809 o
+551.756 184.568 o
+551.676 187.93 o
+550.874 210.05 o
+550.059 222.989 o
+549.231 232.169 o
+548.391 239.29 o
+547.537 245.109 o
+546.669 250.028 o
+545.786 254.289 o
+544.889 258.048 o
+543.977 261.41 o
+533.876 283.53 o
+521.407 296.469 o
+505.107 305.649 o
+481.525 312.77 o
+438.241 318.589 o
+-1 318.606 o
+grestore
+2 setlinecap
+0.580 0.404 0.741 setrgbcolor
+gsave
+502.2 299 81 49.5 clipbox
+497.761007 63.09 m
+497.712375 76.029171 l
+497.663698 85.209658 l
+497.614976 92.330598 l
+497.56621 98.148829 l
+497.5174 103.068073 l
+497.468544 107.329317 l
+497.419644 111.088 l
+497.3707 114.450256 l
+496.878766 136.569915 l
+496.382257 149.509085 l
+495.881086 158.689573 l
+495.375164 165.810512 l
+494.864401 171.628744 l
+494.348703 176.547988 l
+493.827973 180.809231 l
+493.302114 184.567914 l
+492.771021 187.930171 l
+487.147478 210.049829 l
+480.8609 222.989 l
+473.733776 232.169488 l
+465.506133 239.290427 l
+455.774924 245.108658 l
+443.864936 250.027903 l
+428.510391 254.289146 l
+406.869639 258.047829 l
+369.875676 261.410085 l
+-1 261.476648 l
+stroke
+grestore
+0 setlinecap
+gsave
+502.2 299 81 49.5 clipbox
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.580 0.404 0.741 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+497.761 63.09 o
+497.712 76.0292 o
+497.664 85.2097 o
+497.615 92.3306 o
+497.566 98.1488 o
+497.517 103.068 o
+497.469 107.329 o
+497.42 111.088 o
+497.371 114.45 o
+496.879 136.57 o
+496.382 149.509 o
+495.881 158.69 o
+495.375 165.811 o
+494.864 171.629 o
+494.349 176.548 o
+493.828 180.809 o
+493.302 184.568 o
+492.771 187.93 o
+487.147 210.05 o
+480.861 222.989 o
+473.734 232.169 o
+465.506 239.29 o
+455.775 245.109 o
+443.865 250.028 o
+428.51 254.289 o
+406.87 258.048 o
+369.876 261.41 o
+-1 261.477 o
+grestore
+0.800 setlinewidth
+0 setlinejoin
+2 setlinecap
+[] 0 setdash
+0.000 setgray
+gsave
+81 49.5 m
+81 348.48 l
+stroke
+grestore
+gsave
+583.2 49.5 m
+583.2 348.48 l
+stroke
+grestore
+gsave
+81 49.5 m
+583.2 49.5 l
+stroke
+grestore
+gsave
+81 348.48 m
+583.2 348.48 l
+stroke
+grestore
+1.000 setlinewidth
+0 setlinecap
+0.800 setgray
+gsave
+88 54.5 m
+156.5 54.5 l
+157.833333 54.5 158.5 55.166667 158.5 56.5 c
+158.5 128.859375 l
+158.5 130.192708 157.833333 130.859375 156.5 130.859375 c
+88 130.859375 l
+86.666667 130.859375 86 130.192708 86 128.859375 c
+86 56.5 l
+86 55.166667 86.666667 54.5 88 54.5 c
+cl
+gsave
+1.000 setgray
+fill
+grestore
+stroke
+grestore
+1 setlinejoin
+2 setlinecap
+[] 0 setdash
+0.122 0.467 0.706 setrgbcolor
+gsave
+90 122.765625 m
+110 122.765625 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.122 0.467 0.706 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+100 122.766 o
+grestore
+0.000 setgray
+gsave
+118.000000 119.265625 translate
+0.000000 rotate
+0.000000 0.000000 m /H glyphshow
+7.519531 0.000000 m /two glyphshow
+grestore
+2 setlinecap
+1.000 0.498 0.055 setrgbcolor
+gsave
+90 108.09375 m
+110 108.09375 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+1.000 0.498 0.055 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+100 108.094 o
+grestore
+0.000 setgray
+gsave
+118.000000 104.593750 translate
+0.000000 rotate
+0.000000 0.000000 m /L glyphshow
+5.571289 0.000000 m /P glyphshow
+11.601562 0.000000 m /G glyphshow
+grestore
+2 setlinecap
+0.173 0.627 0.173 setrgbcolor
+gsave
+90 93.421875 m
+110 93.421875 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.173 0.627 0.173 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+100 93.4219 o
+grestore
+0.000 setgray
+gsave
+118.000000 89.921875 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+6.982422 0.000000 m /H glyphshow
+14.501953 0.000000 m /four glyphshow
+grestore
+2 setlinecap
+0.839 0.153 0.157 setrgbcolor
+gsave
+90 78.75 m
+110 78.75 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.839 0.153 0.157 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+100 78.75 o
+grestore
+0.000 setgray
+gsave
+118.000000 75.250000 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+6.982422 0.000000 m /O glyphshow
+grestore
+2 setlinecap
+0.580 0.404 0.741 setrgbcolor
+gsave
+90 64.078125 m
+110 64.078125 l
+stroke
+grestore
+0 setlinecap
+gsave
+/o {
+gsave
+newpath
+translate
+1.0 setlinewidth
+1 setlinejoin
+0 setlinecap
+0 -3 m
+0.795609 -3 1.55874 -2.683901 2.12132 -2.12132 c
+2.683901 -1.55874 3 -0.795609 3 0 c
+3 0.795609 2.683901 1.55874 2.12132 2.12132 c
+1.55874 2.683901 0.795609 3 0 3 c
+-0.795609 3 -1.55874 2.683901 -2.12132 2.12132 c
+-2.683901 1.55874 -3 0.795609 -3 0 c
+-3 -0.795609 -2.683901 -1.55874 -2.12132 -2.12132 c
+-1.55874 -2.683901 -0.795609 -3 0 -3 c
+cl
+
+gsave
+0.580 0.404 0.741 setrgbcolor
+fill
+grestore
+stroke
+grestore
+} bind def
+100 64.0781 o
+grestore
+0.000 setgray
+gsave
+118.000000 60.578125 translate
+0.000000 rotate
+0.000000 0.000000 m /A glyphshow
+6.840820 0.000000 m /l glyphshow
+9.619141 0.000000 m /c glyphshow
+15.117188 0.000000 m /o glyphshow
+21.235352 0.000000 m /h glyphshow
+27.573242 0.000000 m /o glyphshow
+33.691406 0.000000 m /l glyphshow
+grestore
+/DejaVuSans findfont
+12.000 scalefont
+setfont
+gsave
+234.562500 378.955000 translate
+0.000000 rotate
+0.000000 0.000000 m /C glyphshow
+8.378906 0.000000 m /a glyphshow
+15.732422 0.000000 m /l glyphshow
+19.066406 0.000000 m /i glyphshow
+22.400391 0.000000 m /b glyphshow
+30.017578 0.000000 m /r glyphshow
+34.951172 0.000000 m /a glyphshow
+42.304688 0.000000 m /t glyphshow
+47.009766 0.000000 m /i glyphshow
+50.343750 0.000000 m /o glyphshow
+57.685547 0.000000 m /n glyphshow
+65.291016 0.000000 m /space glyphshow
+69.105469 0.000000 m /p glyphshow
+76.722656 0.000000 m /l glyphshow
+80.056641 0.000000 m /o glyphshow
+87.398438 0.000000 m /t glyphshow
+92.103516 0.000000 m /space glyphshow
+95.917969 0.000000 m /f glyphshow
+100.142578 0.000000 m /o glyphshow
+107.484375 0.000000 m /r glyphshow
+112.417969 0.000000 m /space glyphshow
+116.232422 0.000000 m /M glyphshow
+126.585938 0.000000 m /Q glyphshow
+136.031250 0.000000 m /hyphen glyphshow
+140.361328 0.000000 m /eight glyphshow
+147.996094 0.000000 m /space glyphshow
+151.810547 0.000000 m /d glyphshow
+159.427734 0.000000 m /a glyphshow
+166.781250 0.000000 m /t glyphshow
+171.486328 0.000000 m /a glyphshow
+grestore
+
+end
+showpage
diff --git a/Experiments/MQ8.png b/Experiments/MQ8.png
new file mode 100644
index 0000000..4bbdf30
Binary files /dev/null and b/Experiments/MQ8.png differ
diff --git a/Experiments/MQ8.svg b/Experiments/MQ8.svg
new file mode 100644
index 0000000..88d68d7
--- /dev/null
+++ b/Experiments/MQ8.svg
@@ -0,0 +1,2239 @@
+
+
+
+
diff --git a/Experiments/MQ8_Regression.ipynb b/Experiments/MQ8_Regression.ipynb
new file mode 100644
index 0000000..03be25a
--- /dev/null
+++ b/Experiments/MQ8_Regression.ipynb
@@ -0,0 +1,2605 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: pandas in c:\\programdata\\anaconda3\\lib\\site-packages (0.24.2)\n",
+ "Requirement already satisfied: pytz>=2011k in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2018.9)\n",
+ "Requirement already satisfied: python-dateutil>=2.5.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (2.8.0)\n",
+ "Requirement already satisfied: numpy>=1.12.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from pandas) (1.16.2)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from python-dateutil>=2.5.0->pandas) (1.12.0)\n",
+ "Requirement already satisfied: xlrd in c:\\programdata\\anaconda3\\lib\\site-packages (1.2.0)\n",
+ "Requirement already satisfied: sklearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: scikit-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from sklearn) (0.21.2)\n",
+ "Requirement already satisfied: scipy>=0.17.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.2.1)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (0.13.2)\n",
+ "Requirement already satisfied: numpy>=1.11.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from scikit-learn->sklearn) (1.16.2)\n",
+ "Requirement already satisfied: imblearn in c:\\programdata\\anaconda3\\lib\\site-packages (0.0)\n",
+ "Requirement already satisfied: imbalanced-learn in c:\\programdata\\anaconda3\\lib\\site-packages (from imblearn) (0.5.0)\n",
+ "Requirement already satisfied: joblib>=0.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.13.2)\n",
+ "Requirement already satisfied: scipy>=0.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.2.1)\n",
+ "Requirement already satisfied: numpy>=1.11 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (1.16.2)\n",
+ "Requirement already satisfied: scikit-learn>=0.21 in c:\\programdata\\anaconda3\\lib\\site-packages (from imbalanced-learn->imblearn) (0.21.2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install pandas\n",
+ "!pip install xlrd\n",
+ "!pip install sklearn\n",
+ "!pip install imblearn"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import xlrd\n",
+ "book = xlrd.open_workbook(\"Datasheets info.xlsx\")\n",
+ "sheetMQ2 = book.sheet_by_name(\"MQ2 - Pololulu\")\n",
+ "sheetMQ3 = book.sheet_by_name(\"MQ3 - Sparkfun\")\n",
+ "sheetMQ4 = book.sheet_by_name(\"MQ4 - Sparkfun\")\n",
+ "sheetMQ5 = book.sheet_by_name(\"MQ5 - Sparkfun\")\n",
+ "sheetMQ6 = book.sheet_by_name(\"MQ6 - Sparkfun\")\n",
+ "sheetMQ7 = book.sheet_by_name(\"MQ7 - Sparkfun\")\n",
+ "sheetMQ8 = book.sheet_by_name(\"MQ8 - Sparkfun\")\n",
+ "sheetMQ9 = book.sheet_by_name(\"MQ9 - Haoyuelectronics\")\n",
+ "sheetMQ131 = book.sheet_by_name(\"MQ131- Sensorsportal\")\n",
+ "sheetMQ135 = book.sheet_by_name(\"MQ135 - HANWEI\")\n",
+ "sheetMQ303A = book.sheet_by_name(\"MQ303A - HANWEI\")\n",
+ "sheetMQ309A = book.sheet_by_name(\"MQ309A - HANWEI\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.01 \t \t \t \t \t \n",
+ "0.02 \t \t \t \t \t \n",
+ "0.03 \t \t \t \t \t \n",
+ "0.04 \t \t \t \t \t \n",
+ "0.05 \t \t \t \t \t \n",
+ "0.06 \t \t \t \t \t \n",
+ "0.07 \t \t \t \t \t \n",
+ "0.08 \t \t \t \t \t \n",
+ "0.09 \t \t \t \t \t \n",
+ "0.1 \t \t 5000.0 \t \t \t \n",
+ "0.2 \t \t \t \t \t \n",
+ "0.3 \t \t \t \t \t \n",
+ "0.4 \t \t \t \t \t \n",
+ "0.5 \t \t \t \t \t \n",
+ "0.6 \t \t \t \t \t \n",
+ "0.7 \t \t \t \t \t \n",
+ "0.8 \t \t \t \t \t \n",
+ "0.9 \t \t \t \t \t \n",
+ "1.0 \t \t 1000.0 \t \t \t \n"
+ ]
+ }
+ ],
+ "source": [
+ "for row_index in range(1,20): #reading first columns\n",
+ " RsR0, H2, LPG, CH4, CO, Alcohol = sheetMQ8.row_values(row_index, start_colx=0, end_colx=6)\n",
+ " print(RsR0, \"\t\", LPG, \"\t\", H2, \"\t\", CH4, \"\t\", CO, \"\t\", Alcohol)\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x_MQ8 = sheetMQ8.col_values(0)[2:]\n",
+ "MQ8_H2 = sheetMQ8.col_values(1)[2:]\n",
+ "MQ8_LPG = sheetMQ8.col_values(2)[2:]\n",
+ "MQ8_CH4 = sheetMQ8.col_values(3)[2:]\n",
+ "MQ8_CO = sheetMQ8.col_values(4)[2:]\n",
+ "MQ8_Alcohol = sheetMQ8.col_values(5)[2:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def zero_to_nan(values):\n",
+ " \"\"\"Replace every 0 with 'nan' and return a copy.\"\"\"\n",
+ " return [float('nan') if x==0 else x for x in values]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "MQ8_H2 =zero_to_nan(MQ8_H2)\n",
+ "MQ8_LPG =zero_to_nan(MQ8_LPG)\n",
+ "MQ8_CH4 =zero_to_nan(MQ8_CH4)\n",
+ "MQ8_CO =zero_to_nan(MQ8_CO)\n",
+ "MQ8_Alcohol =zero_to_nan(MQ8_Alcohol)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "scrolled": false
+ },
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from sklearn.datasets import load_iris\n",
+ "#from sklearn.cross_validation import train_test_split\n",
+ "from sklearn.tree import DecisionTreeClassifier\n",
+ "from sklearn import datasets\n",
+ "from sklearn import linear_model\n",
+ "\n",
+ "dataH2 = {'RsRo': x_MQ8, 'H2': MQ8_H2}\n",
+ "dataLPG = {'RsRo': x_MQ8, 'LPG': MQ8_LPG}\n",
+ "dataCH4 = {'RsRo': x_MQ8, 'CH4': MQ8_CH4}\n",
+ "dataCO = {'RsRo': x_MQ8, 'CO': MQ8_CO}\n",
+ "dataALcohol = {'RsRo': x_MQ8, 'Alcohol': MQ8_Alcohol}\n",
+ "\n",
+ "dfMQ8_H2 = pd.DataFrame(dataH2)\n",
+ "dfMQ8_LPG = pd.DataFrame(dataLPG)\n",
+ "dfMQ8_CH4 = pd.DataFrame(dataCH4)\n",
+ "dfMQ8_CO = pd.DataFrame(dataCO)\n",
+ "dfMQ8_Alcohol = pd.DataFrame(dataALcohol)\n",
+ "\n",
+ "dfMQ8_H2['H2'] = pd.to_numeric(dfMQ8_H2['H2'])\n",
+ "dfMQ8_LPG['LPG'] = pd.to_numeric(dfMQ8_LPG['LPG'])\n",
+ "dfMQ8_CH4['CH4'] = pd.to_numeric(dfMQ8_CH4['CH4'])\n",
+ "dfMQ8_CO['CO'] = pd.to_numeric(dfMQ8_CO['CO'])\n",
+ "dfMQ8_Alcohol['Alcohol'] = pd.to_numeric(dfMQ8_Alcohol['Alcohol'])\n",
+ "\n",
+ "dfMQ8_H2['H2'] = dfMQ8_H2['H2'].replace('',None, regex=True)\n",
+ "dfMQ8_LPG['LPG'] = dfMQ8_LPG['LPG'].replace('',None, regex=True)\n",
+ "dfMQ8_CH4['CH4'] = dfMQ8_CH4['CH4'].replace('',None, regex=True)\n",
+ "dfMQ8_CO['CO'] = dfMQ8_CO['CO'].replace('',None, regex=True)\n",
+ "dfMQ8_Alcohol['Alcohol'] = dfMQ8_Alcohol['Alcohol'].replace('',None, regex=True)\n",
+ "\n",
+ "#Global X_Predict variable\n",
+ "X_Predict = dfMQ8_LPG.RsRo.apply(lambda x: [x]).tolist()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train H2\n",
+ "dataset2TrainH2 = dfMQ8_H2.copy()\n",
+ "dataset2TrainH2.dropna(inplace=True)\n",
+ "X_trainH2 = dataset2TrainH2.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainH2 = dataset2TrainH2['H2'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainH2, y_trainH2)\n",
+ "#Predict\n",
+ "H2_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_H2 = H2_Predicted\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train LPG\n",
+ "dataset2TrainLPG = dfMQ8_LPG.copy()\n",
+ "dataset2TrainLPG.dropna(inplace=True)\n",
+ "X_trainLPG = dataset2TrainLPG.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainLPG = dataset2TrainLPG['LPG'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainLPG, y_trainLPG)\n",
+ "#Predict\n",
+ "LPG_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_LPG = LPG_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CH4\n",
+ "dataset2TrainCH4 = dfMQ8_CH4.copy()\n",
+ "dataset2TrainCH4.dropna(inplace=True)\n",
+ "X_trainCH4 = dataset2TrainCH4.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCH4 = dataset2TrainCH4['CH4'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCH4, y_trainCH4)\n",
+ "#Predict\n",
+ "CH4_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_CH4 = CH4_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train CO\n",
+ "dataset2TrainCO = dfMQ8_CO.copy()\n",
+ "dataset2TrainCO.dropna(inplace=True)\n",
+ "X_trainCO = dataset2TrainCO.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainCO = dataset2TrainCO['CO'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainCO, y_trainCO)\n",
+ "#Predict\n",
+ "CO_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_CO = CO_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#Model and train Alcohol\n",
+ "dataset2TrainAlcohol = dfMQ8_Alcohol.copy()\n",
+ "dataset2TrainAlcohol.dropna(inplace=True)\n",
+ "X_trainAlcohol = dataset2TrainAlcohol.RsRo.apply(lambda x: [x]).tolist()\n",
+ "y_trainAlcohol = dataset2TrainAlcohol['Alcohol'].tolist()\n",
+ "model = linear_model.Lasso(alpha=0.1)\n",
+ "model.fit(X_trainAlcohol, y_trainAlcohol)\n",
+ "#Predict\n",
+ "Alcohol_Predicted = model.predict(X_Predict)\n",
+ "#save into MQ2\n",
+ "MQ8_Alcohol = Alcohol_Predicted"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\r\n",
+ "\r\n",
+ "\r\n",
+ "\r\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "%config InlineBackend.figure_formats = ['svg']\n",
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "import matplotlib.lines as mlines\n",
+ "import matplotlib.transforms as mtransforms\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "fig.set_size_inches(9, 5.5, forward=True)\n",
+ "fig.set_dpi(200)\n",
+ "\n",
+ "# only these two lines are calibration curves\n",
+ "plt.plot(MQ8_H2, x_MQ8, marker='o', linewidth=1, label='H2')\n",
+ "plt.plot(MQ8_LPG, x_MQ8, marker='o', linewidth=1, label='LPG')\n",
+ "plt.plot(MQ8_CH4, x_MQ8, marker='o', linewidth=1, label='CH4')\n",
+ "plt.plot(MQ8_CO, x_MQ8, marker='o', linewidth=1, label='CO')\n",
+ "plt.plot(MQ8_Alcohol, x_MQ8, marker='o', linewidth=1, label='Alcohol')\n",
+ "\n",
+ "\n",
+ "# reference line, legends, and axis labels\n",
+ "#line = mlines.Line2D([0, 1], [0, 1], color='black')\n",
+ "#transform = ax.transAxes\n",
+ "#line.set_transform(transform)\n",
+ "#ax.add_line(line)\n",
+ "plt.yscale('log')\n",
+ "plt.xscale('log')\n",
+ "plt.legend()\n",
+ "\n",
+ "plt.grid(b=True, which='minor', color='lightgrey', linestyle='--')\n",
+ "\n",
+ "fig.suptitle('Calibration plot for MQ-8 data')\n",
+ "ax.set_xlabel('PPM Concentration')\n",
+ "ax.set_ylabel('Rs/Ro')\n",
+ "\n",
+ "\n",
+ "#Save image\n",
+ "plt.savefig('MQ8.svg', format = 'svg', dpi = 1200)\n",
+ "plt.savefig('MQ8.png')\n",
+ "plt.savefig('MQ8.eps', format = 'eps', dpi = 1200)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "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.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}