{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# RFM-CLTV ANALYSIS FOR HM","metadata":{}},{"cell_type":"markdown","source":" ![download.png](attachment:7a3db366-1725-48b1-a7a4-79c0f3fb068b.png) \n\n## Customer Segmentation with RFM\n## CLTV Prediction with BG-NBD & Gamma-Gamma Models\nUnderstanding customer behavior and predicting their future value are fundamental pillars when it comes to crafting impactful marketing strategies and fostering consistent business success. In this comprehensive project, we embark on an insightful journey through customer segmentation, the prediction of Customer Lifetime Value (CLTV), and the implementation of personalized marketing campaigns, utilizing the dataset provided by HM company. By leveraging the strategic tools of RFM analysis and CLTV prediction techniques, our goal is to uncover invaluable insights and develop actionable strategies that drive business growth and nurture enduring customer loyalty.\n\n## Data Set Story\n\n* t_dat: Date of purchase\n* customer_id: Unique code of the customer\n* article_id: Unique code of the product\n* price: Price of the product\n","metadata":{},"attachments":{"7a3db366-1725-48b1-a7a4-79c0f3fb068b.png":{"image/png":"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"}}},{"cell_type":"markdown","source":"## Importing Libraries and Data","metadata":{}},{"cell_type":"code","source":"!pip install lifetimes\n\nimport pandas as pd\nimport datetime as dt\nimport numpy as np\nimport warnings\nimport seaborn as sns\n\nwarnings.simplefilter(action='ignore', category=Warning)\nimport matplotlib.pyplot as plt\nfrom lifetimes import BetaGeoFitter\nfrom lifetimes import GammaGammaFitter\nfrom lifetimes.plotting import plot_period_transactions\nfrom sklearn.preprocessing import MinMaxScaler\n\n\npd.set_option('display.max_columns', None)\npd.set_option('display.max_rows', None)\npd.set_option('display.float_format', lambda x: '%.2f' % x)\npd.options.mode.chained_assignment = None\npd.set_option('display.width', 500)\npd.set_option('display.expand_frame_repr', False)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:23:56.054748Z","iopub.execute_input":"2023-08-28T18:23:56.055287Z","iopub.status.idle":"2023-08-28T18:24:12.943139Z","shell.execute_reply.started":"2023-08-28T18:23:56.055247Z","shell.execute_reply":"2023-08-28T18:24:12.941007Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Loading the 'Transactions_train' file\n\ndf_trs = pd.read_csv('/kaggle/input/h-and-m-personalized-fashion-recommendations/transactions_train.csv')","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:35:17.949398Z","iopub.execute_input":"2023-08-28T15:35:17.950027Z","iopub.status.idle":"2023-08-28T15:36:42.567404Z","shell.execute_reply.started":"2023-08-28T15:35:17.949989Z","shell.execute_reply":"2023-08-28T15:36:42.563868Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_trs.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:37:07.213770Z","iopub.execute_input":"2023-08-28T15:37:07.215327Z","iopub.status.idle":"2023-08-28T15:37:07.247749Z","shell.execute_reply.started":"2023-08-28T15:37:07.215267Z","shell.execute_reply":"2023-08-28T15:37:07.246581Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Exploratary Daha Analysis (EDA)","metadata":{}},{"cell_type":"code","source":"def check_df(dataframe, head=5):\n    print(\"------------------------ Shape ------------------------\")\n    print(dataframe.shape)\n    print(\"------------------------ Types ------------------------\")\n    print(dataframe.dtypes)\n    print(\"------------------------ Head------------------------\")\n    print(dataframe.head(head))\n    print(\"------------------------ Tail ------------------------\")\n    print(dataframe.tail(head))\n    print(\"------------------------ NA ------------------------\")\n    print(dataframe.isnull().sum())\n    print(\"------------------------ Quantiles------------------------#\")\n    print(dataframe.quantile([0, 0.05, 0.50, 0.95, 0.99, 1]).T)\n\n\n\ndef uniqueInfos(df):\n    \n    dictz = {\"FEATURES\": df.columns,\n             \"N_UNIQUE\": [df[item].nunique() for item in df.columns],\n             \"N_NULL\": [df[item].isnull().sum() for item in df.columns],\n             \"ITEMS\": [df[item].unique() for item in df.columns],\n             \"TYPE\" : [df[item].dtype for item in df.columns]}\n    \n    return pd.DataFrame(data = dictz)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:53:16.225520Z","iopub.execute_input":"2023-08-28T15:53:16.226049Z","iopub.status.idle":"2023-08-28T15:53:16.238604Z","shell.execute_reply.started":"2023-08-28T15:53:16.226011Z","shell.execute_reply":"2023-08-28T15:53:16.236900Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"check_df(df_trs)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:53:19.643553Z","iopub.execute_input":"2023-08-28T15:53:19.644674Z","iopub.status.idle":"2023-08-28T15:53:33.715949Z","shell.execute_reply.started":"2023-08-28T15:53:19.644632Z","shell.execute_reply":"2023-08-28T15:53:33.714349Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"uniqueInfos(df_trs)","metadata":{"execution":{"iopub.status.busy":"2023-08-27T11:45:11.862829Z","iopub.execute_input":"2023-08-27T11:45:11.863297Z","iopub.status.idle":"2023-08-27T11:45:50.887885Z","shell.execute_reply.started":"2023-08-27T11:45:11.863256Z","shell.execute_reply":"2023-08-27T11:45:50.886126Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"**I do not see any missing values or issues in the datasets.**","metadata":{}},{"cell_type":"markdown","source":"## Data Preparation for RFM","metadata":{}},{"cell_type":"code","source":"# Let's add 2 days to the last date in the data to calculate the recency\n\ndf_trs['t_dat'] = pd.to_datetime(df_trs['t_dat'])\ndf_trs[\"t_dat\"].max()\n\ntoday_date= df_trs[\"t_dat\"].max() + dt.timedelta(days=2)\ntoday_date  # Timestamp('2020-09-24 00:00:00')","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:58:59.930341Z","iopub.execute_input":"2023-08-28T15:58:59.930901Z","iopub.status.idle":"2023-08-28T15:59:00.924650Z","shell.execute_reply.started":"2023-08-28T15:58:59.930859Z","shell.execute_reply":"2023-08-28T15:59:00.923470Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### RFM Metrics\n\n* Recency (R): This metric represents how recently a customer made a purchase. It is calculated by finding the time elapsed between the customer's last purchase date and a reference point (e.g., today's date).\n\n* Frequency (F): Frequency measures how often a customer makes purchases. It is calculated by counting the total number of purchases a customer has made within a specific time period.\n\n* Monetary Value (M): Monetary value quantifies the total amount of money a customer has spent on purchases. It is calculated by summing up the monetary value of all purchases made by the customer.","metadata":{}},{"cell_type":"code","source":"rfm = df_trs.groupby(\"customer_id\").agg(recency=(\"t_dat\", lambda x: (today_date - x.max()).days),\n                                           frequency=(\"t_dat\", \"nunique\"),\n                                           monetary=(\"price\", \"sum\"))\n\nrfm.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T15:59:02.325806Z","iopub.execute_input":"2023-08-28T15:59:02.326203Z","iopub.status.idle":"2023-08-28T16:02:51.275073Z","shell.execute_reply.started":"2023-08-28T15:59:02.326172Z","shell.execute_reply":"2023-08-28T16:02:51.273323Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"rfm.describe().T","metadata":{"execution":{"iopub.status.busy":"2023-08-27T11:51:21.951804Z","iopub.execute_input":"2023-08-27T11:51:21.952335Z","iopub.status.idle":"2023-08-27T11:51:22.170621Z","shell.execute_reply.started":"2023-08-27T11:51:21.952300Z","shell.execute_reply":"2023-08-27T11:51:22.167697Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Performing scaling on each value and standardizing them to the same scale.\n\n# When we mention \"segment,\" the \"qcut\" function should come to mind. \n# This function sorts values from smallest to largest and assigns them based on specified labels according to quartiles.\n\nrfm[\"recency_score\"]= pd.qcut(rfm[\"recency\"], 5, labels=[5,4,3,2,1])\nrfm[\"monetary_score\"]= pd.qcut(rfm[\"monetary\"], 5, labels=[1,2,3,4,5])\nrfm[\"frequency_score\"]= pd.qcut(rfm[\"frequency\"].rank(method=\"first\"), 5, labels=[1,2,3,4,5]) ## method=\"first\" --> order-based ranking","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:03:39.269130Z","iopub.execute_input":"2023-08-28T16:03:39.269539Z","iopub.status.idle":"2023-08-28T16:03:39.716384Z","shell.execute_reply.started":"2023-08-28T16:03:39.269508Z","shell.execute_reply":"2023-08-28T16:03:39.715025Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Segmentation ","metadata":{}},{"cell_type":"code","source":"rfm.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:03:54.614109Z","iopub.execute_input":"2023-08-28T16:03:54.614521Z","iopub.status.idle":"2023-08-28T16:03:54.629827Z","shell.execute_reply.started":"2023-08-28T16:03:54.614489Z","shell.execute_reply":"2023-08-28T16:03:54.628781Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# lets create fina score for RF \n\nrfm[\"RF_SCORE\"]= (rfm[\"recency_score\"].astype(str)+ rfm[\"frequency_score\"].astype(str))","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:12:54.891670Z","iopub.execute_input":"2023-08-28T16:12:54.892255Z","iopub.status.idle":"2023-08-28T16:12:56.077872Z","shell.execute_reply.started":"2023-08-28T16:12:54.892217Z","shell.execute_reply":"2023-08-28T16:12:56.075798Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"![image.png](attachment:aacb395b-5ef7-4d82-8a13-628509a65d85.png)\n\n\n**We can group customers based on their R and F values as shown in the table, and provide personalized treatment to each group.**","metadata":{},"attachments":{"aacb395b-5ef7-4d82-8a13-628509a65d85.png":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAowAAAFVCAIAAADqiCn7AAAgAElEQVR4AeydB3gTx7aA/V7efcm796b3HkJ6QkgCaYQQejPVvXcMuBe5N0m7am6YjnsBFzUXyE2oCSkkISQhjWY62LjJ6itZbvu+2ZVWK1k2NqZI8vKdT5ldnZ2dPXL2n3OmHAf0TvwbHBwcHDDeuG8A7e0fxKVnYNCiEApmBbKydnBwTEK+1qxa4pCsM6bKtYMmD0JUaFag6sctYGYW4tCq7NPTj/b2oagORbX9aI8W1ekG+vr7BtC+AXQA/OsbHOwfHOzvR4GAc+hAPyYD6KCZoOigRTFTIw4tKqNDqqX0zQxFGMSsYKZGHJqpEYeEglmBUDArmKkRh2ZqxCGhYFYgFMwKZmrEoZkacUgomBQGUBT/e+5B0R50sBft70P70Z5BVId/04d9T1QygA72o32EYH/4+J8/9n8A9geP/9mTPgkFswL4v8OSmKkRhxaVB0zbQChbSXt0A6iuXy+gSQTz+rEv+lH81AD2X+O3hBpecDA7vn2HAyiq7UURLarrw15og+jAiNI/iFoU8lWDg+iYhHytxcr7TZs0psoHTa+l6h9qPZuz/wCK9uPvNex/vb5BgFrsnAZFEZIoUVSJogpMpCgqRdFukuBnhvska+Ll4TSH1kzpD7UVZU+yTeQoKsf+OJUoqhpEkX4U6UNV/ajKcFKK9nWiijZU1Y5qDYK0o3ppA19ZFFUbalEsKoP6hxF70pe1oUBagYDn6kSRLhSRD+oQrKuvG7RmSPf1DfzxJ7L/oHTPfzQHDvUd/oYsA19/g8vgV98Qgh76xqIQCoNf6a8iLr9ugXytxcrRQ8YGUPVbNBHZhtc1uJkC+VqLlVub/fu+/q7n8BHd4SPowe/Qg9/pvv6568iff/5y+es/pY0neupOorUnBmtPDFafGKw9hdaeQutOozVn0NpmIPyzJiJoRi2KmRpxaFFZMKRaSt/MUIRBzApmasShmRpxSCiYFQgFs4KZGnFopkYcEgpmBULBrGCmRhyaqRGHhIKgGRWd0Qt+kn8WrT2LVl8YKGpurZFdrtX8Xig5WK78tkxFyOEy1eESNZBi9aFi9aFCC/J1odqiWFQ+NIzy15ZqxmuwWLl16yMHCjHZoTmwVXtgB3KoTPFNXdeRo7pL11CNBkXV/TrMvbZOT1qnk+9painYcIYFX9u08Up+7tU8o7Tm5uJyLSe3PdsonbxcMyF/ey0n9waEXINZ5Z08463bs2+kcqr91/1FbMv+V3PzL+UXXMkr6OQVdHI3XcnddmzLLkHloQL+X7Sac2H8a2H8a+sFelnLbw0V6GVN3dWhElp31UyG6pDPmCmHWqqT0idbiWyNoWWyJl4eqkM+Y5f6gYKrAcKrfqLLvg2n3Jq+ijt1JLN7f3xbVYZclKYUkKQuTQkkVVGbrKweIrXJyhFkIutXJSurklRV8UhVkqo6Qyrktjc1aH47hyrU6KC6X2vFkO7sQBr5Xbmsa1yGJI/TxmN2cI3SyWHiImEzpSyjyFhMMyF/K2Ezb0DINZhVLiPdWsq6kcqp9l/3F7E1+8MSFlsGcdWMbCUjuwPO+TO/ZA//Z6jqr8hdV4NrpcG10sA6aTBfhkugQDaCEGpEYQTlQIG+TkI5mD9S5ZQ+ZR+zPyfyXw5uHH+hzEek8hYh7vUqt92tLvt+S2g5ES/9PFYJoEKSingESIK6gqYuHSoJqtIEZbllUZWCb4fKhNAvTlABoamLaerCBFVpinwns1NYIf/uNKqQo/0IGOi9/r87NCbd2dYrrlXwIAkrS5nNkrLpZJGx6LgoYDohSohuUQgFBay/irj8ugXytRYrV0LGBlD1WzQR2YbXNbiZAvlai5Vbm/0VMF0JwWoGW0PnqhlsCcz4e8OWPfyfmFUn1ld3+tVpcPHna/0ERvERas2E/O3Qspmyj9BY1VBlP4F55ZS+mZUoe5IN4s/X4oL/5XiKdO5inUuDbvWe7pX7/469dipavjsKKYvRVhikLEYLJE5TFqctidUUm0kcUmyQ0jjETIivLBbMlEsN9VhULh5SuZXrF8YhBtFspyHbE9SFCcrKLAm/RHHkFKpW6CflWS2kOzoGhHwNm6VgMhAuRwEzrytKiGlRyBcOdYVHPkO+1mLlSsikYSPXNvRbqv6hNiGfsT37wLAC4sqgbAmL28GBr/FS/ticvUf4LXPnX+truv34A7j4CAYI8RYOWBRCwaxgUdlbaKyQ0rdoIjOzEIcWlSe4PUl/pX2eYq17PeJWr3Pe3b1638nY1jOxst3R6rI4TUWcpgoTgtYVMdqyaE3p8FIerTGTEZRLhyiXD18zXo9Z5datry2ONkphrHY76IKodqZ3i0vkR88ANxqjNDbzdGRQ3yFPuqOjTyRUczgKBqRj89RMWAkBIb+1h5aHclSvA8EKTGQwrBcsMD60Bj0hDGr4VeAT6yUMW7+hD0EGjIzFNF5ONMA0IG/WgGHrJy43NAy/kdnlCtgQ7TeoGRtAtR//A7jF9ldAsAziSmFuB4fdxmNe46X8uTH3P4JvmVUn1tbKLILBUzhgUYaDh0Vlz2FI7z1M5ZQ+YV7KnrgFCIOQOyjeQhKkm2Sr952ObzkXL90dqyrBIF1h+MTcaA3wp6/HUYLKOFCJw5tesPb6I7XFhERrC6O1hSACgVSmAkgfa0b7dSiK9mIL4kZGNIreIUh3diANYkkOTwqxtJwcDYOtZrAVENtIWZxDw71zzanGlsFAFBAhANsY+HH/29AJ0F+oV8Ovwj4B3QlaE3QcmcpKJttMjNQcmRlU+7Ffynbsb4ziyGBYyoLx0ZkuFuNU3rYvan+GKk+tre32Fupw8RH3EkKcpAqUBazQAni4261eCzzpvefir17SQ9oYxC6O15TgYjHcbRb91h8ipbEWpDwWKTeeHxI5t1yVRTULlZdilVtL/TiYyZ8YpEvTpdUliiPNqFqL9oE9FK7jSYOJ33cK0l3KxoaO3BwJxNGy8zQMtkYPaVNOm0LaiEyDK4lBXU9oDNJcBcTFUY275gbnVQ9p4KwbQQ5mAAHBAE92wY03Mm0AmcFmeCYOyTrD1WPaF6Haj1sAi4KYGtzMgGTbEgY3K5B1zC43Ho7x70fNZOKihPBgBl3BylTAdCnEOpNTsrfmN6jyDIC0SIuLj7iHEOIkVaAsYHUWEOo8RX3u4j4SpK+AiWOqEmx4uJCmBhKvKSIkVlNoUYzjr2Ag1jiobEQywKoR0gYdw6itYfjWYuWxGjM126ifTOhoLRjLj0MK02WVJcrvmlGlFkXQQY1+O5NhnWkK0hSkRwwGGKlmxs4xQs7QYcJGNGywkzQypPdV/8aqOLO+TkqAmVywuveyoSdBNYyygDcFaUOf41Z0MihIG4af9X4wHu6mPGnDuLUZVrFDspdp5oASh2QdCtJ4JGYESDdnlxzY9Ru7/EwYBWkK/zZnAQuQxsLd6iIcWpQnPZ5IgCVIF6dLdxo8aa2tetJkSOBjwxZQMawnR4xJsw3em8mYtHm4mwR46wh3j6b9+lly2BA+ESo3dFlwNpvYx/AVPuhuGA432Mc4EICfIdvfJCxPpr7l+o2NN0wIgK8z3DCM/Yk5Aca5crepk2F8BIN9jKPR+FR/7K/RGO6mIE35ozZsAT2kdW4NiPPuLuOYtLqIHGGO1xTFafUyvnC0caD61oS7rat+c0iD9WkYpPVj0lp0oMcmw91kSFCQtgQ5AtKwyWg6Ds47CWlivJ+YtUdBuseG3+A25xdSDR6rBcwh3ayfOIZB2shpA6HjtADeFmV04WLrgij5QW5F+0mQLo7WgGenIG10gxTQRPCkKUibz65XMtnkTp6FGIyFTgwRjRjh70fvTxs8e8qT1k+Ro7ogtm0BCtKGPgcF6SFz1zqHnd1NfsmCMrE4eNhw62hessagrsns7mHCrcO93MltIwZxzQpkneHqMQkjk9pAbptpuJXcfsqTxjz1IVPe8B/i1tifgjRFZfu0gH4Jlj7c3RzfciFe1hhLedKGCeqmY9JjiwRY8qTJS7B0thvuJjs0RiDhL19TvIHRVvJL2QA5s5MjHOL3GkHhNn81THsMu6mA+L9hUPmGCkPqx2s2qZNs/2H0R9Mesg5Rxm5E/Ihj/71u9c8x5HmxBhs6TODucjYkZzOU7CwliyGD2edySg9WH+dWNK+vMS7Bsm3vaqwhU0rfli2AQVrr1qBy3tPhtP8srfUiTd4Uh1iOaWPxYfNtQce8uNniuuebchJfPH1TqrJYyajqB/uWDBE83F0eh+CQ/rEZ1WhRHTrQe70xaeDfWt06acOL2/Lrkni/EwVTVlm+ylSH/KIfqz752ltRHqY9BORsHdIwk/jhsA7WMM9r0mm4FXYerk7L7aEgTXU77NUCppA+Q0F6pD7HKCA9BM84sClIG9/pll+yFKQNFhhiHxz/RgMSk79wzWH0R9NpIOuQyhSk7fV1Tz2XLVqAgvRIVDbzpylI42uKKE/aAFSSt0eCnIVvTRBLusrC+WGga6JJxjNRNlRLbgleNrnWoGbYDp28mEo/V5+0fMvwW5OuGq6223R+iH2w+1KetC3ih2rzaCzgKdJ5iolw9xla63mavIEKd1sm9/ghrS5Pl9aWKPBwd58Nh7uNU7HwrBukFzTuh40PVNaDhBtqyVBMWoAlAVeLBey+5HpIFjaAE7/QuDmM3ubkq0ZTNqkZ3Hc0vyABRWxd+w1Zach9b9bfDDUmPZpXP6VjQxbwFCPuDQqX3W3O+0wgTUriZEzoZJleZh7nBD4cPtxdHotUxuGQlh9tRnuwvbvxMWmw9+cIg9N3aky6Q9kotrh3N1g9RUzcpSA9FDbDodFE0yKbiZNkSNOHTEYj1NjYRuj6vdApSOMWoCBtQ/ihmjoaCxghvf9UYsv5BBnuSRvBTKY1BemRLWB/kOZJDFmwiAQbZI8H96jIZ0bjh5H171TZQjuHg+tw5wF09bw0sYNen66AyWI265sMWkueqOlNLbSWdHesGWZcJ9+aXDZJv62AmeSWD3MXS80z6XBYlwIF6dG89ykdG7IABemRuTumb20Y0oOm/9COdkWDqD2H28WENWweOQsWGavkVzx+3lZe9Hg7yZ9DR2f1Y7SG9d8GBcA8bKMx2HJEYRhI46vRlBCsZsJqBohGGOFqxjysBpM13OYr2QAXlSwWLnImBARiYC0kI3loGUDasEsaXsCTaljempT8W9tKmYK0DeGHaupoLEBBekwYHlnZNiA9ODg4MDBA3r4EPzNA+oe2t8nr+W3ZrE4mHWGxtUyWhgHAMGTds3V5UaMHCY5nkHjYIDIWGWB6vMlYdDwzsZRNl7EwPMOZSjhTDdHVDLaGzsW7Lzh08S4LjkDcjZaxwFWYMKUsYD0NA9ZlAdEwjKO/2IXG7Tjw/WGIhoELTdqmx6qSxdKwOWoYUjAZMnqmgsnAbk1XQiMIuAuejkLDAG1QM/HawIYzUhYQ8k9si50wCtKjee9TOtZvAR+h1kcIdmjBIe3W1Oa6zyTcHYuURmvMZWREUd+OD9LE4LRJ4faNSZN9aeBJNwrac9hdEFPD5tgfpIkZUmRnWs8nQ6gZ82UJyuqxbUAgU8lkqxlcNYOtJzST2OhUvyE2eS82KYspYQMqq5mwlg5EzQTolbLAumTQtzDc1HgVeZa1ifur391MDbPUMIRDWsFkGDxp84A2uWZQxqYRqJmA0ASkCUJTkLb+dzfVwgliAQLS3iLEs15BhjRNDXJCU5C+gT6HjUEad6AHBwfJXrW+LJUg/xF3F/DkXLgvJ1sLQRoGePsDbpHhYRantalD3E3EcQWQCcO4K0m4sACfGB1x19PgIhNGAH6nhMWVsLgy2DjGTFRrcFLxmmEJG3jtRPopBQQO8ZO4k00YFj8kGgbC45i/S0yl1ju4DBDllkKQPujNYmGPYIwNEA9iWgBOs3H2H/aTjRXSRFPJbvfowxi3VJPypCcIw+z+MSlI3wCDr3uJVUOaDOO2trYrV66cP3/+zJkz7e3tSqWS/C3gtKRT2cTvyGNJYIaWy7E/SJNRChxKBkCXBEBXH/XFfEoMZvgoMoZJnIISNtzJZney2R0cdguP28LjdrL15CMqwSmIO9kkBAKC4oQzdAiMtyOfkcHAQSecXRUDUjBYCgZLCrFwNQXE7mbC15iMayxYyuUqeTlyDpdcw3XLhgxdIL5NKGP8Ng5h6HsDpL4XGc94+ZYS9wYqpyBt9/SaIA9oAdJ7z+CzuylP+rowHk7BBiA9ODgolUq3bdv21FNPvfPOO9OmTXNxcTl06JC5M93ZIW+obcuBOpmZCAvuAYOpY/Ck8Zf70Ff8Dbxzb/ol5FZ1pmd1M+He3A1KNlfBzVHy8hTcnPZ0hpqb15HJlDI5Sna2nMFRsbhyFqctM0uem3uNw2rP4W6c/q5g6dKzEKPEyfE3RtolJrODDnUz2J1sbuHCuUmvTLoKQaBCJlcDZXdlMGUQV8rkyFmcTgazg864nJyi4OZIIE5XFiRn8bqY7A46pM3f2MmAJRDnWhYTydnQns7oZsISOlPN4cmZLAWDo2BwJBDnXFZWg9Pqbm72hZQ037v/58+stGtcbhsTbstgyCBuN4Mtg7gqTo6EDssgroQOK9nZCC9fzuLJIK6amyeBOJrcAmVOvoTFbYfZiuycNgZDArEkENYDgFiEr0/8iOSfgIL0BCEE9Zh33AJ6SAt12LC0yq2pw3U4SGuNy7FMEk5M4PXQNglpfLIYAemUlBQEQVAU1Wq1KIqaTSVDOzuk9TXXeMwORoYahuwS0lIW3A7DlxhZv8VG/xIdcZnJvESHZLkFJ+NTfguP/TUs5mR8yoX0rBYm61h41PmMrLOZGT/HRP2dntqam108b45o9aojtOi5dzsIIoKaYUYbHZIyOR3s7ArnVWnT3v4rNa0D5p2Kop2IjP8zLuE8nS7P39AKwVdY8O8JtF/jYn+NiW5nc64xWF283D+j408mJp9MTP4jltbK4koLNjVnpP+eQPstNvZ0ckoHi9XFZEvpbHkWuxNiN/l6Rr/w1O8JtN+Tklbdc9dXKfFHkxL+SE5uTs3qYOd2cfMvZkBnkzN/C4+9kMZoYXBaGJxzKVnNSRnHI+LOJKafSUlvTs34Oynxj/j4FhhuhZmdbHYXDCCNc5qC9B1/O1MNoCzgLQKzxsDEMXNIX0yQNdHUxXHY7lr6iWMUpEfdHbFqT5oMaR6Pl5SUdObMmebm5tbW1oGBAZVKZeJMy6Sq3cLOfI6Uxezhce0G0voVUNgIdAcH/iUpmjvjnaCn7/N78r78+Z8dTU89mp6a+e57UZNe9H/wYfp7044kJ53kcQIefihn1qesj9+Pm/xCymuvHE9LFbq7HFwTzPpk+vv/cPB985mfkxMvpWUpOHnaLTuKHR3T353azID/pCVnTX517aOPrnnp+dRPph3LTGvdvFEU4r920tP+Tz7s++gDJY5LLmTn7Fu/ft3TT4U/+8yaJx7L/nTmSR7nWGZG1vvv+D/58Nrnn2JOf/ssi3kNZncx2fIsbjvEdb7vnrl3OXBmfPA1LW7WPQ5JC2Z4PP7Qumef3jBn7pmcDfsjounvvR/y2JOhTzzD+2TWKV7eT6lp8S+/kvnue+lT3/F74EHm+9N4Mz9Keu3l5Jde+D4irDMv5xIjC/QDME5LgSd9/c1qyP402c+2hjIV7qYIZx8WoCA9nDc8nvM2A2kGg7Fw4cIVK1YsXryYRqO1traaEBobk7bXcDc+r1vChq/x4JzZ72d8/ObB5LBvUmPiX3lpX3hE0cqVvNmzf8jI+IlBd334gZq1wUez4ZX33cP4+IOfszJO5vN8Hrr3p0TaJQ63NZv3F5w178H//pwZfyE3ux3idmSxrtLh8lUraW+9/ieTwX53es60j37LpH/LZbo9/1iRm9PJgtyl//rHzrUBp7Zt/CYzZaGDwzepKdBnM1Pen3Y8h/c7jwt9+snxHN52Dyfv5574KR8+mgdHTpm8aeHsVha7mwEgfQ3mFnquXvPmpFO52T9mpX9yj0PSopl/bszdExa26K67vk7PzF7qGPHWlKMc3g8QK+H9D/JWLNufmBg2aRJz+vvnNm4Ur13jePc/GteGHKOnQx+/t2H2J+0FuR0coyctoSBty2kN7QNO1FPgFiAg7SnWutfj4e6ziS3AkwZTuzWk2d2UJ21/nvTu3bv5fL5MJjtx4oSfn19OTs7AwIDZEqxuUXULl9FOT1dCzB4Y1kIQPrvbGrylG26DlAV3cOA2Lvi8kgP7Pn1/sefyP9OTrkJQKx1uYXCucnKOJSX/lpl5OJHm/9yT27ycv+XSfZ5+tN7H5wQEn96ywfPh+/eHhLQwWVI6+2xK6tJ/Ohyg0y5wgY/bxci+BmfXublFv/nqLxuyV/3fPV8HhZ/P4p7OzufNnZPx4fvfZKTNv/u/v4foZ3LzLm3esmbypNrIsIJVK0NenFTt5/9NcurRjMzjXE7o268lzf1od3JUU1JkvvuytZOebofZyiwQ7r4Gs6v9PaPemHw5O/sUxFz4D4f9afFn2ZxfElIWOPz3F8mpcTNnQMsd6+Pjdyclslc5rn93ytdpaWlvTv3C3e8qJ29vdLT7A/efYrF+z0zPWzY3dcbUyznsbg4HH37GZ5tb4YTtMf3clCdNQc6uLCDUgURY9YhLU5fzPhNIk3cDJcrj8TInwrXj86TNnVn8+KatkyaHuzUaDR7fVigUBQUFfn5+5jeXdJp50nYD6TYugHQnB27JhoMnP1bqu+oCG4wot6dDl1Lo+3wDudPej3/+hfiXJq+49+6N7isPszN9nn60wdvnFAZp90fuPxgc0pHFGuQWXIhLXOzg8F1mwhUOu4vJ7WZwr8HZpSuWx7375nc5rM8cHL5eF3Ete1PblsJN8xcnT5nSGBE263/+61hu9tX8ja0FWzwff7zA1emPDRtKnF0TXn3T+1/3Zs+c9SPEcJv01LLH7l3z4tMBTz3i9dwj6dOndjHZSAaAdCuLXeG6Ov7NV67l5P6dnLr8Hw7fpNCuwNw/41Od/+9f9TExbi8+v/SRhzyffCrkxcm+Lz5P+/D9b1PSsl6fesDVrx3O2xcV7fHAvWch6K/09Jzlc5MxSMvYHHyVFwVpu3q5UyEBO7CAUOct7DOF9OUE2R7ckybATC5MBNCO5xmtGtLEIiupVPo79q+/r18ikeTn50dGRppDWiohL8GyG0+aWEksgwGqY96alL101u9ZyZcg+rHQdeczsqImPVeweF4zBP2RlRE4+aniEM/D7HTfpx6u9/E6BTHPbMnzfvjeg8EhbXQI5W1sT05b7eDwVfS6ayy4mwHmdl2DuVuWLYyZ9tYPXIbnEw/v9PL4k8M5k59Pf29a/sczf4Og6f/l8CUj9WLuhjMMtteDD4jWh36XmHSSwbrKyv09KWXFP+5qjAunL5zFnDPjRFbmVTb3aELcBRYkzwKQltIxSLutDJ/01Hkm4++U5FV3OXyfhEGaluz+f//8lk6P/fj9zW7OzZy81vytx1Kzvk9K/jEphfnaFABpVs6hyEif++49z4T+Tk/duHRu1kdTWrLZMjaLgDS+QmxMnqu1KVOeNNXVsB8LUJAedRx7lOS2GUhnZmaGhIT8+uuvu3bt8vDwaGxsHBnS+DppOcSQQgxreymPtT14aFfNBBuJCH1dmZ+8u9N9Rb2HMzT5pcNrQiInP1OwZM7BNWtqnZ2c7rsna96M7+H0oCcebvL2OsNkXirIC7z/3q+DgjroUA/EVXN4Af/737t93dthuJsJSxnwNZhduHxR7Nuv/smB8ud/xpj14X9iww8n0oIffOibNesv5eb5v/BU7srF38XG7vbwdnJwOMPhwO9MbXBz/2Fd+O8JiW53/8+RjCRBkG/wIw/+EhXzW0RkyZzZu52c5FlsVSYYlm5lset9Pfwf/NfxuLiLDIbrfzkco9FaIfaJuGSP//nHN8nJFT5eUa+8/G1k7Jd+wVXLV/0nIOSXhBTWq28edPWRsPO+CY8M+Pe/LjGZp1NTdyyazZk2pZPHkrNYuE3wHgwV7rafV7wduJIT/BHMIL33PK3lMo3ypMdBbquGNBnDJ06ciIuLc3R0dFrttHXr1p6eHvK3oAw8aWFHHkcCQ1oOD98WFN/faqxQtCp9fHY3vkmIAoLPQ1mVq5ZEPPfY2sfub3B3/SMp4eCaYPpbr6W9+krpksVFSxcnvv7Kochw+huvH1m7vo2T3ZGTx33tjeOhYZJMqJvO7GLChTM/THrmsR9Dg84nJXRzWC1MRqOHS9H8ORcys84zGdmzPop++bmEF5+rXe54lcGUZOcciQznTn83+pknkp5/9tuAoC5e9s8xEVlvvhz74tPRzz2+a9GidpjdDrNrFi6Kf+qJ8Cce3PTZxyfTk/ElWFI6WIJ1NCYq/qknEh9//CqDmfn8883JKWpu3oWEtNTnX/g1MfkizClduDjyxRfWT35h25JFfzEYv8Ulln4y61jIeikn93gcjfHSK+1szoX0jP94uIpXLJPzOF30LAXYLAVsXiaFIKv6vW6gMZQnTXUy7McCYEC6z1PU51avdd7d7bTPBNKxmkJLgs0pGwfGRumS2qiazUAaRzLO5v6+foLQREgc7e4i790N9uSi6zehxHMu3cDb00ouITithOAumHWVDV/J5ZzjMpuzMs5lZV2AmFe5nPbs3Isw6yLMas3NvZaXd5XL68rJuwZz25hsOTtXxcrWsvO6meDy8+nJV5mZ0myOhA13MOmtWRndPHZLRqaUAXcymBc5zHNc5rVcbivMbIfhlozM1swssFVZLg8sfGIyO5n0dh6ra3Pu2Tyoa0dBG8TsyqBL0+nddGYrG24vyO3amNfO43RCwI2W0tlSmNuVk3ONy+3k8sBsspx8CcTpTKUjvPyLWfQrLFjC4nZwuOc28E5tyL6Yl9NVsLGTk9OaCSk4eRJWtoSTo8jdKOHwWjMZUi5IcabksEHfi8N8cyIAACAASURBVMHEf1YK0vbzfp/gPqh9PD4GaXexRUhbJHShjbLztjXbxiBNsFmn0+HlESCtYcB24EkTY9I4qns5udrcfEleTisbVmTnyHm8Ni67FYKldLaWnafIzmtnc66ywd6f5+n0a2yOMidfBnEVEFfKAFtpdjKYCh6nm8mUwIwuiN4F0bvpmd1paTqYo8kCvqk8N/tcRvIVekY7G2qD6FIuGABuz8iQQpA2P0/O48hyOao8XjcPvsZlXOPB7WxIAkOaLAhJp+vYPFkWXZqZpYQ5IJaO7QgmgVgdHHZ3fm53bk4HkylncTrSMhUMFtgxLS+vi8eVYnuSgG3ReDwJi9uVBXUx2UpenhTmdtAhCcRpy2BIYa4mJ0/KgFUsrpTBVLLALmP6fJdMypMGeYcooSxgFRbQQ1rn1oA47+4y9aQpSN9IzMBmII3P9MZ9aNyfxtNUTgRIE4kusAwW7O7UrLbMrC6Y1ZtfIIVYHSyWOj9fngmr0+HuLLiDCSs2FFyFoM7s7C5eds+GTdrcgtakVDmL08WEVWDDTkjLy1axYRWXhWRze3jcfhYHZXNRXnZbQkIXPaOdnt4J07s5kDSH1c2Bupn07ox0aXo6woKvZqQgm3JlHEiVw72akXIlK70Noss57B6IjaTTUVZ2L5OtpcMqkEhDv2enlMXuxrYKb4fhLiYsyWS00JK1nBw5E+xG0sGky2C4JztHk5crg9lyOoywuOCrLEjJzu5msFUssEcpIDrEHszfpIY4Kja7KzOTILScgjRFaMoC1mQBMLVbbID0/rO01os0Ob5OmoK0XUOa8KGJArFIWn+mu0vRIGrPARFRDZunZXI0DJBtwiwBg5VEsMfUDCItBHCmQbZHMHMKmy3FljNZeNoJJRPsuoU/L558QgKxZGwOOduVDIbx9FP43QnO4Qmb8ZRZ+FQ7KTbhDv+UQ1hOSSyBFXnfLhmbhQlHyeaq2Gy8YfinEk9vhQ0Yg2FjQwJsKQsGc74MAp6CA2Ejstin4TzWPPDD4buJgQ3FYA74xBRUbFAYkwGtXJkak7YKF9CaOGfTBsEgrXVrUDnv6XAyQlpP6Dik0ExuW9zYRm80Pk/aJI00iuoPb9o6aYLHIxRMPGk7hTSZMQThcJKBPBYQYPNQkTNZZt+aXksKF5MyQ+NINv9kgtF9wmfFUS1nseQskIHDIKDrQAiI0hsgjevjqMYVlCxIySLhmW1Sxp/X0DUxPhrRfgrSNv0Spxpv3xYwhfQZWut5mrwhDqEgfSNudKym2J4hrWVylDBACBlytl4mQIU/CAHOoc9Fxir+7dBrh+oQ7vWQghH5uO9uYDNPzuIZyhikMeKCNN6WxOg3m4KZfH7os5i1n4K0fb/lqaezaQtge4Iibg0K5z1tTvsNkNZsx+d1m7nRGLxvkF426hmPtdk2D2ljLixJp7xe2JYNUisiLK6WyaEgbYZwCtLD4f/OnqfC3TbNJKrxZhagID1WDI+sb3eQ5vE6GTACZ5tC2hgyvbOv4/HfnQCtmTc53HnyHUejQ9Y3LRttaPCbiUA3UTB60mTPeKxlcjtHUzZtJ2xzhxSkzd7y1KFNW2A04W7yauk4pJiQkXE1Mb+1eUgb10x3dklFomtcsG5HDYGJYyRP2ggYm3uDmzWYDC3yV8OdH6sOWd+0bLQhBWlTy4y3W0BB2qaZRDXezAJDII3P7jYZk6YgPfoOBwXp8b5hb+77+rq1DQfj4c6TKxyNDlnftExB+lb9qVCQNnvLU4c2bQEK0qMH8Gg0KUjfqjevKeFu2l2GA+1w58nNGI0OWd+0TEH6pv2IpoaFKUjbNJOoxptZwBTSxDppypO+wflxNg9p48SxLom8XtxmGJPWMNikddJGwJi9H6nDcVsAt+2tAti4m2cDDaMgbfaWpw5t2gIYpKnNTG4QyUN96/FB2vL65du6TpqC9J3GGAXp8fYDKEjbNJOoxptYwGxb0P1nSVmw9M40eUAaK980ng0lnB2coSA93jfsnWbkHW8/Benx/gQUpE3e8tTOXzZtAQrSNzudFwXp8b5hKUhjm51RZrxxC1CQpiBtPxbAIO0pMoS7qVSV42Y2Bekbf7dOeDxTprs5FqAgbT+IsuwEI94ixN6f0ZCHTajzFoJ80u5irUtTt/NeIp90KbbDZXG01lxuWkQaKY21KOPG5LhaOLRJY2yPnUNaycQTbFATx24OTqh+ya2wAAVpewfYhIZ0YsvlBNmeOISCtKEPQUG6kwFroGwtna2l6xNDmSafoHBFWcC6LEBBevyQ9hTpPMW4M4cT0ao816GQJhppVe00eMOW4wGj+1bvSevc6xGXpi7nvecNkAazw4a60dHamzdrbKjPip/RQ3G4aWu34jzpoUititaURmtAZ2VMYkeeNLZ3dzuPI6EzNTB3GEhb19v5VrhlVJ02ZwFyZjAZDJ/LLT5Y8yu3onl9Tff46WXNNfgIET+hykcIQAUoK9J5g1e8iXiKtV71PZ5irUXxFml9hIiPEPEQ9oDLRaDsLVDrw8t4VRhyfIRaH6HWW6AxGMSIyeFrBljCGgbit1j9WCVYtaRugdZDpPYQqbGaiWpJPQaxyluswppk+Fas8qnHG2l3kBZpvcGwtAHS+84mtlxMkOH5pG8ypKORIgL8AHtIaRxSSlMbBbjvmAcfpRobiS1zEdmBz0uPNhSGTFMn7gIwjO91SkTgozWlUUhJFFIyJkKPOwuWVS3BApDmt/NYEgZdA7O1dFhLh5WQKZVJORkVVPmOWMDsF7nu4R1p5O28KQSDNGJwjhLKUcI8DNLbD9Ycs2NI41jFCe27qy20QeUh7PFoQF342oA9aMAe1K1O6yXu9xL3O1WrvRv7Pet73cU6V6HGVahxF+vcxToXPuLCR9xEPb71Oj+hyqtW5inUeIp0fgLEX6ACZ/hKd4HGnd/jKerz340GNfX5izS+fI0vv8ejRulWK/cSSH1EMm+xzEMsd69HfHb3OYvUq+oUXnv6/L5AnYSqoC9Qzxq5V53GU4x6NKKeTah3A+or6vXla/xF6KoqtWO10r1J58FXewiUriKpq0jqzlf4iFSgWqEU7xN48eWe/G5voTxotzZgt84bY7NvAxLQqPYVq31FGryDYug3jM5VHY+be4uv1feEhCCq4V6vcmvqcN1rAulYBLiSZjJWaOH60driKKQoQlUUqS2NH9iZjNbGKIvjFcWJskK4Z2eypChVWRbZtTlWXZTSXxWt2LFeUhCHFCbqSuOQwnD55rXdBdHIjjR0V5Ria3JfeWJ/ecIA+EzsL4/vLaWhFdH9pWvVW1PRmpjekjD1tnBkeySyHVeIUW2PVm4DV+lK13VtiNMWxWmLojQ7gKgKI2Rbo+Tb4zUl6zs2R0m3xyGl8T0V0ZrScKQ4QlMSoQGcjlaX6OE9Cq/aco9BWxytKY9FKuPU5enS2hL50Wa0R4v2oQO9RNLoEQp3aJ20pFPeUNuWA3UyMzUsWMtgahhMJcSkYGxdFrgulc0Ubicv78i9IFjGypGx8uRwnhLKkcFwc972A7XH2JXNa2vt05M2QFrrL1D5VJz/DP7OvQ5xE6Mewl6/hn6/hn4PYY8bH3HjI971fc61Cq/6Hp/GXv/dAwFfoK5CtZtI49Wo82vqc6lT+oo0LqVXPmb+CDgn1PkLVEFCZXC9JkAMnGYPPiY1Ss8auW+t0pev8RHqfOt1/k3aoN1IQKPcp0HiKZYE/0fnKVS6C+Urd7YvLWvx36PzFKt8G5CQBm2wuNdLhDrz0VU1Ay41vd516iCBJkDU5ynodRb3eDTqMPar3YVyN7ESuMtCubeo079B5rpL7lGjBF0BcbdvPegTeAkk3kKpR12nR12nt1DuI8KIjkUR7A/SIAIhxiF9JrHlfIKsgaYujEOAs2tG6BsI/xKQjtYWR6qLI1QA1RGKwtTenelIZVp3YcRpbuBvmQxlZaKsOFZZGK8piUOKE7Rl6YPVMarCWDXwv+O04GRqb2W8qiippzyppzzRIBGK7evkW9artsf0lsX0liX0V8b3lkeodkQqd3ieZXo1M2MUOyK7t9DUxYmasnhV0dqOggjZVlAtJomaikRNBU1ZkqAqTVCV0pQl8aqSKFVxOFIcrtVDmnCvR9NBsStISxtrW3OgDigTYcEaBlPNBISWscCnEqLESiwAwhtjEStp9q1qhgKCZWyODHOm5SzgSQNI1xxnV56zU0gjwKEUIj6CvkA+ElBxwuEN/1WlrU47Vf7CHp9amU+tzF+kDmrUBjVqfQXKNbt7AhvU/iKlrwB4pUG7tYFNiK9Y6SNS+IuUaxuRuawjDvM5IJSNQTqgTu7HlweKlKH1SFijxr+mK0ioDBSqveuUHkKNm0jjxle41Uk9xHLfRkXQHtW6z1WhDYo1IllEE7KA9+v0lEPBdZIQodSj/EqIUBosUoU09gU0ob71fT5CxL9W6lfdGVArCa7X+DX2eAs0ATXK4BqNH7/Pm98TvLvfk9/tKWgL/UIT1NQX2NjnX6/yFkl8hVJ/sTxQLAkUdgSJOgPFEm++BPOwlXY261vvSQN/HfGsV7g1tbnuvfmQjsbmh4M4MFIUoyyOURbHqkpo6tJ0bVWqvDTx6uZP6zz/lfB66rUdDG1NZNfWaEVRnKYsFikNk26j6SrjeyriNGXxmrIkZWmCtChFXZEgL06QFiXKihPkwBePV5UAyqpLI7u3xapKouSFsYri1J6qOFnRtAavaQ1eNFlRsqosVrI9unNrXHdhiroiSVmaqixLVZZl6nYlKcuT5GUZml0pivJUZUWaGghNCThNedKdksbaljxGG5yu5DCVEF0J0aVsIDIWXQFTYg0WuLHAhjW0/Fa1QcZidnOgbg4LoJrNkbLg0/mF+2r/YFddtF9IK7xFiB9/ILgOcdv0vcN7AQG72gPq1Etz/5jD/HYO81vH3F/9Ki97l12YkXEwrEEa1iT3q2lZuf3EvJyj7pUXlm37eyb7u2lp+xbnHQ+qbp3H+Mrhw2Q/ARjc9ROqgvky/8oW160nF7K+n5m8dzH8fUDZeb+yy7PZv/jUq93qpEu3nZ6T94tnbfvK4nPzeT98kvHFHMYBt82/BJedemQl9+65ac55P4ZUnltd8POMlC/msb5x2nrCu+Ki366rzjtOLQD6e+dm7V+W/fOinD8/yfrJJfdv/x1X1uxUB9doVmxpnsE8/Al8YFXhn2tEMs+K1qWbfv+U+937jO9WFje7FJ2cST8wk35gYe5Pq8vOe/OlPiJ8oNrmo9xEJOA2Qxq4wj1VYa0Fzr8kz9u/dtHetT5HU1LPF8wqc70v6mXfr5MW71nndCRh/ZUCmrRk7eUNq4+lzPwiZNmPtJCLeSmysoBfstwOxwf8wXT/IdnneyDuPyS7/Zi8tjk7TVIa1Zy3YM8a37+YC/aHrfg6JvbSxoyu0sDjjMDjjIyu0pgLBV4/pS7ZG+a4Lzz+yhbapU3rfmX6/5Dq9yvDcV+k+zeJ8ec2pXdXrD+f5/Idbc7uQO8/MkMv50apisNURSB4QMwmm1jh7u729oadF3IzLsPJEk6mjJUphTM6OBnt7PROVnonlNoJpXYwUyi5wxZgpHWMSez9J2tjprTBqa2s1DY4s4NJ7+QwT2wo3Cv8m7XrytpaGfH6s6MC4onNovLjD4TWqlbz9jq8ujKo8pLntubnXDY8t4r9zEr4kYWZH4VVOcEH/+eDGLfcI+trzzvmf/e/izPejRd8kvH5P5dB/+cI37+S9/BqnmvB0VkJIoeZye5VHT7iHn+R2q/iqlvukakBW/71afyD89JecMp24RxcmCi6+9PEYH6rX82VaTG1d89Lctl6fFqM8L45tEcXJjy6JGFa2FZHhshhur/DK6s/jS9bAe9+3p39z7mxz7hAT6zInJNUG7T9x5d8cv69MOkN/02PLYh/fGHyuyE7X/YofGEJPCu0Mras9bPYLx9fzr1vQcrjq1KnrNnkWfDTgvT/3L8w+X8XJL8WK/qA/tVDrrkPLIcfWA4/4bVxwYZfQ5oQMCYt7hkqtvtbE2PS1w93k1ZLG4mFTfK6bgQY96RBBFsFPGC/P7Luy3jrgdQ374979RXmjPifmPM2r3RYcs870LynaO8+nDBl5Z7wjCuFq7+I/Gf0K09mfPhIyntvFSxNOrlpcZmPg/ND729Z9Tjtneejps7gLX03e9Fj8VPf2eCY+HvejBxHhxX3Ttmw9JHEd55LnL68KjDz9NaXmbM+2LyK01Ixp8zr4ZgpL2R8/ET8O9M3LEs8ypueOfuJkFem5Tu+Ds1+PuYdV8H6hAvb3yxc/mj6tPtpr/8r4fXF+8KipNsjVEVjfd7hDIKNSZfrx6QVPzajGtKYtNl8sQGz8ek7NCYtbdF8W9NZkd69I6mnOEO9KVG9KVGxJVG2NVG5NUm9hRIrsUCKesuYxEqafauaodyapNyeqNyerNqartpKl2/MOL19096GY3BNc2hdl+2+r4dvuT7c7c/XhdbJfDYddnjDyXfb73NT9v739LCA/MMRxb++F7j54TmJIZt+fNmZ+6b3hvCakzOSahxmhHlt+2kBY88boTv8i39bwT3wyJIMJ9behYl1d82M99rZDmaiCRD/ypZFScLHZsf4b/wxpOivDyJrFqU2LIwpf2heQlDNxaC6Sx/GlN87J3pV7nev+G170xWO2f5NUME+V06D/6Z9UwI4k1zS1xV/93ZQ7oOL4322fBNQeOStAN4TjnGBWw5OcmU86cx0zzvklCF4aEbY9ODKmNIzb65ifOSd4w19NXlV/tvem4I2fu3Ja3hsYfSsiHIn+uePzo/7MKIkoObSW7TGB5YxPk2oCS765bPUhnk5P4Z+rp0wkAazu2nqYnyutX5M+kYhDcahsWvjkOIkZXHkpfwZNW7/jJ2cer5g/VH6/HJ3/6aIJTvc73Z9LPFHTtyv2TO2O7+Q8XHGqW0u9ZELK/w3dPBX1IU9EjU19BB9RYn/v32fX3cETvx9w8sR702NnwGfKnQWR7yY/kn0N+yFua5PBr0R/DWdc61mVr7L2+lzQw9kvc6Y91GB09qvGJPTPl1dF869WBV6iD45+ZPQpuRZGYtfC5se9R1nU6dgSuIncwpWr/uF/WDqe7PK3NNObvTYG+XzQ0rQRd5NgzQY3S+PRcrjkNJ0aXWJHtI6w8Qx64S0/MLg74XKxvVIbQgqDEPro4E0RKON0f38dZRYjQXC+vljEjv/7XoF6/qEa/uE6wf40YO18X018Zf5nP3798PiX0P5bcOjzoZjpPi8bn+BKpTf4VNw2OE1F/fcb94KKn7Ja3Pkrubonc3OnK8cXvcLK/97TqLwfz+J9tr0/SsBBY+vpMfyT68t/20ps2lhuvCDsB0PfBa9JHHX8lT+XR9F+la1+AkApH2rWqaFbH14Di1o5+V1TRqf6k7/iosLabX3fRblX3fRX3Dpw5jSe+dEe+/4a8q6Xc/MT5wVlL8spdY3/1D8rr/eDdr4pGNqROkvL6yGXvTKDRdfid/b9RFt1xOrMlZyPn/cBX4uaMea2gur4S+fX8lenPF1ar1kqi/7Dbe02bRdD8xNnryavSyldl7sjvtnhr4fuM2Ttf/pxYmO9Mb14vbZ7O8meeY8vzpjRsQOp+wDPlUXfYVSCtL60WUi9jsKT5oM6RRlcdzlgtcK5kzJm5MnrWJ0lTE6SuGW0g83Lbs/7FX2tcqUS4XvFK5+Ov3j3A5ByoltPntT3HbHz9jm+VDUu96fJ8/Z5vl43Lu0i4VRf2+YDi+Zm+eS2yHw+Zb+cMoHfvsz5uW7v0ybmdBclNpStbgq9KXkWS67E17mLplSsHpB3fpn6XN8DzOYrTVRf2x6IvGj5ZVrP0xbOC1tQea5ckZL9aspn87IWxl7euPk7DlvQLMWFbv5/Ccq8WxBmqYyUmnqSRsWiQ3nLg973jYh3dx3PF/W6KWoc+kXuffVOvXVOvXWufTwXZA6ZzWfEsoCVmkBwWpE6KQVOPXUefTUeg02BF9tSNp3QEwXfR8qaLU/SPsItdhCKcRfgITwu1bCXzq84uScc+hF3y1PrObSRC2xgiuu+T84vLsupPzkMs5X//VJzJyk2udc4HnpTaHlf3+WsOs5p4yXPdgPzo3798dr5kQUrs4U3fVRpN/OVl+B0lug9t3V9sH6kgfn0kJrWwMFMu9dHX7l5+fG73pgHs2/7mKA4MKHMcX/nhsZWNG8pvLi/NjKl5Ym//vj9e8Fbg4q+O5d/00vroLW7vj5+VXMF9xzQusurhVdmRpV/qwHe1Zy7ZMevBfXlnoU/bGE/vkk19yFmYeiai6/Hcib7JbyaWLFo8vT7/pg7TPL0192ZzyzInlRktCDd+iZ5emfxO/y23U5oPqKW9437wVvenxx0kNLMj7K3O8nsGdIX38J1rg9aZq6OEVZHHQ8660Nc6dmz97QXcWV70q/VghdK5tV5n5v5GuMq2VxZze/vd3pgdh36WfLZxX5PRAxdQpv2X3rp9wf9o6TMHp5VfCDUW9Fnd2SdKXkA86S9+FFeRLBqr0JT2bO9NqbNjPb6ZXETxlttRltNYsr172YMtv7QNZLvGVvbHCazw9/LG2W77eslAuVsScLn8qaM3OH78eM5TM4TumXd7Lk9ZOSP3mXtySztSzpwtbFZR5vpLz/bNQbSwUBYZfyohU3EdKlNudJn9P9vEEq9JTUrNAKV/Tyl/Xxl/XVrejlr0L4yymhLGClFhA4qoVLEMESLd9Ry1+uFS67JA7bf6ieKf7RTiENljL7CxA/fl8gX7Uq/7DDFDeXomNTYuv+d05ydM15mqhlTvoXDh/FB1ed9yk+/aRr7qPzaXdND/WvuOhaePKRRcmfhm2LrPhjaUb9A5+GL6FVrmLs/q8ZcX47W/34crCNya6O2SlNDy9M8d3yc1j1hSXwVwvS93wWV33fvMTlG34Iqj71mj/r/oXRqzcfX7XxePCOY/E7f1uZJXp6ceKcyJK3vXkvr2aGF/08xS9vsjvLf/tP0fzmj2MrJnnyfLd+/4IH7/XgbQn1V5bBnz/vzl6ctSe07Pjr/tlvBuXMTa970g1+P7o0oOhoWO2fK3K+8N7+40Lm7qc9WJ9mNAZUX1m59W/Xgh/XlPzuv+3nBxyhZ4OrVhSexzdywRek+Yo0hNh8z+xWbmZCeNI4pKPO5syqdHk66S344lb6+a2eX0aFHE6eVej8QPgree3VWed2zCx0n5Q6M/LHnCfiPlpWHc67WuskjL5/3dRVtRGOZf7PJU6PP7clvnnzx5wls3nL8tqrVzZGvgrNX3uQvmiT90MBr8Uf35RyumhWgfvkhJnenyc/k/bpxzu8XD9PnMyYv6o+Jr+7Iehb+JGUGUtq109JmzeNuTStdRe9W/gGe9H0DSv8jmaG/MaAz2/b2lo2K2/RFN5nAccz03t3EVusDOslg41QwMYsuJDVjCexxWz4/i1YuPtIM6rWojp0oAcbfjYLd5MPwfj0HRqTlp3rO7pRKvSW1CxDRMt6hIt7BYv7+Mt6+Su0fEdEAN6DlFAWsEILqIWLEOECrWARENHCS/Uh+w+JoPqf7RfSCn8B4iMY8BcgyzYecXjHy7ni5Nyc7++ZnzxtXenUdRWPO+W+FV4XVN3qU3n1g4Qmh5dcJ7lwgkWKZVubn3Pmvria8WFU9dtrih/4LPolZ2hOotBhenRA9TXfOrkXX+1dLXXk/XT/Yubz7hvfWb/zkeWcuamfL2YceGQld0q0YDb9i8dXpf5jdsTqLX9OXsd/yiP3g6jSNwM2v+FbsIr5xXtrCu+dHb8gVTQrvvoZZ9Yrvhunri1+xo03JbTYd/svL3hueC1we1Tt+Xn03c965szNbIoSnn8jdMekgI2rN377dnT5Y+7ct+OqPkgVvBJWuCj74ELegQecWTMyPw/kd35M/+b1ddXvxwjeXr/z3mW8N+P2uFd12CekwXZsYHc2/bagYMcxfO9usAkXHt82+yRD6LplAtJxCPCk07uKPL6O/WfYc58Urnhv85IX6B+6fhHxWbnbfVGv8tp3Mi+XTM1f9nDcez4H0p5Nn/U6Z+mq+qj3Nq6+O/S1N9iL3s9zfDDqtfgr26LPFnzAWzQNnstrr1z5RfTT6R8HfJn6Wc7qe1yemrnRdXFVyHPxH8zc7BH7S8GLzPkfbveMPr7xnQKnydCCxfzwV7MdX9q4cs2vudOyV76d7Rh9uThJWvMsNGfKRkfXn9LeKHZ8b/OiFdU+bzI/fm/zosC/GFn9tTcF0vpKAMiL06U7SxQ4pLU2AGmZwBzSfXUUpKneiVVbYOJAGpv9i/gJFYBPgj4/AeJcduJh/43ewhbf6ssLMj9/0T3nBc+N02KEXqXnQbCaL5/DPebwRtDMpCY/ocqlqmNW2hdPrOY+6bZxVsruT2nC51xzZiY1vbqu1q+607tO6VWnAVuIVHfNYh17zKfq/1ZtnZp40LOi1anwwtTEfY/7lL0RxX913Y43I8o9Ki7NZv/yYmjlfas4LwSVzWEeDtp5eWnOzw85b5qesMd9x8mFnCMPuRQ861c0PbHJveh0SPXVz+hfzWJ+HcpvW5j94wdpe5ds+G2dWDKH88MHmQd9dl5x3HL8jbj6x/12PBVQ9E5i44otx1dt/2MKrX5xwW9BYoVzyeUPkr54yn3TC7473gjnL992NqhRv6GpvXnStxHSScpiuroq9kL+0qbgx7PenZQ323FfOF1W4XYk6aMaL7q0mi6tXvh52Cf8oMSrJUu+jHmcNeu1rSvmNKybXR/y1vYVixpDp1c4xXTtWHd5w6r/hC2rD2HIq3z+gD5rCFp7jDUzb+VDPpM+zl/5TPKHH+5wjfizIOlK2YLdkSsOJKZ37Ar+PWdqiftzOYueyV+89LvUxO7qlV/Slu+Ni+wqi1HsnNEQPP/L9YGX8+Ydjnyc/cEz8AfvFi4JOJ4erygOl22/bkcE21L0Yn9zCwAAIABJREFUOp60nUC6j794oA5EvLWUJ01FEazYAhikMTfa6EnX27EnjW22pfAW6sAMMnGHU9XZoN1I6G5N7G5pQOnpcEFb4K6W9fWyYJEiSKyaCf1wzwJ6QPlZ/3rtyoquoNr29YL20NrWCGFnZF1LeM3luCZ5UHVbQK0E96Q9axHgTws0Xny1L1/jViULrO/12KVY/wUaUq9cI+4KrDsfUHPBs6otoE4eLOjwrb7qW9sRJFb51kmD69XBIpVHRZtvbZdvbVdAbafPzmsBfEmgoDtY0B1YJ/Gt7fKp7nQuuezLl/jUdnvs7AwSq4LEKj++PLheHdqgChbLgkSSYEFX+G6Vf21bQF17AF/iJwQK64TdkfWSoJ2Xg2vaA0XKdV+ihp3XwH7jRKzbV0TsLm6bcwPNIG1MVXlzPGnCHceXYLEGBUxkZ4akOF1aEt+xg4s2JchKMSlPlFela+qSFDvT1LXJyupEeVVU+44kRWVU+w6atCxdvTNDWZUkL4tRlq7v2pLUVZghK01RV0TLijP7alO7yj7buvpl2jT4YmG2rCare2eWui6huyJNWZOmrMnU8BOllYweYaK0Mq2HH6OopKl2xrUVpyqqE/vrwtXlsYryiI5t0eqy+J4KqL8uU1mR0LElVVUCZo31Vo4mpwgR1gYwNqylJp+kIG3VjpcVBmypJo3HAnpI85cYwt2h+w/ZK6TBImnPegW2VFq/L5V7gwIksBLq8GwZfkJVoEAWXCfxKb/4XnzT426bP0zcE8rv8Bao3fhIoEgZIpSuEUjWCjrD+O1h/Pa1gs4QfldgncS/VupbJ/fFCO3N78HFB3QFgPgJtP4Chb+w21/U5i/qCBHIQwTKIJHUXywF+5fVq33EYCdtPD+HjwhsAI55/GBfMyACBSYqfG9w8C02mdxfpMElUKgJFKoDRcpAkTxIaJRAkdJHqPUXaUIE8rWg2ZIQgdwfrJDu9RX1kNlMlG17TBoMSIN8JG71Wufd3U77iHzSeOonIgUFuYB/NdpP/ZxwLIMFTVmSqNALTQUWDRMSq6qIU1fGqStjVRUGKYtV6SVeBXbrjFWVYHkviuJVRTQl2C4Uz4GRhux8Z9Pilxkfwx1ldEVViroqQV1BCE1VTlOVxyvL4pWgtiikDPAYK0cgZeGaMmxxFLYBqrY4XlOSgJRgK9BAtD8SmzFHcHe4ghmPiUP81viT4uutLYS7B8kj0EPLd3pMmhzupjzp8ZCDuva2WcAIaf4SrWjxpXoM0va4BMtTDCDt3qBwB/tlIp5irUuD1qVB5y4acBehbmLUTTyA58lwK7niV37xSY8tb4bVLttwPFAg8+Cr3cV9XoBtmiChHEO1dI1ACjbvFHQHCmQBfKkf3wBpgcZT0OMp6MFzamGcBvuRgewX9d3eYlmQUBkkBPT1qVd61au96jVe9Ro82SXI1QHaqc9YBeAt1hhyWIEsWNgEda2fAIi/sMcoemCr/UVqAGyAbYBwH3Gvj7gXdC9Az0AeJFT6iHu9wEm7hbS72CKkyWAml0eLZxxpBKTBIQZa/ScC1g1Ha8wlCgEcxQQkt8DzW0QjRVGYRGhAIRoTkLFDUxSpK0nSVS07EDZH6JMuL01GKuI1ZSBPhqYsAQGCJ9rCGQ8wr9bXGYWArbkjNAD8xLg72CRcq898ZdJyg39skdMElc0KNgRp4/4pAwN9KIr1HLCJYxSkbxtaqBvdLAtMHEhjG1Ehbg0qtwY9pFc3DKxsQN1EqKcQdReh7mIw58i/XrumUbdGpAiu6wyu6wSD05gb7dmIujag7vWDviIN5rMq8U/czQWEFijxhVhgmjcmOFPxsXAfIegiuDQgbg2Irxig1Kte7d6o9mwAhMYgDfoNHiDXltZdrHWrB+Le0Ove0OtWr8PFXQz8cn++XgIFvYGCXn+hXkCaLEKE/b7Cfh9Rv2d9v5e41x9rM9Yz0HiJez3r+7G9xkAPwEzswJN2F+vcGhDn3V2mnjQZzOTy2CBNRjUOXT168WzN5FXXWDlaDTgKhARjnNAEnqORHbhEaXZE64pS0ZpMXVWyuiS+B+TYiNOWxGtKktR6ATudqYppSuB805TAC49V6zGP59jAklTqHxDPkUUmsT6F5aghTVxrBuxhPWl0YKj7TDpzmzxpS5CWN/cd3UBB+maRg6rntllgIkPauWFgtQHS5JzN/iJNcL1mTaM2UKT05as9ATj7PBpQV4zTZj4oFppW4YQGkBaCBdMGSIMItj6ObfTdtT5isOTJs0Hj3qgntCVIAzC7Nva6NvS71PfhgkPaT6DDxRzPGJV9RIDNPqJBH9Ggl3jQUzzoJe73FfXggXFfUY+XGCN3fY8Zng1eu22ORhvyYIKp3QSk95+ltV6kyfF80mQwk8u3GNIGNmOQBjCOwtNKDjmPczodrYnpKYqQbY6QbY7qK4nsLYrWFib0lCRqS5KQoiSkKEFdmKAupKl24BKv2hGrBtXGqnfEq4BgKb8K4xBMsESWOGhxPN8wpMkTyvB8Yta2BMsIZvI2pAMDOhTtB2coSFvx3KjbBjxbvJEFSB9shOwx3I150lr3esS9Hg8ma7H80GAI01Ok8xSBYWlcTMdre7xFWIbphgHcKzXb7xpPzEzAeOQkzZ5iradYi9Xf41UPhFwbfndcB/8WfGLRaf0npo9fTv40VAIi23rRoxokxvYSA7/ZoN9LnPER9+BOPPmTMIKNFjBIa90aVM57OpyMkDZ4lji6SJ+EpzjewhAfWr9LtonPOprOgVEnpqcopgeki47TFsVrjKIHsOEpYjXmTxerKcQD3UM/x/uY+OPo10lb17agFKSp6Wz2aQEAaf1mJoYxafuFNB7xxkd8CZriUCQzycA8I0FxRg49j5/Bx4wNHvP1PVGcl0NrG7kNQ/WHP2NAtbgXeNUGcuPBcB8RCIDj15LxjJfJbbDFsimkz9Baz9PkDXGIOcYIzt0caGlAsmrLMg5I43ge+klQeYTCUDyTx6fH/9RYNi3rhXQfiuoF86R7waH8NBXutkU/kmrzRIP0aMAzPPyM2CbrjKZOsg75WnJ5NDpk/eHLJEiDyW4GwQeqMWYbPHUQdSejGu+yDO24kNtmzWVsT1DErUHhvKfNab8B0prtOM8INhOF8ePq1tUwHtCO51ryE0VrCy1J8YiQtuzTEkHoW7TjGPmuFKTt06ecmMCmID0UOcPDz/YgbSS0qNd3CKQ9GyhI38iYNBljt648HtCO51ryE1kidCGYKA7yUg+XqpKMSwvl2wBp412pMemJCTZ7emoK0uOH9Fihfuv1jZ60CaQxlxqPfhOeNNmNxleCEc70UMtY/5nRhLvJUeLRT6cio+v2lIcD7XjOj7Xlw0O6PBap1OeTlh9tRntI+aSNiCS8Z3KBgjTl5lIWGIMFKEgPBc+th6hlj/zm3ZeCND5x7IxhdrfJmDQF6dGjmoL0GF6m9uS9Uc9iPRagIE1BmuxME240vrnKUONY+ZkhnjS+BIuCNNjVhNjYhII0yIJF7ThmPRyiWjKCBQCkhYu0/CVA8B3H7Hp292gYc/M82lvtMQ9XP+VJj7QEi/Kk7RLSpC1TwI4qejHuOEatk6bWSdumBUwhjaeqrLfXddKjIbQ964D8E8bl4PjCcRv1mIf7mTBP2rDjmHGddDEZzKZl6504NnqU3jpNGwp3Xw/S1LagtomoEVzMCfKVEdLkLFh2upnJcG/2iXLe7iGNJdgw2XGs5TJNticOoSB9g30Re4O0XOjTXbccEVHhbmqs3WYsQEF6ohBahCX7sm9PmoK0yd4pNwhmsl9uw5AeHOwfHOw3hLsHB7ub+45uVIh8KUhPEAfUbh6TgjQFafuxgD5VpSHcfQtSVZIBNhHKtgfp3t5euVyOoujAwMAg9g+Pgw9ITvf/vEkl9uuuW64WOlITx+yGYXb/IBSk7QdRhr3HJ+4TgXg+2IzdXax1aep23kvkky6N1YCEykNlIoB2PM94Q5Amjw4DWprJLVknPTg42Nvbq9PpBgZAHi78E0XRwUGQp3JwcLC/61T/z5vUDQHmkOYv0/JtJvJp90CiHnCoBShIT1yk2R/Uh0A6seVyAhiTpiB9g6Fv24D0wMBAf1+/3mMeGOjt7SX6CTikAbYlp/uPFSCN/lL+CrVwSY9wYZ9g4UDd0j4K0tSEMuu2AAVpCtL2YwE9pHXu9YhLU5fz3vMGSANEDXWjo7U3iK7x+Ka2de3wkB5hW1CCkHps3g5PGr9VW1vbl19+KRKJCGeagPRgd7MB0ssoSA9116gzVmsBI6TBOmlqCdb1c1jZD9Lsz5PGJseBVVg4pPedTWy5mCDD80lTkL6RHsl1II2UpkurSxQ/NqMaLapDB3oxHt8JSOt0usHBwd9//33u3LkrV64kRqMJSKOyc/3H8pEmXyl/mVq4qEc0v08wf4C/uI+/lAp3Wy2fqIYhgiWmkF58qT50/4TfzITCsC1awEeo9RGCGexYIiyVW1OH614TSMdiWZCjNaVksS2/9va3dkRIl8bpIX2kGVVjkO6xBGkys8H49C0Zk+7t7b18+TKTyXR3d8chjd/WCGn5eT2kBUspSFPwsyELAEhPpHzStogfqs2jsQABaWyTFhzSZxJbzifIGmjqQrBUmoL02BdoDQNpkAgrFimNQ4rTpTtLFDiktejAnYO0SqXav39/eHh4ZWXliJD2lgqWqkULekRz+4RzB/gL+/iLKU/ahog1AZtKQXo0AKB0rN8CekiDGD7iWa9wa2pz3UtB+kZC3GR/fSRIa4r1kFZ+14wqtagWHdTcMU/62LFj4eHhn3/++ddff01Amgh6A69adq7v5zx1o2c3f5FKOJ+C9ASknY0+MgVp68cP1cLRWICCNBmuN6tsG5Du7OzcunUrnU5HEOTzzz93cXHBJ44RU74BpKVnyZDWCuf08uf01y3orQOpC2z09U01eyJYgIL0aABA6Vi/BcYQ7iYtmI5FSo0y9mjwzWKh1dYzEqStJNw9MDBw8uTJGTNmBAcHwzAcEhLy2muv7dq1SyKREKPhYGRaerb3aK6qwUNSt1ApmEtBeiLgzT6ekYK09eOHauFoLDAMpMHsbpq6GCyVJsakKUiPujsyDKSLozXAnnd4TBrfwASfMrZ169a8vLyCgoKwsLApU6YIBAKlUklAGuxn0t1MedL2Aa2J9hQUpEcDAErH+i1AQfpWuONWDWkURRUKBb65GA7s/r7+AwcOeHt7k/GsL1PhbuvesmOioXf0zwsgTeWTtssVwxPsoQhIX38JFuVJ3zRPGl8nfYeWYOHzwojZYWDvz77+rq6uw4cP46PR+PbdekibThyjwt2jhwSleWctYAppajMTajMTG7cAyLFBbWYy3kndhFM+oiddblgnPfJmJuZe7U1bJ20Gaf0e3X39/X39g4ODAwMDWq2WvE6aCnffWdhQd78xCxghTeWTnmCup/VHsMfcQrNtQcGOY/je3QBa1LagBHpHX7AZSBthjPUJBrB/JrO79ZuZeEsFi9WiBZQnfWPAoK66/RagID1mElAst1oLUJAedRx7lJy2JUgTnB4YGCDSYRndePl5vSddt0QlnE9B+vbDhrrjjVmAgjQFafuxgBmkjakqKU/6BgPg14G0ujxdWmvYu7tvmL27jZzESzct3G1eseEYH5w2GZAmZnc3eHfXLVEJFmr4c3R1c/pqFupqqR3HqGXiVm0BCtL2gyirdXBvW8PAgDTIJ+1Wr3Xe3e20j8gnjSOqMFYzVG6QXqP0RG1dbXhIl8cilXE4pOVHm9EeLUpAmkggbaCm6X9vB6TxMWnCtwaHktNgnXS9l6R2sZI/n4L0jXl11FW33wIUpClI248FMEi7iy1Ceiie8TMUpEeygI1Cun9wUC8oOoiiwLUekJykIH37AUPdcfwWoCBtP4i6bQ6r1d5ID2mdWwPivLvL1JOmID0SjIfz+O0S0kspT3r85KBquG0WMEKayidtteyhGjZqC4D1V2IDpPefpbVepMnxfNIUpO0c0kSQ3WKhb7D7NJg41uDXXeeoEizW8Ofrauf31SzW1VD5pK16RPa2sdBqb2QKaSqftI2vEh41zOw1foBBWuvWoHLe0+FkhLSe0HFIoZkM50FS53ELjM+TtojLW5NPGku/Zfl+2Fd9g9KTFKStlkNUw0awAIA0lU96wrPNbphtCukztNbzNHlDHEJB+kbcaGxxeaElThdHa0YzccwyNG/RxDHyzfpQlJABrKyjID0CBqivrNkCFKTthk/Ug3iLtNieoIhbg8J5T5vTfgOkNdvxed1mbjQG7xuk1wRxtS0RuhBsC2OTkD66AQt3L6fC3dbMJKptZhagIE2xzZ4sYArpU3pPGoP0UEJTkL5uV8NGIU32qvEyNiYNIB3QXbdcJViq4S/U1S7sq16qq1mKCJaohXoxez9Sh7fIAlr+EiqN9yhtS0HanhBFPctwkMYIXUxTA4lDLMt1iTUBFSYCpJchAkcK0qMExk1RwwlNcXqUxqQgTYHNnixgGdJgvhgAMwXpsfYzKEhTM5+XIAJHQrR8R0yAHzyUssRJswJOI9NrjfWMklUTVo2CtD0hinoWCtJjxfDI+hSkKUhbhDSOWPBJZqcBw8Zv8TM447V8R12do46/BHzWAR38kIp7k204tAwgTeWTpmZ324sFKEiPDN2xfmtDkCbvPUoek8bPD4B10pbHpE3C3UTc26ww9NVp32fIuCU/qeH8ci2fkCVawSIgwLcGJxGLItBTubfWsbcWwzOGapzWZrAn35Eqm0KayidNrZO2bQuMCOlSmhpIHEIW4/j0WAE2EfTHB2kyN43lW7QEy3gD0zXTBKSb+45utDRxjIK0hWgBRlzcIbbwLRH9RgB6jZAmzquFjmqhMUj+/+ydB1gVV97/5323ZDe7b5Ld/7Z33012k81uEmMUsZfYFQERpBcBERAL3d4ot3CpYk0xWSsCt9FU+q1cQBOTGI1RsXdA2q1z+/yfM3MZhhpUkHvx8PyeeX4z98yZMz995jPfc86cX6eSdtSxHQGk84FDWCf1uylyCGZqBLogDfNJjxY1+TJ3ekNID+2rA4T0Sz/rG+9rVXEdgPEW9TbQE4sraXVnAQV/kYLnoODhp3SeqOYu6hLcHAcdZ4GOswDlgGU6oA0cAQjplxlpo+/eIaQhpDGopAd+6A/qV5zNgLtcByVnMQFdsOUvIkzOX9ResEjOX0RAWsdzVHMdiIPtBYs6eIvlfAc530FRsARs+YDuau4iLd9RwXNW8BxR7gIdZx5eP4T0gBHAX326XnF4nd3dBV+t5jwcfU9weEejPgIQ0hDS1H7vLt/cCru7B4RBp6LtMRiv4DnKuUsMZR5YlY+qaGkHb4mqaGlT/oJ7x+c84CxqP7XUXLpclbvAWOisL3a5nzuntcSlMX9RG8+po2Cp+tRyZfGydr5zG89JUeCkK3BCC5a1F3g2nnTSsBdq2fPUBS5YZSDeMT6otg3q9aLzRkZJ4R6Q5i+8U7iqUsCjQ0jDrm/bjED/kP5PvOrIRiWw7mPSXePTQ4u30VHbM3V3d5GxT+8FjEn3cd3+Id1tMZMeiCJ3R8kTfxAAw28ZjCiruM4KnnMH26mN46TgL5MXLm/jLlMVe8iL3RXFXndPOorS7BpOLFYXuDw5PFPDXqwtXt5Y7Hmf79Va5NNa4LltBnLnuENbkVcjx7WZ66Yu8dHwXeVst6v/cWEsRlC2M3Z6uYLn2c73VnBdXp7wPvWddg4i4IMFi1D+wluFqyqEENK2PXlq1MvlAW4QQnpoXw4GCelrmFaNGTCzHu9p7gOR1EMjCOm+lwWlrjhGUrmH89TP1kHg0DrrBHjmuCi4LgquKzCeu4Ln2ZLv2pzn1sL1bM73eHjSTVES/P2njpsdkJvsQGWRuyJvgZrr0JTrfIcfcqd4XVNhaDMvsDDu7TvH3Zu4K9qLV7UWBD/K9VDwvBtPeFYx5i7/E6LjeSuOLpEXrGwtCFZwXa0zFFbRKghp29SLA1DqJf+JCmmP6qtkgg2gnqGS1jz1QuWDhPRVDEUxI57JwkTlcZ/+iEO6Z6pKCGkqjQhI45wGkJZzPRpzl1fv/GC/J5I0H9nj/ep3B5wecQK3zkUW/y9C93j94UkwGo1ynZTFgdEfI9yEhfFTkUZ2YPx05OqJkDvctUfXv7djLsJYjBwPfO1RbpAoy93h/yFtnMA7hxwOeP1GTJus4CynNgD63SIAIL1AxVuAcsDMOzV/8e3i0GpBPosvXc++Hsx7Am24IsBtDeYogznqYDZKtZB8FNqzR4CtDmErgznKFTylX2GTb0XDlvu3t7Sd2qQ4sklx4idto/IYtF4ROBKv6m3H4lQn4pUnN8rZu54U/qel7iqm0lryTlkzpEE+6QA8n/RiDXueLn+eIXexLm8JFdLdno82q4af+y7A11NEj7ecu/xRvnfIe8ihVb/lbv732plIVvDfr+d47vb79aK3kELGLOUpHy3f0Vjs3pTrPfkVhOb9tiBxfCPba9IvEOHnq7mpvn4TkVOJk0u2vLvH9b9++Ny7IjNgyVvIDV74noDfbJmDfJ01HSrpgf69uItU/Dkq/hwAabYjWuh0uzhUKjySxSmIzZNGsC9AG/IIrOF8v5b7Q0T+1fCch2tyFJEnNVG5KGnRJ1FoTxuB2JMoYfE56g0n2+NPyqNy0TUcedipuwkNd+lttZsf525v5fdpu9oKoQ0QgR3t/N62vYO/Rc7fIi/e3lrFfCQ60lTfgLXrMD2G6X6quxusMjJyStoCaUclB0J6sBO15Nzl99j+vK3jLh5xbeCHpIWNDbBHHpesztv4rt9k5Hv2ysfspboCp46cRY9O+sx8HTm+Zd7Dk+7NHK9/I4jkSDwvPXDa75AzKR/fyPU7l7ngwmd+JakB0/6EfLlr9uoFSCVrSgvfC45JDwLS84gv15+cnHuzwOvi+f1nvs7nXxLk/lALbWgicLkml7QfanO+P3f8q4bPqtr38HR7edg+jsUOsDHSPsnH+jSyQA+nz8Kf5HdVOIrLf5qPEfZ5PnYoX/85W/8JG8vmY7vyHmXVPN5z8ULKN5WpF6ot9p0wtdPSvxVmXBBlfCeB1ncELogyLojSetv3gtSLgtTvJanffrP7/NcFty7exxQmzGwLkC7ya813VHIXajhzdPlzDHkLdXmLoZIeABJy7vKm4tWnGbN3uv5ss8srQbNfcR2DNOSvLE6aGDoLuX0m8sFJZ12RS9PRuY/zvGe9jgj3+KjLQlsLA/6FIF+diL14bDVj+RtrZiGBdsgXEe/cK4jn0nz+9WtkxhgkYMEvbnCD2ngQ0gO+MFlmdzug+a5ovmtb/uzbxYvuXdt6ozn9kSr7gToL2hBFIOOBhvVAw3qkZj1SZd9p+vzOPcE3NQ9OHW3N36tgZ+vZ2Xrubovxs/T8LH1Bpr6o0woywS5hxK+9t2SBHk7vkmT9PUrabv1koIozVaeyWop3Nxfs7mDvUeR90pF/tC0v99HJk7dyj13PO4rbkZt5FOMcvcU5cgda3xE4eiv/WB/GOXqLf/gO/z/38o88PnnixrmvGxUaMz78bLR6JV3k18p2gJAegMo9fpJzParpM1dPRo5tsDuTsSx55TjP8ci13PCCbVMDxyM/HA9vzvdQ85Z25Dm08/ynv4LU7Q94wvZpLwwa91/Id8c3PuBEX/tPYDF9wcltM/z/jRTucixJWzn+dSR53XTncUhF2oL7J71hd3ePmHfbBR+s4x+j45A2nnZ+dHrBkxurOxQbUTRCj4ZAG6IIBOvRQL02QK/106Mhyub1qntfXC//+kzq5fLUlvIUtJIJrIoBTICbiI72NuKn/rYvc3kxDQVGV0rpzWJmo4jZImB1VKQrz2QoitNbS9JaTzGfnKY3n6a3UO0MraWU1g5toAjQW88welo5rVWY0C5IBKErSb17XawytxFTxGwT0jDBQzcqdB+Jl3M9joa9EzoW+eaz0Cu5Gze4vOX1IXL5y7BTm+atev8Xt05sacrxUXKcFPlLVIVB815BvspYoeMEqTnBExBEtD+WHflx2ZY5rWe2N+RGBn2IHFg1o4geOu23yDeHQw+G/TPYHnlYGNPO9RqgAS/7T9xFKHcOygXd3WqOs6bAsalkkfL6arM63qwJxdBAaEMaAX9M645pvTFtuOZ++o2yOkH2jer01upUlDBBioY0IVPT28hf+3Re5vJihsZiTJWYqRCmKAQsRXWasiJVVZ6qqWBpq1N1whSDqJeJ6UZoA0RAyND3NjFDW0tT1dIVEoZKmPqo4dQT7Ak+s9uI93n3OaXbcnDEx6T7UtIQ0gOAUMFZfmnfkqgJyM45v0xc8vsvo6cufxv5YsWbX6W4+P4F2T79V4+Pumv4LroiFznHa/7PkIbPA80FKxS5XlMQ5JvP15/P9k2c/d/xU5Doqcim2b+qzQ4WpAV7vYW0Fq259Llz1ExkT8Cf2nkeAzTgJf8JxZdQRbkL8EEZZw3f+UnBYsPVMEwZi6mDMdQX2hBFwB/TBAPeA0i7Y7pAzQPGjTLZAJAWpEBId72y/ORLCU5orZihJWmNv7JohUytkGEUMowShqm31dAxCc0MbeAI9Ea4hGaU0PU1NG0NTStJab5V1I414+PRRgwMTA/0ByHdXadaP4FUXOc2jtP3WZPrku3r02ZdzVlev3fmrc/mdpz0OMuYLU6Y/PiYo4bv0nZyQXu+gyjhHXmx+6PjszvYSwTb/tWU6/v4hHcN3V5Is6um25/dPaeJF3rrsK8gYcIj9rL7+UsaDs+tY36g4MHsGv0OS4OEnnnL0fzl+GR7RzXPqZW3EPshFGuPwTTBRp03tCGKgK8RDTGiIWatv1nrj+mD1Q8ZDeWy6uwbVenyqlRTNQtYVYpRwARGcKX3w5E43t/2ZS4PsIGTQ8JQAaNrcfBgNUm4JWMyuqmGYejDaMYaaP1HQELX9zYx3Sja2XcNAAAgAElEQVRgYAI6JqZhYmbHzSIl1tI5aQxC2vq5+3QtxCcudeQvULKXqYu82krcWwqdifTGTSccNaf8TWf8VFxntHBpW+48ReHiVt5cZZGD7tQy46nlrScWt5x0bOctl5d4tRd7P8xd2pTroj+9Ai32aeE7tRctURUvUfMXq7kwzUa/kFazXdA8LzTPS8VxUXEdUS4O6UshWHsUhgYOEZ+GjvR6TyNpg3mBIAvrPQd1L8NY3teoDcYt0KgNxPQhyk5IV6cphSkYYQKGWYibmG4mjJA45C50+oxAlxCk62voKmA0fU2yuSYJq03EapOAyegGGV1Xw+hlND0oDK2fCIDXnV5GhbQwRXG9SG2B9E8Q2pL5YkQ/wYLd3c8g5S0QtSwUquBZiGJZ9sSSkhIsaWJJlgUcokzX8qL4EmYugDQANiDHhoLnSOR3erqXhmdov22f4oxy3FCOu5q7TM1binKXtvIWmn4MxORrMXQlpvPvbWat74iZzttM2mCaQRbWeQ+qzUNfHujmTiPi5m9GgzFdqPpBSkM56O4WseQ1dBNhFjlIiEK4fYYIANlHQEVPBBOgGpeJveUgPDK4CPQBaQldD96WaJiYbhawOq6WKLE2DHwm/dOQBl3hENL9yyabxElnZzUUxMPyz+eMcpepuW5USBuvBGCKCABp7YpO88e0FhsU7QZD0G5lSJL16VBeCwiOdjuX8quFiJQjI1CecgtooJkwrb9Z5wlMS0A6XP0gtaFcJtp9oyZFjos8g4xuoOq5wT1A++iKhCfCCAxpBPqGtOXVh2YUpLb9eEqOteMTxyCkoSiEERjqCDgDPHdCWs1xbuEsMPzoj8nDIaT7eh0hADzwSwCENHx1GE0RGH2Q7rWYCZzdPdRcGWVdBSN7OwDSSh5Q0ih3KcqGkMZ71J9LqQ8AaW+opIdU5I0mFlrtvYwySIO1u3suCwohDSFtxREYBZCmQHFQ3d3DVL53tf6Wvm40ELCZ6HgHvd8hmDYCdndDWttIBCCkh2WgcWTFGby6DUUAQtq/W7d2H2PYvenbvbsbyO7eZTqPdI1J4xqdhPT99IbyOjgmbSOgslqZ+wIaZpOQBp9jdxrx2bbJ3HrV0E+CDaikrVhH2hBNh6mpA0A6iJwsRnW65lcPcsp0v13HFNT1W4ZAHaVkHxCl/DooJT3U5XtCmlo/yW/fnkq6f0hDbsEIWFMERiGknXtkwYKQhpC24gg8B6T7JWsPSj3Prq1AmgLjPsMC3i08Aad7KWkJS06usGFNj+YXINHgJWwiAjYDaVI69+kYOpV0EJ5PeomGvVCXt9CQu0SX6wQhbcWIGiZ5akPVDghpnS9GWOf3VxiQqlToDjdEqdeyQZ/Q/ZYtgDRYGVQTgqERxNrdot3gO2lRikHCBCZm6MUMm3hww0a+PBEYWkgDgA7Td9J9spk8aDC3/Yh3d0NI2xCfYFNBUo1+ZneHYugKC6F1vt26uyGku0UAf3Wgwpj6K/U4rqSpkL5ZCsakhalyMvEDkckAchr2KFhTBGwS0gb8s21ia8J9HYQ0lMu2GYGBIe2N6by7UI2r6mFR0t1gZnPLinWON/d9F/gaJsRKJt2VNAFpQkkT2ZlISENOWxOlXh7R3OedjiZIn8tWFQa15rsoObC7G4pUW4kAAWnLmqCU76QJJQ0h3R3AVJVM9fvGM/G2QYG01re3ku4BaaLHG0IaQtpqImCTkCZ7uUkHH5MGkF6JQ9pJw16sy1tsOOkEx6RtU1/aCmKfv51USIP5Ey3cefiKY4Ps7u41Tkzgigqwbn4/Y9j9Qa7buV3XMup8Seuu7LvKWMXxHvel9QUJK9WhGLrWMiaddQuOSVsNjfrUkfCgzUPaiH+LNQCkwSpOEFQwAtYagT4h7YvJIaSHgvcDQPpe5o2ysyII6b4yIUJsW1MERgOkjWBYuu2aoW8lDSH9/GoP1jB8ERgKSFPVM9XvpYMx1B83XwztNK031r/1pYaBFidltFHXB0q7KievMqROX63qoxmg2OAgTUzthrO7rYlMUECTERgJSJvNg0vVQaxTYtmSPdsWx2y2aGgMg5AePoTAmoc/ArylSv5SNc8J5ZLd3U+ppHuhqA+M4WUAj/vkJclp8GsXyPuoB1+uxKjzJ83CQuKFQOdt1HhSa7C8ExD1E5cGviem9TSjXl2NIRug9cT0fl3Hqe3prARvVY9P0SCkyWc6dEZZBIYf0mazWa/XE2BGUdSM/3Xj71Pu4HgGyavNZiPum8G27Zr+7G4lP6gld6kifwllTBoq6eHHDFxa9TkigKffdgYpurkOWu6SVt5c4xU/TBmKaQK7WNXFMMrU625sJqZH4b+C6VEEaMEWXzLT16xzN+vdMJ0bAGQX+fzBRCrUHxfTnjjC/cFnxOpQMHaLBmLYap0S/7wYW2k2+Jr1/mb9CmC6ILMuCNOuNGkCTKgXZvDBDH46lTuqcNap3IxKPwxb05lkMwg4ek9gIPOmP6Z3xwzLgOncAKf1AZjez6B0M6pdnzyYada6YGYvs8bHrPEzo144yANBS0AE3HG6E0ky8GZb7o64R3LbP7C1vmY02KwJxbRr1fe7urslTAOxngmUkjAC1heBoYU0wG3Xd9Im/I9EsMlkIv2nFdMmk8loMBoNRuJEk8lAVIU7BKSv68/ugZC21pFX+KLQbwT6gPRVn6eHdCe8gaIlCI2zrTukAae17gNCGp9apQnBNMFmNBAzhmD6QEwfiCq9cEL7d3EapzVmCsSwYMwIAInpA+UtizG9r1YeYFKuxLQ4noltF6RXdEHa7IVhIZh+JaG2zagHZvTGDXTFA06jHuAgqezxNxWLjCbeLSCk4Yjy6I/AcEKa4ChAqMFI+qSqJoH9tI7RqMNPMWOYuQvS7TcgpCGhbTECQwNpnM3d8kwQiSXwBFBgCFnvadS7G/XuYHVMy1g1Lj27MkThq2YCdY47Wn+jNhDIZUMYpl+DYdFGfZDR4I+br9HobTR6Gk3ueq2bVu1m1Plj+tWYLhzDVunUPpgu0qxej2lXYbjaBludP25BFl/vjek9jRpPndIX6FrdGswQAV4IdEEYGmZGQ0yoj0nrYdK5mnSulgajwWY0xIwG4t3shFYmpXMP5+mUNFwW1Pq04yjrr37O2xkGSFNVspub29ixY996663x48dPmTJl3rx5SqXyqahM6O+mpqbk5OQ5c+YsWbJk9+5MpUquN2h1erQL0m1QSfer1WwRXS9PmwcFadQX7+8Fk7x6TobqSrOBZ2bEx4wxXRDerxtu1EQYNREGNNygCzboAnELNmhDgVmO+IOD2hD8YAjw9d7AtCEGNEKnDrv03YKQAETVts6gDdEZfAnTGwlag61G7Ylh0arW6HPSRRrFamVbuKh8jk6+2ahdY9StMmrXAdOFAR9YGG6rCUejXIlhm/FzFyjbVlaVvbd1A2LSxujRYL3WT68N0GsDDHpf0Cp0rUGzHtyINsSgCzZqAa27vZRYcnv0P1ZNBKpXdzeENIS0dUdg2CBtNpuVSuWcOXP27Nlz8+bNGzduXL9+/d69e09FaAzD9Hq9XC7Pzs4ODQ29dOlSaWmpt7d3YWEhUU/XC0HbdcO5veR30ijHQZ/vYMxz1ue5oPATrOcYMX15YDlSdzogpMmh5c7J2Gh3mUgOS3cqaWLetVm30qiJUDSvNii3adq2Y/pktTxSr43UatZq1bFGXaJKscloijKYVxmwFagu0GTcgRkYSnm8Wh2p0oRgWLwO3axV79Aqt56vWz5jAoJ2JOt0oVqjp9bgr9WHKBShqCrSpNus7FirVq3QayMvfRUR5vdzg3qP4glr5kSk9TGtoz3cZI5UtG9ClQlazQYM24JhcSpVhEoZY9TvMqA0kyFZrY6Ut0dLq32St/9Jq96mReOuXfHVa7eoVOt12niDNuFJY6RasxrD4hUdcQbdTqMuRquJ0GoiwBuAfiVl8lp/wCaP4zO9u49JN5SdFey+RUBaRjfI6IYamp40635wP6c4g6fbUASGAdKE9iUg7eDgkJOTYzQYiUFlrVZLdn0PktZ6vV6j0QgEAqlUimFYQ0PDhg0bUlNTMQyjVmVubegH0s4wwcZI4QdedzAR6AfS4Zg6uHM41r9rBll/kCZkos4b9GkDcq+6d9M7NgLZl/523FrE3Qk5UzLrSWOsHk388ot/+XgiTkuQhATkcdPKNvmqhhteMVGIuyvi4ox8dc7VYNykUseeOGa/3AUc2Z3xtv1Y5OGtnSgajhq8UF0Aqg3Nz/+7syOyzAkJDUZaW8Me3A1fMgd5929IxKqfR6z6+R//BwkN/OWjh+suXV4WtAJxd0NCViIXLrjrDZvPnXP08URYjL+GrkRCghGhcMH1a2tmTkLGvIvs2vlLgWB2TDTy+OHGu7cjGbTXly9DVgQgGZmvtrREXvp+lZcH8tlnf1q7HgkKQKrLphq0oc8HaZBPGkIavotYfQSGGdKOjo5sNhtMxe4+iWyQhCbGs/X4n1ar1Wg0tbW1Hh4excXFJpMJRdGueoCS7loWFOUs0rMXGfMc9XkQ0rAb3KojMESQ9jQa3IyGZUbDUoPBU6dedfWSz9SPkM/2TPnhu2Bu3qQgX+TSt9E1wiA3V0QsWfrjlZDI9f91cP94eXuWtyeSmvp/V66uLiyYN28e8uDRuus3wqdPRaSi0IZrkWvXIDOmIG1NaWp0vVofoNGHqrUREyYitbWLG66FxEQhtKTXOlpYB7I+dnVG7t2PPP+N5z//jtxpSH9wL3m5O3Lg099fvOyekzN5mQvS3r6jvHzJ2A+QijLvyz+GfHbo7eBg5PEDZgZzanjIbxuuh50um+7liTy8z/jPoblBK5DLV31E0o/jNyD5ebPO1kZMn4ocOPi3y1cCjh+d4e+DGNC1RHe3CfXrp9+blNF4H7iluzvQjIZg2gg1nk9akH1DwpITMppU0lb/1LYhFQib+vwRGGZIz5gxY8yYMVOmTJmO/3l4eGAYptVqu+Dav0dwnZwTfu/evfnz50+YMCElJYXAc7evudpvdELaWclZAiE9GA0Hy1hDBPqANPgE62mVNAHppQaTk8HgrtetvnrRb8YE5Kw4Qq3Y+f233s6LkYZLybu2vJec8O7d+5tUmpTKCn+P5cjZ2s3jP0Ju3trypDWxpTXFyRkpOT3/ZN5U9+VIW9tutZZZLVw2yQ550pSqRGPVumAc0msvXvTSqJLVCsahz8e5LUOUHQdOHF7q5YGo9BsvN3i+9Saikh8/V7fJ3h6Rq7fK1ZuvXI1xdETOfR0okfrMnIG0tWW2yOPPVE5ftBh50njw2H88Q0N+09y6IY/3kasrcvVKQvT6v+7dO0Glj3/UuvI/RyZErP61oDp00SLk8rVAtS5RIAh0W4oYNOsJPBvVZDJpKpV7+J0Lm5D5pB+kNpTLRLsBpGE+afheYsURGGZIz549OyUl5ZtvvjmP/124cAHDsK6B5P4JbTabiR5yYothWHt7+8OHDysqKtatW/fll18Sw9VdVXXc1J/LVBb4t+Q5KdgLNex5uvx5htzFurwlsLvbGlAE29BfBLogzXHUcp1aefPx76R7QJocnO5jYhQ+Du1NzN82GJfpjO5GQ/j1q/7zZyIXv4nSandduxq0cA7y4/fJqwJ+P34ssmA+Mms2MnkKMmMmUlUV9vbbyMezkbnzgY35CDmWOzlz7z/Wx7zy+MnOdnXc+e/d7eyQ9o4MA7ZDZQhVGUL02MZPP7ELWfGKrycyfx7iugzgnMtxCQxClLq4H274vvl3RN5xQiiIfu01ZM5cZOFiZM48ZMIkpOjM/HKB05TpSFMr/XH76qJyexc35O7d7C8Pua9c+Wpjewz39EeevsilH7YFrPgZm7eoTRN178mqk7lzljojYmHYEkfk1oMgtWGLQOjj5408vudDQNqg8hmckibySfuDT8C14Zr7qTfKAKTh2t1WzKfnl6GjoIahhTRYDQyhjkkvXLjw6NGjer2+B4674NrjB8ouWaa5ufns2bMPHz40mUyPHz8+ePBgeHi4TqcjhrotZyhudUJ6CYR0fzyAx60vAs4qjouC66LighXmnxPSBoO7zrRMZ/DUG8OvX/OdOwu5+O1arXbHtWsrcEgnbo3/YMvGMZe+33n3Tsq1q7tu3kj+8fL2f/8LqZWtu32L/uPl7Vevbm5s2fzJ5+/6+CKNzUmNrbGV1Qs++hDpaEtVaGJVhnCVIaT49PjFC5BbV/deu8TanTbdYQGiVX3BzV8WvBJpV21quBX27jtI+5Ocr8/u/Nc7yJVLrAd39125vOvipegHj+MFYueZs5C2DlqLYt2Zqsmz5yAtTZ8d+cIjfNXrj5rjS0qnLXNF7tymhYe9cvTYNKV2W2Nr9OeHJkeu+d3X9esdHJCGW55ydVRFuZuHG4A0oaF1Snx5k67Z3T00NLHri39ahq+GZoF0ys0yqWh3gzCtHeaThpy24ggMA6QJuBITxxwdHTkcDjF+jKIoMdWLpC+FyH24ZLHm5ubY2NitW7eiKHr58uXw8PBt27ZhGKZWq8kyGAHpQt/WfEcldyHKnadnzzPmL9LnO0AlbX1ksupB4hcbriGDtMHgZjAu1ZmWkpCePwv54ZsIPbrr+tWgxXOQq9/vKC0I9nH/72uXdzxpTC/iu+XnLGl8kLp8GZJzbFFLU1ZLU9b2bb9rbo389oL7P/+B3GpgtjRnbI773YQPkdYmhlwZqTWFq3Uhx0/83csN0bSebL73uc+yX7osQtStx8/wVy11QDraGdeuxL3zf0hHI/vu9ewFs5HyknBV+5H7t1M3xL3W3r5LWrN87mxEqUiVqzZUCuY4LUEe38s+/qVbkN+vFR0Zp04tdnVB7txI2rfbPjz0vxUK5rffrly35r8/3TtJJgx1W4rcuu2tRqNFFe5+OKT1Gl+jzl+rGiSkwTfi+BS8QEwbqrlvgbQotZ1IJi1KMcB80lbMqlGgiZ/tFoYZ0osWLeLxeBiGofjf4CFNjDeT08Lr6uo8PDzs7Ozs7e1DQ0Nv3bpFUL0L0h03dfUZykLfVraDircIQvrFkgZC95kj0CekA3qNSQ/c3Q0yXhgM7gaDm87opjN46/WrblxzXzgbufxdgE694cZVb4d5yLUf1ipbUz/J/tB5MTL/YyTYH/mq1kfZRquXeK8LQxwXIu4uyL7sv7a0hLS1Ruza8ru50xDnRQgj4S/TJiBqeYJWu96ErVaqV1y5stRxIeIwBwn2QarP+L73dySd9v69hsT3/oEsWYC0PN42bxqyZA7y/VdrJVWegd6Iy2JkyXzkP5+9L2+Lr5HMn/cxouzYqpCvraqc5LAA6WhiSir9x/4L8XFHSvgfL3NEVO3065fXbY77pZsz4uqEJO34zeP7GyTVQD3fubkcVa0TVTgASN/30Gt8Dajf0EIa5pOGnLayCAwbpAmIKhQKFEVNJlO3SV59yOaeh4jyxMi02WzWaDQKhaKlpeXJkyft7e0ajYbgdxek22/o6jNURX5tnCVq/mIqpNUcRxXXYhBdMAJWFgEqpJ21nKWtvIXGKwGYIqLb2t1Eagp823v8FazsgZtB5w8WG9GD9UlQdSCqCtUoVuk0QWpFgFoeomoPQxVrVe2rWxsDmx76NT30a38SrO6IQBVrWxuDgT0OaW0MxrAYo3Zdx5PVj+4ENd73b2taqWpbo2wLV8lXqJU+GrW3WumnbFvZ8WRVR8vKtqYgoqrWxuAnj3wbH7o1PfJoa1rV1hjW2hgI7HFI6+PQtqZVitZgjcpfrfRTK4LVikC8Hh9FW4CqfbWiJULREtHxJEzRGqpqD1O1h7U/sbSn5dHKlsdBoJ3yELUiWKNciSrDdcpIg2q9Xh1kVPuaUD+DCgxOk9Y7PviRPrq7b5SD7m5CSROJsAhCW9kz+tnkFzxr1ERgOCFNfEBFLrjdk8OD2O+NdgLbBPW7zUFru66tS1cV+XVwnTQFDhDSVoaiZxaao/5EAtKuKo6LmvM8kA42aoHha4oFGlA/vcYXLNql8zHovcGX0yA3Bp4eQ+tvVPvqlN46pTeYcgVmOwd3t0CTJsCg8tMpiWK+OsUKrTxAp/DHcehlQvsxrQdI44EvO2rUgHRYoKQmwKQOBqYJMGk9DBoXncrNoPYwaZcbNK46lbtW4aFVeKEd3miHr07hD4p1WaBJAxpjQv2MGk+D2sugDDSpQzF0tVkTatIEGNW+RrXvs0IaThwbNRgb3TcyDJDuAd/nQTUBaZPJRHwqPYAiN7c2EJCW85zRwiVa3nwDd76JvdjAXgKVNAS2FUdgKCBNSRxp0PkDQ/2AaX0MWh98bRNPTO9t1rmbtMtBgg29D2b0xXTEUqP+IDNVp5lRL6Pa1ahxBtmo9O5gFVJ1gEkZBEzta1LjmbLwRJN4PZ6YzhvUZvDqyo1B7Bo8MGBemGEFSKGhX4mnwPLEtO5mdDlIm0Fky8BTaBBHTBp3UD9IybUC0wdhxmDMvAIz+YFKQP4rb/ATkaELjcDUoWZ1gFnTJaCfXkl3QRrmk4adB1YcgeGHNLE0mEaj6QHvwewSkDYajHq9nrq+WO9zIaStmEOjXg0/zw0OIaR98W+xQKZnKqTxtb7xTJF6T73S2aRxw0w+GEYkf/TFtD3MGwOZspzNGgeTyglTu2Maf7D2GVj+zBdDvTsN4BbTeHSZ2s2sWm5WepiUbma1i8VUrpjGC9SArsC0gZjODxAd4Na787XAF9N5YnovTOduqVDtg6n98FPwdwidJ/gJbP1ADdpgDF2FacMxTQiEtBVzZXRL2xd8dy8E0l0jx73pOlRH2q5ralOVhb4Dd3eTg9M9HEg4GIERisCAkKakkbYk2OixLKglnxVY0JtYtZvcGrQ+ndmuOtfxIBf61oFEHTgsu5YEt6w8Co57UswbP05MW6MU7t0wssIeP1FG00FVZDHy+ADlqT9ZyvtjuhWgix7/4Aoky8Kt604pAel20JLdyxOciAZjunD1g25KGuaThsi31ggMLaQBcbvySQ8VfwdVD4Q0zKJhkxF4Skhrvbuxh8IkAs/Er2CyNxXSlGL9nW6LxyGkrZUrL1hrju7LQUjjE79HSEU9TzcpPHd0RGC4IG3Udc+XNUo5Pdh3i/6VNFwWFJLeuiMwCiG9dIDZ3T16ucldCGkYgRGKAIT0C3mZsEAaX/ake3c3hLR1I2p0q+TB3N0og3SBfwd3qabAEeUu0LMXGPMc9PlAb5Ew7s8ZoQf06NCC8C6eJwJDBunBasqXU1KTkO6eYIPIglXDAMmkySxYREppiC4YAeuIAIQ07O62yaHc5+GiVZ1LQJpYu5vynbQyHMxwps6c6vQhjJ8xAoDT3vh34T1TVUJIWweNBiMrX8IyNglpkMej08z4tDIz1nYNzO6GShoS18YiQIU0mWADXxYUQnpoRX//kIb5pCGkrTgCTw1pko79zbl+AbO7yTaYMKwXpDnLYHc37L23oQj0m6oSQnr4IQ3zSVsxnF5C0dznLdsMpKlgpvpGXFIbO5X0ig7OMg3fGeUs0rMXGfMc9XkgAyA5FG1Dz27Y1JckAl2Q5jpouUtaeXPxfNKh/a/d/UJmWg0tIK2hNlxJY2ggWLYMjdDcT79RVgfzSUNIW30Enh3SVFJ2+iYTZhomJd15ia6ObuJIJ6Tbr+Dd3RDSVjXgChvz0xHAIe2o4jqoSUhf9cGUENJD/S7SC9I3SwGkhalymE/a6kHVp8R8SQ4+DaQ7h4H746UJe0GQNmAYaUbc12MQ0jY2FvvT9HpplLSjgkdAepGWu7iVP9sIIT0cyvtpIC1mvCQAGPrbpGYSo86TJ3OA9nCG4/2AeonhqP/F1vnUkDZiGGF9oXqEIZ2uLFjRwXGD3d0vCd5Gx22quL0h7QWV9DNO4R6A7hDS9KFHcm9cQUj3jsnzHbFJSFPfDzq7u8Hs7nQlPwiHtAvKcdDnOxjznPV5zigbijYYAeuNwICQJhbN7rYdenoNALbR9BOENIT0C4nA8yG594vUU0OaCshe/gtS0tTr/iSkXVA2mDsGDUbAOiMAIf2CXjsgpF8IomxBSRPY641D6zzyNJDGv3aiArKXDyEN3wZgBJ4yAn1DWkFMHOumoUFCZdT/BSFtNGlo4l76gbSIJRelGAgTMvRChp6KmaFWRdaJgedpVU/gUaPXOSYNyojx2BIRJrf9jP33rHMw/wrEdckt+U8pofeoTSthaICB489z4y/sXKL9Pbb6GpqxhmaU0IyC1LYfT8mxdnx2lpVDWisjxqTdNXxXNccRZTvq8p11+d0+wSK/xYIOjICVREDOB2PSxP9YyydYV30wC6Qp2SHxXI2Q0M8YAQuh8XhqAjE0XHsv/WZpnTjr1ksC6Z65OPHnew3DAFhlgRaFOvivMqaxF+H0neVVlrMYGjFN3VlMK2ZohUytKAUVMjVihqaGpq9N1tfQwCWEKSohU4Oz00hCWsjQSxgmCbicWZRkkNDMAJxUiOItwWna2U4LX0logWaTbO75KsAETcKbR96dVsJQAYOQ7m+tk6E4TlXwXYuZaGWpKv6KDranmu+h4LooeM4qrrOK66jkO+G2VMmHBiNgXRFQ8Je2FTjLec5ovqs+z1XPXtbKW2i8gq84hvqDZSy7m1HnDW3wESCi15nE2h9PaO2O74YZ7mXcKf1amnVfxFKKUgwSJjDqs95GZBbJHopDgI1hqk/H6jMw4takTLM0xShhGip2KauTtN/twwRJhhqWQcxUVCY1CuitsjRj5S7N2UysOklbtcskY2GyVLOEieKmE9F0gmRUmqI/m2WUprVV0R7WpMnFzI6zWXoBvV1Ak5/bbZIw0dIdLeJUVVVqW0V6SyWrpYamBZCmayQMhSCluYLRfGpnh4BhFjL0ArpOQNeJmCYpE5OxMFESVrUTEyVgMqZZwlBV7noiSJTXp2F1KVjlDp2Yhn6dZRIzWuozlDKWonLXk8pdT2QpGoYQ+VYAACAASURBVClLK2HqJEydmKUXs4wVSeqqZFVVskrI0NdlYmKWsX43JmIoq5LkxF13wl4hYSheBkj3R9th+k6aerm+Ia2XpWj4/vJ8TzXPS8F1VfCcFTygUZT8JbgRqIZbGAErioCiwKmd7yznuejylutzl2vZbs38hfqrANJmrf/gaQRL9hkB8hUH4BksY+KPaUlIZ+GQvkso6dEGaaZBmqIHypWpqUnXVyTJgZ+iqqJ1CJhyAUMpyzDXpBnFqaozCff2BZ6pyWoUMJQCuq5ut7E201SyVVG2UydkasWpGhAflrwmXVubZShNaJZmtO4POl2042LtbvmWuXn+/0yvZjypyVBUM56I0zqErDZxZmsp8/6+taKJP18lYWjqkvS1NI2E2bbH/4zjn+JlWaYqhkGSoa+my6vpSgKuEgaAdOVOc+k2TV26uTKpsSa9vT4TlbK0lpcDlrYmTZ7uXuT/z4TSXXc2f3x888fHS3fdq0mTV9Gbq+jN0nSlOFVTlSL/dNXZ0uTHVTRFeaJCxFJWM1rrMtRVSa1ihvabPRiQ7KDnAEKaytNh8fuGtKEmBeX5K/M9NTwPFQdkLMD7Mx3U/MXQYASsNQJLVFxHNcdZn7tcl7dcyVv2qHAh2hCAqcLNaLBB5w/tmSNg1PmTRuTVMKPBuIz2x7RrdPezbpXVi7NvClNH25i0mKGvpivLkx9VMB9UMBpPJz4UZ7ZWpjwsZ9wXpD0SZtyVZD+qTHlYxWqsYD74Yo1w6d+C+LvqJBkaaaaxnHG3IuVOFVNZxUCFLLUovUOU0ShIv1fJul/OuH8qqaEq7YbLm2GZAXll9HunExuLdtwuSbhdlfqgOOFq7b7GMkaDOPvR6ZQbByKFM34bUUNX1SVrcUi3HFh1avbrwYKMtgpm+xlaozCtVZjWXk5vKk1+XJbYVJHcLkxRCZhyIautZFdDBeNuaeLdKkajkNUsSm0VMNtKdt7aueRT//c2VLNulybdLE2+Xs26XZJwsTzlSjnrcnHixXLG/WOx51dPZXyxtroqpUWUpqhg3K5m3RawHlXRW6qS5IJknZhuBKPgL013d3/4HSklfV1bs1vJC2vLD5LzAtu5Pu08j3be8naea0eBW0fBMtzccB9uYQSsKAJy7nIFx0uVH6DID2gt8L1TvFTVEIopYszqtWZNOLQhi4A6wqyOwNcEDcPQeN3d/bfKzomzb5Jj0qOmuxuMy6YoZv02xG/Mdt/3U2b8Zm3UnIMlzCunU65mrzo9/bfB4xDPeX9YcyCikp94+eM3Qv6G2Lu8E87ZcTVzhXjBH9f/C1k27/fxR2N/EGS1b1h4fOVEhud7mxf+ad20V1dyEy6s/Zj1FjLR7hdLsoLL4uefXPFR5mnmnf3hgmmvrpzwc5+Jv/TdHVRQmnb105jKKb8KqqErLJBOad6/qmDBH4Oke1sLdt5eNSFr3hvr570etWpCdlHi9bXT98XMPiTZ80SQ2fhZhGTu66tPM67vdD4597V1HyG+rm/uOLTmXFHSNZbfEZ8xUfyEb2PnHYydt5+f8K3fh5un/tp96qtufh9uzlxxyn9M8r+RuT7vb8j0LUv3Lp/9auCsVwKc/xib6VUpZqqqkzRiullMJ8T0SzFxbAQh3celjW1326SHHvI238mPfsCLuseNuMcNv8cNvccLuc9f1Wlh9/nQYASsLALc0IfsiIf56++z19/kRzScCZNf2aK5v8n8ZKO5JZpqWGsMsLZYYO3x0J4yAhtBeXksJt+EqZKNdw7fPn1enHVLwpITfd34LCrKyK5tTP3tu8FCVtvs3/sHTN7GTrrCp9+a8lrA/qhT+6OKprwWmBFcW7lbmeCdO/vPKw9vqmeuKF70ZhSXfuH4jroJv/b7ZP25U6mPtiw74fROHDv50ganQ+N+6cGlXSxJvRlgn+YzLqn64M3xry7eF8Utzb62du5BP7uUItadGa+v3+7KL6Df3+HK/hBxLsv8/pOokum/9pMx2+tpaB0drWE92bsq/+M3PEtTbia4cF3f2XqGdZO945Lnv3fGLjiwe1XR3D+sLE3/8fjWmqgFe/3GJR/f/LXzPzZlBldwd92Pnpcz+/dri1N+SPY9tvyDqOPbRKEzkra4fJIWzHX5R1wJ88rxTWe3u5zYvbI8O6TS6W+x7O3fHlxVvXbKngzvAln24wPB5TsW5oiZiuokjYhmEiVj4mSDmKaznTkH5BQ5qjPQ7O4+ANn90AtQ0t0viO/p2h9rGiTNtcceir9oqj30uObAY9mex7Ldj2W7G2v3A5MdhAYjYG0RaKo52Czd90Syr1nyWaPks6baT+7K0poupN2SxV+p8G8o96TatTKPa2UeV0vdr5a6/3jGDdogI3D5jNvl0mWEXSpb9kOZ+8XTXleKk74/LKlNu1fDVBIzn0cXpFsm/49LcvChotS7JemPXd6P3+b9yTbvAy7vbTy69X7pbh2HdfFNZM4Xm88xVpxZ+OYGNv3iNu9P5r8Vyk5u4DFvF6Rd+BsyMyepfpvnYYd3osv23ivf+3jNvE/dxuwo3Xv9g18uzFqXe2bPlTXzs30m0ApY1wUH2zi0m+ykO/vXST5EFpVmfvVJNG/6q151zNZOSLfuX8Wb+dry3M3fBI/P2uJ4RJD9sJh+fbtrjtM/og9En174VvCB6KLDW6rcP9rMCCwuSrtdkHolL+liWXZLsl/pjD+EFqR9m+D/xbIP1x/dKVw1mx639MCBqMqP/xjGXFF8cucFfvK1M2n394QJPf+dcGzDuZwN56NmHAgZm5IX/1XxrkvVKXeFKR3VSapOSJvEyYZRAGkJzSim9/EJVh+A7H5oZCCt6mi9++O3F6RlXwsLvpPyz4vZ5yUnz0tOnJec/FZS8K24BBqMgBVG4DtR0QUR+4Io73sB93sB97KY/X35l9+czjy1b2XO5kncTWOpxtn4IWfjh+z4Mez4MXlx70MbTARy49/P2fB+zoZ/n9hoseObx+RunVjBXF+fUn02+VEdXT0qIT3ht857YjklmY2nMtu87HdFu2RFL8vwst91dMe9M3vQ4r3X3v/V0s83f0NbUTH/rZg85vlNngfe++XiMa8ss3/Dc+xvF//7l7NzaLLEFSeXj9t5es/909mP45aecPr3tpLsq//+xYKsSPapPddWL9jrbZ/ES7uy1fP4rP+NWPxO7MTXvT/8749Ls2SfxOTPeHV5XUrTOZpaRtdJWO3ZQZxZb/ge3/Cty9+TU1eUVmU3FdFvZ6wqn/q7oJyk2tC5CStnbc9eXzDl/wVXHHhyeNv38e5fzHozaPL/8x/3W4/pfw7gZZzdGZjt8lHIkV3SsLm7I5d8kpP0bXIAZ8k7cWNf8fAcu/PYlu8zgys839v6ZYy4LOXBybiLYRMyZvwqYPEfwtN8eIKUZlmGUYAraVEyJqLh333ZRmcJVUCTvh7/bg1Auor4TroD/066O4z72xsZSMvl8hsN18/V18qkwrN14lpZdW1tZW1teW1tZZ2spk5WDw1GwCojUFtfIzxbU/2VVHheIvxGXP29sORC6ZHijDUno6ZzI8dTjRdlx4uy40fb86PtC2MnQhtMBPixE/mxE7lxEznxEzjxEznxk7nx006ssy/fsf5ruvgretMohXTz5DecEoMPFqTfLs547PTehm0+X2zz+dzpvQ3Hdt0sSG88Tjv7z587fL75m6TAsrn/WJ+b8lVSyIkF74YeThDzss4XH/ianVlT+unV6GUHHN/fwE69UrT7XpxrjvMH207tu/7Ray4Ht5wp3nstfMFez0kJnPQf/oYs3BtXxsu88MW2ig9/Nr0sS/pZdP6MVz1qmI21NFUNTStM6WAFsOf+aSU3+arnmJTtbnklqTdzd17a5c1b/I+44t1XUiNy7V93iXbK9JmUxGc9SAkVTP/rypxUGTf76w0+B6f8rw8ns25HcJbz+OAjiTXhC/aucThQuPtaQebl4t1XDsZXrJiaHDJjNyOA7/xO1JfxwuqsxmL6zerMu2dSftywcL/3v3aeiL5YvLVJQDcIaNiogbSYbhQyAKQvn5ZjNgHpK1euyGQykUggrRHLZFKZTEyYFP7BCFhrBGQSmUxUUyesOSsU1YlEMrHorLD0/OkjhelhObHTudHj+jI7brTFeFH2pBVE2lPMriDSYrzocaR1r62rHrJC3Om6KHkiL3ocWWEPh1pm5Oq350ZbjBcziTR+7GTCCEhz4yYWxkwtjJ7Oi5tVtn2dlF5en/pINjq7u5un/c4hYObqnGTRJ3FVY15xPxgvOLyjfs7/raUFFeczL8W5Zi9+f3Uu44ddgQVz3o74bGc1O/PbD37jlhzGzmGdz4wpXjGHlpv2bbznl0vHbcpPu1Sy/85G7+ML/hVz6uDNj97w2LbiCC/7h9WOe5ZN2JwVc+bdV5bmpp0/nCzznbrlXcS+iCnIXnVsxq99xKxmCUMlZugFLEX26tIZf1mRk3gu3uXTJf+Mykmqz0k8t+SduC2uHC7jxuHtkmm/95z0mmtqaGF5djs9sHLW38J4e77ds/mU4/ho+z/7fJFYvT34M4cPIw7TpGucsn1mJO4IOBI8h36cXnecXrdyNj10LosVxl02Jmb3usLM8KKV0+kH1p3iJn+zc9lx/w9YRQn3y2ntAqZeyDCLaRgxgwyfRNb3oL41dYaT6pnq6MFMdRzSFWmdkDaCRM4/9Qe+jRoxJd0JaZFUKpVR/qz1+QzbBSMgBZAW1tcJ688KJXUiiURSUysq//rMkcL0VTmxU7kxYy3WjdZdcCUJzYuiEtqeylHrgGhXm6kgp7aN2maqTy1DPbf7i8VPQJofO5kbB/R0UfT0oqiZBbGzy7avkzBKZan3R+mYdPOM3y0NmR05+3+93kOcYhZ/waZdLdvzaM9qwbw/R8/+0xrndyP3RZWV7XnEY92e9EbIBz9z4zAu715TMfsvayf+T9Dcv67PXF1WmNqwzSMnYHIKL+VK5YGHW91PuI3ZUX3wcZzzl+//l0fk4k9jnb7wn8gszb7rNT7J7tWAGX8I/TSmcuGfA13eDPtiXfns34QKUpoFDKWIpqtiqtODyh3ejq3af4/P/GHN3OwZvwuZ8buQdbM/4SfeF+1VFjAuhs1Msv/1siLmpdNpTf+J+8HzI/qE/wlwG78zIZAz+Q8hPpNoO3xzXT7YcnTX13HOh2IcP/tyc623XeK0N1ZOe2Olr13iFxtqjm6tD5hIn/G7kGTvvB3Lj83/85oJP/dZ+Mf4PUGSM7TmKqZSkKIVMoyA0/g0b1uHtJBhFDCNFWltl87gShpCGiIFRmDIIwAhTTKYCmaqTxbgdXtTGQch3VvtkSumgdndb/jtCc2pzGgoZd6tSm+vSpeXpjSeTn5cxuioTlOeoTVWslqqU9EKhrI6TVnJfFLBaBald0iyOsQZ7fX7NOKM9nMHtacS71WmNIkz2iVZHVUssGRYJfOJNEspyVSI0hSy3agoTVGW3FJOaxWlqapS2gSpbdLd7cLUxipWoyC1DRCajoIFSRhoJUMuTJVLdqvP0Jprs7WiNFBDbba+nNZamdpclHw5afnh1VMZ0n2Phbs7ylnyspT20/RmUbZakKmsSOuoTpML0hVljJZKVls57UlVSps0Sy1gdYBvoOktwpQOYUpHBe1JeVJzeVJzJbO1NKmpZNfDqpS2smSwK2Apzu0x46u7aImlSclY9bN+uPUobKqAJn2gpAlIl6fjkJZjmAkq6SF/QsMKX/oIdIc0kNJ9KOn+4QSVdCeqoZIGUCHBA76TfiXw8/Dyaubj8qQWWZapLKmjIrm1PttUl4WJUgyyNGMNyyBIRku3KwQJ6rpU49l0Uw0TlaVoa5iomKYWJimqEzrAutwMjSBRLkpWEr4sRStIlNeyDBf3YxK6tj7NXMMwVO9SCRM1omR1ZYKiJlV3ZmdLFU1RltBOEFpEA6uKimm62hSTmKH/ajcGHPxgDctQndxxevu9/YGVLn+JORFTK81sEqS2idI0Ypa+PFElSjHUpJkFyWhVovrrbLDK6bkMTJSEVu9SSej6WobxLMt8lmWuZRhraHoZ3VBD05/PwISJmtoUkyBBKUvTC2hguTQBQ1lF67CsH84EC4yTsYKQ/qke8iH6XS6Xw+7ulx55thcAmURWJ66rF9WdE0nrxWKpVFonrjhfdrgoI/Rk3DRerJ3FYux5fRk/ehJphVGTuizavrDT+DF2pHVVGGvXZ4XgIHnR2K4T+TF2ZIU9HLJyfkxna4ka+mrwsNXfNQ5NDkjzYiaRY9IvW3e3mKnyfjPps2BpVVJ7XRomohlwTKrFdCUwmrqGpgVG19TQNXV0XW0yvsh2kq42WV+bbCSsjmaqo5kIX5pA/KSvoxnwMlr8FEslMgYqY6AgkQaetUJMN+JXNBDXxRU/XpKmraPrSJPRdTK6rnpnK21+0cJfRTOW8KqTHkiYLSKGXMwkEmBYhCNRktiSp9cma8FKKUloHe5Ytp31E4VrGDoJA6T6AMZUdRk4QuTesB7F3F9LSPVMdbqUNOzutr3nPmyxDUWgC9JisQXSkrJOSM/o4mU/wCMJzY+mEDpqEpWj1gFRykvGsLwEPDWkS7etlTLLRuuYtIShkbEUtanKulTj15mYOBl8GSylKaU0Ob5V44kO9TV0FVi5E0AasLkmyQCQnGQmrC4Zq0vGyF0S3nhhkN6qNtmCXgBpuq4rZQWtT0iDU+poBqrVJKE1yepzLO3ZVE0dSyljysE8PrpKTFOLaSjZny+jG0gjTwe1JelrE3V1ScCxGF4/UZhM/IWLZi3OaYWYqRAzO8AW5zR5CSt2qGwm/W4Tx+CYtA0982FTbSwCENLkOwT1xYLqkwUGVOpPB+nCuDkEpGtYo2oxEyJ/M77V1rHUIlq7IEF5Ng2TJhmkyaiY0QYMKGmdJBmT0LDOdJMmYiIVUNsMy9MfTKpimCQMEzGLuO8tmXubKAl2cRYyNCK6GjcwIE10LBP5KGU0rJvRTTK6TkpTn2Xqqra11NFRsNB3khLknwZjrmZgdEzEsJiEgXUZDdyCOAm/EdyX0LAaOrCuMozOidygbRoLoVNaxCltOKRtInc4CWaqAyFtY4962FxbjUA3SEuE0hpxHaGkM0NOxkElDTrthwjSE7nxE/ixltndhXFzzmxdXcMqG8WQrqGrZAy1MFFTuUMtSUIBpOlyAGmaGl8XEwNfIhFdvp0kI4FqwWqv9J19o5rEOQlppkoEpoypwZg0He0EP5hTTUCU2MpoGCHov0rDJElqaaK6Bm8n6IdnGCQMk5BhFjAwQSehe6AatB//6JlwiC0Vz4SPv3+AJbvBzYIebwUgNLNjNEHa8p209c/uvnbtWm1trVgslslktvrMhu1+ySJggbRYdk4sru+C9JdFBKT76uUmFjOB28FEgFztBKxngkO6JGpqSeTM4tiPOyF9B08t3N9woE0fJ4QXuIXOpaq1QDrjw8bEelWWPl4i//RQLL+F0x2M9XZa11w2yxWJa5FbykWJbgCiqcQSrf2+E5CnD87BCU20hGgYGKLu6pyntMEqO72pApr0wYpjtreYCYT0Swa40XC7FEgLOyF95nwZhDRYVe35jYR0YexEftwEftwEAOmo6QDSm8PrWOW1KXdq6AqrfDTb6vsBocJ7b0c2yNbWnqeJBglmqtNtWVCbWXEMQno0UOsluwcI6ecn8QA19AfpkrjZBKRrmLcgpJ8GGLb66kDcIxXVtnPXVDaTPoT0S4YKeLsjFQEI6QEQ+/w/DQDp05vC6lMrpCm3Rm93t20DdTggOloh/eMpG1m7GyrpkSINvO4zR2AgSMfOon7yS/rPj66Xp4ZBQpr67Cb94YAErBNG4OkjQKpnqgPySdtYqkq5XA4h/cyogCeOVAQgpIf1jQFC+umRAPW3tUWAymbSB5AmOC0gUlW246kqzYNaHWzEEmxASI8UaeB1nzkCA0E6bkafi4INK9VGWeUQ0hDSth8BEsxUB0L6mR+68EQYgaeJAAXS8BOsIZjO3eMlA0La9hFlbbr2xbeHymbSh5B+mucsLAsj8MwRsEBaVNf9O+nDlu+kKStokkuE9uAQ3B0gAhDSENK2HwESzFTnmSE9ovmkYXf3M6MCnjhSEegGaSLBRteKY5QEGxRaD8Ak+FOPCEBI2z6iXrxytbYrUtlM+hDSI/XMhtd9ySLwU5Aex4slrCvBFHWZzB5Mgrs9IgAhDSFt+xEgwUx1IKRfMlTA2x25CMhkkjqQrbJHFiywLOi03oTmdU8f2YNJcLdHBCCkbR9R1qZrX3x7qGwmfQjpkXtmwyu/ZBHognSdBOSTlknLvio/XGCBdKeApiziDZV0DxIPsAshDSFt+xEgwUx1IKRfMlDA2x25CHSDtKSGhHRof1mwIKQHoHKPnyCkbR9RL165WtsVqWwmfRuEtEKhuHbtWl1dnUQigVmwRg458MpPGwEI6aH/8opENYQ0hLTtR4AEM9WxHUibzZYVViCknxYOsLx1RABAGgxLS8R1UqFEJqZ0d/edTxoqaZLBP+lASNs+oqxN17749lDZTPpWCWm9Xm82m/V6vU6nI5Y+M+N/hK9UKhsaGurr6yUSiXU8fGErYAQGEwGZVFoH5nhLxDIc0jXSsnMVX+Jj0nDFsaEU2cSH5sWRU4ojp5XEzaYm2CDX66Y6EG8wAtYRARLMVOeZIQ2AOfTLgpIwNplMJJ4JhzwCIT0YIMAy1heBTkhLhTKpUCQT19ScgZD+SYn8DAUgpK0DOS9eidr6FalsJn0rgzSGYUaDsaGh4Vv8786dO2q1mujoJiGtVqsbGhrOnj1rfU9h2CIYgQEiACE9lHJ5AHhDSENI22YESDBTHeuDdH19fUhIiIeHx6JFi3bs2HHnzh0Mw3Q6HYT0AI9/+JMtRABCGkLa1qUebP+wRoDKZtK3PkgfPXo0Nja2ubn5hx9+CA0N3b9/v9lsNhqM5MQxqKRtAUiwjb0j0D+kYT7p6KHkN1TStqkjh5V/NlE5CWaqY32Qvnjx4pUrV3Q63d27dxMTE7OysogxaXILId378Q+P2EIEIKSHksSwuxuSeNRFgMpm0geQltCMYrrRWvJJE3PH1Gp1aWlpcHCwSCTS6/UkoTEMg5C2BSDBNvaOQP+QhvmkoZKm24TUg40c1giQYKY6ekknpKtS2348Jcc6MMxAReJA/tDP7iaGn5VKZWVl5Y4dO1JTUzUaDTGbjGyIUqm8du0a8QkW/AqrNwrgEWuNQCek4SdYQ4rk3pIadnePOok5rGi0nsqpbCZ9AGkx3ShkGKtS2y6ftgJIq9Xq+vr61atXHzp0yGgwEmwmZ41hGKZQKK5cuVJXVyfG/6z1iQzbBSPQIwKDW8wEpqp8boRDSENI22YESDBTHb2YboF0RVonpI2Y5RtlUrz24QxdPmny22gMw/R6fX19/bp16w4fPtzHRTHMbDbL5fIff/yxtrZWhP/1eBDCXRgBa41Af8uCElmwOhNsQEhDSMOu75c0AlQ2kz6AtJBhFDCNFWltl87gSvoFQ5rszTaZTC0tLTQabd68eQKBoLKyUiqVfvfdd1QZTShpCGlr5RBs1wARGBjSMJ/0kE0rg0raNnWk9XQ7j1RLSDBTnS5Il6fjkJZjmOnFKmlCQBOovnfvXmJioqurq4uLi7Ozs4eHx759+8jFQQltrVAoIKQHQAH8yVoj0A3SvVJVEpDupqfh2t29x5sHcwRCGkLaNiNAZTPpWwekCa1sMpmIru8eW2JkmvxOWqlUUsek4dwxa2USbFePCHRBul4M8knXScrOlx0ugvmkn7t/uwe5IaRtE1EjpV+t57okmKlOF6RHsru7B5X72yWUtFqthpDu8fiHu9YfAZBaQ1xXL6o7JxZ3g3QGzCc9ZB3dBK0hpCGkbTMCVDaTPoA0MSxtM5DWaDQQ0tbPJNjCHhGAkO6hd4dvF0LaNhFlPYp2pFpCgpnqQEj3eJTCXRiB4YlAN0hLhNIaMaW7G+aTHkoxDSENIW2bEaCymfS7QdrynfSLn93d59dWPQ6Sc7zVajV1MROxWCzp/BuepyusFUZgCCJggbRYBrq7uyD9JT4mDfNJQ0iPlHqD17WeCJBgpjrWt5hJDzaTuxDSQwAKWMXIRYACaWEnpM+cL4OQHko8wzFp21SQ1oPJkW0Jlc2k321ZUKtYcYykcg8HQnrk+AKvPAQRgJAevkHoHjXD7m6IatuMAAlmqgMhPQSPX1gFjMBPRwBCugdKh28XQto2ETWyKtYark5lM+l3g7RVJNjoIaDJXaikf5oDsIQVR2AgSMN80kP6qTSENIS0bUaABDPVsb5UlSSVezgQ0lYMINi0wUSAWMxEVi/pNSYNIQ0h/ZKuVm0N+tV62kBlM+kDSBMppa0ln3QPNpO7ENKD4QAsY8UR6IJ0nRR8giWTnvmq/MsCsOKYNc7uLoy2I+2nuqYn8aNJG4aJYDH2vJinqBYqadvUkdYDy5FqCQlmqgMhbcUPddi00RUBAGnQ6S0R10mFEplYJi17RkjHkPi0L4zuZn3RFOCTFzN4s+CQJHRhtB2lWhLGfVdIKUnU01WeAvKBD1J5TDQeQnqksAGv+yIjQGUz6UNIjy4OwLux4gjIpNI6maSuTiKW4ZCukZadKz9sUdKUDJWEEOTFUtFI4RYg9LjiKMLsSiLtSyLti6Nwi5xUGGXhHwFvnItTeNFTODGDtthJQLZSrlIYPY4fY8cDcnYSLxrURhgnZgo7FlheHDB27CROLLh6YZTFyKuTp/yUM4MXPQ1ciIhGjD3YBUdAkwjr9RJAiUxnnzlU0lBJ22YESDBTnWeG9NDlkyY7tAd2YHe3FeMHNm0wEQCQBpyWimVSsUgmJSDNzwrJiZ9Ggpnq9Amkwmj74ii74qhxJZF2uAFI9+B0YdQkAtsEswkZzcEh+pNbgtAWSEePLY4eS0C6i9MUUc6JnURwGt9O4sQCi4E/owAAIABJREFUZOLNsyuOAhL/KUQ8YP80QHFA6HH8GPBmwI+aBgz0BDwPpFfVp5VJU25JGAoxQ9/bbPOB/iIVHrzWi4kAlc2kDyE9mKcrLAMjMAQRkEk6IS2tAZCW1JTVVxzuhPQg80kDkVocRaEyrqEJ3YyDmSA3YCSxWxxl6Rvvlvgyxq7P3cLocUCmd7KZ2CWPEPK9Vzf4JH70FNwm8WPsiqPHlkSN6bSxxVHjqOX798lOe7vCmLEWA42xB7q8UyL3+dbS+2Cnkp5UHDmtJH7W6U0Q0i+GMfAqzxkBEsxUB0J6CB6+I1aFLabplMlkIxavEb7wYCD9k/mkcUhHTiqJnFRM6dwmtDLoao62L8FFNh/vlO6U3eQY9k86ANKEFcVMKIgaV2ChLNnB3gO6OESjphQCA1cHII8e02kWId5ZyU9cvShmAk7xrjYURtvhBwlR3kfPdm9C86MtveXFIERTIKRhP4HtRIDKZtKHkB7hB/dzXV4ikQiFQiaTWVxcXFVVJRaLZTJZfX19eXl5VlZWRUXFiRMnDh8+fPr06draWolEIhKJKioqZDIZsdi5VCoViUT19fXffPONRCKRyWTnzp2rra2V4X9SqVQikYiJzMd1dTKZTIj/EY5EIuHz+WVlZWKx+NixYydOnKiqqjp79izRBoLEIpGI2CUuLZPJ6vB6nuuebfjkwXV3d/br9pjP3DnGDKBYHDmpZP2U4sgp/KhpJRtns2On5cZMz4+beSJyWuGG2cVR9uyIcenub3+5ekph3Ey8x9u+KG5SYexEbuR4zvpxvCi74vjJAGZRdpz14zjrx7HXfcRZP65o45SCuCm8mEnHwj5gR04A4I+y40aOJ94Ajoa+z422L4ibcmrj1BNh7/Gj7bmREwpjJp/e9DF3/URe5GRCTBfGTiyIty+It+dGjyuItz8S+s9059f50fanNk6t2jmXve4jXpQdsSWuzouyK4ydyI+256wfB7rK46aWbJjGWWfHWWd3cvXY/LVjiXbyouwI65PKPQ4CJR1j3wnpGac3r4Td3bYDqucUozZ9OglmqgMhbcMPfdD08+fPT5gwITU1tby8XCwWV1VViUSi/Px8T0/PkpKSDRs2eHl5nTp1qr6+XigUCgQCqVRaX19PQLS2tlaM/1VUVBCQlkqlBGu/++47qVRaW1srlUrPnTtHoJooTNQgFAq3bt3K5/OFQiGDwUhOTiYKi8VigUBQX19fW1tLXJE4QuRBIbY2HvJnbj514ljXmHRBZv/5pCndvF2QBmoVEKgwCkD6xNopJ2Nn526YfyJ+0fF4h9z4xbzoGYeCPljwR2Tf6tl5cfPyI6fmRU9lx05jx07jxE0v2DSbt2FmzvqJ7NhpJyMnHY2wI37NjZrMjp1WuHX+scipweOQL9eAX/mxU/mxU3OjJn8aNjHEDsmJmXl07cSiLXPYsdO48TP4G2dxY2eyo6azo6eCSWTRU09GTjq+fnJO7PSTsbOOR005ut6e5vz7ZX9BuPEzCDsZOYm3YebJyElUO7HO/mTkJE7c1Jz1E4q3zuVvmJsX9XFu5Exu3GxO3PT8qAnsqPGDhzQvxp6DQxp/m5lSEg8gfTa9vIZ1B45JQ1RbdwSobCZ9COlnfuRawYmEch0/fvzmzZt3796dkJDw+eefi8Xi0tJSBoNRXl6+detWBwcHJpOZnJyckpJSVlZWXl5eVla2Z8+ezMzMhISE4uLi2traU6dOsVisPXv2ZGVllZWVsVisY8eOZWRkZGVlnTp1irjRTz/9NA3/+/TTT8Vi8fHjx99///21a9ey2exDhw7t2bNHJBIxGIwTJ04cOHAgKysrLzevvr5eLBZ/8sknSUlJ+/bt+/zzz/fv328FYRupJgwVpMGsMXysF0x+zo+d90nINJr72C3O7yX6TUsNmsHesGh/8MRZf0XWOY2LW/SPnU5v7g22y9k4P2fj/D3BHyUue5Pl8y+Gx9sn4uflbJwfP/+NI9GzcjctOBY7J3bOayfi5yX7jHn3Z8hWT7tDEVM4MdMK4mceiZy5bvE7419Dti1791j8/APhk3csfTPB9e8Z/mOOrP+Yv92Rt3Ve/sYZR6OnHFo3heX/4Wand7YufS8jePre1VNZ/h8sfRM5Fj8/Z9OiVL8PElz/vt35//aHTTqxceGJjQv3h02ieby7Y+mbNI9394fZH4qcfDDCfqfLO+n+9iyfcam+H+0NHX8kaiIbF/2DVNK8GHt2nB0nluiHn1QcN/X05qCz6eWy1LsQ0taNKJsWwUPSeBLMVKcXpNswzIhh5oFnWmPY/2/vPMCiOrYHvq/n5b1/XvISNYkxicYYOyBIU9TYjYqxBAsqFjq7bKE3EWTpoAI2QFQEkb4UKUtHQHlqTPRFoxhfYmKi0aiU7eX+v3tn9+7ssksJIIvOfue7zp175szcs7i/e2bmzmBodvdw/dRD9ba0tFRVVU2fPv3zzz+3s7Nbs2bNvHnz8vLyjh07ZmJiUlJS4uPjY2JisoX4zJ8/PyIiory83NPTc/369evWrlu9erWjo2NVVdWxY8cmTpxoY2NDp9PT0tLGjx/vSnyWL1/u4OBQVVWVm5trZWW1nvhYWVmdOnWKzWa/+eaba9asSUpKcnFxsbW1LSsre+utt6hUKp1O37p1q62tbXl5eV5e3uLFi7/44ovt27evW7vOzMwMav7LloQhjb8nrf0VLGV3t0YXLhRJ45OzSEinO5n5LXp727Q/2c58beWU/9tqNvaY09wDO8yNRlOWzXx9o+FfV35AcbF67ajb/CSX+TtNXtltQHGc9ee1H1F8Vn+c7rPK+C+UhJ1GaVSrJJf5n1AoSQ5mTvNGvUOhbLIYm+xknuNqUuhucZI2b8nHf5vyGsXe8q0kpzkbpv5x0/Q/bzf4w9ZpFI9F7ya7zs/1XZTBsjzqbLR/58zPP6JsM/qn3ew3baa/ctDRwmv1B4veoxx2XxawYfomg79uM/jTdqO/7DD/Z8wuy5hdljvMXttq/Ornn1A2G/7N47MPDrlZMpe9vWA0xcHi7V0mb2ye9mf64lHH6ZZZ9Nn9iqSzmYbZTHxiOR5MM82KfLc2HCysOXCjMubnyqhnSAbXA1WRTyqjnpRFPyuJ7SiI78qP7yrov3DiujTkdxjpoYiGcU7c72nkUNmP4xfE8Xs1nh/flZvw4D/cp7J2AtKyXjn9XCAtV/+AJwc+n3/z5s2WlhbQ+zoSJ08NLp2MjIy2b9/OIT4fffTRkSNHUlJSZsyYkZeX5+fnN2XKlCNHjtTV1Xl4eJibm3M4nAkTJkRFRXE4nJycnKlTp2ZnZ6elpY0aNSouLq61tTUzM/OVV17Jyclpbm6OiIiYNGlSQ0NDWlqara1tTU1NZWWlubm5m5tbRUXF5MmTjx07VllZ6ezsvHHjxpKSkrFjx4aFhdXX158+fXrs2LEcDickJGTGjBmlpaUZGRnr1q4zMDAY3HsfUdb6tJgJzGYAZsVR+fIxMTkL7/HGX0xyx0ed/eb9PWbNu6doi/zXz7X4N+XIbou47YYf/5Pi8sXUFB+rgw5TzP9O2b/TcqfFGJvJlEwn4ywXM7f57y3+8A8Jrstn/ZFy1G7aWcb8I/TPxlMoR+wtk13nT/gD5TDj8yznOSVOs0ucZme7WlGXTpo3jpLhuXLPqolWb1GSXD7LZSyOXPn+3H9S0j1X5/svy2LNOWZvsGf56FXvUA7tND7uMids7YSjDiZ71080G0054LFhzax/W0/72xFny8TdprYm/7fZ9N/7dsw1eYPiv9F4P3W57wbDheMo++0tvVaMn/NvSrTd4jTaKp+lH676kHLSY0mWu1m/IJ3FmpXFUkE6P2hjWWpaQVpdQfL1gqPf9V3yj9xBotMDh+/mE1J4+Hbe0dunjt06kf1rUjE/urAjPq/jQK4WOZjXSUpiXicsSbmdGgJfTYQKkhZ6TmgU1zCelKtW+3Db5x3M6y6Cg3lAeIl5TxPzfztQ+Ogg58eGW7InQgLPvUMaByal13h7gArqjFaE9wjSJJnA/C9DQ8OIiAgw9Dtx4sSkpCQY0p9++mlhYWFdXd2hQ4emTZuWmJj43nvvMZnM0NDQoKCg8ePHs9ns1NTUUaNG5eXlcbncs2fPvvHGG2AYOz09/e23366qqiopKYmPj4+MjAwJCTEzM9MF6XHjxp0+fbq+vr64uPiDDz5IT093dHRcv359c3NzWVmZn5+fiYkJ2fiXL6G2LCix4piWZUF7hzQxcayQhi/4BUaCj+2YdmDj+D2rPnSY9/G0P1MS7UwP7DSa+gYl2MX8mPfsNJaRwR8pUXZz1kz7J3XBuJO7ZmY4mAR9MdvkLcp+t1UGf1JAOolhPY5COeSggPRR+ufZrlalzmbFjia5bvPdl05aMJZygrrUfc6oFRNfPcL8Itt94Sl7U+M/Uw7af3qWtSDPY042a97hnQbrPqBsm05hzH891nb6UQeTkI1TZ71FCXS0tpr8ryWT/85Y8rbvirHrZ76ybNKf3T6bPPstivOyia4rPtliMWbhB5SwTYasRe/PH0NJolpneVpHfDFj7r8ox6gLs9wtfjekC1lmOcHrCzMOnT5bXFB6La/kdt8lt/gWkh490JZX1FZQ9E126TdplbdSv/wt/jt56B0s4rYs+lstEnNLDkvst3JS4m/KNYS8FPutWinYQs9p2IKG8fibqqqH1T4Wc0sp32IxugTXkUfdlh74lp//k+R7EELLe42kEaT1AzINDQ2Ghobh4eFcLrehoWHKlCn79++HIb106dKSkpLm5uaUlJSPPvooOTl59OjRK1eutLOzs7GxsbOzS0lJSUtLGzNmTE1NTUVFRWZm5ttvv83lcpubm7Ozs0ePHt3U1BQXF7du7brdu3fTaDRDQ0NdkB47dmxJSUlTU1NpaenEiRNTU1N37dq1cePG1tZWLpe7Z88eCwsL/XDbsLRiECBNzFjG35MudJ+V526axbBMczO3n/23rUZ/2276hv38j2bgkDY+sMtgxuuUUGfTY96zj3sYT/8zJXzH/FXTX3f+9KPk3ebHneb625gZj6LE0lZNxbu7DdI9Fh1gWb9Loex3npdIXfLBHyiHGDanaVZ51Nk5rrMyGQvclk6f+95fkt0/c7F6Z+mkV5NYX6QzliY7Whr8hbLf4dN0N4tchkWe54JjzqYRm2fsnjtq7cxXV0yihGwy8LeZafQ2xXv3qgUzRs+f9Iqt6Wubjf5ia/q669IJ3usNpr1CWTvz1c2m/95h9c4uqzFhm2bhkH6bkuS+OMt7aYTNJzik3Zb+DkgT3d24lwqYJtkha/MyD6XlFx4qrYwvq+m7xJ2rRqLbA7VxpfX7S2sPlHJjyyvC6urDb94KfPTU42mnH0/i36VFAnhSWIK6pKQEd0k1hLwU1KVWCrbQcxq2oGE8GKp6uO3LA3hK6cICuol/F+bfhQV04sJ+hqU8EX2NYV19Dn9RJD0sv/VqlZKQLi8vb25unj59emxsLAxpExOT06dPX7p0KTg4eM6cOfn5+R9//PGxY8fq6uq4XO7hw4erqqoyMjLGjRsH+Hry5Ml3330XzBJPS0sbN25cfX39ypUrbWxsWlpaSkpKpk6dqgvSo0aNysnJuXjxYnZ29qRJkzIyMry9vS0sLOrr6zkczrZt2ywtLdVa/3KdqEFa1wYbPUfSMKRz6KaZjLkHdxsvepcSsGlWiv8mbxtzizcpCQ4W0XaGU/5Jcd8wMdnXKs5xhvGrlMjdC7ZafmA99R/Jrp+mUhc5ffrhpxP+FEtbPvmvlLjdRse9lhxgrXqXQolzmZtAA5DecMrdKtt9VhbVMJP1qdvSqXPf+8sJr7W+1pPNx+Ah+CnPz4LXTDR9jXLKa/VpF9MsV6OTLrOjN02JtDNNYqxiO69YMJ7i9Ol7HtZTLN7/wz7qulWzx66e9Vay15rjniv3Oy2I2mUZZGMwdxQlznH+MdbKJNrSMFvjg7stvZa9P+ctStQu05N0K99lo4nu7hX9hXQ2cxY+cYxY1TyPZZIVsjY363ByUUFcZQm75lzfJay6FIlOD1SVhVVVsLllkdzisGpO0EVuyL0bQaKnnpjAVdzhLNEiLtIuIG6SLlKokq4ehFRzkyjKkkZ6SMClejBOhZoxTPb5LlKlSIQuKhG7SEiROosxFxFGFWI+ndLEDsFlDGvHMAkml/UB1QjSwwyZpqammpoaAwMDMCv7woULpqamSUlJaWlpZmZmeXl5YBzaw8MjICBg5cqV3t7etbW19vb2Dg4Ofn5+Hh4eGzduLC0tTU1NnThxYnl5eWtra3p6+pgxY+rr67lcbkZGxqhRo+rq6rZt22Ztbb13796AgICFCxcaGhqmp6cvWLBg06ZNSUlJzs7ONjY2paWlb7/9dl5e3qVLl/Ly8iZOnJh1Jis1NXXOnDlMJtPb23v58uUI0i31vWxVCe9CQS6CDd6NVhCaqliBC0D6qKvl6okUh4XvsdYbOq+aOvN1Cv2zCaE7Zs98k7Le8jXHZaNtjP/wxVRKguOCOKeln0991X3BO15LPvjsfYrXqo+TGEuWfUTZbflXnzXjmGvGT/0HZd+2GQnUBdP+RnGcN/ag3ZQCHzOOr0Wu76KgL4xnv0GhLnr3kOuCT9+juC56L8B6gp3hnxzmvnmcviiHbl7MssxyM438YuLmGX+iLpvosnzyWoN/BaybFr7VdOE4ygH3VYG25tZT/uK5cqL7gjG2M/8ctdUwyWmOvemrLnNf91r+nsfSd+3NXjnqaur92Riz1ylO88d6L35350wKdeEbKQzLbIYp/OzSazqPji8hDvobcj1nZYauPZt9+EhJQVzlufDq8r4Lm1uGpEcPVERUVhCQLg44XxF895of/xFDyneViVxkEiDOUjEpZKaLTOIqVQlVItEqsA5cti9puKxW41SJqgGuUkVr+2IZ6AyefZmLTClSzKWbOMkwBznmJMOoEsyPLzjc2fUVhvFwPEuI+du9gBpBepghDV50dnNzO378eGVlJZfLpVKpZ8+eLSwsdHZ2rqysTExMDAkJodPp9vb2jo6O+fn5VVVVpaWl3t7eANWJiYkVFRVFRUWurq7Nzc01NTUcDsfOzg6MdnM4nK1bt9bW1nI4HAcHB1dX1+Dg4OTk5G3btsXHx8fExGzfvj0pKSkmJiY8PLyqqmrLli2FhYWNjY01NTX29vYVFRVcLtff39/e3p5GfMzNzYfZZcNXPb7/VX3Lhfqm1vqe9pPuF6SzGJan6HN8V4zdafr3TUZ/Cdg4w3XpWIf5r0fuMnZZMtp58aidc/+xxZAS9cUnJ9zmJ1OX7Nto5DLnLbrVqIAl7x7ZPTuNZRW54xM7Ewp98T+DNozbYfnHOPtpqR5WzOVjbQ0oKU4zsqgzM91mZDDMEh3N3Re+vXPWH9MYVtHbZziY/tXe5I9ei/99cLfxWe+F+Pw1mkmWi/ERu2neS0bvmv0PO9N/MZe+f5y2MHrTNMaCUWd9Vx91mee34n261Rs0i38ErxyXQZ+fTp2btN2Qavr33TMorLn/OrBt6mlPC59Vb5m9TnFf8r694Z89FvxfgvOsFPwN7/5BGszrLqbiwXSu56yMfWsyc5MOleKRdHj1ub4Lu6oUiU4P4E8wFRHcsuhKDruaE9BUFnz3WgDvEUPWRZWKXKUyIC4SKSlkJkhQJTJSaGKZhpCXqBKFKY3ivZ7CFjSM08SqqofZvgRz7VFcpDihXWQymkTiz+Md7ez4CsMEOJpFCNLD93Pe55obGhpaW1ubmpouXrzY3NwM1vOqqakBi4LV19dfvHixoaGhqqqqtrYWLDYCBpvBYiaXLl0Cq4zV1tbW1dVVVVU1NTXV1dW1tLSABUzAZLSWlpba2tpLly6RC4c1NDQ0NzeDt7SB2crKSmAErFnW0NBQU1NTW1sLHgjAtHAGg7Fhw4Y+39yLptgTpKH9pNXDROWWVuTUbpAgFjnJo5tku8/KdjfLZVmeoc0+y7LI956X5jTzNM3kNG1Wnhf+5lKmu3Ee07KYYZHrNvsM1SqbtewU7dM0B/NC9zlFdNOSgLmFgRZZnsYZTMNs79mnGQanWYb5QXMyPWdnMU1KvC3KvMxyXKZlOk/L8TJLd591kjoznWZw2m1mrodpquM0fOcrD/NMN4NChnGOy4xsFwNiuy3zs1SzMzRcstxMsqmzc2mzz7gYZlONs6nGGY6G2e5mZ6lmhR7zTjsZ57jPTXc0OUu1yKVbZTEsT9BN/VaPWTOFcsJn2WmGxRlPy4yAJWksq/5CGkyAJyGdHrbmdF5S0rm8OG5hZHVR3yWiioNEpwe4xRHc0khucTQ3j12dF9hUvPfulwH8X1jSDrpEQBdLgLiLxKSQmSDBFElIYQklGkJeYooUpjSK93oKW9AwzhKqqh5O+yIZXSUYXaRFaCKMJpbRxXiDA7twSF9VjEkjSOs9I8DinWC9T3KFr9bWVgDI8vLyxsZGAM66ujqwoBgAKrk0GFi2s5n41NfXg/zGxkaAarCK54ULF1pbW1taWmpqaurq6gDUyQTIrKqqgtcZBU8AoEk5OTlz5szx9fWl0+krV66MiorSe78OVQMhSNdfaKhtPF/f0lB+uTyVE7szszdId9v/EV/FGmwMVeplgS+oSTfMcZt+1mVqIcOo2Gt2IcOIQzcoZuLLbZ6xn1xGn53nbJDtbFzAmp/tPq/EZ8k5pnmVt1m2+7Rs1sw0p4+yGNNzWQZ5HjPzvWdl0KZwfIyz3acVM40LqTNLmca5rtM5TMNzfma5LIMCT6M8xsxc+vQMt6m5TONCD2N8S0264RmnaTluM0u9LEq9LAqohgVUwzIvi1xXfKHvPOdphdTpxXSDYnej6oC5pV4Wue6zslyNSn3mZVONM50Mcmlm+XSLHLp5FmuO7/J/r55IyfBdkMGYzQlckO5plRuwJIfev0gahnS2p8kp9pr0vKSEspyYqsLI6n5IRFUBEt0eUDzBRFblhdUoIc17yJJ2MUUipkhGiIQuFJMCUxNOdycoyIF1BpLWb/vAUcqjEGNqiEhBaJZQEqQGadTdPVS/1YNpl1xnGwBb6xGuD1aA8/uShssCrpO1ay0OGA9e/XJ2dt69ezebzeZyuVqVX4ZMBaTrWlrrYUinKSBN7ietXMxEY+1uZTc4tMkEsZMVvLUlWLMa3ncZjM6CsspNoPHtIImcWbnuhtl0XHLdwXbRCvAXMowLGcYcukKIGViGRSzjIpZxPtOokGFQyDCA6811x9cAz6UakN0AwAK80Vae+0wgyrrwV8jy6Ca57rNyaXi0nUubnUM3jVn/TvT6sVkM8yz67Cz67DN0M3wlE3yMGbrxXtP4Ztj4RmGFNJOzXiYn2GtPFiQcKAeQVoukw2uKehB2Nd6Ri0SXB0CQza7OC6ktCGysCL1zw6+rgy4VMyRyhhjDRSKHIkUZGVJrJKgiqVbRUFOdCqXuWgWK2lXKIrFW41SRFNZRS2s1LtSpP1j2Vb5S9kOA3gKaREQXi3BIdwqOdXRdU3R39zIaDS6jMelhhgsMTl1puImwDpw/kDRsE06DiLylpaWurq65ubmurq62tvZlXnlGDdJg2xI8kgaQhvaT7hHSKgDjhMY3XYZhSW66TCQUFAQs1HrEAakU5UMA3sHOcZ+NixLSHLpxofss/MgwIkQLpHH0uuMBvaKFDON8Bh5kk5LrPpMUuJ1kAwCws1wNslyNALCz3WeDq/0jtPssYjNswyIqfi9nPU37CGl2TZGGhFVzkOjyALsaj6TZ1ZywmoKQWs6eBm5o27c+PD6dJDTBaRV4RFogTcUJKnYTS93EiqFrkAZHcBUcfx9ER5Z99Q58HMxAaBIRTaKAdMoz/jUME/YJ0LgSgvRA6DYIZWEo6krD1cA6cP5QpEGnN6gR7mx/aTndG6TBftIqquF4g4CtpCwR7Crg162IFv2eUE0CMhePTRXj3ypIQ6hWrHqmgDSOapK+eQw8EFfGx4pYPL//kM7FO/BNOB7mHA/LPHfTbPfZvxvSoAeegLQpBOmzRHe3zkhag9DsmiJdfEL5YUQHA4L04D4E9AxppkgS1ClKeSa8jiA9FMQaIpswdHWl4aphHTh/iNIkp8GWmg0NDZcuXRqiuvTf7IiGNAimlZH0kEAaRNJnXGaecTEcYCQNIE3s0YkgPVSdASiSdie6AQaxJwBBWv9/xvvdQhi6IzHd7xseyQV6g7QyhlaLhhWBKdR9DUfSeBG1cV+1sj3F0Mq4XKXTcyQNur5hSOczjUiBI34QQyuOsA7U9Q3rwy2BI3s43d/ubl2Qjq4qDK8uARJZVRJZVQIPSINIGs4Z6ohZ11ivrnzd7SkOq9YqQ0XoXiJpiRwfllaJlCHBRR1C+JxtmgQX+F0pOA2ugqNaWdWMaHh2ND7BSkOU9rW/h63Tfjc7GmbJU6V9tRe6yFuA7fclTZpVT+B93XSxiIikBSnP+NfRmPQIAsFIBDPc5hHk6oE3VSekY3TuJ60NZgjSvc8g0wHpnOiqIgRp3aTvH9F7iqRVeJYDPCNIDwDSEgTpgf/8DpsFGHgjMT1sjhuOihGkVcPYOiJ+OHqG04MUSSNI9w/DPeMcQbpfPQEI0sPxo6sHdY5EMMNt1gMXPr8mqEFa9Z50T69g6V8kTU7wVvV15zON4HbqcXf3SwhpfFXtIRIE6ecIaQFdImCKREGdgtRn/G/0auIYPM9cJlMsJ87j8W7dunXhwgWwgEZ9fT1IvLTThp8fZ1BNA/CAAtL4sqDwe9Kai5nAwIPTWqJJ4j1ptXyQQzdUy+z1reJeFFSzvgfVbA+91gOtUVd3dySXw64q1indX4nuQXk4LqnjVusgdDG8H4bOOx2kxkdW42+Zs2sLQ+uKghur99255ccXMGSY+pCqapy4+9qccA4Yyu0WceIjsuqiGMlWaHZbTxS2CVujSkVUqQjOUUsDO8QYuTIf1KteHalEACbGAAAgAElEQVTQrd7u7YfXDNd5C5Ad+HU1VRofuVdCuouX+qwLQXoAP8OoKPKAbg9AkO62dje04hgMZjitBZA9QHowOT1QZGpp+RA/FiBIA1SPfEhr4Jk8hcAJQU4Nz92gO6IhjXNaLApEkNb9A4uuIA8M1AMI0n2m9UAfCxCkEaQVwCYDX4kEQRrumR6SNOruHiglUPlh9QCCNIL0AEPbl6+7mwydNRIoku4rZId8xTG4IQjSw4oYVPlAPdATpBlz4deFobTqPWldhFOsBeaOb8uoS2dg+QONawdW+++5qR4jaY3dJ6EharCKFr65k0IGyNRei5MV9ZBQMwKNmqu/GF0KD0WTafVdJqE71csx6e6xr/o4Lszp/kIaLgunu9lRRN6wDpzupt+9sx2O3eF9sokRcWU0T9qEDEokqnFo/EVwckcsGb6rmHp3N7FVJYxHnWkE6YH+cKPyL5MHmpoaWlrqmy40dBuTRpAe1CcMBGlldzf8RPKcIO0uw2gS1WQxeBKZljHjHiE3CJAW49swE0JykUyoAbLbIwKpRia06ffYfnjiGMBzN0irTWRDkH6ZcIDuVR89oIJ0SyO+VWVT47n/VKQWqG9VCU8Wg9NDEo+Ss8EHc6LZ74l9B/fueoQ0ySoAMPK0WLHO1wCiTDi6VYuAddiEA2g1fShihlcfG0h3N9w2kFarUUcLe9bROrsbQFqJRnWwQVEmDGzFvOhuU716NyKRwHZoYqybyHAFuF443R2xam0AeIZuQZc+nA/Z7y+kVe1UNwgiaZpEMXHshl6tOAbH8Ki7Wx+5g9rUDw/gkMY7vRvqWxprG5rqmxrL+wjpwWWYyhqCNAwngEY4p59pGIRa8QZTWSOtpj8YkCb6ulWPIHDb9ALSSr5SJTJXKb6sJh3fghpeKxRfy5PkFgAeeapKKHlGhKF4F7E6pwlI6+I0UZYuInSkclepoiWgJ0BVBdkMZV3qTwbKKsTEGqXKtU5BcZLToFeg50harUayLokEhnTa067hhzQJY6lEiiDdDwQgVX33QFNjYwve491Q30RA+nxjeWtFmiKSVi5tDa/FraIpMeSsMeoM4mxYRz0NxpKhuLbnV7ZgYMPpQe2IVm8h1LZBraUvkTRgJIzGgaMLBiFsmeRxJLeYFDJTrSVqeC5gVxdE1nLY1QVhVfns6gIyqg7jFoZxC1XLjCsXJCcXPQ2vxlcmV6xPTlxl15Tsq1UIu6aEXaNYwxwuAre5L2ldkTS5eDWRUK2brQYhJfmoEomrFIexl0Diw5d4CnBOg0xXGf5mM12MR7SuMpELcUrQDtdXrCWiBC1TJGMJZUzlst7qqMZIrJJdymSEzRLiplwwzAGTu2ByFxk+NgzskA0GnfYa3CUBDB4m6GIJU4QLaD/5hAESTJGIKcJvhHhXW3MbSmXHvuZDicIyMSZNRNKCtKf84Ye0SCQCnBaJRAjS+s4d1L5+eACHNM7pxvqmxvq6pkYA6fy4nRks1X7SCNIDB7kOSJ+N5BaQ7FFDIxExDxzSpHGNBMljktAgQearElX4Js1KKQjn5rMr8yKqCiKrC8O5+eHcQuUlTmR1UWzduX3l+SHnckgek4noqhJS8H1EqnEq6xmkFWO9VCkOYJpE5CUQ+fBFnkIcZiAThrSLGqQVZUmIAmYTjMTDWSWS4ahakamCNDGriyaRsIQSd5HYSS5xwuSOMjFNhu8FwgRGlE8S2iFNzgUj1Ija8cbTxXj7AYyJ7UMUi2+Dpw2wELfGXtE9QJqwg78kTZNIArv0A9ICgaCtre3UqVOFhYUI0v1AAFLVdw80NSgh3Xgeh3TD+fILlWlKSIPNoWeqQRqKaMEsbhhg8Ii1tqhaRyQN2dRVl878QY134XsZ3HRPkFaGqrogrSsa1uCurlMVbpVTxCO4qj5nrVfJTILcnEguJ5JboJCqvFV7mC4p+/eV4k8YsATmn17k6RqYfzqisjC6qgiWGG6RUkpiuLhocHqoI2nQb6zsPVZF0t0mTwloElyoUkUCX/xSjAudyAdXwdFVJnCVKTSpUjzhIsdzyG5kVxkOe1cp1EkuhjenUgWpioBYiofmrjJFpG4v6nLFxDb/u2v3408EaHF9RR872fOskSAVFLtUiVgiAUuEtx/cFNFmolUyvLXKBuPEJUWJZ0WQDbsI3JE+QvqHH34ICAjYtGmTnZ0dgrS+cwe1rx8e6Auk1baehGGJIN13kA8LpEnWRkB92iBijq4s7rNwois50ZUFuHDzoisLlnm7UVMORJTlRpbnxVYWkBJScGaFt7t/1onQwqy4yiINia8swqWiJL6iJK5SjdOA0EPa3U1CWqO7GyYQASeCzVIeTcqjSzpZ4k5PUaePoNOPjx+9hPipl1CRZolxBS8hLixxJ5PQZ4p5pNAlChDSJQJPIR6UA/ESiFhEVzNLhCcIwVEKaMoS8byEuFC7njI6ni6tqFpaXuMlwEHrKQSiKM4UKWJ90rKPQOAlwHWYYgFLxPPj8wK7eIE8vP14C8U8TxEuLBHeSLqExxTj+sD4yIb0nTt3EhISQkJCtm3bhiDdDwQgVX33QN+6u+FoFYp6+wZp+J1mFEmb5LubnvU0PcFee7Ig4UD52ejKAhilcIzLrtKyFLaucBnka5iK5BbvKTy7bl/AUh/G53t8FzJct8Www0ryGMmHtgQHfM5ibA708z+RGnjyuLUHw8ph52pPht+p5P3lHJs9PlvCgqz9mItojtuiQzaxgz7zoS31cPbPOh5ecnauy05ackJ4cc72yL2LaI7zXXat8HDzOZW85+yphVT74Ox0ZmrS+iDvVd70pQyXRTRHrxNHo4pyfE8cW0pzMt2+aUtooMWOLcG5p2O4RWAIGR/J1jaGjXeJ93OiXG9j0lBQS3QIqw/iihSBspTnhYmcHv34WTV3buaZuekZhkePzc3LZfz4fcBvj3Z++aVB4uHJ8QeMzpz2evizw1dfWZ7NYj287/v00YriEvPMTC/eM8eHP605f37DlUtUGc9R9MxXyGf++LN1SY3B/mTzo6dt61vp935eVt+4kFvj39Hl9dsTq7Iyq7Iy38dPNp1vNjqSMj4iZlZy2u5r1zdU11HWbPn7DhfrpmbH+z+aZWdPiDtgkHx8XVMTs/23Ld/+d3FR0cKzOTMSE42OHllZVPR5WanhkaRl54rt790OlYt2X7ry6YmMmXEHZ6ed2P2/Wz6dvy3OKVh2tmD6sZTNly7tvnZ9VvLJ6XGHDI6d2HzrBo3fSRV0grefyW5wZVQNgn6iz5xYKA2sCapH3d1CofDXX3/NyMiwtbWFIS2Xy8Ep2mBD32GE2qfdA/DEMdWYdEGs2n7SavEigjT8yNLntI5IOie6kqNBVhhLcEd3X8anYVMgYvbNTn9/1dKxny1a7efxKc152sa1LonxOyL3Ga1dM3fzpm0B/j5HDi3ctXOxw24bX2/D9Z+vdHcJTj/+0fJFk1cv2+DnaeVg994iq8VUx/WBHgab1tjs8QovyBw9z2xLaKBHSpKx7YbPWG5L3Rxnrl/tHBfhdjDm3fkWXslJ63yYb5rPWuNF3xjk88mqpauYbrFFuQYbrI1s1i6jOs23t6OMH+t+eH9cJd4lruC0vkCa4LSU54OJ7b6/MSEq8pXdjqvzC2clHXqNxbKtqaV+eXUKO3JicKjpgaQP9uy1SEndVdvwGoNpd7l1x6XWMXSPV51cqT/c2fT1lbEh+9bV1THlnSxM5PH08apy7hs0r7mH0j4OiRrPjt7Y0DTtaPK7EVF7f3vqde+n8fHx74SHO1y6Yhx9cEZw5ILkk5MjYqzLKlbmFf51zZYPXL22t7YaZqSPDt5rcjTl46iYsfvC1jTVbbt66e9u1Mkh+1ZmnBnDoP/TwWFF+qmFKcljfDzX1Fe6fnt9WnjEjD3sJYePf7QnxDAtxeNO23sM779u3jn5wMHdX381YV/Ex4H7VqadGb83fFZ+/raff3QXdNGEXdpCagWk8VlmxMMN0NEvSPP5/OTkZI3ubgRp7b/8KHfEeABBeqimc6s92bjPGi5I7y04O27FooVujrFlRcFn0j9YuvAzFm1ryJ4PPp2/K3Tv/sL8Hfv2Wm7dQo2PPVhSZLsn4OPlizyPJExasXix066QjBNOseGjLGdv2xcUX5q30HnHp052QenJb1kYbwn2c4oNH2NlZrvXP6Yg2yf5UFhWOiMxfozl7KCTKeu9me9ame85lXqgpGCx0y6jDWt8kg/9Y+YURmJ8YlkRIzGe8s5bMKRxTusFpPHpVHgwLeXRsI5d929NjAx/i8kM/PU+83+3P9q71zz2gENp5Z832vrcvLn/8W878orfsN21u7J6anT0gqyMLXU1rzu6GERGb2lp/Ly+5jUGk9V220PezsJ49t+3TTl8+N3Qfexn7Y7f3ZpfVvzF+UaT5NQJkdHsR795tbXNTEqaFBvr0NQy0StgVXJ68O3vHC5dsvv6ys6rlycFhqxMPc24fPWjiAjzUyeCHv5CvXnzrcCgybH7N1dUj/H0WXT8VMz9hwbRMW+6012bWwKuf/OOp9eyjIw1ObmjqfStnNKjj55uyMmfEBC0q6zyPUfaeO+Anbeue7Y/fMXVbXpohM/V/7p+dW3dV1/ufvzQpb3dSy4jIQ2mhsFT4ZSTziR6B2kMwzo6OtLT03fu3AlH0mQaRdIjhkqooWoegCGNvyet/RUsOF5EkTTsjT6nhwXS0ZXFQVnpU9eutgnyiyrIjSsunLR86WoGzTEyfObn1rT9cQdLihY57DbdbOObcjThXLHHocQPFlrZ7vH7ePmidV6MmIJs35TDE5YscI4JP8It+YzmONduU+CJo6PMjbcF+wekHZu/a5uxzVrLbZvWMGmhmScZifEfLprnf/zopgDvqauXs8+ePlxZ+rmH+/jF812i2G+ZGAafSInj5Ebnn6VMGMc8fJCMpPUJ0jin8T5q8WOHh3c+iYp4P9Df67d7bj9+O50dNs3Lf33KScqs2Z9EsceHh76x2+FvNpu/KOYsTD9hFBtjV1b2hoOjdUaW0cGDVuknx3h7R3Q8oYuf2Hfd33Tt0kcH4y3STwf/9tif/9Sf/9Tr+7sfR0WNCwuLePLI527bhKjwiZHhgXfarNPPTPQNfM/Pz/L0Sfvb1xxufPXRvn0rTqQzWlo/2rt3RUlhwOOfg58+mhgXO4UdubGwZGJI2Pri0rjfnhonJH0SHkm9dIV9794oBnPx8RMLDh+jrNvwrofH5JCQD7y9/7rF1ibz7GSWn8XBRNqTex6iRysK88cHBo3zD/gkJt7mwn88nrV78oXuAj4AMHhBi9ygmkS1nr6ChWFYe3t71pmsbdu2CYVCks1kQgPS5GbSaD9pNSKgE73zQL8XM9EIENFpHz3QN0iXRnBL1bu7OcSSXqrBafiqrjTZ6Y1DOj1t6urPVtGpcZz8yJyzM1avWu7suH3vntkbv6An7D9cVbHC3c3U9gvvlEOxRbmsowkfLpnvHBfx8cola7zosUW5HscSp6xZ6p4YE19asIzqNM/eNjjz+DvzzLeH7YkqzA7OOLF5j+9yd+fJq5fZBHq7H4x/zWhmwPGUNUz6xMUL2ZmnU6u5m3x9DD9f5Rix702jmfsyTiaVF+8vzqe88U/m4YPRVfjez5HVyh7vGvxUY3xa1z3qyo+o4rCrOWE1BSG1nD0N3NC2b314fJpUTpdK+y40mdBR9mTL99/MiI2ftC8sSPR09/ffGEbFzPIPXXv0JMXYzDTlmPnZdLOsU/OKcmjf37Iu5rxhu2tTSoZlVPyWgqLRTrQlyScMDiTs5T1jytudBQ83f31pQlSk0cHE8F9/Del8Gvj0Ae3m9YkxURNiIqJ4zxyvXRkfHT4+kh315FHA7dsbSkvNU5PfCvA1TE22bWqcFBNldTyV1tL84Z7ABTkZe367H9bx25iQoEn7wnZUVY/x87U+Vxzx5JFZWsoHbDbt+nX/u3df9/Q0O5a89MzZVxwcP2GzLQ4fXnji5KLT6awrX37k6Ts7MdHt6T0frN3n/r0dDY3mySnj94ZNCo11vfqt97MOlkRMk4npUqmHCBd4LRflW2T4cmn6uJjJs2fP0tLSdu/ejWGYWCwm8QwSCNJ6Rx/UoD55QG1ZUGLFsV6WBe0jk5CahgeGC9Jh2ZkTFy+02r51X0a679HDExcv3OjjvTMsxNx2E/Vg/IFzxbZ7g2auX+26PzqpstR2r//UNZ85x0XMXL96S7BfUmWpT+rhd+aZ0pNi44rzVzJcP3Wy25ORMsbKzCbQ2zvl0O7IfSFZp9g5Gcab1xvZrHXdHzvGwszzcNJ6b4/p1quCTxxPKCna5Osza50140DsazOnbg30jSrMto8Oo4wd7X54f2R1EZugsmJYWo8gLXbDeLY/fDs1Zv/4vWE+wqc7790yOZhkGR7vUl73t2273K9+te/Zkx3fXlvayPXmPd7c3PjmFvvZvmGrz+RsLC3/i822CT7By0tKfEUd9sJHTIznfv+eSXLqOL9gvxu3aDe+sco9s6mpbsqhg2/tDYzoeLLj8oW/ezHeYe91vf6VDbfC4+bNfb88mHX48NuBQZtrat8PDbVMS6V//dX7IUEzDx0I/uUHxs1r/+fJNEpM2FhZ8R47dFFBHrv9qUHKsfejIljffRf04OH/+foZp6WtOlfylrfP5rLKhKcd7le/sqmrDbx3712Wz5zjabT2X3b/9sOc/Fy3a/+Nb+/aeK56jLufQ+OXvu2ddBHfTS52k0lZ4hEF6bq6OjqdvmrVqilTpvj6+qalpWksPYYg3SciICW98wCCtF6NSQ9OJE1GmZHcYt8TKVNWrZhuverT3TuNNqw13Wzjn5q8O5I97fPVO6PYMSWFQZmn5uzearRp3QKnnZOsl631Y4Vkp3+wbME6f8+YknxWcuLHqxdTk2IOVhZ/6rLLfMfG0JxTo+eZ7YzaxzyaMNd+26zN6y132U5du3JLaCAt6cAoSzPf48nrfT2NbNazz2YmlpWs82LNXLsq6GSK6eYNButWWznYLaU5UT4cS02KC68p2lerCKYVMbReRNJ4KMnE5Nt++v7j/Qlj94V7CTu3/3Br6oGEaewYj2s3pkbFj/UKmBwa+X5omNmZTC/ek63Xr77N8H5lmwPtuzu2X1766y6nP+10pj/42V3cYSd67I7xfXgd62sbPtzDftvLf5S3/6T98Q43r88tyKG4Ok4/nDD9UBLF0f6d2AjbSxemHNj/jn/QRHbUW15+pkdSfL69M5EdRdm1a00N1yr3zIehe6eywyfvC5sev39zS9OGC42jw0PX1dWFtbdPTDj4XnSU5/f3gh8/edU/YHJqCuve97OTjr7N8J68N+Id30CL7CzPn378F9PTNDWN9uyh/eP7BqfTX/cPej88+u2gsGnxh5y+vuHZ2UmXCV0xsSsmZkhwTsNLpuh1JH3lypXU1NTExMTDhw+npKSUlJTIZDJy1hiGYZ2dnTdv3mxpaaknPqi7W+9ghBqk3QNqkO7LBhsaASI67aMHnmckrQbp9OOTV68wtd24NWSPtQfDPXF/FCcvID1t8749wdkZ+6vKYsqLqMcO2kYEr93jvTVqL7soO6qsYHvMPo+TR2MrOHty0rdFBwfnndpfXeqcFGsXGxpScMZmn79vRuqenPTdByJs9vkv96JtjdqLvx6de2bDHj+/02l7czIdYiPD87MPlJcEpKc5xYZH5Gd5HEvctNdvwx4f+pGDlPff8Uw9pK+QltJkYhomofI6rBtbNl/+ykPMp3c9s66ptz1/kd0lsLt0dVVh+fwTZ5dzynZ8/V8PQZenoGtL839Wnqti/fYb48lv1jX1axubWfwOmpxPxyRUGS9IJvH6+eH62vNzTmcv4hRv+/Kqf+cT2sOfVtRWWnFyV9VWr26ss/5Pk0/74+1fXl1cWDz7ZPqKkjKX/97a++vTjQ1Nc3LzVrU0uP7wnXV52cKMzJV5hY5Xv/J6/HDnnZsrGuvoP98P6urceu3rLV9fY/7yILCja0VDg3XrxRCB0PPOvc2VDUvPFM45nb3l62veT5+uqa5fd77FSyqgCdp3tn1nWVA89Xj6vMJSpxt3/J90MHidTLkUj6TlapDGR6bhVVP0sLtbo3O7+ymCtHYEoFx994AK0hca8F2wWhrOXS5P5cTuzNSxVWUfmYTUNDzQI6TxAJoUErHEe9L9G5MmR6NBIpJb7H82ffqm9Wv3+MZWFMdV4quIAAErmYDXtIgFxcCyYjqP+LtS+LpjQFTLfSst4Dnw6iixFcWkxJVzIopz1gV6bY/cG1Ne6Hoo7q9TJgZmHH/O3d0MCb64pobQJXItIpVSJRKGROwrwIUhEbMkYn++OIiHH0Gmj1DsJRJ7iBVXfQWKS3A+UyZhSXAdX4HYjyfy6xR6dfE9BHymkO9JoJ0l7WLIuhhSPkvC9xERIhR6iUjBq/ARCn2EQi8xftVf2BUg6Arg8/0F+KmXmA+UPcRCQvC6vEQK8RHiTQogBDTbR4i3xEuEdxXQZPhNAWUfIa7mzxfjC6DKJGDwHkTSTOWa4eRmIcSu0or9pMEuWHqxwUZ3KsM5crm8o6Pjxo0bzc3NdcQHRdL6zibUPsID+P5X9S0X6pta6/u6n7QGe9BpHz0wXJD2zjoxY7vNUh/GvuLcGC60eja0RCi5+HZfE3BZ9TTMbJCOrizeX3sutqrYOshzwtrl0zevnbxu5RLn3XvPntJfSEvkNBk+0YwlJrp8iUlnYCIVS4xjni6V0mQqoUvxTA+R1EuIH8FVADkvIZ7pQxw9RKQ1HJAMqdBNLnTFcAHIZEnEdCk+aQsW4qkC12dJhAypQohTwogEf0rQKAUeRMCgMmg2qJpsvJtM6ipXtZ9BPEl4iUiDikcZlhhfMJxcWpzAM76pF56j3GDDn8dLfaYHu2DBSO6eRpBGyBuhHugJ0kzL7gtx59Gf0whuH8k3gtR6hHSxMgIe5DHpCG5xVE3pjqRYp5TEuNryaOUmVJFVJWpLmykXDye3tOoloXsVMOWNkHeEJ9hl+XF153xzTm6O3rs+1G9LWFDQyZSoopznDGmYfL2maVI5TSp3k+FHfHK4RJEAp+SRLpEz1IXMYYnlLLHcQ4QLSCtzcFTTZHivMohoiaMKzAyJmj5RCi+ihLECyWSXALgX/KGBaCo4usnwNnsJ5b58XLyE+KmbTKtI3fAHDrwxBOxVTwn44wi5zSXY9RIwG88Ea5uLAKS/0dv9pAGwEaRHKKJQsyFI1yu7u8sV3d0I0n1+B7ovzwrDAml2lQKWoWX57Ap8aTOwrQW53KZyRTPQqd73o+qVMKUFPAfuqIfT4dzCfeX5EVWcfeX5oSXZEaW5caUF8ZX4lDH9nN2Nh8JKSJOcJglHshD0k5OQJkGuQVlSAeSDoBaHNIFG8nEBhOaA8TDUlWm1CB6UAjG9KqxXhzRNij8f+Ahw8RDhDxmuclzIOwJPIW5ES1wxfBxaiWrVEwP5ejT+2hUZVSshTZWK/Pi8lPaubzCMh2FyDJN1j2K75VC65Qx5BoI0ot0I9YAC0nUtrfUwpNPwMWmmZZ5yP2k40RcgIZ3uHugbpIm4E4pTYQT2ZVlQGI0gHcYtIgW+2t2yMkcXqrWDWVlK86paXUQbwBMDGNUmVwMFkNZ4NxpefQy205e0rvekSbLiCfWeahKTaglirBqUAjAmLWgZw5ZovodNhrkkR0msgkuArIoau42Lw1wn04p61TvD1doMXQLRv/JxQQ3woCcfFFS6At8NkxAQT2tCGszxho9gTy0C0oKUZ/zrCNIjlAGo2XruATVI19c3Nja2NJRfLgeQVu0njSDdHbr9zdEB6UHeYKM7xkhCh3GL4Ku64EqsnaKV05oY1m1BM6oGbQC1g2Fv8MIVWxlJ6y2ktfO4G1NxNQUgyR5jrQkV/JT6RI5Wgz1kQjBWswPnw8XhfC1pRf858dzQR0jji6fiG2xLJX58BaS7UCSt5z/3qHkj0QO9QVqxn7QapKFlQfsLqpdZvydIV3EUM7aISVg9oxS+2pe0LkjrLKtrfBqK73WW1aGjD5AmO6vxzl4okoZGhWGsqtMUBl73tAp7hAWZkK5V8BlhsEBVdLfZc46qRqm6TdI+ZFxNWZc+OQ4NLEDFoX2m1df0RpAeiT/5qM0jzQN9g7QhgvTAHy8QpAHahyuSJiGt0d2tA9IktAhc9QmZBN604hlkqhG6P/a7167GXRLMGgkItP3Q7xOk8eXNpQjSI+3nHrV3JHqgN0gr8UyfRc70zkeR9O+aUDYwSJeGVSukv1GsvunD4819Sfe3/b2MSRMxNNxFDEfVcH7/0zogrcZmXeDsaz7cWpDufzt7qkvDPt4BTmxMqTyKlNtLI0iPxN971OYR6AGdkI5R20+aJDT+ChaCNIK0jm7tvgC1L2CGdfpiE9ZBkB4ItjUgjZ/2CGmqRDUmjWZ3j0ACoCbrvQcQpAfej91HCyiSBiiFAdyXNAzgvqQRpJ8PpIn3pEVUicRfIEx5xkevYOn9jz1q4Mj0gBqkFcuCkrO7oVewUHf374qeYX4jSL9ckFbr5e420Ks2SNxT/7MGcbtHuhoKAzztbl9XJE1COoAvTFVCuo+vO6P3pEcmLlCrh8MDCkjjy4LC70kTa3ejxUwGDGatkC6km2V7m52MWHeqMDGhMju6skC1GKfO2d0vzph0X6LhgejoiqRhesEookpk3URCVevjlcCgokrwq2oiFVGlqsFa5aitopSapqIu2D5eEH7/uHsa1A7bgdsDpxWLjYglkBERMSUbzoHSxOIkavaJe6FCR9g+lMZfwcKnj0kkAXxhypOu/2JYVx8RjWEI0sPxY4/qHJkegCDdbe1uBGkE6QGMPQ8EtAMpqx+QVnEdhqvyaeAFgLSEfBYhIc1HkB6ZFECt1msPIEjDwe6QpsnubhRJD4TBvZZFkIbCaInyzWYoeobj7N8fSccmCXMAABP9SURBVCss0ySSIIEo5Qm+LCiCtF7/1qPGjVAPNDU2ttQ3KXfBqm48X6vaqhJF0iiSfkEjadVi1zKpMrrV6PRWhcJQHy+eqR4ZE6daurtVxSF9uApSYfC6u9U3wFCiWnd3t3IhbnyjaPK+oI5u0OmtcfvKUxG5C9Yevug4gvQIBQBqtv57QAnpRmKrSiWkK5IVa3fTTfK6yZCGmy+wcRRJ9xoED4pCD5E0g9jVkdhLSjVXSx3SGFWCgRySRsp+XcWoMzxeC6fV1UgGS/piXxnvAqBqHoFlUJerDB//hsAvwRGrFOVWksTmkoqIuRuklWwmBrDxfSdBcWDTVSaCRaMusl58HJ3YqpIuFe8RCI4/6UCRtP7/2qMWjkgPQJCuvtDIbWyqbmksuQwgzZjbndB5dJMXmKNDemsI0oPC4F6NaIU0sbUUvtUjEHgSWV8gCgMYBjOchnWUgAeRNxxAa38I6BekcU6Tga9kaCGtURdZLwlphkQFaQEakx6REECN1m8PaEC66Xz1xYaSK+XJRTE7MxGkh7e7m1hDm9juQm1nCzVKwets6+qahnX6ku6vHT3TR5BWn+M9oEi6Z0gzxQIS0jfRftL6/VOPWjdyPYBjuqmhqamxvqmxVgHpstSi6N1ZjLn57iY6ZNaQBp0vpnG6YaG7YRFtViF9do6nRTp7w0lO4oEeXsFSQRrsSaVAtQrSGsTtLyw1ipOn/bWjZ/oA0uzqgpBaTmAjd++d2948Pr5vo1QRSSt3pFD0eMNRr6LfWPn+VfcAVz1c1nztSl0fn6ulZpyMenXbV7eg6vdW1isAK2YrT0XAvmL4Ge7HVuvrVtlRDlQT88ggfWU7ib50fFFuUjTvEaqaqF0mxWd3P8W7u4lIWt6XcBq9gjVygYFa/rw90HC+qe58S20TLnVNTY3na1vrS67gkHbIdp9XSDPVkHx3Ux3Y1oVzLaPaoBddlx2tfexEN7v2KkaEfr77rCLarGKqYRHNkEM3LmTOydy36WTh4XhubiS3gE0CUkdC9/aRqj0ldRlRK1tTEKYUdnUBJByyuJp+NXgywGtRKoBS5KmqAVDQ/7z1I6oKSGFX41uKRXILwqqLAxqrg76748EXu8owYhNljS0oxHSZkAbGVrUdmWKBhigGYrUp0yXqyiIRU6QcuO1Vn1Bm6jqKBcp6eXQJEDJHQBfjFSlFwhRJFGlF43lMMU/tLlTKIkIZ18cfDhSNJKtQJNTKKh1CF4tcJZiTFHOQYV5C6bF2fMUxIc5nGSG9kBpB+nn/0KP6Rq4HGs431jY3cVtauM2t1c0tjefrW+vPXS47yYl20grpQpoaKQtpJr2KLhjrKvgi6ZMPEPnuJkVUEzyMdjcsZBgXMq2yQrecKjh8oDK7L5BmV6vgSlIWT1QrGKkkqIqdcA6pRpaF8KwJXbbSJgxdyJre6ZN4BolILie6khNbWcCuKvY7Xx1497aHQOimgDSInnFUK8anpUIlnBTYU2OSGs8IECoppaZGZg5IH/C1+xGuFxC3Z+4Olr6qLpZIoCE0icRJitnLcWEJZUc7hNdRd/fIxQBquT57oOF8Y10Tzunq5tbaJhLS6QUxLpmMedp4OavQXSVFNDxA7FXgIiDdc5EXSZ/sus+jm+QwCGGaZXt+enrfltMFiYkVWdHcPNWKY+TG0ngCjg7hqDePXQ0EzoSWLVMzwunGY0XxiKo8pagqiqjSGdbD7YHTEL/VHhFgHTg9BPp5kVUKia4siCvn7McFd0jA+YrA/93w5ncQfd1SllhOiJQlVgg+01vHfslEfvfXi+Gu4+7pAehDnc+KQWWQA3dcwxG5WrN11DsQfaisMkwn43V85pqDDNslJyJpPnbsmfQ6seKYvC9xNFpxTJ+RgNqmjx44X4/H04ru7vqL9eWt5WdyY+gnWEszGfO6SxZjLinZ9Ll9EVKfTPRcilQjEyNXP5MxF0g6a246ax4uHovSvVacCNuVkX/4aFnW/vK82AqOFqksiFVKdGWBSrh50aRA+VosEGZVBSsLVAW5ebGVsMB14ZFod1E2BpTSL/24ijwg+8sLkko5h0o4CWV5sZUFextL9935KqTjUQCfH8QTBneJgQTxhKT483ik+PF5kAj8+FoF1oHTWpUFkEFYmadmnCfy60EUzQDFO/34neo2oXqBkUHQB7XgR9I5cMJHIGCKJHSRjCXAQtolpx+L2zCM18fO7ucMabkcHyeXE5870KcN+kDZKIk8oF8euHvn9v/u3Lh759vb39259d3de/e+v3Pz6vWWiq8qMv6TFX81M/rKGYX850zUf85EtWZGtmaGX8xgt2SymzPCYLlwOkyrwDpwWqvyhdNqNke6flNGmEIyQ5sz91zICLx4em9rxr6mdPZ5zrH6pvK6a5e5N66Wf/u1Drla/q1Czt262oPoKK4w270gabZbAi9yTiXXz317/Zyqear2KAsOv37FzaukcG98XXf9m7rr12tuflV2+8uC76+n/9x29NHPCb89Ps4THe+SKIQnSuErJJnHP8pXyRE+XynCI3ytQipoJLQqC5XWNJT56sbFR/g9CLBMWBB0HRF0qduE6wVGBqwPahF0HeV3wc4h00f4/ASh8IBInMSXn2iXnudhDzBMpLeQBoSWER+pRApEDH3ITJRAHtA3D8gkIkzciUk6pVKRSCLmCQXCrifiZz/LHn8ve9iGPVCI7GGb7GGb5OFtQr6VPPxW/OCm8KGaiB/cFD+4KfkFF5AGRw018hTWgdOkgkYC1oHTGmrkKawDp0kFjQSsA6c11MhTWAdOkwrChzf5ShE+vC7+9YrswRXs/tfYzzexx23Ys/tdgq4nIvEvIsFPIr6G3Bfy7wu7YPlJ1NWDEJp8olT3o5aCsOVuaagxQuFPQuFPImBTrT1QqWHW/0XQRcpDPv9XnvghX3xf2PWD+GmbtP26vOtLTHYZw65g2JcYdpU4fgkdrxCXrmDYJSTaPED6B05cwrCLGNZCHL/GsO/F+NRuCQ5pqQyfO9bL57lOHAOE7n4EzAbH7ldRDvKAnngAk4kxaRcm68DkYikml2JyDJMS8zQlmKhDLlYTTILjHBdpOybr1BRpJ6ZVumuCHK3K0m5myeIjUF8u7wSCydox2W+Y5Ckm4GFCISYWYRK5WILxxZhIhv+6dRepHCOl+9XuOaSyRqK7JsjRUCNPR6K+XIbJZQp3SeQ4MPj4EKmUh0l4xFhpB4Z1YliHNmnXlqlV8+XM7CIc2P3YgWHtGPaUcKwSy3wpxiP+nPUV0nC74J9gOB+lkQf0zAMyTCbA5DwCE+AdRxkm4cnFXVKpSCKXkCLFpFLFY3KfXoXUs9sc9uaApx85/hSEYXK+RCbGZHJMJsMUz0VS4ukIPsqUOeCtll6PUq2oV3ZBai0OVwfSZKV9vKRv+sTfqESOiXHngcap/ly1+kDttxr/SkjR5TpSQSMxMP3uDie/EUW7QXVSTCaFGilXvPSk5d4Gog9qUdZFPsGRCZkUk4vlcqlUjj8eEX/VMgzjy/CBaUmv/9meayTda2v0U6Gzs1MqkcrlctD7qp+NfGFaJZPJgLd5PJ5e3pSM+H+F/y9XPhGD//F62dhujRKLxfjrmTIZmCAiEAjEYrGMvJVu+sOUofwRBf8CcMiJXzcVRLo1DSh0y9aZQRokEzpViQukGpnQ0Af5UKZMIlWdyTGRSP0XWUOfNEsmVIWJ1NDoq/tao8oRcMrnCWHHikQicuYT/EgB0s/jfsivj0zgtSp/LfDGgVPQCwPl62gcgrQOx3TLBr9u3bJRxmB6QP9ooevu8F828OumS0MP88GDJjjqYfNGfJMgiMqkmICP0wLDMLFYgWpel/qCzZB+n+59CPVH2N+yVCKVyWQCgQA80JM/zgIB7mGQ2Z3Q4MG0T67WJyUE6V6+DSnxLCwQCHJyclxdXS9duoRhGHhY66UkutwfD0gl0h9++CE8PHzVqlVbt24tLCxETu6P//qqKxQKDx8+vGHDhjVr1kRFRQkEAuTnvvqu/3qlpaW7du26fu0bUJSkdf8toRKaHvjxxx8jIiLmzJmzZMmSxYsXU6nUtrY2QGixWKyV0AjSmk58Mc7lcrlYLE5OTnZ0dFy8eHFZWdmLcV/6dhe//vprSkqKm5sbl8tNSUlxdXWtq6sDz8X61tQR3Z6SkpI1a9aUE58NGzacOnVKKBSCJ9ERfV/603h80JH4CPgiNze3d999t7X1koyIpcFRf5o6QlsilUhFItEPP/wQEBDg6+tbW1vb2tr63Xff8Xg8sk8bQXqEfrm/s9lisfjq1av5+fl2dnZlZWXoF+13+rHHYg8ePKiqqqqpqcEw7Pr1676+vikpKT2WQBd/jwfq6+vPnj2LYRiPxwsODnZzc+Pz+SM0wvg99z9kZXAqEHgGj/UYhkVERISGhs6YMaO1tRV4GPl5UNwPfoFv3LgRGhqadSYLOJzs8Sar0Mpp8uoISqDu7l6+LDBKKhAIvvnmGwTpXpw1gMtisbijo+Pp06cYhjU0NDCZzNra2gHYQ0W1e6C9vf3Zs2cikej27dvLli1LT0/Xrodyf5cHyFi5tbWVRqNxOJyVK1eSkB45Uy5+180/30KXL192c3PbsGGDjY2Nvb19XV2dUIhvWiGTycCcUwTp5/uFDF9t5IhdW1sbgvTQfQ/g90ssFn///ff+/v4BAQEdHR3oR20oHM7j8ezs7MzNzZ2dnX/55ZehqOKltQniucePH3t7e2dnZ//yyy9ffPEFgvRQ/D3cunXr8OHDMTExLS0tERERbm5uFy5c6B5Pa8z0HoqWDLVNFEn34mHwsopcLkeRdC+eGozLbW1tfn5+AQEBDx48AA/Cg2EV2VDzgEwm+/LLLwsLC7ds2ZKQkICGb9S8M7ATAImUlJTQ0NC2trZnz56tXr0aQXpgTtUsLRKJhEKhQCB49OjRr7/+KpfLb926xWKxEhISiLn0Yo25LHBIrWlrJJwjSPfpW5JKpLdv33ZwcOBwOHw+v09lkFI/PXDr1q2IiIiQkJBff/1VJBIhePTTf31Sv3Dhwr179zAM6+joyMjImDNnjl6+J92ne9Fbpe3btxsYGCxbtszKymrs2LHz5s0Db4WA/li9bfYIaphUIu3s7Lx3797Tp0/FYvGPP/7IZDLj4+O1RtIj6L60NhVBWqtb1DLBc9ndu3ft7e1LSkrUrqGTQfLAkydPTp48yWAw7t+/D15yIxfcGKQakBncA2w229XV9fHjx2Kx2MPDY/369RiGIXgM1h8HGKD58ccfL1++fPPmzYsXLy5cuDA9Pb2jowPDMPR8Pyh+Bi/6X758ee/evdnZ2e3t7RwOZ9OmTeXl5QjSg+LhkWfkm2++cXR0NDIyGjVq1LRp06ytrS9evDjybkO/W3zlyhVra+v333/fiPgsXbo0MTERjUkP+pd269atrVu3LliwwNzcfOPGjdeuXQNzbQa9opfQILySBqAFn89fs2ZNU1MT6hYaxL8HME/o3r176enpmzZtWrhw4YoVK9LS0h48eADWKxzEuvTBFIqke/8WBAJBW1vbN998c+XKlcuXL9+9e/eFfF7r3RFDqfHs2bM7d+7897//vXbt2k3ic+/ePfTTNhQuf/jw4c2bN69evfrDDz/o67KgQ3HfQ24TfsNKIBAIhUKZTHbv3j2wtgZ6GBrcL0Amkz179qytre369ettbW3t7e1gUveL9+OMID24fznI2mB6AM0dG0xv6rYF00W3FrrSiwfQn2svDhqCy8Dn5A6K4EnoBft7RpAegj8cZBJ5AHng5fMAgvSwf+fgK0CQHvYvAjUAeQB5AHlA7zyAID3sXwmC9LB/BagByAPIA8gDeuoBBOlh/2IQpIf9K0ANQB5AHkAeQB5AHniJPIDGpF+iLxvdKvIA8gDyAPLAyPIAgvTI+r5Qa5EHkAeQB5AHXiIPIEi/RF82ulXkAeQB5AHkgZHlAQTpkfV9odYiDwzUA+TaGmBBULD4g1QiReu7DdSzqDzywBB4AEF6CJyKTCIP6LcHwNpMaA0s/f6WUOuQB3APIEijvwPkgZfIA1KJtK6u7n3iM3ny5ClTpsybNy8jI4PcY+MFWwjiJfpq0a2+oB5AkH5Bv1h0W8gD2jwgk8nKy8snTpx4//79H3/88cGDB5WVlQsWLKioqACcfvGWPtbmBpSHPDBiPIAgPWK+KtRQ5IGBe0AgEJSXl3/88cfkCPSjR4927tyZkJAAjItEInJFCBRVD9zhyALywAA9gCA9QAei4sgDI8wDJSUlkydP5vF4IpFIKpE2NzdPnjy5pqYG3IZUIkWQHmHfKGruC+0BBOkX+utFN4c80M0DlZWVr7766vTp0ydNmjRhwgRjY+P09PT29nZSEUGadAVKIA8MuwcQpIf9K0ANQB54fh6QyWQVFRUzZsy4e/fugwcPkpOTjYyMOjo64BYgSMPeQGnkgeH1AIL08Pof1Y488Fw9IJVIy8vLjY2NQa0PHz60tLRMSEgQiUQCgQBkIkg/168EVYY80KMHEKR7dA+6iDzwwnmgpKRk+vTpAMnPnj2rqKiYMmVKR0eHXC6XyWRCoRBB+oX7ztENjWAPIEiP4C8PNR154Hd4gMPhmJiYkLO7nzx5Ym1tHRwcDCAtk8kQpH+HV1ER5IEh8gCC9BA5FplFHtBfD7S3t4tEIrJ9HR0dfD4fwzCQiSBNegYlkAeG3QMI0sP+FaAGIA8gDyAPIA8gD2j3AIK0dr+gXOQB5AHkAeQB5IFh9wCC9LB/BagByAPIA8gDyAPIA9o9gCCt3S8oF3kAeQB5AHkAeWDYPYAgPexfAWoA8gDyAPIA8gDygHYP/D9YdftfJ20/IQAAAABJRU5ErkJggg=="}}},{"cell_type":"code","source":"seg_map = {\n    r\"[1-2][1-2]\": \"hibernating\",\n    r\"[1-2][3-4]\": \"at_Risk\",\n    r\"[1-2]5\": \"cant_loose\",\n    r\"3[1-2]\": \"about_to_sleep\",\n    r\"33\": \"need_attention\",\n    r\"[3-4][4-5]\": \"loyal_customers\",\n    r\"41\": \"promising\",\n    r\"51\": \"new_customers\",\n    r\"[4-5][2-3]\": \"potential_loyalists\",\n    r\"5[4-5]\": \"champions\"\n}\n\nrfm[\"segment\"] = rfm[\"RF_SCORE\"].replace(seg_map, regex=True)\n\nrfm.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:14:38.619832Z","iopub.execute_input":"2023-08-28T16:14:38.620673Z","iopub.status.idle":"2023-08-28T16:15:07.554049Z","shell.execute_reply.started":"2023-08-28T16:14:38.620630Z","shell.execute_reply":"2023-08-28T16:15:07.552305Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"rfm[[\"segment\", \"recency\", \"frequency\", \"monetary\"]].groupby(\"segment\").agg([\"mean\", \"count\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:16:57.402728Z","iopub.execute_input":"2023-08-28T16:16:57.403287Z","iopub.status.idle":"2023-08-28T16:16:57.713536Z","shell.execute_reply.started":"2023-08-28T16:16:57.403245Z","shell.execute_reply":"2023-08-28T16:16:57.712125Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Let's reset index.\n\nrfm.reset_index(inplace=True)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:18:22.713992Z","iopub.execute_input":"2023-08-28T16:18:22.714478Z","iopub.status.idle":"2023-08-28T16:18:22.798359Z","shell.execute_reply.started":"2023-08-28T16:18:22.714441Z","shell.execute_reply":"2023-08-28T16:18:22.796823Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"rfm.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:18:23.425370Z","iopub.execute_input":"2023-08-28T16:18:23.425817Z","iopub.status.idle":"2023-08-28T16:18:23.444260Z","shell.execute_reply.started":"2023-08-28T16:18:23.425782Z","shell.execute_reply":"2023-08-28T16:18:23.443127Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Preparation of RFM Script","metadata":{}},{"cell_type":"code","source":"def hm_rfm(df):\n    \n    # rfm score\n    df['t_dat'] = pd.to_datetime(df['t_dat'])\n    df[\"t_dat\"].max()\n\n    today_date= df[\"t_dat\"].max() + dt.timedelta(days=2)\n    today_date  # Timestamp('2020-09-24 00:00:00')\n    \n    rfm = df.groupby(\"customer_id\").agg(recency=(\"t_dat\", lambda x: (today_date - x.max()).days),\n                                           frequency=(\"t_dat\", \"nunique\"),\n                                           monetary=(\"price\", \"sum\"))\n    \n    # scale\n    rfm[\"recency_score\"]= pd.qcut(rfm[\"recency\"], 5, labels=[5,4,3,2,1])\n    rfm[\"monetary_score\"]= pd.qcut(rfm[\"monetary\"], 5, labels=[1,2,3,4,5])\n    rfm[\"frequency_score\"]= pd.qcut(rfm[\"frequency\"].rank(method=\"first\"), 5, labels=[1,2,3,4,5])\n    \n    # rf score \n    rfm[\"RF_SCORE\"]= (rfm[\"recency_score\"].astype(str)+ rfm[\"frequency_score\"].astype(str))\n    \n    # Segmentation\n    seg_map = {\n    r\"[1-2][1-2]\": \"hibernating\",\n    r\"[1-2][3-4]\": \"at_Risk\",\n    r\"[1-2]5\": \"cant_loose\",\n    r\"3[1-2]\": \"about_to_sleep\",\n    r\"33\": \"need_attention\",\n    r\"[3-4][4-5]\": \"loyal_customers\",\n    r\"41\": \"promising\",\n    r\"51\": \"new_customers\",\n    r\"[4-5][2-3]\": \"potential_loyalists\",\n    r\"5[4-5]\": \"champions\"}\n    \n    rfm[\"segment\"] = rfm[\"RF_SCORE\"].replace(seg_map, regex=True)\n    \n    # reset_index\n    rfm.reset_index(inplace=True)\n    \n    return rfm","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:20:27.683226Z","iopub.execute_input":"2023-08-28T16:20:27.683753Z","iopub.status.idle":"2023-08-28T16:20:27.700835Z","shell.execute_reply.started":"2023-08-28T16:20:27.683703Z","shell.execute_reply":"2023-08-28T16:20:27.698899Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"hm_rfm= hm_rfm(df_trs)\nhm_rfm.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:20:34.550073Z","iopub.execute_input":"2023-08-28T16:20:34.550484Z","iopub.status.idle":"2023-08-28T16:24:39.649664Z","shell.execute_reply.started":"2023-08-28T16:20:34.550454Z","shell.execute_reply":"2023-08-28T16:24:39.648244Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"numeric_columns = [\"recency\", \"frequency\", \"monetary\", \"recency_score\", \"monetary_score\", \"frequency_score\", \"RF_SCORE\"]\nsegmented_table = rfm.groupby(\"segment\")[numeric_columns].mean().reset_index()\nprint(segmented_table)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T19:02:16.973529Z","iopub.execute_input":"2023-08-28T19:02:16.973988Z","iopub.status.idle":"2023-08-28T19:02:17.394191Z","shell.execute_reply.started":"2023-08-28T19:02:16.973952Z","shell.execute_reply":"2023-08-28T19:02:17.392785Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# calculate segment distribution\nsegment_counts = rfm[\"segment\"].value_counts()\n\n# Graphing pasta\nplt.figure(figsize=(12, 8))\nplt.pie(segment_counts, labels=segment_counts.index, autopct='%1.1f%%', startangle=140)\nplt.title(\"Calculate Segment Distribution\")\nplt.axis('equal')\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T19:05:38.439341Z","iopub.execute_input":"2023-08-28T19:05:38.439784Z","iopub.status.idle":"2023-08-28T19:05:38.955031Z","shell.execute_reply.started":"2023-08-28T19:05:38.439751Z","shell.execute_reply":"2023-08-28T19:05:38.953503Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# CLTV Prediction with BG-NBD & Gamma-Gamma Models","metadata":{}},{"cell_type":"markdown","source":"CLTV (Customer Lifetime Value) Prediction with **BG-NBD (Beta Geometric Negative Binomial Distribution)** & **Gamma-Gamma Models** is a methodology used in marketing and customer analytics to estimate the future value a customer will bring to a business over their entire relationship with the company. This approach involves two main components: the BG-NBD model and the Gamma-Gamma model.","metadata":{}},{"cell_type":"markdown","source":"## Data Preparation for CLTV","metadata":{}},{"cell_type":"code","source":"df_trs = pd.read_csv('/kaggle/input/h-and-m-personalized-fashion-recommendations/transactions_train.csv')","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:34:27.333855Z","iopub.execute_input":"2023-08-28T16:34:27.334366Z","iopub.status.idle":"2023-08-28T16:35:43.194967Z","shell.execute_reply.started":"2023-08-28T16:34:27.334330Z","shell.execute_reply":"2023-08-28T16:35:43.193239Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"uniqueInfos(df_trs)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:46:23.289012Z","iopub.execute_input":"2023-08-28T16:46:23.289611Z","iopub.status.idle":"2023-08-28T16:47:01.703468Z","shell.execute_reply.started":"2023-08-28T16:46:23.289564Z","shell.execute_reply":"2023-08-28T16:47:01.701517Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Let's add 2 days to the last date in the data to calculate the recency\n\ndf_trs['t_dat'] = pd.to_datetime(df_trs['t_dat'])\ndf_trs[\"t_dat\"].max()\n\ntoday_date= df_trs[\"t_dat\"].max() + dt.timedelta(days=2)\ntoday_date  # Timestamp('2020-09-24 00:00:00')","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:48:26.392847Z","iopub.execute_input":"2023-08-28T16:48:26.393292Z","iopub.status.idle":"2023-08-28T16:48:33.839829Z","shell.execute_reply.started":"2023-08-28T16:48:26.393260Z","shell.execute_reply":"2023-08-28T16:48:33.838595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### CLTV Metrics\n\n**Recency**:\nRecency refers to the time since a customer's last purchase. It helps us understand how recently a customer has interacted with the business. A lower recency value indicates that a customer has made a purchase more recently, which can be a positive sign for potential future purchases.\n\n**Frequency**:\nFrequency represents the number of transactions a customer has made over a given period. It indicates how often a customer engages with the business. A higher frequency suggests that a customer is loyal and active.\n\n**Tenure**:\nTenure is the duration of time a customer has been active and making purchases with the business. It provides insight into the longevity of the customer relationship. Longer tenure might imply a stronger connection and higher potential for future transactions.\n\n**Monetary Value**:\nMonetary value refers to the amount of money a customer has spent on purchases. It reflects the value of a customer's transactions. Customers with higher monetary values are likely to contribute more to the business's revenue.","metadata":{}},{"cell_type":"code","source":"cltv_copy = df_trs.groupby(\"customer_id\").agg(recency=(\"t_dat\", lambda x: ( x.max()- x.min()).days),\n                                         tenure=(\"t_dat\", lambda x: (today_date - x.min()).days),\n                                         frequency=(\"t_dat\", \"nunique\"),\n                                         monetary=(\"price\", \"sum\"))\n\ncltv_copy.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T16:51:27.202507Z","iopub.execute_input":"2023-08-28T16:51:27.203102Z","iopub.status.idle":"2023-08-28T17:00:23.623154Z","shell.execute_reply.started":"2023-08-28T16:51:27.203062Z","shell.execute_reply":"2023-08-28T17:00:23.621123Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv= cltv_copy.copy()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:35.071439Z","iopub.execute_input":"2023-08-28T17:00:35.072055Z","iopub.status.idle":"2023-08-28T17:00:35.137066Z","shell.execute_reply.started":"2023-08-28T17:00:35.072007Z","shell.execute_reply":"2023-08-28T17:00:35.135590Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:37.314533Z","iopub.execute_input":"2023-08-28T17:00:37.315038Z","iopub.status.idle":"2023-08-28T17:00:37.328405Z","shell.execute_reply.started":"2023-08-28T17:00:37.315000Z","shell.execute_reply":"2023-08-28T17:00:37.327362Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Dividing the Monetary value by Frequency gives us the average transaction value per purchase. This metric is useful because it helps us understand how much a customer spends on average in each transaction. This calculation can be particularly valuable for businesses looking to analyze customer spending behavior and tailor their marketing strategies accordingly.","metadata":{}},{"cell_type":"code","source":"# Let's divide the Monetary value by Frequency to make it an average value\n\ncltv[\"monetary\"]= cltv[\"monetary\"]/ cltv[\"frequency\"] ","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:42.512916Z","iopub.execute_input":"2023-08-28T17:00:42.513412Z","iopub.status.idle":"2023-08-28T17:00:42.538513Z","shell.execute_reply.started":"2023-08-28T17:00:42.513372Z","shell.execute_reply":"2023-08-28T17:00:42.536905Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.describe().T","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:45.179629Z","iopub.execute_input":"2023-08-28T17:00:45.180077Z","iopub.status.idle":"2023-08-28T17:00:45.462531Z","shell.execute_reply.started":"2023-08-28T17:00:45.180040Z","shell.execute_reply":"2023-08-28T17:00:45.461079Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Frequency should be greater than one because it needs to consider occurrences beyond the first purchase, enabling us to observe transactions beyond the initial one.\ncltv= cltv[cltv[\"frequency\"]>1] \n\n# We converted the BG-NBD and Gamma-Gamma models to a weekly basis.\ncltv[\"recency\"]= cltv[\"recency\"]/7 \ncltv[\"tenure\"]= cltv[\"tenure\"]/7","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:49.310995Z","iopub.execute_input":"2023-08-28T17:00:49.311428Z","iopub.status.idle":"2023-08-28T17:00:49.452718Z","shell.execute_reply.started":"2023-08-28T17:00:49.311396Z","shell.execute_reply":"2023-08-28T17:00:49.451385Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:53.087421Z","iopub.execute_input":"2023-08-28T17:00:53.087888Z","iopub.status.idle":"2023-08-28T17:00:53.100065Z","shell.execute_reply.started":"2023-08-28T17:00:53.087851Z","shell.execute_reply":"2023-08-28T17:00:53.098813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.reset_index(inplace=True)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:00:59.504050Z","iopub.execute_input":"2023-08-28T17:00:59.504443Z","iopub.status.idle":"2023-08-28T17:00:59.550456Z","shell.execute_reply.started":"2023-08-28T17:00:59.504412Z","shell.execute_reply":"2023-08-28T17:00:59.548803Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:01:02.411877Z","iopub.execute_input":"2023-08-28T17:01:02.412324Z","iopub.status.idle":"2023-08-28T17:01:02.426657Z","shell.execute_reply.started":"2023-08-28T17:01:02.412290Z","shell.execute_reply":"2023-08-28T17:01:02.425099Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Let's check for outliers because this time we will be making predictions to cltv\n\ndef check_outliers(dataframe, col_name):\n    low_limit, up_limit = outlier_thresholds(dataframe, col_name)\n    return dataframe[col_name].lt(low_limit).any() | dataframe[col_name].gt(up_limit).any()\n\ndef outlier_thresholds(dataframe, variable): \n    quartile1=dataframe[variable].quantile(0.01)  \n    quartile3=dataframe[variable].quantile(0.99)  \n    interquantile_range = quartile3-quartile1     \n    up_limit= quartile3+ 1.5*interquantile_range  \n    low_limit= quartile1 - 1.5*interquantile_range \n    return low_limit, up_limit\n\ndef replace_with_thresholds(dataframe, variable):\n    low_limit, up_limit= outlier_thresholds(dataframe, variable)\n    dataframe.loc[(dataframe[variable]< low_limit), variable]= low_limit  \n    dataframe.loc[(dataframe[variable]> up_limit), variable]= up_limit","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:15:39.073247Z","iopub.execute_input":"2023-08-28T17:15:39.073848Z","iopub.status.idle":"2023-08-28T17:15:39.084992Z","shell.execute_reply.started":"2023-08-28T17:15:39.073808Z","shell.execute_reply":"2023-08-28T17:15:39.083696Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv_cols= ['recency', 'tenure', 'frequency', 'monetary']\n\nfor col in cltv_cols:\n    print(col, check_outliers(cltv, col))","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:20:40.842043Z","iopub.execute_input":"2023-08-28T17:20:40.842531Z","iopub.status.idle":"2023-08-28T17:20:41.010302Z","shell.execute_reply.started":"2023-08-28T17:20:40.842493Z","shell.execute_reply":"2023-08-28T17:20:41.008597Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"replace_with_thresholds(cltv, \"frequency\")\nreplace_with_thresholds(cltv, \"monetary\")","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:21:42.119497Z","iopub.execute_input":"2023-08-28T17:21:42.120012Z","iopub.status.idle":"2023-08-28T17:21:42.205034Z","shell.execute_reply.started":"2023-08-28T17:21:42.119974Z","shell.execute_reply":"2023-08-28T17:21:42.203392Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"for col in cltv_cols:\n    print(col, check_outliers(cltv, col))","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:21:49.432172Z","iopub.execute_input":"2023-08-28T17:21:49.432629Z","iopub.status.idle":"2023-08-28T17:21:49.578316Z","shell.execute_reply.started":"2023-08-28T17:21:49.432595Z","shell.execute_reply":"2023-08-28T17:21:49.577057Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## BG-NBD Model  (Beta Geometric Negative Binomial Distribution)\n\nThe BG-NBD (Beta Geometric Negative Binomial Distribution) model is a probabilistic model used to analyze customer behavior and predict customer lifetime value. The BG-NBD model predicts customer behavior based on two fundamental components:\n\n**Purchase Timing Distribution:** It is used to model the frequency and recency of customer purchases. This distribution is employed to predict the timing of future purchases by the customer.\n\n**Purchase Count Distribution:** This distribution is utilized to model the number of purchases a customer might make. It is used to predict how many purchases a customer could potentially make in the future.\n\nBy using the BG-NBD model, businesses can gain insights into customer behavior and make predictions about their future purchasing patterns. This model enables marketers to better understand when and how often customers are likely to make purchases, contributing to effective marketing strategies and customer segmentation.","metadata":{}},{"cell_type":"code","source":"# Create Instances of the BG-NBD Model\nbgf= BetaGeoFitter(penalizer_coef=0.001)  \n\n# fitting\nbgf.fit(cltv[\"frequency\"], cltv[\"recency\"], cltv[\"tenure\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:22:02.329382Z","iopub.execute_input":"2023-08-28T17:22:02.329891Z","iopub.status.idle":"2023-08-28T17:22:18.011864Z","shell.execute_reply.started":"2023-08-28T17:22:02.329851Z","shell.execute_reply":"2023-08-28T17:22:18.009784Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Expected purchases within 1 week\n\ncltv[\"expected_purchase_1_week\"]= bgf.predict(1,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:23:43.646821Z","iopub.execute_input":"2023-08-28T17:23:43.648563Z","iopub.status.idle":"2023-08-28T17:23:44.092011Z","shell.execute_reply.started":"2023-08-28T17:23:43.648485Z","shell.execute_reply":"2023-08-28T17:23:44.090498Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:23:46.619464Z","iopub.execute_input":"2023-08-28T17:23:46.619911Z","iopub.status.idle":"2023-08-28T17:23:46.636561Z","shell.execute_reply.started":"2023-08-28T17:23:46.619878Z","shell.execute_reply":"2023-08-28T17:23:46.634782Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Expected purchases within 4 week\n\ncltv[\"expected_purchase_4_week\"]= bgf.predict(4,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:23:54.277245Z","iopub.execute_input":"2023-08-28T17:23:54.278421Z","iopub.status.idle":"2023-08-28T17:23:54.713118Z","shell.execute_reply.started":"2023-08-28T17:23:54.278365Z","shell.execute_reply":"2023-08-28T17:23:54.711510Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:23:57.067625Z","iopub.execute_input":"2023-08-28T17:23:57.068100Z","iopub.status.idle":"2023-08-28T17:23:57.084682Z","shell.execute_reply.started":"2023-08-28T17:23:57.068066Z","shell.execute_reply":"2023-08-28T17:23:57.082852Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Expected purchases within 3 month\n\ncltv[\"expected_purchase_3_month\"]= bgf.predict(4*3,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:23:59.684606Z","iopub.execute_input":"2023-08-28T17:23:59.686112Z","iopub.status.idle":"2023-08-28T17:24:00.152554Z","shell.execute_reply.started":"2023-08-28T17:23:59.686055Z","shell.execute_reply":"2023-08-28T17:24:00.151184Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:24:02.524081Z","iopub.execute_input":"2023-08-28T17:24:02.525771Z","iopub.status.idle":"2023-08-28T17:24:02.542118Z","shell.execute_reply.started":"2023-08-28T17:24:02.525686Z","shell.execute_reply":"2023-08-28T17:24:02.540325Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## GAMMA GAMMA Model\n\nThe Gamma-Gamma model is a model used in customer lifetime value (CLTV) analysis in conjunction with the important component BG-NBD model. While the BG-NBD model predicts customer transactions and interactions, the Gamma-Gamma model focuses on estimating the average transaction value per customer.","metadata":{}},{"cell_type":"code","source":"cltv[\"frequency\"] = cltv[\"frequency\"].astype(int)\n\n# Create Instances of the GammaGammaFitter Model\nggf= GammaGammaFitter(penalizer_coef=0.01)\n\n\n# fitting with frequency and monetary\nggf.fit(cltv[\"frequency\"], cltv[\"monetary\"])","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:31:33.328290Z","iopub.execute_input":"2023-08-28T17:31:33.328872Z","iopub.status.idle":"2023-08-28T17:31:39.933089Z","shell.execute_reply.started":"2023-08-28T17:31:33.328833Z","shell.execute_reply":"2023-08-28T17:31:39.931179Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# let's predict the expected average profit of a customer's future transactions based on their historical transaction frequency and monetary values with ggf\n\nggf.conditional_expected_average_profit(cltv[\"frequency\"],\n                                        cltv[\"monetary\"]).sort_values(ascending=False).head(10)\n\ncltv[\"expected_average_profit\"]= ggf.conditional_expected_average_profit(cltv[\"frequency\"],\n                                        cltv[\"monetary\"]).sort_values(ascending=False)\n\ncltv.sort_values(\"expected_average_profit\",ascending=False).head(10)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:33:19.754287Z","iopub.execute_input":"2023-08-28T17:33:19.754839Z","iopub.status.idle":"2023-08-28T17:33:20.802266Z","shell.execute_reply.started":"2023-08-28T17:33:19.754802Z","shell.execute_reply":"2023-08-28T17:33:20.800735Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Creating a DataFrame with relevant columns for calling the ggf.customer_lifetime_value function\ncltv_result = ggf.customer_lifetime_value(\n    bgf,\n    cltv[\"frequency\"],\n    cltv[\"recency\"],\n    cltv[\"tenure\"],\n    cltv[\"monetary\"],\n    time=3,  # Time period for which CLTV is being calculated (3 months in this case)\n    freq=\"W\",  # Frequency of the time period (weekly in this case)\n    discount_rate=0.01)  # Discount rate used for calculating the present value of future transactions\n\n\n# Adding the calculated CLTV results to the cltv DataFrame\ncltv[\"clv\"] = cltv_result\n\ncltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:35:48.047969Z","iopub.execute_input":"2023-08-28T17:35:48.048443Z","iopub.status.idle":"2023-08-28T17:35:50.662083Z","shell.execute_reply.started":"2023-08-28T17:35:48.048409Z","shell.execute_reply":"2023-08-28T17:35:50.660653Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Customer Lifetime Value (CLV), abbreviated as CLV, represents the estimated total revenue a customer will generate throughout their relationship with a business or brand. In other words, it signifies the total value of transactions or interactions a customer is expected to make over the course of their engagement with the business.","metadata":{}},{"cell_type":"code","source":"cltv.sort_values(by='clv', ascending=False).head(10)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:37:38.451240Z","iopub.execute_input":"2023-08-28T17:37:38.451722Z","iopub.status.idle":"2023-08-28T17:37:39.060701Z","shell.execute_reply.started":"2023-08-28T17:37:38.451673Z","shell.execute_reply":"2023-08-28T17:37:39.059175Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Preparation of CLTV Script","metadata":{}},{"cell_type":"code","source":"def hm_cltv(df):\n    \n    # cltv score\n    df['t_dat'] = pd.to_datetime(df['t_dat'])\n    today_date= df[\"t_dat\"].max() + dt.timedelta(days=2)\n    \n    \n    cltv = df.groupby(\"customer_id\").agg(recency=(\"t_dat\", lambda x: ( x.max()- x.min()).days),\n                                             tenure=(\"t_dat\", lambda x: (today_date - x.min()).days),\n                                             frequency=(\"t_dat\", \"nunique\"),\n                                             monetary=(\"price\", \"sum\"))\n    \n    \n    cltv[\"monetary\"]= cltv[\"monetary\"]/ cltv[\"frequency\"]\n    cltv= cltv[cltv[\"frequency\"]>1] \n    cltv[\"recency\"]= cltv[\"recency\"]/7 \n    cltv[\"tenure\"]= cltv[\"tenure\"]/7\n    \n    cltv.reset_index(inplace=True)\n    \n    # thresholds\n    cltv_cols= ['recency', 'tenure', 'frequency', 'monetary']\n    \n    \n    replace_with_thresholds(cltv, \"frequency\")\n    replace_with_thresholds(cltv, \"monetary\")\n    \n    \n    # BG-NBD Model\n    bgf= BetaGeoFitter(penalizer_coef=0.001)  \n    bgf.fit(cltv[\"frequency\"], cltv[\"recency\"], cltv[\"tenure\"])\n    \n    cltv[\"expected_purchase_1_week\"]= bgf.predict(1,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])\n    \n    cltv[\"expected_purchase_4_week\"]= bgf.predict(4,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])\n    \n    cltv[\"expected_purchase_3_month\"]= bgf.predict(4*3,\n                                                 cltv[\"frequency\"],\n                                                 cltv[\"recency\"],\n                                                 cltv[\"tenure\"])\n    \n    \n    cltv[\"frequency\"] = cltv[\"frequency\"].astype(int)\n\n    # GammaGammaFitter Model\n    ggf= GammaGammaFitter(penalizer_coef=0.01)\n    ggf.fit(cltv[\"frequency\"], cltv[\"monetary\"])\n    \n    ggf.conditional_expected_average_profit(cltv[\"frequency\"],\n                                        cltv[\"monetary\"])\n\n    cltv[\"expected_average_profit\"]= ggf.conditional_expected_average_profit(cltv[\"frequency\"],\n                                        cltv[\"monetary\"])\n    \n    \n    cltv_result = ggf.customer_lifetime_value(\n    bgf,\n    cltv[\"frequency\"],\n    cltv[\"recency\"],\n    cltv[\"tenure\"],\n    cltv[\"monetary\"],\n    time=3,  \n    freq=\"W\",  \n    discount_rate=0.01)\n\n    cltv[\"clv\"] = cltv_result\n    \n    return cltv","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:46:53.142146Z","iopub.execute_input":"2023-08-28T18:46:53.142640Z","iopub.status.idle":"2023-08-28T18:46:53.160275Z","shell.execute_reply.started":"2023-08-28T18:46:53.142602Z","shell.execute_reply":"2023-08-28T18:46:53.158740Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv2= hm_cltv(df_trs)\ncltv2.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:46:55.030179Z","iopub.execute_input":"2023-08-28T18:46:55.030645Z","iopub.status.idle":"2023-08-28T18:56:09.346118Z","shell.execute_reply.started":"2023-08-28T18:46:55.030609Z","shell.execute_reply":"2023-08-28T18:56:09.344037Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Customer Segmentation with CLV","metadata":{}},{"cell_type":"code","source":"cltv[\"segment\"]= pd.qcut(cltv[\"clv\"], 4, labels=[\"D\", \"C\", \"B\", \"A\"])\ncltv.head()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:45:19.676912Z","iopub.execute_input":"2023-08-28T17:45:19.677567Z","iopub.status.idle":"2023-08-28T17:45:19.767309Z","shell.execute_reply.started":"2023-08-28T17:45:19.677523Z","shell.execute_reply":"2023-08-28T17:45:19.765759Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cltv.groupby(\"segment\").agg({\"count\", \"mean\", \"sum\"})","metadata":{"execution":{"iopub.status.busy":"2023-08-28T17:45:25.257085Z","iopub.execute_input":"2023-08-28T17:45:25.257580Z","iopub.status.idle":"2023-08-28T17:50:01.202942Z","shell.execute_reply.started":"2023-08-28T17:45:25.257541Z","shell.execute_reply":"2023-08-28T17:50:01.201378Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Set the style\nsns.set(style=\"whitegrid\")\n\n# Create a bar plot\nplt.figure(figsize=(10, 6))\nsns.barplot(x=\"segment\", y=\"clv\", data=cltv, ci=None)\n\n# Add labels and title\nplt.xlabel(\"Segment\")\nplt.ylabel(\"Customer Lifetime Value (CLV)\")\nplt.title(\"CLV Distribution by Segment\")\n\n# Show the plot\nplt.show()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:22:09.551881Z","iopub.execute_input":"2023-08-28T18:22:09.552408Z","iopub.status.idle":"2023-08-28T18:22:10.407163Z","shell.execute_reply.started":"2023-08-28T18:22:09.552370Z","shell.execute_reply":"2023-08-28T18:22:10.405634Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Create a new DataFrame with customer ID and expected profit for the next 3 months\nprofit_3_months = cltv[[\"customer_id\", \"expected_purchase_3_month\"]]\n\n# Sort the DataFrame by expected profit in descending order\nprofit_3_months_sorted = profit_3_months.sort_values(by=\"expected_purchase_3_month\", ascending=False)\n\n# Display the top 10 customers with their expected profit for the next 3 months\ntop_profit_customers = profit_3_months_sorted.head(10)\nprint(top_profit_customers)","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:24:38.027238Z","iopub.execute_input":"2023-08-28T18:24:38.027768Z","iopub.status.idle":"2023-08-28T18:24:38.921650Z","shell.execute_reply.started":"2023-08-28T18:24:38.027718Z","shell.execute_reply":"2023-08-28T18:24:38.919944Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# expect average profit \n\ncltv[\"expected_average_profit\"].sum()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:29:56.835914Z","iopub.execute_input":"2023-08-28T18:29:56.836405Z","iopub.status.idle":"2023-08-28T18:29:56.848700Z","shell.execute_reply.started":"2023-08-28T18:29:56.836370Z","shell.execute_reply":"2023-08-28T18:29:56.847222Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# expect purcahase within 3 month\n\ncltv[\"expected_purchase_3_month\"].sum()","metadata":{"execution":{"iopub.status.busy":"2023-08-28T18:56:39.304933Z","iopub.execute_input":"2023-08-28T18:56:39.305408Z","iopub.status.idle":"2023-08-28T18:56:39.315322Z","shell.execute_reply.started":"2023-08-28T18:56:39.305371Z","shell.execute_reply":"2023-08-28T18:56:39.313998Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}