finlib/notebooks/varcovar_var.ipynb

429 lines
90 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-02-14T22:51:48.194830Z",
"start_time": "2025-02-14T22:51:43.068129Z"
}
},
"source": [
"import matplotlib.pyplot as plt\n",
"from openbb import obb\n",
"import pyfinlib\n"
],
"outputs": [],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:48.808390Z",
"start_time": "2025-02-14T22:51:48.198843Z"
}
},
"cell_type": "code",
"source": "aapl = obb.equity.price.historical(symbol='AAPL', provider='yfinance')",
"id": "e5573366e39b2962",
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:48.967198Z",
"start_time": "2025-02-14T22:51:48.949948Z"
}
},
"cell_type": "code",
"source": "aapl.results",
"id": "ba361e8697a2e425",
"outputs": [
{
"data": {
"text/plain": [
"[YFinanceEquityHistoricalData(date=2024-02-14, open=185.32000732421875, high=185.52999877929688, low=182.44000244140625, close=184.14999389648438, volume=54630500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-15, open=183.5500030517578, high=184.49000549316406, low=181.35000610351562, close=183.86000061035156, volume=65434500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-16, open=183.4199981689453, high=184.85000610351562, low=181.6699981689453, close=182.30999755859375, volume=49701400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-20, open=181.7899932861328, high=182.42999267578125, low=180.0, close=181.55999755859375, volume=53665600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-21, open=181.94000244140625, high=182.88999938964844, low=180.66000366210938, close=182.32000732421875, volume=41529700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-22, open=183.47999572753906, high=184.9600067138672, low=182.4600067138672, close=184.3699951171875, volume=52292200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-23, open=185.00999450683594, high=185.0399932861328, low=182.22999572753906, close=182.52000427246094, volume=45119700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-26, open=182.24000549316406, high=182.75999450683594, low=180.64999389648438, close=181.16000366210938, volume=40867400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-27, open=181.10000610351562, high=183.9199981689453, low=179.55999755859375, close=182.6300048828125, volume=54318900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-28, open=182.50999450683594, high=183.1199951171875, low=180.1300048828125, close=181.4199981689453, volume=48953900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-02-29, open=181.27000427246094, high=182.57000732421875, low=179.52999877929688, close=180.75, volume=136682600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-01, open=179.5500030517578, high=180.52999877929688, low=177.3800048828125, close=179.66000366210938, volume=73488000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-04, open=176.14999389648438, high=176.89999389648438, low=173.7899932861328, close=175.10000610351562, volume=81510100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-05, open=170.75999450683594, high=172.0399932861328, low=169.6199951171875, close=170.1199951171875, volume=95132400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-06, open=171.05999755859375, high=171.24000549316406, low=168.67999267578125, close=169.1199951171875, volume=68587700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-07, open=169.14999389648438, high=170.72999572753906, low=168.49000549316406, close=169.0, volume=71765100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-08, open=169.0, high=173.6999969482422, low=168.94000244140625, close=170.72999572753906, volume=76114600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-11, open=172.94000244140625, high=174.3800048828125, low=172.0500030517578, close=172.75, volume=60139500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-12, open=173.14999389648438, high=174.02999877929688, low=171.00999450683594, close=173.22999572753906, volume=59825400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-13, open=172.77000427246094, high=173.19000244140625, low=170.75999450683594, close=171.1300048828125, volume=52488700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-14, open=172.91000366210938, high=174.30999755859375, low=172.0500030517578, close=173.0, volume=72913500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-15, open=171.1699981689453, high=172.6199951171875, low=170.2899932861328, close=172.6199951171875, volume=121664700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-18, open=175.57000732421875, high=177.7100067138672, low=173.52000427246094, close=173.72000122070312, volume=75604200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-19, open=174.33999633789062, high=176.61000061035156, low=173.02999877929688, close=176.0800018310547, volume=55215200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-20, open=175.72000122070312, high=178.6699981689453, low=175.08999633789062, close=178.6699981689453, volume=53423100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-21, open=177.0500030517578, high=177.49000549316406, low=170.83999633789062, close=171.3699951171875, volume=106181300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-22, open=171.75999450683594, high=173.0500030517578, low=170.05999755859375, close=172.27999877929688, volume=71106600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-25, open=170.57000732421875, high=171.94000244140625, low=169.4499969482422, close=170.85000610351562, volume=54288300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-26, open=170.0, high=171.4199981689453, low=169.5800018310547, close=169.7100067138672, volume=57388400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-27, open=170.41000366210938, high=173.60000610351562, low=170.11000061035156, close=173.30999755859375, volume=60273300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-03-28, open=171.75, high=172.22999572753906, low=170.50999450683594, close=171.47999572753906, volume=65672700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-01, open=171.19000244140625, high=171.25, low=169.47999572753906, close=170.02999877929688, volume=46240500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-02, open=169.0800018310547, high=169.33999633789062, low=168.22999572753906, close=168.83999633789062, volume=49329500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-03, open=168.7899932861328, high=170.67999267578125, low=168.5800018310547, close=169.64999389648438, volume=47691700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-04, open=170.2899932861328, high=171.9199981689453, low=168.82000732421875, close=168.82000732421875, volume=53704400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-05, open=169.58999633789062, high=170.38999938964844, low=168.9499969482422, close=169.5800018310547, volume=42055200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-08, open=169.02999877929688, high=169.1999969482422, low=168.24000549316406, close=168.4499969482422, volume=37425500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-09, open=168.6999969482422, high=170.0800018310547, low=168.35000610351562, close=169.6699981689453, volume=42451200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-10, open=168.8000030517578, high=169.08999633789062, low=167.11000061035156, close=167.77999877929688, volume=49709300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-11, open=168.33999633789062, high=175.4600067138672, low=168.16000366210938, close=175.0399932861328, volume=91070300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-12, open=174.25999450683594, high=178.36000061035156, low=174.2100067138672, close=176.5500030517578, volume=101593300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-15, open=175.36000061035156, high=176.6300048828125, low=172.5, close=172.69000244140625, volume=73531800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-16, open=171.75, high=173.75999450683594, low=168.27000427246094, close=169.3800048828125, volume=73711200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-17, open=169.61000061035156, high=170.64999389648438, low=168.0, close=168.0, volume=50901200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-18, open=168.02999877929688, high=168.63999938964844, low=166.5500030517578, close=167.0399932861328, volume=43122900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-19, open=166.2100067138672, high=166.39999389648438, low=164.0800018310547, close=165.0, volume=67772100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-22, open=165.52000427246094, high=167.25999450683594, low=164.77000427246094, close=165.83999633789062, volume=48116400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-23, open=165.35000610351562, high=167.0500030517578, low=164.9199981689453, close=166.89999389648438, volume=49537800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-24, open=166.5399932861328, high=169.3000030517578, low=166.2100067138672, close=169.02000427246094, volume=48251800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-25, open=169.52999877929688, high=170.61000061035156, low=168.14999389648438, close=169.88999938964844, volume=50558300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-26, open=169.8800048828125, high=171.33999633789062, low=169.17999267578125, close=169.3000030517578, volume=44838400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-29, open=173.3699951171875, high=176.02999877929688, low=173.10000610351562, close=173.5, volume=68169400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-04-30, open=173.3300018310547, high=174.99000549316406, low=170.0, close=170.3300018310547, volume=65934800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-01, open=169.5800018310547, high=172.7100067138672, low=169.11000061035156, close=169.3000030517578, volume=50383100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-02, open=172.50999450683594, high=173.4199981689453, low=170.88999938964844, close=173.02999877929688, volume=94214900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-03, open=186.64999389648438, high=187.0, low=182.66000366210938, close=183.3800048828125, volume=163224100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-06, open=182.35000610351562, high=184.1999969482422, low=180.4199981689453, close=181.7100067138672, volume=78569700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-07, open=183.4499969482422, high=184.89999389648438, low=181.32000732421875, close=182.39999389648438, volume=77305800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-08, open=182.85000610351562, high=183.07000732421875, low=181.4499969482422, close=182.74000549316406, volume=45057100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-09, open=182.55999755859375, high=184.66000366210938, low=182.11000061035156, close=184.57000732421875, volume=48983000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-10, open=184.89999389648438, high=185.08999633789062, low=182.1300048828125, close=183.0500030517578, volume=50759500, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-05-13, open=185.44000244140625, high=187.10000610351562, low=184.6199951171875, close=186.27999877929688, volume=72044800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-14, open=187.50999450683594, high=188.3000030517578, low=186.2899932861328, close=187.42999267578125, volume=52393600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-15, open=187.91000366210938, high=190.64999389648438, low=187.3699951171875, close=189.72000122070312, volume=70400000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-16, open=190.47000122070312, high=191.10000610351562, low=189.66000366210938, close=189.83999633789062, volume=52845200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-17, open=189.50999450683594, high=190.80999755859375, low=189.17999267578125, close=189.8699951171875, volume=41282900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-20, open=189.3300018310547, high=191.9199981689453, low=189.00999450683594, close=191.0399932861328, volume=44361300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-21, open=191.08999633789062, high=192.72999572753906, low=190.9199981689453, close=192.35000610351562, volume=42309400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-22, open=192.27000427246094, high=192.82000732421875, low=190.27000427246094, close=190.89999389648438, volume=34648500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-23, open=190.97999572753906, high=191.0, low=186.6300048828125, close=186.8800048828125, volume=51005900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-24, open=188.82000732421875, high=190.5800018310547, low=188.0399932861328, close=189.97999572753906, volume=36294600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-28, open=191.50999450683594, high=193.0, low=189.10000610351562, close=189.99000549316406, volume=52280100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-29, open=189.61000061035156, high=192.25, low=189.50999450683594, close=190.2899932861328, volume=53068000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-30, open=190.75999450683594, high=192.17999267578125, low=190.6300048828125, close=191.2899932861328, volume=49947900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-05-31, open=191.44000244140625, high=192.57000732421875, low=189.91000366210938, close=192.25, volume=75158300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-03, open=192.89999389648438, high=194.99000549316406, low=192.52000427246094, close=194.02999877929688, volume=50080500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-04, open=194.63999938964844, high=195.32000732421875, low=193.02999877929688, close=194.35000610351562, volume=47471400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-05, open=195.39999389648438, high=196.89999389648438, low=194.8699951171875, close=195.8699951171875, volume=54156800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-06, open=195.69000244140625, high=196.5, low=194.1699981689453, close=194.47999572753906, volume=41181800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-07, open=194.64999389648438, high=196.94000244140625, low=194.13999938964844, close=196.88999938964844, volume=53103900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-10, open=196.89999389648438, high=197.3000030517578, low=192.14999389648438, close=193.1199951171875, volume=97262100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-11, open=193.64999389648438, high=207.16000366210938, low=193.6300048828125, close=207.14999389648438, volume=172373300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-12, open=207.3699951171875, high=220.1999969482422, low=206.89999389648438, close=213.07000732421875, volume=198134300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-13, open=214.74000549316406, high=216.75, low=211.60000610351562, close=214.24000549316406, volume=97862700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-14, open=213.85000610351562, high=215.1699981689453, low=211.3000030517578, close=212.49000549316406, volume=70122700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-17, open=213.3699951171875, high=218.9499969482422, low=212.72000122070312, close=216.6699981689453, volume=93728300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-18, open=217.58999633789062, high=218.6300048828125, low=213.0, close=214.2899932861328, volume=79943300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-20, open=213.92999267578125, high=214.24000549316406, low=208.85000610351562, close=209.67999267578125, volume=86172500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-21, open=210.38999938964844, high=211.88999938964844, low=207.11000061035156, close=207.49000549316406, volume=246421400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-24, open=207.72000122070312, high=212.6999969482422, low=206.58999633789062, close=208.13999938964844, volume=80727000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-25, open=209.14999389648438, high=211.3800048828125, low=208.61000061035156, close=209.07000732421875, volume=56713900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-26, open=211.5, high=214.86000061035156, low=210.63999938964844, close=213.25, volume=66213200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-27, open=214.69000244140625, high=215.74000549316406, low=212.35000610351562, close=214.10000610351562, volume=49772700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-06-28, open=215.77000427246094, high=216.07000732421875, low=210.3000030517578, close=210.6199951171875, volume=82542700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-01, open=212.08999633789062, high=217.50999450683594, low=211.9199981689453, close=216.75, volume=60402900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-02, open=216.14999389648438, high=220.3800048828125, low=215.10000610351562, close=220.27000427246094, volume=58046200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-03, open=220.0, high=221.5500030517578, low=219.02999877929688, close=221.5500030517578, volume=37369800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-05, open=221.64999389648438, high=226.4499969482422, low=221.64999389648438, close=226.33999633789062, volume=60412400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-08, open=227.08999633789062, high=227.85000610351562, low=223.25, close=227.82000732421875, volume=59085900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-09, open=227.92999267578125, high=229.39999389648438, low=226.3699951171875, close=228.67999267578125, volume=48076100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-10, open=229.3000030517578, high=233.0800018310547, low=229.25, close=232.97999572753906, volume=62627700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-11, open=231.38999938964844, high=232.38999938964844, low=225.77000427246094, close=227.57000732421875, volume=64710600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-12, open=228.9199981689453, high=232.63999938964844, low=228.67999267578125, close=230.5399932861328, volume=53046500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-15, open=236.47999572753906, high=237.22999572753906, low=233.08999633789062, close=234.39999389648438, volume=62631300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-16, open=235.0, high=236.27000427246094, low=232.3300018310547, close=234.82000732421875, volume=43234300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-17, open=229.4499969482422, high=231.4600067138672, low=226.63999938964844, close=228.8800048828125, volume=57345900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-18, open=230.27999877929688, high=230.44000244140625, low=222.27000427246094, close=224.17999267578125, volume=66034600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-19, open=224.82000732421875, high=226.8000030517578, low=223.27999877929688, close=224.30999755859375, volume=49151500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-22, open=227.00999450683594, high=227.77999877929688, low=223.08999633789062, close=223.9600067138672, volume=48201800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-23, open=224.3699951171875, high=226.94000244140625, low=222.67999267578125, close=225.00999450683594, volume=39960300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-24, open=224.0, high=224.8000030517578, low=217.1300048828125, close=218.5399932861328, volume=61777600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-25, open=218.92999267578125, high=220.85000610351562, low=214.6199951171875, close=217.49000549316406, volume=51391200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-26, open=218.6999969482422, high=219.49000549316406, low=216.00999450683594, close=217.9600067138672, volume=41601300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-29, open=216.9600067138672, high=219.3000030517578, low=215.75, close=218.24000549316406, volume=36311800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-30, open=219.19000244140625, high=220.3300018310547, low=216.1199951171875, close=218.8000030517578, volume=41643800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-07-31, open=221.44000244140625, high=223.82000732421875, low=220.6300048828125, close=222.0800018310547, volume=50036300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-01, open=224.3699951171875, high=224.47999572753906, low=217.02000427246094, close=218.36000061035156, volume=62501000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-02, open=219.14999389648438, high=225.60000610351562, low=217.7100067138672, close=219.86000061035156, volume=105568600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-05, open=199.08999633789062, high=213.5, low=196.0, close=209.27000427246094, volume=119548600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-06, open=205.3000030517578, high=209.99000549316406, low=201.07000732421875, close=207.22999572753906, volume=69660500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-07, open=206.89999389648438, high=213.63999938964844, low=206.38999938964844, close=209.82000732421875, volume=63516400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-08, open=213.11000061035156, high=214.1999969482422, low=208.8300018310547, close=213.30999755859375, volume=47161100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-09, open=212.10000610351562, high=216.77999877929688, low=211.97000122070312, close=216.24000549316406, volume=42201600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-12, open=216.07000732421875, high=219.50999450683594, low=215.60000610351562, close=217.52999877929688, volume=38028100, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-08-13, open=219.00999450683594, high=221.88999938964844, low=219.00999450683594, close=221.27000427246094, volume=44155300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-14, open=220.57000732421875, high=223.02999877929688, low=219.6999969482422, close=221.72000122070312, volume=41960600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-15, open=224.60000610351562, high=225.35000610351562, low=222.75999450683594, close=224.72000122070312, volume=46414000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-16, open=223.9199981689453, high=226.8300018310547, low=223.64999389648438, close=226.0500030517578, volume=44340200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-19, open=225.72000122070312, high=225.99000549316406, low=223.0399932861328, close=225.88999938964844, volume=40687800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-20, open=225.77000427246094, high=227.1699981689453, low=225.4499969482422, close=226.50999450683594, volume=30299000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-21, open=226.52000427246094, high=227.97999572753906, low=225.0500030517578, close=226.39999389648438, volume=34765500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-22, open=227.7899932861328, high=228.33999633789062, low=223.89999389648438, close=224.52999877929688, volume=43695300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-23, open=225.66000366210938, high=228.22000122070312, low=224.3300018310547, close=226.83999633789062, volume=38677300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-26, open=226.75999450683594, high=227.27999877929688, low=223.88999938964844, close=227.17999267578125, volume=30602200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-27, open=226.0, high=228.85000610351562, low=224.88999938964844, close=228.02999877929688, volume=35934600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-28, open=227.9199981689453, high=229.86000061035156, low=225.67999267578125, close=226.49000549316406, volume=38052200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-29, open=230.10000610351562, high=232.9199981689453, low=228.8800048828125, close=229.7899932861328, volume=51906300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-08-30, open=230.19000244140625, high=230.39999389648438, low=227.47999572753906, close=229.0, volume=52990800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-03, open=228.5500030517578, high=229.0, low=221.1699981689453, close=222.77000427246094, volume=50190600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-04, open=221.66000366210938, high=221.77999877929688, low=217.47999572753906, close=220.85000610351562, volume=43840200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-05, open=221.6300048828125, high=225.47999572753906, low=221.52000427246094, close=222.3800048828125, volume=36615400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-06, open=223.9499969482422, high=225.24000549316406, low=219.77000427246094, close=220.82000732421875, volume=48423000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-09, open=220.82000732421875, high=221.27000427246094, low=216.7100067138672, close=220.91000366210938, volume=67180000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-10, open=218.9199981689453, high=221.47999572753906, low=216.72999572753906, close=220.11000061035156, volume=51591000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-11, open=221.4600067138672, high=223.08999633789062, low=217.88999938964844, close=222.66000366210938, volume=44587100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-12, open=222.5, high=223.5500030517578, low=219.82000732421875, close=222.77000427246094, volume=37498200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-13, open=223.5800018310547, high=224.0399932861328, low=221.91000366210938, close=222.5, volume=36766600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-16, open=216.5399932861328, high=217.22000122070312, low=213.9199981689453, close=216.32000732421875, volume=59357400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-17, open=215.75, high=216.89999389648438, low=214.5, close=216.7899932861328, volume=45519300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-18, open=217.5500030517578, high=222.7100067138672, low=217.5399932861328, close=220.69000244140625, volume=59894900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-19, open=224.99000549316406, high=229.82000732421875, low=224.6300048828125, close=228.8699951171875, volume=66781300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-20, open=229.97000122070312, high=233.08999633789062, low=227.6199951171875, close=228.1999969482422, volume=318679900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-23, open=227.33999633789062, high=229.4499969482422, low=225.80999755859375, close=226.47000122070312, volume=54146000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-24, open=228.64999389648438, high=229.35000610351562, low=225.72999572753906, close=227.3699951171875, volume=43556100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-25, open=224.92999267578125, high=227.2899932861328, low=224.02000427246094, close=226.3699951171875, volume=42308700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-26, open=227.3000030517578, high=228.5, low=225.41000366210938, close=227.52000427246094, volume=36636700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-27, open=228.4600067138672, high=229.52000427246094, low=227.3000030517578, close=227.7899932861328, volume=34026000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-09-30, open=230.0399932861328, high=233.0, low=229.64999389648438, close=233.0, volume=54541900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-01, open=229.52000427246094, high=229.64999389648438, low=223.74000549316406, close=226.2100067138672, volume=63285000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-02, open=225.88999938964844, high=227.3699951171875, low=223.02000427246094, close=226.77999877929688, volume=32880600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-03, open=225.13999938964844, high=226.80999755859375, low=223.32000732421875, close=225.6699981689453, volume=34044200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-04, open=227.89999389648438, high=228.0, low=224.1300048828125, close=226.8000030517578, volume=37245100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-07, open=224.5, high=225.69000244140625, low=221.3300018310547, close=221.69000244140625, volume=39505400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-08, open=224.3000030517578, high=225.97999572753906, low=223.25, close=225.77000427246094, volume=31855700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-09, open=225.22999572753906, high=229.75, low=224.8300018310547, close=229.5399932861328, volume=33591100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-10, open=227.77999877929688, high=229.5, low=227.1699981689453, close=229.0399932861328, volume=28183500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-11, open=229.3000030517578, high=229.41000366210938, low=227.33999633789062, close=227.5500030517578, volume=31759200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-14, open=228.6999969482422, high=231.72999572753906, low=228.60000610351562, close=231.3000030517578, volume=39882100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-15, open=233.61000061035156, high=237.49000549316406, low=232.3699951171875, close=233.85000610351562, volume=64751400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-16, open=231.60000610351562, high=232.1199951171875, low=229.83999633789062, close=231.77999877929688, volume=34082200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-17, open=233.42999267578125, high=233.85000610351562, low=230.52000427246094, close=232.14999389648438, volume=32993800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-18, open=236.17999267578125, high=236.17999267578125, low=234.00999450683594, close=235.0, volume=46431500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-21, open=234.4499969482422, high=236.85000610351562, low=234.4499969482422, close=236.47999572753906, volume=36254500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-22, open=233.88999938964844, high=236.22000122070312, low=232.60000610351562, close=235.86000061035156, volume=38846600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-23, open=234.0800018310547, high=235.13999938964844, low=227.75999450683594, close=230.75999450683594, volume=52287000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-24, open=229.97999572753906, high=230.82000732421875, low=228.41000366210938, close=230.57000732421875, volume=31109500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-25, open=229.74000549316406, high=233.22000122070312, low=229.57000732421875, close=231.41000366210938, volume=38802300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-28, open=233.32000732421875, high=234.72999572753906, low=232.5500030517578, close=233.39999389648438, volume=36087100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-29, open=233.10000610351562, high=234.3300018310547, low=232.32000732421875, close=233.6699981689453, volume=35417200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-30, open=232.61000061035156, high=233.47000122070312, low=229.5500030517578, close=230.10000610351562, volume=47070900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-10-31, open=229.33999633789062, high=229.8300018310547, low=225.3699951171875, close=225.91000366210938, volume=64370100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-01, open=220.97000122070312, high=225.35000610351562, low=220.27000427246094, close=222.91000366210938, volume=65276700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-04, open=220.99000549316406, high=222.7899932861328, low=219.7100067138672, close=222.00999450683594, volume=44944500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-05, open=221.8000030517578, high=223.9499969482422, low=221.13999938964844, close=223.4499969482422, volume=28111300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-06, open=222.61000061035156, high=226.07000732421875, low=221.19000244140625, close=222.72000122070312, volume=54561100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-07, open=224.6300048828125, high=227.8800048828125, low=224.57000732421875, close=227.47999572753906, volume=42137700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-08, open=227.1699981689453, high=228.66000366210938, low=226.41000366210938, close=226.9600067138672, volume=38328800, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2024-11-11, open=225.0, high=225.6999969482422, low=221.5, close=224.22999572753906, volume=42005600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-12, open=224.5500030517578, high=225.58999633789062, low=223.36000061035156, close=224.22999572753906, volume=40398300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-13, open=224.00999450683594, high=226.64999389648438, low=222.75999450683594, close=225.1199951171875, volume=48566200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-14, open=225.02000427246094, high=228.8699951171875, low=225.0, close=228.22000122070312, volume=44923900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-15, open=226.39999389648438, high=226.9199981689453, low=224.27000427246094, close=225.0, volume=47923700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-18, open=225.25, high=229.74000549316406, low=225.1699981689453, close=228.02000427246094, volume=44686000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-19, open=226.97999572753906, high=230.16000366210938, low=226.66000366210938, close=228.27999877929688, volume=36211800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-20, open=228.05999755859375, high=229.92999267578125, low=225.88999938964844, close=229.0, volume=35169600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-21, open=228.8800048828125, high=230.16000366210938, low=225.7100067138672, close=228.52000427246094, volume=42108300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-22, open=228.05999755859375, high=230.72000122070312, low=228.05999755859375, close=229.8699951171875, volume=38168300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-25, open=231.4600067138672, high=233.25, low=229.74000549316406, close=232.8699951171875, volume=90152800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-26, open=233.3300018310547, high=235.57000732421875, low=233.3300018310547, close=235.05999755859375, volume=45986200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-27, open=234.47000122070312, high=235.69000244140625, low=233.80999755859375, close=234.92999267578125, volume=33498400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-11-29, open=234.80999755859375, high=237.80999755859375, low=233.97000122070312, close=237.3300018310547, volume=28481400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-02, open=237.27000427246094, high=240.7899932861328, low=237.16000366210938, close=239.58999633789062, volume=48137100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-03, open=239.80999755859375, high=242.75999450683594, low=238.89999389648438, close=242.64999389648438, volume=38861000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-04, open=242.8699951171875, high=244.11000061035156, low=241.25, close=243.00999450683594, volume=44383900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-05, open=243.99000549316406, high=244.5399932861328, low=242.1300048828125, close=243.0399932861328, volume=40033900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-06, open=242.91000366210938, high=244.6300048828125, low=242.0800018310547, close=242.83999633789062, volume=36870600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-09, open=241.8300018310547, high=247.24000549316406, low=241.75, close=246.75, volume=44649200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-10, open=246.88999938964844, high=248.2100067138672, low=245.33999633789062, close=247.77000427246094, volume=36914800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-11, open=247.9600067138672, high=250.8000030517578, low=246.25999450683594, close=246.49000549316406, volume=45205800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-12, open=246.88999938964844, high=248.74000549316406, low=245.67999267578125, close=247.9600067138672, volume=32777500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-13, open=247.82000732421875, high=249.2899932861328, low=246.24000549316406, close=248.1300048828125, volume=33155300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-16, open=247.99000549316406, high=251.3800048828125, low=247.64999389648438, close=251.0399932861328, volume=51694800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-17, open=250.0800018310547, high=253.8300018310547, low=249.77999877929688, close=253.47999572753906, volume=51356400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-18, open=252.16000366210938, high=254.27999877929688, low=247.74000549316406, close=248.0500030517578, volume=56774100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-19, open=247.5, high=252.0, low=247.08999633789062, close=249.7899932861328, volume=60882300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-20, open=248.0399932861328, high=255.0, low=245.69000244140625, close=254.49000549316406, volume=147495300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-23, open=254.77000427246094, high=255.64999389648438, low=253.4499969482422, close=255.27000427246094, volume=40858800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-24, open=255.49000549316406, high=258.2099914550781, low=255.2899932861328, close=258.20001220703125, volume=23234700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-26, open=258.19000244140625, high=260.1000061035156, low=257.6300048828125, close=259.0199890136719, volume=27237100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-27, open=257.8299865722656, high=258.70001220703125, low=253.05999755859375, close=255.58999633789062, volume=42355300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-30, open=252.22999572753906, high=253.5, low=250.75, close=252.1999969482422, volume=35557500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2024-12-31, open=252.44000244140625, high=253.27999877929688, low=249.42999267578125, close=250.4199981689453, volume=39480700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-02, open=248.92999267578125, high=249.10000610351562, low=241.82000732421875, close=243.85000610351562, volume=55740700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-03, open=243.36000061035156, high=244.17999267578125, low=241.88999938964844, close=243.36000061035156, volume=40244100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-06, open=244.30999755859375, high=247.3300018310547, low=243.1999969482422, close=245.0, volume=45045600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-07, open=242.97999572753906, high=245.5500030517578, low=241.35000610351562, close=242.2100067138672, volume=40856000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-08, open=241.9199981689453, high=243.7100067138672, low=240.0500030517578, close=242.6999969482422, volume=37628900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-10, open=240.00999450683594, high=240.16000366210938, low=233.0, close=236.85000610351562, volume=61710900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-13, open=233.52999877929688, high=234.6699981689453, low=229.72000122070312, close=234.39999389648438, volume=49630700, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-14, open=234.75, high=236.1199951171875, low=232.47000122070312, close=233.27999877929688, volume=39435300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-15, open=234.63999938964844, high=238.9600067138672, low=234.42999267578125, close=237.8699951171875, volume=39832000, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-16, open=237.35000610351562, high=238.00999450683594, low=228.02999877929688, close=228.25999450683594, volume=71759100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-17, open=232.1199951171875, high=232.2899932861328, low=228.47999572753906, close=229.97999572753906, volume=68488300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-21, open=224.0, high=224.4199981689453, low=219.3800048828125, close=222.63999938964844, volume=98070400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-22, open=219.7899932861328, high=224.1199951171875, low=219.7899932861328, close=223.8300018310547, volume=64126500, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-23, open=224.74000549316406, high=227.02999877929688, low=222.3000030517578, close=223.66000366210938, volume=60234800, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-24, open=224.77999877929688, high=225.6300048828125, low=221.41000366210938, close=222.77999877929688, volume=54697900, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-27, open=224.02000427246094, high=232.14999389648438, low=223.97999572753906, close=229.86000061035156, volume=94863400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-28, open=230.85000610351562, high=240.19000244140625, low=230.80999755859375, close=238.25999450683594, volume=75707600, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-29, open=234.1199951171875, high=239.86000061035156, low=234.00999450683594, close=239.36000061035156, volume=45486100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-30, open=238.6699981689453, high=240.7899932861328, low=237.2100067138672, close=237.58999633789062, volume=55658300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-01-31, open=247.19000244140625, high=247.19000244140625, low=233.44000244140625, close=236.0, volume=101075100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-03, open=229.99000549316406, high=231.8300018310547, low=225.6999969482422, close=228.00999450683594, volume=73063300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-04, open=227.25, high=233.1300048828125, low=226.64999389648438, close=232.8000030517578, volume=45067300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-05, open=228.52999877929688, high=232.6699981689453, low=228.27000427246094, close=232.47000122070312, volume=39620300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-06, open=231.2899932861328, high=233.8000030517578, low=230.42999267578125, close=233.22000122070312, volume=29925300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-07, open=232.60000610351562, high=234.0, low=227.25999450683594, close=227.6300048828125, volume=39707200, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-10, open=229.57000732421875, high=230.58999633789062, low=227.1999969482422, close=227.64999389648438, volume=33115600, vwap=None, split_ratio=None, dividend=0.25),\n",
" YFinanceEquityHistoricalData(date=2025-02-11, open=228.1999969482422, high=235.22999572753906, low=228.1300048828125, close=232.6199951171875, volume=53718400, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-12, open=231.1999969482422, high=236.9600067138672, low=230.67999267578125, close=236.8699951171875, volume=45243300, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-13, open=236.91000366210938, high=242.33999633789062, low=235.57000732421875, close=241.52999877929688, volume=53614100, vwap=None, split_ratio=None, dividend=0.0),\n",
" YFinanceEquityHistoricalData(date=2025-02-14, open=241.07000732421875, high=245.41000366210938, low=241.0, close=244.60000610351562, volume=40145605, vwap=None, split_ratio=None, dividend=0.0)]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:49.028903Z",
"start_time": "2025-02-14T22:51:49.024918Z"
}
},
"cell_type": "code",
"source": "data = [i.open for i in aapl.results]",
"id": "481bc5b5742518f7",
"outputs": [],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:49.064656Z",
"start_time": "2025-02-14T22:51:49.059113Z"
}
},
"cell_type": "code",
"source": [
"VaR_historical = pyfinlib.risk.var.varcovar(data, 0.05)\n",
"VaR_historical_10 = pyfinlib.risk.var.varcovar(data, 0.1)\n",
"VaR_historical, VaR_historical_10"
],
"id": "2cc84cfff89a39a1",
"outputs": [
{
"data": {
"text/plain": [
"(-0.026031920848673024, -0.02002042717077901)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 5
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:49.089089Z",
"start_time": "2025-02-14T22:51:49.085824Z"
}
},
"cell_type": "code",
"source": "returns = pyfinlib.util.rates_of_change(data)",
"id": "28a68dea99911874",
"outputs": [],
"execution_count": 6
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-14T22:51:49.363386Z",
"start_time": "2025-02-14T22:51:49.221932Z"
}
},
"cell_type": "code",
"source": [
"# Plot the historical returns and VaR threshold\n",
"plt.figure(figsize=(10, 6))\n",
"plt.hist(returns, bins=50, alpha=0.75, color='blue', edgecolor='black')\n",
"plt.axvline(VaR_historical, color='red', linestyle='--', label=f'VaR (95%): {VaR_historical:.2%}')\n",
"plt.axvline(VaR_historical_10, color='orange', linestyle='--', label=f'VaR (90%): {VaR_historical_10:.2%}')\n",
"plt.title('Historical Returns of AAPL')\n",
"plt.xlabel('Returns')\n",
"plt.ylabel('Frequency')\n",
"plt.legend()\n",
"plt.show()"
],
"id": "5ab5e055a23f28ed",
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0kAAAIjCAYAAADWYVDIAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAYt1JREFUeJzt3Qd4FOX2+PGTtmlAAOlSFUQBQYoFFaUJggUBRWyA+he5oFdFRLGiiChe270i6E8BsYuKeu2KggpYwIKAFwEJinSQQBLSduf/nHfZZDaNJOwks9nv53kG3t2d2Xd2J5vM2fO+Z6Isy7IEAAAAAGBE+/8DAAAAACiCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJACoZC1btpRRo0aJm0RFRcnkyZMdee7U1FTz/HPnznXk+eGXl5cnEydOlGbNmkl0dLRccMEFVb1LABC2CJIA4DDoib8GAMuXLy/28Z49e0qHDh0Ou58PPvjAsSDGLRYtWmTey8ASExMjDRo0kAsvvFB+/fXXCj3nli1bzPv2008/SXU3e/Zsefjhh8379fzzz8tNN91Upu1OOukk837PnDnzkOt6vV5p0qSJWf/DDz8sdh19v+3HMSkpSdq1ayd33nmn7Nu3r8yfHQCoSrFV2jsARKC1a9eab/rLGyTNmDHDsUDpwIEDEhvrjj8J//znP+XEE0+U3NxcWblypcyaNcsEUKtWrZJGjRqVO0i69957TfbuhBNOkOrs888/lyOPPFIee+yxMm+zbt06+f77783789JLL8k//vGPQ/axdevW/PUHDBhQ4roadNWoUUPS09Plk08+kalTp5rtlyxZYoIjAHAzd/xFBIAIEh8fL27g8/kkJydHEhISzOIWPXr0MNmQgLZt25qT93nz5pnhZG6QlZUlHo+n3MGuk3bs2CG1a9cu1zYvvviiydY98sgj5j3XoZEaAJW2fpcuXWTkyJFy++23S0ZGhiQnJxe7rj5fvXr1THvMmDEydOhQeeutt+Sbb76R7t27l/PVAUDlcs9vdwCI0DlJmjHRbEebNm1MsHLEEUfI6aefLp9++ql5XNfVLJKyD2MK0BPVm2++2cxF0QBMg4p//etfYllWUL+6zXXXXWcyAO3btzfrfvTRR/mPFc5S/fXXX3L11Veb4VW6bqtWrUywooGV2rNnj0yYMEGOP/54kzGoVauWySz8/PPPIQ+a1IYNG4rs31VXXSUNGzY0+6evSYecBWj2STNS6sorr8x/3wJzo0qaG6ZDJHWxP49u9+qrr5ohY5qt0SFkOnRMt9fXrvuic4C0Xb9+ffO+6NA0O92+a9euUrNmTfNe6fv2xBNPHPL1H+r4BuZ8ffHFF7J69er816n7fSgvv/yyCWbOPfdcSUlJMbdLyzYuWLBAhg8fLsOGDTO333nnHSmr3r17m/83btxY5m0AoKqQSQKAEEhLS5Ndu3YVuV8DoEPR4GTatGny//7f/zPzQ/TkW+dp/PDDD3LWWWfJtddea4aNadD0wgsvBG2rJ8rnn3++OUHWgEaHlH388cdyyy23mBP3wkOvdLjT66+/boIl/Za/pKyB9qf7snfvXhk9erQce+yx5vneeOMNyczMNFmU33//Xd5++2256KKLTAC1fft2efrpp+XMM8+UNWvWmOAqFDQIUHXq1Mm/T/s65ZRT8gM/DUx0joy+B/r+3XjjjXLcccfJfffdJ3fffbd5DYFg69RTT63QfkyZMsW8bg2AsrOzTVtpMNS/f385+eSTTfDy2WefmczM0UcfnT98TY/dJZdcIn369JGHHnrI3KfzrHTo2Q033FBin2U5vvra9edCh7Pp0Db9WVL6+kvz7bffyvr162XOnDnmtQwZMsQE0JohKs67775rnl+DJB32qIGkrn/ppZeW6f0LBLn6JQAAuJ4FAKiwOXPm6Nf5pS7t27cP2qZFixbWyJEj82936tTJOuecc0rtZ9y4cea5Cnv77bfN/ffff3/Q/RdeeKEVFRVlrV+/Pv8+XS86OtpavXp1kefRx+6555782yNGjDDrfv/990XW9fl85v+srCzL6/UGPbZx40YrPj7euu+++4Lu0+fX96o0X3zxhVlv9uzZ1s6dO60tW7ZYH330kdW6dWvzWr777rv8da+++mqrcePG1q5du4KeY/jw4VZKSoqVmZlpbuv+l9R34eMQcOaZZ5ql8H4dddRR+c8boNvrY/bXqzp37mx17do1//YNN9xg1apVy8rLy7PKozzHV/e58M9aaa677jqrWbNm+cfzk08+MX39+OOPxa5/7rnnWqeddlr+7WeeecaKjY21duzYEbSe/hzp86xdu9YcRz3+Tz/9tPm5aNiwoZWRkRH02SnuZwwAqhrD7QAgBHQ4nGYLCi8dO3Y85LY6j0SHSekk+vLSgg5aBU6LHdjp8CyNfQpXINMsj1YaO9RcJc0QnXfeedKtW7cijweG+unQr8CcHM2m7N692ww30+FgmgWrKB1Cp9kRzUSdffbZJkunmZLA0Dl9XW+++abZP21rBi+waEZH1z+c/kui83ASExOLfUzn3Nhp1kozbfZjrMPmAkMonTq+5SkX/tprr8nFF1+cfzx1OJzOT9LsUGF6bDWDpdmwAJ1jpNtqZrI4+nOgx1GzjJoNbd26tbz//vtmqCIAuB3D7QAgBHRoWnEBhQ4RK24Ynp0OCRs0aJAcc8wxply4BgZXXHFFmQKsTZs2mWBC57nYBYZa6eN2esJ6KDt37jRD1g5VulyDKZ1T89RTT5l5JvY5OIczpEqHx2mQoUO7dA6MzuWxF0jQ/dNhgM8884xZSipiEGolvXc6j0yDgcLH/e+//86/PXbsWBNM6JwtndPUr18/M69Hj3Uoj29ZabU5fR/151aH3AX06tVLXnnlFTMk0P6ea0ClQ0c7d+4ctL4OMdSgaty4cUX60EBW517FxcVJ06ZNzfBDAAgXBEkAUMXOOOMMM19DJ8Hryeuzzz5r5ppo6WudpxRKJWVCKuKBBx6Qu+66y2R+dL5O3bp1zYm1zgfSAKqitKBB3759TVuLIegcqGuuucYUs9DiBYHnvvzyy012pzhlCTBLKkOtwZ5mb8r63hW3bmGaodFrNWk2RrM/uuhcoBEjRphrGlW2QLZIA7XiLF682ARMhdc/7bTTil1fs2ZHHXVUkZ/rQHU7AAg3BEkA4AIaYGgFNl00g6InmFrQIRAklXRC36JFC1MoYP/+/UHZhv/973/5j5eXZkU0A6DXJSqNFnHQE+nnnnsu6H7N8oTy5PjBBx80GSUtTKCBo+6fvlYNZgLBVElKux6PZnt0XwvT7EzhE/5Q0OIIOkRQFw30NLukhS400NShaJV1fHXYnwbkOtTOXmo9QIf2aVAUCJI0S7h06VJTIEOHa9rp69Csp1bF08p/AFBdMCcJAKqYzvew03k9etKsFdQCAteiKXxSP3DgQBMsPPnkk0H3ayZKA4TSLvZZEs0GaQbnv//9r6myV1ig9LRmUAqXGZ8/f76puhZKOkxL579o6e5t27aZfvW2DucqLpDTYWSHet8Cz6vX7AmUNFfvvfee/Pnnn+L0Mdb3OJDtsh/nwpw4vhpwaqCkQ+Q0SCq8aDlwfW8D+xXIIuk1qgqvq5koDZyKm8cEAOGMTBIAVDEtpKDllPUaOppR0sBEszT6zX2APhb4ll+LE2igoKWYNSuh3/jfcccdplR2p06dzJA9zRTosLeKzgPRoXT6PHoCrOWzdQ7M1q1bTRD09ddfm0IEejKt86k0+6VltX/55RdzsuxEFkZLXuucnscff9xklnTRstg6J0aH4ul7qNdt0oINmnnRttLXr/uqGSjNxGjQpNvo/CLN0un7rPOC9GRfhzzqxVKdmDujfek+aXEEnZ+j2ar//Oc/pqR3aaW6nTi+eox0zlhJpdC15Pj//d//mSILgbLgup861LGk9a+//nrz3uuFZstLr20VuF6XnZZGLzwXCwAqTVWX1wOAcHaoMsbFlWUuXHpayzufdNJJVu3ata3ExETr2GOPtaZOnWrl5OTkr6Olo6+//nqrfv36pvSz/df3/v37rZtuuslq0qSJFRcXZ7Vp08Z6+OGH80s7B+g2Wkq8OIVLgKtNmzaZUuDap5Zv1hLYun12dnZ+CfCbb77ZlOLW/dby0MuWLStSQru8JcDnz59f7OM9e/Y0ZbT37t1rbm/fvt3sj5ax1tfdqFEjq0+fPqY0td0777xjtWvXzpSrLrwfjzzyiHXkkUea16f7v3z58hJLgBe3X3ock5OTi9wfKIMd8MYbb1j9+vWzGjRoYHk8Hqt58+bWtddea23dutU6lLIe37KUANf3TN+HK664osR1tMx5UlKSNXjwYGvFihXmddx1110lrp+ammrW0X20v3Yt/3045fP//PPPUrcHACdF6T+VF5IBAAAAgLsxJwkAAAAAbAiSAAAAAMCGIAkAAAAAbAiSAAAAAMCGIAkAAAAAbAiSAAAAACCSLibr8/lky5Yt5oJ0enVyAAAAAJHJsizZv3+/NGnSRKKjoyM3SNIAqaSrhAMAAACIPH/++ac0bdo0coMkzSAF3ohatWpV9e4AQMlyc0XmzPG3r7xSJC4u9H34ckV+P9jHUVeKRDvQBwAALrVv3z6TQAnECCWJsjTnVM3fiJSUFElLSyNIAuBuGRkiNWr42+npIsnJoe8jL0Pk9YN9DEsXiXWgDwAAwjw2oHADAAAAANgQJAEAAACAW4KkmTNnSseOHU2qS5fu3bvLhx9+mP94z549TUU6+zJmzJiq3GUAAAAA1VyVFm7QihIPPvigtGnTxpTje/7552XQoEHy448/Svv27c0611xzjdx333352yQlJVXhHgMAAFRfXq9XcrWIDBCmYmJiJDY29rAv/VOlQdJ5550XdHvq1Kkmu/TNN9/kB0kaFDVq1KiK9hAAACAypKeny+bNm80X10A40/ihcePG4vF4KvwcsW765mL+/PmSkZFhht0FvPTSS/Liiy+aQEmDqrvuuqvUbFJ2drZZ7BUsAAAAUPp5mAZIeo5Vv379w/4WHqgKGuDn5OTIzp07ZePGjWa0WmkXjHV1kPTLL7+YoCgrK0tq1KghCxYskHbt2pnHLr30UmnRooW5Iu7KlSvl1ltvlbVr18pbb71V4vNNmzZN7r333kp8BQAQIvHxIu+9V9B2QnS8yJnvFbQBwFymLdecYGqAlJiYWNW7A1SY/vzGxcXJpk2bTMCUkJBQoeep8usk6c7/8ccfplb5G2+8Ic8++6wsXrw4P1Cy+/zzz6VPnz6yfv16Ofroo8ucSdILRnGdJAAAgOLpl9X6zXurVq0qfFIJhMPPc1mvk1TlmSQdK9i6dWvT7tq1q3z//ffyxBNPyNNPP11k3ZNPPtn8X1qQFB8fbxYAAAAAqIgqD5IK8/l8QZkgu59++sn8rxOxAKDa0YpSL73kb192mUhcXOj78OWKpB7so+VlItEO9AEAQJir0uskTZo0Sb788ktJTU01c5P09qJFi+Syyy6TDRs2yJQpU2TFihXm8XfffVdGjBghZ5xxhrm2EgBUOzk5Ilde6V+07QRfjsg3V/oXbQMAKmz37t3SoEEDc65a1WbNmlWkcjTCNEjasWOHCXzatm1r5hrpULuPP/5YzjrrLDMM77PPPpN+/frJscceKzfffLMMHTpU/vvf/1blLgMAAMAFNCA4++yzi33sq6++MhX6tPDXoYwaNcqsq4tO+Nd5LBMnTjTzWg5FL1+j1/hs2bJl/n0LFy6UU089VWrWrGmqM2vhsby8vPzHNaAK9Gdf9BI4AZ9++qkcc8wxZs7MFVdcYebwB+hcGn1MCxPYXXXVVfLDDz+Y1364fv75Z7nkkkvMvH4thHDccceZ6TBl8f7775spMrpdnTp15IILLgh6XGsRnHPOOaaSogaYt9xyS9D7o9dL7dy5synopsd4z549+Y/pejo957vvvpNqPdzuueeeK/ExPShawAEAAAAo7OqrrzZfoGvp8qZNmwY9NmfOHOnWrVuZRx9psKXbaJU/HcU0cuRIE7g89NBDJW6TmZlpzmX1C357cDFw4EC54447ZN68efLXX3/JmDFjTIn1f/3rX0HbazIgcF1QdcQRR+RPPdEKzzrCqn///nLhhRfKM888I9ddd515/LbbbjPPqRWg7TTBoNv9+9//lh49esjhWLFihQlg9DI8ek6+dOlSGT16tLlQa2A/ivPmm2/KNddcIw888ID07t3bBDWrVq3Kf1zfBw2QNHjU59y6datJmGhwqtuo//f//p/Z9rXXXjNtvT/w3j3yyCNy2mmnyUknnSSOs6q5tLQ0rd5n/gcAV0tP13Kj/kXbTshNt6yXxL9oGwAsyzpw4IC1Zs0a838Q/V1U0lKedTMzy7ZuOeTm5loNGza0pkyZEnT//v37rRo1algzZ860du3aZQ0fPtxq0qSJlZiYaHXo0MF6+eWXg9YfOXKkNWjQoKD7hgwZYnXu3LnU/ufPn2/Vr18/6L5JkyZZ3bp1C7rv3XfftRISEqx9+/aZ2xs3bjTnpj/++GOxz7t9+3bzeOBYTJw40Ro7dqxpL1myxOratauVl5dX7LaLFy+2PB6PlVn4/Q6BsWPHWr169Sr1eBx55JHWs88+W+I6H3zwgRUdHW1t27Yt/z49TrVq1bKys7PNbT1Ov/76q2k/9dRT1sCBA017w4YNVps2bfLfxwr9PJcjNqjS4XYAAABwsRo1Sl6GDg1et0GDktcdMCB4XR2eVtx65RAbG2uyEHPnzjXXeAqYP3++yVjocDEdMqfDs3QImGY0NBuiw9dKG66l62mWQzMzpdFhbfrcdlp8rHDJaR12pvuh2Rm7888/32RrTj/9dDP3PkCvVaVFyj755BOTrdJ+NCOmWa5//OMfpgK0ZnSKo9kzzd58++23+ff17NnTDCk8XGlpaVK3bt0SH9ehfpo504u36nA5fQ0DBgwIyiQtW7ZMjj/+eGnYsGH+fZot07Lcq1evNrc7depkhhvq69Chi4FsoGbPpk+fboYxVgaCJAAAAIQlnYejxb7sUzR02JwOw9Nr4Rx55JEyYcIEOeGEE+Soo46S66+/3gyte/3114Oe57333jNzYDTA0ZN4nTevc2VKo3OCmjRpEnSfnvBrgPXKK6+YQE2Dhvvuu888pkPLlPajw8Y0mNPgTYMknbcTCJR0mJ/unxYw0+F4GnDo63zwwQelV69eZh91yJnO6X/yySeD+td5Pvq67fOVmjdvftiVoZcuXWqGv2mQWZLff//d/D958mS58847zXuqc5I0SAvMK9q2bVtQgKQCt/UxpddM1Wun6uV+NFDVYYcvvPCCeW0nnniieY/18kHaR0SVAAcAAIBLpKeX/FjhbMaOHSWvG13oe/kQVYPT4l5aJGH27NnmZFyvpamZl0BgooGKzmnRoEMDFi2AoNkePeG20+Bj5syZkpGRIY899pjJUmmgVZoDBw4UyRppwbGHH37YZD00Y6XX7rzrrrvMPmmGRdWrV0/Gjx+fv42e+G/ZssVsp9klpYGTFjQL+O2338wcJy1qoJWeb7jhBpOl6dChQ5HKz5q50gxUgG5XGn2eQLEHnecUyOgEaCZIi1Pcc8895vWVROdSKZ2PFXjvNGDV+WIaEF577bVSFhoY2oNerSCofWtFbA1y9Xi/9dZb5n3TAhFOVfQjkwQAbqEXwtZvN3Vx6qLY0fEip7/uX7QNAKVJTi55KRQglLpuYmLZ1q1gAQctGLB//35zUq4ZiDPPPNM8poGHVmXTCnNffPGFueamZiLs1eL8u5NsshM61EsDLh2uVlqBsUCw8/fffxe5XwOgvXv3mipuu3btMgGG0kxWSfRkXwO8kmiAodknDUQ0ULrooovMUD19nYULnWnWRofslZVmbvR90eWDDz4IemzNmjWmArVmkA6VuQlkq9q1a5d/nwaJ+rr1vVBasGH79u1B2wVu62PF0ffzxhtvNMGWXipIX7seLy0AobedQiYJANwiNlbkoouc7SM6VqS5w33gsOlQHx3/X146zEZPnIBIMmzYMJNZefnll03WROft6JA1tWTJEhOkXH755ea2BhmalbGfyBemGZ/bb7/dnJxrtTjNzBRHh8Fp9bfiaP+BoXg69E4rxHXp0qXEPjVAKWlInAZrOhdIs0yBoEznJwX+12xZgA491PlPum9lpUMSi7N69WpTZU4r/Wmp80PR+VkaFK1du9ZkwgL7pyXPA5X4unfvbp5Lf8cFflfp/CMtdV7cMdE5Sb/++qsJfpW+VvtrdxJBEgAALqInD4MHj5A9e7LLvW3duvGyYME8AiVEFJ3jc/HFF5u5K1oAwF6koE2bNmZ+i86p0fkxjz76qMlclBYkKc1W6JykGTNmmDlNxdGMlPapgYs+d4Bmr3TekwZbOixM5xLpcL9AsYXnn3/ezLUJBDK6jmavNKNT3O+D+++/3wR7SvvRaxY9/vjjZuibBhE6vC1Ah81p5kazaQFa3EIDoWnTppX5PV21apUJkPQ1arAYmC+kryGQpdLiF/rcug/6/Bro6DBDHRqnQaEGRvpeBN5Ppfus770ORdQiDPq8mqEaN26cCbDsNNjTcuMaZAaGKupcLD0mur5mD/V4OoUgCQDcQi+mt2CBvz14sD+zFGq+PJHNB/toOtifWYKraAZJAySP5w5JSAi+DkppsrI2yZ49U832BEmINDrkTjMueo0iezEFPQHXggJ6sq/zkHTYmBZJOFSmVuck6Qm6nshrZkqHdxWmBR40O6QBkH2+zYcffmiyJTr3SYfvvfPOO2bej50WZdDiCtqPzqvSogh6PaTCNEN28803B70mrean2R29HpIGcjo3J0ADCr1OkZ0OdQsEGWX1xhtvyM6dO02mzJ4t08BHM0NK5z1p1sie0dGgSF+TBkE6Z0uHEX7++ef5QaQGWVrQQd9TzSrp+6qvJTCHzO7ee+81Q+q06EaAvmbN7uk8rMsuu+yQ88YOR5TWAZdqTL9R0OEH+mHQCBcAXCsjo6AErk6WruD4/FLlZYi8frCPYekisQ70gcOybt06Of/80VKr1jOSlNSmzNtlZq6TfftGy7vvPmO+PQfKQ7+137hxo7Rq1apIMQKUTKvTaaCimZfyBiKhFhgep8MJ9dw3kmWV8vNc1tiArxABAACACtBMh36xoZXzdIhZVdIS4zonK9IDpFAhSAIAAAAqSCuvuUHfvn2reheqFUqAAwAAAIANQRIAAAAA2BAkAQAAAIANQRIAAAAA2FC4AQDcwuMROXhVcdN2QrRH5JQ5BW0AAFAEQRIAuEVcnIjtSvGOiI4TOcrhPgAACHMMtwMAAAAAG4IkAHCLvDy9fLt/0bYTfHkif73vX7QNAKiw3bt3S4MGDSQ1NbWqd0VmzZol5513XlXvRrVBkAQAbpGdLXLuuf5F207wZYssPte/aBsAwpQGBGeffXaxj3311VcSFRUlK1euPOTzjBo1yqyrS1xcnLRq1UomTpwoWVlZh9x26tSpMmjQIGnZsmX+fQsXLpRTTz1VatasKY0aNZJbb71V8gp98aX71aNHD0lISJBmzZrJ9OnTgx7/9NNP5ZhjjpFatWrJFVdcITk5OfmPpaWlmcc2bdoUtM1VV10lP/zwg3nth+vnn3+WSy65xOxbYmKiHHfccfLEE08ccrs9e/bIZZddZva7du3acvXVV0t6errjr90JBEkAAAAIO3oCrifUmzdvLvLYnDlzpFu3btKxY8cyPZcGW1u3bpXff/9dHnvsMXn66aflnnvuKXWbzMxMee6558x+2IOLgQMHmuf78ccf5bXXXpN3331Xbrvttvx19u3bJ/369ZMWLVrIihUr5OGHH5bJkyfLM888Yx73+Xxy6aWXypgxY2TZsmWyfPny/MeUPpc+ptvbeTwes92///1vOVwrVqwwGbIXX3xRVq9eLXfccYdMmjRJnnzyyVK30wBJ19fj8t5778mXX34po0ePdvy1O8Kq5tLS0ix9mfo/ALhaerpl6a9lXbTthNx0y3pJ/Iu24Tq//fabdeyxPa2TTvrN6tnTKvOi6+t2uj1QXgcOHLDWrFlj/g+ivydKWvLKsW5uZtnWLYfc3FyrYcOG1pQpU4Lu379/v1WjRg1r5syZ1q5du6zhw4dbTZo0sRITE60OHTpYL7/8ctD6I0eOtAYNGhR035AhQ6zOnTuX2v/8+fOt+vXrB903adIkq1u3bkH3vfvuu1ZCQoK1b98+c/upp56y6tSpY2VnZ+evc+utt1pt27Y17e3bt5tz18CxmDhxojV27FjTXrJkidW1a1crLy+v2H1avHix5fF4rMzMQu93CIwdO9bq1atXiY/rz4/u9/fff59/34cffmhFRUVZf/31l+OvvUw/z+WIDcgkAQAAoHiv1yh5+Wpo8LpvNih53UUDgtd9p2Xx65VDbGysjBgxQubOnatf+uffP3/+fPF6vWa4mA6Z69q1q7z//vuyatUqk9XQIVzfffddic+r6y1dutRkZkqjw9r0ue2ys7PNMDI7Ha6m+6GZE6UZkjPOOCPo+fv37y9r166Vv//+W+rXry+NGzeWTz75xGSrtB/NiOXm5so//vEPk+WKiYkpdp80e6ZD+7799tv8+3r27GmGFB6utLQ0qVu3bomP6+vSIXa6DwF9+/aV6Ojo/P1x8rWHGkESAAAAwpLOw9mwYYMsXrw4aKjd0KFDJSUlRY488kiZMGGCnHDCCXLUUUfJ9ddfb4bCvf7660HPo0PDatSoYQKc448/Xnbs2CG33HJLqX3rvJgmTZoE3acn/BpgvfLKKyZQ++uvv+S+++4zj+lwPrVt2zZp2LBh0HaB2/qYzo3S/ZsyZYq0b99eOnfubF7ngw8+KL169TL7eNppp0nbtm2LDH9LSkoyr9s+Z6d58+Ym8DgcS5cuNUMH7UPnCtN91yF6hQNZDaz0Madfe6hxnSQAAAAUb1jwpPsgUYW+0R+6o+zfyw8KTTW4Y4891hRJmD17tsmYrF+/3mQfAoGJBioPPPCAOfHWgEWLAGi2R4MJOz0BnzlzpmRkZJg5SXpyr4FWaQ4cOFAka6TzbXSejc6b0YxVfHy83HXXXWafNKNSVqeffrp8//33+bd/++03mTdvnpnnpJmYG264QQYMGCAdOnQwt+1zrzRzpVmYAN2uNPo8gWIPOtdH5xQVzqxpcQqdo6Wvz2mH89pDiUwSAAAAihebXPISk1D2dWMTy7ZuBWjhhDfffFP2799vskhHH320nHnmmeYxDVi0KptWmPviiy/kp59+Mtkee8U0lZycLK1bt5ZOnTqZgEuHh2lRhtLUq1fPDBErbPz48bJ37175448/ZNeuXSbAUJrJUlrxbvv27UHbBG7rY8W59tpr5ZFHHjGFDTRYuOiii0zWRl+nPYsWqDCnw9bK6tlnnzXviy4ffPBB0GNr1qyRPn36mAzSnXfeWerz6L5rBs5Oh/7p/gRel9OvPZQIkgDALXSMtg4f0OUQY+ErLNoj0u1J/6JtAAhzw4YNM1mal19+2WQcdHiWDttSS5YsMUHK5ZdfbgIgDVQ0M1Eafa7bb7/dBAWaLSqJDgXTIKI42r8OxdOsjg6901LXXbp0MY91797dVH3TeTYBWg1Oh5DVqVOnyHNpsKZD1s4//3yTGVOBbfX/wH1Khx7q/Cfdt7LSIYkaIOpirxq3evVqk2EbOXKkKXV+KPq6NDgMzL1Sn3/+uQluTj75ZMdfe6gRJAGAW8TFiYwb51+07YToOJFjxvkXbQNAmNO5RBdffLEpUa3zfuxFCtq0aWNOwnVOza+//mqyEoUzGcXRbIUWCJgxY0aJ62hGSgOJwtkkzV798ssv5jGdW6PzabQsd6DggJa41sIFmgHTdXSuj2a7NANVmGZm7r//fvnPf/5jbmsgodcsevzxx00RBL0mk87RCdBhcxoIajYtQItb6HtTHqtWrTIBkg6v0/3S+UK67Ny5M38dLX6hwx11GKPS/dL5Xtdcc415TAPU6667ToYPH54/d8vJ1x5qBEkAAAAIa3rSrcGKBi72YgqaDdIMjt6vc5Z0SNcFF1xwyOfTOUl6gq8XOtV5SsXRAg/63IWLQHz44YfmYqla5U2r6r3zzjtBfWphBa3etnHjRlMd7+abb5a777672KIIOv9GH7e/Jq3m9+qrr8q5555rikuceOKJ+Y9p1kqDFDsd9hcoGlFWb7zxhgmI9DpJWvQhsNj70nlPWpXOnhV66aWXTOCkQ/T0elE6v8h+nSMnX3uoRWkdcKnG9KJVekC0bKFeuRcAXEuHDQSulN6jh4gTZU59XpGdB/uo30MkunJKqaLs1q1bJ+efP1pq1XpGkpLalHm7zMx1sm/faHn33WfMt+dAeegQLT1xbdWqVZFiBCiZBkF6sq6Zl/IUZnCCZmZ69+5thhPquW8kyyrl57mssQHV7QDALbKytMSSv52erjOJQ9+HL0tkYa+CqlXRDvQBABHinHPOMV9s6JAznXdUlTRbpHOyIj1AChWCJABARNDx7frNYXnpCUfha38AQMCNN94obqAXbkXoECQBACIiQBo8eITs2ZNd7m3r1o2XBQvmESgBQAQhSAIAVHuaQdIAyeO5QxISCkrcHkpW1ibZs2eq2Z4gCQAiB0ESACBiaIBUnmIIqtA1J4FqrZrX80KEsELwc0wJcAAAgAgXuIZPDt8KoBrIzMw0/8cdxjUHySQBAABEOL0uUFJSkrk2jp5YVnU5a6CiGSQNkHQeau3atfOD/4ogSAIAt9BvvKZPL2g7ISpO5ITpBW0A0F8HUVHmYqF6bZlNmzZV9e4Ah0UDJL1w8OEgSAIAt/B4RG65xdk+Yjwi7RzuA0BY8ng85kLEDLlDONNM6OFkkAIIkgAAAGDoMLuEhISq3g2gyhEkAYBbeL0iP/zgb3fpojOpQ9+Hzyvy98E+6nQRiXagDwAAwhxBEgC4RVaWyEkn+dvp6SLJyaHvw5cl8vHBPoali0Q70AcAAGGO0iUAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAAA2lAAHALeIixO5556CthOi4kQ63FPQBgAARRAkAYBbeDwikyc720eMR6Sjw30AABDmGG4HAAAAADZkkgDALXw+kV9/9bePO04k2oHvsSyfSNrBPlKOE4niuzIAAAojSAIAtzhwQKRDB387PV0kOTn0fXgPiHxwsI9h6SKxDvQBAECY4ytEAAAAAHBLkDRz5kzp2LGj1KpVyyzdu3eXDz/8MP/xrKwsGTdunBxxxBFSo0YNGTp0qGzfvr0qdxkAAABANVelQVLTpk3lwQcflBUrVsjy5culd+/eMmjQIFm9erV5/KabbpL//ve/Mn/+fFm8eLFs2bJFhgwZUpW7DAAAAKCaq9I5Seedd17Q7alTp5rs0jfffGMCqOeee05efvllEzypOXPmyHHHHWceP+WUU4p9zuzsbLME7Nu3z+FXAQAAAKA6cc2cJK/XK6+++qpkZGSYYXeaXcrNzZW+ffvmr3PsscdK8+bNZdmyZSU+z7Rp0yQlJSV/adasWSW9AgAAAADVQZUHSb/88ouZbxQfHy9jxoyRBQsWSLt27WTbtm3i8Xikdu3aQes3bNjQPFaSSZMmSVpaWv7y559/VsKrAAAAAFBdVHkJ8LZt28pPP/1kApo33nhDRo4caeYfVZQGW7oAQNiJixOZMKGg7YSoOJHjJhS0AQCA+4IkzRa1bt3atLt27Srff/+9PPHEE3LxxRdLTk6O7N27NyibpNXtGjVqVIV7DAAO8XhEHn7Y2T5iPCKdHe4DAIAwV+XD7Qrz+Xym8IIGTHFxcbJw4cL8x9auXSt//PGHmbMEAAAAANUuk6TzhwYMGGCKMezfv99Uslu0aJF8/PHHpujC1VdfLePHj5e6deua6yhdf/31JkAqqbIdAIQ1n0/kjz/87ebNRaId+B7L8olkHOwjublIlOu+KwMAILKDpB07dsiIESNk69atJijSC8tqgHTWWWeZxx977DGJjo42F5HV7FL//v3lqaeeqspdBgDnHDgg0qqVv52eLpKcHPo+vAdE3j3Yx7B0kVgH+gAAIMxVaZCk10EqTUJCgsyYMcMsAAAAAFAZGGcBAAAAADYESQAAAABgQ5AEAAAAADYESQAAAABgQ5AEAAAAAG6pbgcAsImNFRk7tqDthKhYkTZjC9oAAKAI/kICgFvEx4s4fcmDmHiRE7msAgAApWG4HQAAAADYkEkCALewLJFdu/ztevVEoqKc6SP7YB/xDvUBAECYI0gCALfIzBRp0MDfTk8XSU4OfR/eTJG3DvYxLF0k1oE+AAAIcwy3AwAAAAAbgiQAAAAAsCFIAgAAAAAbgiQAAAAAsCFIAgAAAAAbgiQAAAAAsKEEOAC4RWysyMiRBW0nRMWKtBpZ0AYAAEXwFxIA3CI+XmTuXGf7iIkX6e5wHwAAhDmG2wEAAACADZkkAHALyxLJzPS3k5JEoqKc6cN7sI8Yh/oAACDMkUkCALfQAKlGDf8SCJZCTQOk12v4l0CwBAAAghAkAQAAAIANQRIAAAAA2BAkAQAAAIANQRIAAAAA2BAkAQAAAIANQRIAAAAA2HCdJABwi5gYkQsvLGg7ISpGpNmFBW0AAFAEQRIAuEVCgsj8+c72EZMg0sPhPgAACHMMtwMAAAAAGzJJAACUIi8vR1JTUyu0bU5Ojng8nnJto33l5Xkr1B8AIDQIkgDALTIyRGrU8LfT00WSk0PfR16GyOsH+xiWLhLrQB/VSG7ubtm8eZOMGTO53MGOBlfbt/8pDRu2lNjYss//ysnJlK1bd0vNmjkV2GMAQCgQJAEAUAKvd7/4fPHi8UySWrXalmvbtLQlkp09RWJjJ5ZrW93O650iPh/ZJACoKgRJAAAcQnx8c0lKalOubbKyUiu0bWA7AEDVoXADAAAAANgQJAEAAACADUESAAAAANgQJAEAAACADYUbAMAtYmJEBg4saDshKkakycCCNgAAKIIgCQDcIiFB5P33ne0jJkGkp8N9AAAQ5hhuBwAAAAA2BEkAAAAAYEOQBABukZEhkpzsX7TthLwMkdeS/Yu2AQBAEcxJAgA3ycx0vg9vJfQBAEAYI5MEAAAAADYESQAAAABgQ5AEAAAAADYESQAAAABgQ5AEAAAAADZUtwMAt4iOFjnzzIK2M52INDjYB9+TAQBQLIIkAHCLxESRRYuc7SM2UaSvw30AABDm+BoRAAAAAGwIkgAAAADALUHStGnT5MQTT5SaNWtKgwYN5IILLpC1a9cGrdOzZ0+JiooKWsaMGVNl+wwAjsnIEKlf379o2wl5GSJv1vcv2gYAAO4KkhYvXizjxo2Tb775Rj799FPJzc2Vfv36SUahk4NrrrlGtm7dmr9Mnz69yvYZABy1a5d/cVL2Lv8CAADcV7jho48+Cro9d+5ck1FasWKFnHHGGfn3JyUlSaNGjapgDwEAAABEGlfNSUpLSzP/161bN+j+l156SerVqycdOnSQSZMmSWZmZonPkZ2dLfv27QtaAAAAACDsSoD7fD658cYb5bTTTjPBUMCll14qLVq0kCZNmsjKlSvl1ltvNfOW3nrrrRLnOd17772VuOcAAAAAqhPXBEk6N2nVqlXy9ddfB90/evTo/Pbxxx8vjRs3lj59+siGDRvk6KOPLvI8mmkaP358/m3NJDVr1szhvQcAAABQXbgiSLruuuvkvffeky+//FKaNm1a6ronn3yy+X/9+vXFBknx8fFmAQAAAICwC5Isy5Lrr79eFixYIIsWLZJWrVodcpuffvrJ/K8ZJQCoVqKjRbp1K2g704lI3W5unJYKAIBrxFb1ELuXX35Z3nnnHXOtpG3btpn7U1JSJDEx0Qyp08cHDhwoRxxxhJmTdNNNN5nKdx07dqzKXQeA0EtMFPn+e2f7iE0UOdvhPgAACHNVGiTNnDkz/4KxdnPmzJFRo0aJx+ORzz77TB5//HFz7SSdWzR06FC58847q2iPAQAAAFR3VT7crjQaFOkFZwEAAACgsjAgHQDcQq8B17KlfynlenCHJS9T5J2W/kXbAADAndXtAAAmvS6yaVNB25lORDI2FbQBAEARZJIAAAAAwIYgCQAAAABsCJIAAAAAwIYgCQAAAABsCJIAAAAAwIbqdgDgFlFRIu3aFbSd6UQkpV1BGwAAFEGQBABukZQksnq1s33EJomc43AfAACEOYbbAQAAAIANQRIAAAAA2BAkAYBbZGaKtG/vX7TthLxMkffb+xdtAwCAIpiTBABuYVkia9YUtJ3pRCRtTUEbAAAUQSYJAAAAAGwIkgAAAADAhiAJAAAAAGwIkgAAAADAhiAJAAAAAGyobgcAbhEVJdKiRUHbmU5EklsUtAEAQBEESQDgFklJIqmpzvYRmyQyyOE+AAAIcwy3AwAAAAAbgiQAAAAAsCFIAgC3OHBA5MQT/Yu2nZB3QOSjE/2LtgEAQBHMSQIAt/D5RJYvL2g704nInuUFbQAAUASZJAAAAACwIUgCAAAAABuCJAAAAACwIUgCAAAAABuCJAAAAACwobodALhJvXrO9xFfCX0AABDGCJIAwC2Sk0V27nS2j9hkkaEO9wEAQJhjuB0AAAAA2BAkAQAAAIANQRIAuMWBAyI9e/oXbTsh74DIZz39i7YBAEARzEkCALfw+UQWLy5oO9OJyI7FBW0AAFAEmSQAAAAAsCFIAgAAAAAbgiQAAAAAsCFIAgAAAAAbgiQAAAAAsKG6HQC4SVKS833EVEIfAACEMYIkAHCL5GSRjAxn+4hNFrnY4T4AAAhzDLcDAAAAABuCJAAAAACwYbgdALhFVpbI0KH+9ptviiQkhL4Pb5bIVwf76PGmSIwDfaDK5OXlSGpqarm3S0lJkQYNGjiyTwAQjgiSAMAtvF6RDz4oaDvB8ops+aCgjWojN3e3bN68ScaMmSwej6dc29atGy8LFswjUAKAgwiSAACoBrze/eLzxYvHM0lq1Wpb5u2ysjbJnj1TJS0tjSAJAA4iSAIAoBqJj28uSUltyrVNTo5juwMAYYnCDQAAAABgQ5AEAAAAADYESQAAAABgQ5AEAAAAADYUbgAAt0hOFrEsZ/uITRa51OE+AACIxEzS77//Hvo9AQAAAIBwDZJat24tvXr1khdffFGy9ArxFTRt2jQ58cQTpWbNmubaDBdccIGsXbs2aB19/nHjxskRRxwhNWrUkKFDh8r27dsr3CcAAAAAhDxI+uGHH6Rjx44yfvx4adSokVx77bXy3Xfflft5Fi9ebAKgb775Rj799FPJzc2Vfv36SUZGRv46N910k/z3v/+V+fPnm/W3bNkiQ4YMqchuA4C76ZdOF13kXw7jC6hSebNEvrrIv2gbAACEJkg64YQT5IknnjABy+zZs2Xr1q1y+umnS4cOHeTRRx+VnTt3lul5PvroIxk1apS0b99eOnXqJHPnzpU//vhDVqxYYR7Xq38/99xz5jl79+4tXbt2lTlz5sjSpUtNYAUA1YrXK/LGG/5F206wvCJ/vuFftA0AAEJb3S42NtZkdTTL89BDD8n69etlwoQJ0qxZMxkxYoQJnspDgyJVt25d878GS5pd6tu3b/46xx57rDRv3lyWLVtW7HNkZ2fLvn37ghYAAAAAqJQgafny5TJ27Fhp3LixyfZogLRhwwYzdE6zTIMGDSrzc/l8PrnxxhvltNNOMxkptW3bNvF4PFK7du2gdRs2bGgeK2meU0pKSv6iARsAAAAAOFoCXAMiHfamRRYGDhwo8+bNM/9HR/tjrlatWpmhcy1btizzc+rcpFWrVsnXX38th2PSpElmrlSAZpIIlAAAAAA4GiTNnDlTrrrqKjOfSLNIxdFqdTqfqCyuu+46ee+99+TLL7+Upk2b5t+vRSFycnJk7969QdkkrW6njxUnPj7eLAAAAABQaUHSunXrDrmODpMbOXJkqetYliXXX3+9LFiwQBYtWmQyUHZaqCEuLk4WLlxoSn8rzV5pcYfu3btXZNcBAAAAIPRBkg6102sWXaRlam20gENmZuYhgyP7ELuXX35Z3nnnHXOtpMA8I51LlJiYaP6/+uqrzfA5LeZQq1YtE1RpgHTKKadUZNcBAAAAIPSFG7Q4Qr169YodYvfAAw+Ua9ieVrTr2bOnGbYXWF577bX8dR577DE599xzTSbpjDPOMMPs3nrrrYrsNgC4W1KSSHq6f9G2E2KSRIal+xdtAwCA0GSSdLhb4aFxqkWLFuaxstLhdoeSkJAgM2bMMAsAVGtRUSLJyc73EetwHwAARGImSTNGK1euLHL/zz//LEcccUQo9gsAAAAAwidIuuSSS+Sf//ynfPHFF+L1es3y+eefyw033CDDhw8P/V4CQCTIzhYZNcq/aNsJ3myRZaP8i7YBAEBohttNmTJFUlNTpU+fPhIbG5t/MdgRI0aUa04SAMAmL0/k+ef9bR1i7MTlDKw8kY0H+zhRhzFzyQQAAEISJGl5by2uoMGSDrHTSnTHH3+8mZMEAAAAABEXJAUcc8wxZgEAAACAiA6SdA7S3LlzzUVed+zYYYba2en8JAAAAACImCBJCzRokHTOOedIhw4dJEpLygIAAABApAZJr776qrz++usycODA0O8RAAAAAIRbCXAt3NC6devQ7w0AAAAAhGOQdPPNN8sTTzwhlmWFfo8AIFIlJYns2OFftO2EmCSRITv8i7YBAEBohtt9/fXX5kKyH374obRv317i4uKCHn/rrbcq8rQAENl0fmf9+s73keBwHwAARGKQVLt2bRk8eHDo9wYAAAAAwjFImjNnTuj3BAAiXXa2yPjx/vajj4rEx4e+D2+2yA8H++jyqEiMA30AABCJc5JUXl6efPbZZ/L000/L/v37zX1btmyR9PT0UO4fAESOvDyRp57yL9p2gpUnsu4p/6JtAAAQmkzSpk2b5Oyzz5Y//vhDsrOz5ayzzpKaNWvKQw89ZG7PmjWrIk8LAAAAAOGZSdKLyXbr1k3+/vtvSUxMzL9f5yktXLgwlPsHAAAAAO7PJH311VeydOlSc70ku5YtW8pff/0Vqn0DAAAAgPDIJPl8PvF6vUXu37x5sxl2BwAAAAARFST169dPHn/88fzbUVFRpmDDPffcIwMHDgzl/gEAAACA+4fbPfLII9K/f39p166dZGVlyaWXXirr1q2TevXqySuvvBL6vQQAAAAANwdJTZs2lZ9//lleffVVWblypckiXX311XLZZZcFFXIAAJSD/v7cuLGg7YSYRJHzNxa0AQBAaIIks2FsrFx++eUV3RwAUFh0tFbAcbaPqGiRGg73AQBAJAZJ8+bNK/XxESNGVHR/AAAAACD8giS9TpJdbm6uZGZmmpLgSUlJBEkAUBE5OSJ33OFvT50qUugyCyHhzRFZebCPjlNFYhzoAwCASKxupxeRtS86J2nt2rVy+umnU7gBACoqN1fkX//yL9p2gpUr8uu//Iu2AQBAaIKk4rRp00YefPDBIlkmAAAAAIjIIClQzGHLli2hfEoAAAAAcP+cpHfffTfotmVZsnXrVnnyySfltNNOC9W+AQAAAEB4BEkXXHBB0O2oqCipX7++9O7d21xoFgAAAAAiKkjy+Xyh3xMAAAAAqG5zkgAAAAAgIjNJ48ePL/O6jz76aEW6AIDIk5gosmpVQdsJMYkiA1cVtAEAQGiCpB9//NEsehHZtm3bmvt+++03iYmJkS5dugTNVQIAlFF0tEj79s72ERUtUtvhPgAAiMQg6bzzzpOaNWvK888/L3Xq1DH36UVlr7zySunRo4fcfPPNod5PAAAAAHDvnCStYDdt2rT8AElp+/7776e6HQBUVE6OyOTJ/kXbTvDmiKyc7F+0DQAAQpNJ2rdvn+zcubPI/Xrf/v37K/KUAIDcXJF77/W3b7lFxOMJfR9Wrsiqg320u0VEHOgDAIBIzCQNHjzYDK176623ZPPmzWZ588035eqrr5YhQ4aEfi8BAAAAwM2ZpFmzZsmECRPk0ksvNcUbzBPFxpog6eGHHw71PgIAAACAu4OkpKQkeeqpp0xAtGHDBnPf0UcfLcnJyaHePwAAAAAIn4vJbt261Sxt2rQxAZJlWaHbMwAAAAAIlyBp9+7d0qdPHznmmGNk4MCBJlBSOtyO8t8AAAAAIi5IuummmyQuLk7++OMPM/Qu4OKLL5aPPvoolPsHAAAAAO6fk/TJJ5/Ixx9/LE2bNg26X4fdbdq0KVT7BgCRJSFB5LvvCtpOiE4Q6f9dQRsAAIQmSMrIyAjKIAXs2bNH4uPjK/KUAICYGJETT3S2j+gYkSMc7gMAgEgMknr06CHz5s2TKVOmmNtRUVHi8/lk+vTp0qtXr1DvIwCgGtqxY4ekpaWVe7uUlBRp0KCBI/sEAECFgyQNhrRww/LlyyUnJ0cmTpwoq1evNpmkJUuW8M4CQEXk5Ig88YS/fcMNIh5P6Pvw5oisPdhH2xtEYhzoo4wB0uDBI2TPnuxyb1u3brwsWDCPQAkA4K4gqUOHDvLbb7/Jk08+KTVr1pT09HQZMmSIjBs3Tho3bhz6vQSASKAX55440d8eO9aZIMnKFfnpYB/HjBWRqgmSNIOkAZLHc4ckJLQo83ZZWZtkz56pZnuCJACAa4Kk3NxcOfvss2XWrFlyxx13OLNXAICIoAFSUlKbcifcAABwVQlwLf29cuVKZ/YGAAAAAMLxOkmXX365PPfcc6HfGwAAAAAIxzlJeXl5Mnv2bPnss8+ka9eukpycHPT4o48+Gqr9AwAAAAD3Bkm///67tGzZUlatWiVdunQx92kBBzstBw4AAAAAEREktWnTRrZu3SpffPGFuX3xxRfLv//9b2nYsKFT+wcAAAAA7g2SLMsKuv3hhx9KRkZGqPcJACJTQoLIwS+hTNsJ0Qkifb4oaAMAgNAUbigpaCqvL7/8Us477zxp0qSJGab39ttvBz0+atQoc7990fLjAFAtxcSI9OzpX7TthOgYkYY9/Yu2AQDA4QVJgUCl8H0VpVmoTp06yYwZM0pcR4MiHeIXWF555ZUK9wcAAAAAIR9up9md+Ph4czsrK0vGjBlTpLrdW2+9VabnGzBggFlKo301atSoPLsJAOEpN1fkmWf87dGj9cJ0oe/Dlyuy/mAfrUeLRDvQBwAAkRQkjRw5ssj1kpy2aNEiadCggdSpU0d69+4t999/vxxxxBElrp+dnW2WgH379jm+jwAQEjk5Itdd52+PGuVQkJQjsvxgH0eNCssgKS8vR1JTU8u1ja6fl+d1bJ8AABEcJM2ZM0cqkw61GzJkiLRq1Uo2bNggt99+u8k8LVu2TGJKGK8/bdo0uffeeyt1PwEAlSM3d7ds3rxJxoyZLB6Pp8zb5eRkytatu6VmzRxH9w8AEMEXk60sw4cPz28ff/zx0rFjRzn66KNNdqlPnz7FbjNp0iQZP358UCapWbNmlbK/AABneb37xeeLF49nktSq1bbM26WlLRGvd4r4fGSTAABhHiQVdtRRR0m9evVk/fr1JQZJOocpMGcKAFA9xcc3l6SkNmVePyurfMPzAACR7bBKgFe2zZs3y+7du6Vx48ZVvSsAAAAAqqkqzSSlp6ebrFDAxo0b5aeffpK6deuaRecWDR061FS30zlJEydOlNatW0v//v2rcrcBAAAAVGNVGiQtX75cevXqlX87MJdIq+jNnDlTVq5cKc8//7zs3bvXXHC2X79+MmXKFIbTAQAAAKieQVLPnj3NtZdK8vHHH1fq/gBAldIvgN57r6DthOh4kTPfK2gDAIDwLtwAANVabKzIOec420d0rMiRDvcBAECYC6vCDQAAAADgNDJJAOAWubkiL73kb192mUhcXOj78OWKpB7so+VlItEO9AEAQJgjSAIAt8jJEbnySn/7ooscCpJyRL452EfziwiSAAAoBsPtAAAAAMCGIAkAAAAAbAiSAAAAAMCGIAkAAAAAbAiSAAAAAMCGIAkAAAAAbCgBDgBuER8v8vrrBW0nRMeLnP56QRsAABRBkAQAbhEb678+kpOiY/3XRwIAACViuB0AAAAA2JBJAgC3yMsTWbDA3x482J9ZCjVfnsjmg300HezPLAEAgCD8dQQAt8jOFhk2zN9OT3coSMoW+fpgH8PSCZIAACgGw+0AAAAAwIYgCQAAAABsCJIAAAAAwIYgCQAAAABsCJIAAAAAwIYgCQAAAABsqP0KAG7h8YjMmVPQdkK0R+SUOQVtAABQBEESALhFXJzIqFHO9hEdJ3KUw30AABDmGG4HAAAAADZkkgDALfLyRD7+2N/u318k1oFf0b48ka0H+2jcXySaPwMAABTGX0cAcIvsbJFzz/W309MdCpKyRRYf7GNYOkESAADFYLgdAAAAANgQJAEAAACADUESAAAAANgQJAEAAACADUESAAAAANgQJAEAAACADbVfAcAtPB6RJ58saDsh2iPS7cmCNgAAKIIgCQDcIi5OZNw4Z/uIjhM5xuE+AAAIcwy3AwAAAAAbMkkA4BZer8hXX/nbPXqIxMSEvg+fV2TnwT7q9xCJdqAPAADCHEESALhFVpZIr17+dnq6SHJy6PvwZYksPNjHsHSRaAf6AAAgzDHcDgAAAABsCJIAAAAAwIYgCQAAAABsCJIAAAAAwIYgCQAAAABsCJIAAAAAwIYS4ADgFnFxItOnF7SdEBUncsL0gjYgInl5OZKamlru7VJSUqRBgwaO7BMAVCWCJABwC49H5JZbnO0jxiPSzuE+EFZyc3fL5s2bZMyYyeLRn8FyqFs3XhYsmEegBKDaIUgCACCCeb37xeeLF49nktSq1bbM22VlbZI9e6ZKWloaQRKAaocgCQDcwusV+eEHf7tLF5GYmND34fOK/H2wjzpdRKId6ANhKT6+uSQltSnXNjk5ju0OAFQpgiQAcIusLJGTTvK309NFkpND34cvS+Tjg30MSxeJdqAPAADCHNXtAAAAAMCGIAkAAAAAbAiSAAAAAMCGIAkAAAAAbAiSAAAAAMAtQdKXX34p5513njRp0kSioqLk7bffDnrcsiy5++67pXHjxpKYmCh9+/aVdevWVdn+AgAAAKj+qjRIysjIkE6dOsmMGTOKfXz69Ony73//W2bNmiXffvutJCcnS//+/SVLy+QCQHUTFydyzz3+RdtOiIoT6XCPf9E2AABw13WSBgwYYJbiaBbp8ccflzvvvFMGDRpk7ps3b540bNjQZJyGDx9eyXsLAA7zeEQmT3a2jxiPSEeH+wAAIMy59mKyGzdulG3btpkhdgEpKSly8skny7Jly0oMkrKzs80SsG/fvkrZXwCIVDt27JC0tLRybZOamip5eV7H9gkAgGoZJGmApDRzZKe3A48VZ9q0aXLvvfc6vn8AEHI+n8ivv/rbxx0nEu3AiGjLJ5J2sI+U40Siog87QBo8eITs2VPw5VRZ5ORkytatu6VmzZzD6h8AgIgKkipq0qRJMn78+KBMUrNmzap0nwCgTA4cEOnQwd9OTxdJTg59H94DIh8c7GNYukjs4fWhGSQNkDyeOyQhoUU5tlsiXu8U8fnIJgEA3Me1QVKjRo3M/9u3bzfV7QL09gknnFDidvHx8WYBAFQeDZCSktqUef2srFRH9wcAgGp5naRWrVqZQGnhwoVBWSGtcte9e/cq3TcAAAAA1VeVZpLS09Nl/fr1QcUafvrpJ6lbt640b95cbrzxRrn//vulTZs2Jmi66667zDWVLrjggqrcbQAAAADVWJUGScuXL5devXrl3w7MJRo5cqTMnTtXJk6caK6lNHr0aNm7d6+cfvrp8tFHH0lCQkIV7jUAAACA6qxKg6SePXua6yGVJCoqSu677z6zAAAAAEBEz0kCAAAAgKrg2up2ABBx4uJEJkwoaDshKk7kuAkFbQAAUARBEgC4hccj8vDDzvYR4xHp7HAfAACEOYbbAQAAAIANmSQAcAufT+SPP/zt5s1Foh34HsvyiWQc7CO5uUgU35UBAFAYQRIAuMWBA3olbX87PV0kOTn0fXgPiLx7sI9h6SKxDvQBAECY4ytEAAAAALAhSAIAAAAAG4IkAAAAALAhSAIAAAAAG4IkAAAAALAhSAIAAAAAG0qAA4BbxMaKjB1b0HZCVKxIm7EFbQAAUAR/IQHALeLjRWbMcLaPmHiREx3uAwCAMMdwOwAAAACwIZMEAG5hWSK7dvnb9eqJREU500f2wT7iHeoDAIAwR5AEAG6RmSnSoIG/nZ4ukpwc+j68mSJvHexjWLpIrAN9AAAQ5hhuBwAAAAA2ZJIAAMaOHTskLS2tXNukpqZKXp7XsX2Cu+Xl5ZifgfJKSUmRBoGsKQC4EEESAMAESIMHj5A9e7LLtV1OTqZs3bpbatbMcWzf4E65ubtl8+ZNMmbMZPF4POXatm7deFmwYB6BEgDXIkgCAJgMkgZIHs8dkpDQohzbLRGvd4r4fGSTIo3Xu198vnjxeCZJrVpty7xdVtYm2bNnqvmZI0gC4FYESQCAfBogJSW1KfP6WVnlH2qF6iU+vnm5fmZUDolHAC5H4QYAAAAAsCGTBABuERsrMnJkQdsJUbEirUYWtAEAQBH8hQQAt4iPF5k719k+YuJFujvcBwAAYY7hdgAAAABgQyYJANzCskQyM/3tpCSRqChn+vAe7CPGoT4AAAhzZJIAwC00QKpRw78EgqVQ0wDp9Rr+JRAsAQCAIARJAAAAAGBDkAQAAAAANgRJAAAAAGBDkAQAAAAANgRJAAAAAGBDkAQAAAAANlwnCQDcIiZG5MILC9pOiIoRaXZhQRsAABRBkAQAbpGQIDJ/vrN9xCSI9HC4DwAAwhzD7QAAAADAhiAJAAAAAGwIkgDALTIyRKKi/Iu2nZCXIfJylH/RNgAAKIIgCQAAAABsCJIAAAAAwIYgCQAAAABsCJIAAAAAwIYgCQAAAABsuJgsALjUjh07JC0trdzb5eTkiMfjKfaxKG+mtD7YXr9+vVgxSaadmpoqeXnew9pfoKzy8nLMz1x5paSkSIMGDRzZJwCwI0gCALeIiREZONA0d+zeLYMvGS179mSX++Rz+/Y/pWHDlhIbG1PkcU+MV/59UV3T/ucD10uO179OTk6mbN26W2rWzAnJSwFKkpu7WzZv3iRjxkwuMZgvSd268bJgwTwCJQCOI0gCALdISBB5/33TTFu3zgRIHs8dkpDQosxPkZa2RLKzp0hs7ESpVattsetM/OBgd8kiCbbtvN4p4vORTYKzvN794vPFi8czqcSf0eJkZW2SPXummuwqQRIApxEkAYCLaYCUlNSmzOtnZfmHMMXHN6/QdkBlKe/PqMoh0QmgklC4AQAAAABsCJIAwC0yMkSSk80SlZnpSBcJsRnywahks2gbAAAUxXA7AHATh4Iju8Q45/sAACCckUkCAAAAABuCJAAAAACwIUgCAAAAgHAJkiZPnixRUVFBy7HHHlvVuwUAAACgGnN94Yb27dvLZ599ln87Ntb1uwwAAAAgjLk+4tCgqFGjRlW9GwDgvOhokTPPLGg7wGdFy09bzsxvAwCAMAyS1q1bJ02aNJGEhATp3r27TJs2TZo3b17i+tnZ2WYJ2LdvXyXtKQAcpsREkUWLTNNat86RLnK8iXLT+/4+AABA8Vz9NeLJJ58sc+fOlY8++khmzpwpGzdulB49esj+/ftL3EaDqJSUlPylWbNmlbrPAAAAAMKbq4OkAQMGyEUXXSQdO3aU/v37ywcffCB79+6V119/vcRtJk2aJGlpafnLn3/+Wan7DAAAACC8uX64nV3t2rXlmGOOkfXr15e4Tnx8vFkAIOxkZIi0bGmaUbaCNaGUEJshrwz393HJq6mSlZfsSD8AAIQzV2eSCktPT5cNGzZI48aNq3pXAMAZu3b5FwfVTtxlFgAAEIZB0oQJE2Tx4sWSmpoqS5culcGDB0tMTIxccsklVb1rAAAAAKopVw+327x5swmIdu/eLfXr15fTTz9dvvnmG9MGAAAAgIgLkl599dWq3gUAAAAAEcbVw+0AAAAAoLIRJAEAAABAuAy3A4CIEh0t0q1bQdsBPita/rezW34bAAAURZAEAG6RmCjy/femaa1b50gXOd5E+cfb/j4AAEDx+BoRAAAAAGzIJAFAGe3YsUPS0tLKvV1KSoo0aNDAkX0CIkleXo65dmJlfQYr+pnPyckRj8dT7u34XQG4B0ESAJTxZGnw4BGyZ092ubetWzdeFiyYd+iTn8xMkXbtTDPq3XfFCfExmTL3In8fo+avkWxvkiP9AKGWm7tbNm/eJGPGTC53AFLmz2AIPvMayG3f/qc0bNhSYmNjHN9PAM4gSAKAMtBvk/VkyeO5QxISWpR5u6ysTbJnz1Sz/SFPfCxLZNOmgrYDoqIsaVRzU34bCBde737x+eLF45kktWq1deYzGILPfFraEsnOniKxsRMrZT8BOIMgCQDKQU+WkpLalGubnBzHdgeIOPHxzSv1M1jez3xWVmqV7CeA0KJwAwAAAADYECQBAAAAgA1BEgAAAADYECQBAAAAgA2FGwDALaKi8kuAm7YDLCtKUv9ul98GAABFESQBgFskJYmsXm2a1rp1jnSh10W68g1/HwAAoHgMtwMAAAAAG4IkAAAAALAhSAIAt8jMFGnf3ixRBw440kV8TKbMubC9WbQNAACKYk4SALiFZYmsWVPQdkBUlCUt66zJbwMAgKLIJAEAAACADUESAAAAANgQJAEAAACADUESAAAAANgQJAEAAACADdXtAMAtoqJEWrQoaDvAsqJk2/4W+W0AAFAUQRIAuEVSkkhqqmla69Y50kW2N0kuedXfBwAAKB7D7QAAAADAhiAJAAAAAGwIkgDALQ4cEDnxRLNEZWU50oUn5oDMvOBEs2gbAAAUxZwkAHALn09k+fKCtgOio3xybP3l+W0AAFAUmSQAAAAAsCFIAgAAAAAbgiQAAAAAsCFIAgAAAAAbgiQAAAAAsKG6HQC4Sb16jnex94DzfQAAEM4IkgDALZKTRXbuNE1r3TpHusjKS5bBL/r7AAAAxWO4HQAAAADYECQBAAAAgA1BEgC4xYEDIj17miUqK8uRLjwxB+Sxc3qaRdsAAKAo5iQBgFv4fCKLFxe0HRAd5ZMTmizObwMAgKLIJAEAAACADUESAAAAANgQJAEAAACADXOSKtmOHTskLS2t3NulpKRIgwYNHNmncMd7GpkqetxVTk6OeDyecm2TmpoqeXneCvWXl5djtj+UqMxMaX2wvWnTpgr3B6Bin8FQfeaB6nwusyOM9vVwECRV8g/V4MEjZM+e7HJvW7duvCxYMC+sfrgqA+9pZDqc464nS9u3/ykNG7aU2NiYMm+Xk5MpW7fulpo1c8rVX27ubtm8eZOMGTP5kIFZos8rPxxs33DDffLX9r3l7g9AxT+DofjMA9X5XGZHGO3r4SJIqkQadesPlcdzhyQktCjzdllZm2TPnqlm+3D5waosvKeRqaLH3b/tEsnOniKxsROlVq225drO650iPl/5vln2eveLzxcvHs+kQ/aX4M2UA9HdTTsu7hrxeqeXu7+yOJCbFPLnBNyqPJ/BUHzmgep8LpMWRvt6uAiSqoD+UCUltSnXNjl8kVUq3tPIVJHjnpXlH3ITH9+8XNsGtquosvY38IxM879vz6fihKy8ZBk4N8OR5wbcrLI/80B1PpdJCKN9rSgKNwAAAACADUESAAAAANgQJAGAS8R5s2TaynPM4vE5My4hLiZLpvU/xyzaBgAARTEnCQBcIka8csqeD/ztJtc600eUV05pfrCPKK/kOtILAADhjUwSAAAAANgQJAEAAABAuAVJM2bMkJYtW0pCQoKcfPLJ8t1331X1LgEAAACoplwfJL322msyfvx4ueeee+SHH36QTp06Sf/+/c0VfwEAAAAg4oKkRx99VK655hq58sorpV27djJr1ixJSkqS2bNnV/WuAQAAAKiGXF3dLicnR1asWCGTJk3Kvy86Olr69u0ry5YtK3ab7OxsswSkpaWZ//ft2ydVLT09XbzePMnIWCNeb3qZt8vK+kNycg7I6tWrzXOgwKZNmyQnJ5v3NMJU9LirzMz1Ylk+ycz8n8TGel21XY43UwK/qTIzf3ekv5yYTNmX6W/v2/eTZHuTKu31RdJ24bSvbOeO7fi7FLnC6Vxm02Hsq54D635W9Tl5oH/LskpdL8o61BpVaMuWLXLkkUfK0qVLpXv37vn3T5w4URYvXizffvttkW0mT54s9957byXvKQAAAIBw8eeff0rTpk3DM5NUEZp10jlMAT6fz0S9J5xwgnkzatWqVaX7h4IovlmzZhwTl+G4uA/HxJ04Lu7DMXEnjov7RPoxsSxL9u/fL02aNCl1PVcHSfXq1ZOYmBjZvn170P16u1GjRsVuEx8fbxY7HaKn9AchEn8Y3Ixj4k4cF/fhmLgTx8V9OCbuxHFxn0g+JikpKeFduMHj8UjXrl1l4cKFQZkhvW0ffgcAAAAAoeLqTJLSoXMjR46Ubt26yUknnSSPP/64ZGRkmGp3AAAAABBxQdLFF18sO3fulLvvvlu2bdtm5hZ99NFH0rBhwzI/hw6/0+ssFR6Gh6rDMXEnjov7cEzciePiPhwTd+K4uA/HpGxcXd0OAAAAACqbq+ckAQAAAEBlI0gCAAAAABuCJAAAAACwIUgCAAAAgHAPkvbs2SOXXXaZuQBW7dq15eqrr5b09PRSt3nmmWekZ8+eZpuoqCjZu3dvhZ535cqV0qNHD0lISDBXK54+fXrIX1+kHJOsrCwZN26cHHHEEVKjRg0ZOnRo0IWD586da45VccuOHTvMOosWLSr2ca2ECGeOiyruPX/11VeD1tFj06VLF1M9p3Xr1uZ4wplj8vPPP8sll1xificlJibKcccdJ0888UTQc/BZCTZjxgxp2bKl+V1+8skny3fffVfq+vPnz5djjz3WrH/88cfLBx98EPS41kDSKqyNGzc2x6Bv376ybt26wz72kSaUxyU3N1duvfVWc39ycrI0adJERowYIVu2bAl6Du2v8OfiwQcfdOw1RvpnZdSoUUXe77PPPjtoHT4rlX9cSjrfevjhhyP3s2KFobPPPtvq1KmT9c0331hfffWV1bp1a+uSSy4pdZvHHnvMmjZtmln0Zf/999/lft60tDSrYcOG1mWXXWatWrXKeuWVV6zExETr6aeftiJdRY7JmDFjrGbNmlkLFy60li9fbp1yyinWqaeemv94ZmamtXXr1qClf//+1plnnpm/zhdffGGO59q1a4PW83q9jr7ecOHEcVH6ns+ZMyfoPT9w4ED+47///ruVlJRkjR8/3lqzZo31n//8x4qJibE++ugjK9I5cUyee+4565///Ke1aNEia8OGDdYLL7xgfjfp+x7AZ6XAq6++ank8Hmv27NnW6tWrrWuuucaqXbu2tX379mLXX7Jkifn5nT59uvl5vvPOO624uDjrl19+yV/nwQcftFJSUqy3337b+vnnn63zzz/fatWqVdDnoiLHPpKE+rjs3bvX6tu3r/Xaa69Z//vf/6xly5ZZJ510ktW1a9eg52nRooV13333BX0u0tPTK+U1R+JnZeTIkeazYH+/9+zZE/Q8fFYq/7gUPt+aPXu2FRUVZf6mROpnJeyCJD24+of++++/z7/vww8/NAfyr7/+OuT2gROFwkFSWZ73qaeesurUqWNlZ2fnr3Prrbdabdu2tSJZRY6J/vHSD+j8+fPz7/v111/N8+gfsuLs2LHDbDNv3rxDHk84e1z09oIFC0rse+LEiVb79u2D7rv44otNkBvJKuuzosaOHWv16tUr/zaflQJ6ojxu3Lj82xooNmnSxHyJVpxhw4ZZ55xzTtB9J598snXttdeats/nsxo1amQ9/PDDQcctPj7efJkWir9dkSDUx6U43333nTkOmzZtCjrx0y9SUTnHRIOkQYMGldgnnxV3fFYGDRpk9e7dO+i+SPushN1wu2XLlpnUa7du3fLv02EN0dHR8u233zr6vLrOGWecIR6PJ3+d/v37y9q1a+Xvv/+WSFWRY7JixQozFELXC9A0cPPmzc3zFWfevHmSlJQkF154YZHH9CLDOszlrLPOkiVLloTkdYU7p4+LDv+qV6+enHTSSTJ79mwz3Mjet/05Ap+Vko5tpKisz4pKS0uTunXrFrk/0j8rOTk55j21v5/6/uvtkt7PQ/08b9y40QxbtK+TkpJihsAE1nHqb1d14cRxKelzoUOE9FjY6ZAhHc7auXNnM7woLy9PIp2Tx0SH/zZo0EDatm0r//jHP2T37t1Bz8FnpWo/Kzqc+/333zfDHAuLpM9KrIQZ/UOkHyy72NhYczJwOGPry/K8+n+rVq2C1mnYsGH+Y3Xq1JFIVJFjovdrsFn4D5W+nyVt89xzz8mll15qxvsH6MnerFmzzC/T7OxsefbZZ83cM/1FqvNhIpmTx+W+++6T3r17m6D1k08+kbFjx5rx4v/85z/znyfw2bA/x759++TAgQNBxzCSVNZnZenSpfLaa6+ZP3IBfFb8du3aJV6vt9ifz//973/FblPSz7P9b0PgvtLWceJvV3XhxHEpbm6fzlHS+Xs61yVAf2/pZ0CPhX52Jk2aJFu3bpVHH31UIplTx0TnHw0ZMsScT23YsEFuv/12GTBggDlhj4mJ4bPigs/K888/LzVr1jTHyS7SPiuuCZJuu+02eeihh0pd59dff620/YG7jon+8tS+XnjhhaD79VsoXQJOPfVU80v3scceK7JudeGG43LXXXflt/XbpIyMDPONUiBIijRuOCYBq1atkkGDBsk999wj/fr1i+jPChCg2dhhw4aZjPfMmTODHhs/fnx+u2PHjuZLiWuvvVamTZtmCs8gtIYPH57f1gIC+p4fffTRJrvUp0+fKt03+OnokMsuu8wUeYjkz4prgqSbb77ZVDwpzVFHHSWNGjXKr2wWoKk+rYSij1VUWZ5X/y9c5Stw+3D6disnj4neryljrTJo/4Zc38/ittFvvXWYUNeuXQ+53zr86+uvv5bqyk3HJUCHFU2ZMsVkKPQXZUmfFf32tjpmkdxyTNasWWNOMkaPHi133nmnRPpnpTg6RFS/rS7u57O0Y1Da+oH/9T7N2NnX0d9bgXWc+NtVXThxXAoHSJs2bZLPP/88KItU0u8zPTapqalBXyxEGiePSeHfjdrX+vXrze8vPitVe1y++uorM43ktddeO+S+VPvPihVmAhP6tMJTwMcffxyywg2lPW+gcENOTk7+OpMmTaJwQwWOSWAy+htvvJF/n1YfKm4y+v79+60aNWoEVeoqjVYzGjx4sBXpnD4udvfff7/5bNgLN3To0CFoHa1MROEG546JVtxs0KCBdcstt5R5fyL1s6KTnq+77rqgSc9HHnlkqZOezz333KD7unfvXqRww7/+9a+gaqjFFW6o6N+uSBDq46L07/UFF1xgCslo8Z+yePHFF63o6OgiFdcikRPHpLA///zTfA7eeecdc5vPStUeFy2sUbgCZKR+VsIuSAqUhuzcubP17bffWl9//bXVpk2boNKQmzdvNoGLPh6gZQp//PFH6//+7//Mh+/LL780t3fv3l3m59WTFS0BfsUVV5gTEi3BqGWOKQFesWOiZY2bN29uff755+aXoX5gdSns2WeftRISEoqtyqVVVrTk7rp160wpyxtuuMF8YD/77DMHX21kH5d3333XfI70/db3Xb880M/B3XffXaQEuJ6wayW2GTNmUALcwWOix6J+/frW5ZdfHlSa1X5SyGelgP7u1gBm7ty55oRs9OjRpnzutm3bzOP6O/62224LKp8bGxtrgiD9eb7nnnuKLQGuz6EneitXrjSVoYorAV7asY90oT4uGiBpKfamTZtaP/30U9BnI1CldunSpeazoY9rqWM96dPP0ogRI6roXajex0S/9JwwYYL5gmfjxo3m90+XLl3MZyErKyv/efisVP7vsMCXO/q3e+bMmUX6jMTPSlgGSRrY6IdFswu1atWyrrzySvPBC9APngZCmjUK0B8Iva/wotd6KevzKr3+xemnn25+ODVq1z+MqNgx0ZMHLVOsGQj9UOo32vrHqzA9Gbz00kuL7fehhx6yjj76aBNE1a1b1+rZs6c5kYRzx0VLsZ5wwgnmOZOTk821LGbNmlXkejv6nLqeXsvhqKOOCvqsRTInjklJv9+0XGsAn5VgmpnWwFN/PvVbWb0eS4Bei02/TbV7/fXXrWOOOcasr1mJ999/P+hxzSbddddd5os0/fvQp08fc00qu7L8jYl0oTwugc9ScUvg87VixQpTClmvcaWfjeOOO8564IEHgk7YI10oj4le/7Bfv37m5FpP0vV3lF7jJ3ByH8BnpfJ/hyn90l+vsadJgcIi8bMSpf9U9ZA/AAAAAHCLsLtOEgAAAAA4iSAJAAAAAGwIkgAAAADAhiAJAAAAAGwIkgAAAADAhiAJAAAAAGwIkgAAAADAhiAJAAAAAGwIkgAAAADAhiAJAFDlRo0aJVFRUWaJi4uTVq1aycSJEyUrK6tM2y9atMhsu3fvXsf3FQBQ/cVW9Q4AAKDOPvtsmTNnjuTm5sqKFStk5MiRJvB56KGHKnU/tH8N1AAAkYtMEgDAFeLj46VRo0bSrFkzueCCC6Rv377y6aefmsd8Pp9MmzbNZJgSExOlU6dO8sYbb5jHUlNTpVevXqZdp04dE1hpZkq1bNlSHn/88aB+TjjhBJk8eXL+bV1/5syZcv7550tycrJMnTrVPK7rvfDCC+Y5UlJSZPjw4bJ///787bT/448/3uzPEUccYfY3IyOjUt4rAICzCJIAAK6zatUqWbp0qXg8HnNbA6R58+bJrFmzZPXq1XLTTTfJ5ZdfLosXLzZB1ZtvvmnWW7t2rWzdulWeeOKJcvWnQdHgwYPll19+kauuusrct2HDBnn77bflvffeM4v29eCDD5rHtI9LLrnErPvrr7+a4X5DhgwRy7JC/l4AACofw+0AAK6ggUiNGjUkLy9PsrOzJTo6Wp588knTfuCBB+Szzz6T7t27m3WPOuoo+frrr+Xpp5+WM888U+rWrWvub9CggdSuXbvcfV966aVy5ZVXBt2n2au5c+dKzZo1ze0rrrhCFi5caDJNGiTpfmpg1KJFC/O4ZpUAANUDQRIAwBV0yJwOe9Mha4899pjExsbK0KFDTeYoMzNTzjrrrKD1c3JypHPnziHpu1u3bkXu02F2gQBJNW7cWHbs2GHaOtyvT58+JjDq37+/9OvXTy688EIz3A8AEP4IkgAArqDzgVq3bm3as2fPNoHIc889Jx06dDD3vf/++3LkkUcWmcdUGs1GFR4Cp4UZiuu7sMLFG3TukmaXVExMjJkvpUMCP/nkE/nPf/4jd9xxh3z77bdm3hQAILwxJwkA4Doa3Nx+++1y5513Srt27Uww9Mcff5ggyr7ofCQVmLvk9XqDnqd+/fpmaFzAvn37ZOPGjSHZRw2aTjvtNLn33nvlxx9/NPuwYMGCkDw3AKBqkUkCALjSRRddJLfccouZdzRhwgRTrEEzOaeffrqkpaXJkiVLpFatWqZUuM4L0qBF5zUNHDjQVJzT+U29e/c284rOO+88M1fp7rvvNlmgw6UZI52fpMPsdB6U3t65c6ccd9xxIXntAICqRZAEAHAlnZN03XXXyfTp0032R7NCWuXu999/NwFPly5dTLZJ6TA8zejcdtttpgDDiBEjTHA0adIks+25555rynhPmTIlJJkkDc6+/PJLU15cs1MapD3yyCMyYMCAELxyAEBVi7KoVwoAAAAA+ZiTBAAAAAA2BEkAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAAA2BEkAAAAAYEOQBAAAAABS4P8D68x8J0h+e8gAAAAASUVORK5CYII="
},
"metadata": {},
"output_type": "display_data"
}
],
"execution_count": 7
},
{
"metadata": {},
"cell_type": "code",
"outputs": [],
"execution_count": null,
"source": "",
"id": "ddeb6ada3ab526b5"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}