SQL Server优化器特性-隐式谓词

时间:2022-01-24 22:13:36

我们都知道,一条SQL语句提交给优化器会产生相应的执行计划然后执行输出结果,但他的执行计划是如何产生的呢?这可能是关系型数据库最复杂的部分了.这里我为大家介绍一个有关SQL Server优化器的特性-隐式谓词,并简单介绍在此特性下如何根据场景控制优化器的行为.

在这里我通过一个简单的实例来给大家说明下.

code

CREATE TABLE T1 (A INT, B INT)
CREATE TABLE T2 (A INT, B INT) set showplan_text on SELECT *
FROM T1 INNER JOIN T2 ON T1.A = T2.A

可以看出我的语句执行计划中优化器为我添加了T2.A=0这个谓词.如图1-1

aaarticlea/png;base64,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" alt="" width="677" height="370" />

图1-1

优化器根据语义逻辑判断,在不改变结果集的前提下认为提前在T2表中过滤出T2.A=0的结果集再参与下面运算可以提升效率,这样在未征得我们同意的情况下他就这样做了:)

这就是隐式谓词

既然这是SQL Server优化器的默认行为,那在我们自己要控制优化器行为的时候就少不了与其默认行为冲突.这里还是通过简单的实例说明.

code

select @@VERSION

SELECT *
FROM T1 inner hash JOIN T2 ON T1.A = T2.A
WHERE T1.A = 0

可以看到,我为sql加了个hash join的hint结果就出现了错误.如图1-2

aaarticlea/png;base64,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" alt="" width="763" height="185" />

图1-2

原因:默认的情况下优化器为我们加上了T2.A=0,t1,t2采用了相同的过滤条件,这时T1.A=T2.A自身的意义就不存在了,而hash join自身又需要等值链接(equijoin),此时报错就出现了.

延伸:其实在此种情况下select中检索凑到一起就可以了,抛错误让开发人员郁闷.微软注意到了这点,SQL2012中上述查询就没有问题了.如图1-3

aaarticlea/png;base64,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" alt="" />

图1-3

问题来了(不是挖掘机哪家强),如果我用了hint这种情况又该怎么办呢?就我们刚才的语句分析,hash join需要等值链接,可以根据表的定义规避他的隐式谓词特性造成的这个问题.

Where 条件中换成不等值不就可以了:)

Code

SELECT *
FROM T1 inner hash JOIN T2 ON T1.A = T2.A
WHERE T1.A >-1 and t1.A<=0

关于性能

可以看出在参与JOIN操作之前,优化器为我们过滤掉一部分数据,使得Join的消耗减轻,这是件好事儿,但凡事都有两个方面,为过滤掉的这部分数据他不是免费的,有时候可能会加重负担.

这里介绍一个trace flag 2324,他可以使优化器不采取隐式谓词行为,在特殊的场景下可以让我们的执行计划发挥的更好.

这里我通过一个简单的实例说明下.

code

select * from aaa inner join bbb
on aaa.ProductID=bbb.ProductID
where aaa.ProductID>1000 and aaa.ProductID<1500
go
select * from aaa inner join bbb
on aaa.ProductID=bbb.ProductID
where aaa.ProductID>1000 and aaa.ProductID<1500
option(querytraceon 2324)----禁用隐性谓词

可以看到由于由于隐式谓词在特殊的场景中(如数据分布比较倾斜.实例中ProductID=1001站了bbb表中的80%数据)过滤后的join反而不如整体数据参加join来得更快.如图1-4

aaarticlea/png;base64,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*Ff/yq+lnukpcszsTFJUVmqpmpRNtUp4r0N3/xBl9RT7h9K9+03chSR7DadHSCOh388fxSeEm8vSuUeWcPe2Sj5l2gaDqevlp+0rmMznhZtgl/3LyZf5xsCVOMpEJNyVdBV2JMKomH9HDMOZTOO498fQ+/vp3dfo/22R7Lh675yFlbuc/svPdH82o5HKXPjtdsrTzeCPIa+hij+/UXuX2OlVm44YUtRoo0elJvE9suy5oTpKiQ+g6qPH/HttMrfMKrfO/UPGHfNkc1kmO4Ap75GNmMsyhQNIRhs+GXgHUOxdhOHYOzVnMe9a0fWr8r3W30aSI0V4Iw+vGNFP8oWFYy0MNaLD6AGrxtwAVGouS1BD4PSIJKHweZHajrAWz5yKmdgxFTFf0taAcvauDL+sINXeekVqbypOeaPK/jVLwyDd69vQcBpMUis38ertQEWfOQVqRYTT809yDZ70xC3AtYTnpw+eExR6zitRPFKqX/oIKmcZ4QlT3NaDyenlMMPQLdpPLd1/cBXR8jbtMrXGn8O+IjE//b42Th9ZtJkcJsOX+Q6lCpJ278p//lHF8HKTVfinvELPnJono1IJT3VHOw+p3DOnGoAGc3oAbjvUTi9Ic9jpiwbjykEL6/TuZPMxrszpvpY3Bfv3zTsgZ5o6twz/FCr+4VahKwF3lZxzkeA4vWXmSPhCYj6GvwuKo+o9WEC2insRFX6OmGZ2SRv595GI13gp4R84INmW9y4HjzJgHxXMPzZ4fjg9AAA0CnB6AOobldN7j25VqFvw/NecZvLeLzxH1s5rmm5FOL2lE5Izbe+xUL6Suu1eJ/7DpNycuvecKWFzkU7vPruK3UfnEkLTDY1In046z6LL1NiHc3GP8fIevivsS5epuYuFvlfxj63QD99o6aGDrOwzodzLt+V9cyL5Idiu8voQTg8AAFmA0wNQ3yicXpGDj3kUq8zpGbeWXhtYRk6LKJrxkvSuyNp5zU3S65b/qx0ag8LpmWS/boZSxURMb8+/4Pw7qGviQ9UutfN+28yF31amMa4kSdYnlZdayfG3ZZs5d9h2XjOKlBaN8MWGaPlwegAAqAxwegDqG6nT+6URaqfvMl0R1y1VGYamG8EygeeFdVOWbvc2IW6Rlzw3f8+uFZmnt4qmV09vmzmufEXS1fwL3mgVtShKp5ctXzQkNTxMo53XmGqo8ObUY+C6TSr4Tgrf0olRtM2cpGc7r0kvGuH0AACQjeR/qAEA8xGp01sG0TSn9kZS+uyrsFDKIs3TB/ekOvewannbK3qxuWUUeAobUwsUXD+o4ZbJGUb95emFnHpSp/fuHpYsLM2ys41sdT77rUhEn+6ZIKkL8kcV91a52N7XO/wdEaHkfcrLBgAAABJqfVEBAMiEIk+ftzyZE/LZ7K9pnN7N6ztWZ/M3pMbn6T23E507nFwXpscR75ENrjFuwzy9cCmlWJJv5KU/vMVQn97BlJTgy7eVECtYRV4LRKqTp6/wP5kA1DMV+UyBecLMzMy5c+cuXbo0MjJy5cqVK1eu4A0GoL5RzntTWacXJ5rMmVaQ9I3N01sGMUzPudl7Q8MiLkh8jNOHtjb/nT44vOnr6YVKm9i7Y0N2nqZ6JypPrxpAGreA0wMw11TkMwXmCXB6ABqNCji9e0djpNPL/VKcZZJ3cd4UPX237a7gWkJ0eqcyh1lR7vQ5TXPuka23PD1rxr7fizcK8/YcvDuSkqcE9fHMTDv+htR9Mm+EIPoSp5d/zxBcRRQTe8ZcOH1FegOgHsGnoCGB0wPQaCRzegEhv+7bm2p++ogJcxJUXwTmGnJusdqbCAavcHp/OnbR/ue907OP1mK/rHB2RDyYbKUTtwqVThmkaGTugZZNMC+vbrcMf2H5qNTbEt8UZ5W4s8QFTg9AxcGnoCGB0wNKKV20efCb6/q/bB76459v/9SPXv/4fW13/PXT/+yuH9Z6XKAcsubpuRyt6PSe2KmfT8Q+T0q8GJDn6VVOaZm6oYXyvqLTB9niYEfClozIHuoJajKEW0yf0O8roiCwGQDwKWhI4PSAUkoXvTs4e5NevXHr7OXZXWdmXjsw+aQ1+ol7nqv1uBqcEx9dPXZp+sMLU0fOTx46O3HAHj9gjx+wxw6cGd1/ZvSD01c+6Lvcc2pkX+9wd+9Q98nBvScG9hz/aM/xS7uPXdxVOr/rw/NdH57rOnpW6Fb9HFkEIlNIZ77PEqrnyFbV72EzAOBT0JDA6QGllC7aPDh7k47P3DoxcOO9k9Nt3eOPbLny61+D01eXe189/50Nl+97behrqz76UtuFu188++dL7M+/0Pcnz56466nSZ35++A8e2597uPt3F+36nR91Lnhg228a7378Ox2/+g8b/+03Nvxrfe0v31P8l19b8782fUXoFk6PaIwghDz11FMV93vYDAD4FDQkcPrGZNm+0Ze7RxfvHH7yvfMPbzz5g1cP/uOy3X+3eNuXn9z0hYdfW7PtkLD8os2Dz7w/8NCbp761/MCXnuv87EObPvndV3/xc801Gfztw33Fi4u23vrRlpvfe3v2O5tu3Pv6NX3d1N+uGfvyipG/fHngCy9e+LPFZ//omb4/fOLE7/+s9KmHD/3OTz74jz/q/s0Hdv36d3f86j++/+++bf27b1v/479cIHQrOP2yZQSBqJcIOz1bT5/Q76NNZe5sZsv9Iwu38k2nr971sYktSVbeOnHHx0a8GFtyOsV2+5aO3XH/tRQrsMOLXHHL/SN3LWVva7i2UDq2rRN3fO5qX8Itpty7SK4tFLa7deKO4IDPLvlc6B3xh5FowNcWfmykzGNb9d5SAadvSOD0jcmizYOUTlM6fevmlWszR8bG1g8O5s+du6e391OrNv2n/GorvPzsTTpz49b5K7N77Jl1Byef3o7am6rzjTUXFm299cN3b97/9uw/brpx7+vXvr526m/XjH1p+chfLRv8wosX/uyF/rue6fvDJ0+yTv8bD+z+tTROj0DUaYSdXjjVy/P75DZzbWFg1fGxcCsVrZETSkpp2OnVm5CpXt/SscitM4vdf80ZTPLx37V01lmFt3YO0elPz25ZOia55OAuSILd2XJ/8vH4fUpFfHbJ52SH6PTsEmGEiZz+2kJ399UjdLcFpwfzGcHpx8fH8QY3Aj95x3H6qdnZi9PTuy5fWfbRpR/a9t3HT/zGijc+nl/5nrC84/STM7d6B29s651e3j3+KGpvqo++vO+BtfZ3Vp/6RtuJry398IsvHP7C0wf+NL/vrse673qs+7OPdmuPdH/mke4/fKT7v/60+7/8tPsPHu7+g4f3fvqhvb//0N7//NDe//zg3tyDe+H0iEaNWKdnSe73lbSZUEZctMaQBMfl6RNluKXmHTTG5Om3TkQl/iMT56E8vWLMlczTK0RcueK1hR9TXVYpLw8iLmPCncPpwXyFdfrx8fGpqSm8wY3A998aoHSa3hq/fr13YuKd4eFnL5z/Zl/fZz4s/atXNvybn614V1h+0ebBTR+Ort576ZnNfT967eg9L+79s8etf/EXj9Vk8LcPj751fvTqrSvTty5P3RqZujU0eXNg4ual8ZsXxm6evXLz0eLBr7dsv6dl+1eftjZ8MLS7/3rn6evbTl3bfPLaW8dmXv9wZt2RmVcPXf2ffhlOj2jMSOX0LOXl78sh1ulF9RSdPmEqnZPXLfdzaWNvcwmd/trCuOIfR9wjvhOQlgPF5uDZcabpOTikkZsIdqpv6dhdS2cl3xUo8u6JhZ7C6cH8hnX6qampu+++G29wI7DwjYuUTt+8OXx15sDYaHFg8Kdnz36lt/c/HTnyf7a1/5LU6Y8PzBw6N7GtNLJq98Un3j6zcM3xf/c3T9Zk8LcPP+s4Syl9r/fq6v2T7528euTS9dX7J1fvn/xofHbV/skvPHP0q8vOfPIHO/+Pu1/6QfGEuXdi6Z6JF/dMbDk5U9g1/kLX+IoPptYfTef0/OOiigYRp5m3DKEl/Mwp9SyWJOg89DxaNxTtXaYmPtkqFM6c6Jib8jaKsp1eIJvTS9XQ87B4pxeq6iPz9IysK+lbOsalwIMOkzi969PymvIECHl69ld5Cj8YZHQtjQ9boC/Yv9MuVvBHbZfG5OmZt2Z2yeeSlPV7Fs6cFfy+cGPmXgpW8TcU21v1gNM3JBXO0/cO93/rjUf+bu1DX1n1T3e//P0/WWz816e/oz3znc+0fOu/PHnfp3/+97nHvvb//vQrTQ9+8Xd+8t//4w//2299/09/43t/9OsLP/Mr3/r0v73v9/713zf98td/+5e++lt/kf96pfbw9uSb6/r/tu3DLzy3R3vsvU/96PXf+NaKf/W3i3/h7vz//kc//N8+8z2p08/epFPXbvUN3dh+anrlvvGfvYfam6rz2KYz4cZbt+iNm/TqjVvffe2jRVtn/+Dnx3/xi6tWd9pHP7px4MKN7nPXd9rXt5269s6JmY2lmXVHUjm9IPFhp3d9XXyMa+ys5N6DhPx5CV139x9QJTynVuwBTj+X4V+VhZ8P1U+p9Fld/irsNRuH98wvsZHtk+0h3Gc4KuX0LOU5PWfhrHkncXqxt8DI09e7n756lzLrHO/0W+4fW7L16l1KcfSL+9397Vs6Fr4+YQT62pb7J+742IizR+xLwgD4a5XkTq9Ynrkuir8KSnaP7Jb7R5IVC3mHyNvolvu5Lxa23B/83MfeabB1gvumYum1JL1VEzh9Q1Lhe2R7h+zvW63N+9b+055Xf7Bz1ffeX/6d917+h3de/Ls3X/jahmf/5rWn/nr143e/8ujnX3r4j1sXfeb5H3766ft/7+ffvfPRb3/yoft+q/kbv/FPf/eJH+uf+LGuffmuSu0h+L//uvCpB/c+1b4v/FLv4PXrs5R6efp99vibB4dbt19ofqPv75cf+zdfQp6+ujy66QwN5elX7Z+8MDa74oPJryy7sGjr7B88cfwXvrjqgVdPvLhnonX3xJLdEx3HZp7vGn9u5/iyfZOvHU7h9I5yGZYi0e7KfdEgOc3kvT/atkNCbwUb0C3qPl5UY588Knao3orz9CijyDo9/20DIlV0mf5jvCw9dBidiyvd0Fin7zI17ylg4tc4/nsUejvYRksPvblxfdJ+Wh2np6ltpopOz8JXgafD8eAYp3cF/bTr9EqLZYy5b+lYeN9DSXF35M5LkvKY+69RSvtO+2uVW3ujup4JMtz+NQnTQxKn95aJLje6a+msa+Hi9ySKLwqYl8JH0j90SXurMHD6hqTCTn9yyL5/25LmfWt/LDr94q9tePYra5/+69WP3738Mc/pf+Q4fdNj3/7th/8BTl8l7nx4/z1rxlbsHAy/dNfPD289MX19li7aPNhRGl6//8TqrhUvb/ubp9Z//p9e0n7ti9+Y+9HeVvz0jVOU0iOXru88M3P40vWzV2Z3npnpPD0zOHlz26mrX19xcdHW2U8/cfwXv7T6kTd62w9Pv3Zoas2BqXdOzLzSM/XyvskV+6fXHEzu9IocfMwjhOKc3ntiq/DkIE+7iwbRLTuvhfL0VmQFj3+N4VyHaGYX6/TexUnN/bgOg/Pv4BG8fKjapXYufxAV0+g+KVY5JFmfTjSg0yvyyjGaK5W8kF5HOb1bYk4Dp6e+wgrj4auDIoptIsYTztMzx6ScPL0wToUi++N3r3ASXTk4dS/qUqXQ3J3CwoqKfK+cxn1JvpXEvVUeOH1DUmGnPz545u/aH/na2ke/tOqhu5ct+pPWH/7hsw/83hML73z025/86Tf/48P/sODB+36r+d7/sOgbv/mTv//EP/3dx3+s//qPvv5rP7zn3//ga7/6/a/+ygNuwOkryJ0P7//qmtEvPPPh11qPfPnZnrsf7/qTB7d89scdn/1xx3+4//0fvTW56/T1Re868+SUKL1vdvZ/GB4mvb3k0/f+Za3H3uA8tOEkpXRgYrb/yo2BidnRqzf7L9/oG75x5erN0sCN+1Zf9Gtvnn27b0vvzDsnZjaVZjafmFl7eHr1genVB6ZX7p9O6PR+XYTa6R1p9l1cRsi9HDUPPQrU9+8uUyOaliMkp2l+eYY0pytNvTv9OEbI1N44y8dWBCHCYemsfyse46p0etnyRUNSw8M02nlNy5ve+RTenOpRsrQRnV76qptdTuLK6vs+I/L0vJieFmtvnMw6vwCzv/w9vgmdPpRTT3VbMF9urqhZT1a7L+yOePyd8pi7pNNiyjcUY+HB1xT3XxNeCr4ECBLzcHpQWSrs9CcG7eWH3zhx9Uzpat/R6VMHp0/sm/xw9+TBzokPrInuLWO7O8Z2bhzdvv7K1rWX3311aPPqwXdWXHrrlQtvvnxu40v9byy1X289vb7Qtx5OX0HufHj/va/P3Lth5quvjn9p+chfvDSgtZz+vceO/d5jxz7TcvofN137la+vXbR5kNIrlL5N6X+eniYXL5JSifz+N+D01aV5/XFK6eoDkz/bNrpq/+TOMzM/2zb6s22jJwZv/Gzb6F8uPe84/S98afU3XjnmvPSzbaPrDk87PyzeNbE8sdNbhuPWxLAkxdDqencxTx+fX9fytl887f+s5S0z5/435O6y6w1PB4Ots/X0rOsjUoSQU0/q9IpvYyhVZNnZRrY6n/nGJqpPLxrA6WeX3M9UVsinq1eUrFQkTx+u5Qg5PaWUk8vQXbxBjl/q9F41kfBSuBZfcYjCI1HU3kTPY+OvxTs9f0uxsGl3W+qi/JROL04SKhF01+zdIcHpQWWpdO3N4Jm3ShaltH/iUv/EpdFrEwPTI/0TlwamRy5fGzs1du7Y6Jkjo6f2Xzm2Z+Rw58gHW4e63x7senPw/XfHdq259M7yi5tWDby9/OJbcPoK8tdP7/38I9v/6Cebndw8G//i6xt/9/vvtXcPLNo8+Mz2gZ9uOrVw5YGvPN/5Jz99607j1f/r83iObHX5ydoSZfP00zdPj9zoHb4xNHnz6KXr96666NbTf2n10x2nNp+Y2XRs5o2jVzcdm1lzYHr5/qkVH0y3fZA8T5+3PLuyzRwrxOyvsU4vhLS03fN+3TAIMfKmRohRdHzOMMJO3+UsYBnihpjCm37hHln3MiCmcAgRimx5etvM8e+RdEm+kZf+8BZDfQYxf5xeXiNOo51eZnh8AUZQQ580/x3VHnJ6qb7LnV5YQDUzjyRB7gmxu+Nb7h+5a+m1JZ8buWvpVd/O+aGWP5clpaHrovAs9VyLoMjyy4lKOb1YEbR1Qno9xtw7C6cHlaXiefrTmz7cRindcfHAjosH+icuHR7p3XHxwKGRk6fHL2y70L3l/J63z3e9ea7z9bNW+9n3Xu3fvMruWG6/2TG288XT7Uv61r1y4c1XLmyC088N/+YrK4o7z87coIs2D83epFev3+ofmd15+uqr+yee2Db6cTxHtsr8+LWjlKmnty/Pvt93ddupq+dGZzefuPpls991+r965cH242sOTK3cP/VKz9SGo1eX7p1csnvS7J5a1pPU6V27miOnZ9zdTccq570JiuPtvMan6vlx8vPeOAubXSi/SRecYaevpxcqbWLvjqVu7U2E0yuqd/rpfHJ65eyTCqefXfI54Q5U77mnipsgK5GnjxgVQzlOz1q45CXvBtaJLe5VCtPoDCM020+5894wj931poCUXbQ4Pcjfheo5PT8erqSqb+kEW7+EPD2oDjMzM/v27Vu3bl2rRzanH+h78+h7lNJVJztWnew4PNz73rk9q052vHtuz4HhE8tPbHrlxJvLjr/x0vHXlx7f8OKx9iXH1i4+9trzpeKbo+8/U1r99IerXup/Y9m5jXD6uWF/76A77827gzdu0rGrN499dP3d49Mv7x17+N3Lv/ZVOH11+eGrhykz782hi9dXfjC54oPJU8M32vZN/EXhzKKts5/++fF//t/bjNWlJbsnFu8af75r/LVDV5/dOd6yY7ywe/KlfdVxejuvBdPgpHZ62ypa7L2wmm5o7D2vzPKWTsQZMFUVNZjLsiLB+Lrv92xJjLCM86qX2hdy6tI0f6iRmWnH35C6Tzbmh9NHEtJB1+R4ceSnN5GZaHl5elVuO4PTp5zA3hNod4vu9Y9o4QuXljc/fcTyvNwzOIfFq9VRXIHwVMzpuZlzxpacZl9iBox6elAtZmZm1q1bd/78+WmPbPfIDvRtPCJJaNy4NTt9c2Z0dmLgxuX+axd7Z84ene7tnjraNXlw63j322Ndr49axeF3Vw28/cqFTS+dhdPPNYs2D35zXf+XzUN//PPtn/rR679+X9sdf/3UP7vrh7UeV4Pz/VUH/J9vUXp9lk5dvzV69ebQ5M3zYze/teaSk6f/53+1cvHm0ztOX9vSe63j+MyGD2eKh66uPHB1Wc+02V220wu4SueVzfiGF+30Ss8Org28LWpG0eadXlo/4wxAlTyG01cgvEJ2/ksP9kbkAOeNYE4YPgEfvgCTNjK3XPvvrLxPPuar03M3gPICGvJIR/JkRdWhR8MmyNNzi4Vnokzy6KIop/cS284OJnm+qZOA98xeqMOhlPLzbF5dqN5H2V5f874fmNgiHiKxxMW/lvDHn3xiULXTZ5lgdJ4Dp29IZmZmCoWCY/NTU1Pj4xOZ3uBjH516/dC7NJSnf+fsrp6hUtuJjS+7Sfr1rcfWFY6tfeFY8fnSq8+W1qy7suXpo6ueOrpy6ZkNS+3X4fRzjPPMqas3bp29PLvrzMxrByaftEY/gdqbKvPAyg+ol6d/98T0gfPXVnww+UrPxN7+a3c9efwT39v9g3dn/8tTff/PPZv+5888+dv60ue7xp/dOb7qwPTTneNPdY6/sGvyxb1Tlc/Th58aK52+0EN6j6Pj7iZ7RyZ/T6Ta3b0J70MrqraFaNSYr06flHDtB/tS0oehxjwnNS0xTs9NERPt3O4k9/dfY2+ideAmek/0LKeKkGr83GQ+nNNzd1Aoy67qHDh9Q+I4/dTU1NTU1MTExOjoWHan30z5evrOi/s/GCodGzuz+fzut87tfPPc++vPblvbv2VN/zsr7Lfa7DdfOrPhtZF3C6fWvnDytaX26y+e2QCnn2Mcpx+fuXVi4MZ7J6fbuscf2YLnyFad7y3vppQeuXR9x+mZgxeunRq+sbX36rsnrx4bmF3SNfHt9ivf7bj5+aVXfuXb2//swc3Le8bb9k2+1D25+sB0Yffk87smCrunluxJ4/QIRF1FvTs9APMWfAoaEt/pJycnx8bGL1/Odo9s6WLv+gNvUxrMe3Npaqhv/Jw9efHs9KUDV453Xz66c+SgNbzvncFdbw6+v35g26uXNq+4uOnVoc1m/+svnl6/1H59CeaynHMWbR585v2Bh9489a3lB770XKf20KZPLlzzi5/DvDfV5btteyilAxOzZ0ZunB+9cXFs9sOPrh+8cL1vePbAhRsbj858sW3wq8s/+m+PWW8cGms/PP3qoemVB6ZXHbhq7p1asmeqsHuqsBtOj2jYgNMDUCXwKWhIKu70J9v3d1BKH/vg5cc+eHnHxQOrTnY89sHLr5x4c8v5PU6jNFYPvuP88ELv2sKpdjj9HOPk6Wdu3Dp/ZXaPPbPu4OTT21F7U3X+8aVdlNJbt+j12VvTN26Nz9wanrx5ceymfXn25NDskY9u7Dg9e88rZ7edurr11LW3T8y8/uHM2sNXVx242tYzbXZPL9kzncTply0jCES9BJwegDkAn4KGpMJO/+GFE+t6NlHq5umvXJu4MDV4cqz/1MS5vqnz+y6XukYObh/peXdo91uDna8PWGs/2rLqUscr599cNfD20jMblvStW9K3fjGcfs5xnH5y5lbv4I1tvdPLu8cfRe1N9fn/nn6368DxnQeOb+85vrXn2Oa9x97aXXp9Z2ldZ2nN9tKKrR++vOXo0s1HC28ffXbTkSfeOJJ//chP1x9uXnvox68e+uGaQw+sPvjAqoP/y6/mhG6Rp0c0RsDpAagS+BQ0JJV3+rX73qRePf2ZiYv7h46/d2Fv1+DB/VeObzz3/vqzW9ee3bKm/52V9lttZza+dGZD6+l1hVNrV1x667njxWeOrXmhd+0LvXD6uWbRu4ObPhxdvffSM5v7flg8cs+Le//scetf/MVjtR5Xg9P61gePL3s9ewjdwukRjRFwegCqBD4FDQnj9FOTk1MTE9nmvTl6/nhx7xvUm/fmwPCJzWd3LT+x6Y3+7e8P7DePb3jx+PrWY+3OjDfPlV59trSm5cNVTx9d9cqFTU8eWfHE4RXPnXjtuRNr4fRzzJnL108OXi1dnDh89sr+00PdJy/tKp3befh0/Jpg/gGnRzRGwOkBqBL4FDQkvtNPT1/93aamr331q5ne4CPnjr26x80a3qS3rt+6MTk7dfnG2MUbQ2euXTjzAtAkAAAgAElEQVR+9czB6RO7Jw91Tux/b3zPptHO9svvrRl6Z8Wljrbzby6131jSt/6F3nXPHn8NTg9A2UQ4Pf+IqKJBZNPDcy2K+endxxWJ05mT4Imw/uT03gOMvJk0a26KiHoJOD0AVQKfgoaEdXr9619/pa0to9OX1uxeTylddbJj5YmOnqFSx9mdbSc2rre3bf2o+8Vj7UuOrVt87LUXSsXnSmueKa1u+XDV00dXPnVk5ctnNz5xaPnPDy1/5lgRTg9AFtROL0h82OndZwMx5i1xeu+5VGpBt4uGRgwzrxFiGDohOcPqkj5xFlEn4T80in0H/Ub2IVMZG7mA0wNQJfApaEgqXHtz+Gxp1a52Sukteuv6rRtTN69evjH20Y1h+9rF4zP2oekT3VNHd0zuf29871ujO9qvvPfq8OaVH3W8cmGT2f9G6+kNi3vbnzuxFk5/e9LW1lbrITQIKqd3HhRlWMFDPfkEe9EzrZxm8t7POL1lREkYuyGubzPPJfSVD6ZFzMPoMjVX5ZmvcbpMzXsEmKV7rp+xUQw4PQBVAp+ChqTCtTeH+j9csXPtLXrrJr159ebM+M2p4RtXzl8bOD1zvnT19IGpY7smDm6f6Nk8vvvN0ffXXt6yevDt5RffWnbuzRfPbCican/+5Lpnj78Gp78NaWtrg9NXCoXTK3LwfO2NfK2wgjPVNSLOwt5LzuaCp8a6BTk191REWeHWXHkngNvulVdlbAxtDk4PQJXAp6AhqXDtzcH+o5+497f/+Z/+Qsb4/I8+X6k9BPOftra2c+fOtdUPtT5gMUid3s+dq53eL47XLarI5bty777q5llpPxUq9e28RnKmJRq/V1Ufk+ZHzNuwDCa5zlwNuu0ZG0Obg9MDUCXwKWhIKlx7A2pF+JOp+rjOt89wW1vbubqigk4f8V4keZv8ZdiFCSFSp7cMomlO7Y2kNsb3bNvMSWqm2Ty9l4AXJIx1esvImXaQkrfNvGnqmkY0syvUP6IeIvSm22YuLOUZG8PbhdMDUCXwKWhIKlx7Mz+Z/4nV7Kg+meyHNvwBlqZi2Y96bHtFBt92u+bpkzi99Pizy4QXUOTp85Y384xt5thkOftrrNNbBtHMvBHp9P6KwTJW0TRzRMub4rw6iHoK28y5J8Ptkqc/ffWuj43ctTTBhpMvSSmltG/p2B2fu9rHtc0u+VyKHiKZXfK5kYVb1a+fvnrXxya2ZNmCsodrCz82csfHRu742NgS5WzIFdxTSk9fvev+axGvb7lf2Na1hdKxbZ0IvSNxbJ24w91Zdn+vLfzYyB2RQ0pDZXvzgdM3JKzTP/Tgg69v2NBob3Ct9U9Olj0K653vdtGrSNtVP4QXC79UwT8H2Q9LvRB9EcUuplo9/DNJkKenNJhNMovT+42ReXphz4K0PQpv6jyKhvMO+oX1tD8oiM/YGNpcAzu9zLkjPJtzR0VwPprG6YWfA33kOulbOsbtHbsWN7wklwrRTj+75HNxO8s5dMwVguj0p2e3LB2TXHKED7J/KFTHnz/mfXB6UGMavPambV7WdWR3evYHqeRRhfqrxFHl9NHqiT8HGVFdQalEnzJvesRf5Ao4vZ3XgmlwUjs9s0CXqfmru/X6uEG2ziI4GZg8PSvigaBnbBRjHjh9FehbOiaooWOc4fZkaWMnLy4Yqqfjp6/eJZVUzuNnl9zv9XD62v/P3ptGyW2dd584Zz7lPZlzZt6ZiT1zOG+SN3Rsjzcl8RLn1aRjO7EgOo7ljO04thTFllS2KMuiWxBlSbZJS7LEpvaNpEiIbJLiUlxEUqQokU0SotTNTRKbO7vZ7Caa+9JN9r6zMR+w3Xtx7wVQQHcVqv+/8xyyGgVcrFX1w4MHF5W+H/tO37ygc9LkzsoFg82WVTOdVVvS+6PZZ9w8fdj4Lf1TxJcFAnl6y7J4WXlJnj5eCh9OD4oF4fQ9nZ1dV69eK58dXJpCfyZVpxc5n+hPKyzRy508+K+ocRAF+ZmSN45oWuZ1sKloTs/gOL2bYveMP6LTk+7eahl5okscomU1p6kKUvWZC+KAIa7h+Ls4vYF0lK/TE4rmGudgJZ3h5hXn8JriXxzg5Omp+QauCfiza+mf4mg6eWIQyL7zBkqdnvRy/3WU1YxyDmBvRs55ET+1708lvxrgbEM4PcgGcPoikHqePqiGXGvkjiZ6wcwi+G/qXwcTp/zGQ7IBFdrdg/vOCpxleS+S5ukpgw9zeiPnLZiXgCceSkU8aJbo1xwl9YgoUQJOH6yoEdWZUGO6HkaMLEpm2zIazCWHya6dng8WujCFK/4INdPbpyzor6SdlSvK7hIKCnjYQhR/Fs0LOidN764MrLI7lTcm4eiRapYS1d8z25b8k5/CtyFz/1Fqn/xzBtne91aH/5Y/SaA6X9haYcDpy5JydnqrVLU+XadPMmao3AclkvHItKhO4zbZdBdpLIh4rmWJv3Al44Q7PQKRqSg5p6+ZTsoW/WfQ6Yn0Kjkmz+n7KwvPeQsXu3K7RaT/aUH3s+ySNLC0KJ/I09PZcX49fc10ci7U8jcv6Ayrwpesr3dLrr8wzDLT4j5YM73bq2si3wruF6qePm6eXrD3Lcuqme6/biYr+7d3E74+Mm/BYJTWCgVOX5aUudNbZXqPLPkiVArl4mgFNFH0lnx4EqpTOvVKuGHHGckWlnzVMjvd4u1oOD2iPKLEnN4XZQ9CiINOT1og8a6g9oZSveBoNCFOb0u2Xwp/S3+z3dnLgm6iwIbQaM8mmfp70T2jwRbky8zWuzPLP1gZPB2KFs7uYE8wqAXjJeMHKye3V273L5Jw17S5xZ2qAKcX7H3eliFvqAie28RpLQZw+rLEc/ru7u6Ojs62tvYy3MHZUr1QGDuPYuTccYKjMe1bghOD4CRJSEvos+X0EXeNZEJLvJcZp1+0SEEgshKl6/TNvM5Saqa3k2XobO2Nj6+tontk6eoUL08cz3GnLBghSzu8svgpt9hmPzLvFvteWEEfO+K+dyTLI0p1ewTqiNhzkrBUfZTrEkyVEb/YJrhSkjy9f/6WtJ6ePGkhcMtpiAMgeM0kcmvxgNOXJbbT9/T02EJ/6dLlODvYdGtlVVVTdbYDO80gR1EUVTed6bhjEq3phqbqJjktOd5ERyTuFs/Og8OZ1/KPdPBdcqapfB1MQKdnNrvozEo0rWhCkdMjEBmNEnR61jtrprtVH7Gcnpent2j3pYtVGKSOu7170i3dlbc4eWgv++6L4/RBXp7eX4sIeXr7tIGbp+8mpN+vLw8WlAd6xgzp3TK60zOXBSI6fWDd6e3j1uoIN44v/SEW7jfiniPRZUjxWisUOH1ZMjAwsHLlyrNnz3Z2dl69eq2trS3GDtZVR9NNXVVU3bIsXXW12/RfUq/9aekx7Sa81hTH6TXDm9zQ4PQ8gkl08q3gC8k5QGjj3uQpOr01kWpvRBtQdO5k8XYBM05wBDg9ojyiBJ0+pTy9wOnJ0WS3b8oc1y6CD1bPe8szWDm5u4aWYLrTmwgF8S39U27pnOJYu/CuXL9x9uSEs/z+2VG89fVWkO3GR3YjLOHozOUC7v0D3ioIT7SoRL7Uwrd300cRR9Ads3cahNOD6AwMDOzevXvlypWvzHnFjkKcnhiiGaSv24id3nuDN4pscuARxdElwyVwJxSdHiSkutB7ZLPl9B7cE7Ao2zY4TnBMOD2iPKK0nD52PX0hTi/UTRrpPaOBLmtqprfb6XPePbJWsBea0Dx9zfT2ygV2C4E0M0ffgzd08pafs3mjrG9wdcKnddXc2Uo109unLBicd4t9s7KztNzucZI7PXu1Z3v3JJ6gEyeQcHoQnYGBgTNnzly4cKG9vf3atWvXrsW6R9YvjnGk2/07itNTY8LpQQF3D2fX6ccUidMHnwzFdCtpaMwQbl+W3nOC6tj6OM4jpeiu6/lhtyPspxyRkajTVdnDB0y9wjs8TL2CeWxZMErM6fn93pBPY03D6cOGW5YVoW9HwunduhrKJtnnyJK994Tl6Vv6p9zS3+yNSTx6ll61kIsJaT9zills8uoB5y2i3327NIgYaK+Cr+n+xkwpT++dujg3J7gHRjd1aCFPD2KTzOk9DI2svZHk6e1C+eCYZjDnz5scABI4PRex0zMSH3T6vMZ6Ocfpie7nI3oenD5DkXd3r787qDug5LuS81BYzolf4ESQ/7yCknN6i7nDVdgbSXKnl/YjGd3pqcpyok1Sgsl7cyM4PVGjLy+zkaxCXCsN3xoxem13t4mztM7qk7MYrJxsX4hg7ydOwempQ6hzXougzx/U04NCSOD0pq6quv9aMyzK5onyd7HTE2OS5fKGRtxQC6cHIuD0XERObz8NVDPyWlCqfK/Ka0qFqtPeT1iaoSkxHwQryPRb7pNEtTzp9PSVBMQ4R52uOhufvGJjaIowp048dIx/WBn+yFnN06fxiB8fYb83ofOlCmPCO3Rnq+rZpnieypo61cuN0+G9X2skd/rBSub2gxjLH338kXm3tE9yrhtEe96q7d+u2TN1OMSSOydOTBFOhHtkMwGcvixJ5vRE6kY3A73ZKM4NrvRA4ZjkUNLuyQkBIIHTcxE4vSAHH/JIV4GRm1WqkjNsKWdQq3T+SQP5ic9b7jmGqteRTu+eeBTdbid8EBl3udNL1JyU+AJCKb7Ts3c0poAwT8/UskfRUyFCm6c7XUkAN6Of5ipEZGTeLdSNAaH92dsST95EayO4AjNIPg4sWp4+E8T5FIDMkFLtDQDFAE7Phev0titLnd6rkcgZliCX70ie8y4pc8L8uuP9wbfs2dkpf6L2xh4/pFYHMeZBejyRW+FfQgmkaejDg3vu553fGcJlKL7TE2XNAJQTcPqyBE5fUhiaV87EXMwY3+ojat6SWUfpX3Qs+yDNsNM7F7BSuPrktERsZK7TG5qiqk4K3PN7AqecxtQraG8L5OldP2OysyKn551LEO04LZP19KTrI8Y9BPvXDlOviHC6Vaergus/ZpVKTy5P5Bfd6SH0oFyB05clcPoSgnPjQFHvJfBufkjI2K1Dtp0+xa1CtybI01cZRo5wel+ayT9Dnd7QFFWv0qI6vaN3hsam3onCm1bmHlnnNCCkKAgxtiHQ97wmP90ycrLzsaw5PQDlCj4FZQmcvoTgWB7taoamKIqmeo/bNTlDvOkUd5g/qaLpzvBIOuk7vZ+39yc0NGqAaEkCK5EmZeP0gf0Vb2AUp3d9K6nTewOjOL1fHG9WqYHbJYlloPu9sUfW61B+U9Tg6jszMEKfNsxFHrYPJdkZApwegDECn4KyJB2nDx4WOFDiQxbeuAR02H/crmvcwSFe16IW3Umo/XzeeAtk2hZJmLtYJTlLQjWUPmXj9JZh2H9Qmyr6wNSd3qxS/W5wCnV6I0dk4tmZ0oG+LEsj/P1O5unzGmegIIyc7AIL6/Qh/dnD6QEYI/ApKEvCnV6Sf2HGsXjPuscRE5mITs92CxocwvY15DYbKV0e6HiUeXQAm16mnD7QZSn3z/QoG6fn9u8UfWBBTs/gqJXbvmdaEZ2e7YSeWz/jXC0ygssGpy+VII4NYnd4HVaGFtNHc3riyp+swgpOD8AYgU9BWRI1T88YvOgt709G8UEUQmtvrGhOLyp2ier0frmOm6cnK25keXq+06P2hgO5UXgPcIgx0Eo7T095W5jTE92Te7Iudnd3fM/kiB5RQnsrR5RyeJou24+B2ht5wOkBGCPwKShLUnD60PFj4v40hGmg4XanV+iMSg5h6tbdGl5fKf7aq+wQuwW24xo6dS/ftN64njOSrfkP/iUXT9WDy+bNBffIcgiULQX3T/SBUZ0egchUwOkBGCPwKShL0snTe0eGwiPWAnk9H4Z1gegkjMesrKMo8Mpvsg76suQy7n1ZIhCZCzg9AGMEPgVlSTp5ekVcPU8Oca/IyxZI11ypDavYKL88PYhLhp1+LGGcftEiBYHISoyd0yfMNwFQTuBTUJaEOD037x78TiRfJPveJJK6cqc3+TUIYEIBp+eCPD2iPCKh00f8/QJgAoJPQVmSfu2NZMIo+CIf5c5KtnJ7gpJ8s2eUbDn9uO0mOD2iPCKu04dKPJweABt8CsqS9GtvEn5vhvXdwhmZ6WyxzIjygxQ8pwq+KEtKx+lLajfB6RHlEUqY00cRd9EnMdqHrqV/yuT2KQsiXCCIPqZlWZbVvKBz0i39zdSwkXm3xGhBysi8W9ort4vfb+mfMrm7JskchC0MVk5unzS5fdLkznktSWYAxpTCDA2UOJGcXgkk5kUjSN6yotXTk72uhC/+hMnTK+JzKu6fjDuWK6Xj9DYlspsiOH1eUxTOE6CIjilVPR94RKg9vvTRoURPhdwny1IPovIfLpvXiMfNOjA9l9tvhfSEyHaTT0ybM5zZ1emqohl+z55FN1eEKJSA04d5O4XkcyofgWCsnJ7n3BLP3t49yRFlcVBnCHGcnnk9fZDbSPOCTmrtyKmoxUt2qgDGiTifApAZUnN6kZ3giEkFRSyLoePHg+hl2hkS7SyrKLcsZ8jpQ8ePBXE7SbBzUY3r9LznTFGoep1l5BTXfaP1Fs936MC8KnSD6ofeNOv8acku6rWcqlToZp2uessjwz0NcE9OmM7vvTDzmqpoepWqKJqWU5QKzajjn3Igxi/y7neN8FGy8r0fJOLHJ+74KdO8oJPRcduVg8MDiXwudl6cSYq7Ot7SP4Vs0PN1yuNH5k13W2gZrPSvFfhO37ygc9LkzsoFg82WVTOdPZ0gvd+fBShpivwpAGNDpOfIRh+iBOwfR0wqKNIEsLedk/zOWZZF3qNMdCrqV0OJa5yK07Vohpw+1d3EqUwjh4idXiBPnsTbTm/kxJolTdLbqFWm/1AqNynup+Tp5dHteZF5euJPSSqdfSaucybAWRy9Lng+Y/s9vcxFd9wJFe5pm7Mr/ZOrsMOr8E8N98Nojf/vFCO+NdNthx6spDPcvOIcXlP8iwOcPD0138A1AX92Lf1THE0nTwwC2XfeQDh9dkj4IQKlSdR6elBcFGkCWBGcU5FDIhU+ERiG4U5IPHtKPD3y9NY4dvmawOn9R8AamuuytNPr9qNkuTlyLU9NSOXp63TVz5E749g5eC0fdHr/QWZanq698UQ/siAaOUWrMvVAkp48JXCvBth/+k+6DSwYYjzCroYas0y8HLK1sJaDFTWiOhNqzMFKOylOjCxKZttO75q9T5jT2+n5YKHLyLxb2rlLWDO9fcqC/kreJQIGdwkFBTxsIZA/i+YFnZOmd1cGVhmUHnD6sgROX9JE/IVT6IRT8l9BU1d9qSS7DRUpe5G6Fi0Rpx//3URsb/8qijdEVk9v1pmOiOe0YNmMkVOUClWlzDhYo0I/4pjGk34aVcsF8+LOaYbB1t5oWgUxggyyQMjQK5wiHOc6A3G+YZ8qGFVMHt+9FBDn/AGRLOQ7NMiYPnOKRDAu7fQ106kqF+rPoNMTtS7kmDyn76+Ml/MOu5vWz7V76X9a0P0su3v6IZiL0MuJPD1dNYR6+kwQduSDTAKnzwZK5KIOyYQRMTSBu4d2RTTutyyXiNN7jOducuBl7MVOn9cUz9d5pfB+7Y1b1qJW6ZrCiH6UPL3bmqvLbjqcOEMgFyaYp+fkzsUV8HmN8HJTrwichFTopr8Mpl6l6zlV9cpyUFU/hhFX4plpx8fpxeOSpu6LsgchxEGnJ7PsxLuC2hurZjpVE5/E6W3J9kvhb+lvtgYrJ3fOW9BNFNgQ8r292xmfqb9nglwe1N5kGzh9WQKnzwYSWbRSTQDrqtDJieeB8Rn/rkUz5PRWmrvJ0Nz0vLtXqCFCp/eT9E7JO3s7qVPZbNfn5G1Ht01aJ9w3NE8vukeWcnq3tkfV61inN1nd94uFuP5N3RrrVNUHTgn8diyr1TLyunfGErynFpEgxAcHH3vPcu/JVsbF6aXjMi4e6J+xZno7WYbO1t74DFaK74V1ptrezZTKTJo+SHQNGSmmLBghy2+8svgpt9hmPzLvFvteWEEfO+K+dyTL451dwOmzQ0E/PaDUgdNnACWQ8RWNIHkrUj09LWu2JBJ1z/KJJ3qePpXdZMXt8pV87rI7hOv0MhF3psu7Tl+nq061jG/h/LpzQd+RdpB5eve15+WmXuHINFm4rzr1M/6lAKImPrAK5DmG6/r2jPRcoFdNEj9tj8Kb5BF2YLE4u8nfQe6N1LyWx9rpw8ZlnZ713ZrpbrVJLKfn5ektuobedWgu0jz99u5Jt3RX3tJeud2qme5n3/0zh+mDvDy9vxYR8vT2aQM3T99NSD+6qC9ZIn8EQJaA02cAJYIsKhOyL9HMOf347KbI/dMrbNrbyClKTvMT86SFe6U1eenZAVHRrnuyXqGqzry4uXa/AMbtmNJzelvHZXl67zZcb73cmn4i9Uv1w0MVC+EG2fgR2+A5QXg85ffsjErN6VPK0wucnhwteNcsgcTp7SL4YPW8tzyDlZO7a2inpzu9kefp3QZv6ZziWLvwrlxQwsDpyxI4fakTxf8UQQK47D+xpeP0JbWb5E7vJq3ZPuMduyKT375VuzrOuhc3T+8O9PL0hHZTrTnzrvClnOir3uuURlUrFLYW3w+7zsd/XpW/MESxjZE3/JadxLyhuTcKI1UfFmlIfCD8PSK8n2EsnD6O0FvJ6ukLcXo7y97fXLjTD1YGuqypmd5up89598jSrUXL09dMb69cYLfgr1dw1UAJA6cvS+D0IMOUjtOXFHynlyiU92xXuqdwvyrGrziP2D+9N61bZkPVz3AuDhj+QvqGbWgc16fQ8k6On8rWt1JL69wSoCjuQ2TplQrc2osYI4kvaDFKyen5/d6QT2NNw+nDhluWFd7vDen0bl0NVTvEPkeW7L0nLE/f0j/llv5mb0zi0bP0qoUuJCgicT4FIDPA6UGGgdNziVB7g0BQUSISH1yqdJ0+sCKhBPqnp+5wFfRsk4bTS/uRjO70pK+TbZLuTt6bG8HpiRp9eb838lUAxQVOX5bA6UGGgdNzgdMjQqM0JT64kCk6PW+9QuHU2yRF2O9N6Hypwhh52Tqvqp5tymmBLZSnWqZ6uXE6vPdrjeROP1iJe2RLFzh9WQKnBxkGTs+FcfpFixQEIhZFXM4xcnrBuUoo27tT77xFmKdnatkTFaYLbb5meirtCzL6aa4CGFPg9GUJnB5kGDg9F+TpEfEUvniZ+NC1SN3prVg243drA0BZAacvS+D0IMPA6bnA6SdglIfEB1cqFaenVzyGzUDoQbkCpy9L4PQgw8DpuZSa05vEM2gRaUVZSnxwHZM7PSP0FmwGAHwKyhQ4PcgwcHoukZ85FeiXnXikq6rnA91W2uNLu7Pkdw+fU5QKTavwxor6PFqzSvUfYes+pYh4suyEiokg8cFVTuj0QaG3YDMA4FNQppBO39XV1dvbix0MMgOcngvX6e1O4iX4/dPbT3ryH8IqCYGL+33SEycAXr/19guyK3r7XCLYSbyZ11RF06tURdG0nKJUaEYd/2my5RjlLvHeA4mFz/xK0elDBwIwocCnoCwhnb63t/eGG27ADgaZAU7PRez0AnnyJN52eu/5rxzNivjMqbymOA97ss8NbBHXNEVRFE2vM/1zjArd5Lep6nXB8xDb7+l5Fd1NU4uwLctS9AVOEHW6ynl6cXCDJHF6eltxhqf6sQMgS+BTUJYgTw8yDJyei9Tp/ZIYQ1OIlLnv9LpeoahVJlGHQzh1npqQytP7D2Ql56UZrcSZQM6wWg3NrZwxcopWZeqBJD1ZXeM+QZZ4DK2iGc7wrFfgTBiDD4RdVeX86VZV8bZPwU4vEnoLNgMAPgVlClNP39XVhR0MMgOcnousnt6sMx0Rz2nBshkjpygVqkoZdrDWxdAUIZ7026hVuqYozlmEX2uh6kT7eoVThONcHyDOE+z6HKOKyeO7VfXCmo2SjYkr8UwYOeYY49Z6Fez0EqG3YDMA4FNQpthOf/HixatXr3Z0dHR0dGAHg8wAp+cidnqnJMayWvml8H7tjaIZraZe4Uo5JfqheXrLiphHz2uElwe7xzG0Ct30mzL1Kl3PqapXlpOBqnpIPDdMvWJ8nL6AdwGYCOBTUJbYTn/lypVr1651dnZ2dnZiB4PMAKfnInR6P0nvl7xTIziVzXZ9Tt52dDtPrxMOHZqnt3zvF9bKu7OjzzE4pwFE/zlWq2Xkde9MI3hPbQkEJD5SjGWent7CshFS/dgBkCXwKShLbKe/evVqZ2dnV1cXam9AloDTc+E6vUzEPR13nL5OVxVVy9nZcaf2hp93l/RBaZMzLK9OhrZzpqrHHkfPka0FltlP25dO4Q0kvpAwyB2dZj19qNBbsBkA8CkoU2yn7+jo6HLBDgaZAU7PJXL/9ApbvmLk3N5p7MR8hW565u2V1uSlZwdeZbzfsl3DY7oZd8NOsdtq7iRr/YsGdMrWOw0IFPkU7wZZSHwaQXg85ffspo7l9FGE3oLNAIBPQZliO31XV1e3C3YwyAxwei5yp3eT39S9p8FeBb2ieS+bTpTRU2YmErJATzuU07sd2Lt5d/7DqvKGn/J3EvOG5t7gOy6p+lgGD4mPEczFHMHGh9MDMBbgU1CW2E7fQ4AdDDIDnJ4L3+klCmXkFLJ/enq4opCV65H6pyf6uqHKKrxaGucGXLekJ1AZX0eU8tvjE/Ml6+/HoKQ+qrz7v4jFluPyDSWO09M7RQZsBgB8CsoS2+kvE2AHg8wAp+cSofYGQYkjJL40I7rTRxd6CzYDAD4FEwbsYJAZ4PRc4PShpgiJz0QU4PRRPiCwGQDwKShjXnrppQcffHDatGnTpk3DDgaZAU7PhXH6RYuUCR5xKfoCT+QowOnpE7BwYDMA4FNQrlTNnv3CCy9cvHhxZGRkZGQEOxhkBjg9F+Tp40p80RcYwY0oTh9X6C3YDAD4FJQvDzzwwOXLl4eGhtCXJcgYWXf6jYvwWAgAACAASURBVIc61tdfXfNh24o9l5bWXVi089yinWcX7Ty78N3Tr+0w9e0t82uaX91yYu47DXM2H3v5rSMvbTz04psHnl+//7l1Hz6zdt/Tq/c8tWrX7Hwd0+wEdHoYfFlGqNMXIPQWbAYAfArKl2nTpo2MjKB/epA9su70v1h1/tdv992/sefeN7pyqzpuX3b1tiWX/33hhe/PP/3dOae+/WLTzc82/NPsw1974sCNj37wt7/d/cWHam+Y/u5nf7Xt07/c8pe/2Dz57k1/cffGP/6cyjQ7EZweEj8RIrrTx/rcwWYAwKegXJk2bdrw8HCHC3YwyAxZd/p78udnbB99pOb6A2+PTNs0PHX9YG5N709WdN62tP2HCy99b/6578w5/a0Xmr/5dOPXZh278bGDX/ndR198ZN8ND+767P3vf/pXOz95n/HJ+4w/+rO/ZpoVOL3sWVHeY57ITuid7iYt9vmvRIzf458g8RmMvJbsGQJyp6f3eAxgMwDgU1CuTJs2bWhoqN0FOxhkhqw7/c+WndY29vxyXdfdqzvuXHH11iVtP3jt4r/OO/vtl81vvdBy07MnvjH7eMWTR258/NBXZ9Z/6Tcf/NVDe74wfddn7q/91LSdn7zP+MS9Oz5x747ITi8Ir3N6q9WK5PRhXdSn1Gc8JL6Egz4GBA8dG1OnL1joLdgMAPgUlC+2019xwQ4GmSHrTn/fSnP+e5de2X7h+S3nntp8+vEN5oy1zQ+tbJq+/IS27ETl6yemLT1x35IT9y5uvKe6cWp1488XNeYWNt71WuMdesNPFzT854KG2+c3pOf0hKipFcQDqogEv5YvkYc9FVtqJ3hQjxITx1g5fRKhZyYHYIKT9GcMlBjTpk3r6+trampqamra9shfYQeDzJB1p5/19tmB4dH+odG+odG+odHeodGewdHugdGugdGrfaN3PbP1K1OXfvnupV++e+maPecOnBved2ZoV+vQzpbBbScG3moY2HB0YM3hgehOb2iK7CGy3jhR8vRa3tQreD8QgfbFuhbzh6foIovwolScvrDPXaHyA0AZkug3DJQe06ZN6+3tbXDBDgaZIetOX7X5tGVZy/f3zNrRsXx/T+2pgVk7Ombt6Gi9OjxrR8e/LTg7Y/vIN55q+NiPl929+Lj91qwdHW83OKO9tq9n7ZH+Yjm9My01six/H/+XpujmihAFz+nNKvfajufxvtMb3rUe7wjxxxeeHig8p0+uI4WIDwBlSsJfMVBqTJs2raen54gLdjDIDFl3+llvmZZlXeoeab02fKl7pKP/euu14darwz2Do01tw79YfsF2+o//eNm8mpadLQPbmwa2nhh4t3lww9H+NYf61hzuX3M4rtPzoZxeURQt545L1d5oRivp9PbIql7n+Bkt9PF/WoquqoiIQdfT2xVZGnF25xwJrtMT535u5DX/9FKYzlcCTg8XAQAACdOmTevu7j7ogi9KkBmy7vRPbmqxLOvwhaHaUwOHLwydvjZSe2rgvZaBtp7rO07237Xk/IztI994uuHjP172xIamtYf6Vh3sXVHfu/XEwOIPexd+0PN6fV/+UOI8PTtCnDy9l55XFEWtgsRPmODX3vgnjc4h5Mm6fVpIHHtGjjkYuKl6xukh9AAAIOeBBx44ffp0W1tbfX19fX09vitBZsi60z++4aRlWdtO9C/f37PtRP/hC0PL9/cs299zpmNk6Uc9/7Ho3IztI19/quFjty5/MN84f0/3q7u75+3u3nh84OW6rpdquxZ+0Lv8QCpOn9dcqYpQe2P/WSXpGRMSX+4RcHoj53u5n5WnE/D2xRz7LU7mnhMipy/GhxUAADLA7Nmzn3vuubNnz3Z3d3d3dyvtkyYjEIjxDO/TODpqDQ5bvUOjHf2jv8r7tTfVxqkPzw7tOT30XsvQtqaBzQ0D648OrDrU//r+vhScnqicsZ3e8O9/pfu9gcQjrNag05t6hevodboayNMbVY7Zm1WqcwT6p5Fk3Q4TpNPTxxUAAAA+s2bNeuCBB6ZNmzZt2jQ4PQIx3uHl6Zft73n9o55TV0cWf9h928Jzzj2yty6fvrJx3u7uubu659R1rTvS/2Jt1wvvdy3Y27skjtObeoXCLVwmbpMN5OljEFrbgyiXCNbeeCd+FboezNP79ff+VJx7atnwnB5CDwAABQCnRyDGOzrSRqJifNQqU3oTrVji/cmLLZqIcgtFUZ544onFixd7h1zqnxQAAChj8KUJwDgx7k7P16boFF3yEBMqbKcnj8DUPykAAFDG4EsTgHGiKE4PiUdkJZijsb29PfVPCgAAlDGxfvEBAIXjOX26zXbQTh9r2kWLEIhiRsGHLgAAAJZiF/QDMFHwnD7dZmN+3oufjkUguOEdpeRzZAEAAEQkxOlDpZ8cofTPEKIvYXBMybTeW7G2RsELE2VJ4s4iYoPyEaLMLvqG5bbM3dRZIRWnj3/SXnxXQyBCgzxo4fQAAFAArAJGswRqEvm047cqERij9VKiOX0BmzdKs9HnKJowyRLG2lCihZQvDDka+W/mKMzpI+4UYnMV388QiFhBHsDeM6fg9AAAEIsQQYyoUBItS7Bs6ZNkebjTMvKq8ORbNGGUOYbZm3Dk4CzirvsYHQBRhsRqMENEdPo4Aq8ogXp6OvKaolCPBxL2KJ/XFOdBVAjEeAZ5MJPPkYXTAwBALELMSS6mzCShWll0Cl4e+XbgvivZAiI5S7LwzKwjqnNoa6kfAAUPibu5ShCR04uOh4jHCc/pxT3Te7B9zPMeH0srvt8/vZbnjI9O6xGS8J85xTy+Ck4PAADpEKPSg5EJxjCC7wYHCiAeZaOb0Rdd2qBmBIZGWxh2vSzpRmAGktNy9Us+PHTBIr4b0r6pq6peQFOpHABRhli05kafKgamrvKON+9YpN5yhyY8Pgvu90be7Ljl6UOcXlEkjwhFTOzIa94pn1mlEscJcwDB6QEAoGA4liYbOzBCXKULoquegBuawpPxmJhEi8wiRTcnJaDpko3D3QjckSWbJXRbhe6a6MvDP+kZywMgdONLWg42zh0SC11VdV1jHd3QFPdshzyIDGdE0WaLSsSNEHfVpE4fEqZeIVwIjt/bHm+fFZCvW33FR/UOIiTqdNVxevqYb1Xg9AAAkIAYlSFc1VDE0mbFFy9T1yjLMu0KgngipauFpFMVsVAyQ7hvBddX3kLo5pXsBe4kkuGc5SHklbspoixh6ErJN4JkSHB4yMLEPE4MTVF101N1shm/CfKPNPL0sbZqLPhOT5Q6cHCTprbTM7UQ4py9xOm9OYquAyAQduQ1JWcEhN6C0wMAQDJiJIxDlS44PJ6vBGtCCnB6UZY+DO7yc//kuqZ8NPm8Qse3ImxPyRLy2pelnMf0AIg4hFHekKniHCf+ARJwevJUx9AU9rSHqMuJMB+WFCWeQZ6nNzSFLokhq3FSdXrOEASCDUNTVL3OIpzeewtODwAASUgzTx8cHkNfbIdKVK7sthNQLskaiawxVJG5I4eOGaURySQR24zQvpOqFjU1dgdAlCFR1qhgM2ZuHmXOA4iScU0j6nAURUl+fI7RM6cKcXrX19OrvXHz9LhTFiEOQ3OOK/pbxXlXgdMDAEAC0snTi/wvoniZuppGIb1lWSFVJRK4SmpF0/RYI1vRam9Ey1aYAQcGhjh99OGxDoAIC8YfHmtzRSWYpyehCnHs0e3ZFm72JeH0tnkXWPUeXk9vp2ARiGDIhd6C0wMAQDJSyNNz7c17N3QJTF31LNxkauGLWnvD9VH5apLjKDzRFw0RDSxs8mhOL6u9GaMDoIAVFzVODSnovgu50wfuyjCctH3A9aNTVKcne7f0Fd/QFEWtMvQKe6Ch2Zpep6sc7w/v9wZJegQ/6nSVLblRaKG34PQAAJCMpMlOubWHO73J9qOd1OnH5h5ZuTGT+h5U+SROH0v0Q+Xb/6PQqxnRlzD4bvR18YZH3YbxjxNPT6lpfGmVdHOZ8Tw9GUZOsTPrZpVqvzByiqJoBr/OXu70yNAjhGHkgieAcHoAAEgXTnI6lEjtRh4zdeJm6uWLGnyX8VSJeoq2WJTRQjcgM4LoNbcpeV+WY3EAyLdw6HDJNs8Qpeb0bla+1em6Xq0y/Wp7PFYWkX7QXyOcd+H0AABQMNkTowgk7Ue8zAl75hQYI4ri9AhEiYRc6C04PQAAJKMsnR6AUgROj5jIIRd6C04PAADJgNMDME6Mj9MvWqQgEKUWJORwOD0AAKQFnB6AcQJ5esTEjNCqG280OD0AABSM4nkGAoEYn0j3MwynR5RyRBR6C04PAADJgNMjEOMd6X6G4fSIUo6IQm/B6QEAIBlwegRivCPdz3Bxnb7oGxNRyhE9SQ+nBwCAhKCeHoBsA6dHlGbEEno4PQAAJCSp03vPgS1Wh/Bx+6Innltb+ANBS5mYT9waF+I/tjbhWuiq8JAUvSWZpMSB0yNKMOIKfUac3mAen5zOV4Y5Vl8/zOI6v3mFroT96xn84fQ0gHkr7vD0GbMNG58xOHLG+bAJvhFt3vzDxiRcLNBO8Y8cHmnL1Zg8SSmdPL2pq4kXLfbqGYbhT2ZokSZOY0FBJpDsadFbGT04SsTpi7gMiFIL0umjT5UFp7fon6r0fpWT/jbJloTTtqFRoubkXAxNbEumrqq6af/LztlN2VBvxh0+RpTQj/4YHDnjfNhYoiOHbdQbLjxsJEtezCNn/J5Yao5N/pVxev8sTFWJ+ZFnVLyF4Owd8ST+G5rmbD725C/S3qJO8yJsG8kZpnce6YxDHKb+TOyB9lxVVVUURdF0d8rwxSVmT61e3OFiuNdMnDN5TfPakg+nGhLsO+6GClnnwFqwG7agtZCgq5rhz59aDdFbkknEc2HXooBFtaxEhwecfnxjZfekyd01whFG5t3cXrmSN9XN/c0JZ13bP2XqYIrj10xtnzJ7hBgyWDm5c15t8oUv2OkVRVFuuNt3+rCfnqSfI/lbwnn4i+IZjvy7kf9156+dqhvOjyiZew0mODm/nlb4D2iI09OrJM/9BuWMaon4I+5wGbx9FO0nzN+wBcyikOEh84h35EQ/bKwCjpwCDhtLduT4myUwWSynT/HI4W5AZzsFf+vFG0RSkMKdRRQN4HySyN2qKIpmyPcpF8rpyY2sq/7ik/M2NP4OY4aJJjE0hdhD5CYq5PTI1FVF1WOcsYkPI2ef2e/alwAsS1fpbxD7XdMZbP9vRTy63DYt9tQz5vAwgqtoEvuS3Mqi4fLdzd1QUZaK+X7hbNiC1kIE9ctEpxNEb0kmEc2CuxZxF9WyEh0eJeL0g5WCMgzbGmum8od7HuwNp4WYfIsxaclUhIxObp9EeG1wMXjhzsienJrFYOVkxoOZoJ2+tn+KbclcLa7tn+INrO2fIlkkexVq+6d4c6eXTbBtR+bdLFta1ulrR2pmd04Kan1wXiGnFoWd6Sl2nn7mzEWu04f+9CT9HMnfEsxDlG0VfTcKviiIH0OT/e4hv6XJX0zBrye7JAyhTs+OIDAziydnjGkRaxFvuAzBPhJ80wo3bAGzSPUHOt6RE/ewsQo5cpLl6YPSKGiN7/SEPAvnkODIkWiG+Lc+3gaRzCJEAwLe4/8d7dtABJ2n525lOh/OPedgV1U4iaEJPakAp3cniX75Ser0oeeRfiLF/d+eJJrTC3LWcYfHX0VyCLma/OFhuzvKUcVdKuqbmLthC1oLEcwo5D4SvSWZhIN4LeIuqj2zgg+PEnF6yhSDmeyaqe2CXO/IvJt9iWye3UkKes1U762ReTeTLcimcmOwcnLnlJulAirPQPvv2gls6ixCfqZhu3Lz7E5n7nynH5k3td1x6Nr+KX5T1ImB30iro/X8ExhiU/um7p1UhI4p2SaF5OkLd3qv9qZ5fuhPT9LPkfytCPNgLidyphd9UTDfL7ST8r5AJL+eVmw5kzu926IScLQiOT1/H/G/acUbtoBZpPoDHefIiX/YWIUcOek4vVO+IN4K8t9Bxm/TOXKkmsEINXUxIPoGkc4iRAOYpKGpq+Sf4d8GQhTRG1RaOuyblLOq/EnSdfr4FM3p+Rfd4g8PJwWnl+5uOH3oWsR3+kSHR9adnonBSkEauJmbQhZPVTO1fcrswXlpOL1t1YH1YnP2zbM7J93cXXlze+XKwcrJ7ZUruecA7JlAzdT2SVMHI+Xp3blILxSwpm7/aZ/2iIPdsKEXNKTnFak5fbx76wv4Oi3gm1b4U5Vdpw9OLLoqEur0oZUS8SsohPsoPacfnx/oOEdORpyeqdoSbYiQ30F6TukcOSFOL/qtLy+nZ69q8RrlEtz3okmo0yOTOgaoTHHMblKiEsvpmR3vTVuA05M7zCBuQ4o7PAJJnT5sd6fg9KINK1hm+dKK0FX6WhNTe8N7SzKJYBb8tYjt9MkOjzJz+hGRhTfP7hQXsgemcnRc2JrfZrjxD1ZO7pw3u3vSzZ1C7Z466Kzj1H47xd48u7+GPGEITXVHzNOHOfeU2SP87DsvuPbPfSuwqMLcv+ioiBCs04+MxMv0FPB1Kv+mNcmSCI+YTi/8oqDaIYtd/UoJQyPTn5JfT0v6Axri9EGfCK60ZB2Jppg7GuMNFyHeR4JvWuGGjT2Lwn6g+YcNu2CB+UfTD+naFXDkxDtsLOmR49S08E9smaHkQpClQcwskhw5Es2gtxt1zhNrg0hmEaIBzLWJwGWE0G8DEYzTi65yUteM6Noj0bXRKJNQi2cSN3GQq5oWTE0JffrCf4d+S9VNYoh7+4Lq3NoSsqmJ1bZvnCB3U4zhkeZAbHNieSO95jQlrMKKd6Yh2tl0O/HWQoRdj6aTd6+YIW9JJpGtVWAt4i5qYLVjHx7l5fRkyXiU4fx3PScOcfoQ/V3ZPenm/hq59/vObc+UmrXfeCSnj5SnDw13pbw7HJx90Ty7k0mu06s/WDO1e9JkZzeRbzEnFc6FhZhHRYRQFEVRPnX3HLLfG9HvSDqfI/lbPDkT/H7JvxtFX3dEY6qm+UW0/vjONxLvm5knCe5UBmcOxDTstywpV4ro64qdiDEk3jLFHS6Cu49k37SiDRtzFgUMtyzJqSBv38XSj0BL7NrFP3JiHDbBN7g70BUj/hS8wya4d9I5coSaYemqf/8qM3/eBhGLrmAWUTQgcGMPvVvD9qlp5yBNLxdp2DdKUE4PwBghvkACkpIdp5cWewimZcVUZLHkCM2zO12BJp1eUgkjqEXx8/TEGYLIuZ3stev0VN6d5/SexNvDmfGJcJSaGT/c6b25+E7PbEbeKY2zsvZbnKsBUwetVqu5Vn4dIK08fbE/WwCAMqQUfCSQqaffK3QB4fRg7CBPPMemmApkyenDZFRwq6vvmlyzZ6eiKkOkefrQGhK6nl622P67MfuyjHv7KTF+sETenq/I6dm3pJcp5Hl6+U26cHoAQKkyxhUh0eHXYiVcPDg9ANmmXJx+ZfckeTeR3PIbdipG4mVO79aQCCycFGjbjCXlMTynl92W6o1POLr4tlTixINxet58JU7PnMZEdPpAXZDsmonoqIgQcHoAAEgCnB6AbFMWTi8vl3ci0LlNcCqxdrPW7tttZKcnpxWuS+F5ekGdOv0cqIROT3ebw3F6t33mrWAtftyjIkLA6QEAIAlwegCyTfad3hbx0NtAGYOPNJUoT092Qxm0cLeAnnjW0pTZ/ZWT7U4qO+fVkmY8Mu9mcmWTOf1Y5+kDG4dxeubahdcf6JTZ/d6pRYR+deD0AAAw/rBOr8zkWD53YNzRlJmKPEJHjrs83DHjthN9XgAUhaw7vbBDequ2fwpTReM3K54qoK3saMJOcshFCjz81ZFjL2s+WOndPjuV9PXxydMPVk4dLKCentiS3Coa5gZfv5d9Z6Dk+VlhR0WEgNMDAEASOMob16G9d4MvokwVdUELdXrRuYHkLKLghQRg/Mm20/OLzslyc07NethUYqfn3YYbSFd7HkwLt9tBJGHY7phEaUpBTr+y232mVYQ8vavvojt3Cad39D1q2Yxbj+S0vLJ70uTuGmqNBisnt1fOHrf+6Yv92QIAgCzBeq0VsGdJNp2cKjhhyIzHy+m5QyT5e2+E0IsJAJQCMZ2+TlcVRa0ymSGKohkpOX2pxsi8mwXXCsgzB6fSZsQZ7ow/WOmepbDmzVq1a8CBNoWzcPPlUfL00q6BnHCd3l3fiKVN3vq6Zs+7h9heGE7RThpHBZweAACSEKnSRpKAl6i2/NwgtLomrdqb0CIf7oskNUgAjCdcpw88NKTOfYtx+jrmkSduJ1pRPSxDTh8/4nY02WrJ7rjlBfPoVsK8vY75qfMQ8b2qxPj+vb/Ug2nl5xh29fykqYPkTbTeTCfxFibtowJODwAASUjk9PI/RROKzLiAap8AhjaT36Vn6EzTcnqzVnVOHtaxC+K9pdZGenieaHx9riJqJ94kbbo6N7Vu471ZKOsMY52qtxGbgt4g7HBqWxkaZyBvkpmaEdIUB2OdvxHs18wk5FpEmSS41laD5i8MvXm9ydVaU9bUXFVdZ0Rfa36e3qxSbXE3coqiaFqO1Xa1yjSrVMbg7SFUFn9M7A1R3lGw0ys3KTc8NieG07fpatinHsTA3p4zFa0hxkRxvzbluN9vvJ9yYnfrcwXjSCho7UIWKTmFLpVIeAJLS/yqFjgjHmP20fMPGFJayB9WZl+INmB8w+HOOrYDWEINEDqAYO3iGo4VrL0hgxzOvLCkBh99iMiS5fYsetesVckVDvgQu2qSdfT+JSeRL5Vl7zB3/xnr6COsQfPe0ue6O16CYHyzVvW8nG0n/iTsQhaKPtc/WzDWKcpMZy5mreq1r8/150UOtxo09jBt09V1hj7X/9B6q+B+ZvzvspCmeIvqfx206Soj9ORvEvWh5UwiWmtiOYNzJ4YTTRnr6KZcp4+y1lynN/UKRVFUvc7UKxSlQje9t/w8feCB1wzkVCnbG6K8Y1zz9PSnGETA0KSpJepLNYy4X5uhhMyd+gYuRLJjrV3Bk8SlsKXi/t7xmiLtX5j6jE2ij17IYnDWokHzD1rCdoTjF2o4waYKcABLoAEiBxCtXVzDCclGS4Q4dELuCAU0Ff3dSK4saETk9MGBEWEOJmrvkjtPODl/fLLZiLOQTBL8YDg4J77RPvniDzZzOHqL5AwXTGgvpOAjyu5ieVNB9LmqXusuCf2JYj4t3uHEn0Q6xyROH6U1cq1F9fSGpihKhaq6KXkn+07W3uQ1vyzHLsLJGfbkRg5Ojyg4UnH65vduUmYq2jo3g0V+U7mZOWWmqjcQn0R/OJHQItJ4aSRc/aynOteVKmcWzufUycDxLj96k9hLwl87Imnnf+3MVJS5qv21rNtrwd8gUVOnkjx3DL+M+7UZAc7cBbtbn6sZ/rai1oW47Mn+wKXj9MF9JB8uf6ugpRIJT5jT+z8o9lbyc8bEthJuQN6+cA7mBqpNTlPrNGcx2LQ0Z0VCnD4gM/wNKDIcKTynj+0AVhKnJ9YuruHEq70JaStyvzeh2Xr5uQS//TZdDXxDidqRrGNip3e/vukdwAh36NeueHx+dUphkwjPlWM5vfgUhfhsGNpM6tKB+OfHXSTehTOu3cb8JVP1NvdzRXxOyKsZzMLzJ5GemMV1eot3/VrSGrnWwntk3dIaN1tv6zvr9MjTI1KPtPL0Zq3qfQsRP+HElwldAEB+vsicsdWmqzO90rgYqZ8gzLVHhf8FYmjEd5dkEt7aWVaD4S43sUbuKpi1qq0p5NeCcMXl2GrFKxON6JexvzajtUnPXbK7iR8p6jK1QuaPmBVMyel5+0gyXP5WAUvFEx5xU8I8vfNT4vyoOUso3oDCfUEewORRwV6Cjny5INTpmREEG7CQixJ8p4/pAFYyp/eWIa7hcNw6YYpaNCZXr6Pk7IPN8kfmnZCFnp+QqxmU/iR5erLUxErR6Rs0IulOHawFTMKodoFInd7bqpyPH/eLnrrCwC5bOnn6Nnf7xHF6dpK0nZ6YVnq2Ri6bNE9vudU1drm8nbbXTbbfG0f3tZzq5uztIYqWHzt7Q5R3pOj0HFFgPnredx2Zqw6mGGPlKSSQc6F+cQQFgeJJ+GtnMVlMQqH4JXlhKx6GnaONoEccYn9tRmuTuZjM392cUlL++QNTopN6np46SxQNl79VwFKJM9ACp1dEv8XsD5lkA4r3hcDpqZPbwCKNj9PHNhyR08dyACs9py88T59cZwtW/7FzevnJQ/DaArMR5Nl9GfQ+SK/2hsp2R6u9EU6SjtNHqb2h947k+4t/f4z/btKvQu8TZaxTtNrItTfBSSLX3ojSacJTu8AFCvlah+bp3YqavKZUaEaeqadX9Tqn0kb376NV9TrLrItyp2xIbyqIiR3j7fRil/XyCykWRjM5YHcJJR5DTSJwen6ZRIjTF9rbATepn1rtDfebNowsOL1gHwmHy98qaKliO70wqZ9Rp49Ue5Ou08dxAEugAUIHkNfeRIbv9FyLlRttwbn2As4W+JOIL0WJJpHMOu74NmRunrx6ZVnUDmOvu3ETSILxZYJewCSp1N6w5eD+p4j50eL+mLGXBZnUVxy7jXKhjbqW7fYw474lutmLP4lorS3Bh9kSXpSkv3cCp3yFOb2hKYqSM4wcnXTn3SOr5Z3cvKIoWt7N6MfLyCIQwRgTp6c/5szHlvv7R1S5GFpA623dj9gdGdP9AG20hjZT08VCYEVxelLQyUohidOLV1y2doLCGyumRsT92gxF/iNFzk6fS1yRILab/HKocO3Ev3qcCy+ifcQdLn9LvlQiCq+9YUcOHhviDSj76JEd1BAqQhyZXgkcPRevnCxkLchfxsB57DjU3rjzjeQAlkADRIVJorWLazis08vT8yLTjeLlkqbiTi4aP1ijJkrDh860MKeXVq6L+6AUfJUIO6AUX2CNPUkq98jSs/YyYYE6MEObqSjrDDPYPZNXQC/+k55K3NOTdJnJnqQsjCl9nwAAIABJREFUXqmlqFM20STBtQ7c/cNeZuXVzRuac/cbuwpR1prv9HYXloYj8ZruJd3zWlDxnVy+p/tOnX2UXuqLbo2IUo64Tk/2ZWnfI6tQ97ZyPmXqOo2o66W77ZurE58Xtxg9kK2ny3xDID/yXBGRfJOTk5BLwiwVca1S0+zONBrcL0P3+9O9r5HMEPMXjLd29sjCVY5/8TPe16YceaGLt7vtYnrd/zKkNVTw9Stbu+hOz91HbbLh8rdkSyUm8j2y5LEh2kqRN6Doo0f8XuvELbPCuVM/ZEwVMfUDKujLMtpujXmPrKQvyxgOwFlaaoE5DiBYO4nhmLWqPZp7Zuv4VeFe680jypZSaCMPTihpJ/rIzLZmFlXSoHyBRctcBqTVlyUoIqJnThHPmfItXyFk3cnTa3n/Lb/OPq8pOc2IVFKPQKQSSnGeORXSsWMsuFnPolLI2hXglyky1nNPp54+bQpbquSXWcoG7lpPQMMpM0lNr+PViUCqz5wCxUJyjywCkaEojtNLizajQ2T4Et+hlCJx167w5x+lhpubHIOf8gn6zKlyJ71nTpUBZeb0AEw44PSI8ogi5ekBAKBMgNMDkG3g9IjyCDg9AAAkAU4PQLaB0yPKI+D0AACQBDg9ANkGTo8oj4DTAwBAEhQAQKaB0yPKI4r9SQIAgIxT7JMKAEAi0nJ6U68g+q0vp8hrkR+hlaEg9lfqKyhqMO7weKEgTw8AAAmA0wOQbaTPkSUfL9VqaGQP9BJHLH4YGrXkpl6hKDnDG8GsUsk/CzTUQJhVqpvsIJ63lXeft0s2whvImdx7pJeiKPTGD4zs7K/ADgrux8D+iqfUEWaUjtOLZiQKOD0AACQBTg9AtpE4Pf0g2LymVKiq8OmwaTk953FXBYSRI13QtkNvyWMuakTlzWveHM0q1ZmkTlfd1TFy7nkFd2Be85aQnpz0e3fLcOfFrrVgPwY3Qvw0eciM0svT82YkCjg9AAAkAU4PQLaJ6vRGTtHyEhsuLacnTdd+qC3RbMxZFFAZUqerFbrJXBBwBZ07kJqL95p0etEWduclMGA4PQAAgCjA6SciM7ZcvndN6236wX9+6t0bH1n/uXuqJ/3ouf865eFiLxcohGhOT/oov1zErbsg08nE+JzCkrymVOiGO1ytMqlSE7ET2xPqOUVxZySoWvHT3mqV6dshY8/ByhamfX98Q/OrZQxvSo5n5zV7sY0cU7yk6nX8gbZkexvBGYF0eiKRz51XFKfn7K/AjqCqkrjbJ5rTcxqMOxxODwAA4wecfiIyY+vlketW//Do6asju04NrKrvecbo+PydLxV7ucqcxov9xy/0HT3Xe/hsz8HT3fVmV73ZVW921p/q2H+q46OWax81X/3wZPsHTW37mq7sO3F5b+OlPQ0X9zRc2H38/K5jZ3cdPVt39EzdkdNMs5Gc3ndrugKEqfy2HZHwMDcZTHinr8h5zTdFvykqiS50etKkuY37eWhTr3DVPGd4ih+wZKIEP9h+hW56zh3umpSmB/SdO9DfhpTUkic5/BsAqM0Vrtq8/UXtCHI1Rdsn0oxEDcYZDqcHAIDxA04/EZmx5fLIdatrYLTx0vC2E33V+7r+UHPts3fA6ceWqSvPTlt39Z5VV+5YdvHW6nPfn3/6/5tnfveV5m+/2Djl2WM3PXXoG0/ur3hs3/+Ysesrj7z3Nw/uuEHb+rlpmz/9izf/8u51f5Fb/ed35v/sjhX/y9/dzjQbxelJzfJf075F13LQ9SRGTqEJVJv4bhrN6YlrBfzGPXf3S1OcNfLS5Iwv+vNiSkHymlKhaRW0XNoJbI5ns+4bNU9PzJRTT08quGBeoaot21/M+roXGfjbJ27tjXfSFXc4nB4AAMYPOH05sOiDjoX7OubUtj2z7exjb554aOWBXy3a/bM5O257ZtP3Hlu1YsdBZvwZWy6/sPPSoxtP/nJJ/a0vvXfzo5u+dP/Kj98ysygLP3G4J39+xvbRR2quP/D2yLRNw1PXD+bW9P5kRedtS9t/uPDS9+af+86c0996ofmbTzd+bdaxGx87+JXfffTFR/bd8OCuz97//qd/tfOT9xmfvM/4oz/7G6bZCE5PFGCQ3ix0RPe1yJ4JV07H6fnaZ4/m305qJ+xFjit1ekVVKzgGb5eyMDfjCiXbXf7wgd5GoCuI6KJzdl5pOb23HdJyetGGDR8OpwcAgPEDTl8OzNhy2bL6LKtv9Pq1wYHDnZ1vXL5cdebMnU1NNy7b9LdVy43g+CPXrYHh0bPXRvaYA2sO9Dz3Lmpvxpy7V5ybsX304a3Xp7898qtNw1PXD961uvcnKzpvXdL+74suf2/+ue+80jrlheZvPnOCdPovPLj7Mwmd3sgpXJs0q1SF9n5PMc0qleokh6760IJ17QKnJyc0ctwEv6BxdxW0HLVUak5TyUIdUe0Nm6d3rzZ4rllF5NSDVUleEFLu6ylvIHtTr5+e510t4c6L35q/H4X7i9p3TA1SSO0Nd0bSBuMMh9MDAMD4AacvB373ju30vSMj5/v6dl29tujihYdN8/sNjV9YuuFzVa9vY8a3nb5nYLTp8vCOpr4l+7qeQO3N2JNb0vzganPa8pN3VzfeseDoj1859L3n6v+l6oMpT+6b8uS+m5/Yp/5h301/2PfNP+z7p8f3/ePj+77x2L5vPLb364/u/dqje//h0b3/8Pu9Fb/fW4DTc/LBnsn5dS85PVAmLuhPPdi7C+X0bptEWbxzaaCKn6fnN86cBviGLerlPVhAH/zTXhgvg06V+rAlQGQhTaAgnjfQX1OFqrBnurp3qne48wpRbdH+8u8JVpQo2yeK03MbjDscTg8AAOMHnL4c+PVblyyrzxrtGhpq6u5+p63txXNn721uvunosf++eN0nZi3dyow/Y8vlTUc7lu+98MKW5kdWHblz/t7vzDb+9AdPFmXhJw5PvHW2o3/0Wt/o1d7R9t7RKz3XL3Vfv9B1/Vzn9dPXrj+RP3DX8+/e+fy7P33OWPfRld2tQ++1DO04ObjlxOBbxwfWHx1Yc3hg5cH+//LnBdTeIDIScfqyzO6MRAGnBwCAJMDpy4HKDectq+/69bb+gfrOjvyly4+fPn17U9PfHj78f1Sv/W9cp2+4NHDwTPeOY+3Ldp9/+u1TlSsaPvkfzxRl4ScOszaftixrW1P/8v092070H74wtHx/z/L9PRe7Rpbt7/neC0d+uujUlx6q/d+//9pD+UZ9b/eCPd3z93TXnBiYu6vrlbqupR/1vnEkntOz2VlECUfc58hmd0aigNMDAEASEjl9U1vrLzf84WerH7192W+/v/DX356j/dNz09QXpt30/C//8Zl7vv7UzyuevOP/ffz2v/v9j7/yu3/74sP/+te//pcvPPCtz1be9Klffv0v7/n7v/j53/35XV/+bz/96x9U3ZXW+kxM7l3T+pPqo997aY/65LYbH1n/hV8u/e8/mfOx71f9b996+H+96QGu049ct3oHR5uvDL97su/1D7pmbUPtzZjz5KZTwYGjo9bwdat/ePT+VRdnbB/5xlMNH//xsuXvmUcuDtefG953ZqjWHNpxcvCdxoE3jw2sORzD6RGIbAWcHgAAkpDM6a+YvzZenfnB6t/uWflQ7bIHdi6Ztm3hL96Z/7ONr9yx7sX/WPXsj5bP/v7iJ7772mP//OqMm15++OvPTf/7p+7/6hP3fenRe/565t1f+O3PPv+b3Od/k1Nvm5LW+oD/60dzb/z93mfXfhB8q+ny0NCIZbl5+g/Mro0H2l5999zMDc0/X3L8E7ciTz+2PLHplBXI0y/b33Ouc2TpRz23Lzo3Y/vIN55u+NiPlz24snH+nu5Xd3fP2929+fjAy3VdL9V2LfqgZ9UhOD2ibANODwAASUjk9CeumNN3zJv5werfsE4/5451L96++rkfLZ/9/SVPuk7/iO30f/fkfV9+7Bdw+jHiq4/tv3NF59Lay8G3pjx1aHtj39CINWPL5c3H2t7Y37i8bunCHf/x7Bvf/e1r6md+fPf4L+2E4vENJy3LOnxhqPbUwKELQ6evjdSeGnivZeByz/UdJ/vvWnp+xvaRrz/d8PFbl/9hQ9PaQ32rDvauqO99p3Fg8Ye9Cz/oWbq/b8UBOD2ibANODwAASUjk9A2XT/1s7R/uWP3Ercse/f6iGd9+9eFvvvjg3z9d+dUn7vvS4/d+8bFf/M3v7/nrmVP/asbdN/zu55//7c8+95vcZx+56zMP3/n/PHTHp3/900896AScPkW++tj+n67o+N4LR+949fBtL374/dl13/59zc2/2Xzzbzb/1fSdj7zVs6tlaMZWu5+cY5Z1z8jI/9TWpjQ1KV+f+sNiL3uZ8+i6E5ZlXeoeab02fKl7pKP/euvV4ea24Wv9149dGr5n+Xmv9ubFt5trmgbeaRzYdGxgS+PA6kN9y+v7ltf3vb6/D06PKNeA0wMAQBISOX3jZXPJoQ2N/aeO9Tcf6Tt5oK/xg56ju3sOvNf9kdG9r6Zz9+bO2jc73n3j2vbVV7euvLJl+eV3ll54a/G5jQvPvPla64YF5vpXW96Y2/wGnD5FvvrY/qnrB6auG/jpyq5bl7T/4LVL6vMtf//k8b9/8vhNz7f8atPgp+5aPWPLZcu6ZllvW9Y/9PUp588rx44pX7sbTj+2zHyjwbKs5fU9s3Z0LNvfU3tqYNaOjlk7OhovD8/a0fHDBWdtp//YrcvvXnzcfmvWjo41h/rsF3N2dS+B0yPKN+D0AACQhGS1N5dPvXXMsCyrtftCa/eFjsHuS33trd0XLvW1Xx3sPNl55njHqcMdJ/dfO76n/dB77R9tv7Lv7ct1Gy/v3Nq5a8WFd5ac37Ts0ttLzr8Fp0+RHz2397t/ePdbv9ti5+bJ+NO73vwfv962dt+lGVsuv/Dupcc3nax8vf72l9/79uNvfVVb+X9+F8+RHVt+t/qYRebp+663tA83tQ1f6bl+5MLQ1GXnnXr6W5c/t/nklsaBTccHNhzp33R8YEV935L9vUs/6qv+CE6PKNuA0wMAQBIS5ulbNh3dYVnW++fr3z9f39p94VB70/vn6w+2n2jpOrfj3L6as3vePlu38cx7608ba09vW9m6ZZm5eYm5cXNn7fyWtfOa1yw+t3HxuU1w+vHhE7cvzdeeHhi2Zmy5MnLd6h8abW0fqW3pX7m/++kdHZ/Dc2THmN+sOmIR9fTm1ZGdzf07Tvaf6RjZ0th/m97qOP2/L/792oYV9b2v7+9d/GHvuiP9C/b2zNvdo+/rXfRhDKdnHzXlPH6IeHASFYHHOVmtFv0cJebRRaZewT4iStwOAhEacHoAAEhCMqe/1LzxyDbLspad2LzsxOZDbU3bzuxZdmLz1jN76tsalzRuWty4cVHDhtca1i9oWDf/+Np5x1fPOb7q5WP5jR07Xzi2/Lmjy15r3bDozJtw+vFhf9Nlp9+brZeHr1ud/dePXxza2tC3cG/nY1uvfuancPqx5eGVhyyi35uD54de/6hn6Uc9J9uGqz/o/sHcUzO2j3z9qYY/+bdqbfmxebu75+zqermua9XB/hdru55/v2vu7p7XPoju9HW66j3NtNV+gqlmME+HJf1b9Nr9k3pKq6Lqdb7Ts09FDZwFGMX3RUTpB5weAACSkOwe2UvNbx6uCQ4fHh3puz7QMdJ9afhq6+D5poHTR/qa9vUeqes5sL1r39uddes7jHzb1mWX3l58btNrp+H0482MLZfvXdN6m37wn59698ZH1n/2nupJP3r2v055uNjLVeb8elm993rUsoZGrN6h0Y7+61d6rp/tvP7LFRfsPP2f/Pvrc7a0vN8yWNM0uLlhYN3RgfzB/tfr+xd92Kfvi+j0dbrqK7WqBnLtTrY+mtObVarCnh5QTh+cNfL0iPgBpwcAgCQkcvrjF0+uP7jVCuTp3zm968Mrx6ob31zoJOnfePX4mrnHV79yPP/ysZUvHlux5lrNc0eWPXvk9QWn1i0w18Ppxxn7mVP9w6Onr47sOjWwqr7nGaPj86i9GWMefP0jy83Tb23sqz87uPSjnsUfdu9tHZzyTMPnH9j90NaRf3y2+f++c9Mf3/TMl3MLXq7rerG2a1l933PvdT37Xtcru3rm7+2Nmqc3q1S3zMbQWPM29QpFy0d0eqb8RjOCTk+dQrDA7xHRAk4PAABJSO70Wyy6nv698/s/unLseOepLWd3v3WmduOZnW+c3rG6tWZF6ztLzbeqzY2vnVq3qn3r3JOrXzmxaoG5fv6pdXD6ccZ2+q6B0cZLw9tO9FXv6/pDDZ4jO+Y8sGSfZVmHLwy93zJw4Nzgybbh7U39W0/0H780Mq+u+7611+7ffP27C6596r53v/P7LUs+7Kr+oOe1fT3L6/vm7u55eVf33N298/ZEdXpTr1DUnKZ68u2k5zVNUfUqzamHieLijsFbll1jU6GbyNMjxiTg9AAAkIRETn/sfNMb9W9blt/vzYXeK81dZ8ye86f7LtRfa9h39Uht+wGj7YN3Lu/aeHnnG5d2rLywZen5TSuvbNFb189veWOBuX4e+rIcd2ZsufzCzkuPbjz5yyX1t770nvropi9Vrvj4Lej3Zmy5v3qPZVmXukdOtQ+f7Rg+3zly9OLQgXNDzW0j9eeG3zwy8OPqyz9dcvFfnzQ2HOxce6hv5cG+1+v7ltX363t75+3pnbu7d+7uqE5vaIqiVeme06tVplmlsk5PhuQeWS/fbxftsE5vaPJyevpWXQRCEHB6AABIQkKnP7F2/2bLsp78aOGTHy18/3z9shObn/xo4eLGjTVn99gDubH88jv2i1eaVs89uRZOP87YefqB4dGz10b2mANrDvQ89y5qb8acX722y7Ks0VFraGS0b3i0a2C0ref6+c7r5tWRE1dGDl8cfr9l5M7Fp3ec7N9+cvDtxoH1RwdWH+pfVt9f/WGfvq9v3p6+eE7vUKFpgjw9VSgfrLdxfN25s9bO3et1knp6Q/Nm55wGmHoFUYiPQMgCTg8AAElI5PRHzzWu+XCTZTl5+muD3ed6L5/obD3Zfaa59+wHV4/VtR94t/3DrVd2v3X5vfWXjNUXa5Zd2Lz47MZll95ecGrdvOY185rfmAOnH3dsp+8ZGG26PLyjqW/Jvq4nUHsz9vznc1vr6htq6xve/bBh+4fHt+w9/tbuY+trj61579iKd48t3X50Yc2RBVuOzH37yIubDj+94XDV+sOPv3Fo5uqDv1l58OEVBx9cfuDBZQf+509XMM2K+6evC8nTR3B6+y3T9JL0rSKnd7zfK9PX8m7NT7A+B4HgBJweAACSkNTpV3+w0XLr6U91n99/pWHbub11lw/sv9bw5pmdb5zevvp0zYrWd14336o+9eZrp9a92rJm7snVSy+89VJD/oXjK15pWv1KE5x+vJmx9fKmox3L9154YUvzw/nDd87f+53Zxp/+4MliL1eZ8+pbH81etD55MM2G9XuTKE9v+X+y5TrEOHlNcUp9nDIbpy98VN0gYgScHgAAkpDI6Y+cbcjv3WC5/d7UtzVuOb1rSeOmDa3v7ry0X29YN7/hjVePr7V7vHnp2MoXj614/uiy544sW3xu0zOHlz59aOlLjatealwNpx9nTl0dOnG5/9j57kOnr+1vubLvxIVdx87UHmop9nKBQoiVpzcsW7grdJMwbz6O09tCHyyh8Urt7focx+y9EnrD/lP0iCsEgg04PQAAJCGR0x8+c3zlHidreN0aHRod7hnpvTrceX74yqnBcw39pw70Ne7uOfhe9/5tXXs2dby39uq2FVfeWXphc/XZjQvMDfOa33ilac2LDavg9AAUTCSnd/P0hvN8qBDVZp4nRWfoiYsAVBrecXpqZHt2yNYjIgScHgAAkpDQ6Y+t2P2GZVnLTmx+vXHzh1eObT5dW9345hvmju0X980/vnbe8TVzjq965Vj+pWMrXji2/Pmjy5478vqzh19fePrNpw8ueergkheO5+H0ACRB7PQIRJYCTg8AAElI5PSHTh9btmutZVmj1ujQ6HDv9f6rw50Xh9vMwfMNA+bBvsZ9vUfe79m/rWvvWx3vr722bWXbltcvbl58bpPeuuHVlnVzmta+1LgaTj8xqa6uLvYilAlwekR5BJweAACSkMjpD7YeXVq7etQavW5d778+0HW9t2342tnBSy0DZ4/1t9T3Ht/VfeDd7g+3dO3e2LFz9dWa5ZffXnL+rUVnNs4/tW7uybUvn1jzYsMqOP0EpLq6Gk6fFnB6RHkEnB4AAJKQyOkPtB75/NQv/8m/fCxhfPeR76a1PqD0qa6uPnPmTHV2KPYGCwFOjyiPgNMDAEASEjk9KBaKwu44+5bFKGMWl+rq6jOZIkWnl+yLKLvJG4ccWVEUOD2iPAJODwAASSgt4UuF0k+sJkekgKTZBy1f1m+hoohGIIensvDVEzVPH8XpudufHCc4QlpOb+oVZdpBTV4rx+deEfurTFYQTg8AAEkoN6cvtv7xSbJGQb3z3E4+CXe46EVwtOBbKab8k2+WrCA/iSJHE00efK1Ey9MTD3YlhrhPlZI6YvHD0Kgl9/rCd4Z4fe1HisjKS3TYT/TI6fW7TzbCG8iZnHz4F73xAyM7+yuwg4L7MbC/4jm9aEZFDzg9AAAkoaycvrok6zqSOz35git5lkD9ReIocnq5eqbo9BMT0RmUSPQti5ObD7YgcXq6X/m8plSoKvs4WJ4jJgpD4zygKnYYOVI6bQ31ljzmokZU3rzmzdF7LJfbx7+zSM6JBHdgXvOWkJ6c9Ht3y3Dnxa61YD8GN0L8PD1vRkUPOD0AACShfCytNIX+TKpOL3I+0Z9WWKKXO3nwX1HjIAryMyVvHNG0zOtgU1Gd3sgpWl5iw6Xl9KTpWnlNyWlEszFnUUBpSp2ueo/a9S4IuILOHUjNxXtNOr1oC7vzsuD0cHoAACic8rG0ieD0liCty7VG7miiF8wsgv+KksQFM3HKbzwkG5Bxd679M2dZ3otoTk/6KL9cRFHsAg8ynUyMzyksyWtKhW64w9Uqkyo1ETuxPaGeUxR3RoKqFT/trVaZvoYy9uziSyrTvj++oSkK9dpba2br5TV7sY0cU7yk6nX8gbZkexvBGYF0eiKRz51XFKfn7K/AjqCqkrjbB04PAABlSPk4vVWqWp+u0ycZM1TugxLJeGRaVKdxm2y6izQWKGEExwy2IBpHieX0vlvTFSBM5bftiITwuclgwjt9Rc5rvin6TVFJdKHTkybNbdzPQ5t6havmOcNT/IAlEyX4wfYrdNNz7nCppTQ9oO/cgf42pKyaPMnh3wBAba4QpxfsL2pHkKsp2j5wegAAKEPKyumtMr1HlnwRKoVycbQCmih6Sz48CdUpnXol3LDjjGQLc22emYo8v2KI4vSkzvqvabGjaznoehIjx8w0UG3iu2k0pyeuFfAb99zdL01x1shLkzNi6s+LqUXJa0qFplXQFmsnsDmezbpv1Dw9MVNOPT2p4IJ5hTq9bH8x6+teZOBvHzg9AACUIeXm9FbZ9WXJ2HkUI+eOExyNad8SnBgEJ0lCWkKfLaePuGskE1rivRzB6YkCDNKbhY7ovhbZM+HK6Tg93y/t0fzbSe2EvchxpU6vqGoFx+DtUhbmZlyhZLvLHz7Q2wh0BRFd9c7OS7ApYju9tx3g9AAAMJGI42qmexlZVTVVNzTWEchRFEXVTWc67phEa7qhqbpJTkuON9ERibvFs/PgcOa13M6D75IzTcXsJ6DTM5tddGYlmlY0YQynN3IK1ybNKlWhvd9TTLNKpTrJoas+tGBdu8DpyQmNnMJL8Asad1dBy1FLpeY0lSzUEdXesHl692qDJ7VVRE49WJXkBSHlvgfzBrI39frped7VEu68+K35+1G4v6h9x9QghdTeBM404PQAAJBRYliarjqabuqqouqWZemqq92m/5J67U9Lj2k34bWmOE6vGd7khgan5xFMopNvBV9ESQaLGvcmT9HprYlUeyPagKJzJ4u3C5hxgiOEOj0nH+yZnF/3ktMDZeKC/tSDvbtQTu+2SZTF22hV/Dw9v3HmNMA3bFEv78EC+uCf9sJ4GXRnOqOVWGwPspDG2UQGZ77+QH9NFarCnunq3qne4c5L7vSWaH/59wQrSpTtA6cHAIAypBCnJ4ZoBunrNmKn997gjSKbHHgEJU8+DjNcAndCRXB6kJDqQu+RzZbTewS3HjlEsm2D4wTHjNw/PaLkI05flqnPqOgBpwcAgCQUVHvjZtDdv6M4PTUmnB4UcPdwdp1+TIn+HFlEKUfc58imPqOiRxKnZ9ITAAAwASno68/QyNobSZ7eLpQPjmkGc/68yQEggdNzETk9ApGtgNMDAEASIn/9mbqq6v5rzbAomyfK38VOT4xJlssbGnFDLZweiIDTc4HTI8oj4PQAAJCEOE7vf2equhnozUZxbnClBwrHJIeSdk9OCAAJnJ4LnB5RHoF6egAASAJSGiAzwOm5wOkR5RFwegAASAKcvogYmlfOxFzMGN/qI2rekllH6V90LPsgzbDTOxewUrj65LREbOQITh/oO7LA4RmKMliFCRdwegAASAKcvmhwbhwo6r0E3s0PCRm7dci206e4VejWIvR7k47T8/pLqWOr7ZQS6WmnEKd3T27tCZlVCzyDFpF2wOkBACAJcPqiwbE82tUMTVEUTfUet2tyhnjTebch+JMqmu4Mj6STvtP7eXt/QlcQDdGyCVYiTcrG6QP7K97A6E5PPHM0pTy9qF9z/2msRQv6+bWFBfmIKPpxUdQzXBFjEnB6AABIQiFOr4ifTAQiQxbeuAR02H/crmvcwSFe16IW3Umo/XzeeAtk2hZJmLtYJTlLQjWUPmXj9JZh2H9Qmyr6QDi9YH3H0OlLYx3LO+D0AACQBI6di2DGsXjPuofcRyai07PdggaHsH0Nuc1GSpcHOh5lHh2YVW6JAAAcYElEQVTAppcppw90Wcr9Mz3Kxum5/TtFH1ig0xtV7oHiiWnc4dGdPq8pFbqeUxTXs02vNe9sgZ6L2yxxlShPNM5Ma0/ubZo88SGwxyFPS/LEVvQWnjt3qdNzhiDSDDg9AAAkIeSJ9FZA07l/KoKn1gMJobU3VjSnFxW7RHV6v1zHzdOTFTeyPD3f6VF7w4HcKLwHOMQYaBXm9L7OmnqF+zru8FhOTxbW1+ka0ZoznJxLXrMrWzjtC6dlsvJ0nt5zerdldxzZ3EOcPpVLAQhhwOkBACAJsZ0+dPyYuFm5MA1078+LUUxS4ghTt+7W8PpK8ddeZYfYLbAd19Cpe/mm9cb1nJFszX/wL7l4qh5cNm8uuEeWQ6BsKbh/og9MXHuT1xz/jjs8Zp7eZJfHPX48k/bHcXXZzqmzJS7stLzF4Ds9M6a/nNy5I09fzIDTAwBAEgrJ09tYgkKdWLP3ej4M6wLRSRiPWVlHUeCV32Qd9GXJpRh9WQqdXuC1EYYX6vRGTvGS5X4LXKv2WiP0PThtUZwe9fRjHHB6AABIQiF5ekVcPU8OcfpeMWSz1zVXasMqNsovTw/ikmGnH0ui1t64lTBs/UmM4YQim1WqyPudFvx3ieqdOl2V5umNKmeI26B4Wn/tdL3OKqT2Jo7To9+bsQ84PQAAJIGfgxfhjSYZP87ciaSu3OlNfg0CmFDA6blEzdPrObr0pYDhBTo9cZdqha7L8/R+r/DUCQk7LXnjLHENwR6NuUfWH5Ms8efMPWr/9GaVyr1YgUgWcHoAAEhC0tobyYRR8EU+yp2VbOX2BCX5Zs8o2XL6cdtNEZw+vRDV3kyoMHK4U3YsAk4PAABJSFp7kyxPH9p3C2dkprPFMoO7SZkNGzynCr4oS0rH6UtqN0V4jmw6ysV7juxEDEOL/YRaRJSA0wMAQBI4bhFMzItGkGcio9TTk72uhC/shMnTy6+TBP8UXTYpM0rH6W1KZDeJnB6ByFbA6QEAIAkFOr3ITspeK8cH+XUS+fjx8PoItM+pIneCWZRbljPk9KHjx4LYLWQvpw5wekR5BJweAACSEC7l0fP0TO0BKBh5Apg8p5LUfkTAv0fZeWVGvMGhOF2LZsjpU91NgX1B7yY4PaI8Ak4PAABJgIKXIvIEsOicihwSqfCJwDDYUeU3OCBPb41jl6+S8ytd1eD0iPIIOD0AACQBTl9CcBO6weQu+SJhAtjG1FVWKkuya9EScfrx303E9qYvjJi6qhlpOb2pV6R4Q20pBeehtmUQxP4qkxWE0wMAQBLg9KWIJAFMSmFQDQtwekPjpNujdEM0/rcsl4jTe4znbnKgd4z9V/R+bwxN1mtNSTk99aAre9mYHuJjPNI1svISPdkT3YASHeRze9w3JZPTndyzT7SlRhZ1KyTqv6hgpy/Z/ovg9AAAkAQ4fSkikUUr1QSwrvKdPJrSj3fXohlyeivN3WRoXnqeeEqb5e6myP3T5zWlQlWFndan5fT081wLDbojfLdCqbBFjai8eY16oJX/5ClndYyce17BHUg8sJaenPR7d8tw58Xv/l/0nIFEefqSfM4AnB4AAJIApy85ghlf0QiStyLV03ud3thpO0/NI2XpJ3qePpXdZMXt8lUJZOmjO72RU7S8xIZLy+mp59TmNSWnEc3GnEUBpSl1ulqhm8wFAVfQuQOpuXivSacXbWF3XhacHk4PAACFA6cvOaLIojIh+xLNnNOPz26K5vSkj/LLRdwCDzKdTIzPKSzJa0qFbrjD1SqTKjURO7E9oZ5TFHdGgqoVP+2tVpm+hjL27J2VepLKtO+Pb2iKQr321prZennNXmwjxxQvqXodf6At2d5GcEYgnZ5I5HPnFcXpOfsrsCOoqiTu9oHTAwBAGVLOCphFovifKAHsSWS5UjpOX1K7KZLT+25NV4Awld+2IxLC5yaDCe/0FTmv+aboN0Ul0YVOT5o0t3E/D23qFa6a5wxP8QOWTJTgB9uv0E3PucOlltL0gL5zB/rbkLJq8iSHfwMAtblCnF6wv6gdQa6maPvA6QEAoAwpZwUEZUbpOH1JEcXpSZ31X9NiR9dy0PUkRk6hCVSb+G4azemJawX8xj1390tTnDXy0uSMmPrzYmpR8ppSoWkVtMXaCWyOZ7PuGzVPT8yUU09PKrhgXqFOL9tfzPq6Fxn42wdODwAAZQicHmQGOD2XCE6f1xQWR475jui+Ftkz4crpOD3fL+3R/NtJ7YS9yHGlTq+oagXH4O1SFuZmXKFku8sfPtDbCHQFEV31zs5LsCliO723HeD0AAAwkYDTg8wAp+cS7vRGTuHapFmlKrT3e4ppVqlUJzl01YcWrGsXOD05oZHjJvgFjburoOWopVJzmkoW6ohqb9g8vXu1wZPaKiKnHqxK8oKQct+DeQPZm3r99Dzvagl3XvzW/P0o3F/UvmNqkEJqbwJnGnB6AADIKHB6kBng9FxCnZ6TD/ZMzq97yemBMnFBf+rB3l0op3fbJMrinUsDVfw8Pb9x5jTAN2xRL+/BAvrgn/bCeBl0qtSHLQEiC2kCBfG8gf6aKlSFPdPVvVO9w52X3Okt0f7y7wlWlCjbB04PAABlCJweZAY4PZfI/dMjSj7i9GWZ+oyKHnB6AABIApweZAY4PZfoz5FFlHLEfY5s6jMqesDpAQAgCXB6kBng9FxETo9AZCvg9AAAkAQ4PcgMcHoucHpEeQScHgAAkgCnB5kBTs8FTo8oj4DTAwBAEuD0IDPA6bnA6RHlEXB6AABIApweZAY4PZcITh/oO7LA4WMbJt2ZJmKiBZweAACSAKcHmQFOzyVCvzfpOL2gvxS/o/eE3bMkdHpn8Zwlp5cq+ARZROkFnB4AAJIApweZAU7PJUL/9Onl6Tn9mpOPVRI8HjVaFOD09DNr2SXxu3WnnsCKKNGA0wMAQBLg9CAzwOm5lJLTt1pGruBc+xg6vWVrPbL1JR1wegAASAKcHmQGOD2XqE5vVKlsIUrc4eFO73p5XlMqdD2nKJ5z5zWvEIZswayiamRsp6f8m2zfb0TV80R1jV9vI3R6zhBEaQWcHgAAkgCnB5kBTs8lmtP7Jm3qFe7ruMNDnT6vOSUueY2qrfeGOwvmvkUOr9NVudPnNYUt7ImRp2dHRpRcwOkBACAJcHqQGeD0XOLX3uQ1x5jjDhc6vZ9n586RmcpTdnq4X3vDdXrOrGM5PfL0pR5wegAASAKcHmQGOD2X2E7vG3Pc4RHq6S3eHEvB6VFPX/IBpwcAgCTA6UFmgNNziVp741bCMKUvcYYTYm1WqZwqdi+CmX5e7Q3VHQ05U2J8I6cQ9TzeyLpeZ6Hfm/IKOD0AACQBTg8yA5yeS9Q8vZ4L3KIad3jBTk/fC0t2bmO4c1FyOtHvjalXuCNX+e2bgdt2nckrdDNy//RmlRrI9yNKIeD0AACQBDg9yAxwei4RnD694BXAZCyMHO6ULc2A0wMAQBLg9CAzwOm5RHiObDrKJXiObMbC0ARd7yOKHXB6AABIApweZIasO/3GQx3r66+u+bBtxZ5LS+suLNp5btHOs4t2nl347unXdpj69pb5Nc2vbjkx952GOZuPvfzWkZc2HnrxzQPPr9//3LoPn1m77+nVe55atWt2vo5pVuT0CES2Ak4PAABJgNODzJB1p78nf/7Xb/fdv7Hn3je6cqs6bl929bYll/994YXvzz/93Tmnvv1i083PNvzT7MNfe+LAjY9+8Le/3f3Fh2pvmP7uZ3+17dO/3PKXv9g8+e5Nf3H3xj/+3M1Ms3B6RHkEnB4AAJIApweZoQycfsb20Udqrj/w9si0TcNT1w/m1vT+ZEXnbUvbf7jw0vfmn/vOnNPfeqH5m083fm3WsRsfO/iV3330xUf23fDgrs/e//6nf7Xzk/cZn7zP+KM/+xumWTg9ojwCTg8AAEmA04PMkHWnz71+WtvY88t1XXev7rhzxdVbl7T94LWL/zrv7LdfNr/1QstNz574xuzjFU8eufHxQ1+dWf+l33zwVw/t+cL0XZ+5v/ZT03Z+8j7jE/fu+MS9O+D0iHINOD0AACQBTg8yQ9ad/r6V5vz3Lr2y/cLzW849tfn04xvMGWubH1rZNH35CW3ZicrXT0xbeuK+JSfuXdx4T3Xj1OrGny9qzC1svOu1xjv0hp8uaPjPBQ23z2/4L38+Vk5vEl1JllcEOtYsiyD2V5msIJweAACSAKcHmSHrTv/k5jMDw6P9Q6N9Q6N9Q6O9Q6M9g6PdA6NdA6NX+0Zzz279ytSlX7576ZfvXrp6z7kD54b3nRna1Tq0s2Vw24mBtxoGNhwdWHN4ILrTB/u9MTRZrzUl5fTUg66c7urpPuZjPBQ2svISnegT3YDmnY7vA0/RYgdyJqe7yWcfpkuNLOpWSNR/UcFOX7L9F8HpAQAgCXB6kBmy7vSzNp+2LGt5fc+sHR3L9vfUnhqYtaNj1o6O1qvDs3Z0/HDB2RnbR77xVMPHfrzs7urj9luzdnRsPt5vv9D39qw90h/L6en+6fOaUqFyng8VdMREQT/btdCgO8K3NdRb8piLGlF585o3R/qJWs7qGDn3vII7kHjMLf+BXMRU/Hnxu/8XPWcgUZ6+JJ8zAKcHAIAkwOlBZsi60z+56ZRlWZe6R1qvDV/qHunov956bbj16nDP4GhT2/Avll+wnf7jP142d2vLzpaB7U0DW08MvNs8uOFo/5pDfWsO9685nMDpjZyi5SU2XFpOT5quldeUnEY0G3MWBZSm1OlqhW4yFwRcQecOpObivaYesivYwu68LDg9nB4AAAoHTg8yQ9ad/omNLZZlHb4wVHtq4NCFodPXRmpPDbzXMtDWc33Hyf67lp6fsX3k/2/vzH7jNu44zr+g6JPT9/YfKPIHLNAiANE+FMhDYqRGE6Qp0btwQyRt0LRBEzfd3PFtl5J8SllbsuQGyNU4LByvZcs6bMtKLMnHOj7TGD6kvSytNH3gknNwZkkuV5Zm/f3g97AakTM8Xj47++Xwh2+c/c5P964bmO47Xd53qtQzVvpkqrpzuNR5orhntJw73bTTsz4qj4v4AQ92OpnZXhIsydlGxnH9djNb4KImaif2dnQsw/AHUqRW6LS3mS1QDRXsOZxsEfqn27s2Tcu4wZ4Sz87Z3mG7lhBeMp28vNGT7OAi1DdgnZ6ZyJeOFcfpJfcrdCO4VJL0+sDpAQCgDYHTA23Q3elfOXiOEPLpdKV7tPjpVGX8+lz3aHHvaPHyndrukeKTXVf/dqj2g9fPPrSm+/nc5PZjs9sGZ7cOzr7/ZXVjfmbDkZnOoWL3yWadnro1nwARkt+eIzLC508GM95JFTlnU1OkXXGT6EqnZ01a2jmdhy44GV/NLTdQ/JAlMxH8cP8ZpxA4d7TUcpoe0ndpI72GnFWzX3LkDwBwlyvC6RX3i7sR7Gmqrg+cHgAA2hA4PdAG3Z3+7/2TQsviIrk3T0pzi3cqi2tzNHvT9dnF4Stzx76aO3xh7tPp6gdnqwMT1X2nK3tGy805Pauz9DMvdnyWg8+TuJbBE0qbUDeN5/TMbwXyzgN3p9GU+hkF0+SCmNKxhCxKzjYytp3hLdabwJZ4tui+cefpmUEleXpWwRVjRTp9o/slnK//I4P8+sDpAQCgDYHTA23Q3elf6jtL+Hn6vaPFPSPFi7dqO4dnf9Z5tf6M7Jru596b3Do4u+Xo7Ob8TP+ZyvojM+9+PrP9eHFXk07PBDBYb1Y6ov9ZZc+MK7fG6eV+6W1GHyf1JuxVjtvQ6Q3TzEgM3ouyCA/jKiXbP/7oxuAi8AkiPvUujqW4FImdPrgOcHoAAHiQgNMDbdDd6f+6f4IwefpLt2uHz1f/e75y9W7tP1OVZ3bV8/QPrel+uX86d7LUPVbaPVIamKh0DBW3Hy92nijtGGnK6V3LkNpkIWsavPcHilnImtwiOXzqww7n2hVOz+7oWtIJfkXn/inYFndUpmWbbFBHlb0R5+n9XxsCqc0yc+rhVFJQjJRTD5Y1ig/10ul52a8l0rHkvdH7qLxf3L0TMkgR2ZvQNw04PQAAaAqcHmiD7k7/l9w4Yda9uVVeOH9zfvJ/81/P1k5dm3uqo+DN0696vOvN9yc/PFv990Slb7xy8Ivq3rHyjuFS13Cpc7gZp5fMBwcmR3MvlhOKiSvWUw+v7sI5vd8nE4uv/zSQlc/TyzsXvgZQw1at8h4O0If/9A4mmEHnoj5iBIgN0oQC8bJGeqYGl7AXlrqvp3ekYzV2eqK6X/SZYMOIc33g9AAA0IbA6YE26O70L7x3ijDr0x++UF+ffuLG3D8/u/PopoveM7KrVu/8ZddEsD5991jZ+7DhyGzHUJN5epQelWQty5YPtOwFpwcAgDTA6YE26O70f9o7Rvx5+huztZvFhalv5r/4eu7SrdpHZ2ZWb572sjernuh+1jm+6cOpA2cq+0+Xe8crO4dLHSdKzlDJSej04uwsagVX0vfItnygZS84PQAApAFOD7RBd6d/bvcwIWT8+tznF6onr947d3P+0HTlk6nKqatzTzqFR1778tkPFx5556vv/ubQt370zs/f/HjHiWLHULHnZHnLYHHj0dmtg6Vtx0vxnR6F0qvg9AAAkAY4PdAG3Z3e3jlE/HVvPpksj165t3ukuHN4dvz6fNdQ8Xf7bv7544XHOu9879cf/f5fQ5vydzfmZ9Yfmdk1Un778Mxbh2c25Itbj8HpUW1bcHoAAEgDnB5og+5O/8euQe9DbYHcm1+crS7eLi/cmFm4dLt27mZt6PLCTzZfeWbXlac3HDk0Xf14svr+l9W+M9Wek5VdI+WOE+Vtx8pbBuH0qLYtOD0AAKQBTg+0QXenX9txlBCyuEjmaovl+cWZ6uLN4sK1uwuFW7Wpb2rjN+bzhdqLB2+456uHzt37YLI6MFHdf7qyd6yyY7jsDJW3Nu/0oXVmmmzXqNrgFB64gtMDAEAa4PRAG3R3+kdfHnhtx8HXug6+2nlwXcfAy87AS9sHXtza/8KW/uc39dsb+teuP/CHdw/89u0Dv3rrwC/e6Hv69b4ns31rXu194h+9q9f1Pv5K72Ov9H77+z8Wuo3xjGxrnF72bCVdEZKyIp7Kbc7phdORvGUWtXQFpwcAgDTA6YE26O70w1PXjoydTV9Ct/HeI9uieXrVGojc+2KXp/h3XTVX/HLy3Duelm5QVL3g9AAAkAY4PdAG3Z1+iYDTB+fbYqePcV5w+hYWnB4AANIApwfaAKeXEtfp3fCrT5O2x3d6+mbTuvKqXkMbjOJ3W0/4sBke+Vtmc8GGppNjMjPeNuzXErolc/DS0UNOz7aIh5EPDcq9txUv/EpacHoAAEgDnB5oA5xeSjynpzpbcDL+56TtiZyeDdbnHZvprd7OjpKzPQmW9K/cV5gg56fMA6f3e/a3aTS6xOmDbqWHER6U/16Eh3STFJweAADSAKcH2gCnl5I8exOoZ9L2hPP0BfF4+Mlybhtfjr05dTHuIu4rOwy50wtb0uOUjt5wnl5yCvygrmXwYKo+UcHpAQAgDXB6oA3L5fQPb1vRldjpFV4bo71Zp3ctKri0B6lVB70x+h7e9745fbC9/BRCTi+9OKh4BacHAIA0wOmBNsDpUzi9wcZFuPxJgnZGWwtZU+X99R7of5n0Tt4xG87Tu1kmmG65jfalZ+c4edJM9ibK6Zl1bxSHER402J1mdVAxC04PAABpgNMDbdDd6Rt0FWeUYBt2YxI/e+NYQm4keXuTTs88pZpxnMbz9PTBU+4Libgv+zQq8xuC9BlZ5rlVJuIfMTrXc4PD4AaVPc5byJqYvI9XcHoAAEgDnB5ow4Pg9A1G9z6HieH0rSvES5JfMSx2GbPg9AAAkAY4PdCGsNPfH1J6vIo4uk9CTp9onp6fmU5bsvfIoiIvGla/iVtwegAASAOcHmiD4PT3h5ROHynuAtJdGmzwsDpPj0LpVXB6AABIA5weaIOmTi8lZiyHpMjeoFB6FZweAADSAKcH2qCp00eKe9jdWcJOL+wCp0e1R8HpAQAgDXB6oA3aOX0k4S3juD6cHtWWBacHAIA0wOmBNty3h2Jb+IysapY90ualeZslzd4UnEwLH6hdSSV5qW0bFHO/2uQE4fQAAJAGOD0AEbQwdUNk69g0iOWEtwl3FX/dG9dutGrNinJ67kVX3rGxq8WLy+E3rtjKy6xkzywDyqxML11xv9Bgd37Be/GNttzGqmWFVOsXNe30K3b9Ijg9AACkAU4PQATphZ6o1XxJnZ5fnz5nGxnTVC5a3yqn51+t2mzxC+F7GhocecJDjam8OZt7oZW3S94x/dNxLf97hbSReYksvzvr9/6VkY4lX/5f9Z6BVPP0K/I9A3B6AABIA5wegAjS2zxR6Lh0Il81OkmYvRFd0LUMO9fAhleW03Pvqc3ZhmUz3SYcooloSt4xM05B+EHAF3RpIzdK8Jl1etUV9scicHo4PQAANA+cHoAIWpK9IaGJeUKU/1W5vvT7QDynZ31UHhfxAx7sdDKzvSRYkrONjOP67Wa2wEVN1E7s7ehYhuEPpEit0GlvM1ugGirYczjZIvRPt3dtmpZxgz0lnp2zvcN2LSG8ZDp5eaMn2cFFqG/AOj0zkS8dK47TS+5X6EZwqSTp9YHTAwBAGwKnByCC9E6/pBXL6alb8wkQIfntOSIjfP5kMOOdVJFzNjVF2hU3ia50etakpZ3TeeiCk/HV3HIDxQ9ZMhPBD/efcQqBc0dLLafpIX2XNtJryFk1+yVH/gAAd7kinF5xv7gbwZ6m6vrA6QEAoA2B0wMQwbJbe3qnZ3WWfubFjs9y8HkS1zJ4QmkT6qbxnJ75rUDeeeDuNJpSP6NgmlwQUzqWkEXJ2UbGtjO8xXoT2BLPFt037jw9M6gkT88quGKsSKdvdL+E8/V/ZJBfHzg9AAC0IXB6ACJYdmtP7fRMAIP1ZqUj+p9V9sy4cmucXu6X3mb0cVJvwl7luA2d3jDNjMTgvSiL8DCuUrL9449uDC4CnyDiU+/iWIpLkdjpg+sApwcAgAcJOD0AESy7tad1etcypDZZyJoG7/2BYhayJrdIDp/6sMO5doXTszu6lnSCX9G5fwq2xR2VadkmG9RRZW/EeXr/14ZAarPMnHo4lRQUI+XUg2WN4kO9dHpe9muJdCx5b/Q+Ku8Xd++EDFJE9ib0TQNODwAAmgKnByCCFph3L7lMCCGkp5f03CbktrhB/ManxgghhFxM4PSS+eDA5GjuxXJCMXHFeurh1V04p/f7ZGLx9Z8GsvJ5ennnwtcAatiqVd7DAfrwn97BBDPoXNRHjACxQZpQIF7WSM/U4BL2wlL39fSOdKzGTk9U94s+E2wYca4PnB4AANoQOD0AEbTG6RkLPxoy9USNQm+x16dHrfhKspZlywda9oLTAwBAGuD0AESwFE7fc7veeU9v4sb4Ti/OzqJWcCV9j2zLB1r2gtMDAEAa4PQARNB6pyfk8hjN5KxL2BjT6VEovQpODwAAaYDTAxDBkmZv1l2sT8DHb4TTo9qy4PQAAJAGOD0AESzFPP3RQ5Ip+ZiNcHpUWxacHgAA0gCnByCC1jq9t5rNUb9zb+o9fiOcHtWuBacHAIA0wOkBiKA1Tk8IYb282Yq/liVTobUjm2xf9lqxB4ZqQcHpAQAgDXB6APQmxro3rXH6RuulsOugh1/X2rKC07dzwekBACAN/wdBFY+9Fka+1QAAAABJRU5ErkJggg==" alt="" width="790" height="488" />

图1-4

此处实例只为简单说明作用,实际生产中可能因为统计信息问题使得优化器采用了不合理的运算符(如对bbb中采用seek,则消耗巨大,而统计信息自身又不易更新)使得执行计划不合理影响整体性能.感兴趣的朋友可以自行测试.

注:TF2324只对不等值谓词起作用.等值谓词如果想规避隐性谓词,参考挖掘机的例子:)

结语:凡事都具有两面性,隐式谓词在绝大多数场景中是个很好的策略,微软也在一步步完善.但在优化器无法合理处理时,就需要我们人为介入.

SQL Server优化器特性-隐式谓词的更多相关文章

  1. SQL Server 优化器特性导致的内存授予相关BUG

    我们有时会遇到一些坑,要不填平,要不绕过.这里为大家介绍一个相关SQL Server优化器方面的特性导致内存授予的相关BUG,及相关解决方式,也顺便回答下邹建同学的相关疑问. 问题描述 一个简单的查询 ...

  2. SQL Server优化器特性-动态检索

    前段时间我写的文章SQL Server 隐式转换引发的躺枪死锁 中有的朋友评论回复说在SQL2008R2测试时并未出现死锁,自己一测果然如此,因此给大家带来的疑惑表示抱歉,这里我就解释下其原因. 回顾 ...

  3. 高老大 &OpenCurlyQuote;SQL Server 优化器特性导致的内存授予相关BUG’ 学习笔记

    今天高老大出了好文章.在这里 自己本来对这一块比较混乱,正好借这个机会学习一下. 就用高老大的脚本.需要的直接去他那里找吧,这里就省了. 加查询优化标记前后对比 可以看到GrantedMemory是5 ...

  4. SQL Server中提前找到隐式转换提升性能的办法

        http://www.cnblogs.com/shanksgao/p/4254942.html 高兄这篇文章很好的谈论了由于数据隐式转换造成执行计划不准确,从而造成了死锁.那如果在事情出现之前 ...

  5. 【转】SQL SERVER标量表达式的隐式转换

    在SQL Server中的数据类型中,存在着优先级的问题.标量表达示的返回结果类型也会根据操作数的类型而定,如1 +'1'=2.而不是'11',因些Int型的优先级比VARCHAR型的优先级要高.所以 ...

  6. SQL Server 优化器&plus;SQL 基础

    http://www.cnblogs.com/shanksgao/tag/%E4%BC%98%E5%8C%96%E5%99%A8/ http://www.cnblogs.com/double-K/ca ...

  7. SQL Server有意思的数据类型隐式转换问题

    写这篇文章的时候,还真不知道如何取名,也不知道这个该如何将其归类.这个是同事遇到的一个案例,案例比较复杂,这里抽丝剥茧,仅仅构造一个简单的案例来展现一下这个问题.我们先构造测试数据,如下所示: CRE ...

  8. SQL Server 查询优化器运行方式

    一.结合实际,谈索引使用的误区 理论的目的是应用.虽然我们刚才列出了何时应使用聚集索引或非聚集索引,但在实践中以上规则却很容易被忽视或不能根据实际情况进行综合分析.下面我们将根据在实践中遇到的实际问题 ...

  9. SQL Server 2014新特性——基数评估(白皮书阅读笔记)

    基数评估 目录 基数评估 说明 基数评估准确的重要性 模型假设 启用新的基数评估 验证基数评估的版本 在迁移到新的基数评估前要测试 校验基数评估 偏差问题 需要手动处理的变化 避免因为新的CE造成性能 ...

随机推荐

  1. python爬虫学习&lpar;5&rpar; —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  2. python3&period;5学习笔记--利用字典对指定文本字符串进行替换

    事情缘起于同事整理excel,需要批量的对某一列的内容进行替换. 举例: 数据格式:以下为一列内容,每行都在一个单元格中,目的是将数字替换为制定的中文字符. 1,2,31 ,4,33 ,21,, 对于 ...

  3. iOS - 二维码扫描和应用跳转

    序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...

  4. mac上一键配置和安装adb驱动或者环境

    最近才使用的mac,老实说mac上要配置adb的环境不那么复杂,但是还是会让一些心不细或者动手能力不强的同学望而却步.那么到底有没有一个一键完成mac上adb和fastboot环境搭配的软件或者脚本呢 ...

  5. jQuery学习记录1

    jquery 和 js css里面都是坑呀 this.style.backgroundColor 和 css {background:#8df;} 是冲突的,用了前者,再$(this).addClas ...

  6. 乱侃c&plus;&plus;

    就在刚才我感觉c++真的好复杂,函数重载,多态,虚函数,虚函数表,模版,继承等一大坨东西好恶心,c++既然完全支持C语言,当然是把它的优缺点统统接下了,C语言中指针本身并不太难,是C语言的精华,当年刚 ...

  7. Visual Studio 调试技巧 (三) -- 调试第三方组件代码

    上次我们提到,没有源代码而且没有调试符号,我们也可以 Debug.有人可能会问,我什么时候需要在这种情况下调试吗?! 是的.比方说,我们用了某些第三方的组件,这些组件里面难免也会有 Bug.就算是微软 ...

  8. IE6、7下inline-block不起作用

    网上查到资料是给元素设定display:inline-block,再触发layout,设定display:inline;因为所有的浏览器都支持inlie. 即: div{display:inline- ...

  9. vr &amp&semi; obv

    买卖信号 1.当VR曲线的运行形态一底比一底低,而OBV曲线的运行形态一底比一底高,同时股价也突破中短期均线,则表明VR指标和OBV出现了底背离走势,这是VR指标发出的短线买入信号.如图(15–1)所 ...

  10. &lbrack; 测试思维 &rsqb; 启发式测试策略模型&lpar;HTSM&rpar;

    什么是HTSM 启发式测试策略模型(Heuristic Test Strategy Model,简称HTSM)是测试专家James Bach提出的一组帮助测试设计的指南(Guide line).HTS ...