From ad8d5f3e5e937c398c5d6d8f7bbbb190b4ed499a Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 14:07:40 -0500 Subject: [PATCH 1/6] Fix Windows quota snapshot recovery Accept only a fresh, complete bounded directory snapshot after an initial access denial while preserving isolated identity, entry limits, and fail-closed outcomes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/client-v1-conformance.yml | 12 +-- docs/phase1-conformance.md | 32 +++++- docs/windows-quota-repeat-outcome.md | 36 +++++-- docs/windows-quota-reproduction.md | 28 ++++++ scripts/windows-job-supervisor.cs | 71 +++++++++++--- .../windows-owner-directory-quota.test.ps1 | 80 ++++++++++++++- scripts/windows-quota-diagnostics.test.ps1 | 98 +++++++++++++++++++ .../windows-quota-isolated-reader.test.ps1 | 73 +++++++++++++- src/client-v1-conformance-workflow.test.ts | 8 +- 9 files changed, 395 insertions(+), 43 deletions(-) diff --git a/.github/workflows/client-v1-conformance.yml b/.github/workflows/client-v1-conformance.yml index a45c9311..b1306d09 100644 --- a/.github/workflows/client-v1-conformance.yml +++ b/.github/workflows/client-v1-conformance.yml @@ -451,14 +451,14 @@ jobs: # BEGIN bounded Windows supervisor source v1 $encodedSupervisor = @' - H4sIAAAAAAAC/+x9WXfbRrLwu38FxIeEnNAcSXZyfSMruTRJ2UwkUiEpezJJDg9EtCSMQYABQNsax99v/071hm6gN1DU4hn7IbGJXqqrq6ura11nYXzpTa+zHC0PHq2Ff3V6SRShRR4mcab/0nmJYpSGi0qL5SqJUZyfJAGKSh/7oX8ZJ1keLsoDv4yScz8K/+3D2KVvw3Hphwm6oFCUP6zjPFyizjDOUZqspih9Fy5Qea4pWqzTML/u9NLrVZ5cpv7q6lrX5jQN40W48stLmaEPueKnziBeJEEYX2adN+hc1eCnrAL27CpFPnTS/d6Z+dlbvoyTcJEmWXKRd96E8ZN9zc+dqX+BXvlxEAECHsX+EmUrf4G88QrFveQdih99fOR5nrdan0fhwsuQH6HAW0R+lnlvwjhI3menYRyjoB+maJEn6bX3vTfsh9kqyfzzCOHOZAg8TBq+83PkDeP8NE+9KzzzwSP+PYQ9if1IM3aT9nvnR2vU4r2K8eEPGdQ7JK0O+LdPxTR0Ne+SMPAIrKipG06c0jvkICtnJG07/0RpIrcIL7wmGWFHatWSWskTwx+Khp+S8+l6BYSaJWlngiLkZ6iMG4IUed5P0r9e9jrT9WqVoiw7CmM4SaiZX4VZS0SSgCq+G6ptH7+PUXCaJhdhhLqrVRQu8LF02n6g2CSOrr3k/F9okXvZdbzwDr0Yvae/NAWQKp2AZo/CiNKttyIwuHfwC2gNnbI8hQNDRz/18yt74ywMDqq0TD/CEN5H7xLlB3yADP7xSU//GiQ3pW1V44P8q21YPG0hjUVhTYR5Ae42+yB0l34PsyTycxRMw0B3kChc3qEMoUywwvjeYRXYA9WIGLGHFZjltrRRCX65TRYG3qG4FCXz4Hs08ybID16jNLwIUfB89kPzaB0vnhOMtL3ZD5g+dOiIksVbrwmUb2MCwDzoUjvDrBclGQq8v/4S18J/b1V6w5/8Kk3e4+M1xseL8rxg8GGBVpigGmaCa5T4ipY3vfajMPBz5ES4pX3s9P34EqXJOnuJcrLfzVZbWqayhWlMQqSUVMNAsYyZl6JsHeXeId6uJrT9z11tivJ1GtMl6+6KDW9Kd4qWFslGrQLLMaVu8kl9axlElSE92mcZSp0uqkUSZ7m3DuPcGw0mk/n0rNcbTKfeobd7YG18Nh1M5qPxbH40Phv1vUNvf39/z7Hb4B/D6WxK+jw19hlMJuPJ/GRw8mIwmQ9H8+7xsAsd9578zzNjRzzP6WT4Gs8IPczNj+bT3mR4OoPFf9jd3bU27/Z647PRrD+cdl8cD1i3fVu343Hv5/EZm2Zv19b+tDudvukDoieDX/q0276122DUm/x6Ohv057PBP2ZklPGkP+8eH4/fDNg4z6zjzAYnp/P+2enxsNedDdiiSfe9XWv30Xhy0j2Wu+3buw1Hs8GkPz7pDkfz2eRsOpNHeGYf4c148vN01p0Nx6oR9nbtI0wHk9eDiaLzvkPn/ng0mw/+cTqcDOgO8nntE590J7Ned9KfTwa/nA0ndLeeuvTF0A7686PxZN4fHA9eYgzg/s9c+p9NB/P+YDr/efDrfDw6/pUv2HHJFOL56WTQPZu9KgB3o3OgUIK1fgGz86Jn4zlMOhjNCLEqkIA3wDJid7FI1nE+u16hEz976x1KbFl/Jv4qtysRf+W7nsorTfXkXGmqolszBuPMv0B01UeRf6ledYnfVeZljK3yocTBKt9trKq6wuoBqbTRHIRKuwrBV1oo6Vq9SJF8tRCZqVS3U7BRx+OX49GT/Tn+P6Gebm82fA2Xz75Lx9PJ+PWwP4D5jrpnxzPTRV9cvsPR9OzoaNgbDkaz+YuzoyNyne6br7qT7j8AW0eDyWTQnx8PRi8pO7igf4y9j1/Oh6Pe8Vl/MB+O+sPJoGe/mKHfLHmL4tM0fBdG6BJl3qH3xNp8EKF3WFiDEw8re+beBTC/a20OurhLUKUdo3cogj7fGldfBauPLnwixZvlkhMUhOsln2+Cn3zmKwt38z+Ey/WS8oBeivDE3TxHy1UOWHwmaLF0ao4/10nuY9CnLgqPKWE6KMtwH/qALwap9rCoZvALuWvSfjClh59l75M0qDY4T5LI8wkW+iEWnRWtuljv6v259lM/zsMYMcF7GKA4D/Prahf8dIbRf/DC7BfeETTFEcqRBpKAPmQVyFeI/E2VqmOdoXTkL9V6EIaI16BbU7bIwkD5e5okOX6IKYcVnmuq70BV2o9Z7ufrbJr7l2F8qW31PknfYlWutkWyQqmfh/ElUSSfWmB6R966YRJP18uln163K0qoKrHSTij4hVOt7vV4RvfBO+RbUtL20L0ABZK4LXKrKT7QkiIO/kzodsArn/61pB+SdEkrnRppRnfGO+SbVJq/vDsATfk3ucsbcau8Q3nr5KZj7Z6BAkz7UR7kdXknia5c/k3uUjCdoq24qSYtO6Ufvr9qFai6E+xmnfZ8m+t0ErFYpx+nhVorqtBHnd4yqdTpaaCcOsNUacdVo8214OToarjAJcotuqMZ6DKHF0yFqdIbTdCf6zBFgxhfT0dJepxcJnFTrw6r3nc2hRi+fYYZuwJvczUURu2lawMVuE+4UKrAsByDmqUrS8ehKSCkUy9JUZNfcl68jqKWmgtw0cICBh7R/SolMgbXtpP//+D5FzlKKXWTcbUaeNCrT3G3zjAbraNonL65CnM0hQPG19YCVfsO/K0zzOB/wGNQUHy3KTsL5Xs3vVwvUZwXanelMrfBkANUlmd56q8wDrzlOsu9c+T551kSrXPUaai1wQ0GW8NoDqTovVhHEazJO8Sa485LlB+towj+Xiyyas7khsfO4EOY5VmTjYMRBhanygd3TA3HgmlChw4/AgH72kN4mk51sSZxD6TvdRQdWKU+U0NiMKp+FqVkSoTeoXfhRxk6cDG3KQetKdwrx3CW0pS98/TasoMXSeo14b3kk5cRfj/zfzy3PKN4y2++qdqxPipJXdhO7Gri54gJGipeKsqRbHdZP3Yz6fphfflwdDSe73lhfJGkS45n9F78qhtA6NRZZ2m4N49N8q6+m5skbOifhu+8w5IBwLXzReRfZiXlV1n9ROwEf6lUfGrdr3py/GBf+am/RDlKB2mapIaGRMr2Dr0RyoEGukHQ1EIJxN3Wft3Tf0rRhYgUfcNkXYZdRxYXXpPBflgxAakNuh+10y4SeDfraOGTDYKdQ8nQVXf2goNj9yLLRce3L15cocVbFDSBd7QIKK22sU9jsLpCS5T6Edgd/QgfIm9BOYp34YcRCjqNVh08VDh2nuoQeZ4i/2310yel8X5HHtiVtwnXYYxZNJXhk9gBr42ut47DP9fIQypEYc6zSNZR4MUJESoi+JxrkFZd2AiOALgQjdD7ae7HgZ8GlK83GUNrHTyq9GNOc0QVdBGilOGdPN2b1QYtwMFoxkZXrnkQvwvTJAbxqnPiL67CGFW1OuVbo9WZpX6cgXTRzK9XKLlQza5AB7n4C7g7Gv47iLN1im+k7GWarFcnaHmO0uwqXIk4qoyu0bhouC7zQmC7gFVdXK1V0mFhhRVmTirdjGq/MDAv1mEUoJQpRl6sLy5QSq8+qUVz/7tdxZIwJyd9J8zdghwHKso0MVwC1OJEba8JLL4l/djp+St/EebXqukKlxk63c6ht1v/4PXGJ4IgWrAcKotxn6YK32nLq3U6UX//uwfCHSYPIutn6/Rd+A556B1Kr71sfZ6hP9cozgXSwDOuU9SpDKcQKmX8zRKyc00NAhVPKUAjfuo5YlIxBNnoMnBOCMKuVtd0HEY3VVc1R8Ku6mLZC6iXLM/DGPGHS9tr0FYN/WnNC82gbhBoYhghU6gOdUORto8z0tgw6PuSclE3IG+nGqt46xHkF06n/G1Xp9PKuO/6fhLsksvT/zW6q1Xfz/3fJ4m/xBjZ+sjHcHvWHJcRRa1OFTqo1VvacMcLOOMubZorhmltqPkGdAS9dZqiOG+2OnDfqDmIOG49xnEz2adw0eOcGks902HfCzNvHfvv/DACPZqjsHORpMhfXHlMVRZwb/cwxlCS33/7w3F5/OBZvfmUDfTkyqi10arbU3GENh+CnhX1AGrrFvtjMFzhvXGlIKXDJqZ9bo0sDo2WlPhG618jFQug9FFyFl0jJ2ozgC6ZDyzwWwyFVvgdYFdCepomOVowBnGaJqBvat54brWAI2u8lPAQDqnz0VW4uis9Z8sscLKOh8sVSrMkxmKNQupQL63Z8g5/qADfEX3Jmyt8Wf+AH6At1dpVavQFf7fSB7jZ/l1+DLXt2rKaBHRDLmfmE47UbWEnKkFZ3cpi/y41KwmfFS0N2aqOgoT1ThoGuq/qajWwaNtS4w4FzGQ2WPg53IT8HvaSNLyEcCKbev84zPLnvNsP3iJCfrxeHZEHTEbpttRK9zhRra3m4yTH1kvFQILDuUZTVMEBwgo+72N5UR3QQpKPqrHU+qLKBm+0sAqHeQirEt+jG61KyeH7CHyE1CZu3XvzXnCgN5rVwEJNnawBYxycWYqQ6S2n15lq8FVXa63HrSMsanxvqHitjWOlAaKPoia2M3gGXZ9dB+999ZVRE17qJUedtLRdPxoH3UyRv6kyX6/QD4BOHRT6egIVYngFu41+lPIuvkT5ML5IzAs3m5PsUpaD4YnZlIRFWMhJNFKawo7dqWKE8u4qJOrDI2AZbsB8qkP126bfDfQHZpKkStmAMa0NaPJzZKXlcXvAWGup1csjDOMMpXlzt11IkAe3oAxSGwoJLJSteMEaq3WYGl/nWIOPOjjyXF6m6NLPUTF/eXGzpJum/nWz1XJ68uMlOvh0cXc6HJFZ8R4zeDoxV2l3JxxbrLD4tGy06gBPIqc1L/K6gdQWFzqlQK3VRrqQWgMDzm0/Ysh6mGFzaoouwyxHqeLCou8s8/MfL9cafL6O8ZMFenKcWXAFyIDvagS4+K6Bn5yAChjM7GWmdjmCfiXPYY+HEMtxEq2bu1DS+z9YE3wjbYsVUVZhr6CyAkvzEN3ps1FpiLaWc9DB24I3dZv/aPQj4YC3vd028SNre/ut+sp0V2HuxE+zKz8CPf+xn+WkG1wiTYMk12CG6ICs0Mvxq1zyMuArcXUz4ITCjM0qcmryYY2kSFLgNPmQNsqiZ9Wm+ePjtb3SwXVk4zp/ZcMhLnkDg8tl4RVW92zXvFUVdnAKDvC/gIEEvoAXcKt7fpqHF/4ix4lykouLjtNtUUo9AIN2Y8Ijr5sbXgbVh4Apa4/yVcfeA+Rld8YdFvbaFvHc8ML76y8ZpFo5guqd7jrPM82TjOwFXAbeKkUXUXh5lcun/M81SkPFES+55GL8Yn/Cun6moi/mgrBpcB0Sfm4xFnaap9jRYb3I16mGO1sd+qhzkDi+gntR10gGkeQw+Vc1QtjEqvDBiWxoqPEeK6FeWMnu7jNvvQK+XXVl3d19Vj5CpClZ2+7uM+YPqtpHq/9m+WxNdW9t9fv6TPumBsjaj1S+mwT86jeru6ark+T9H1D5wqXs2HYWHVniF25o4IYS4t9RYb5jFo/r8To26ANgdrCBTb5IkdV9VWV1LdjFXe+vv9QWUf0wsvs4GeZufEisu02Apg+/937m+cvz8HKdrDMH0fbWub3Cr5kLiyrHZiGmQDYQ2qRWNuqNZTPRU1op1+7cnVwrbDl90ktibQ2B9ovUuVU+G2DMlFzXU0RH/8JrOa+9RyYJvDBFjxF5znrnCLzn7GfmHpmkgccRRd4MpUuYvkhM0VQEowoJL+TdFpJbLEhCC4BmczZZzLM1RV4xpPkMYVMAX8PWpi+GtE+vTyvCrgiVybS5Q/TZncGfaz/KDKO0hX1s6WSW0miqnCVtcbNbt3dtza4QT1rKNTIhQwmLkr0CCcXLKSELS8S66NTCOg04PxQ+lkhVgRR4HnOsuASMy4kH5CCXW8jngj6s0IJkf5W/wzV74yQnrh5ZG0gMEbr0F9c8s5OihV8kMMtqixzr/z6RYxOVVk0Rg4Yg37d8UaIdljtdCBeu9hGpqdRBoQq60/cOc8Ynm4kD76ZhAFCCrexY+lEbq0iPYF41UuGHClbRwzF5s4lXba1oRQcXXG3iO3Pzcro7jX/sOidoaG33hNY2MgnHNKPXwGN8UiPYjHJQ3BaeAziPQ5h1g2UYh5B5IldFoNNWJB1d2XeWs1ckZqvTtAmFtHS6iK7f/iCbUeTwUwxGDF0lw1UhE8ge4vTXpmqP9Q8H7GHETGLY/5zKgpjJix+IBz/cBcLlunlk+YYOPRKPB3Ih1kkICVpcQaLtOtHin3QGZF8klUxjMe4l8TuU5iT6choGs2QaBm9M8UyP9x5/+/jJ/uNvnz5tmE3FMgAPzkQsHaWMYB9jI7M4+SlcZhRemurF0b1Z8uBrheeB2qSPG5rpKtdHerA/+3avvhJsrbtJvLDRHpYOEzlGBfysGookPbF4h3r5GOr74ZLjBXIfRqMQbm919ivtgN1hVT5p9vZYaJbvktbdu+duvOXKbb8EMcrh4nX3Bi1j6F79PycI7ly4sYq7cx2zWyy69s5RlMSXmZcnnszZtuYUqhKV7SjAxUCob0yZtWx+x+lgUcOB5Wwst5fuJKe0KVycolK7nPGXyirVkVApVXG1K3zQdg/lvMC8t5gvWNs5r6RW5v2LX7W9WRIAnpKTpqY7wk8eNbH21hG8DeGZ3gE6T0M/zumPGhG6eOodftz9dICfaoe7Hz7uff/h2acDfJ6zw4/7nw4Qxf/hxyefDhreN/o7XcL54cennw44GmHkb/HIJeQcfvzOMmrAip8IneIkRhr5p/SEbZsS/OA3q7oFRfpPSRg3G+1Gu/SE1PBIgVp/9BpgXGt433sN7KingVdCmmZUgeg0r3sZqZ1jFF9C4Oiht6tF7I9eA6NR2+D7KhJK86hUCO7SmEqTN439VXaV5Hqe7LS/bntMHU2FbdW3K11HpoaMBPRtHPbcbd8Ve+/EVWmEgfZK1EUc3ILpCM/UOUFZ5l8i7xuv4TW8bxj3a5u7tZwTb01Z4aRhoToiHBjrMXc/RxfapR8gL07iML5CaZjXyGKh0T5rvWqNF51JIS04z2aqdNKbaANhP3MW5muMZVLvoCgS6Rb2ycErVbZOYCuhKRVaySphqTK5PReB/2x9/Qi9V+e1I1ZxR8399n1RH4pCnzgMlFXy3lfl0j0t2PGqm9Wd+A7Ie8g8yGF92IMAds/3Yny06A7TNq45ewyJShW4+WuzzKUtTx2d+/+URYPu0SjyH+Hxu/6v9/itw/lidi8FjhEXirvNkMHS8WrjiTtxy4z949Br8i84wWc1L1kVXaIm/NuGIn1nMWRLmWkbP3CFMiMMHFUCT3zJIiCRHBKYFX07wzhAH8YXza9///1rFdHwTj9UPLGqxCKCVEwxXZ8TkIXRvvH2rM4x+oT2fOxbdEWBJKD54zDGHooZJU+iJMQZZ4Gxm7Kvyes5Hve6xy8n47NTWt9ySpjUE6qsZRljdM3KjIz06kSX6TJ8Mg+SpR/GfhyQLNyPHG208Fb5/Xd4rKjTdldks8Le3A0Cenxc+R3fs+qnJ2puR9ao4I/uQt9XXwk5JZTlRR+0p4YfBCgAjey5RIybs0B3hYXKEadtdsRpu3gutB/ZrNLKFmqNRNUarfiu10HorNA69o9hIXpFjEjFSSu5aRic+OSWgr5rT9Wa8kLqovfIrgf6bfcPDdlJ945JdQh+bn4aZkncGaeBIqkBxge+rHXoaEquNV8VcimW1neVzo2lLhUx/1Ah5rsMpJRiiYexYlkrTg10bRWd+I7K241ka5a6tuyFJqSEnLw7JOTUUqbdo2GY9St65wK22mbZKkIURUAkNKrzyrtYaKqygNXP6wdvX+XfuiOQp+qzeJoV30usSd2EK8wVX2Ujzs6hodyjamzRhrNzqKr4qFpUTQLcRpSJEDVNXrtpYW9kDk7CNbfRDcYKVVWpunxydAw8ex9irbGioRo1Cz9DXmOKulkWXsI5BAWgbAZrfK/vtQ7C3KXhC3/xdr1yaUkTzaN06cc4oYNrF2eg++h8fenSkMT4Q/a1S0wsLn2EZAMuzY8TP+in4TtIvG5vfeLH/iV6nUTrpdPoExT55yhya5rlSeo0Knv7ObXF2f0E6dyl08x/i3hyfacOi3OnZuk6y1HQS1Fw4sdEhW7qJ2jG1cVFAsLYjD0Vd8gnZ0/63/5QecHWU1Ofs/IPZg01ivM0RBlMp/iaJ7kfDUgTN/V2AXN2c4XRbvUnRU1ltdqIrL/6TVXSWT2CgBp1AxE7tfT1wsjwWRrHwcRCt3YzG0tFOUlGc8+AdYdvRqKVEPzWNjAa2I0Dr/zsaory56w8IRGdNFppWHypQ1N8VaBU86bg2qrw36BFYgaHafhvNL5gqjFBTQL6Xqok2VUmsoAybvQdGKAPpIob+etz6VSTH93LtVH+AUMwL2Tyk95OcM6KlQzj/LunzZb3jce3HpyvWgSuv+HFtzTeTZq1UyLQFzPTIq2OTYeLtbBqs5Nd/a1y1PuB0msd7uKKc6379b0uVILC4bPHz+td5FQFLW5SSoor3iSkbVoqio9GUjFmrFiUE1PkV3bKiibxFNmMQZCxW0XCweq4+ENnmqR5k4zT9pzZChU5SL/tWPHv5YpxEZAodxK8/gqnEW1sULtiMxAscr3Iz5QqPg9L0Toxi+oRiXKrrGl5iXIzdJ7eK90MWrE0vCVOMhPIKgRShZQSFf5oIJoYXGIKVfNwND07Ohr2hoPRbP7i7OhoMLnnsCO8VdhFia5nA0mhLDgzILpQde/Vyyg596OmJNJQpKqSZDhRgGeOTbBTQnH56jwuAUB9yBhbgI0jwEMB0C9gRbE11fPNGgMXYBjUMoN6JILhsRHDBlRAmSmB8sBVe6NwfxYZkJGJUImQUxYuo6eWD2fjnwej+eB48Lo7G45HlcS19UlYJZHZRWYMN8GUKpiu3gnw7BE6MmrbFkHUVAfo38gcm8UWpU0qwBoAN8TIe2DeieXwD66odTsMahmnRHfCoBrfnTKh1pXFbRupOw9a4YhD3CFEWSi3dyq39yZCkzOncxFy8PHShEXUZSvwv+SCMJX/RmZh9uP+wjAMDAP7+d2Aa9CjJ+iBpKsNCHwY50/22UFpPehjKMUXuZzC8vmyv1kMxC2DcIzeIYUmtbKX3M7WqH1qCWs96Y763dl48uv8uPticExFKyPTL3W5XdZfnkzjZ4vB7hzj/+IS1hu9a7eVh6u0NzjC2uZ15Zki2rGi5DTBebE0m/MSQQ3s6fq8u86vEpgWF4coY0aDP3mCGyLvbtmZjGZizL0BTzu/JpntsHekyMleXOdIwpMJlfeS/k1Hdks/An7kjAJKdGkY1CW5MrW1S48eipzH3l5Ld5LFWT9TOpwQOrz1W7VA1YO7WSUzZzn69n7u1gIAh3u1cERpbCYOMw6yqWzEtTJgr5gaTUpnw/68O+rPu7PZZPjibDaYqgYT9dXC8lTa7LrGKLzWezJDia8frVWKI1FrmqriUPBmM5mmFMi/ZbOU23ZbNdh86UkievCAnd6QBcdcYw18nznaOsdrU+isfSSlRvvWNdt1LHH3k+alIEzsNF9HH26x4eHzD+EDAUrJ4DQyVfyg0pDjqAjDTu3UozLPqZpfHWrDI1or/wlU95kTxRaoobgjsM0Uhu1gfgbxMK0NLafCoJ+HrfQWpCLvJYpBvkcsg7g2WTu8RX77A/+PXdT4p2d/HKhqKk0gqfNytAaDPp0jSb0U/woilOozLczetJqIyDBAqfAQypoYKBdDSyNZvINInRdhTnOu4SucEhIZpjJbZ4JWEThONB432jyGYLnKrxVtZ8lx8h6lPPlKs3VQfzNOaYLH2pvx9LPaDboFnVnyws/Qd0+lbQCTmt/d22kcOIfl4GoDtLQvK/asMrUvpCbVCu/qrL7GJwL3ncZDZlA1mdSMOxV+aYLPSLgcxAEJFKSRYwc1YvaqoCtVwTvwpTPM4H9H6yi6/mXtR6SUoOsIcqwMHu8lymEw+LtqmLYKsdoomOFlnKSo52fqlNo71bE609xP8+xNmF81RURvPIdiChpA9PxQ2kr68zZCABqUPnm1yBVUPg8zUO9nYYC8/ArxnN2sTQowmC3JR1AzM8/T8HwNPMEv/nqIv8HmFd9V21clw6YwylelGTq8VLi+lIux/wSiWDOElQYtRdnYLaMXx1PEXoIJI732Al543SENxMJf+QuSJ1UV5QTvvoAcd7hGKVI5gt6wBDMkEQcIdmzAliLAOPw3GtR1f8AewBiKv/4SRjC9NKBlsS76bOE//OA92f+f755tZUuKFDZMPCRbg22GYZ34X/lRQKO6yGDWxwFHucaBxrhz4lSlHdzYF8kkb3tapIH8fO2WzpgkPJLYuIpBi2sThGonrnorR9aPgyIzUWn5UPXlMkVoo9AnLmWVbuUNne7YIAK5FCfc1QWO/pOet8/YKa6hurRu4CAnn3WWR8dJA6A74ooNw+O29Y/tB4LGzV3LKoIbSXSjfDzra61C4ZmtFBMnUBlzPID2l2P1h3KReFFHXLQq34eSgpmO0PNzdJlApIKDntmtrEzLJV38n6qSJ5qoX/ekicpRVfVVmnUSAW6Y+G+CFkka9KSdapY2rl3dh7YnVBl6jA9yo103o18VEc7GudrZpPUU0aylznLFthmabWDdgG9voxDzmx8a9zOA919N860bxa40IDI04MXfhdJIYeaFMa1X5Oo38dmerdIsHezEoXiqbdt3oFKyigICsbAoTVHwvWfKFOyp0vZWEFTofLEepmMoo4DLlF1ephCijYqllNFTDGgWbJTapRTlYSom4pSHiJLFWzhc7Ov0Ol7YDhK7k5XlPellLM+JS3epASDsz1ijqsoMqhM48oBKxw4XQm4WfglQQXmzoLsiFR3gPDKgvPIXt1ldzncVks3PNZUMH6/CONOc6bpooSfup+R8ul6h9F2YJWkHkhLkiJ7h+JKE2Sv1qpy0dWYv9SAKtdPDwGyAV377uOUPkRkErsFj9MGhBJ4f28WHMpi/j6JSKVuNS5ZLijL8BaewHI1n86Px2ah/ew5bdQLPPX01W0TrZzpXvLlfsgCgt0sW1YTHB26ks3ElZEZSYkLjLcWgmif95ELZnxf9Zuv0XfgOBYxYPg8CZlA7kbC2IDrbQM7NO4MPYZZnTcOtt9HC1G/J0mpNjQQMqJVP7AIsEKPNS7EdEZ/bAqr0Y9VtV/DNL9AHil18l946as+TJIdMayuiOqyL2Ze9znS9WqUoy45A2x/+GzXzq1CVc8b1fXg7ydK0r0RyhZrfiFt7H27vbWjxbrDTbFlzeqEkWlk1qiFZVnsoRyv5g5Y/y3vMpsbeWirWWkxMkmDkaAVY/h6cc3D4OXhykLUSdTkZRK2s5iXaZTuPchzHBci3pxf7efgONKwkMN3PSg2qZ4P2cHzvUojfhjFcL433MPhjwAUZpjPC/8Mr6CWBoL43FXxS3MDKtwjFD3mSFGvmIumhPiSeYsJ1TLX8xSdSIksv62BsfXPoNX4DTLFROr0kztGHHMjpj0aNGAcYznblkEWHmXcW+yTO5N8oIMocvsgWdzbz8YfHAYpDFCjcfPho/CYbJflRso4DxWBxkj++gG+mgYZjRc8wMXbRMWBhANLkccLamMabhUuUrHPFMDn5UurMvhZl9NQeX78R7/Vj/zpZ503yv5/DOOhM0Z9ruAH8qO31rnyoIOAdsr91zuJwkQSo9YeCucJ4YqkDnX2rYC80Jx4UiYgrib7V7ZjYqGmLnzRyy7l/iRxaV4pwq+e/SpZoHoSpS9tFsoT8ifbJFZUe1CNmizRc5XPwwtl0V522bnf3mW33CvB5zYo7JTRNDi9HohMyT90X1HIufXe4K7n1t08J00ocig08qm6YhsaDWfirbR9mZUyxDezqQj0c4Hhb4PFsF06nq5TtYvtAQcCREyTHyftTP9VxMmjxKry8kptsE8ia1AhdPIgauQkx9qNouFxBoEIjRrm/Cp/sd4IoatQ991iGRh9gajIxVbSBoK58JaD0nSqpKvWfqiQPAGcbsUaWKgYfNHeK2kGtgztc70tVKSLLmktpc90QAouVYkzvdJnTu1pmad+h6NRD3XowR1RRUF72XVOjNt3xbexWUf/OQqyKbquUGupP/A/hcr08VmSG49uszXzMW5RSH98Nzu1VetywrqnYYzok+jJHWoy7oOgtSmMUURRZ8UD3+CXKe+s0xVnVsTdM02n4tjclHo/MlR08EIQ5fyPPvu+Zg2Q3a57FS5x6PoAkSp0XSRJZYcT+dcqSrhT6K/yhTXC09LO3bYGuH9pC+mvieMCKkqpyEGTJOl0guhVtjS8JadTmWUn99BKx7dMeZtKqzQsS4fF/M6+K1hUidWdp1wS/+t3OqfNhlK1rTnelH7xzYgh3uMHHyWUSAy9/03Tnz/QjeUApPzG9Ac4iXM0+G8Gs1cRk/NNpmrwLA9UtLOXGcEPzneGyB0ZLTPRCAULHnLzsLIXBLMHjyJ9tRI8T/pOCWmTuh4YbzkgwfpRYQWAxC+PLmSZjMa8wEibxsVFiDaTJHhoqrKn+bpK5Wew71NXppdez3MQoEJHVH7MAkpvj03bBK3N1FYfkPmBoag6sAreZ0O2zugxsWSiYfImdB6oXA5YUQW8QVbJNVJNnVLti3MGnWoT2EDBHw8bJIqfAxKdhoMEda6NlX+70/ZCWjhfN1vbG7bCIi2ZddUsHUQTF7+wrH3zwF/l0haII0O146oHyaAkuQ5Q+LKAiGnm/jdf5HyUCX4nhjFLA7q2s726vL3Vcqmu+grYJVZwNbA1dd4kYRTSfgQmuyq01HBEnzd3mAxrrEcRnyxItIWr+gT0+e1GSsYen9HimXgRU0UzjAjPkR9ilyM9EB4DJOp7gXDePZF037QX4HXyA1CsB8j56lwgnamP2IvjXp3IXDBuYlIPxOq/TZ5oHyTofv0PpRZS8r9kTpekmPSeIvLxx2AIYwBEUHnYbgDI6aQhs2dkYgJMkDvOEKE9vAAQdhjpGXd98JJwb5cajTBfJCt18GO72sIV1oRXya66MUGntPig17qj9rPLsAt00Dy/8ReXAUkaRIj9I4uhaSjh0oPC80o3bpB1pnDW72q/8/W+/MyU3Av9u3Ec2iE1xR0g0j/9iCl2mE+OURJqJLlHuFK7s0VW0MGSdXpTEhpCgKijA9yDj403BINMTed19dkY2BHWUbPhNQKimuqEUffB+JhUtSW4n3Z6JEIq74kaO/FLG50l9edBlSDyxtAp1D5B1Tv0cX3VO/SBdp3fif8ArtiFMZL/DeBGtA1xWlKXYEMPM3EZSoqQpFolqF4o/vrI2gXpJoZZd6L73wIG3STtLvViHNolIV22vK4jaolYO8Kqq1RuRacpFoM+eRWps4bQbJDc0S76xt1/DZbmbXq7BTUqIF8YYoPnqcYgwdpjrNNpeA/9oTtXAa5cvrvzUg//4C8g5HcblqmD6oMadZrPo+MOh93X3awiKKn57fuh9/c+vtYUjSr19Re9/O/feVfT+X33vouHhofe197Vbu8dft+pHxWxh71yi4PUkKJwBTIhipjaQjFAgNdkCVeIMWCvKAJfrDOcQ8c+zJFpDCDuEPRYTmgmV59DM0CXMBbe00LmaDXG6Pid9eAI5tk5plcr8amSAVRTmTVgfbP5vf3gfPUid1/a+/vvX3if2usWtxsTw1JmgZfIO4fyM6nK5/LhxAy5eDBw3ti4b2g0nlg7RqpHDoOi/c+h9/Tc4PNrABZKOdAjJpMcXHKvUiRdSrIGaBN7lGaRw4iO34Fzubp5Itkpd5pSwCtIr5bhL0bsQvUeBd5n6y6WfmgLwSWySnkpd01XwUDu644eHENihYzdSK2szvidf//g1wbaWWVZ6/I31MGw8g2bn0Gv8rWFq2dxhEwzigKRLbPytoc/npeXL2hUCvFBgiP5Or1FSSWELLPnRHZGVjaRsXJ5JL95zb68+ox6v8/HFxI8vhbChBhvSzIeJEHxILi25oSjtSsxZbsbF20Mug5XrdRll2UOLfFb/DSDFj3jfe0OSewGyAmoep4skzqjJrDcZdGeD+fRsejoY9Qd9yNf2YZf8eXrg0PNsNOyN+4P5YPR6OBmPTgajWTHG091dlzFG4/mb4ag/fkN6PiPTG3sej1+OR/M3w9mr+elkfDQ8HoiQ7xn7TmfdyewIfMmns/6r7qh/PJgWvfcsM5MO86PjLtS4fzWYDGfuU/80fjEfv/hp0JvNj4cnw9n85+Hx8Xw8msOH3vF4Wixj34YCYazudDp8OQJM4Jh+OoQzKNPBTPSLpt33Xbv/cjaY/Mp6PXXtNRtMToaj7oyv+JmxJ11btZsd6awrpbbZq8mgKxH6vlP31yfz8elgQkorCr2fufYuTbu369rxzWQorXffrWf/7HROqFXo+3S3Dq5KFAWrdesPJPXL2XjWdT9YYlfw2puclFC97zgApkf1EE9dYSD8cD4ZTM9OBPQ9qwUCPuKDvhKUvd0a6DANZOUT/cHxoCCfPStrBTKd98aj2WR8zHmBtRem0Xm/2+OMwLHL+M1oMOE8wNpp+uuo92oyHg3/yZa0Z78tGC5PzmYYefMuSX4iB2hWWcxfyu8yH1G3kZiFtol5AHLs1Z+Fs20Ekh1gdaPilOq/izSnblU9b5rR5EOln1JF7nJrStPyjwUJqn7HdGakkpeD0WAy7BV8mgoiu069Cib91KUbW2/3+JhTIyHnC/hj7Avijqoj9LV3PBn3h0e/lvo+2d07d+h7PJzO5v3hZNCDyCv3Kxh3xoylKmfYLxXce/qqOxmU71CXaUnH8h1qufQxtcyng97ZZDjTXCa22fvd3rF1iKc2KpkNenAWzINZKTW7StLcmw7IOHxY3Nl0FeFCioRUgOLGbwb9ebc3mM9+PWXYNHalwh4VlKEr6bVn7AW3T3c4whEvpY77xo6jMazttPsSeF+l71NjX9Z8PDr+tejzzKUPQQpFpq4Dvr0G858Hk9HgmErB3qH3naU9pmHees/UuruIwFomuEt6h56Zzqf9/vF8Mng9nMK1uGeaQWA97AwrWcHebp0RRkDHxzV5QdF9MjjtTqaD+el4WOfhiUfBT7gX3d7PZ6fz6eCkO5oNe5Qr7Ttw8GKM8elgpIRk3z4KewIP3lhxj6cZ/GM4nQ1HL71D74kdPDim8/5w+rPbm/BNF+ifHNldkUvt2rvNhieD8dlMlPfNpDccHQ1HjClf0D8m8iYJ3Ckz6g9GQ8y/vrV3wajgGcFMZ6Loc9qdvZL6PLH3gZtmOHo5fz0cHzPe/MRhruNx72e5k8Nkw9Hr7vGwPz/tTrongxmWoZ/9jxsyRt2TwXzwj96gP590Ry9hC/Z3v7P3FY/7/ncOkxE5bQ5iH6XZXYeliWjf2/vumanHK5Amj2egQHqyPz/pYlIvpWYj5AU02XIf6nQyOBr+QzXYs93d/7EO9lNyPj7/F1rkL/wsXHQXuLxmGF/KzHnPaYjBhxzFAQqOw2WYywP8r/H26L0a9OeD+aw7/RkjdXI2GpF9UC3q6d6T3XPjogo9I82jxJ3SFCOi3adPnl48DYwj0jhH4vhFjE5wpo08B/cLY+g3zUHNSRJmh0k8gTQvme2w0jmrvfb2jXPKHfoo8q9PwigKM7RI6ABmoE+TLO+HWDM7RXkeIdBml4Z44rbwInX3+BziKDFcVWh2HfAwXVyhYB2hlKYeghpqeBeeOXR+EeZZrX6YFgejs5P5q2G/PxhZb70XL7FyFHeBNw9OAWLt9WY2nXdHv86ng+mUCckud8yb2RT8P2nMH5w1HMRjF4xI1gdJFWrGAzgZg4uydeTpbIiferPha8yov/3fg2rCM+p5+q/knLiiHug90pjxlp5lFEipPOzNWaLQOn14FbVNOrPshPY+6TpmSfNrNS6l7a70oJYWlpgfb1so/MPQNcEcXMiEDwnIaR0N8q3ZMnR/5WdXUyTWfAbaDNYLOO/s5AYzP3t7lIC7dlZjLFZkDPMjxVAl9RhAXBqiqS7oKdQ5qoKjwiUxaw2NGMW+TTlKlzADwQFKu3mOlispY4qx/XS9IM7FmvZCEQYI77yEZI7Wpqx4gm5Qn7p0voBrw0+vp3i1msYs97zijKvsfcoIFhq8/UiRwE5LwsoAWZYhUv5YpiMWEqmiIZO7makf+A441byoWIfBcUiwC5smMduKOS/1DilGSzXkr8KsI6IQ15FRkTDGqMhuSy07lWRKVW5b7lJlpHK/CsdVZCMcxO/CNImxK8KJv7gKY+wEQ6tret/Um5Gx6TKkVfaN/V4L7gsdKlybBZLiYJwplDzElVeLph0I7+COFZ2vW9rxWeGF0lDgN1JByY/F+IULVqnjN2WnBeIqql6DlWEr9sVEsybPbewZykI6ceJLQsA4vn1jH+oZHLHhBa3oEDT15Zr5ienMkmGcf/e0jq83cQRW1KTZGHBW+kO8eV29bOiKjEze5u2i8ijH4UNKxw1aNFjFhqtxqDZubmK7MsvaEpsVB7UUVxR5g4W2zB6hgBZ1CVxc5lwoevt/DRxM9vt4heJe8g7Fnd6Vn3fqunbhYbnr8/7Tm7k+/5Sce+R9T6q96/yx4GMGC8Yup/CvKoLlWA+0WENMN+F/FyFKvQXJREO2XJfclvHLTpG6ptnqVK8y7HkpDliXhkwlLcm4PEc1zpE/HfbrlTtl5aoLIMmlK/zQeV0NkmEvjyAAH7HGGCdVLg1SzYzd6H9/2uweHHBb9NODg4PK7Yn7eo1W40AZc0y3rI9I3s+khHISYVlppIpowT7tcqR3pd8sqf72Ru09CMhQOwKWTAfqRhCkVYW7Ttvjh1FdUjitDEYv4ECSitiGMiSlI2qv6sFNfYLBVKpNjQt6VhuprueiX4dmxxBKJIPFaHzRzK9XKLloKkZsmUeMVlVagjgzC0WXRjkfklxIXOLW1HmUXjgQSI1vTa4pfdOEeORi3DbmnpryJWyQjSqX1K8XUpvmMN2VF2iuc3ODmoAsApFPxbZVvyLVO1MKO5FYp75dmVFqnNR/Gr+gtqnBP2bYW5U6UYrW8Ah05Jkm9TpTY7iMpCtMSSboYLV+WSHfwT8cQY4079DB2VM9g1Q9WX1MXRbQ0ixASgImzNCNomTx6mWUnPtRU1mF2URU5ngIvgqc6HWdollymqdNgss2y85HQ+kO9ISCC3MjEeWcXM1xFS7kyunMZnexD6FKN6iMOFiLxZe1zT8aB6rPim7Ekjhr0myEiUPpo0v0v16APB5tSnGQQIIRNc975z55HV2XgelMY3+VXSX5wNBdx3DoU5Tur0UDWIfe9eq/8qNH/9Wo+3Ou8ep4RYmpNqQcG8oTUS8sRUVlVSiKnCRV+WbT+jSOF69Bt6t87qgVunTL4ZLVqAh4njtSUwLCVFLrC4PnkirBgGV6aah7F+TZC5O/LBd4JZlReDcgiET5I3cUCXsg44eOZMVQQYQyZg/uHJdM/1QPmSpsQgFZEEYESVz5UA78ReTSTHyKaBvXLbkJ2faYbqWS+NuF65bd/zQ1X/W+p3/pnUr1b2qM27ZBFsSo0fcHnN+ku45DepX6jdrIT0oe0l7q2hIScWsqkIlTh53Bn2s/moZBkyDVyNtcHo+bVKwDI0zgCQoJgp0kxcQBmrI4ybEOcSHwOtcXI3UVXiRxniaRppQoKCczbV2qHeGgFPdjj4zYLJBO2B+difyDDWxImECae19VvZlbsIu797QJIu5XaZJjsnBFOj7Uw38OpMPuL6KhqagrQ3VXaqeHWX+O2VGVZ9S3Jc8W9dNUtZSW4TlRdVrW7r0MXqe7QLxw4t597jrODQF06YexhyDxITh+xOA4P3ClAHpx+Qt0muBcQqb9Rk28l95um24b64QzYxT/vLFua3s4Av/4RbKOAnxAzolbikOxW3I6yvEHsEbNc6tZbc0p9TRPcfpPooPQr6HAoJ5uOblXZmsdGHaXGCIIbuG35iMzAIUpVVOUk61tfHGRoVw8hxXA2l4DsgWDXazRKgZuaZl8skIxK9MnK7SIo9tfYjieZpRVmlyF52GuHqcUevyXTvGniXS2tuexfOrjBFa1V8gPUArcBDz/gJno4l20bEkchGj/TMIMtD/xs7fQqIRj3aXHu3xVwWfLOFchsBDaa1teG3fPFOiVidmm9+capdePsbcalV0e46cFKatQuza226OelNLkkuBmlcyLR5lR3v3k8JpjO3Ow4cvvk0upV6pK0qWpIGYHzVelk4KUINdd3QApeCH7DjX8sLLW1L4lfYSy4LEIEs+j1hQmb7VJstcD0zS+lJGjWpXc/jJkWpsyKFx5Q0Hq9CFRSZqss5es3ArkF5KUADq1N8WiACz1r8LZi3rJ8jyMUVNCfKOzAP8G1UEZxGA553nTm40pmqAsT9Lit4YeCNkoLoAPVu3+96e6mtGNZvdgPOwND4QQ1YOD6a8t5e8vui23gUi8qmxn5yZ2ywjDsTzpJmMcCGHxBwfTx3uPnzx+2mpob/7AYAbF12RgNOrflmG/YsQvvdjL/z42WSq02iaTYslriGwHLgWbKb2eWdNqRx8lMbU9k7gMgr6iZKBOLW83gZv2vNhQzGiFVNyl006SjReTGaxEG+L/KEXZlcQRAwaN015UrzR67XofNbeiokuJIdfh/SWEqfm/yLJ1t5qZYwvTqFso90VizpWtFe9Hbc1x3RWdosswy1GK2IPC3L5pgk+CrX0jqIUbvHKtKnZa2YaavIoVHmxFyBOnZiXT5X0lfohNjaKSLY335RSj7uckiEk2IKe9o1cK3zr2uBR30CCUVfbTXVhTgQljNDks0oRWIUc7nrQWEwFWDrujsa0yowrDKQKNDgqkPLwqfLVpoIc9za5VbCzmlMYXhy65BmYATLMk4DLNr5aXsjzjggwtMM/WTaVfOr+L9KtfWuHy4S8x/MxDVc3LfoHHI24maEMLfDYm9K+cRTGPffLsLO64tvvw5nVyY6NtRqtENRwLTrKYePmYOKkjH3hxBZCYbJiOJ0S7taUKkTc5DaVkDjOcUu9oLAtoGO9cHpv5l002dYPCKAgsQk+TuzBQ1UuUw26C0od5EwBnL+VNUOhVmoLoByMUsqL3lTZBBrFN3HQ4KckE0fy0HjlSzalEL0Tr4ntxEj9OIbQlAzRmbwtcVpBGN57ttGxZbdNyW+Vf/WAZxmGW49CZrPwVW64m4eVVnjlYdRVG4rbCItzemvlXWGpRQEo24HO0EuCwqzpLhK16TTMkCeM14Pn47eO9Zw1huOmv09ngxDpeBb3VcZ/sP/726VNx7K7cyTaHvEnlCZ48lsYm6dwmw5evZlPryGbzOjvmchKcu7SZl4iV2cIVP9ezcevs2Rrb9QZ26mbZUM2IFluImjuiKGzKiFwehtAvHqT8SSbFVqvmpVbl5XhcKE8qmrbXceZfIDU1PXDLtYxzF0t2LQSKb0N3Y7TS8hxuYHYmJwMwEdpMyBuYj+uYicuIDjU24283I1CM2+zKXyGp6oECtyAG/faHdwFx31QSxz99+8eBKjE+wYsXQkwr5JA4oH99rlwB/frNN64WCvZs1JmX1SZmPAnZ15VgY145GpgdcepuHTbZg+vYfukC2vXsuBvZDTfGCqY06leQeX4MzG+9gnJ3KND6FnhSJUvZ1ryq2pRvx37MqB9ekxkRoPh1gctTSteR/El1xeAPpQtGPevf/+7Ba9F7TxW6XkoEFz8OODDwDWedyD0/82IcKc0jDoMwAxNKet3R7r5ojt398O3ubrC79+13a2qJ/eorb4fOtPHOF5fgCjJY5HT35QVotx+fYvH5hYkojNdIH3CSRQloCx7vaTYTsh3SevV4OxWJHf9S5210PUU0bOawmKZu1Q0YU01LX31VWN0PD8sJVFts9bv6iAUUZUgxQYkmXSfaqz1RcWBUU0g5Xfks+7VnEUT9ykRiXmg+xZM6wRR8Us3GNwsC+6uSjrNlklPr4EqxHU/1NIpbPCdSO77If4Nf/mi5SGGCEIbdG7QHVhiY1io9cCzIolSylOQKUnAHs+NVijJasQfP2TKHWtHmdRYbxguaKcHiRr8N3wxXrwtogZvy5wqlcUtT640jtabMxtKKE6eDfs5Q3/bhll6uWDQl5TlYM8022daBxViCH2iIxR4UCmylVwpMaomEUX7PeICVyXnFBRKMrgoYonpJGRwrAVD9rGD7B87mJgL3FOskprl/GcaXX9BI0ahpI9waB/YMLwKWe/471EvIAy5eoBlarj4fXMtqfRmXKtyVcVXXPHf3R7tdzbPB+hP/SkOD3lUYBeM4uuaerbvU9rGAL/0Qa2S19UE3dMq6gUOW1hnLvbHGQ0vdGCCTsK31rRL6i8shiO3ghztk4mp8eNaAR2ujhttWU7tdqgRgHk4CRpMO4VqIyibfQ/FBtsc/yq5lDe97+gP5p85zW+RdJdgqK9Z71uow0bLtks177UtqGlvbB5KahkdhFlqDzVLU1DSO0WQMYLNke/ZG7wKuvrtd7DfGTAT6uhjmfg6VNdqGkpKV4O+HljfGRBSSphW/IJ1c++4sYF70MLkXqdAkARi4drUhvyOchcZTYq0p8jsUCxfkns2qeOOeyoR56lrK6rYcoA7OZpHpmzaBNQDdCt60pPFXnuzp0JkQFwQc9KTya9gsnZyaXxa4fcxk0OKQhJm3DDPwqYK3aoR1w20wQPoec5PAWnQL+9Tn4PMOb5Bvb5u59mzI2U4OPmUyPZJ874EJqhXYvghEn6lAZDzgXySi/1KJyEgVkkhkC9+/F6HILDZM0J/rMEX0GmE3y/h9nFUFKAc54rO9vkB5koawd/z64q6xta8wvQxKlGPSjdHGK1NrxXadxT/9Pm5DW+ukITTLkPIQtyiHEIe5jKxXgLzYzzDzUoKu4D9VGrsjcnZ8Usn0fn+qdoPX+meqOq6rNv7yzqt3eLbyvrOmyXNwYWftpwpneWOHrsGP3jxTwTndO41r+eVfJOl5GAQoHoDfFCS+qdEH6lUAR1uwVJS1ZnTt8EDzy5XJRxtlINByEWhgT7YnzjG1hR4IIQf1Ru4aghA0t7sUmaBuo4hScAMLu+1IVqcd1T2tf5Eoj45tTQ43oErJ4r6sT2bqUQVo6JGPozbUnwkt0uHcwVMxASdQ9h7v6kDhQ20AhpKvOBLm3p6WKMVRPTLsBsDVhAcflG91MNmgsIfd4Ow8YuyNRmuh11jcX4zOl7yWiqafZV5LpbymzG2p96b8ktByq9j/ktTyHpNa6iE1ebR4P3rfet9737Xum2yufBq1wHgJi/KJnY8ufhRjR2UuvGrqwhQtK8KotYck5llbM1HdrSHfIaEqomrXrANx8U4377Woz2YlSG4SpWGMSNNQ7aZBaaa0p9a4NDn9qUNST6eotY8usTv1D4zl0NQLhPtUKzxOz0+2kDLVc0yb6tVNneptkD7Vq5dC1VOlUd1wBeaV14mf21Kc4f3QsRy1KN4ANYnZEC5U4nYu4UHlJKhTHh9moiNd/JCp245wbdXdGPnGU4cDeRtHWW0Bbd1K1NvtoK80zyZorIgDDxCd5JHlikXZxmBHIhl9E9wxUWfLKDPylKZSZCkHA1pcGci7SvDPVoo83veQYuEOd6ws+LltHe+1+R6KUuhDpf8i6tQJp2I0qiMi6QwbY5GL4PeHwptdRsU7x9S2sk0VzW5rw/5VleymI9k7N1VKfCddmF1o4CPqUtzYrnbxwbkJMT0gQY+kJEDYgkq42hLo0yns+ZNjkLMoS2k1mKrb3thW2AVjO3IL2psUTNbeVseK7lyxZwjX9v4DkutLkdcl7nHg2FrBtVy7coZp6aC6CB27CMzIsUe3VlB76aVUZyEbZ8OlMRDUC+s0TYCvNG8tJJZOR+fRlz0uHMMYSK3thp0IduGGu+sTBR/8eZSoKtIFV32SatRpqLrQCT55h7rk1XW86jLppv5MwhxciUeJ/hoEo3O6a8C+16cWI7z1KKauoxxtkeA6MMf+OYpMXm4UCKPK1kQY3fRyvURxbiEIARoI/WBrZ4XmxURvGis87WGmlm2Fe1eCqg1xNDTSBf6YY2jkhob4GblhvSBv0nd3j4QeKyOXv0TdfI5RN7oTdJehyD/jHDmmKspOLNnFYeVLCE79EBwdicg+Hg8/FMeTM+Df7sWv/CxengcbZHZ/+He/xr/a5DDnLl3X8qHVeW6bQBH8ahXf6vjZ2tzAHaDQutlu5mJbgkhQL5ihMdK7qKWoBcZ/TuFw43X0pXL4Fw/LG6sC3e5fBx/LLy6W20R/HSfLLz6W2/Wx9J7e/9Yry4dfJOsU3GUyR0J4iK6Skmigaf3Fy/C2jHZGmvviZ/jFz3BTP0ML+StroT8s6t+qd+K2nAtpTfvPx79w2+6BmyDgQXkIbsldbCNCKMzA9+KRYl5/IQi4IsHsI8gw9MvZYPLr/Hh4MgSdqfzcnf466r2ajEfDf5pLB4jFPNi4J2czPAyvE3BICntYNkFY5iabIIlLn4NbkMRjzfeRzH//852GTKRwD0/L/yY3HwXT+Rw9Y/TJoYqFFdT4AojOL6e7wUpI3obq/Ycl9WuUSDr7n5JzUsAWOxyYTPOKkb3n3h5UStENp1C2uBjvx+t8fDGBwrY1/Dq4div1fkrOuSVfyB6lq932SaUZ9u9f825XO+O3d5hJo2v0P70rtHg7S96i+AQtz0mhRT2DseprvUoxUrPGqATkg8sWKFzGOSDJu0yT9cp7R2xotVN1AMrLS75r709O+sWTJ7r2zhEwgMzLk1Jd2Fu6KdwL7JQCgin366M4xKXb4XCTQAqTKVDD9Ki1HUt7/bPT+avuqH88UBzUaiMvWaFYxmG2XiwQChTUsHWg30yGM6zDVsDKvz0EELEtSgskKRNsA1PFh0nl9EMPitgr/R3FrXV8IFTBxNpKVT5vtHiLgibRYyuw0VIUGqcQb+jAdtspcglCHyfguM6vTNiX937mBZgobuyfw4yra1IuDAXqO6nPvhOJQc/VMMh65i2o7bRyjb63k5uvZKbky9K3+2n8glpuCU3qW2ooj/3Zdb4pe1GSMUwWIGpeVTe7ZEob58p5PE3CFhBbQf8+ZfbzqYv93EAUbtbzmgZyq0i01QYaC7iIpjtLFSMwD2LASoLwgtUBvNnebzNTq+eSrfUO5K5NMreqpUjKR+mCiI3ClkLMkrS1DGzd7IJl5q/HJz7WePh659qB4budb7OHjL5Pge72zd5HdRsZDDYSHu/DvlL1ptuUC7gq9VTPC/0ipWdGsYO38qQRb1pMqU76HYWHpqsoDidppRbA8SnzF1rnTTjK6xSdoCzzL5HF+5LqTCzCtq8pfuMkQ69MkjOdf6eW6CzuBhlAxbYc6L+EKpMIDMAahHBYwWAyGU+oQWHeH4yGg/59PwL6oFFLE0izrlCbwRuAMH7pNBseA7a4vj4CDTTFdHxJFKe05LkyvC/T+A8zaGjfU0MlA9ojRZegZriGpgoPhf9rTMdHszfdyeD3k3CRJllykf/O7u3R7HcqZrwm9+HvdN7jMMt/x+EvYaAM2vEX+dqPBCg9IoKUQlcgG7XXnFAQf0b4IYbrwB967NcOZmYn/uIqjFEHzuN0ff4zum6KK7PGgNCIKjx2zaS4qrVQ2aOoVmiKtbigScKxIMJL3Q+X/iUermHyT9jRJzuvwFU7Jl+1Mpwo/SXKj9ZRBH83X4aD+F2YJjGoqjuDDys/DoRfXvtpCDJepgJ1s+tQ/hdW+nIyIKOTlO33RmdKaLxDr0R7B7ZVreT+jvMoLHOVZPYqFqLMbV+L9HQ24sr0VlLAyw8wwwSpAGXELLyz0u8v3PyRn+WEzbJC36XUgtM8Wb3388UVHXwWLrH/PP+9g/2GRuh9swTR+yvYuepB2ClDqcCBMFdnEPmrDIGpCP49Xflx5yhNllO0SOIga+7tOnExskiKwDdNuCloARbM1Fy5WhXDesP7eYr8t07K/jj3EEW/4VZWv1ZpRyYw4Cwvo/FsfjQ+G/V1RudSp9Pu7FXtTrz9/eKOo4DLTNNX3clw9HL+ejg+Jl7Bt2YrwjMbrEKD1RVaotSP+KOecTSMjNpmoepxxRBUu86usIPmNEJo1dzb3TWXu+FnPK97uvMtHVHpTlIxq1u9kPQkIYNku5EM3iWlgTR8f8ft3tH0bta6egxemTsu9487CvN1GrsgqhbRYqyWWMp2H0ilw6arOWA/4ila+mGMAu88SuApa7OPbKJrMcCRrdN34TsUeIsI+fF61dGkfzC8wTg9zHDoK30jJUlu8veoUhHuYZcFq/QiI4iPC0pAIUkRccCWvpIpq5qCJu/VKaoN3W/5oR7ZHYxW7xwt/CWqWUS2tFcQDIXiPCvWWupd4ID0bJIaUlVsbbaRAirGxeIFQj1Pkhxs+XTNRjqtpRfTIUJDODoituKz7e25h1PXBKqNxcIArfS6ioskRf7iitTTItoRPAaKc6hcFQsb/JJWGeWNsqaT2NzEY93ojOhvBscJOIJaG4UGYFY0QcvkXYH8N81ZMviQozhAAX6uEyjg9Q61TXR5+swT0SsseX8WRyjLyH4HTWvm0Y0cjjjbSPHKHlM+8ZhvecOpb/1OGFP2ZphwHUDgXI/yOU2JVbJKvUFA7+hs8UHfIdt0hF+FGxGFniDqEsPGhFAmArj2G9Yuzm0dttxhuytbjYWTWrus3kuIzglj1Uvyk16vgxklS/nL5QfCOf1MbqcxE8uda6pHdbeBPGqbINb7RrpoZOuI2N50kasRoowD0LPr2zwu5L4TH7e1lCGSm4MwjIst5XYZfGB7REjHhLR2OZe4uWO7W2Lb9c+w/dSaTztfjCgzHJZlhhEEAUdmIrk5LT9EeYCSD7yksZPeZ0JIHN4NSerTDQ0jhncwfe6WKITZx6nBx/QQZm2IMi17E+ZXzf9r/P77j7832h7R2fSS5cpPwyyJO+M0AC8Cx3cyB8CmK9EBsQUQyFrORj1s3CwmWp8TJDX3jc9WaRRxBOenle2UcQW7OrsUe6GrbcdA7z+HccmyrHpytR9Vr7OVpnL00uxQQQMzRNmk/ktJYSHCY3BlpjBBZW9/VNjAZKZY6fI9hkfTWqGDsZkuzGYKpRp0R1yg6rttUcpOhmXdXJvFa4xTr0VmSuaQwjxmbBLbJx6A723ZDjlYrvLrJmkEq/QU9brxtwONMpJyaqoR1SuzNDYRSvDVDyR7zzmSxsfy8Idck3xVfWClG6p6Yh1uJhnJHZIo09CUIK6tqX1abEfLTeFKKcEdITdhYBr2hF3F/PxKtfYyB2mbidDiYoMnf7FevEVA9eSd8/zQe+r96DUi9LThfV/8uPcd+XXvO+nn72jj73DrxmX+3dOG0rEmwqvhkxUL9J57+9/t4lHy/e92YRjp497uPpkjh7+RWRD+64HqDmskq0O4wfiOqLLaHrwN4wA341ujbIaXiduJqFK1jFCM20nLVDXEE+KmTZFR/gjpiFGG4pysMIlRo6UcgOwvGUFiOMohLFSP/Ahre/0s03AX7/uSpUYnZbExNUyqEABK9y//94KcL9Wldu5nqEl7V65tjU8hGc07ZOMaI9UEPoBhYb0/epcoPygkHviHiw6cemMKnt6Cf9xGjp3Et7sSiKPIjBwGs2QaBtTDguZeI33vO+NwDf9MepwVy7ZIopIbMUtFrc+Sj8OiScH5Gh6rQhLaioeys42knFqciSHsBwtF4CBXBTUInr84WFi9d84xU5D9e3/X+wv/ZfeZPvcjhqf1gMLkmF8siQaW3rPgKruFKLnjs2Hfi9ahJjpu5zhJ3q5XfIexH+WbJnF64ttMziiM8gBDqrF3exEQQ+2CBfCbRcXMxj8PRvPTyfD18HjwcjAtxsuoCbncQqVuLDp1OIpJlsBDb8/Y/HiNA3HUOye0k/RbmP7hz75mt7vBv9ZZjs8chyfTbwkmy42jClN0IUBqiD7cYnCLzmHF5Ed/eOjtPdnd/QwpW2IYCPPq28ppLgZAEDZ6o3QjMmMfxj8l5+xyiSW1gTGBN6TgIHEkPyXnJEP/m2YlKpbSKRm4ehtJgz2oeOrZFeJLxelGyBId74lNsnwsedYODQMZZtKWqa5ocXfIxVGM+uCuD3k99dNv7Ahru5MQUKAJJjXQ1FY+RbCXXHi5mmTugCkIu16fNVAWdxrGMRLMpadhzP/BZU+LHl3v3riiHo3eDtaeDTP4H1Q6QgH5dpMCQA0Cu+CaAEOSNLznyPPPsyRaQ6asttdY4cgUo7MtiyXtzmaT4Yuz2WDq+eJND0AoGpVlkKJPJ6bqisJgKmdKVozWUmfH5wF8Pai4Qk1jVRnFV2nFmITybFf/bXePifJYlGk/UgkWxcqq359Uf8Jq46Pj7sv5i27v57PT+XRw0h3Nhr2p95fwcXw6GM0ng9PuZDqYn46HI0XUrz6WVoguPJTyvD7eu/dHxwvuRqdxnllh+rW8N0h5WEYg81n3JY529kJdZnCW/RiIRMi6/OKacI3BB/X6CBbVS/lf/fsutKULN6UK16yt1VKH8AhzdWQLC5hc5LH6w8mgNxtPfqVJH286nkShbi6nWwtgdScvfj1lOUimXpzEjyseXBaCozoWei4Ud0R1MTaVxge0WOfol7Wf+uBcgFiygCk4iMeLUtBod4FVjDlKl2Hs56gLaRj9Fcg2qnYpEW9/Ss6rbxbaJAgzQEd3sYCHYMlguI4Xz8M4/4EJ+9PFFQrWEQpmfvY2szR+EebZT8m5tlmQ+iHTu6DsxfVpGi799Bo/ByuJCOQFHYE8MMTFViqHC/SmS/9DuFwvJ5AxMFPZECL/+iSMojAj4R4Ke0KS5X2CminK8wjB/WruAmm+luvl+DxD6TsMmNjeJCQotpNl8lAdTnlXTS3lzTW1VG6wQwe2yUYozBvtsFR5v+uXzmQCEghhNt5RHMWirltGDyN2i7r0gQsu/Wt2VwEsFsYBuywRpffcOyH0MsXsiC+OflbgQu7/g3dC/u3Qs0Lv3nM12682/MGDMoaqttYTopvE3pFMquxsPmS6KS296Hy3mbTTSFXnZOf8FBnydUr/hLD853xOznKPiLmAieSlVs3auTYVjKlppPMFDslrFsYwbIOyIbYEfacbBMR4dUNts8woHw7kWLnhE6ZMT4KmfIh9jTKLV2l9qxNVY1jvDxekNIMM4VdfOTAJFzFTis6zDmk+ckXEaVKwEae4U1on7TxClEVX/JxwhRhcQAoakAIx5K/PZbZPfy6XhfmojM/OxMuc6fkfKxT90PicXOS2ZlTZY2pG4mIBzCOSWkVbGMc9sZZyKUqZpemkLHOhcD00rpTO+ZCEDHUE+acbYKe0dyXR7L8RIyUytUig/zkYInHbQldN2LXiPP1gqP8gEZipoYR3U0PVgXYF4NAVgDrpIkUG/c03Ww5DMXN//VZK/X44ND8ZNBgRbiuW9EAWfvWFSFxftBbuVCcvRvUFUic6U7rvK0PVNDpUNqD+k82G++ePbop2NzEMOwiES5Ssc9tDZUhL2DKx0VtBQrAsJ8/fkChoSQwvVaTRR0Lk/Ru0Eas0SS46lUxXG4ru8sP/4UjwOJiu1JPXW7zFgPsZwzWrNFxkXP2zeGEyu6Fa64wfsJeXKVZkFBOWlzNLumnqXzdbrY3dtYhus5vm4YVfVKs3ajbpvhfPZaUaENww+bDJOl0gk7bwNMnyKdIqDGnjhb+CsnxsWJO+rgKkSYVVhdVB4VUB2aiKkyG/XfUYn2V7yrEKOsvnvIrCcgsd2srtSqjaZBgF0cPDqKd+jOidf+nlgALDc3AFbsb4NYj/9pzp/NgsKZ311Ae5lrSyvw0niFjoJ+uY5ZmWwD5KogClyncD1ihJjSfoAqWw/T94S2DAKNNUxxzEa0ihkaMTaAZ+tzKqQMRVzPjKz66mKH9O7O10kjC+BGs503OV2qgpV4wYQymLFxtexkmKer4y9Jgnq1CvmMACSSvoyl3FFLYBCqz3rvwwbuLxOuQXHKmnfiNIuMA3F+mo6fJJI59gEmQpaw0yJAo0JdDo8ukN+I0G/cmK7fxkHcdhfEn2XVpEG790Wne4F8TtXhqUgOSEQNKbGUexaklzkuodJZJ+CRxMNjtMumD68mni8zyo48ShuusDJaNjkxOFlXiEvKluUEn08kTUJ7ClVrldECLCuWjXce5CbKqXFZ+yI72iC2jpv/l0Nd5d1C7O2ES9d9ZmucNENHiwfI9fiiwDHh4DF0djawzjLPfjBcp4fjNdYjHxah/GGTiTOV7tG96uFnYgLqjKEjZhB2VWsKrDAWqeftvJF9dHGICwXldxRnv4xdHMPGDFj73UR9FaHXuju0Ol9WivSS23WIlMQtHRkS+YKd1IgDYCq5q3MrYYpHV9IBU9PeAZIbyKFNkp7YqCojfx/wN4puQ3rQDLSL7grNxayihe0bWXRBFa5AVKMe9uUgDaHklMQMfcruzMwdN0b5puWxY8x2GGE8bAdGTwdKtIL0+XR1RomRP/EUNDlTLfs1QQprMP43fJW9RLlicov0os6UnY/pgTPYFTIB7ekk7kwiZC4KXRxdeCk4xsBxMfOAuUs+705/lgdHYyfzXs9wcjU+qhGHvwYzNJket+GOdP9s3wgrN9AqUNVijNr5t4zW2vgXlRw5L1pbeO4BkOLpgduPTT0I9z+qMBVv4uDuMAfcBBS/Svzw/JIui/y29gN/oqka+Rem1U7DYbIxbvUIfOYY6WjTZZlSU7Ebf/SEyC8mA8oCElkDu8nlMiJL2EXLWN8DibWuUWLLTY9hqQEKHhkH/oBhRZWsSqbs0I+yJI3Yg7WYQ5XgHHK5kyMFflQ23Yw7bo8MYlniTmymSbwjhJDqdYT9lfnoeX62SdWZOFuVE/MTIpRKWbIaZ881BiAgmz0fZ2HUD3irKpJE05SglDGbI3FAy2QmTsreCCqZGYxUot7GwJQ4UIB/4p/B9uB21EmBUcCbcOdJ6V0wyfLNg0Y1JXQ6weiiYoQn4GFERCtlx2+dNW0pya4NfDrYQ3MwBc6UBo4AbF2+gjkFLx9i2VN7Aa6tUjHqIvO7GuQ1tfS8P4DHYL06tgnkroG5gZqbSmePlpnpyz6xViLwL890P8E0Quwf+hAsRpmlwO+6p69xSBHTqJAk0KG0blkQvmxndQC7xDwGb8tCmApYjk4gPUNe7dkFh64xMOvBShtcDQ20K0rE8g7fOs0UviGC1yBZrxlp2EGdTWuL2vqoRlCwITCiQp70WSgB2uuriSSFeoCnpsHJVoV0OMw/I+B6q1nZN3a/TD3EcowG7BVrSzS0RVSW0pu+/G/iq7Skjup7ICi6vIHqqmSlTObkdPhUdU9BZC3JzsQEQ3uQ0T0f3ekacperxKk2BNvEFKVExVTxklos/vpsQOORrKMJC6ur6qRlquUqzuPBV6dq0+za5xlFpkGx5KrU6xOC6CatCs/isgKQ9GdXvCWJnmGVZbHVe6YigMNkVcTU3BjRRvRo0yzgW/ZT0xG1OLGkelGkuzB8OdbqLZKQGAB3JU6WyoyjGrcPhKrHocckAhqZ8fxpnQcVO96lY0NQ01VxafMO99Vx2N/rVqu0A5NvS36K0/bzEMWymtuuFVpLdzub2s6xYMtyihHmmU+Lob6Cb1A+GRZ0EXhaDwN9BxOPeQFnEsZ8MS1vs9MpmTOCYNJiWdvnAj21GJKfJludiONuCK2FPbEA1iPne6QoCG831TG5UemBJRWe1TJtuUmVsLU5S2y67Q5vtpZ+fkHnYY0m78Kp8IBgZTem90EdhUqWYkVvggg2nrJSFMsOoc5jSwZc65xuQyqj8cOtZR9RwykbmFqljdwAqOKSmuMnJluGbeFEOKvt2tc4thjZHSGOtwQdU1i9YzgdZgpHVNm/XMmDV1XUwiFZzruGHSU31cuZVyxzoPVVi8Sq4I0EUYhzT8W/suXaVhvAhXfmRqJKniDe38BXX92+iRKwGs3p8+b9JQJ47layn1L8aGXWbtVINQQlpnKB0Gzm+p0nQckrbXOMMjbemJS6G7TJP1ajvgvSRDbQk+oH5gIRzFjJcQfGpfdMo+dJU16yFro5CN/o6OMoRAR2oF3UQYE5DWcPB5ewf5o8HdDW4V8ttvfziu2f2pX1qeuHig0slwY5G2fauQkVCqLQL3qU4VVRW3xvvV2kxI11CnTn5SpElhLNbE4UiwYNbQqO7IIL0bKPAoGHepwBOA3lSNR4bYsh6PD6pFkaMiDxaeE2vvTVwcybxtrwFWwltU4GFQ9WWD7S+Pm9Qp3IyFusFV3y9OtwOuXnEbcNftA8vCa7PPBuI3Sfo2jC95WstbBPzTpkS+yR3i7v9kvVMepNMT2cCb+zAp8jVtRWlMObeL0liUVVzac8nbpXFxpdd+zyvlaZFXbpYNXEW1HzfeHma58uMgDAD0QwJbZ5aGy2rQOx6Uwjb4c+1HmiIcfDz1cc5oJRkUVNK3qlwCpLKdqufLNiGCt+JI666pA0vwVbhtAH9Z+1F4ET5YSBud33Gh0y2i9MB62FT8/aGdNdqOnK8hSKLjCzWG02IVm2/uD7qM3cLoOK8ZLQUJHfa+0yWHcoC6BPnMXITHdQlKKnWApiA/KJWg99h2hcNIg9T+aAkvrXjFbEaVQn8VbnaK72I55BtWQ97cX8qkeKd2eawyNsZMqG8tUsJFcstXGmJ3ZK5G+zEHt41xAts0BJZD3PQCxcazuZwVaL4lOBf7QrFBXfMMZJC9HjyJIX0H6duB+gvsAH39++9fKwYr8FsM8PzQ21UC/iPGpvLT93zSomr2brsYtLZoZUO6Q8kVyox3bGVXVBWTZWrCoRo2UlKOs0rRKXckVG4296tZyY5kNhZkTSnwxX21rL5Y0XjnkjuiXT25LXIQHucuximXR5/lPlrpg5PvxDNoAydVnEDLLYnBdrNu/BedjHK+D0Qd4esk/dmes7fHK3XQvAeqpKi6w2y7Teucc4aGElM2HWXbPWUdQNFpmJFi93wzN+INFJuq/LXe1qPY7o494EvQNdXWbd6BN8icdxMmwWj0dOvMQhr5lpiGNMfWmMfGXPRzZip1+UERZ3EDoaAYaJqkoDslWT4Z/iJ0kfMK7Wl4eZU7YwqXYlphvyLFkvvwqUlG7FDamCXNOlyVDAEQtrQZ3zC7I2Ds6F5B5CWEG2m/f2+lYrYIsqY2xpzqsXe7Yu1t3T1mo+MnLQWIr1iY2OUJK/ml4XqvxDtNGMu8ldpHLdlJDIfTq1btrlfqX4D1jbfXMuZNIsvZsiGdD3qPiZOKfTJYv8vwkU7YPQ0ufx6GhRMvaN3Sb9XERkDayvvqrkMcHVR2kqNsgJH+OUU5Aj/RXgMuFXuFG2lXk8JwceWnhVeEPJpeoUg6HB56mKM5MmwMir0YhdIegfu6BE1XvZTlW6FudKgJv85Bnfr0cfcR9akRnmqleTOld7OldXNI57at2NNcqK+0ifuaUxq4uq6vPAlu78FFxjI/kXIVGxngCje56xA8XTacLcfqqZJpP9LK6EX+V1MghMPD3c5Wtq7Eq5eL0ihKWUUowI45b632zJMNgbU02mSckVJ0eriCieRK/iDEE22iqG1pwrV5gI35m+U8+reVkJfFrQhgKdv1Q2z+8tPr51DknCkIfmAFuqZhYExkTYu1lQq1ZarSiloV8tYPfWnV2zn64g5vfv/fNG+EuLTPJnmEAPSWX8zyyHViYCVEmp/ODuGvjikqVlvITiEAfrs5Km6S8NUIs0u+15vBTB0euiwwYYvA98Shb2kVa6GCaynG7ax+OIQM/yC+DGN0Ouzf7g4U14e+Kb7uSDGRQyMocv2ckq7ekiFFa8/fpKNTbl1VR4kgrSM0i73fMdTQlNR2xXXdmaXXL1H+GjQZbll1+XRuSVKTdS7M13IBz8GvVb8iN6gcvJpdnQ9blsCfHVJ46B6ifiyGY69OpuKPtRI1yFxks1wNnzQOzcpXjPf+CsXg4QdTjhImfxVvFNLsLswfW1JJCyj8r0hfS5b7mCcpeQApbEWp75ZehqK6Vk+82k35qPKgxW3gLnBJKYsN29Ch82qCsnWE9VrT3qtBfz6Y4yfKaDybT85Go+Ho5ZYiy5Ub6B2S/3eGcYxSvmIHJ/2SM781sbDxhcdV1eklytu65B3tUuLD1F9mtOtvf3g+Cw00+YyTGbZV1rNBhmvcuEAvVXzCYCx/crPVISg7wW4y6vOsz5r+IoyDML48ivzLjA8EiNcUsl1HkU5jVt0T9oej/MaPWyVXnOGpAfiFzNxum0u+CeMgeZ/hhLtLjDUv5FBQvvi9ByE8+OX1jdcwcsnS4fJ+/NHCPa2HyfSK/nKWbvUsvUQ5w/uXo1TvKK0o3rw/1yi9vtdzRGMBSqIEPTrWeDhigaZ3PVioTvw0u/KjzjArBnMLjWM9cXX2CkBkjLre36SQ8Yswz35Kzm+tcDKMv1HNZFnRXCmHx+HWVDFWFNotaurykrXqrD/6yWhBwM+pUueL4Wzq/Ss5Lypwev5FDp4nIMpHpNx2jaKcVoKhC7Yh0TqffgBSGACDb7GvDF/4i7eQeykOesnq+sSP/UuUekv6f5UKewjzyt1gUoLCzSydxXRNNUAt2GHll6bybYPzs/aS5XS9AM1KU1MjGo/QgfVgtL14Of9p/IKYNbrHx/Oz6WAybWMlECxOo0VsdKPoMaS84pSkfP5pjhLBmuru9xzSEm6QudgCLiFOBCZN/nuSOmYmtIZPaPPV6hc7rJAahtlkXMFK5QsEcAT6NLEpfTHive2M0Ie8ucc3m/yFjmHI40oHeV4/j6sjkRZMAyaymG/qEqBeDwRro6vfKEtt5Qr+V3JuUKKdp8h/Wxc+TAZUePjrL7ZZIE/s3TK4N04d3jCfPT8uIpQ9FOfpdc3tq29eHMb5aZ56yfuY+pDAPzv/RGlysC0S/ldyDmL/GKZowvHCk7VcaZqANh32JbnXmFAdqISuSFrS/aaM165oG5ni6dsUD200SW2eipmN7R1ysfs0T5nB8SwOCc7vIb8xfwWkCPUSnN4WLW8AjSLq1rq9DDt2u0xNM45j9oAHZZ3RyKD14KzJZhir6eG5mw55wtTvAUn+d+E295BdS39Nfd72FbwHPhNUF+R5fF+WFCz7O1hQ6HvihlUldGReiKzqCkh+GIESy6Bu0cmqpo3rjU+KvaJztCkcdRUq/dQPY+pFh7IX1yVPOu172ea4h7bhtodjNGF4ofB9EbyJP5S78PiLn9E1dkE49cNUDSKOy2DQuli1HC8dOmYHT69ndI43TY0b5uMjw61AwjspaD+j65Zdp6NGbMk7KOS8yoZCKs0y7B964xVipKfG5ulk3BtMp/PZYHIyHHVnA0/vuDL9ddR7NRmPhv80tWIj/nI2mPw6Px6eDGeD/nw4OhpPTrqz4Xik3gis/FF/4pjQ6BL4ci3Crj72NVmheEANmkyYeolyiH98E8ZP9vG3puE9PEGY0fs5OsLMmuIc0G++tR0dc2rITHwt5mZwxo/W8eK5js38YBc3bMymdeu+G59uUMaHpa9DKc72RyT7X+BFol4OozMDGdQRmoV5t7b3NWXlj7f40ucl3MMsiSCU/jE8+Pi9wAq5L678+LK2mmaG0mUY+znqxsEE+dxHn7E6/U7dtFxLL0oy9MqPgwg5z6J0gGB3Bkn27epu0vPjXhJfhOmSo4DxGmxtyemvsFGYBxCl4Hs/zImniEU5X+4PPHUwmYwn824Pc/X+YDQc9MFoVYwJjd50h7P5+MVPg95svnvgKvvZ9lG+z0xC3g4fqkQDbW+v5WJSqq683k3w9797XcAisaRcYQqBpxQoVKPwHfLyK8TlFo9uImTkyL0k9vIrP1cNmYFhczrsP2bcgo18jkBa8PwFPo3xJf5blnkBikMUdB4pdcPM1vTGD0EB7LjZmmx0MMhRkk7D+DJCPPUvxblGcfq9R7ybOyf+Byy7qS/0HROZV0lcXNYGNY7IvtrZWmXiRxsyP2Eg0/vaxET4qfYOzRvxZHd3d1dRvgf33SmdWxcJnUxKO86GJ4Px2exW60qZcckKWTOcIkeTTb3tN3ACjXHMDDVGombrFRsNXKKXBEhRcfwlgjra+GuF8YGumXVVeqSzj9h9cDY8Pp53e7Ph68HtKTjMaJGCClPkr4zosVyVziK5/NpSahnQhxUu614RwKTHg/zJLFxzAwg6rb6Pq9db8UDZYTx6OHrdPR7256fdSfdkMBtMVF76in7gGno0Phv13XfZ5YhYnh11dh6Gsh4M7ANbweHW3MmqQ1fBcdPW0MCQU4PSpjpZU8GyqwPVXWvd00oODtukx7Av3pvZ1EvZ0bLX+TXlFa7YaTBHKy9TCnYpjinmbsVA6kzNLsnW+RAa9aru6Nd8c9WqdbfZMTQcQcvxy/IwooFa3A2IXE94UGnDXVyC8KNmA5Wn0ZGinHkrC7FqzK7xJGrCbeofM9ND/I61jhtmpalYP/TXqY61PaqneNbsOb5+I/QORTgg+ZFCn3m+vrgwm+fXPOpawVHezKaDCocdfHij3l9hjrbGce+CwKv+/GY2nXdHv86ng+lUq+0E5kVWpf+Ol9Pa7i1dX5CdXmc5Wj5+HwYI837GMoB9OLjbVC9tstXgrQLeK7QiNA2C5Dsta3JdTi7tubORDvjNbAq28xO0TNJrLWXQluASTskIHKqPYT17+nNu2mai8lw7Zprf/CJ33UTbXS6feG4VpQayjdJPKAUiWKOuY1k0srtZ4tyG4b+RoNKZhv9G4wtc3y25aMKRZWYLMFTMB/9409LlT1iLCRR2eQKFDfMnUA6HnZ2o5Y381LQQFMkp8d3TZsv7hnsyN6MkvmwRiP6G16wLdFUt2QvjiyRd0lqh2vnV6Cq7xKwXEFxgVhLjVZs12jV3iHEDYSWdFZTHwdp9B2covUr873/3ZldIuN1x/VzvCo4MPFYD7EUxHfYPgLRzLDR6GcqyMIkf7wrkvvSv4aXTMXqQiAs4LfIEaErOyNRe9JyS6YcmZ8bbdZhx4VlU6DrCYDc3TllgcagT+d6KCCdeDtKJzhPNa1gNYN94DeAJbNiPu59AIqWb7n3c+9SxZhVRbHO7/v62aplPBAGaZ54Y+Xn4Dk3DwJ5BQ3W4DMpQM+IXePrMwddIMPWiIkfEz+hafVjuweYlrlTt4OoF61UULkC4Ph32a1q9isWDo4GadGBTa+qSN3NyKu583Pzm/kdaIU6XfWLn/qU2HWgcOfUCHAQ5qoZdorZMb6RVugUlVSx2+apvpsDu9HRRO3W0VbSTQyA5PxQuL1nK+ExG/kd6fxptMBFphXma4vkp+ODgWQoF/Wz882BEHGWIPgsPce9PPq4rUnPt+rpau4hOlQC4TJ4yggZCcWH2YcH11MvN9VXx8ABwX7U3e/jv6t/qBHSNfxJbl0F4M2wSfirv79+eXXMz/lEhkuJKp+uV6ATkq9CJg6j0PgzEbhQli1cvo+TcjzTqXPYSCuO8RXdFlTDY2UuIWdncqM+BCh2p0fUigj9knRa3sIJKNxeMXElqY7KykZYzTRl8hzDThRhH8oA79JrFT7Wfsbbtoe9XYQaDdAvwdIAkOjd/rm7Rg6u6DW4RO59Mcc/1nx0SdjbjTG6PjZv6iInhOIxZETqpKT65Cc6iSxoRIOpbzKlg5LYplDtXjCBuLvm097uq+w9x/SEgCJNPw+BNEybDPIzkNNDWrDWemjsXpRgqbiYcsYo+LHBXE32myvbgWYvd0piGbcZgq1ftmWJxCBQ3f0QeJws/gnNXP/eFGIxymmT5FPnREBtLK/RAs5IMqSkVeBK3q8I/tOZNoU2HTtUPM1AcBt04eA0+fteqxMqZmKydJDzGORekJO7KlMznNDdC0afI01BtLejk7Tbc6uEtgbmjEXg5TLoGBRg7h3WiduqaRdgGeiu4FLIcZ8AHv6MV8lMUeMGaBJWm1CTup3l44eO83H4E56mxKYHhfC2/rP3UB9UqKuhMRzo4HIevB1tPkosjctCkkJ2iTX1DCQXup+T8lZ8B+4Rspu/0Xinb0CNJC8GKLXtAm4PJZ5OT9oCXszEPMBzNu0m7UUoZSf00I+/foNnD2NrUB/ahbZA7q+XqTpER3s124AjT/+BNuMENVrEx3OG2DA1+4p/XNlEMCv163MPjFhPTMlQxxl9EGCmQp8m8B96gl5cprqlZTCgvZpZ009S/brZaTlf/+jxisS7l2x4FPHe47tKfAT6GF/0wWyUZqhBslCzees0/+bjT63jh4ipT9ADvM1y6pV7SMqecSNJEQ9CAX6aSEv1Wbx09PRRAeWHm+RGY7q9poDKG0FEnoFocBNUo8+e66xsHH9BinaOCWqZosU6hvDH6cw0Cqn7VrB7shmZ+HmrzU3LejQMaVgJioFPiCaKBsGed2LM3UQWtSJvRvi0c1JWA7wYqSZqlYqxWir0bkJgWj6SosMugdw2RSfS6M1ismR/ukcT1L9CNgKJZPfkwE0hcZyi7Izfso8i/PgmjKMzQIjF2BNUMPQJTlOcRguANt64nYQwwFose48BBDIY4ggYDimtTy+9vqkLWXC6lrOk2yc+ihPiluiC7novpQHA6M2NELglF7PDagtSpXhqgLevNNg3ikMbUmwccPPM3jua4Qc09plUiedG4oBIkKMOmLlJAB+KH+YtAFGJoe4sNflNhcYfNeZomwXqB0m6eo+UKiF9jy670wHl9UOAuZd4w0SfD58JfgfHOSwm5g59mRlIMXayjApcrCqbnk5W5Jv0E5NxAlL6tRS44c+IrVMi+tV+QNa6N6gOIMpLXNCAz4ND3CPSMw7Df66nblVaoLFmnCzRJktzwGcpNtRURSCRD9XWuD8q0PM2wC68I77biEsVBLbEWotBoAddwIUj8ubpIEVfecxLTIf32g7f3nfc3b293/yn9X30cjNf5+GICiUIETIizOEUdXqyjCOjBO/Rg38GKd7SOIvh7s6AWxRpdbqBZGi77YYoWeZJeTxFURMiTtMnm1NgHNb30wk8ZbmmT3yTp2wyMerg2baveBTe8jJMU9fwM3cVVR/DtpbAdIbnl4H7jr/X3bCkOAUXs8n8BkqQPePSjMhveqq7pChFprrAHndOpSTQAVSmcI+wsF2frpdVDTiDRKUbNwf9v78262zaShuF7/wqIF2NyQnIkO3ESK3IORVI2E0nUkFScPI4/HYhoihiDAINFspL4/e3fqV6ABtAbQGrxjOdiHBG9VFdXV1fXKvj87r0VoStc5oGUwoS9nMcDFM2R79h+PKVfy4AzOizThIwRMp+hDKTCAphegmixFi44jZJYWshJQVk2k02g4gj52GxhHw5pePPdRzVPqRQYhAxM4ggEqlc3shLfvrZdDx4Yuggo2p0QHKNtgixsIkQO/UMUGCW9E+mN7tRMKk8VSCk4WvWR9D0pllvq3RWS52PFuQtIBcTn0a4IWpAKDGbnhG9B5lJEANNzqHAfJ8SuS2CYk0TuAqFSf4c730qOyqkQmD9GTX6vRRAIfiNdcnLiQW7jy13El4f0XU8VOwz47UQ95Kh6p1rIAN+3S8W7ZmsjFQF1CVMxN93BqyWxi89e6WZsq29GsbSfsnxhBhcTgR87VxDPsldQ8Ar5MdF457wvaIPiDjCPObwA0k0VzW7sEsZyZZCi0zoZdF/sdg9C2C+Bl+Ai0LsGVcO5oFeG9e4xdi2uHP5KQh1hrFfViy3kV49l436wunR9Tdgp10+TeZGu7h0BsWPtva/k6kq33WF7wnZeOimEirBzle4k5PZCttfkwJZAkSNLbK8tTC3px2SQQb61wtKUb9g2unXVbruKI5o/rpgGwZgsXsvhbxdveqeD4+HF0eh4yOedzaAeGcU54yihI9dDxl7/xmjJP4bItnE5Mas4uWcnqE69ktzZF+GnS75OUeja3mkC9e+qnADkRQiDaDg2XH8ZTPfv817ck3kYRBDqLX6cWtcYzAoO8IUHBH5HDfvnk9Hst4vebDYZHZ7PhlPQROLE/MLkCKeBP/KXKHRjYgQh8n0v7SK6/gs3Tz9EkBfN9dBb8VtRJuG+Hp4OJ6P+xWTYG0hyQMOni/74dDYZH0uavJ2MZsOLQa+v/D5+ezqclEHAx3r6pjcZYijaAhltwSGw/H18Njy9GP46ms5Gp68l4x8d915f4IaT4VlvMh1enI1Hp7O2JFKJ+JpLPO9yqM+leOjsGftdm4oO5aNwt2Fg6YEJ0TwInTzvWrs+RD2DACHzmJXr1kHN5XoIF+DkV48D4vAmzX47G14MRtOf71nlTpdK9Va25bjRB2vheqa5JzHw6Wm/mPVe42uKI9pDkt21fPbxnZQe9ZktCZfh8dV+YrQajuUY3z+wTc0i1F3YtYwbWeII6WYBCYPRZNifjSe/KTLLF7rkTmardY/eelJK8AO/E4LgHYFB5irx7LAKYTA5rGgOIRvJOH3zSbXt1stgGtlLkpq/WK7RQALjchaoSdxI7KpB5dVlLMiok0UmU6ZEXjvN0nIkZ6TUrkuknfHi2PWJN/aeyJpKp/1B+fVV3t6iapjPvfwwZ8Vz/Q8kewLEVeC0TG4EmuYIklNhI3eYRCBmYaV6hQsj//ohXqeymOvyjghl0SebvwtyUL3bfW90l2KziJBUQ0QjnLsNsXQsWMiDMUV+V6tJzyI5mdM50fdpjgEUuJiUPZXUGSK66Vh7TMnxKlN4dDqmqBQAa0gheKL3G7+TJdWP5XdOZhXZzq1jcqeId4ck+WSpNzjkYCddHlmmu1F/jaI9uru9qSEp9nBg2l0KilQjnto6ZYIiz5nqCgXK1WxLJiguSM9oJVUKpvYKv6Gp/eIExbZjx3ZTUmaocOO0dc0wMoQucYXtL0rckntLI6g/zC1B67/QCsluHFm9/jHOL0AsG6a3g8pawQKnhWkmFR3rUliOR7U3oYbilrWNc56oHSAxg9KriZRahpINRFiXesvx3TjXwWiBGXpeK7Cvlwmr2taMJQWNtvqV0KySayOSLNS6zhwmRCJEzQKZJqZBejcrrRUiM9waTBcS+9qdq0Ep0EsjHehaaBvCVxfWb3JAltmzRgOq0n5W0Xxaf/O/4J53qAw97PV/Pj+7mA5PeqezUV+07m1pTuHgLo30pZsk9Kik7ywbBirqOYW568gijatl6R4VOQqvagfHNVNSK43slA59OGxnoXvteugKNRtTNEFRHITZb8WVMwO+Z19FvJHJ+tFqjEf9UcN6aTEHy9U6vhX2jhwH0sM3xi8b1lf5ZUAS1sHLs4b1VXnXmr19aE/m/spq7O9+3N3dW+zuLRb7+/vT31o1eh326vQSgt1qCFmUg6J56K7jYlZNbK3PPlKTuzyFDsmeQxnjIO03C8q/CVggoLx8EKaDwfHFZPjLCHLbX+yJfQYzGHXfj0UZye7vVBefAhFFDAehNYd7wjjDvd51g24yDvYoX9H4GOJvA7SwEy9GjqSRY8+9sxBFqFjzgKcke+4puiumYGnvyqSCY2zEorFq39ne47VpPqdwCV8/JEwmn+dJGDgkBH9gz7360HNIVzdSf1UvcIebRfQdPtcsdntfZsHiwSJ7FoTWAJ53xTpfplpezADhRkwi7P2Zbi+oBcpLWEreaFOqhCBl7wQyEYhfF6lAyusqxMYpWFSV9meT8WzYh7LI0p5tMdkrxai2kFJq2awJjutZ1EwpK/FzD1cyp5GtWUFNSq3Bpq/PLLtYxitqJNvTRUMVHGHNXc6Jr6wiJpOGXdyli335TiVzaj3rczfUbYzevcf/MPdK/BMZizobvle/72jbmf0BTTlFQfFZmEQgXzan9gK/BanuI7IXSOqtB+Dk29PnSpuodluiCaDxNA6RvQKZFv4h68p+F4hgKRSClxko73AwY3eCbIG2+evd71/I9O4mBXGDxSJCsdgllGjrmrTJD2Sj6LZUqbsOvB+2Cq8fr0ORafU2RgqPegJLW92dgmh1aHOFTx0BrYZLXXZqhr4zXpC9rex/RtWjyHfAEkps5aAdJfwN200r5l2lm/XVAca6qVGV2xqwL5N01J29h1EWo48kjtgIEwIlMXPDxhqjVMuZnbLuAJTRYZBEr1EsZhcbmsy4mWWhWN1pPcvZ3duKlMBrnYqoop/mVKQRFA9rK6q+oGLdepPlVLcVUULgFnDvxiIKQtaw2E8wU1Mz1f+AJ1iBLCiPSqvBy4nEoGIjZ60qiY5lECXXJQTrJTGaLu1n37xo4kat1r5pTWUjKlYcXw8tCle0onHoXi1jmTRLccIASlOp4RloV1F1Fvhe8L46OCDtCz/LOmOBzf0TvXGvllnf3K+6rsfBTbkn/Cjr2Kc6KCib3j0ObgZ2jOC/rYPy6SWjSnsYTQGrqDhHrotsEqxBCF3Symwh8i5mk5gtRd5HldaCV87TSMq+7Qe+O7c9SIm1sn95Jj6h/ANHXXEcH1RlkzPPjuEeUD386EuKvPuEOZl58VjicJhr84pP6SBqLU85nl+bpDI934TNuXNgvag5V4qkuimGRIxTUzFasHV5gO81zRCRczpp3G36QHfcKxRhb0zscQkvdZeMrYt/N45TjNHHmL53z2dH3w39eeBAWQHiWUxezV2a0MC/otgVhCuSp/RPUeAPgjlODWI57D8OLP737hk4YbMLzlAWgAGGJKMY8cE8SIfvQgQl/bav7RyRw09KTeibrylxKl6jQUCDxX92fQcOAvRPf+iSXFuq0pA7eAhSS/0sDNYoVPm7YYrJraKhLy+Ta99SAZNrqVoX9cQ1Huo1irGTM3mnPquMkAbbigapNrFWsY30NqCNVAshlK2Ex7D2eG7G7MxoiuoU+aC6dYXa5NbGEXmVtBj04pyzaxbbAcDV2f0zu3sB9fjISIZm0dOs/QyzJ+kilGxLiUduf9LJND0maO3BxdX4Pfzdb7Stxu9+oyWwN6en9He/IecbVYgKmLSaLHII+xwpSJsi+/5vXxo7lBE0YWid62cWugZ1gzIHkiTX9Bn8d7TUPBOldggGnFDsdFAUQ5pgnLsz0LY5U/h8mWUlM07GiwlektBDwHhF2ULuOvdQ5kaEd4uVh83yExJo02AJllhKYy+RpnEpr1GAs5QWt5Wkjg24cVq2Aq1JPIsSzxtkDe8tc1aByOXpszjgvuTQKr4htpFXhdsJve8yMwKUPEO+ZGSx/mczsoh9me8h5Ur9kCTjZCOGucYkUUnW55lThWMJX/KrPML8KoL9YblWwLi7DoMYv1e3kmJF6EScOxYKJ2Lm3GvkOyxuLHEZFjcWwtZqSK4KtTvwll2C1a7Bxi7COZ1RaV51e43r8MN7Pp6llGtztG7qTCwmaVFsDB6Jt66KmW6dZEHFobveeiqSlsp7t68Sks2yDzGZmxOaxdjOpyJK/8RxMNbfuSCcSuXcIWKmiAFxy/5k2JsNL06Hb8XfC1bqU7g0j1nUjnGcjJnHpgDPdVMNVZKmH8Hxyl3nZOecmnmGSkt/sGRDYjaSXpm1cw9tJneW8CMJSNVLnDWSx1zKMsZUFywN1yHbieqSJLbBVkn9Un5bqBOaYN141Uwm9SRy84wmMvxtkt/EesgcJ7pTyZakMKFKRFRq16C5bw6p4zObBZjkjPskurWreDBLvJjLx0L2Kqx8R1DTbQZVS9akjqO0zlla4DCNvT3ELcWe0zLvaTmtUd9ZPFOT39m2tdvObTVznd5XjXPkJdGyqXim7uAWsM7DZLFAYdTUuLZuYIwxveVr3/Sy87aANarEZ/ljmeLxLIhcoqaQheXTw3gN9fWYkp6LQhDs3Pt9qY+7yo/eEvjS87NKXerV21TVtR7+x0+rMfVrPO2Loxk63VtmjveWtsDdJg74MqrLkQJxykd26N1KKVBOhZaBL768t8InX+lcgIkVW4ELnIhfWWtb/gnpvaXygRJ7VuXgeUQ25icbkYyWX6m01ZvGK1hG0QE6ra0+QCDjszq/ehXe6iQi1bwcbEmoQH0ZeLMlyqIIOKOwUh+9U3J7JqJ/m6xUeYxxiwqPEKxqyWW9pHPsHIhEGNUwXHyAWWhA2rFGiICE8M1CBR6AXdQghU8G7/36ngEbp2cqK1MkwcZl3eJOreD2LDy3PKSRcuReUkPWSdxUPUWTSGWs1wXXzM1E3pLlRsXLiDv//jFLqcteBxADMV4049s1ChZNwWgt+WiXdF3pHSkolEsjRrJeJlEvqfuIsc8ItTWFMteocmYpbAbJXFlUDlNwXOS+7tjjsZp7PM7IJXSJx8b7UQT/gKsCcuTDC9ricav7EZm7T9nxMrJWSYRFA/syCrwkRt2qDkcS/4ySHxJeemFstlciv6V12WGAbX+IFi6wlhSKr0j3Mhj9pS1w8dlh83ansR3G0Vs3XoqxRaZ6zFUgAU18nmCw/LLsz9g722g/QwRX2jWiSCW4SS7J1ybBgljBInIOY6N1p2vPFcTVwYLnSzt89976y3r6++9P29bTfz0VFUSjxlYYZozRAYqnVXCNcJqroR+HbinKgdyHOQ8ewVv47jYjrTnt2ytk2WLLQkEyYBl7mZWdgA/JetlKWkZF0Ei3gwOr0W3IxMhcK22z7ggu1PGi+fTl0xa+rXUdhr5DTlTDarTlD0zzYbqqYe45RhXv8DzwY9v1I8v2LXt16V4lQRKlgFcNTU2P4GXiQorVlK3tb5tGsilybmX05zYbR1st1kSNUeb/ZBaJPoJxnUfPalMnc/dPopagjw6zbIVsp8zlJtn9apAOlBOjuAuWSRiKC/Yau8wc4MHzDaiiFTfIohjxPUP/EkSU0ubZgf799zqMoTjKv5RsQUcPbI1k1Oyu221budV1rD2TjcV99qvlfYUscM5ZGMAFkflLGmzsv/5lsbDxTuB7t1awRn5kOQG+dtbwHp67a5jU9XFN0Rh1oqVNnGvBNBh1i+Ol81ueG8WWjY08lg3BAja8T+JlECHa2bpx4yVI3Fekeu2VdQPmGdqpK0KP2DUUy/FEu3A8ms54nYQkT2zOJaW1v2GeXRNcmy7gHkFtp25rbogcYo+r/ex8gBTAOcA/vxS91meXpreWAVGdrhc4DqScp5xgEXhecAMECrVpojtJ3WtUYVOfv5fFBZUSAxnm96WRRqn6EZJhqnQNvG/U0swh6o6kF+LBTd4mgY/dnjQbVcviYWjpWBrlDKJQVzVoFKqqlVTllkwb3pJ6B1UZLq8hFyjI72GH85XUUt92zY7XLZ+21BROq1MzDfxmRKxecP4qM5Eq67t7npLuzob8hkLKAtXHJMuvNo4rzbZxG8VoVaFDz1m5vhvF+EkSVZkpi30z74SXM4FcMyZTBYaLJ5mA9c22FONW3BsWVeBKfEuUB8gSpHSF8ME5HjTSWM1L266DpTHt7HW+6ex915CVBfptOhue1AChREiGoDx/1vnm669l4BRGrYEZnkx1IBlUruJjPqtDk6d/Iww970iRQwiQDmcOTD5/9Gtd/mjdTa/LI21pcklbFbI/W/r06cpM0JY2N7lZd5VBtZA5WqYLMc3fbolTnUubckzOqMMOVgECDRKk5mn1vpWz+ZzWVA5CH8GJyjA5erQMwhjrd8PAk0UWo2tXnJNInvC/T0ZUetMbxW5R0NSNGIRSVVpTJFSIVHdpBzqv9Q84sfjMpQnYich833tN05YTqOhWhyjC9mUwPZltOGYeo/8ruDrNPc6JSb7NvVw7xd5K+QXbsPyM8rZNIMCW2NovWkpL4f3Xm3swADevlFzy4HV7c0TcOHYOrG8eYtuxzZoaYcj59m6tBZgve/1hZBwuANL1ApKDpAKQwOUh37Ikp2h75EQIbWsmFZo1TGUBSXPsi5NIkhxINrVysgMqH9tzdBa4fiyLvc4ODWriA0HmaVP6Z53VfndpM23pDuu+grAxQfb6Q8OCHHKv5F6/P5xOL3rHx+O3w8EFDAkFfuUel81yj5Q1nMUQjxyHyRxSJWkcjVOsqr0wUz5TmrUlDwGwbFAMIueIlq4ict7F6PTNcDKa4VXK9xuU570RCH9m7U/HcCud9V5DSKlZF9qKLEROufYcdd8g20EhHBTQ5QHzK6MCa/TU/pu5kQha/mH9Px5NLaXopxiFLXl8evwb3pgHcs0sX9LMWp74TECEM1PxhGScBmp/5dTlBiyjOwtGfvzi66YqExw7P2McXDBeNGueCI0/89R1sOdRo5VBpfBVToVssvR24eXeUkluQCkndvQBOCbRUh4fXxCIVd12uIuxKgHl71TQ4tVKxyFddf4SvrvVF+apg4WSvLB9bGQCxh3SQTZHLVrgZaDtY4C8NSst/mQ8GB39Zrx+MkOdpTOB7o5WTSRA47XnqqqarZrOUHvtqYxaBwMPfHMRP0oEGgXqELECRGoVC6aBBcQXleOWMi2LiJco23InTtmOkKe+iYwK7v6th8PA58FqDV4sd1STjCb/2FbkhFMtYgL64M5wykWne9+sC8ekDXsULjjTeYhQsF9hITUKvOWsddUybdxDDd9Hb2j7L7F+VbSpfLGAbcsC9sXM88XM88jMPIKAz4c2+GxkPnj8ViKt0UdKL1+sI9g68vzBTgZ/IKhkZXgkHo9Z5Iv54s7euTKK+WLIkBoy2JXHLBnpG0E614+kZlirKTJ6iI0b8nw9L+lgu/dgpBBZF3YOChjQ9Mcqp52SrvHxkPoXs8Q9mCUelR1BxzykT0z1W63132JJ0OvRH4c14NGwEKYf/qwUwg8ukv4vqnMfs6ZVFuSjiePRa1lBvZSESKZDlc3ryh7PTAYvZBk7pIFgw4/V9VLfy/U3ru7JqXpuStbWaj10VB/bE4PwPOE+yMlIkTtOnxtuY2Iyq3dfiZ5otF67SA3/vVuYq0+e5sV7sMLkuBK1IBN3WvZb8E1VNhxnMimXHM9+1nYuFR1nv5pg1wv8q0IawBokLMNZgof3WEawZhP/0OJ65uur//CD9fxZS+AZJ+qRWyE7Oh5L/4BfCt0T+yPOVX8PgY6QMMGK3D9R5vi9DlGE/FhSLU1AXDRFerOJ0eQVUxtp03KUa1mzWuTSHSK5uadves++eWEt7Qj2ifxFysBDNmltBhcM/KEbU/MQfkDS8qgwZJfC9caOltLKzVauSGonzaPRxVmVJO1nwXFwg0LYtNC1oYBedVGDoklSbbZYOlqDyBO0gowoJL95kMTrhNXH5r/ocQrT4vziIU0xZQX0XzJa6bsoPyztgrMl+SD2yp42rCEuhIttoD/Z1/YUS5j0t+65D/lpJ8izPyIHYyWa22vXv5LmhD+PF99lcJJ8HCGrFp771pQJPOtEko+aQmxs5cHz5HeWwNO2FPWESRN5gvZPsrNAQO/Ogl4Y2rfNuq4GAqhzAwkxnEcYT7/XeVZYSMxz48aQyYkkmkkLXOsIdW5HSFiz/KUKoxhgrNYhjWXZjXGNSBidFfJ+BRXE4L9cZWLjtL5krq9sFuBLUxT/QLjoK5wjTTd6oU+TT/qDwjTlj3jCNG0WDx5b2S0kyGF5hZIV3EOIYalywniQJvFycAlDNkP31F6h1uZ52CtXbraU2dOzrc1BW0nxyY0xDcK4CZmGruBcyfUCuU0oC4zSpgVx0QyBlEGIyaVLf1CrfrD4BzuoVgwSgRDvtASBtakzQ3LV5fPnnw0NIBZIU049CkaeDkFEvipUw4MFxQWUTIls4b4JK8Ts35ATCq8K4Z4wfu6CNq7MLOhAVbdGgVlXrPExxqdyaRXQSU6NCT6hHe5H7zOa5te/khoPKoBBnnViMPCLJ3KvfCQp/0DeRImvauOgubuyPfbvL/k8brmWQXLpIfqPoh1cBAQTs/D2NYqJIQVnKMZwtDY5yAQfBN10uFpGAB7A8wxChqutwZgOuDGUA7JBTeJblW3W1kDNDbo5uJhMCLQZxWwPWG7MR2A/qQRDheM/CxOk50GHQeAhm3RrKmowV5j4CFxSKs4sq8dXmeV5nn5maEWmrTijgxZ24kneDDX2+pOpYpErn0P1AFgAZEoBpUaQ6JsWaZbRHaaEExV3kqpNBH5GheS2kFbRhbpfyJ8LCserisZz4EmckMpwcXP9fYBHoPULrP+PrI/+aaDP4sHOwS3YFfzgpVUtfgou39gRWMZ6OHHCWRhApIuiksFP40Pq0HLYm4764NgxPj+FxIoFN8g5OGSVtBb4nYQtApzO/afgkgqCQrL8DwApt+KkvQ/tyJ330om1XoPEeYs1r2DmeaLxvTDDkcwBkTdXPnQWSGY4Rg6g2SJ4xucamaXiK6ePzjDeLdDcfWXKA8tOsFiw3GqR9Sc4P+NstyiNOUAOPHMIYIpV8ecLF5yBjXCCm+in4HKS+BMUJV5sTRK/F0GFmDxotClfQibN+AV/CE1h9nrN6tqUn6asDa0GEQm/3gThB9e/GojTzo0GkEMl8O3w1kL+tRsGPgyVbzRzV1D/wrdmQWx78FdQVCACozyxP05jJ0hiUipN8h2F4aFKdU55nASJFpcmrYw07NyjwhhuIEYXvnSVuMIylQxHGE9S9JDzKEdP9p2hpy2spEBpKAXw30kQ2+9230usGQY0Cvm1p7HtO3bojPx1En8hWgXRFuLHqImDR5+6FA3XECcBTjyvetUXEAcz9tfIjWpkD0s3vx+IlGJfzlfpfJVbU7m2lcN+t+8FPsrpQr5cGXd1+sR79d7K/2B8z3w5C9z/CjgUHBbgXDWo/CwMnGSOQoLznu/8O7FJZQH0hfQ3kpYUmP1C2ncoRn2h6EfFzL8cg1ocXu0OVZ30y7j+Qv53R/4zeCOMFgM3WgcRcpqCCgk8qrf29OAH1eiCuJZdA3B3iPKpO0FU00nrj+UoxoqXbtTlfxLX2zQoYZaDTxoclKmLpE0Mi9dtU9U1Q+EKpgAVFj6PWcHstD7hygYvpHiJeM0ea6bR43nB/IPV/CM929Nbf25SojCmcKVsIo7Rah0j555yC1lxCTE2AQE8Mi3bg4DXW+sSId9a2Y5p0LR0WVI/wGKPaTKfI+TgHno7BU+ZE3TlRjEK2ZbLZA0L12Zh3xjPZW7eojJNxJ3HcGPodTuKeIZP4nwEGGztPxExu9xtEpJ/CF/Kj5HudbqNR8QrXtM6I1hVe30emxQ0zVNRL0wYCRQaocJMsNAKF3oBw0TIMBE0jJ6Tgidl+STMMQ9rZjuMwJqh40RlosHdNi/eHgvCwcXHRX4SzbxfTRYun110DgQosDTxeMDRi7jcIScKgn/Ls+xUFTI2v/cYe7d9J7sDM8isyyBeppmQJFQI0s7VVYjZocE1U0CJ3HewhKCW1ngmQfdDYFSNtAKg2oU9CmIREYh6meUtVC20t157t2zaPAfsQ0AKVfjmJVpy2bQVz7O6EplCCJHc8QBJd/gR4k8c4mkgixffoY3hMnHGSaxrRy6V8TUKF15wY9AahaFp6wmKgiScI4w4oApYo4FRhHSv8wyWCQVfXrybv3jrG9z+y97E+VcAdmUY+hAC5xwF4XFwVXbWMq3e/Tk/fbnHLCsIgxzl89ezE3++NH36EqstRuEogo0eh2+X4Am9hnC6wlkF5YO1g2tvjyJWehs5pWbVSYwjr142GClSjgukXCLLvowCL4FEC22rUZjSwE8n3wHHtn0cL5pPG09b1qtKnjomQGcJeaw/kqAu0PKdKfJA2daU2m20zLdktCxdlHhzipPqF8qzYeuHg5Q/s0SOOT5tvcq+H4XB6k2QhFFzr8bSxkk8Xkyg5D23SH4qPeT5K8L6wdoDcPMXA/y6JeDGJDT0EtKgRCn210HkCgtFleEtXD9buxUK46oBSaNShJckPjE2BKhItcNynRzpK1yViR6uTPRy/VtWZv4PgsuVfYuZMavmhJ+OyI9DiCprtA1GEiNP9HLVFkZ3s0LoNHZW0Kp0pWaduv4xi78XpwURDNdSDHdJK7O/YcXWy6pEmjgjwudpgmzHIJkzaYy9yM1aozA0HxqFYYWhXd98ZNfXDnw2GeOkZ7wjMnXipDsqaCEpcc9Jwof4caWYd2ZHH344c9eob68hUeEriuQZLrwgUDEKO6AwVHawXBBu1U3wuZI26dv+HHkevk9nwQfkT/G7iPTiP1JsSdoXMXZi+4ntTVCE4uE18uOp566sgD3OaFC+oI0wZCJ/sumreoodjv/gfqHDyls3izpmvVqXpGE4hJsCObA7Te44kkQw2Unj/8aEKWBBZgPS88X/LRvQ0GVQzrf5M0eggyQfbxU8+/T8WMGIXw9Ph5NR/wJKi8hb4Ywm0ze9yRA3tP7mf3kLBbjaijDeBc8V5Q3HZ8PTi+Gvoyn42WtgyXIznQIbOJY3553x5QF/HFpzGSA7e5VDvoy4Yv0QgNqhAClBjNfIB5H29PxYlULeMkx6JwxJ+0uehZdQLT5MSjjpYSK4bJs1xcdOE+ttSo7wv91W/YSn97OZGJu4JgblKuSSsdbuGlXf3UzHgKjUYpQDPCV7A/yzHEnHOKcazpz7ue8BTZa4tV0QFDudznqT2fkZTrAXQQh8smYibvZFZHmijbvzS7lUm43QUozg3LDUybjD0cX5dDidDch+TuX9ltOYXXXZeVY3H7NsQNztrO6BN4p0YLfvvso1i0mEh4nrOcPC7816tle9oTiNgxOgmSg+MDwotObBamX7zjEYMOg+899FO8116fbWa+Q7TZCpEHvflXVWktoGCuUYU1IbJxMSAPXUeio5CYLG2YzmNYHn+ILJBCQangZRMVip+tZAZwr/J7flcwTTPbHnS9dH8sa5cc/sKLoJQsl9djx+PT69eDuavYFKDSDobOBwwGFT3KA/GUKh1en59Gx4OhiCVEd/Oj8d9ceD4cXw9JfRZHx6MjydZR9PxxdvR6eD8VutiwI+TJu4O8BdTU+5PACUvg9l1EypobpexPTuqHVvNCSkqbosBPTe94II0XSX6peModJAMKjiNWOoLhAMSm4B8ZBi6Vm8u70I8lNQNM6CLA45CzlmBNJd0mbGzIsaetNtahZHalt7ElZ2X2QkW7+ajoRs045keVYwpkcRnWUE0d4CVHAYx3HZdDiipk//qop64Y7qsV7HuXCaRHDnIMeaL13PsRyXBEcjXPIDDE1plYHMRmWIYSoigolCTkxFq11LQPU5vRScE3hI9aJbf97kVRsFM26qzJFyBpMHa07FVZo71YIUTMSauQ2UkxJFPksm8UpUI1vmN5Vp104C342DsDAo9XvHi5LnitNKesYecilUBs5GBR1fF2v0zC4KWggrSlZokvo+4j9nS3CZzaiR/C25TfMjHFiQeuj5M0nu2Ls73QWeqmKdVoNfZjW2WFbW7VRT1vH6XpLHjT8w7Llc8H3Yf6J+XutOiuj1GAfrG2Iud1c4sWj6SxcnVDtFN6InBb4XYuYApC4L9QfvmyNve7OE5L8ky48hFjHt3tguQPDWduMjqCbpX3ks1WOZkX6zq1D1kZEOrLe90YwWNLzYrapiuAyR/aGqVgXPvENnno1OhuPzWdWJ6x2dh9CKCLaqvkJKXmCOXi7dUTRFsaqqEc9l9a3xQekOPXsNiUReHeTM8ZUVUtkRUo67rwaeO13lxeyrM5vq6GbzDKdVqGojyuJ9P7n16IjLUiZUBSSZMZfnu7u7u630HKs5SBUEUiKogMIMCw6f9gbSNJfKwK1ro6YSr5PJHr4N3hrM81ReVZO1kEvJ8LjIj9Z6bI/78joqCh4+VCNiTroWeLfRbPeQy6qw+PKA/Nno+Q4la5AWaqXnys9HnIZ/tPYS62Xhk7g7OS+Cp4yQp6V///23EZPbzrsglpQBVKSAFbrxIAo9/kvNkQtAs3XLEiTVe4JUforwirXcYmpfELlNnKB5EDo5N+5mbprusX2JPAWbEhGOvAiZnLGJfzWNylEvW7Bk+tgkrIMMan7ZVymy9umJ/t1I/mhK3njZG5kLBdpJf+0CO2mSQ31f773SzVh0RLNWBL/Gt96n7XCj0ig4kz6g6ZXlBvAv81vKPgjxTtriXO6ZhkffkKpjJDuZPT+rvlu5WdJBjJ/MOymZ9DyvycZKCzwwCerhiIfLiUjrjoS4Wmq0AflwvmBUo5aaLzE6JoVQFEk/FGZWTGU//OYm0I8zRy0yYTf95e+/6VjpT/uy5KpcDhU+GMZwkzLpIHvs/P13EUB2itixUpTezQoe0iPHZlBU2EVKOWSWf4TBf8piHnKRTCWsSnvxEU0HRcSLewkjm4rcx6ArvjaL78Lsi8EI/A1VHIj/Zj5U347RFbBoxWisjfmooEJXjQjfzUebzoM1Ug2HG5iPlxocVGOmjSqsGq2RrV43bqGi6IySZ+hjrKLijHrFLT9pQ7oN3NaLL7uahT6ri+6K5xF/sbTTl0tF+fFeNHri+atoMIzyYsAtunlY/cYi6N0Rg1Cu3a/+ZCjHl1d5NZgWF64t0VVHTDrVo0cMja/Mv3EZE40yYmqX6bCd46eiunBMvUwnkVFsybWsHjNj6iYoEPzmtRdc2l5paKODi90tRotfwAhuYNsTNz+Tetbk2mcGZLOWUmf7QlNqGTZraTqo1PGk3FA0pEm1BHw+NUSpCPxo14v4aNcJwlBlNuZs5VQPwMR3zBVGEUsPpC18V2b/itOUE3AU7eizBcOSQgJ/GeQFyFbRDyDZQoLAA6spcqkk41oHrwxPcJndWcFlhMJrLNanA3bTz/tPzIz9ClRUQdunsjRXIrHuaSDyGQSEUXzhtmNWCvMjmkMp1Vt/vgwDP0gi71bcezpfIifxUNgdkComRhVbcbkLU502Df76T3CZByHhderltAYxURKcuJ7nRmge+E6kOhsSc1o7neHB6z5I7WOWk5CC3DhzSozs0AlufEEY7ZNNPQikpn5BDdfNapJYNeuSUOOHoohh3coklmF1EqtyhRJrW1VKLGWlkoc3okn3shohy4VpRR2TgwNz25GsUJN40pz9n2c34Aug5EKmu2JuRpYUh0mrpmygDiWSZnfqIbRu7u3WlaJkPnol7zxZ6pk/BPYuhWy0EDnhle5Ha178RZPDWLwMyC5ElgLSVZvBmgIhmGZ/U8RJnBurpTV6pMiWpv/ZLMGP4R7mc37d/V5mM//37SQv208SvylMZfqXzLdwpzQPPFa43yDXEoqqBIU8NvcAMbFtz2i/2Kq9XnZDPpyFflHfOK9ajNx/sUyS8IIhSl78n2MfNffEZlHLoEp2PfeAT0ZMCJsaK7ir3B0LAgI3OFmVLwiz8pMSFDTlx89AFSEZFGceND3lm25i86E2xAAHedFo+2vfNMXjPWIr10iYHsY0ydQfRrmlzJMhYwQjYV7OkkaxO/LnXuKg8Y2PnLMwWLge4nLJVWV/WF9rx/nhmA5ugBau72IRT3CWKjuh63mHHl6U2fjzu5NnJ20LJ7Z7jWKW2Y5iD/48gwy+od+668rRNPkovOSo1R105xja1ITdbKwJNB07jkP3MolR1GhbzZZIZcr/DyqrU3xS3TiZpZlPiwkBc3a8pFtmsvyUINchWrgfhx/dKI7kASmls0NXTXrDaRl+XNs+AZJO3WQoqS1gFWCr48GYKr34serCs9nxFCsiRmM+ix+MZ9nsZBIfdTeyVm4UgQamoZEh51RRXwdL3JnLE1fip6TX1FOsCX606PmxmPbVdiRD8fkagOx14InfaUW2wii3jWmubRUmaek3+GWlGVqVuSzbrbqclV2Pf6gfWVT22My3drMs/jlnqcCP0cdMa4cJHn2MWWJ/y46U7WVRg5iXRdTLKR2TGvR+JP+8ZB+62NtJfoEXs7MOV+v4tolHx2HedJ4Dq+EHPmq0ZHm909PEuRhLGxqkO86fUIXHW6r5XNqhDz5HCNuuAN8pa2qouxpmRDa4XemmNIAVNqqckozFqiiiqUF9iQiMsKclIY1zW7ryDaZQubphTiB5wn/SP8cKQoLGKGkqfFZ7X1gK6X2zp62ly3ZMb2kutXNmJMmqrdt+CrCVwC1WvLyx+HUZBHEUh/aa8eIudVI9sBrZt+zYiXhA/uyXRMBCyoRMWJQd0tGVH4Sob5eSVmKIGVMow6tiF3XgFpIulvj7weoSSj/lE8mj1ZosrLFe2hHa68wDYhjz56gTJn7nn41WtQTuUkxgkTLbH4j9oKu/K1pCH+15zImGTnpwcoQlP4v0lpO+KOh3hlIinDAxnz4mJOeKPYHI84e9yY4Sz4P/bvJDtoAveZAm6+m/nratp7///rTVnYXuaghJr+CvfdHQPmyj5/6JHEoc1gEDquKAOEFDEMQs/u0H6zlcyvDTu733cNU+ffk0/eUZ+eX3358K6+s18VDvdt+DXfJp7ykQAvvlhwPr6f89xTd+rpVdavXn05awfB8GM81H/0+aj17UsljuoISuNh7M6MhLy4yUBiU+DTgvE16h9ZXV+P33htEsm+WbJ7yeEgA8kIIkjlwH4fwzKdfF+DNMOM5kQHQFU8GDVrDc5JI0az5vdadrz40JgZmkH6cDM6o7IBvJ5usOfYfgsdFV4K8li8UvD2Nphkm7pPT1UljvwKqVG72wQbjooG/Zq0v3KgmSiJVCWK0DH2Bo1BNDYH9rajYrKHUt+mIr6Hna5ZsxxBLXwLWv/CCCiak6Je0biN+wVlEKkbgZal7VwKmagfwbnmNr1SyIeJzeUG4cpcH1QdjBYJgcQC/wr6wYsjtYB9buvvJwYqoRqpqg2oNY/ce/tIv7o0cGhYsFlpO/v7JOkB0lYea2ilM4iV8SAHNb7osISYFIKYiOdQL35onrk2nahQYt1SjkOSJYoNgDjKzjVXEG+Wu/XC5CR2d3j1kJBI8G2UKWJca8CRMbDf1khULIxvwDOQ+vRDpXM4GNQqM4SGt2fEoa9nVZsbwp1OmseejbvGDZVvNYnWiKPJyEgRMbs9ucEweF0ue79+y2hFcPG4pKACVCAd45X9rhu/fWX1hybFtP//VU5FJM7mc8DPMSnqBVcI2wxmhI6oMUIMIR0gyTc9t38NM6Fz9NvxYdTbPGOGIZFt3aNxWG2Pp15zoHnk80czrARFOnwMLkGeSmsglk+++llpZsgOy3/S25sAiGrmwBwuDCGcvGaKbjtgScpkaAEUxxGsRHUKShVoyR3rygnD/l6A8CBFbLirbqHwVS6XKFsw4kj6300WU04ASt7TBCZwG4L8P1uHtfCy5J+P+USvhqAPDhhWVNb6MYrcDb+BUpLJcSOy3+kWJv6tvraBnEak10ikC1MpkuRN0IG2o0Sdo+uqtkReR/wlytDmZS3T5oXNpWZ8/4sOWYVh43FDWQ3Z5hqa7BEQMH3JoO2QWdCk5Lvh0/sfrmbpL89SCvjsv2k+2ZAs4ij4YBdfxZxaP12CxMsR0+DWO2KpHNJ8VlUpVXGyx6A5NwTd59t0ARXl7YShUf31HU7814uW7APB8/kLLRCoea0M7mJ1lkcc0Jhh8lKcE4kRBzwEoRHZKEdwZ6m2xakyeE8PYxv3Mov3LEOfRTSdcO52K7A351sN4uisZ+MW4PIuNW5G6h10r5u4PWuGIe3DC13jH6sl4UuSrMlN342P8cdYkBBX6KIwhRxP6XR1NLmyBD4zTw1xOpMxZNBFJC849W34M064vbzPqB2yhcW+qh1ACthqg1Rq8AxS3rJfUz2H+yTQs59jg1IQTrRyu9UhFRBsCoDeulfK3ksJAMio0Uh3z3DnYHMBljTz4GbtPZMxrmmW6YZ/phXh1Yz3XDPO+svSRqwK4Jm0n8LuTbESrcAEQuAJ/ugiWXT8lDsGUZbxUuJ6Kg8wqMQptSSU1O2VUcjlZ7FXeIg1DQgX3ar3gRpNjHjxEn91ehnCT81kxbtETFoMg76aCI6ydit73cbF22vFSf6yKFb5IhJ5ziZkRh1p0F63QxAJZYJnspgyuPdAVsjX826kIkQirbWvBbo2WAIRtu+nvT5Go0eCZIpQRG3QbTmEr/G82VgHsrJIhhGGiZRbFVyZCPWQaoV51tKf/wYHgPGdjdk+AanaKPcfPBlHSVk+5vXUNXK+3/DkbmvUzFCJI+el4dSO8JMyAKchSMcnuYw2A1akjhg0ciR1v9JAzFOhWDR1f5FMrvd2yUNTDF8eaZslU3RCvb9UtJHWinP7K0i+IXkey2VlmMcfqS9Mra3S+m57DnH374Gd3iMixnthtSk0QbOr56xd9xaT1BdZfixnIjdM+SaNmEQaTdm8SwtdsS5wThB6OkWnyel4lSOpk1J+STv8u7Z8FaXBEzL5+BrZb07/6MbqXtmbtu7pGF/aWbcouqwpk2lOapVEkt5jFZBSVkOuj2DUWCocUKSLVLdvYo4PWTat2WTHeZofCLjWlLNibRLj8Sk5DulVPPjGOg4ZC/TbERBXtIPalmtEEiPVsOQZRXYVZoTN3Z1cH8UtgvX1l5oUEygMwiBMPcYjs6HaXqhhf4lH2ndhJ7Ew6FuRRerzmHyrgU7tjNVlreOoUthnROTWRfTDB3aoKxt8DhHhjMgpGoLowVhT7tUcjTcdugRhT1ZctxPesrnJ25Ve8cSC3DenRgAd3D7lT7GpP9rfL7X9qVw35iBgtOgFSZcgtBgOzDvr5EzMJqkt6qUPVqYFnSCF+jrpiFFmt3YBhXKLYdO7atGzuyEt++tl0P1I3awGD1Zqc7R53TazF9DDVA2SHDGPD8jO9DP+qCJ2f5gEy2sXjPMl4vdt+rhoF6rN+MIvRszBi+OlfB/QEpc+z1TPaH901OtQebror3vK27sk+bxj4rg5grhUNvGtaqlsYxKFuITiXj3GEIamE7NSGo4B9+S5O9evnwjj4QqjAMhC/wgqsCe3GVrDYy/ZUOFi6hD52UDbi15W4tH9UdoeiOchQaYT4fZHxXO7ClhEp3iP8wLV9tFM9Rt6Y8S8EMiWgCJ5mjMK0oT0+6TRemCSRKo6QiPsbOzESlGldvb62VxfAusxfKMvBiLMpqKclTfGDrjKh3rhiSwsFO1DeNGq+THkoxoCVIvFhFS0aH5ip1SWtsVbu36vkzSXGf7hyEnus2ZxMSKZepyun2jbNCKsamabOKP9UdjlWrKv1Wd0C+XJXw99oLZ25q5R/rDskqk8mPs+rwlJPliU9KLV5S+2iJXZKSS4/dtmklB8V95pA2zuY3Alakp+f4lTX3kO0na7qEXChW1qopSEMQ06vvjN58vThGq3VMD/Uo+ndihzY8yRAr3bG9ZITZ2EziGDnIj934tmmUunyznE4FlBFDd43HANtUIc3RIhdLnD7WOsgKOOebpT9buWJE5e2iA6lqFm2yI4raHUt9tbXHs0PptYVrBRHU0hW0Npn97mspcNn96V7nUvvPYT2Q2r8ikb7ud6fJeh2iKDqC4+7+iZrx0o0EHKG4bmL13zEQZOsL4Nyq6fRpGXaJrym8vkoFfEqwp6VsW1U8TEkZG1jMaEHZumPE1yGnBXeUqx3SFHkEEWxi7l2ZPbiyS6tRw3UWr68fIjtG1NgKtW3zWzMd9s8no9lvF73ZbDI6PJ8Np5xNrpwtlzI6SHQg/XiDy3SpivUQoDA0AS32S54buCs8hRc8FNZu/eo9quNpNTJAUkLUvvx2pojmCedqoTTJGt70TgfHw4uj4x5UfHkznIxmJtDz7EtVEI42uZGUVoOuqpsF+/tAX12ju66FJMKgfgPUVRl+4Ao3Ew9x+EFQkCF3V0v9uLELWv7rie0ntjdBEYqH18iPp567SusRyuh9ai+w6y9lFpG9QKkIgL2+ct/T6xc7m+5vowYDdXfNJm7JmmBHgjhE9gpcrOCfg9QOQn7nRmkTA+ccFyacYOL/evf7F20aWiSd5AStwNmDjD8n2+XQifhvTeML/PI2Ru/eW5fJYoHrYMFI+Lfv9r5/9n5fnx9bnYpY6f1raSp2xtacBLtRjGJMNQmobWu3TaHWm5Twja2ImzOzUShcWDXmbT/OrCTWQe6QWJ3UAtMEGzzbVLNFZaO+2sByz6bEFSJ5/Kb26sxDlGxJPVN1tg1GViM11MhEI5ber6zu6RRJHb6tiiHZXKF5jnlWJHKuwDpSlkcnD480Tcf57Oi7oT8PHEiLQnNX4UMG9whJV9JM9zUT8MRjf9rfSmENXN0H01B2d+Svi5Tb3MbyIJ//Lp4v9hvPLgK5syu5HDA+xa3wjfFE6qpnfAVQ5kpP/y2RGcleRWo2RHseeeBL09oOFVGKOUxczxkWagUXRJGBOwfZxw5vLa6qcHsDaw2d3E7iZRC6MU4f9BN7q0gJNghjcMVkwKRORCy9zjV4+UTWgTADka53k08OiEKjhKccNkzzfKUOkRkkODwi84jkBq1AWXBOPiCsjQ78axTG3VlA+RPxnvoZ3baU2b4x9uT9sQtVS24QEeb4/oBucW7FD+g2y7pyoMjbyf6X6/D7btaDgCn4Vj9GRZDXr4+TefDbCzUHbA/eAZJihvILjJDluw/o9r11QP6qpi+hAzTOp8PJae9k2HhfLEkA/wduP/vSfoPxSW90intyp717Ys+Xro/kfcdnw9P++Jfh6cXb0elg/HZ6MRlOZ5NRfzYcXMDAF9PRoAzQ1HVMxzubjI9Gx8OLyXg8g4HKujN+YKrF8a+IMzFNdwdJV0znm56fDSe/jKbjycUZAb00I63oCXc8DTGivzRb3ZGTnYx+4sHNj0MoQcsUurYf0x9bNeD5aXx4QR7nQrDE7LI7C0Z+/OLrZssYsEIQEHTB9wAKrUtchp7F+nBfmrLcaEK/TsaSU65G1q/jjnj2bm+9Rr6j5Fu5hsBR9k3GkvGw/GjAUnTqFbIcaZKQvzacQteal+/wiSYSavfcd+eBg93ASXQaGSili+J7gt7Da3BLxs9SpiXpeV4wf/PaCy5tr6mQUFj7frC+5WQaOqBSuKFSI21aIWE3GNcQY9pN/vbSZHds/N5oWF/Ri+4r/Kex/wrWbI0WOHV/XtpW6RCFFhIwZmUfiIYaPjY7e5V0cHR6A0UUxjC4lPArmiAP2RE6c32fC3AxW5sSDBEmkQ2ll+dgKBe+4v4qargIvFgDwt5u++I2lABmuaQ+OhhkcanWS947WQeePLrVemld2hFqlryWCUO8hObpS7TbaFl/aVSIJeBlvpMvLWPwKeZST4a/rCsU73NzxvtF1lfoih0VqncjDgnV+2V+BzVAJa4F4o6K7ZX5k+YysbJ01qmbqKW1Mr60wORFA165jsTRkfy/1iOmFuTSHEHC0NLS0pSRrm11AqLyZwM8iQ/SiqwuU8jrOOcm/jrUIeeUZcAnqZLAJUeQNRYLVdTlJt+DON2k5Y5omRqSjch6STAoGIx3t8kPmDncpPsjgp551RTgJ341LDVUGR7ypYalg+65AF30i4fL/8oyFN+42FBfaCTe1rkdIXFhmJfptZ9+7WRf9yUjwQqSCBZy5fpX3CDkQ4d9kPW/CcIP0dqeIyEk6VcDSEgQleUEN74X2E7EDUM+dbJPsjHOgjCGcJjXLjhJxqGNdQ7cSGva4MqNO1wD2Xin4KYkHMgPHGQywtpfryzXj2KbljXmgfHXq07um2yUMIniZG3FQeDNl7br88gh3zrct30t1fTt8CqwQnTlRnF4KySdOTTppE1Mx7xyY8Vw8FU/EsZZFAehmKgx2shn/Vgw1NyeL8VDwUjkq3T/wiBGc3DJ6i/t2ALCCrCLAL8FaaPOfGnHsMoOayQbdzr4mRhogoRHWOR86KQ/y/piSASd8eT63vY1Eva2r5FB7+AaStQLusMHff9rUgssCEVjpB/146TO4oJh2Df9KKxglfQ80AampyE/Xv4s5IdSnQQ2ivAcsGEMTgEb5xI0GljciQQD4a8d8lU3kqiwV3nEtJWS6ztoYSdenHVP/A9+cFNkgrXvXyp8cMKa7gIuNFJdwDj74Es5bYKSTvodnDylHwv37kvdvSttwV2kMjiCwIswJapbwF2naQLUqGkSxEsUStuQW0z6uXD+1M1UKyIt1LBwR0vWJLs4pBOBqgyFayiQJW20DFaKEZTjQxSwZpXq0SlvlAOHGYMcSfb8g32FFN1dX44+rNJV4G61tmP30vXcWL7Zsk3kNGCRuFBrifUI8qPW5jvZG6X4lNTxH0FDFQ8S5Cl/qWnK5xF9qZTDCwmG9I2rDV3K5FqtC0vcWqfXs1q9aFpWWddSvhNZQz4+Xkm6KTHc/81JH8o5TYaOdoutlJcnsh14hEmRRKudy8kZhZEbxciP1TgkQN35+ZcklP5h9qp5lPjzH2bglhSHtxul9g6FcRnpI5Ch9I7ThqZbcx95Q80nMxyPo5sa7qyCpBiwxWVdaLbp4ICpqQyYNYYWE+IsrKoGGGPNdUrhttNs7VfZaOsv4guwX3nXND0rRjbeTfLxQJ25QJcm2yhRPLdVP/6ItyBLsr7dPNucBTAXGClFdR7NSsNJWj+cjAFJc1TthcbMcg3y9C7iC5EblukUrJY84h7xcpnumK11mpc4Ky02kxw/r/0dl0WVaiRNjtVntMuTgmBRTUQQpEMt58SVfi7Xni2mapVhLl9vPo3ggjjcXPHoEgtTJWkV2iJkpQ4FpYjlBea3BaBKeVUbUJxabkeATK4SfPqjsGxzwYHw7dKN0RQ0Os10myv2ywjAVMBSyr1WqbB7Cli9Gu7l/MO3NWq350mBjlmhvLkpbvCz1AA36xAt3I9QaiargF6Geoel5uNKppOeWwXacEPzBU1T0NKCqAQy5sdkXOh0WzVOueKFNZK5MM2Qwd4t3DDCcUB0sne770Vh34XTrCtBRJ/EePDuLDgOblCYeiWah1DxKsJMxw5/7ivax6BbTptjVbOqedE2JrOGFRWPmW0W/lS157WpedOnzHoh1mNyIKY/KvtmCk7OQsZ+U/Wkis/MXoj/Vq4xVYZmK2Q/KWdyeXsw/GUaXE+Ii2MmVKfaaZjxk4xjEFXsvuEsOdVs5cnyit39DQ5w+SbAsLYz60tF0Fi3fcNp8MmqOIfgNMonKBiCKk6ldN+QT5qZlSrOl3U0nSqzT1WcSuYGIp+KGpcqzkN7mU7CsbSqpCdjhvLJMvtT1eMu8XiQT5UzZFU+71xf45MF5sLGVsQikSDxytozvYHLMKaCwt77ttUAQ2NVFpDaXPdrTYltsbXmxD3rTYqtu7UmxT3NEkrx3Tbh/1g8+CzIJzVnVz1VOmeUO6JdleeKfEd5i/u+Pq9r6e6vplvJubc+uEaJRKaTAVjAZEHN1GWOuoJwSzyhK/fez7aG2B+xm31DMdC5T2Oq/kQOCQQWjGXjDx0H+S5SjsYCFURjhG68XKHYnXdYjHxhJC7swHIDlrUuxTH3uQwBa19EaY4SRqQRayyOxmkkPvq4xr57tUmOTcSvSElvWHdEEiS/oalb/2G9mQyn58czCJN7/uzipDf9GdckyP98NhkejX41fQa7gfoNTN+pRUh2Py4Wi4WRKXc4mYwnFzic8XQ8uzgan58OXnLzd7C52w/izkJAmoVhznqzN5Jh1na8NB1m+qY3GZ2+vvhlND7uzUbj09xI0dKGHexcu4Ha55YMdjzu/ywZCSLNTIcBDEEk68Xw1/5wcDHpnb4e5gbz7RUCF94O1E5QjzUYTYb92XjyW24AlyT96qSaNc0gw+PhbHhxNjwdjE5f50aCbAYx6kAontjxu2Q9V9CZLrQnnwGXpg6bxtDuJQTiQxousGtLThIbE2xwAdQaJm63FuSIoDEMoKQivxbt56XOwlRCkXsFESbiIHtRD5I2QzJXSc8vbkYrVWZXmXI0vqH4NlF0yBvnNI2nZX8qReux2IVFBQy1qygjm04K0GsY1RWCKCgc5ttkdNHKLOglXFifSsHpxuCkK94eTBkSNwEMb9z2gCJ0sAlAjE63B1NK+ZuARQhwixRFCNoYJHzwR9EUGcBgnNOZuEJiPtbFY+vTMSgRlmUM3hqQBWRWTgeOlyjjqvI3SoVN4ankcS1bfk9sunAaNz0PQieX4VkS1iaGVrdG+dt5h6fZqsj5g09r7cmJAkvCZB5FEq8tYNDsZfqocLgyTSlebLxxsvjigHUyxBfHqJcWvjjKZrngS+uqmQD+TqhWnVFdYuwkQKTN6z4EpvMlchIPOZBVbYIWKET+HBlG9B8FkLGlnBSn2K6c9qfYIj+GDmiaBGyKf+uFsbuw5/EUZ8Sv9HyhOShILn1RinLWEOeUJ61fWZC3y6cpWyOZzKwAsWzQz8FRNuULZhdUYD387YIl3AW9wOj0aDw5wc9ny80Sy5b74dZpwuOLGU7WezSWJj6my6SFxeRh+mm25qmrzf3P7wC4BeA/y2crh3nrgOFiX4DQLJPuAb/8ctNcVWhVeVfmDyGtsDjlVwyr4P/eN7q2FHs4ki0i7SzbSFlJ7bQj7OaxYFGldBr5BYnbUlqe2R/QlNtVLUMrFg2QH0oBwSjzN3MJclTZyS2Dym8VU7xbJL0z5lw25QEUdLZQqCdpe6AKuQXNdJTI8r5JFf1LAYq2cMHkEhHx6G5tvhv5c7wjq0X0l6zUswWpdS0XcvOlXICORlNldaw9RaZd3BGS+WnadDpVJbcc1nKAvcMjvq+U0a/I70yqxAiv/nf9YDVaQRKG99lvrxPXaTa+/v77vcHzrw873+329jpfP/t+r/Pd88MXnefPn333/MWLw+93v/+20XpfupDJTXxozz9chaAchsxcJ7ZvX6FQcOuawfJNf/j86/7uoLM76H/f+bq/d9T57vtv+51Br7d3+O13/eHw2z4Py7sRcJ2FPUez2zVqwsD8D930r1E0Oif+04KVuKyVNTJdDp78LEQRCq/R1L16X0qcTnLp/xRcljnDO5rMrBc1z/0VnsPB4B6fvZ3GYet95lgcrT37VlyLOIFZ4ltRKhyoHQAIhbIMI0f8vbBUqEXxn+CymLNPvcbXKBYuEAoW3Mf8Qz9Z/RRcCvySMXIWnn0VSWaHriUIIgAhqowD/KAYoGgeupK7gCQMLxcJTEH1bP8qsa+QFFvkcnSyScR50BRna6939PXRi71nneeH3+51vn7x4qjz3dE333W+PXxx9O3zXv+bb3uDOz1bYpTXOlyn6GMs2XTs+VKF5MRtCQGhGF5H1Qhi+sFdNzNQqnXGFo1mtT59L/BJ5ZCtUjW+R5spLthiqhHd829fvPhu8Pzbzje73w47X++92O18/3zvRefZi+e7LwZ73+we7j27R4b+U3BZi956joNTgKOY29k2O5UL8qkahumQG9wOIVoFMToPBaEXxmN4wdwmdbwrM16APmpyzAnQUJHMpkmEM49WPiTJClU9JbY/R17VTrT6W7Py6Rk5zfwtXHkEfADS4wcXfeUhzsLgCopf4WEOX+O0v2eT8evJcDqFqq/4Y3XA3BXKDTkbnQynVgw/Vx4Mm5yzZYK3B6p3AfOkyDR41YYZ3/goN0wAP0h43jQOk3l8bN8GSdwk//zs+k53iv5IoJyf7QkYU4Q7icpM6RRuAKKvfKNTmL31FM2T0I1vmURSNE5ImcNhEPBAl00xlyN/iUI3Lj7Kt4WXXv/4Yjr6v5zeQ4cYTDa9OcLX1b6yjYdTFY/88wiZNDwK0Z2scXjxZtgbDCfanLS3MYKVwd7sq5scgaQrW1O0DEKMoqn7550sqD+cTi96x8fjt8PBRa8/1C0sQ4H1BtkOClW7cWJHH1Tfp66DwyTqLqwN+eXCKQJbAP0vlt1acYBnvcns/AzI1OTgzi/VejVvPSGcydG1G6DoQxysdc1mbuwpady5+VX9+TdN7zwtCUfQN/kVH1rAeqQZy7Thket5qbpT01R/Zm6my+CGKPLVDeeXbAOf6bizYcPlNHZG/jqJ9c3GSWzUrmCn3tb5P5uMMQOowLMZULTYgQb02RK0o+rNpCONNM3IUHyrbWHh+Hw0MLqqjoObsxy7KnGLN+7V8mwDjiYHcjb+eXh6cTYZ/TI6Hr7WCx0Y4LPQvXY9dKW8YWH51nHiKvEvskNsa2k/jQ/Hhz8N+7OLw9501L84Hp2MZlVoEvw/rTMUUkqCGiAg6B67K1e2aNblp+DSpDnZfmigYj3nlOxPXB9qyr0Nwg8QxotiBTtN+5A6dEZ9qKgDMYh0ySrY2Qy9xcL13fh2X00wUDzkFjsgKK9uYnqGOIh8020RxWh80R+fn86GEz2p482E1DKpbUcpUeLmuMJWhfZjiLCo0B7AmYW2Hy1QaAiNeXMMjKT59k/l8NfZ8HQwHFQ/mNqTbR3akTvH1Ku3kXIkYY0CaK+heHo4SDFOkyPyU3Bp3vgM2R9yM5xHUiGQ75NOkm9/V9y018dIA+/+qix1FsS2x9jjvq7hzyj0kadtunSjMxS6gWM+er6Ldh7MoHDTM/sKHYHfvfaFSZqT3USRMd9VN8WDphXqHUGfbW26xH3ASEjABQ51bgYJUd6t7TBCM/tq+ys47c1GvxDXCdBJmcpjAztGOlIAoazcbluAF3RzZpcVVlJg8tjXN6N8PkRKCQ3rdJVDZq1EI24ZH1ixqENGYdOJ4dUNfMWOFrucBI67cOdVu2WXJ9YSlzpvTV04Glz0TgcVtIX0ppg+nDxOnhpQt08Ha3l1FjD0e9XnvJ3h8oDpO/Zi+OtbI+4xRVHkBr763al7nLLiaLSdwlmStQQEaTb3NFldonC8IE9eJUsm6lzt9QYXIdh4ziP7SskrsVBj2tj8sQLDGrXGbM9EKBBJAVtjYVJPvu1dqFtgfcd2FJOA5IqdyGtDc2v+EnjJCk1R6NoeIUjdvQLbCnetSbtjuVqOPwHHrv8h0o2H67yaTIwb5mbmKWbgecQS3mx8wMT1/FnX8byGgiu1rSmKAaO8t7+QrnAgNPoIEDFOkHoZjXGk5dvmk6IfjsDWJPXspfpjv2AP5ldlO9f22t18Ve+I8+JLy9AYJcYCtkrROsI031nJ+DULyr+9FSaBjCQj5JFE7ZTiphN07UYlL2vOpBhpRs8soaWGQPKf7ba4ziyYuo4S8a4jR5vrfIZLx4tmayssPVuYfNGsq9HStaAlzOROKQuUH0KYloJK9tCXRHPPSi6HOXodyUINinZ1YaF2cNVZS/s59twTdotKH5RHblNSMkY1iHIOj28x/RPElt08//eQbobZ6YMRcR1cmuDxM2JuUxQTXziCKjFFg+hfpudKOK59bO8TE+QFQYQvhhFjcvwvQwd3tWRAQpqmMPCaZksSyELUwE6GkchKIZW6PguMEC+zuviQMyCNWxfujaHCfQcklwxyPgucDex5PRIyRgpwZ+wfWHQeV96ElYZ/zCjvzT2OAQlRLbztRR578mjThERtpV+PBRGkhSbYMvwoEYaaHGLI0sAvHdQDbZ5q7DmqKvpsEVScgnDqOs3svbHX5h4fzx4bbvuQKXoWfED+CQL9TbR010J6jKFNW/KmmgV4nJqn1Y3I3I8NN+M18qmSGGNIiJc1aSA4eQ6K3JDlH5RyOYzXR3ji8Ip1TEpAFNh7vtAXc5W2dICRkoEVm4i4GCeaAApoPv/PR8g/DoIPyTp1/frF9hIk0d3cRjFalWV9TpdYRg12F/MS99FdhT3nP0lESC1dfGRKaeSmd3HiiZ7nZQO0S1rZoiceBJfjUAgBvV0miwUKRVSWnnh07QZJJBiAtjChwpy+2lT/fAzxQ+Aoz+6XFfZKMZrjfl9q3IFN1eXCjS2FBIokEiGWK8o9jw1J/05QeHuXaIKTb+ZZtJkIWZfo75PPRJC/J73LM1Rz2C1c6I9tCaOI2bX9UhC4ShSR0Y+xdEYCqQ3RcTdmNxDEOKObQLqigiSJl2qbWNZq8V+I0yVFhOhmND8nMwk2XlLAocrJcXAV+GIxI4lQKBUynGBlu77w09qOopsgdARcxIPZjso5AmhPe732qE9QeWJi1TmE+jQotObBamX7zrHri+7vObXKC6Zi4Yr+tRsG/qqkfMjX70pz9pblCS4gCTAdxskaOHmZ/wqiNdgx5Vj/VniN9gQxkq30UtGxCf7cvZEpXdmKncfGVAcJITqWNOmJNEvYmYK38ul4xK8cO7xCsXAI/iWIW0mReNebFJCqZXdIi0kWTU7cpNj1G+O/7nrmt7YbH4Fd37/yUP7+p+YC0m7lep4boXngO49OCoDo649u3A8cRpHNwuWfvYURbfjY1pB6V4vFsM8Ddhn2HzX0VAJwi1VZOSYEBxEaSLnUDTiilVvIfJ/W7ppzrBMZ5BRuNg/4fiVsUqf/kpoZV3b0QfAzTpH0oKI0IQGwKIsFP19sRVZcPmQXl3aITgA4I6pgdiQlZTBBjmTQcyWPU4zSnu/IhmJXDFqtPbryR8jUiatjSmyHt4T+hh+FZAfm/jraAFnGSvXznyjEpo/wnMoRZ4g2nFXFKI/rdp6RzFEJoMYJZzjIHhtyj7wkWgKgh3j/IxNY4dmI/OtH9Ogd4CovZ6TopUSlDikt4L/EL1rSFRImix+LwWqdxOS1fNecfet4IfdAwYnoM1oFqbCcPtTTpUAdJdVSbuLosWln3s6mkOYLgpWzSMXhR4kbK+S0CMt3LVG0oOtifXjq+kSDZ6SyHaeZkNjXSjn2Hj9WwVxCgndL2GSZvuQ2BmJfEQknKkQ8mHwP2XDpBZiTUGlSrU9PPj35/wGzPNgtCV0FAA== + H4sIAAAAAAAC/+x9WXfbRrLwu38FxIeEnNAcSXZyfSMruTRJ2UwkUiEpezJJDg9EtCSMQYABQNsax99v/071hm6gN1DU4hn7IbGJXqqrq6ura11nYXzpTa+zHC0PHq2Ff3V6SRShRR4mcab/0nmJYpSGi0qL5SqJUZyfJAGKSh/7oX8ZJ1keLsoDv4yScz8K/+3D2KVvw3Hphwm6oFCUP6zjPFyizjDOUZqspih9Fy5Qea4pWqzTML/u9NLrVZ5cpv7q6lrX5jQN40W48stLmaEPueKnziBeJEEYX2adN+hc1eCnrAL27CpFPnTS/d6Z+dlbvoyTcJEmWXKRd96E8ZN9zc+dqX+BXvlxEAECHsX+EmUrf4G88QrFveQdih99fOR5nrdan0fhwsuQH6HAW0R+lnlvwjhI3menYRyjoB+maJEn6bX3vTfsh9kqyfzzCOHOZAg8TBq+83PkDeP8NE+9KzzzwSP+PYQ9if1IM3aT9nvnR2vU4r2K8eEPGdQ7JK0O+LdPxTR0Ne+SMPAIrKipG06c0jvkICtnJG07/0RpIrcIL7wmGWFHatWSWskTwx+Khp+S8+l6BYSaJWlngiLkZ6iMG4IUed5P0r9e9jrT9WqVoiw7CmM4SaiZX4VZS0SSgCq+G6ptH7+PUXCaJhdhhLqrVRQu8LF02n6g2CSOrr3k/F9okXvZdbzwDr0Yvae/NAWQKp2AZo/CiNKttyIwuHfwC2gNnbI8hQNDRz/18yt74ywMDqq0TD/CEN5H7xLlB3yADP7xSU//GiQ3pW1V44P8q21YPG0hjUVhTYR5Ae42+yB0l34PsyTycxRMw0B3kChc3qEMoUywwvjeYRXYA9WIGLGHFZjltrRRCX65TRYG3qG4FCXz4Hs08ybID16jNLwIUfB89kPzaB0vnhOMtL3ZD5g+dOiIksVbrwmUb2MCwDzoUjvDrBclGQq8v/4S18J/b1V6w5/8Kk3e4+M1xseL8rxg8GGBVpigGmaCa5T4ipY3vfajMPBz5ES4pX3s9P34EqXJOnuJcrLfzVZbWqayhWlMQqSUVMNAsYyZl6JsHeXeId6uJrT9z11tivJ1GtMl6+6KDW9Kd4qWFslGrQLLMaVu8kl9axlElSE92mcZSp0uqkUSZ7m3DuPcGw0mk/n0rNcbTKfeobd7YG18Nh1M5qPxbH40Phv1vUNvf39/z7Hb4B/D6WxK+jw19hlMJuPJ/GRw8mIwmQ9H8+7xsAsd9578zzNjRzzP6WT4Gs8IPczNj+bT3mR4OoPFf9jd3bU27/Z647PRrD+cdl8cD1i3fVu343Hv5/EZm2Zv19b+tDudvukDoieDX/q0276122DUm/x6Ohv057PBP2ZklPGkP+8eH4/fDNg4z6zjzAYnp/P+2enxsNedDdiiSfe9XWv30Xhy0j2Wu+3buw1Hs8GkPz7pDkfz2eRsOpNHeGYf4c148vN01p0Nx6oR9nbtI0wHk9eDiaLzvkPn/ng0mw/+cTqcDOgO8nntE590J7Ned9KfTwa/nA0ndLeeuvTF0A7686PxZN4fHA9eYgzg/s9c+p9NB/P+YDr/efDrfDw6/pUv2HHJFOL56WTQPZu9KgB3o3OgUIK1fgGz86Jn4zlMOhjNCLEqkIA3wDJid7FI1nE+u16hEz976x1KbFl/Jv4qtysRf+W7nsorTfXkXGmqolszBuPMv0B01UeRf6ledYnfVeZljK3yocTBKt9trKq6wuoBqbTRHIRKuwrBV1oo6Vq9SJF8tRCZqVS3U7BRx+OX49GT/Tn+P6Gebm82fA2Xz75Lx9PJ+PWwP4D5jrpnxzPTRV9cvsPR9OzoaNgbDkaz+YuzoyNyne6br7qT7j8AW0eDyWTQnx8PRi8pO7igf4y9j1/Oh6Pe8Vl/MB+O+sPJoGe/mKHfLHmL4tM0fBdG6BJl3qH3xNp8EKF3WFiDEw8re+beBTC/a20OurhLUKUdo3cogj7fGldfBauPLnwixZvlkhMUhOsln2+Cn3zmKwt38z+Ey/WS8oBeivDE3TxHy1UOWHwmaLF0ao4/10nuY9CnLgqPKWE6KMtwH/qALwap9rCoZvALuWvSfjClh59l75M0qDY4T5LI8wkW+iEWnRWtuljv6v259lM/zsMYMcF7GKA4D/Prahf8dIbRf/DC7BfeETTFEcqRBpKAPmQVyFeI/E2VqmOdoXTkL9V6EIaI16BbU7bIwkD5e5okOX6IKYcVnmuq70BV2o9Z7ufrbJr7l2F8qW31PknfYlWutkWyQqmfh/ElUSSfWmB6R966YRJP18uln163K0qoKrHSTij4hVOt7vV4RvfBO+RbUtL20L0ABZK4LXKrKT7QkiIO/kzodsArn/61pB+SdEkrnRppRnfGO+SbVJq/vDsATfk3ucsbcau8Q3nr5KZj7Z6BAkz7UR7kdXknia5c/k3uUjCdoq24qSYtO6Ufvr9qFai6E+xmnfZ8m+t0ErFYpx+nhVorqtBHnd4yqdTpaaCcOsNUacdVo8214OToarjAJcotuqMZ6DKHF0yFqdIbTdCf6zBFgxhfT0dJepxcJnFTrw6r3nc2hRi+fYYZuwJvczUURu2lawMVuE+4UKrAsByDmqUrS8ehKSCkUy9JUZNfcl68jqKWmgtw0cICBh7R/SolMgbXtpP//+D5FzlKKXWTcbUaeNCrT3G3zjAbraNonL65CnM0hQPG19YCVfsO/K0zzOB/wGNQUHy3KTsL5Xs3vVwvUZwXanelMrfBkANUlmd56q8wDrzlOsu9c+T551kSrXPUaai1wQ0GW8NoDqTovVhHEazJO8Sa485LlB+towj+Xiyyas7khsfO4EOY5VmTjYMRBhanygd3TA3HgmlChw4/AgH72kN4mk51sSZxD6TvdRQdWKU+U0NiMKp+FqVkSoTeoXfhRxk6cDG3KQetKdwrx3CW0pS98/TasoMXSeo14b3kk5cRfj/zfzy3PKN4y2++qdqxPipJXdhO7Gri54gJGipeKsqRbHdZP3Yz6fphfflwdDSe73lhfJGkS45n9F78qhtA6NRZZ2m4N49N8q6+m5skbOifhu+8w5IBwLXzReRfZiXlV1n9ROwEf6lUfGrdr3py/GBf+am/RDlKB2mapIaGRMr2Dr0RyoEGukHQ1EIJxN3Wft3Tf0rRhYgUfcNkXYZdRxYXXpPBflgxAakNuh+10y4SeDfraOGTDYKdQ8nQVXf2goNj9yLLRce3L15cocVbFDSBd7QIKK22sU9jsLpCS5T6Edgd/QgfIm9BOYp34YcRCjqNVh08VDh2nuoQeZ4i/2310yel8X5HHtiVtwnXYYxZNJXhk9gBr42ut47DP9fIQypEYc6zSNZR4MUJESoi+JxrkFZd2AiOALgQjdD7ae7HgZ8GlK83GUNrHTyq9GNOc0QVdBGilOGdPN2b1QYtwMFoxkZXrnkQvwvTJAbxqnPiL67CGFW1OuVbo9WZpX6cgXTRzK9XKLlQza5AB7n4C7g7Gv47iLN1im+k7GWarFcnaHmO0uwqXIk4qoyu0bhouC7zQmC7gFVdXK1V0mFhhRVmTirdjGq/MDAv1mEUoJQpRl6sLy5QSq8+qUVz/7tdxZIwJyd9J8zdghwHKso0MVwC1OJEba8JLL4l/djp+St/EebXqukKlxk63c6ht1v/4PXGJ4IgWrAcKotxn6YK32nLq3U6UX//uwfCHSYPIutn6/Rd+A556B1Kr71sfZ6hP9cozgXSwDOuU9SpDKcQKmX8zRKyc00NAhVPKUAjfuo5YlIxBNnoMnBOCMKuVtd0HEY3VVc1R8Ku6mLZC6iXLM/DGPGHS9tr0FYN/WnNC82gbhBoYhghU6gOdUORto8z0tgw6PuSclE3IG+nGqt46xHkF06n/G1Xp9PKuO/6fhLsksvT/zW6q1Xfz/3fJ4m/xBjZ+sjHcHvWHJcRRa1OFTqo1VvacMcLOOMubZorhmltqPkGdAS9dZqiOG+2OnDfqDmIOG49xnEz2adw0eOcGks902HfCzNvHfvv/DACPZqjsHORpMhfXHlMVRZwb/cwxlCS33/7w3F5/OBZvfmUDfTkyqi10arbU3GENh+CnhX1AGrrFvtjMFzhvXGlIKXDJqZ9bo0sDo2WlPhG618jFQug9FFyFl0jJ2ozgC6ZDyzwWwyFVvgdYFdCepomOVowBnGaJqBvat54brWAI2u8lPAQDqnz0VW4uis9Z8sscLKOh8sVSrMkxmKNQupQL63Z8g5/qADfEX3Jmyt8Wf+AH6At1dpVavQFf7fSB7jZ/l1+DLXt2rKaBHRDLmfmE47UbWEnKkFZ3cpi/y41KwmfFS0N2aqOgoT1ThoGuq/qajWwaNtS4w4FzGQ2WPg53IT8HvaSNLyEcCKbev84zPLnvNsP3iJCfrxeHZEHTEbpttRK9zhRra3m4yTH1kvFQILDuUZTVMEBwgo+72N5UR3QQpKPqrHU+qLKBm+0sAqHeQirEt+jG61KyeH7CHyE1CZu3XvzXnCgN5rVwEJNnawBYxycWYqQ6S2n15lq8FVXa63HrSMsanxvqHitjWOlAaKPoia2M3gGXZ9dB+999ZVRE17qJUedtLRdPxoH3UyRv6kyX6/QD4BOHRT6egIVYngFu41+lPIuvkT5ML5IzAs3m5PsUpaD4YnZlIRFWMhJNFKawo7dqWKE8u4qJOrDI2AZbsB8qkP126bfDfQHZpKkStmAMa0NaPJzZKXlcXvAWGup1csjDOMMpXlzt11IkAe3oAxSGwoJLJSteMEaq3WYGl/nWIOPOjjyXF6m6NLPUTF/eXGzpJum/nWz1XJ68uMlOvh0cXc6HJFZ8R4zeDoxV2l3JxxbrLD4tGy06gBPIqc1L/K6gdQWFzqlQK3VRrqQWgMDzm0/Ysh6mGFzaoouwyxHqeLCou8s8/MfL9cafL6O8ZMFenKcWXAFyIDvagS4+K6Bn5yAChjM7GWmdjmCfiXPYY+HEMtxEq2bu1DS+z9YE3wjbYsVUVZhr6CyAkvzEN3ps1FpiLaWc9DB24I3dZv/aPQj4YC3vd028SNre/ut+sp0V2HuxE+zKz8CPf+xn+WkG1wiTYMk12CG6ICs0Mvxq1zyMuArcXUz4ITCjM0qcmryYY2kSFLgNPmQNsqiZ9Wm+ePjtb3SwXVk4zp/ZcMhLnkDg8tl4RVW92zXvFUVdnAKDvC/gIEEvoAXcKt7fpqHF/4ix4lykouLjtNtUUo9AIN2Y8Ijr5sbXgbVh4Apa4/yVcfeA+Rld8YdFvbaFvHc8ML76y8ZpFo5guqd7jrPM82TjOwFXAbeKkUXUXh5lcun/M81SkPFES+55GL8Yn/Cun6moi/mgrBpcB0Sfm4xFnaap9jRYb3I16mGO1sd+qhzkDi+gntR10gGkeQw+Vc1QtjEqvDBiWxoqPEeK6FeWMnu7jNvvQK+XXVl3d19Vj5CpClZ2+7uM+YPqtpHq/9m+WxNdW9t9fv6TPumBsjaj1S+mwT86jeru6ark+T9H1D5wqXs2HYWHVniF25o4IYS4t9RYb5jFo/r8To26ANgdrCBTb5IkdV9VWV1LdjFXe+vv9QWUf0wsvs4GeZufEisu02Apg+/937m+cvz8HKdrDMH0fbWub3Cr5kLiyrHZiGmQDYQ2qRWNuqNZTPRU1op1+7cnVwrbDl90ktibQ2B9ovUuVU+G2DMlFzXU0RH/8JrOa+9RyYJvDBFjxF5znrnCLzn7GfmHpmkgccRRd4MpUuYvkhM0VQEowoJL+TdFpJbLEhCC4BmczZZzLM1RV4xpPkMYVMAX8PWpi+GtE+vTyvCrgiVybS5Q/TZncGfaz/KDKO0hX1s6WSW0miqnCVtcbNbt3dtza4QT1rKNTIhQwmLkr0CCcXLKSELS8S66NTCOg04PxQ+lkhVgRR4HnOsuASMy4kH5CCXW8jngj6s0IJkf5W/wzV74yQnrh5ZG0gMEbr0F9c8s5OihV8kMMtqixzr/z6RYxOVVk0Rg4Yg37d8UaIdljtdCBeu9hGpqdRBoQq60/cOc8Ynm4kD76ZhAFCCrexY+lEbq0iPYF41UuGHClbRwzF5s4lXba1oRQcXXG3iO3Pzcro7jX/sOidoaG33hNY2MgnHNKPXwGN8UiPYjHJQ3BaeAziPQ5h1g2UYh5B5IldFoNNWJB1d2XeWs1ckZqvTtAmFtHS6iK7f/iCbUeTwUwxGDF0lw1UhE8ge4vTXpmqP9Q8H7GHETGLY/5zKgpjJix+IBz/cBcLlunlk+YYOPRKPB3Ih1kkICVpcQaLtOtHin3QGZF8klUxjMe4l8TuU5iT6choGs2QaBm9M8UyP9x5/+/jJ/uNvnz5tmE3FMgAPzkQsHaWMYB9jI7M4+SlcZhRemurF0b1Z8uBrheeB2qSPG5rpKtdHerA/+3avvhJsrbtJvLDRHpYOEzlGBfysGookPbF4h3r5GOr74ZLjBXIfRqMQbm919ivtgN1hVT5p9vZYaJbvktbdu+duvOXKbb8EMcrh4nX3Bi1j6F79PycI7ly4sYq7cx2zWyy69s5RlMSXmZcnnszZtuYUqhKV7SjAxUCob0yZtWx+x+lgUcOB5Wwst5fuJKe0KVycolK7nPGXyirVkVApVXG1K3zQdg/lvMC8t5gvWNs5r6RW5v2LX7W9WRIAnpKTpqY7wk8eNbH21hG8DeGZ3gE6T0M/zumPGhG6eOodftz9dICfaoe7Hz7uff/h2acDfJ6zw4/7nw4Qxf/hxyefDhreN/o7XcL54cennw44GmHkb/HIJeQcfvzOMmrAip8IneIkRhr5p/SEbZsS/OA3q7oFRfpPSRg3G+1Gu/SE1PBIgVp/9BpgXGt433sN7KingVdCmmZUgeg0r3sZqZ1jFF9C4Oiht6tF7I9eA6NR2+D7KhJK86hUCO7SmEqTN439VXaV5Hqe7LS/bntMHU2FbdW3K11HpoaMBPRtHPbcbd8Ve+/EVWmEgfZK1EUc3ILpCM/UOUFZ5l8i7xuv4TW8bxj3a5u7tZwTb01Z4aRhoToiHBjrMXc/RxfapR8gL07iML5CaZjXyGKh0T5rvWqNF51JIS04z2aqdNKbaANhP3MW5muMZVLvoCgS6Rb2ycErVbZOYCuhKRVaySphqTK5PReB/2x9/Qi9V+e1I1ZxR8399n1RH4pCnzgMlFXy3lfl0j0t2PGqm9Wd+A7Ie8g8yGF92IMAds/3Yny06A7TNq45ewyJShW4+WuzzKUtTx2d+/+URYPu0SjyH+Hxu/6v9/itw/lidi8FjhEXirvNkMHS8WrjiTtxy4z949Br8i84wWc1L1kVXaIm/NuGIn1nMWRLmWkbP3CFMiMMHFUCT3zJIiCRHBKYFX07wzhAH8YXza9///1rFdHwTj9UPLGqxCKCVEwxXZ8TkIXRvvH2rM4x+oT2fOxbdEWBJKD54zDGHooZJU+iJMQZZ4Gxm7Kvyes5Hve6xy8n47NTWt9ySpjUE6qsZRljdM3KjIz06kSX6TJ8Mg+SpR/GfhyQLNyPHG208Fb5/Xd4rKjTdldks8Le3A0Cenxc+R3fs+qnJ2puR9ao4I/uQt9XXwk5JZTlRR+0p4YfBCgAjey5RIybs0B3hYXKEadtdsRpu3gutB/ZrNLKFmqNRNUarfiu10HorNA69o9hIXpFjEjFSSu5aRic+OSWgr5rT9Wa8kLqovfIrgf6bfcPDdlJ945JdQh+bn4aZkncGaeBIqkBxge+rHXoaEquNV8VcimW1neVzo2lLhUx/1Ah5rsMpJRiiYexYlkrTg10bRWd+I7K241ka5a6tuyFJqSEnLw7JOTUUqbdo2GY9St65wK22mbZKkIURUAkNKrzyrtYaKqygNXP6wdvX+XfuiOQp+qzeJoV30usSd2EK8wVX2Ujzs6hodyjamzRhrNzqKr4qFpUTQLcRpSJEDVNXrtpYW9kDk7CNbfRDcYKVVWpunxydAw8ex9irbGioRo1Cz9DXmOKulkWXsI5BAWgbAZrfK/vtQ7C3KXhC3/xdr1yaUkTzaN06cc4oYNrF2eg++h8fenSkMT4Q/a1S0wsLn2EZAMuzY8TP+in4TtIvG5vfeLH/iV6nUTrpdPoExT55yhya5rlSeo0Knv7ObXF2f0E6dyl08x/i3hyfacOi3OnZuk6y1HQS1Fw4sdEhW7qJ2jG1cVFAsLYjD0Vd8gnZ0/63/5QecHWU1Ofs/IPZg01ivM0RBlMp/iaJ7kfDUgTN/V2AXN2c4XRbvUnRU1ltdqIrL/6TVXSWT2CgBp1AxE7tfT1wsjwWRrHwcRCt3YzG0tFOUlGc8+AdYdvRqKVEPzWNjAa2I0Dr/zsaory56w8IRGdNFppWHypQ1N8VaBU86bg2qrw36BFYgaHafhvNL5gqjFBTQL6Xqok2VUmsoAybvQdGKAPpIob+etz6VSTH93LtVH+AUMwL2Tyk95OcM6KlQzj/LunzZb3jce3HpyvWgSuv+HFtzTeTZq1UyLQFzPTIq2OTYeLtbBqs5Nd/a1y1PuB0msd7uKKc6379b0uVILC4bPHz+td5FQFLW5SSoor3iSkbVoqio9GUjFmrFiUE1PkV3bKiibxFNmMQZCxW0XCweq4+ENnmqR5k4zT9pzZChU5SL/tWPHv5YpxEZAodxK8/gqnEW1sULtiMxAscr3Iz5QqPg9L0Toxi+oRiXKrrGl5iXIzdJ7eK90MWrE0vCVOMhPIKgRShZQSFf5oIJoYXGIKVfNwND07Ohr2hoPRbP7i7OhoMLnnsCO8VdhFia5nA0mhLDgzILpQde/Vyyg596OmJNJQpKqSZDhRgGeOTbBTQnH56jwuAUB9yBhbgI0jwEMB0C9gRbE11fPNGgMXYBjUMoN6JILhsRHDBlRAmSmB8sBVe6NwfxYZkJGJUImQUxYuo6eWD2fjnwej+eB48Lo7G45HlcS19UlYJZHZRWYMN8GUKpiu3gnw7BE6MmrbFkHUVAfo38gcm8UWpU0qwBoAN8TIe2DeieXwD66odTsMahmnRHfCoBrfnTKh1pXFbRupOw9a4YhD3CFEWSi3dyq39yZCkzOncxFy8PHShEXUZSvwv+SCMJX/RmZh9uP+wjAMDAP7+d2Aa9CjJ+iBpKsNCHwY50/22UFpPehjKMUXuZzC8vmyv1kMxC2DcIzeIYUmtbKX3M7WqH1qCWs96Y763dl48uv8uPticExFKyPTL3W5XdZfnkzjZ4vB7hzj/+IS1hu9a7eVh6u0NzjC2uZ15Zki2rGi5DTBebE0m/MSQQ3s6fq8u86vEpgWF4coY0aDP3mCGyLvbtmZjGZizL0BTzu/JpntsHekyMleXOdIwpMJlfeS/k1Hdks/An7kjAJKdGkY1CW5MrW1S48eipzH3l5Ld5LFWT9TOpwQOrz1W7VA1YO7WSUzZzn69n7u1gIAh3u1cERpbCYOMw6yqWzEtTJgr5gaTUpnw/68O+rPu7PZZPjibDaYqgYT9dXC8lTa7LrGKLzWezJDia8frVWKI1FrmqriUPBmM5mmFMi/ZbOU23ZbNdh86UkievCAnd6QBcdcYw18nznaOsdrU+isfSSlRvvWNdt1LHH3k+alIEzsNF9HH26x4eHzD+EDAUrJ4DQyVfyg0pDjqAjDTu3UozLPqZpfHWrDI1or/wlU95kTxRaoobgjsM0Uhu1gfgbxMK0NLafCoJ+HrfQWpCLvJYpBvkcsg7g2WTu8RX77A/+PXdT4p2d/HKhqKk0gqfNytAaDPp0jSb0U/woilOozLczetJqIyDBAqfAQypoYKBdDSyNZvINInRdhTnOu4SucEhIZpjJbZ4JWEThONB432jyGYLnKrxVtZ8lx8h6lPPlKs3VQfzNOaYLH2pvx9LPaDboFnVnyws/Qd0+lbQCTmt/d22kcOIfl4GoDtLQvK/asMrUvpCbVCu/qrL7GJwL3ncZDZlA1mdSMOxV+aYLPSLgcxAEJFKSRYwc1YvaqoCtVwTvwpTPM4H9H6yi6/mXtR6SUoOsIcqwMHu8lymEw+LtqmLYKsdoomOFlnKSo52fqlNo71bE609xP8+xNmF81RURvPIdiChpA9PxQ2kr68zZCABqUPnm1yBVUPg8zUO9nYYC8/ArxnN2sTQowmC3JR1AzM8/T8HwNPMEv/nqIv8HmFd9V21clw6YwylelGTq8VLi+lIux/wSiWDOElQYtRdnYLaMXx1PEXoIJI732Al543SENxMJf+QuSJ1UV5QTvvoAcd7hGKVI5gt6wBDMkEQcIdmzAliLAOPw3GtR1f8AewBiKv/4SRjC9NKBlsS76bOE//OA92f+f755tZUuKFDZMPCRbg22GYZ34X/lRQKO6yGDWxwFHucaBxrhz4lSlHdzYF8kkb3tapIH8fO2WzpgkPJLYuIpBi2sThGonrnorR9aPgyIzUWn5UPXlMkVoo9AnLmWVbuUNne7YIAK5FCfc1QWO/pOet8/YKa6hurRu4CAnn3WWR8dJA6A74ooNw+O29Y/tB4LGzV3LKoIbSXSjfDzra61C4ZmtFBMnUBlzPID2l2P1h3KReFFHXLQq34eSgpmO0PNzdJlApIKDntmtrEzLJV38n6qSJ5qoX/ekicpRVfVVmnUSAW6Y+G+CFkka9KSdapY2rl3dh7YnVBl6jA9yo103o18VEc7GudrZpPUU0aylznLFthmabWDdgG9voxDzmx8a9zOA919N860bxa40IDI04MXfhdJIYeaFMa1X5Oo38dmerdIsHezEoXiqbdt3oFKyigICsbAoTVHwvWfKFOyp0vZWEFTofLEepmMoo4DLlF1ephCijYqllNFTDGgWbJTapRTlYSom4pSHiJLFWzhc7Ov0Ol7YDhK7k5XlPellLM+JS3epASDsz1ijqsoMqhM48oBKxw4XQm4WfglQQXmzoLsiFR3gPDKgvPIXt1ldzncVks3PNZUMH6/CONOc6bpooSfup+R8ul6h9F2YJWkHkhLkiJ7h+JKE2Sv1qpy0dWYv9SAKtdPDwGyAV377uOUPkRkErsFj9MGhBJ4f28WHMpi/j6JSKVuNS5ZLijL8BaewHI1n86Px2ah/ew5bdQLPPX01W0TrZzpXvLlfsgCgt0sW1YTHB26ks3ElZEZSYkLjLcWgmif95ELZnxf9Zuv0XfgOBYxYPg8CZlA7kbC2IDrbQM7NO4MPYZZnTcOtt9HC1G/J0mpNjQQMqJVP7AIsEKPNS7EdEZ/bAqr0Y9VtV/DNL9AHil18l946as+TJIdMayuiOqyL2Ze9znS9WqUoy45A2x/+GzXzq1CVc8b1fXg7ydK0r0RyhZrfiFt7H27vbWjxbrDTbFlzeqEkWlk1qiFZVnsoRyv5g5Y/y3vMpsbeWirWWkxMkmDkaAVY/h6cc3D4OXhykLUSdTkZRK2s5iXaZTuPchzHBci3pxf7efgONKwkMN3PSg2qZ4P2cHzvUojfhjFcL433MPhjwAUZpjPC/8Mr6CWBoL43FXxS3MDKtwjFD3mSFGvmIumhPiSeYsJ1TLX8xSdSIksv62BsfXPoNX4DTLFROr0kztGHHMjpj0aNGAcYznblkEWHmXcW+yTO5N8oIMocvsgWdzbz8YfHAYpDFCjcfPho/CYbJflRso4DxWBxkj++gG+mgYZjRc8wMXbRMWBhANLkccLamMabhUuUrHPFMDn5UurMvhZl9NQeX78R7/Vj/zpZ503yv5/DOOhM0Z9ruAH8qO31rnyoIOAdsr91zuJwkQSo9YeCucJ4YqkDnX2rYC80Jx4UiYgrib7V7ZjYqGmLnzRyy7l/iRxaV4pwq+e/SpZoHoSpS9tFsoT8ifbJFZUe1CNmizRc5XPwwtl0V522bnf3mW33CvB5zYo7JTRNDi9HohMyT90X1HIufXe4K7n1t08J00ocig08qm6YhsaDWfirbR9mZUyxDezqQj0c4Hhb4PFsF06nq5TtYvtAQcCREyTHyftTP9VxMmjxKry8kptsE8ia1AhdPIgauQkx9qNouFxBoEIjRrm/Cp/sd4IoatQ991iGRh9gajIxVbSBoK58JaD0nSqpKvWfqiQPAGcbsUaWKgYfNHeK2kGtgztc70tVKSLLmktpc90QAouVYkzvdJnTu1pmad+h6NRD3XowR1RRUF72XVOjNt3xbexWUf/OQqyKbquUGupP/A/hcr08VmSG49uszXzMW5RSH98Nzu1VetywrqnYYzok+jJHWoy7oOgtSmMUURRZ8UD3+CXKe+s0xVnVsTdM02n4tjclHo/MlR08EIQ5fyPPvu+Zg2Q3a57FS5x6PoAkSp0XSRJZYcT+dcqSrhT6K/yhTXC09LO3bYGuH9pC+mvieMCKkqpyEGTJOl0guhVtjS8JadTmWUn99BKx7dMeZtKqzQsS4fF/M6+K1hUidWdp1wS/+t3OqfNhlK1rTnelH7xzYgh3uMHHyWUSAy9/03Tnz/QjeUApPzG9Ac4iXM0+G8Gs1cRk/NNpmrwLA9UtLOXGcEPzneGyB0ZLTPRCAULHnLzsLIXBLMHjyJ9tRI8T/pOCWmTuh4YbzkgwfpRYQWAxC+PLmSZjMa8wEibxsVFiDaTJHhoqrKn+bpK5Wew71NXppdez3MQoEJHVH7MAkpvj03bBK3N1FYfkPmBoag6sAreZ0O2zugxsWSiYfImdB6oXA5YUQW8QVbJNVJNnVLti3MGnWoT2EDBHw8bJIqfAxKdhoMEda6NlX+70/ZCWjhfN1vbG7bCIi2ZddUsHUQTF7+wrH3zwF/l0haII0O146oHyaAkuQ5Q+LKAiGnm/jdf5HyUCX4nhjFLA7q2s726vL3Vcqmu+grYJVZwNbA1dd4kYRTSfgQmuyq01HBEnzd3mAxrrEcRnyxItIWr+gT0+e1GSsYen9HimXgRU0UzjAjPkR9ilyM9EB4DJOp7gXDePZF037QX4HXyA1CsB8j56lwgnamP2IvjXp3IXDBuYlIPxOq/TZ5oHyTofv0PpRZS8r9kTpekmPSeIvLxx2AIYwBEUHnYbgDI6aQhs2dkYgJMkDvOEKE9vAAQdhjpGXd98JJwb5cajTBfJCt18GO72sIV1oRXya66MUGntPig17qj9rPLsAt00Dy/8ReXAUkaRIj9I4uhaSjh0oPC80o3bpB1pnDW72q/8/W+/MyU3Av9u3Ec2iE1xR0g0j/9iCl2mE+OURJqJLlHuFK7s0VW0MGSdXpTEhpCgKijA9yDj403BINMTed19dkY2BHWUbPhNQKimuqEUffB+JhUtSW4n3Z6JEIq74kaO/FLG50l9edBlSDyxtAp1D5B1Tv0cX3VO/SBdp3fif8ArtiFMZL/DeBGtA1xWlKXYEMPM3EZSoqQpFolqF4o/vrI2gXpJoZZd6L73wIG3STtLvViHNolIV22vK4jaolYO8Kqq1RuRacpFoM+eRWps4bQbJDc0S76xt1/DZbmbXq7BTUqIF8YYoPnqcYgwdpjrNNpeA/9oTtXAa5cvrvzUg//4C8g5HcblqmD6oMadZrPo+MOh93X3awiKKn57fuh9/c+vtYUjSr19Re9/O/feVfT+X33vouHhofe197Vbu8dft+pHxWxh71yi4PUkKJwBTIhipjaQjFAgNdkCVeIMWCvKAJfrDOcQ8c+zJFpDCDuEPRYTmgmV59DM0CXMBbe00LmaDXG6Pid9eAI5tk5plcr8amSAVRTmTVgfbP5vf3gfPUid1/a+/vvX3if2usWtxsTw1JmgZfIO4fyM6nK5/LhxAy5eDBw3ti4b2g0nlg7RqpHDoOi/c+h9/Tc4PNrABZKOdAjJpMcXHKvUiRdSrIGaBN7lGaRw4iO34Fzubp5Itkpd5pSwCtIr5bhL0bsQvUeBd5n6y6WfmgLwSWySnkpd01XwUDu644eHENihYzdSK2szvidf//g1wbaWWVZ6/I31MGw8g2bn0Gv8rWFq2dxhEwzigKRLbPytoc/npeXL2hUCvFBgiP5Or1FSSWELLPnRHZGVjaRsXJ5JL95zb68+ox6v8/HFxI8vhbChBhvSzIeJEHxILi25oSjtSsxZbsbF20Mug5XrdRll2UOLfFb/DSDFj3jfe0OSewGyAmoep4skzqjJrDcZdGeD+fRsejoY9Qd9yNf2YZf8eXrg0PNsNOyN+4P5YPR6OBmPTgajWTHG091dlzFG4/mb4ag/fkN6PiPTG3sej1+OR/M3w9mr+elkfDQ8HoiQ7xn7TmfdyewIfMmns/6r7qh/PJgWvfcsM5MO86PjLtS4fzWYDGfuU/80fjEfv/hp0JvNj4cnw9n85+Hx8Xw8msOH3vF4Wixj34YCYazudDp8OQJM4Jh+OoQzKNPBTPSLpt33Xbv/cjaY/Mp6PXXtNRtMToaj7oyv+JmxJ11btZsd6awrpbbZq8mgKxH6vlP31yfz8elgQkorCr2fufYuTbu369rxzWQorXffrWf/7HROqFXo+3S3Dq5KFAWrdesPJPXL2XjWdT9YYlfw2puclFC97zgApkf1EE9dYSD8cD4ZTM9OBPQ9qwUCPuKDvhKUvd0a6DANZOUT/cHxoCCfPStrBTKd98aj2WR8zHmBtRem0Xm/2+OMwLHL+M1oMOE8wNpp+uuo92oyHg3/yZa0Z78tGC5PzmYYefMuSX4iB2hWWcxfyu8yH1G3kZiFtol5AHLs1Z+Fs20Ekh1gdaPilOq/izSnblU9b5rR5EOln1JF7nJrStPyjwUJqn7HdGakkpeD0WAy7BV8mgoiu069Cib91KUbW2/3+JhTIyHnC/hj7Avijqoj9LV3PBn3h0e/lvo+2d07d+h7PJzO5v3hZNCDyCv3Kxh3xoylKmfYLxXce/qqOxmU71CXaUnH8h1qufQxtcyng97ZZDjTXCa22fvd3rF1iKc2KpkNenAWzINZKTW7StLcmw7IOHxY3Nl0FeFCioRUgOLGbwb9ebc3mM9+PWXYNHalwh4VlKEr6bVn7AW3T3c4whEvpY77xo6jMazttPsSeF+l71NjX9Z8PDr+tejzzKUPQQpFpq4Dvr0G858Hk9HgmErB3qH3naU9pmHees/UuruIwFomuEt6h56Zzqf9/vF8Mng9nMK1uGeaQWA97AwrWcHebp0RRkDHxzV5QdF9MjjtTqaD+el4WOfhiUfBT7gX3d7PZ6fz6eCkO5oNe5Qr7Ttw8GKM8elgpIRk3z4KewIP3lhxj6cZ/GM4nQ1HL71D74kdPDim8/5w+rPbm/BNF+ifHNldkUvt2rvNhieD8dlMlPfNpDccHQ1HjClf0D8m8iYJ3Ckz6g9GQ8y/vrV3wajgGcFMZ6Loc9qdvZL6PLH3gZtmOHo5fz0cHzPe/MRhruNx72e5k8Nkw9Hr7vGwPz/tTrongxmWoZ/9jxsyRt2TwXzwj96gP590Ry9hC/Z3v7P3FY/7/ncOkxE5bQ5iH6XZXYeliWjf2/vumanHK5Amj2egQHqyPz/pYlIvpWYj5AU02XIf6nQyOBr+QzXYs93d/7EO9lNyPj7/F1rkL/wsXHQXuLxmGF/KzHnPaYjBhxzFAQqOw2WYywP8r/H26L0a9OeD+aw7/RkjdXI2GpF9UC3q6d6T3XPjogo9I82jxJ3SFCOi3adPnl48DYwj0jhH4vhFjE5wpo08B/cLY+g3zUHNSRJmh0k8gTQvme2w0jmrvfb2jXPKHfoo8q9PwigKM7RI6ABmoE+TLO+HWDM7RXkeIdBml4Z44rbwInX3+BziKDFcVWh2HfAwXVyhYB2hlKYeghpqeBeeOXR+EeZZrX6YFgejs5P5q2G/PxhZb70XL7FyFHeBNw9OAWLt9WY2nXdHv86ng+mUCckud8yb2RT8P2nMH5w1HMRjF4xI1gdJFWrGAzgZg4uydeTpbIiferPha8yov/3fg2rCM+p5+q/knLiiHug90pjxlp5lFEipPOzNWaLQOn14FbVNOrPshPY+6TpmSfNrNS6l7a70oJYWlpgfb1so/MPQNcEcXMiEDwnIaR0N8q3ZMnR/5WdXUyTWfAbaDNYLOO/s5AYzP3t7lIC7dlZjLFZkDPMjxVAl9RhAXBqiqS7oKdQ5qoKjwiUxaw2NGMW+TTlKlzADwQFKu3mOlispY4qx/XS9IM7FmvZCEQYI77yEZI7Wpqx4gm5Qn7p0voBrw0+vp3i1msYs97zijKvsfcoIFhq8/UiRwE5LwsoAWZYhUv5YpiMWEqmiIZO7makf+A441byoWIfBcUiwC5smMduKOS/1DilGSzXkr8KsI6IQ15FRkTDGqMhuSy07lWRKVW5b7lJlpHK/CsdVZCMcxO/CNImxK8KJv7gKY+wEQ6tret/Um5Gx6TKkVfaN/V4L7gsdKlybBZLiYJwplDzElVeLph0I7+COFZ2vW9rxWeGF0lDgN1JByY/F+IULVqnjN2WnBeIqql6DlWEr9sVEsybPbewZykI6ceJLQsA4vn1jH+oZHLHhBa3oEDT15Zr5ienMkmGcf/e0jq83cQRW1KTZGHBW+kO8eV29bOiKjEze5u2i8ijH4UNKxw1aNFjFhqtxqDZubmK7MsvaEpsVB7UUVxR5g4W2zB6hgBZ1CVxc5lwoevt/DRxM9vt4heJe8g7Fnd6Vn3fqunbhYbnr8/7Tm7k+/5Sce+R9T6q96/yx4GMGC8Yup/CvKoLlWA+0WENMN+F/FyFKvQXJREO2XJfclvHLTpG6ptnqVK8y7HkpDliXhkwlLcm4PEc1zpE/HfbrlTtl5aoLIMmlK/zQeV0NkmEvjyAAH7HGGCdVLg1SzYzd6H9/2uweHHBb9NODg4PK7Yn7eo1W40AZc0y3rI9I3s+khHISYVlppIpowT7tcqR3pd8sqf72Ru09CMhQOwKWTAfqRhCkVYW7Ttvjh1FdUjitDEYv4ECSitiGMiSlI2qv6sFNfYLBVKpNjQt6VhuprueiX4dmxxBKJIPFaHzRzK9XKLloKkZsmUeMVlVagjgzC0WXRjkfklxIXOLW1HmUXjgQSI1vTa4pfdOEeORi3DbmnpryJWyQjSqX1K8XUpvmMN2VF2iuc3ODmoAsApFPxbZVvyLVO1MKO5FYp75dmVFqnNR/Gr+gtqnBP2bYW5U6UYrW8Ah05Jkm9TpTY7iMpCtMSSboYLV+WSHfwT8cQY4079DB2VM9g1Q9WX1MXRbQ0ixASgImzNCNomTx6mWUnPtRU1mF2URU5ngIvgqc6HWdollymqdNgss2y85HQ+kO9ISCC3MjEeWcXM1xFS7kyunMZnexD6FKN6iMOFiLxZe1zT8aB6rPim7Ekjhr0myEiUPpo0v0v16APB5tSnGQQIIRNc975z55HV2XgelMY3+VXSX5wNBdx3DoU5Tur0UDWIfe9eq/8qNH/9Wo+3Ou8ep4RYmpNqQcG8oTUS8sRUVlVSiKnCRV+WbT+jSOF69Bt6t87qgVunTL4ZLVqAh4njtSUwLCVFLrC4PnkirBgGV6aah7F+TZC5O/LBd4JZlReDcgiET5I3cUCXsg44eOZMVQQYQyZg/uHJdM/1QPmSpsQgFZEEYESVz5UA78ReTSTHyKaBvXLbkJ2faYbqWS+NuF65bd/zQ1X/W+p3/pnUr1b2qM27ZBFsSo0fcHnN+ku45DepX6jdrIT0oe0l7q2hIScWsqkIlTh53Bn2s/moZBkyDVyNtcHo+bVKwDI0zgCQoJgp0kxcQBmrI4ybEOcSHwOtcXI3UVXiRxniaRppQoKCczbV2qHeGgFPdjj4zYLJBO2B+difyDDWxImECae19VvZlbsIu797QJIu5XaZJjsnBFOj7Uw38OpMPuL6KhqagrQ3VXaqeHWX+O2VGVZ9S3Jc8W9dNUtZSW4TlRdVrW7r0MXqe7QLxw4t597jrODQF06YexhyDxITh+xOA4P3ClAHpx+Qt0muBcQqb9Rk28l95um24b64QzYxT/vLFua3s4Av/4RbKOAnxAzolbikOxW3I6yvEHsEbNc6tZbc0p9TRPcfpPooPQr6HAoJ5uOblXZmsdGHaXGCIIbuG35iMzAIUpVVOUk61tfHGRoVw8hxXA2l4DsgWDXazRKgZuaZl8skIxK9MnK7SIo9tfYjieZpRVmlyF52GuHqcUevyXTvGniXS2tuexfOrjBFa1V8gPUArcBDz/gJno4l20bEkchGj/TMIMtD/xs7fQqIRj3aXHu3xVwWfLOFchsBDaa1teG3fPFOiVidmm9+capdePsbcalV0e46cFKatQuza226OelNLkkuBmlcyLR5lR3v3k8JpjO3Ow4cvvk0upV6pK0qWpIGYHzVelk4KUINdd3QApeCH7DjX8sLLW1L4lfYSy4LEIEs+j1hQmb7VJstcD0zS+lJGjWpXc/jJkWpsyKFx5Q0Hq9CFRSZqss5es3ArkF5KUADq1N8WiACz1r8LZi3rJ8jyMUVNCfKOzAP8G1UEZxGA553nTm40pmqAsT9Lit4YeCNkoLoAPVu3+96e6mtGNZvdgPOwND4QQ1YOD6a8t5e8vui23gUi8qmxn5yZ2ywjDsTzpJmMcCGHxBwfTx3uPnzx+2mpob/7AYAbF12RgNOrflmG/YsQvvdjL/z42WSq02iaTYslriGwHLgWbKb2eWdNqRx8lMbU9k7gMgr6iZKBOLW83gZv2vNhQzGiFVNyl006SjReTGaxEG+L/KEXZlcQRAwaN015UrzR67XofNbeiokuJIdfh/SWEqfm/yLJ1t5qZYwvTqFso90VizpWtFe9Hbc1x3RWdosswy1GK2IPC3L5pgk+CrX0jqIUbvHKtKnZa2YaavIoVHmxFyBOnZiXT5X0lfohNjaKSLY335RSj7uckiEk2IKe9o1cK3zr2uBR30CCUVfbTXVhTgQljNDks0oRWIUc7nrQWEwFWDrujsa0yowrDKQKNDgqkPLwqfLVpoIc9za5VbCzmlMYXhy65BmYATLMk4DLNr5aXsjzjggwtMM/WTaVfOr+L9KtfWuHy4S8x/MxDVc3LfoHHI24maEMLfDYm9K+cRTGPffLsLO64tvvw5nVyY6NtRqtENRwLTrKYePmYOKkjH3hxBZCYbJiOJ0S7taUKkTc5DaVkDjOcUu9oLAtoGO9cHpv5l002dYPCKAgsQk+TuzBQ1UuUw26C0od5EwBnL+VNUOhVmoLoByMUsqL3lTZBBrFN3HQ4KckE0fy0HjlSzalEL0Tr4ntxEj9OIbQlAzRmbwtcVpBGN57ttGxZbdNyW+Vf/WAZxmGW49CZrPwVW64m4eVVnjlYdRVG4rbCItzemvlXWGpRQEo24HO0EuCwqzpLhK16TTMkCeM14Pn47eO9Zw1huOmv09ngxDpeBb3VcZ/sP/726VNx7K7cyTaHvEnlCZ48lsYm6dwmw5evZlPryGbzOjvmchKcu7SZl4iV2cIVP9ezcevs2Rrb9QZ26mbZUM2IFluImjuiKGzKiFwehtAvHqT8SSbFVqvmpVbl5XhcKE8qmrbXceZfIDU1PXDLtYxzF0t2LQSKb0N3Y7TS8hxuYHYmJwMwEdpMyBuYj+uYicuIDjU24283I1CM2+zKXyGp6oECtyAG/faHdwFx31QSxz99+8eBKjE+wYsXQkwr5JA4oH99rlwB/frNN64WCvZs1JmX1SZmPAnZ15VgY145GpgdcepuHTbZg+vYfukC2vXsuBvZDTfGCqY06leQeX4MzG+9gnJ3KND6FnhSJUvZ1ryq2pRvx37MqB9ekxkRoPh1gctTSteR/El1xeAPpQtGPevf/+7Ba9F7TxW6XkoEFz8OODDwDWedyD0/82IcKc0jDoMwAxNKet3R7r5ojt398O3ubrC79+13a2qJ/eorb4fOtPHOF5fgCjJY5HT35QVotx+fYvH5hYkojNdIH3CSRQloCx7vaTYTsh3SevV4OxWJHf9S5210PUU0bOawmKZu1Q0YU01LX31VWN0PD8sJVFts9bv6iAUUZUgxQYkmXSfaqz1RcWBUU0g5Xfks+7VnEUT9ykRiXmg+xZM6wRR8Us3GNwsC+6uSjrNlklPr4EqxHU/1NIpbPCdSO77If4Nf/mi5SGGCEIbdG7QHVhiY1io9cCzIolSylOQKUnAHs+NVijJasQfP2TKHWtHmdRYbxguaKcHiRr8N3wxXrwtogZvy5wqlcUtT640jtabMxtKKE6eDfs5Q3/bhll6uWDQl5TlYM8022daBxViCH2iIxR4UCmylVwpMaomEUX7PeICVyXnFBRKMrgoYonpJGRwrAVD9rGD7B87mJgL3FOskprl/GcaXX9BI0ahpI9waB/YMLwKWe/471EvIAy5eoBlarj4fXMtqfRmXKtyVcVXXPHf3R7tdzbPB+hP/SkOD3lUYBeM4uuaerbvU9rGAL/0Qa2S19UE3dMq6gUOW1hnLvbHGQ0vdGCCTsK31rRL6i8shiO3ghztk4mp8eNaAR2ujhttWU7tdqgRgHk4CRpMO4VqIyibfQ/FBtsc/yq5lDe97+gP5p85zW+RdJdgqK9Z71uow0bLtks177UtqGlvbB5KahkdhFlqDzVLU1DSO0WQMYLNke/ZG7wKuvrtd7DfGTAT6uhjmfg6VNdqGkpKV4O+HljfGRBSSphW/IJ1c++4sYF70MLkXqdAkARi4drUhvyOchcZTYq0p8jsUCxfkns2qeOOeyoR56lrK6rYcoA7OZpHpmzaBNQDdCt60pPFXnuzp0JkQFwQc9KTya9gsnZyaXxa4fcxk0OKQhJm3DDPwqYK3aoR1w20wQPoec5PAWnQL+9Tn4PMOb5Bvb5u59mzI2U4OPmUyPZJ874EJqhXYvghEn6lAZDzgXySi/1KJyEgVkkhkC9+/F6HILDZM0J/rMEX0GmE3y/h9nFUFKAc54rO9vkB5koawd/z64q6xta8wvQxKlGPSjdHGK1NrxXadxT/9Pm5DW+ukITTLkPIQtyiHEIe5jKxXgLzYzzDzUoKu4D9VGrsjcnZ8Usn0fn+qdoPX+meqOq6rNv7yzqt3eLbyvrOmyXNwYWftpwpneWOHrsGP3jxTwTndO41r+eVfJOl5GAQoHoDfFCS+qdEH6lUAR1uwVJS1ZnTt8EDzy5XJRxtlINByEWhgT7YnzjG1hR4IIQf1Ru4aghA0t7sUmaBuo4hScAMLu+1IVqcd1T2tf5Eoj45tTQ43oErJ4r6sT2bqUQVo6JGPozbUnwkt0uHcwVMxASdQ9h7v6kDhQ20AhpKvOBLm3p6WKMVRPTLsBsDVhAcflG91MNmgsIfd4Ow8YuyNRmuh11jcX4zOl7yWiqafZV5LpbymzG2p96b8ktByq9j/ktTyHpNa6iE1ebR4P3rfet9737Xum2yufBq1wHgJi/KJnY8ufhRjR2UuvGrqwhQtK8KotYck5llbM1HdrSHfIaEqomrXrANx8U4377Woz2YlSG4SpWGMSNNQ7aZBaaa0p9a4NDn9qUNST6eotY8usTv1D4zl0NQLhPtUKzxOz0+2kDLVc0yb6tVNneptkD7Vq5dC1VOlUd1wBeaV14mf21Kc4f3QsRy1KN4ANYnZEC5U4nYu4UHlJKhTHh9moiNd/JCp245wbdXdGPnGU4cDeRtHWW0Bbd1K1NvtoK80zyZorIgDDxCd5JHlikXZxmBHIhl9E9wxUWfLKDPylKZSZCkHA1pcGci7SvDPVoo83veQYuEOd6ws+LltHe+1+R6KUuhDpf8i6tQJp2I0qiMi6QwbY5GL4PeHwptdRsU7x9S2sk0VzW5rw/5VleymI9k7N1VKfCddmF1o4CPqUtzYrnbxwbkJMT0gQY+kJEDYgkq42hLo0yns+ZNjkLMoS2k1mKrb3thW2AVjO3IL2psUTNbeVseK7lyxZwjX9v4DkutLkdcl7nHg2FrBtVy7coZp6aC6CB27CMzIsUe3VlB76aVUZyEbZ8OlMRDUC+s0TYCvNG8tJJZOR+fRlz0uHMMYSK3thp0IduGGu+sTBR/8eZSoKtIFV32SatRpqLrQCT55h7rk1XW86jLppv5MwhxciUeJ/hoEo3O6a8C+16cWI7z1KKauoxxtkeA6MMf+OYpMXm4UCKPK1kQY3fRyvURxbiEIARoI/WBrZ4XmxURvGis87WGmlm2Fe1eCqg1xNDTSBf6YY2jkhob4GblhvSBv0nd3j4QeKyOXv0TdfI5RN7oTdJehyD/jHDmmKspOLNnFYeVLCE79EBwdicg+Hg8/FMeTM+Df7sWv/CxengcbZHZ/+He/xr/a5DDnLl3X8qHVeW6bQBH8ahXf6vjZ2tzAHaDQutlu5mJbgkhQL5ihMdK7qKWoBcZ/TuFw43X0pXL4Fw/LG6sC3e5fBx/LLy6W20R/HSfLLz6W2/Wx9J7e/9Yry4dfJOsU3GUyR0J4iK6Skmigaf3Fy/C2jHZGmvviZ/jFz3BTP0ML+StroT8s6t+qd+K2nAtpTfvPx79w2+6BmyDgQXkIbsldbCNCKMzA9+KRYl5/IQi4IsHsI8gw9MvZYPLr/Hh4MgSdqfzcnf466r2ajEfDf5pLB4jFPNi4J2czPAyvE3BICntYNkFY5iabIIlLn4NbkMRjzfeRzH//852GTKRwD0/L/yY3HwXT+Rw9Y/TJoYqFFdT4AojOL6e7wUpI3obq/Ycl9WuUSDr7n5JzUsAWOxyYTPOKkb3n3h5UStENp1C2uBjvx+t8fDGBwrY1/Dq4div1fkrOuSVfyB6lq932SaUZ9u9f825XO+O3d5hJo2v0P70rtHg7S96i+AQtz0mhRT2DseprvUoxUrPGqATkg8sWKFzGOSDJu0yT9cp7R2xotVN1AMrLS75r709O+sWTJ7r2zhEwgMzLk1Jd2Fu6KdwL7JQCgin366M4xKXb4XCTQAqTKVDD9Ki1HUt7/bPT+avuqH88UBzUaiMvWaFYxmG2XiwQChTUsHWg30yGM6zDVsDKvz0EELEtSgskKRNsA1PFh0nl9EMPitgr/R3FrXV8IFTBxNpKVT5vtHiLgibRYyuw0VIUGqcQb+jAdtspcglCHyfguM6vTNiX937mBZgobuyfw4yra1IuDAXqO6nPvhOJQc/VMMh65i2o7bRyjb63k5uvZKbky9K3+2n8glpuCU3qW2ooj/3Zdb4pe1GSMUwWIGpeVTe7ZEob58p5PE3CFhBbQf8+ZfbzqYv93EAUbtbzmgZyq0i01QYaC7iIpjtLFSMwD2LASoLwgtUBvNnebzNTq+eSrfUO5K5NMreqpUjKR+mCiI3ClkLMkrS1DGzd7IJl5q/HJz7WePh659qB4budb7OHjL5Pge72zd5HdRsZDDYSHu/DvlL1ptuUC7gq9VTPC/0ipWdGsYO38qQRb1pMqU76HYWHpqsoDidppRbA8SnzF1rnTTjK6xSdoCzzL5HF+5LqTCzCtq8pfuMkQ69MkjOdf6eW6CzuBhlAxbYc6L+EKpMIDMAahHBYwWAyGU+oQWHeH4yGg/59PwL6oFFLE0izrlCbwRuAMH7pNBseA7a4vj4CDTTFdHxJFKe05LkyvC/T+A8zaGjfU0MlA9ojRZegZriGpgoPhf9rTMdHszfdyeD3k3CRJllykf/O7u3R7HcqZrwm9+HvdN7jMMt/x+EvYaAM2vEX+dqPBCg9IoKUQlcgG7XXnFAQf0b4IYbrwB967NcOZmYn/uIqjFEHzuN0ff4zum6KK7PGgNCIKjx2zaS4qrVQ2aOoVmiKtbigScKxIMJL3Q+X/iUermHyT9jRJzuvwFU7Jl+1Mpwo/SXKj9ZRBH83X4aD+F2YJjGoqjuDDys/DoRfXvtpCDJepgJ1s+tQ/hdW+nIyIKOTlO33RmdKaLxDr0R7B7ZVreT+jvMoLHOVZPYqFqLMbV+L9HQ24sr0VlLAyw8wwwSpAGXELLyz0u8v3PyRn+WEzbJC36XUgtM8Wb3388UVHXwWLrH/PP+9g/2GRuh9swTR+yvYuepB2ClDqcCBMFdnEPmrDIGpCP49Xflx5yhNllO0SOIga+7tOnExskiKwDdNuCloARbM1Fy5WhXDesP7eYr8t07K/jj3EEW/4VZWv1ZpRyYw4Cwvo/FsfjQ+G/V1RudSp9Pu7FXtTrz9/eKOo4DLTNNX3clw9HL+ejg+Jl7Bt2YrwjMbrEKD1RVaotSP+KOecTSMjNpmoepxxRBUu86usIPmNEJo1dzb3TWXu+FnPK97uvMtHVHpTlIxq1u9kPQkIYNku5EM3iWlgTR8f8ft3tH0bta6egxemTsu9487CvN1GrsgqhbRYqyWWMp2H0ilw6arOWA/4ila+mGMAu88SuApa7OPbKJrMcCRrdN34TsUeIsI+fF61dGkfzC8wTg9zHDoK30jJUlu8veoUhHuYZcFq/QiI4iPC0pAIUkRccCWvpIpq5qCJu/VKaoN3W/5oR7ZHYxW7xwt/CWqWUS2tFcQDIXiPCvWWupd4ID0bJIaUlVsbbaRAirGxeIFQj1Pkhxs+XTNRjqtpRfTIUJDODoituKz7e25h1PXBKqNxcIArfS6ioskRf7iitTTItoRPAaKc6hcFQsb/JJWGeWNsqaT2NzEY93ojOhvBscJOIJaG4UGYFY0QcvkXYH8N81ZMviQozhAAX6uEyjg9Q61TXR5+swT0SsseX8WRyjLyH4HTWvm0Y0cjjjbSPHKHlM+8ZhvecOpb/1OGFP2ZphwHUDgXI/yOU2JVbJKvUFA7+hs8UHfIdt0hF+FGxGFniDqEsPGhFAmArj2G9Yuzm0dttxhuytbjYWTWrus3kuIzglj1Uvyk16vgxklS/nL5QfCOf1MbqcxE8uda6pHdbeBPGqbINb7RrpoZOuI2N50kasRoowD0LPr2zwu5L4TH7e1lCGSm4MwjIst5XYZfGB7REjHhLR2OZe4uWO7W2Lb9c+w/dSaTztfjCgzHJZlhhEEAUdmIrk5LT9EeYCSD7yksZPeZ0JIHN4NSerTDQ0jhncwfe6WKITZx6nBx/QQZm2IMi17E+ZXzf9r/P77j7832h7R2fSS5cpPwyyJO+M0AC8Cx3cyB8CmK9EBsQUQyFrORj1s3CwmWp8TJDX3jc9WaRRxBOenle2UcQW7OrsUe6GrbcdA7z+HccmyrHpytR9Vr7OVpnL00uxQQQMzRNmk/ktJYSHCY3BlpjBBZW9/VNjAZKZY6fI9hkfTWqGDsZkuzGYKpRp0R1yg6rttUcpOhmXdXJvFa4xTr0VmSuaQwjxmbBLbJx6A723ZDjlYrvLrJmkEq/QU9brxtwONMpJyaqoR1SuzNDYRSvDVDyR7zzmSxsfy8Idck3xVfWClG6p6Yh1uJhnJHZIo09CUIK6tqX1abEfLTeFKKcEdITdhYBr2hF3F/PxKtfYyB2mbidDiYoMnf7FevEVA9eSd8/zQe+r96DUi9LThfV/8uPcd+XXvO+nn72jj73DrxmX+3dOG0rEmwqvhkxUL9J57+9/t4lHy/e92YRjp497uPpkjh7+RWRD+64HqDmskq0O4wfiOqLLaHrwN4wA341ujbIaXiduJqFK1jFCM20nLVDXEE+KmTZFR/gjpiFGG4pysMIlRo6UcgOwvGUFiOMohLFSP/Ahre/0s03AX7/uSpUYnZbExNUyqEABK9y//94KcL9Wldu5nqEl7V65tjU8hGc07ZOMaI9UEPoBhYb0/epcoPygkHviHiw6cemMKnt6Cf9xGjp3Et7sSiKPIjBwGs2QaBtTDguZeI33vO+NwDf9MepwVy7ZIopIbMUtFrc+Sj8OiScH5Gh6rQhLaioeys42knFqciSHsBwtF4CBXBTUInr84WFi9d84xU5D9e3/X+wv/ZfeZPvcjhqf1gMLkmF8siQaW3rPgKruFKLnjs2Hfi9ahJjpu5zhJ3q5XfIexH+WbJnF64ttMziiM8gBDqrF3exEQQ+2CBfCbRcXMxj8PRvPTyfD18HjwcjAtxsuoCbncQqVuLDp1OIpJlsBDb8/Y/HiNA3HUOye0k/RbmP7hz75mt7vBv9ZZjs8chyfTbwkmy42jClN0IUBqiD7cYnCLzmHF5Ed/eOjtPdnd/QwpW2IYCPPq28ppLgZAEDZ6o3QjMmMfxj8l5+xyiSW1gTGBN6TgIHEkPyXnJEP/m2YlKpbSKRm4ehtJgz2oeOrZFeJLxelGyBId74lNsnwsedYODQMZZtKWqa5ocXfIxVGM+uCuD3k99dNv7Ahru5MQUKAJJjXQ1FY+RbCXXHi5mmTugCkIu16fNVAWdxrGMRLMpadhzP/BZU+LHl3v3riiHo3eDtaeDTP4H1Q6QgH5dpMCQA0Cu+CaAEOSNLznyPPPsyRaQ6asttdY4cgUo7MtiyXtzmaT4Yuz2WDq+eJND0AoGpVlkKJPJ6bqisJgKmdKVozWUmfH5wF8Pai4Qk1jVRnFV2nFmITybFf/bXePifJYlGk/UgkWxcqq359Uf8Jq46Pj7sv5i27v57PT+XRw0h3Nhr2p95fwcXw6GM0ng9PuZDqYn46HI0XUrz6WVoguPJTyvD7eu/dHxwvuRqdxnllh+rW8N0h5WEYg81n3JY529kJdZnCW/RiIRMi6/OKacI3BB/X6CBbVS/lf/fsutKULN6UK16yt1VKH8AhzdWQLC5hc5LH6w8mgNxtPfqVJH286nkShbi6nWwtgdScvfj1lOUimXpzEjyseXBaCozoWei4Ud0R1MTaVxge0WOfol7Wf+uBcgFiygCk4iMeLUtBod4FVjDlKl2Hs56gLaRj9Fcg2qnYpEW9/Ss6rbxbaJAgzQEd3sYCHYMlguI4Xz8M4/4EJ+9PFFQrWEQpmfvY2szR+EebZT8m5tlmQ+iHTu6DsxfVpGi799Bo/ByuJCOQFHYE8MMTFViqHC/SmS/9DuFwvJ5AxMFPZECL/+iSMojAj4R4Ke0KS5X2CminK8wjB/WruAmm+luvl+DxD6TsMmNjeJCQotpNl8lAdTnlXTS3lzTW1VG6wQwe2yUYozBvtsFR5v+uXzmQCEghhNt5RHMWirltGDyN2i7r0gQsu/Wt2VwEsFsYBuywRpffcOyH0MsXsiC+OflbgQu7/g3dC/u3Qs0Lv3nM12682/MGDMoaqttYTopvE3pFMquxsPmS6KS296Hy3mbTTSFXnZOf8FBnydUr/hLD853xOznKPiLmAieSlVs3auTYVjKlppPMFDslrFsYwbIOyIbYEfacbBMR4dUNts8woHw7kWLnhE6ZMT4KmfIh9jTKLV2l9qxNVY1jvDxekNIMM4VdfOTAJFzFTis6zDmk+ckXEaVKwEae4U1on7TxClEVX/JxwhRhcQAoakAIx5K/PZbZPfy6XhfmojM/OxMuc6fkfKxT90PicXOS2ZlTZY2pG4mIBzCOSWkVbGMc9sZZyKUqZpemkLHOhcD00rpTO+ZCEDHUE+acbYKe0dyXR7L8RIyUytUig/zkYInHbQldN2LXiPP1gqP8gEZipoYR3U0PVgXYF4NAVgDrpIkUG/c03Ww5DMXN//VZK/X44ND8ZNBgRbiuW9EAWfvWFSFxftBbuVCcvRvUFUic6U7rvK0PVNDpUNqD+k82G++ePbop2NzEMOwiES5Ssc9tDZUhL2DKx0VtBQrAsJ8/fkChoSQwvVaTRR0Lk/Ru0Eas0SS46lUxXG4ru8sP/4UjwOJiu1JPXW7zFgPsZwzWrNFxkXP2zeGEyu6Fa64wfsJeXKVZkFBOWlzNLumnqXzdbrY3dtYhus5vm4YVfVKs3ajbpvhfPZaUaENww+bDJOl0gk7bwNMnyKdIqDGnjhb+CsnxsWJO+rgKkSYVVhdVB4VUB2aiKkyG/XfUYn2V7yrEKOsvnvIrCcgsd2srtSqjaZBgF0cPDqKd+jOidf+nlgALDc3AFbsb4NYj/9pzp/NgsKZ311Ae5lrSyvw0niFjoJ+uY5ZmWwD5KogClyncD1ihJjSfoAqWw/T94S2DAKNNUxxzEa0ihkaMTaAZ+tzKqQMRVzPjKz66mKH9O7O10kjC+BGs503OV2qgpV4wYQymLFxtexkmKer4y9Jgnq1CvmMACSSvoyl3FFLYBCqz3rvwwbuLxOuQXHKmnfiNIuMA3F+mo6fJJI59gEmQpaw0yJAo0JdDo8ukN+I0G/cmK7fxkHcdhfEn2XVpEG790Wne4F8TtXhqUgOSEQNKbGUexaklzkuodJZJ+CRxMNjtMumD68mni8zyo48ShuusDJaNjkxOFlXiEvKluUEn08kTUJ7ClVrldECLCuWjXce5CbKqXFZ+yI72iC2jpv/l0Nd5d1C7O2ES9d9ZmucNENHiwfI9fiiwDHh4DF0djawzjLPfjBcp4fjNdYjHxah/GGTiTOV7tG96uFnYgLqjKEjZhB2VWsKrDAWqeftvJF9dHGICwXldxRnv4xdHMPGDFj73UR9FaHXuju0Ol9WivSS23WIlMQtHRkS+YKd1IgDYCq5q3MrYYpHV9IBU9PeAZIbyKFNkp7YqCojfx/wN4puQ3rQDLSL7grNxayihe0bWXRBFa5AVKMe9uUgDaHklMQMfcruzMwdN0b5puWxY8x2GGE8bAdGTwdKtIL0+XR1RomRP/EUNDlTLfs1QQprMP43fJW9RLlicov0os6UnY/pgTPYFTIB7ekk7kwiZC4KXRxdeCk4xsBxMfOAuUs+705/lgdHYyfzXs9wcjU+qhGHvwYzNJket+GOdP9s3wgrN9AqUNVijNr5t4zW2vgXlRw5L1pbeO4BkOLpgduPTT0I9z+qMBVv4uDuMAfcBBS/Svzw/JIui/y29gN/oqka+Rem1U7DYbIxbvUIfOYY6WjTZZlSU7Ebf/SEyC8mA8oCElkDu8nlMiJL2EXLWN8DibWuUWLLTY9hqQEKHhkH/oBhRZWsSqbs0I+yJI3Yg7WYQ5XgHHK5kyMFflQ23Yw7bo8MYlniTmymSbwjhJDqdYT9lfnoeX62SdWZOFuVE/MTIpRKWbIaZ881BiAgmz0fZ2HUD3irKpJE05SglDGbI3FAy2QmTsreCCqZGYxUot7GwJQ4UIB/4p/B9uB21EmBUcCbcOdJ6V0wyfLNg0Y1JXQ6weiiYoQn4GFERCtlx2+dNW0pya4NfDrYQ3MwBc6UBo4AbF2+gjkFLx9i2VN7Aa6tUjHqIvO7GuQ1tfS8P4DHYL06tgnkroG5gZqbSmePlpnpyz6xViLwL890P8E0Quwf+hAsRpmlwO+6p69xSBHTqJAk0KG0blkQvmxndQC7xDwGb8tCmApYjk4gPUNe7dkFh64xMOvBShtcDQ20K0rE8g7fOs0UviGC1yBZrxlp2EGdTWuL2vqoRlCwITCiQp70WSgB2uuriSSFeoCnpsHJVoV0OMw/I+B6q1nZN3a/TD3EcowG7BVrSzS0RVSW0pu+/G/iq7Skjup7ICi6vIHqqmSlTObkdPhUdU9BZC3JzsQEQ3uQ0T0f3ekacperxKk2BNvEFKVExVTxklos/vpsQOORrKMJC6ur6qRlquUqzuPBV6dq0+za5xlFpkGx5KrU6xOC6CatCs/isgKQ9GdXvCWJnmGVZbHVe6YigMNkVcTU3BjRRvRo0yzgW/ZT0xG1OLGkelGkuzB8OdbqLZKQGAB3JU6WyoyjGrcPhKrHocckAhqZ8fxpnQcVO96lY0NQ01VxafMO99Vx2N/rVqu0A5NvS36K0/bzEMWymtuuFVpLdzub2s6xYMtyihHmmU+Lob6Cb1A+GRZ0EXhaDwN9BxOPeQFnEsZ8MS1vs9MpmTOCYNJiWdvnAj21GJKfJludiONuCK2FPbEA1iPne6QoCG831TG5UemBJRWe1TJtuUmVsLU5S2y67Q5vtpZ+fkHnYY0m78Kp8IBgZTem90EdhUqWYkVvggg2nrJSFMsOoc5jSwZc65xuQyqj8cOtZR9RwykbmFqljdwAqOKSmuMnJluGbeFEOKvt2tc4thjZHSGOtwQdU1i9YzgdZgpHVNm/XMmDV1XUwiFZzruGHSU31cuZVyxzoPVVi8Sq4I0EUYhzT8W/suXaVhvAhXfmRqJKniDe38BXX92+iRKwGs3p8+b9JQJ47layn1L8aGXWbtVINQQlpnKB0Gzm+p0nQckrbXOMMjbemJS6G7TJP1ajvgvSRDbQk+oH5gIRzFjJcQfGpfdMo+dJU16yFro5CN/o6OMoRAR2oF3UQYE5DWcPB5ewf5o8HdDW4V8ttvfziu2f2pX1qeuHig0slwY5G2fauQkVCqLQL3qU4VVRW3xvvV2kxI11CnTn5SpElhLNbE4UiwYNbQqO7IIL0bKPAoGHepwBOA3lSNR4bYsh6PD6pFkaMiDxaeE2vvTVwcybxtrwFWwltU4GFQ9WWD7S+Pm9Qp3IyFusFV3y9OtwOuXnEbcNftA8vCa7PPBuI3Sfo2jC95WstbBPzTpkS+yR3i7v9kvVMepNMT2cCb+zAp8jVtRWlMObeL0liUVVzac8nbpXFxpdd+zyvlaZFXbpYNXEW1HzfeHma58uMgDAD0QwJbZ5aGy2rQOx6Uwjb4c+1HmiIcfDz1cc5oJRkUVNK3qlwCpLKdqufLNiGCt+JI666pA0vwVbhtAH9Z+1F4ET5YSBud33Gh0y2i9MB62FT8/aGdNdqOnK8hSKLjCzWG02IVm2/uD7qM3cLoOK8ZLQUJHfa+0yWHcoC6BPnMXITHdQlKKnWApiA/KJWg99h2hcNIg9T+aAkvrXjFbEaVQn8VbnaK72I55BtWQ97cX8qkeKd2eawyNsZMqG8tUsJFcstXGmJ3ZK5G+zEHt41xAts0BJZD3PQCxcazuZwVaL4lOBf7QrFBXfMMZJC9HjyJIX0H6duB+gvsAH39++9fKwYr8FsM8PzQ21UC/iPGpvLT93zSomr2brsYtLZoZUO6Q8kVyox3bGVXVBWTZWrCoRo2UlKOs0rRKXckVG4296tZyY5kNhZkTSnwxX21rL5Y0XjnkjuiXT25LXIQHucuximXR5/lPlrpg5PvxDNoAydVnEDLLYnBdrNu/BedjHK+D0Qd4esk/dmes7fHK3XQvAeqpKi6w2y7Teucc4aGElM2HWXbPWUdQNFpmJFi93wzN+INFJuq/LXe1qPY7o494EvQNdXWbd6BN8icdxMmwWj0dOvMQhr5lpiGNMfWmMfGXPRzZip1+UERZ3EDoaAYaJqkoDslWT4Z/iJ0kfMK7Wl4eZU7YwqXYlphvyLFkvvwqUlG7FDamCXNOlyVDAEQtrQZ3zC7I2Ds6F5B5CWEG2m/f2+lYrYIsqY2xpzqsXe7Yu1t3T1mo+MnLQWIr1iY2OUJK/ml4XqvxDtNGMu8ldpHLdlJDIfTq1btrlfqX4D1jbfXMuZNIsvZsiGdD3qPiZOKfTJYv8vwkU7YPQ0ufx6GhRMvaN3Sb9XERkDayvvqrkMcHVR2kqNsgJH+OUU5Aj/RXgMuFXuFG2lXk8JwceWnhVeEPJpeoUg6HB56mKM5MmwMir0YhdIegfu6BE1XvZTlW6FudKgJv85Bnfr0cfcR9akRnmqleTOld7OldXNI57at2NNcqK+0ifuaUxq4uq6vPAlu78FFxjI/kXIVGxngCje56xA8XTacLcfqqZJpP9LK6EX+V1MghMPD3c5Wtq7Eq5eL0ihKWUUowI45b632zJMNgbU02mSckVJ0eriCieRK/iDEE22iqG1pwrV5gI35m+U8+reVkJfFrQhgKdv1Q2z+8tPr51DknCkIfmAFuqZhYExkTYu1lQq1ZarSiloV8tYPfWnV2zn64g5vfv/fNG+EuLTPJnmEAPSWX8zyyHViYCVEmp/ODuGvjikqVlvITiEAfrs5Km6S8NUIs0u+15vBTB0euiwwYYvA98Shb2kVa6GCaynG7ax+OIQM/yC+DGN0Ouzf7g4U14e+Kb7uSDGRQyMocv2ckq7ekiFFa8/fpKNTbl1VR4kgrSM0i73fMdTQlNR2xXXdmaXXL1H+GjQZbll1+XRuSVKTdS7M13IBz8GvVb8iN6gcvJpdnQ9blsCfHVJ46B6ifiyGY69OpuKPtRI1yFxks1wNnzQOzcpXjPf+CsXg4QdTjhImfxVvFNLsLswfW1JJCyj8r0hfS5b7mCcpeQApbEWp75ZehqK6Vk+82k35qPKgxW3gLnBJKYsN29Ch82qCsnWE9VrT3qtBfz6Y4yfKaDybT85Go+Ho5ZYiy5Ub6B2S/3eGcYxSvmIHJ/2SM781sbDxhcdV1eklytu65B3tUuLD1F9mtOtvf3g+Cw00+YyTGbZV1rNBhmvcuEAvVXzCYCx/crPVISg7wW4y6vOsz5r+IoyDML48ivzLjA8EiNcUsl1HkU5jVt0T9oej/MaPWyVXnOGpAfiFzNxum0u+CeMgeZ/hhLtLjDUv5FBQvvi9ByE8+OX1jdcwcsnS4fJ+/NHCPa2HyfSK/nKWbvUsvUQ5w/uXo1TvKK0o3rw/1yi9vtdzRGMBSqIEPTrWeDhigaZ3PVioTvw0u/KjzjArBnMLjWM9cXX2CkBkjLre36SQ8Yswz35Kzm+tcDKMv1HNZFnRXCmHx+HWVDFWFNotaurykrXqrD/6yWhBwM+pUueL4Wzq/Ss5Lypwev5FDp4nIMpHpNx2jaKcVoKhC7Yh0TqffgBSGACDb7GvDF/4i7eQeykOesnq+sSP/UuUekv6f5UKewjzyt1gUoLCzSydxXRNNUAt2GHll6bybYPzs/aS5XS9AM1KU1MjGo/QgfVgtL14Of9p/IKYNbrHx/Oz6WAybWMlECxOo0VsdKPoMaS84pSkfP5pjhLBmuru9xzSEm6QudgCLiFOBCZN/nuSOmYmtIZPaPPV6hc7rJAahtlkXMFK5QsEcAT6NLEpfTHive2M0Ie8ucc3m/yFjmHI40oHeV4/j6sjkRZMAyaymG/qEqBeDwRro6vfKEtt5Qr+V3JuUKKdp8h/Wxc+TAZUePjrL7ZZIE/s3TK4N04d3jCfPT8uIpQ9FOfpdc3tq29eHMb5aZ56yfuY+pDAPzv/RGlysC0S/ldyDmL/GKZowvHCk7VcaZqANh32JbnXmFAdqISuSFrS/aaM165oG5ni6dsUD200SW2eipmN7R1ysfs0T5nB8SwOCc7vIb8xfwWkCPUSnN4WLW8AjSLq1rq9DDt2u0xNM45j9oAHZZ3RyKD14KzJZhir6eG5mw55wtTvAUn+d+E295BdS39Nfd72FbwHPhNUF+R5fF+WFCz7O1hQ6HvihlUldGReiKzqCkh+GIESy6Bu0cmqpo3rjU+KvaJztCkcdRUq/dQPY+pFh7IX1yVPOu172ea4h7bhtodjNGF4ofB9EbyJP5S78PiLn9E1dkE49cNUDSKOy2DQuli1HC8dOmYHT69ndI43TY0b5uMjw61AwjspaD+j65Zdp6NGbMk7KOS8yoZCKs0y7B964xVipKfG5ulk3BtMp/PZYHIyHHVnA0/vuDL9ddR7NRmPhv80tWIj/nI2mPw6Px6eDGeD/nw4OhpPTrqz4Xik3gis/FF/4pjQ6BL4ci3Crj72NVmheEANmkyYeolyiH98E8ZP9vG3puE9PEGY0fs5OsLMmuIc0G++tR0dc2rITHwt5mZwxo/W8eK5js38YBc3bMymdeu+G59uUMaHpa9DKc72RyT7X+BFol4OozMDGdQRmoV5t7b3NWXlj7f40ucl3MMsiSCU/jE8+Pi9wAq5L678+LK2mmaG0mUY+znqxsEE+dxHn7E6/U7dtFxLL0oy9MqPgwg5z6J0gGB3Bkn27epu0vPjXhJfhOmSo4DxGmxtyemvsFGYBxCl4Hs/zImniEU5X+4PPHUwmYwn824Pc/X+YDQc9MFoVYwJjd50h7P5+MVPg95svnvgKvvZ9lG+z0xC3g4fqkQDbW+v5WJSqq683k3w9797XcAisaRcYQqBpxQoVKPwHfLyK8TlFo9uImTkyL0k9vIrP1cNmYFhczrsP2bcgo18jkBa8PwFPo3xJf5blnkBikMUdB4pdcPM1vTGD0EB7LjZmmx0MMhRkk7D+DJCPPUvxblGcfq9R7ybOyf+Byy7qS/0HROZV0lcXNYGNY7IvtrZWmXiRxsyP2Eg0/vaxET4qfYOzRvxZHd3d1dRvgf33SmdWxcJnUxKO86GJ4Px2exW60qZcckKWTOcIkeTTb3tN3ACjXHMDDVGombrFRsNXKKXBEhRcfwlgjra+GuF8YGumXVVeqSzj9h9cDY8Pp53e7Ph68HtKTjMaJGCClPkr4zosVyVziK5/NpSahnQhxUu614RwKTHg/zJLFxzAwg6rb6Pq9db8UDZYTx6OHrdPR7256fdSfdkMBtMVF76in7gGno0Phv13XfZ5YhYnh11dh6Gsh4M7ANbweHW3MmqQ1fBcdPW0MCQU4PSpjpZU8GyqwPVXWvd00oODtukx7Av3pvZ1EvZ0bLX+TXlFa7YaTBHKy9TCnYpjinmbsVA6kzNLsnW+RAa9aru6Nd8c9WqdbfZMTQcQcvxy/IwooFa3A2IXE94UGnDXVyC8KNmA5Wn0ZGinHkrC7FqzK7xJGrCbeofM9ND/I61jhtmpalYP/TXqY61PaqneNbsOb5+I/QORTgg+ZFCn3m+vrgwm+fXPOpawVHezKaDCocdfHij3l9hjrbGce+CwKv+/GY2nXdHv86ng+lUq+0E5kVWpf+Ol9Pa7i1dX5CdXmc5Wj5+HwYI837GMoB9OLjbVC9tstXgrQLeK7QiNA2C5Dsta3JdTi7tubORDvjNbAq28xO0TNJrLWXQluASTskIHKqPYT17+nNu2mai8lw7Zprf/CJ33UTbXS6feG4VpQayjdJPKAUiWKOuY1k0srtZ4tyG4b+RoNKZhv9G4wtc3y25aMKRZWYLMFTMB/9409LlT1iLCRR2eQKFDfMnUA6HnZ2o5Y381LQQFMkp8d3TZsv7hnsyN6MkvmwRiP6G16wLdFUt2QvjiyRd0lqh2vnV6Cq7xKwXEFxgVhLjVZs12jV3iHEDYSWdFZTHwdp9B2covUr873/3ZldIuN1x/VzvCo4MPFYD7EUxHfYPgLRzLDR6GcqyMIkf7wrkvvSv4aXTMXqQiAs4LfIEaErOyNRe9JyS6YcmZ8bbdZhx4VlU6DrCYDc3TllgcagT+d6KCCdeDtKJzhPNa1gNYN94DeAJbNiPu59AIqWb7n3c+9SxZhVRbHO7/v62aplPBAGaZ54Y+Xn4Dk3DwJ5BQ3W4DMpQM+IXePrMwddIMPWiIkfEz+hafVjuweYlrlTt4OoF61UULkC4Ph32a1q9isWDo4GadGBTa+qSN3NyKu583Pzm/kdaIU6XfWLn/qU2HWgcOfUCHAQ5qoZdorZMb6RVugUlVSx2+apvpsDu9HRRO3W0VbSTQyA5PxQuL1nK+ExG/kd6fxptMBFphXma4vkp+ODgWQoF/Wz882BEHGWIPgsPce9PPq4rUnPt+rpau4hOlQC4TJ4yggZCcWH2YcH11MvN9VXx8ABwX7U3e/jv6t/qBHSNfxJbl0F4M2wSfirv79+eXXMz/lEhkuJKp+uV6ATkq9CJg6j0PgzEbhQli1cvo+TcjzTqXPYSCuO8RXdFlTDY2UuIWdncqM+BCh2p0fUigj9knRa3sIJKNxeMXElqY7KykZYzTRl8hzDThRhH8oA79JrFT7Wfsbbtoe9XYQaDdAvwdIAkOjd/rm7Rg6u6DW4RO59Mcc/1nx0SdjbjTG6PjZv6iInhOIxZETqpKT65Cc6iSxoRIOpbzKlg5LYplDtXjCBuLvm097uq+w9x/SEgCJNPw+BNEybDPIzkNNDWrDWemjsXpRgqbiYcsYo+LHBXE32myvbgWYvd0piGbcZgq1ftmWJxCBQ3f0QeJws/gnNXP/eFGIxymmT5FPnREBtLK/RAs5IMqSkVeBK3q8I/tOZNoU2HTtUPM1AcBt04eA0+fteqxMqZmKydJDzGORekJO7KlMznNDdC0afI01BtLejk7Tbc6uEtgbmjEXg5TLoGBRg7h3WiduqaRdgGeiu4FLIcZ8AHv6MV8lMUeMGaBJWm1CTup3l44eO83H4E56mxKYHhfC2/rP3UB9UqKuhMRzo4HIevB1tPkosjctCkkJ2iTX1DCQXup+T8lZ8B+4Rspu/0Xinb0CNJC8GKLXtAm4PJZ5OT9oCXszEPMBzNu0m7UUoZSf00I+/foNnD2NrUB/ahbZA7q+XqTpER3s124AjT/+BNuMENVrEx3OG2DA1+4p/XNlEMCv163MPjFhPTMlQxxl9EGCmQp8m8B96gl5cprqlZTCgvZpZ009S/brZaTlf/+jxisS7l2x4FPHe47tKfAT6GF/0wWyUZqhBslCzees0/+bjT63jh4ipT9ADvM1y6pV7SMqecSNJEQ9CAX6aSEv1Wbx09PRRAeWHm+RGY7q9poDKG0FEnoFocBNUo8+e66xsHH9BinaOCWqZosU6hvDH6cw0Cqn7VrB7shmZ+HmrzU3LejQMaVgJioFPiCaKBsGed2LM3UQWtSJvRvi0c1JWA7wYqSZqlYqxWir0bkJgWj6SosMugdw2RSfS6M1ismR/ukcT1L9CNgKJZPfkwE0hcZyi7Izfso8i/PgmjKMzQIjF2BNUMPQJTlOcRguANt64nYQwwFose48BBDIY4ggYDimtTy+9vqkLWXC6lrOk2yc+ihPiluiC7novpQHA6M2NELglF7PDagtSpXhqgLevNNg3ikMbUmwccPPM3jua4Qc09plUiedG4oBIkKMOmLlJAB+KH+YtAFGJoe4sNflNhcYfNeZomwXqB0m6eo+UKiF9jy670wHl9UOAuZd4w0SfD58JfgfHOSwm5g59mRlIMXayjApcrCqbnk5W5Jv0E5NxAlL6tRS44c+IrVMi+tV+QNa6N6gOIMpLXNCAz4ND3CPSMw7Df66nblVaoLFmnCzRJktzwGcpNtRURSCRD9XWuD8q0PM2wC68I77biEsVBLbEWotBoAddwIUj8ubpIEVfecxLTIf32g7f3nfc3b293/yn9X30cjNf5+GICiUIETIizOEUdXqyjCOjBO/Rg38GKd7SOIvh7s6AWxRpdbqBZGi77YYoWeZJeTxFURMiTtMnm1NgHNb30wk8ZbmmT3yTp2wyMerg2baveBTe8jJMU9fwM3cVVR/DtpbAdIbnl4H7jr/X3bCkOAUXs8n8BkqQPePSjMhveqq7pChFprrAHndOpSTQAVSmcI+wsF2frpdVDTiDRKUbNwf9v78262zaShuF7/wqIF2NyQnIkO3ESK3IORVI2E0nUkFScPLY/HYhoihiDAINFsrK8v/071QvQAHoDSC2e8VyMI6KX6urq6upaBZ/ffbAidIXLPJBSmLCX83iAojnyHduPp/RrGXBGh2WakDFC5jOUgVRYANNLEC3WwgWnURJLCzkpKMtmsglUHCEfmy3swyENb777qOYplQKDkIFJHIFA9epGVuLb17brwQNDFwFFuxOCY7RNkIVNhMihf4gCo6R3Ir3RnZpJ5akCKQVHqz6SvifFcku9u0LyfKw4dwGpgPg82hVBC1KBweyc8C3IXIoIYHoOFe7jhNh1CQxzkshdIFTq73DnW8lRORUC88eoye+1CALBb6RLTk48yG18uYv48pC+66lihwG/naiHHFXvVAsZ4Pt2qXjXbG2kIqAuYSrmpjt4tSR28dkr3Yxt9c0olvZTli/M4GIi8GPnCuJZ9goKXiE/JhrvnPcFbVDcAeYxhxdAuqmi2Y1dwliuDFJ0WieD7ovd7kEI+yXwElwEetegajgX9Mqw3j3GrsWVw19JqCOM9ap6sYX86rFs3A9Wl66vCTvl+mkyL9LVvSMgdqy9D5VcXem2O2xP2M5LJ4VQEXau0p2E3F7I9poc2BIocmSJ7bWFqSX9mAwyyLdWWJryDdtGt67abVdxRPPHFdMgGJPFazn87eJN73RwPLw4Gh0P+byzGdQjozhnHCV05HrI2OvfGC35xxDZNi4nZhUn9+wE1alXkjv7Ivx0ydcpCl3bO02g/l2VE4C8CGEQDceG6y+D6f593ot7Mg+DCEK9xY9T6xqDWcEBvvCAwO+oYf98Mpr9dtGbzSajw/PZcAqaSJyYX5gc4TTwR/4ShW5MjCBEvu+lXUTXf+Hm6YcI8qK5HnorfivKJNzXw9PhZNS/mAx7A0kOaPh00R+fzibjY0mTt5PRbHgx6PWV38dvT4eTMgj4WE/f9CZDDEVbIKMtOASWv4/PhqcXw19H09no9LVk/KPj3usL3HAyPOtNpsOLs/HodNaWRCoRX3OJ510O9bkUD509Y79rU9GhfBTuNgwsPTAhmgehk+dda9eHqGcQIGQes3LdOqi5XA/hApz86nFAHN6k2W9nw4vBaPrzPavc6VKp3sq2HDf6aC1czzT3JAY+Pe0Xs95rfE1xRHtIsruWzz6+k9KjPrMl4TI8vtpPjFbDsRzj+we2qVmEugu7lnEjSxwh3SwgYTCaDPuz8eQ3RWb5QpfcyWy17tFbT0oJfuB3QhC8IzDIXCWeHVYhDCaHFc0hZCMZp28+qbbdehlMI3tJUvMXyzUaSGBczgI1iRuJXTWovLqMBRl1sshkypTIa6dZWo7kjJTadYm0M14cuz7xxt4TWVPptD8ov77K21tUDfO5lx/mrHiu/5FkT4C4CpyWyY1A0xxBcips5A6TCMQsrFSvcGHkXz/E61QWc13eEaEs+mTzd0EOqne7H4zuUmwWEZJqiGiEc7chlo4FC3kwpsjvajXpWSQnczon+j7NMYACF5Oyp5I6Q0Q3HWuPKTleZQqPTscUlQJgDSkET/Rh43eypPqx/M7JrCLbuXVM7hTx7pAknyz1Bocc7KTLI8t0N+qvUbRHd7c3NSTFHg5Mu0tBkWrEU1unTFDkOVNdoUC5mm3JBMUF6RmtpErB1F7hNzS1X5yg2Hbs2G5KygwVbpy2rhlGhtAlrrD9RYlbcm9pBPWHuSVo/RdaIdmNI6vXP8b5BYhlw/R2UFkrWOC0MM2komNdCsvxqPYm1FDcsrZxzhO1AyRmUHo1kVLLULKBCOtSbzm+G+c6GC0wQ89rBfb1MmFV25qxpKDRVr8SmlVybUSShVrXmcOESISoWSDTxDRI72altUJkhluD6UJiX7tzNSgFemmkA10LbUP46sL6TQ7IMnvWaEBV2s8qmk/rL/4X3PMOlaGHvf7P52cX0+FJ73Q26ovWvS3NKRzcpZG+dJOEHpX0nWXDQEU9pzB3HVmkcbUs3aMiR+FV7eC4ZkpqpZGd0qEPh+0sdK9dD12hZmOKJiiKgzD7rbhyZsD37KuINzJZP1qN8ag/algvLeZguVrHt8LekeNAevjG+GXD+iq/DEjCOnh51rC+Ku9as7cP7cncX1mN/d1Pu7t7i929xWJ/f3/6W6tGr8NenV5CsFsNIYtyUDQP3XVczKqJrfXZR2pyl6fQIdlzKGMcpP1mQfk3AQsElJcPwnQwOL6YDH8ZQW77iz2xz2AGo+77sSgj2f2d6uJTIKKI4SC05nBPGGe417tu0E3GwR7lKxofQ/xtgBZ24sXIkTRy7Ll3FqIIFWse8JRkzz1Fd8UULO1dmVRwjI1YNFbtO9t7vDbN5xQu4euHhMnk8zwJA4eE4A/suVcfeg7p6kbqr+oF7nCziL7D55rFbu/LLFg8WGTPgtAawPOuWOfLVMuLGSDciEmEvT/T7QW1QHkJS8kbbUqVEKTsnUAmAvHrIhVIeV2F2DgFi6rS/mwyng37UBZZ2rMtJnulGNUWUkotmzXBcT2LmillJX7u4UrmNLI1K6hJqTXY9PWZZRfLeEWNZHu6aKiCI6y5yznxlVXEZNKwi7t0sS/fqWROrWd97oa6jdG7D/gf5l6JfyJjUWfDD+r3HW07sz+iKacoKD4Lkwjky+bUXuC3INV9RPYCSb31AJx8e/pcaRPVbks0ATSexiGyVyDTwj9kXdnvAhEshULwMgPlHQ5m7E6QLdA2f737/QuZ3t2kIG6wWEQoFruEEm1dkzb5gWwU3ZYqddeB98NW4fXjdSgyrd7GSOFRT2Bpq7tTEK0Oba7wqSOg1XCpy07N0HfGC7K3lf3PqHoU+Q5YQomtHLSjhL9hu2nFvKt0s746wFg3NapyWwP2ZZKOurP3MMpi9InEERthQqAkZm7YWGOUajmzU9YdgDI6DJLoNYrF7GJDkxk3sywUqzutZzm7e1uREnitUxFV9NOcijSC4mFtRdUXVKxbb7Kc6rYiSgjcAu7dWERByBoW+wlmamqm+h/wBCuQBeVRaTV4OZEYVGzkrFUl0bEMouS6hGC9JEbTpf3smxdN3KjV2jetqWxExYrj66FF4YpWNA7dq2Usk2YpThhAaSo1PAPtKqrOAt8L3lcHB6R94WdZZyywuX+gN+7VMuub+1XX9Ti4KfeEH2Ud+1QHBWXTu8fBzcCOEfy3dVA+vWRUaQ+jKWAVFefIdZFNgjUIoUtamS1E3sVsErOlyPuo0lrwynkaSdm3/cB357YHKbFW9i/PxCeUf+CoK47jg6pscubZMdwDqocffUmRd58wJzMvHkscDnNtXvEpHUSt5SnH82uTVKbnm7A5dw6sFzXnSpFUN8WQiHFqKkYLti4P8L2mGSJyTieNu00f6I57hSLsjYk9LuGl7pKxdfHvxnGKMfoU0/fu+ezou6E/DxwoK0A8i8mruUsTGvhXFLuCcEXylP4pCvxBMMepQSyH/ceBxf/ePQMnbHbBGcoCMMCQZBQjPpgH6fBdiKCk3/a1nSNy+EmpCX3zNSVOxWs0CGiw+M+u78BBgP7pD12Sa0tVGnIHD0FqqZ+FwRqFKn83TDG5VTT05WVy7VsqYHItVeuinrjGQ71GMXZyJu/UZ5UR0mBb0SDVJtYqtpHeBrSRaiGEspXwGNYez82YnRlNUZ0iH1S3rlCb3No4Iq+SFoNenHN2zWI7ALg6u39kdy+gHh8ZydAsepq1n2H2JF2Ekm0p8cjtTzqZpscErT24uBrvw/d+o2013vuNlsDenJ7S935DzjeqEBUwaTVZ5BD2OVKQNkX2/d++NHYoI2jC0DrXzyx0DeoGZQ4kSa7pM/jvaKl5JkrtEAw4odjpoCiGNME4d2egbXOm8Pkyy0pmnIwXE7wkoYeA8Yqyhdx17qHMjQjvFisPm+UnJNCmwRIssZTGXiJN41JeowBnKS1uK0kdG3DjtGwFWpN4FiWeN8ga3lvmrAKRy9NnccB9yaFVfENsI68KtxN632VmBCh5hnzJyGL9z2ZkEfsy30PKlfohScbJRgxzjUmikqzPM6cKxxK+5Fd5hPlVBPvDcq2AcXcdBjF+r24lxYrQiTh3LBROxMy518h3WNxY4jIsbiyErdWQXBVqd+AtuwSrXYONXYRzOqPSvOr2Gtfhh/d8PEsp1+Zo3dSZWEzSotgYPBJvXRUz3TrJgopDd731VCQtlfduXyUkm2UfYjI3JzSLsZ1PRZT+ieNgrL9yQTiVyrlDxEwRA+KW/cmwNxtenA7fir8XrNSncGkes6gd4zgZM49NAZ7rphqqJE0/guOVu87Jzjk18wyVlv5gyYbEbCS9MmvnHtpM7izhRxKQqpc4aySPuZRljKkuWBquQ7YT1SVJbIOtkvql/LZQJzTBuvGqmUzqSeTmGU1k+Nskv4n1kDlOdKeSLUlhQpWIqNSuQXPfHFLHZzYLMMkZ90l0a1fxYJZ4MZePhexVWPmOoKbbDKqWrEkdR2mds7TAYRp7e4hbij2nZd7TclqjvrN4pia/s21rt53bauY6va8a58hLomVT8UzdwS1gnYfJYoHCqKlxbd3AGGN6y9e+6WXnbQFrVInP8scyxeNZELlETSELy6eH8Rrq6zElPReFINi5D/tSH3eVH70l8KXnZ5W61Ku3qaprPfyPn1Zj6td42hdHM3S6t8wc7y1tgbtNHPBlVJcjBeKUj+zQu5VSoJwKLQNffHlvhU++0rkAEyu2Ahc4Eb+y1rb8E9J7S+UDJfasysHziGzMTzYiGS2/UmmrN41XsIyiA3RaW32AQMZndX71KrzVSUSqeTnYklCB+jLwZkuURRFwRmGlPnqn5PZMRP82WanyGOMWFR4hWNWSy3pJ59g5EIkwqmG4+ACz0IC0Y40QAQnhm4UKPAC7qEEKfxu89+t7BmycnqmsTJEEG5d1izu1gtuz8NzykEbKkXtJDVkncVP1FE0ilbFeF1wzNxN5S5YbFS8j7vz7xyylLnsdQAzEeNGMb9coWDQFo7Xko13SdaV3pKBQLo0YyXqZRL2k7iPGPiPU1hTKXKPKmaWwGSRzZVE5TMFxkfu6Y4/Hau7xOCOX0CUeG+9HEfwDrgrIkQ8vaIvHre5HZO4+ZcfLyFolERYN7Mso8JIYdas6HEn8M0p+SHjphbHZXon8ltZlhwG2/SFauMBaUii+It3LYPSXtsDFZ4fN253GdhhHb914KcYWmeoxV4EENPF5gsHyy7I/Y+9so/0MEVxp14gileAmuSRfmwQLYgWLyDmMjdadrj1XEFcHC54v7fDdB+tP6+n790/b1tN/PRUVRKPGVhhmjNEBiqdVcI1wmquhH4duKcqB3Ic5Dx7BW/juNiOtOe3bK2TZYstCQTJgGXuZlZ2AD8l62UpaRkXQSLeDA6vRbcjEyFwrbbPuCC7U8aL59OXTFr6tdR2GvkNOVMNqtOUPTPNhuqph7jlGFe/wPPBj2/Ujy/Yte3XpXiVBEqWAVw1NTY/gZeJCitWUre1vm0ayKXJuZfTnNhtHWy3WRI1R5v9kFok+gnGdR89qUydz9w+ilqCPDrNshWynzOUm2f1qkA6UE6O4C5ZJGIoL9hq7zBzgwfMNqKIVN8iiGPE9Q/8SRJTS5tmBfv++DmMojvIvJVvQ0QNbIxk1u+t221ZudR1rz2RjcZ/9anlfIQuccxYGcEFk/pIGG/uvf1ksbLwT+N6tFayRH1lOgK+dNbyH5+4aJnV9XFM0Rp1oaRPnWjANRt3ieOn8ludGsWVjI49lQ7CADe+TeBlEiHa2btx4CRL3Falee2XdgHmGduqK0CN2DcVyPNEuHI+mM14nIckTm3NJae1vmGfXBNemC7hHUNup25obIofY42o/Ox8gBXAO8M8vRa/12aXprWVAVKfrBY4DKecpJ1gEnhfcAIFCbZroTlL3GlXY1OfvZXFBpcRAhvl9aaRRqn6EZJgqXQPvG7U0c4i6I+mFeHCTt0ngY7cnzUbVsngYWjqWRjmDKNRVDRqFqmolVbkl04a3pN5BVYbLa8gFCvJ72OF8JbXUt12z43XLpy01hdPq1EwDvxkRqxecv8pMpMr67p6npLuzIb+hkLJA9THJ8quN40qzbdxGMVpV6NBzVq7vRjF+kkRVZspi38w74eVMINeMyVSB4eJJJmB9sy3FuBX3hkUVuBLfEuUBsgQpXSF8cI4HjTRW89K262BpTDt7nW86e981ZGWBfpvOhic1QCgRkiEoz591vvn6axk4hVFrYIYnUx1IBpWr+JjP6tDk6d8IQ887UuQQAqTDmQOTzx/9Wpc/WnfT6/JIW5pc0laF7M+WPn26MhO0pc1NbtZdZVAtZI6W6UJM87db4lTn0qYckzPqsINVgECDBKl5Wr1v5Ww+pzWVg9AncKIyTI4eLYMwxvrdMPBkkcXo2hXnJJIn/O+TEZXe9EaxWxQ0dSMGoVSV1hQJFSLVXdqBzmv9A04sPnNpAnYiMt/3XtO05QQqutUhirB9GUxPZhuOmcfo/wquTnOPc2KSb3Mv106xt1J+wTYsP6O8bRMIsCW29ouW0lJ4//XmHgzAzSsllzx43d4cETeOnQPrm4fYdmyzpkYYcr69W2sB5stefxgZhwuAdL2A5CCpACRweci3LMkp2h45EULbmkmFZg1TWUDSHPviJJIkB5JNrZzsgMrH9hydBa4fy2Kvs0ODmvhAkHnalP5ZZ7XfXdpMW7rDuq8gbEyQvf7QsCCH3Cu51+8Pp9OL3vHx+O1wcAFDQoFfucdls9wjZQ1nMcQjx2Eyh1RJGkfjFKtqL8yUz5RmbclDACwbFIPIOaKlq4icdzE6fTOcjGZ4lfL9BuV5bwTCn1n70zHcSme91xBSataFtiILkVOuPUfdN8h2UAgHBXR5wPzKqMAaPbX/Zm4kgpZ/WP+PR1NLKfopRmFLHp8e/4Y35oFcM8uXNLOWJz4TEOHMVDwhGaeB2l85dbkBy+jOgpEfv/i6qcoEx87PGAcXjBfNmidC4888dR3sedRoZVApfJVTIZssvV14ubdUkhtQyokdfQSOSbSUx8cXBGJVtx3uYqxKQPk7FbR4tdJxSFedv4TvbvWFeepgoSQvbB8bmYBxh3SQzVGLFngZaPsYIG/NSos/GQ9GR78Zr5/MUGfpTKC7o1UTCdB47bmqqmarpjPUXnsqo9bBwAPfXMSPEoFGgTpErACRWsWCaWAB8UXluKVMyyLiJcq23IlTtiPkqW8io4K7f+vhMPB5sFqDF8sd1SSjyT+2FTnhVIuYgD64M5xy0eneN+vCMWnDHoULznQeIhTsV1hIjQJvOWtdtUwb91DD99Eb2v5LrF8VbSpfLGDbsoB9MfN8MfM8MjOPIODzoQ0+G5kPHr+VSGv0kdLLF+sIto48f7CTwR8IKlkZHonHYxb5Yr64s3eujGK+GDKkhgx25TFLRvpGkM71I6kZ1mqKjB5i44Y8X89LOtjuPRgpRNaFnYMCBjT9scppp6RrfDyk/sUscQ9miUdlR9AxD+kTU/1Wa/23WBL0evTHYQ14NCyE6Yc/K4Xwg4uk/4vq3MesaZUF+WjiePRaVlAvJSGS6VBl87qyxzOTwQtZxg5pINjwU3W91Pdy/Y2re3KqnpuStbVaDx3Vx/bEIDxPuA9yMlLkjtPnhtuYmMzq3VeiJxqt1y5Sw3/vFubqk6d58R6sMDmuRC3IxJ2W/RZ8U5UNx5lMyiXHs5+1nUtFx9mvJtj1Av+qkAawBgnLcJbg4T2WEazZxD+0uJ75+uo//GA9f9YSeMaJeuRWyI6Ox9I/4JdC98T+hHPV30OgIyRMsCL3D5Q5fq9DFCE/llRLExAXTZHebGI0ecXURtq0HOVa1qwWuXSHSG7u6Zves29eWEs7gn0if5Ey8JBNWpvBBQN/6MbUPIQfkLQ8KgzZpXC9saOltHKzlSuS2knzaHRxViVJ+1lwHNygEDYtdG0ooFdd1KBoklSbLZaO1iDyBK0gIwrJbx4k8Tph9bH5L3qcwrQ4v3hIU0xZAf2XjFb6LsoPS7vgbEk+iL2ypw1riAvhYhvoT/a1PcUSJv2te+5DftoJ8uxPyMFYieb22vWvpDnhz+PFdxmcJB9HyKqF5741ZQLPOpHko6YQG1t58Dz5nSXwtC1FPWHSRJ6g/W/ZWSCgd2dBLwzt22ZdVwMB1LmBhBjOI4yn3+s8Kywk5rlxY8jkRBLNpAWudYQ6tyMkrFn+UoVRDDBW65DGsuzGuEYkjM4Keb+CCmLwX64ysXFaXzLXVzYL8KUpin8gXPQVzpGmG73Qp8kn/UFhmvJHPGGaNosHj63sFhLksLxCyQruIcSwVDlhPEiTeDm4hCGboXtqr1Br8zzslSs3W8rs6dnW5qCtpPjkxpgGYdyETENXcK7keoHcJpQFRmnTgrhohkDKIMTk0qU/qFU/WPyDHVQrBolAiHdagsDa1Jkhuery+fPPhgYQC6Qppx4FI0+HICJfFarhwYLiAkqmRLZw34QVYvZvyAmFV4VwTxg/d0EbV2YWdKCqW6PArCvW+BjjU7m0Cugkp8YEn9AO96P3GU3z619JjQcVwCDPOjEY+MUTuVc+kpR/IG+ixFe1cdDcXdke+/eXfB63XMsgufQQ/UfRDi4CgolZePsaxcSQgjMUYzhamxxkgg+CbjpcLSMAD+B5BiHD1dZgTAfcGMoB2aAm8a3KNmtroOYG3RxcTCYE2oxitgcsN+YjsJ9UgqHC8Z+FCdLzoMMg8JBNujUVNZgrTHwELikVZ5bV46vM8jxPPzO0ItNWnNFBCzvxJG+GGnv9t6likSufQ/UAWABkSgGlRpDomxZpltEdpoQTFXeSqk0EfkaF5LaQVtGFul/InwsKx6uKxnPgSZyQynBxc/11gEeg9Qus/4+sj/5poM/iwc7BLdgV/OClVS1+Ci7f2BFYxno4ccJZGECki6KSwU/jQ+rQctibjvrg2DE+P4XEigU3yDk4ZJW0FvidhC0CnM79p+CSCoJCsvwPACm34qS9D+3InffSibVeg8R5izWvYOZ5ovG9MMORzAGRN1c+dBZIZjhGDqDZInjG5xqZpeIrp4/OMN4t0Nx9ZcoDy06wWLDcapH1Bzg/42y3KI05QA48cwhgilXx5wsXnIGNcIKb6KfgcpL4ExQlXmxNEr8XQYWYPGi0KV9CJs34BX8ITWH2es3q2pSfpqwNrQYRCb/eBOFH178aiNPOjQaQQyXw7fDWQv61GwY+DJVvNHNXUP/Ct2ZBbHvwV1BUIAKjPLE/TWMnSGJSKk3yHYXhoUp1TnmcBIkWlyatjDTs3KPCGG4gRhe+dJW4wjKVDEcYT1L0kPMoR0/2naGnLaykQGkoBfDfSRDb73Y/SKwZBjQK+bWnse07duiM/HUSfyFaBdEW4seoiYNHn7oUDdcQJwFOPK961RcQBzP218iNamQPSze/H4iUYl/OV+l8lVtTubaVw3637wU+yulCvlwZd3X6xHv1wcr/YHzPfDkL3P8KOBQcFuBcNaj8LAycZI5CgvOe7/w7sUllAfSF9DeSlhSY/ULadyhGfaHoR8XMvxyDWhxe7Q5VnfTLuP5C/ndH/jN4I4wWAzdaBxFymoIKCTyqt/b04AfV6IK4ll0DcHeI8qk7QVTTSeuP5SjGipdu1OV/EtfbNChhloNPGhyUqYukTQyL121T1TVD4QqmABUWPo9Zwey0PuHKBi+keIl4zR5rptHjecH8o9X8PT3b01t/blKiMKZwpWwijtFqHSPnnnILWXEJMTYBATwyLduDgNdb6xIh31rZjmnQtHRZUj/AYo9pMp8j5OAeejsFT5kTdOVGMQrZlstkDQvXZmHfGM9lbt6iMk3EncdwY+h1O4p4hk/ifAQYbO0/ETG73G0Skn8IX8qPke51uo1HxCte0zojWFV7fR6bFDTNU1EvTBgJFBqhwkyw0AoXegHDRMgwETSMnpOCJ2X5JMwxD2tmO4zAmqHjRGWiwd02L94eC8LBxcdFfhLNvF9NFi6fXXQOBCiwNPF4wNGLuNwhJwqCf8uz7FQVMja/9xh7t30nuwMzyKzLIF6mmZAkVAjSztVViNmhwTVTQIncd7CEoJbWeCZB90NgVI20AqDahT0KYhERiHqZ5S1ULbS3Xnu3bNo8B+xDQApV+OYlWnLZtBXPs7oSmUIIkdzxAEl3+AniTxziaSCLF9+hjeEyccZJrGtHLpXxNQoXXnBj0BqFoWnrCYqCJJwjjDigClijgVGEdK/zDJYJBV9evJu/eOsb3P7L3sT5VwB2ZRj6EALnHAXhcXBVdtYyrd79OT99uccsKwiDHOXz17MTf740ffoSqy1G4SiCjR6Hb5fgCb2GcLrCWQXlg7WDa2+PIlZ6GzmlZtVJjCOvXjYYKVKOC6RcIsu+jAIvgUQLbatRmNLATyffAce2fRovmk8bT1vWq0qeOiZAZwl5rN+ToC7Q8p0p8kDZ1pTabbTMt2S0LF2UeHOKk+oXyrNh64eDlD+zRI45Pm29yr4fhcHqTZCEUXOvxtLGSTxeTKDkPbdIfio95PkrwvrB2gNw8xcD/Lol4MYkNPQS0qBEKfbXQeQKC0WV4S1cP1u7FQrjqgFJo1KElyQ+MTYEqEi1w3KdHOkrXJWJHq5M9HL9W1Zm/neCy5V9i5kxq+aEn47Ij0OIKmu0DUYSI0/0ctUWRnezQug0dlbQqnSlZp26/jGLvxenBREM11IMd0krs79hxdbLqkSaOCPC52mCbMcgmTNpjL3IzVqjMDQfGoVhhaFd33xk19cOfDYZ46RnvCMydeKkOypoISlxz0nCh/hxpZh3Zkcffzhz16hvryFR4SuK5BkuvCBQMQo7oDBUdrBcEG7VTfC5kjbp2/4ceR6+T2fBR+RP8buI9OI/UmxJ2hcxdmL7ie1NUITi4TXy46nnrqyAPc5oUL6gjTBkIn+y6at6ih2Of+d+ocPKWzeLOma9WpekYTiEmwI5sDtN7jiSRDDZSeP/xoQpYEFmA9Lzxf8tG9DQZVDOt/kzR6CDJB9vFTz79PxYwYhfD0+Hk1H/AkqLyFvhjCbTN73JEDe0/uJ/eQsFuNqKMN4FzxXlDcdnw9OL4a+jKfjZa2DJcjOdAhs4ljfnnfHlAX8cWnMZIDt7lUO+jLhi/RCA2qEAKUGM18gHkfb0/FiVQt4yTHonDEn7U56Fl1AtPkxKOOlhIrhsmzXFx04T621KjvC/3Vb9hKf3s5kYm7gmBuUq5JKx1u4aVd/dTMeAqNRilAM8JXsD/LMcScc4pxrOnPu57wFNlri1XRAUO53OepPZ+RlOsBdBCHyyZiJu9kVkeaKNu/NLuVSbjdBSjODcsNTJuMPRxfl0OJ0NyH5O5f2W05hdddl5Vjcfs2xA3O2s7oE3inRgt+++yjWLSYSHies5w8LvzXq2V72hOI2DE6CZKD4wPCi05sFqZfvOMRgw6D7z30U7zXXp9tZr5DtNkKkQe9+VdVaS2gYK5RhTUhsnExIA9dR6KjkJgsbZjOY1gef4gskEJBqeBlExWKn61kBnCv8nt+VzBNM9sedL10fyxrlxz+wouglCyX12PH49Pr14O5q9gUoNIOhs4HDAYVPcoD8ZQqHV6fn0bHg6GIJUR386Px31x4PhxfD0l9FkfHoyPJ1lH0/HF29Hp4PxW62LAj5Mm7g7wF1NT7k8AJS+D2XUTKmhul7E9O6odW80JKSpuiwE9N73ggjRdJfql4yh0kAwqOI1Y6guEAxKbgHxkGLpWby7vQjyU1A0zoIsDjkLOWYE0l3SZsbMixp6021qFkdqW3sSVnZfZCRbv5qOhGzTjmR5VjCmRxGdZQTR3gJUcBjHcdl0OKKmT/+qinrhjuqxXse5cJpEcOcgx5ovXc+xHJcERyNc8gMMTWmVgcxGZYhhKiKCiUJOTEWrXUtA9Tm9FJwTeEj1olt/3uRVGwUzbqrMkXIGkwdrTsVVmjvVghRMxJq5DZSTEkU+SybxSlQjW+Y3lWnXTgLfjYOwMCj1e8eLkueK00p6xh5yKVQGzkYFHV8Xa/TMLgpaCCtKVmiS+j7iP2dLcJnNqJH8LblN8yMcWJB66PkzSe7YuzvdBZ6qYp1Wg19mNbZYVtbtVFPW8fpekseNPzDsuVzwfdh/on5e606K6PUYB+sbYi53VzixaPpLFydUO0U3oicFvhdi5gCkLgv1O++bI297s4TkvyTLjyEWMe3e2C5A8NZ24yOoJulfeSzVY5mRfrOrUPWRkQ6st73RjBY0vNitqmK4DJH9sapWBc+8Q2eejU6G4/NZ1YnrHZ2H0IoItqq+QkpeYI5eLt1RNEWxqqoRz2X1rfFB6Q49ew2JRF4d5MzxlRVS2RFSjruvBp47XeXF7Kszm+roZvMMp1WoaiPK4n0/ufXoiMtSJlQFJJkxl+e7u7u7rfQcqzlIFQRSIqiAwgwLDp/2BtI0l8rArWujphKvk8kevg3eGszzVF5Vk7WQS8nwuMiP1npsj/vyOioKHj5UI2JOuhZ4t9Fs95DLqrD48oD82ej5DiVrkBZqpefKz0echn+09hLrZeGTuDs5L4KnjJCnpX//9ZcRk9vOuyCWlAFUpIAVuvEgCj3+S82RC0CzdcsSJNV7glR+ivCKtdxial8QuU2coHkQOjk37mZumu6xfYk8BZsSEY68CJmcsYl/NY3KUS9bsGT62CSsgwxqftlXKbL29xP9u5H80ZS88bI3MhcKtJP+2gV20iSH+r7ee6WbseiIZq0Ifo1vvb+3w41Ko+BM+oCmV5YbwL/Mbyn7IMQ7aYtzuWcaHn1Dqo6R7GT2/Kz6buVmSQcxfjLvpGTS87wmGyst8MAkqIcjHi4nIq07EuJqqdEG5MP5glGNWmq+xOiYFEJRJP1QmFkxlf3wm5tAP84ctciE3fSXv/6iY6U/7cuSq3I5VPhgGMNNyqSD7LHz119FANkpYsdKUXo3K3hIjxybQVFhFynlkFn+EQb/KYt5yEUylbAq7cVHNB0UES/uJYxsKnIfg6742iy+C7MvBiPwN1RxIP6b+VB9O0ZXwKIVo7E25qOCCl01Inw3H206D9ZINRxuYD5eanBQjZk2qrBqtEa2et24hYqiM0qeoU+xiooz6hW3/Fsb0m3gtl582dUs9FlddFc8j/iLpZ2+XCrKj/ei0RPPX0WDYZQXA27RzcPqNxZB744YhHLtfvUnQzm+vMqrwbS4cG2Jrjpi0qkePWJofGX+jcuYaJQRU7tMh+0cPxXVhWPqZTqJjGJLrmX1mBlTN0GB4DevveDS9kpDGx1c7G4xWvwCRnAD2564+ZnUsybXPjMgm7WUOtsXmlLLsFlL00GljiflhqIhTaol4POpIUpF4Ee7XsRHu04QhiqzMWcrp3oAJr5jrjCKWHogbeG7MvtXnKacgKNoR58tGJYUEvjLIC9Atop+AMkWEgQeWE2RSyUZ1zp4ZXiCy+zOCi4jFF5jsT4dsJt+3n9iZuxXoKIK2v4uS3MlEuueBiKfQUAYxRduO2alMD+hOZRSvfXnyzDwgyTybsW9p/MlchIPhd0BqWJiVLEVl7sw1WnT4K//BJd5EBJep15OaxATJcGJ63luhOaB70SqsyExp7XTGR687oPUPmY5CSnIjTOnxMgOneDGF4TRPtnUg0Bq6hfUcN2sJolVsy4JNX4oihjWrUxiGVYnsSpXKLG2VaXEUlYqeXgjmnQvqxGyXJhW1DE5ODC3HckKNYknzdn/eXYDvgBKLmS6K+ZmZElxmLRqygbqUCJpdqceQuvm3m5dKUrmo1fyzpOlnvldYO9SyEYLkRNe6X605sVfNDmMxcuA7EJkKSBdtRmsKRCCafY3RZzEubFaWqNHimxp+p/NEvwY7mE+59fd72U283/fTvKy/STxm8JUpn/KfAt3SvPAY4X7DXItoahKUMhjcw8QE9v2jPaLrdrrZTfkw1noF/WN86rFyP0XyyQJLxii5MX/OfZRc09sFrUMqmTXcw/424gJYVNjBXeVu2NBQOAGJ6vyBWFWflKCgqb8+BmoIiSD4syDpqd8001sPtSGGOAgLxptf+2bpni8R2zlGgnTw5gmmfrdKLeUeTJkjGAkzMtZ0ih2R/7cSxw0vvGRcxYGC9dDXC65quwP62vtOD8c08EN0ML1XSziCc5SZSd0Pe/Qw4syG39+d/LspG3hxHavUcwy21HswZ9nkME39Ft3XTmaJh+Flxy1uoPuHEObmrCbjTWBpmPHceheJjGKGm2r2RKpTPn/QWV1ik+qGyezNPNpMSFgzo6XdMtMlp8S5DpEC/fT8JMbxZE8IKV0duiqSW84LcNPa9snQNKpmwwltQWsAmx1PBhTpRc/Vl14NjueYkXEaMxn8YPxLJudTOKj7kbWyo0i0MA0NDLknCrq62CJO3N54kr8lPSaeoo1wY8WPT8W077ajmQoPl8DkL0OPPE7rchWGOW2Mc21rcIkLf0Gv6w0Q6syl2W7VZezsuvxd/Uji8oem/nWbpbFP+csFfgx+pRp7TDBo08xS+xv2ZGyvSxqEPOyiHo5pWNSg96P5J+X7EMXezvJL/Bidtbhah3fNvHoOMybznNgNfzAR42WLK93epo4F2NpQ4N0x/kTqvB4SzWfSzv0wecIYdsV4DtlTQ11V8OMyAa3K92UBrDCRpVTkrFYFUU0NagvEYER9rQkpHFuS1e+wRQqVzfMCSRP+L/1z7GCkKAxSpoKn9XeF5ZCet/saWvpsh3TW5pL7ZwZSbJq67afAmwlcIsVL28sfl0GQRzFob1mvLhLnVQPrEb2LTt2Ih6QP/slEbCQMiETFmWHdHTlByHq26WklRhixhTK8KrYRR24haSLJf5+sLqE0k/5RPJotSYLa6yXdoT2OvOAGMb8OeqEid/5Z6NVLYG7FBNYpMz2B2I/6OrvipbQJ3sec6Khkx6cHGHJzyK95aQvCvqdoZQIJ0zMp48JybliTyDy/GFvsqPE8+C/m/yQLeBLHqTJevqvp23r6fv3T1vdWeiuhpD0Cv7aFw3twzZ67h/IocRhHTCgKg6IEzQEQczi336wnsOlDD+92/sAV+3Tl0/TX56RX96/fyqsr9fEQ73b/QB2yae9p0AI7JcfDqyn//cU3/i5Vnap1R9PW8LyfRjMNB/9P2k+elHLYrmDErraeDCjIy8tM1IalPg04LxMeIXWV1bj/fuG0Syb5ZsnvJ4SADyQgiSOXAfh/DMp18X4M0w4zmRAdAVTwYNWsNzkkjRrPm91p2vPjQmBmaQfpwMzqjsgG8nm6w59h+Cx0VXgryWLxS8PY2mGSbuk9PVSWO/AqpUbvbBBuOigb9mrS/cqCZKIlUJYrQMfYGjUE0Ngf2tqNisodS36YivoedrlmzHEEtfAta/8IIKJqTol7RuI37BWUQqRuBlqXtXAqZqB/BueY2vVLIh4nN5QbhylwfVB2MFgmBxAL/CvrBiyO1gH1u6+8nBiqhGqmqDag1j9x7+0i/ujRwaFiwWWk7+/sk6QHSVh5raKUziJXxIAc1vuiwhJgUgpiI51AvfmieuTadqFBi3VKOQ5Ilig2AOMrONVcQb5a79cLkJHZ3ePWQkEjwbZQpYlxrwJExsN/WSFQsjG/AM5D69EOlczgY1CozhIa3Z8Shr2dVmxvCnU6ax56Nu8YNlW81idaIo8nISBExuz25wTB4XS57sP7LaEVw8bikoAJUIB3jlf2uG7D9afWHJsW0//9VTkUkzuZzwM8xKeoFVwjbDGaEjqgxQgwhHSDJNz23fw0zoXP02/Fh1Ns8Y4YhkW3do3FYbY+nXnOgeeTzRzOsBEU6fAwuQZ5KayCWT776WWlmyA7Lf9LbmwCIaubAHC4MIZy8ZopuO2BJymRoARTHEaxEdQpKFWjJHevKCcP+XoDwIEVsuKtuofBVLpcoWzDiSPrfTRZTTgBK3tMEJnAbgvw/W4e18LLkn4/5RK+GoA8OGFZU1voxitwNv4FSkslxI7Lf6RYm/q2+toGcRqTXSKQLUymS5E3QgbajRJ2j65q2RF5H/CXK0OZlLdPmhc2lZnz/iw5ZhWHjcUNZDdnmGprsERAwfcmg7ZBZ0KTku+HT+x+uZukvz1IK+Oy/aT7ZkCziKPhgF1/FnFo/XYLEyxHT4NY7Yqkc3fisukKq82WPQGJuGavPtugSK8vLCVKj6+o6jfm/Fy3YB5Pn4gZaMVDjWhnc1PssjimhMMP0lSgnEiIeaAlSI6JAnvDPQ22bQmTwjh7WN+51B+5Yhz6KeSrh3OxXYH/OpgvV0Ujf1i3B5Exq3I3UKvlfJ3B61xxTy4YTZ5xwRc5owCUNaPVsq7EHl1QcOG9bK0RxQakqKukaKG79bB9lZV3z15X9yms6fs/kzX/Zm8+6sD67mu+/PO2kuihvVS0qwhjF8AuioRVHY5lCPf5XZccmWoCLXsVZkuU13xQUGuxRGEFMv+l6dagdKjSKXbXaXBSg1Xa7zi8qrbT1QSpZmWQ8qiTEmpeLrzQB0l/vwH0RyvsHLTQBNdYTzoSFPNq5TScXhr/ZlVkLehbrcoxY3G7efPJ1J3SprKhzjJyBKtF5joP/5B/YDcyDr37SReBiFYcHpziNVTiC3bimihCGlyePzxR4yfVvPBnu0ZLqkfYeNBH/BbAKf2jGsURm4UI9/cl0hcy09If+bBsBSevgclPxa3mSUefxGRj3EiopouTziEQKxoV/sqyTuGCg8kkffR33chDZavn4eXCCmPxqYzlpVDJwAKFx7RRfJa1kKbUt1fTiNfHI6WpBZ3iINQ0IF92q9YhDbdJ6wxcXJ/FWrewm/NtEVLVLGOKHNKIvETsW9xbrYuW15qdHKRwoHSUBiZ4mZEq9+dBet0MQCWmGG+lMGVR7oCtsY/G3UhEiGVbS0419Ja5ZCyO/292dImuDO6wP6U3O2549ESZVnjblx2EgxAMr3J7g2uBC5ByI7FMNsyC+GtUh4EsxywLTnbsnzgwTBtMLC7J8E1OkWf4ocTdarskEaRcY8S0b1AjV0W8abdSxkXRvhUs/TqoPjarF2uNlXg3x7msF6N6lL4QBPH0XA/CUOx4tpAs1U+7XJJBnu+GPg78DbwsutMiFa265cy59BOv2e5bcUPQ5m0oXLLwTmi0it3d7+YA8mef/zhZ3SLa12d2W5I7b5t6PjqFX9Hp0Vb1V2KG8uN0D1LomUTBpF2bxLvgd2WOPESPxgl1aIOtEyU0smsOSGfvCzSPQvW4rLDeUkUHGJI/+7P6FbansVE5F4POCilKXdbUUQshNJkwCqpyzzwtWDpSQfdvjVeMLTYyqOOe8kUhrwRSG1AkBmIMhR+MeRvyZAv2uVHYnfXvdLq2coNlKTyVzi2VGM31CfVLONIpyBlvAqzQmPqzq4O5vzHfvnKygsNkgFkZncY5hY7K9FRqm54gU/Zd2qMtjfhUJhL4fWac6iMS+GO3Wyl5a1TGLxJ59QP4Yud+07t3PYWONwDg1mwxNeFsaLQpz0KeTpuGxTiow7DOa5nfYVT4LfqnQOp+40eHVhA97DP6r7GL+pW+f1P7cphPzGDBU9rqgy6hUhr9mFfX4drYTVJb1U+kGpgWdI0CkZdMQstFkjCMK5QbDt2bFs3dmQlvn1tux6oS7XZF9Sbne4cjQCqxfQx1ABlhwxjwPMzvg/9qJ+znOUDMtnG4j3LeL3YR7oaBuqxfjOK0LMxY/jqXAX3B6QsesIz2R8+ACTVHmy6Kj68oe7K/t40wYQyU0SlnBOb5g5QS+MYlC2kACDj3GGcf2E7NXH+EIRzSzNqe/kYuj4QqjDWjq+ihUuve3GV1GEy/ZUOFi5rGp2UDbi15W4t6d8doeiOEsEaYT6fyeGudmBLWevuEP9kNNMMi5y0419DUo2UhWhYEstzD9m+AieZo9ByXJKymp50my5ME62ZhqJGfCCzWWZI1bh6e3GtVLF3mSJW5tmBsSgrWCfPo4StM6LeuYpzCi9mUd80NUedHHyKAS1BdtsqWjI6NFcOUVrIsNq9Vc/lTIr7dOcgv4duczYhkXItwJxu3zj1rmJsmpuw+FPd4VhJwNJvdQfkawIKf6+9cOZsVf6x7pCs/KP8OKsOTzkjqfik1OIltY+W2PkqufTYbZuWy1HcZw5p42x+I2BFenqOX1lzD9l+sqZLyMW7Zq2aglwvMb36zujN14tjtFrH9FCPon8ndmjDkywzvW8t42s2NpM4Rg7yYze+bRr5822WOK+AMmLorvEYYJsqpDlaSWiJc3RbB1ZalDHfLP3ZylV8K28XHUhVGG6THVEUSFrqS1o+nh1Kry1ckI2glq6gtcnsd1+whiuhQvc6Vz9lDuuB+ikVifR1vztN1usQRdERHHf3D9SMl24k4AjFdROr/46BIFtfAOdWTaen9Xm6Eg0efn2VqqSVYE/rhbeq+NKSWmGwmNGCsnXHiK9D4iDuKFc7pCnyCCLYxNy7MntwZZdWo4aTMF5fP0R2jKixFQqI57dmOuyfT0az3y56s9lkdHg+G045m1w5JTlldOWAC+7jDa6FqKqIRoDC0AS0ojp5buCu8BRe8FBYu/VLpKmOp9XIAEkJUfvy25kiWoyBKzjVJGt40zsdHA8vjo57UFbrzXAymplAz7MvVdVN2uRGUr8yJAEr0psF+/tAX12juy44J8KgfgPUpW9+gF3s2+s4CRHxhYcfBFVvcne11GMdu6Dlv57YfmJ7ExSheHiN/Hjquau06KuM3qf2ArsuU2YR2QuUigDY6yv3Pb1+sVPr/jYK3VC32mzilqwJdiSIQ2SvwMUK/jlI7SDkd26UNjFw4oginJm6bX29+/2LNnXfl05yglbg7EHGn5PtcuhE/Lem8QV+eRujdx+sy2SxwMUGYST823d73z/7sK8vQqDO9670MrY0ZZFja04iiilGMaaaBNS2tdumUOtNSvjGVgQnm9koFC6sGvO2H2dWEusgd0isTmqBaYINnm2q2aKyUV9tYLlnU+IyvDx+U3t15iFKtqSeqTrbBiOrkRpqZKIRS+9XVlx6iqSO5VbFvBeUo8CB4ZhnRSIfU8A4fVhbUb8+zYV0Pjv6bujPAwdyT9EEgfiQwT1CckI1033NBDzx2H/vb6V6ES6hhmkouzvy10XKbW5zeZj+m3m+2G88uwjkzq7kcsD4FLfCN8YTqaue8RVAmSs9/bdEZiR7FanZEO155IEvTWs7VEQp5jBxPWdYKMheEEUG7hxkHzu8tbjS7e0NrDV0chr0G+McbT+xt4qUYIMwBldMBkzqRMRymF2Dl09kHQjTvOl6N/kMrCg0yirNYcM0mWLqEJlBgsMjMo9IbtAKlAXn5CPC2ujAv0Zh3J0FlD8R76mf0W1LWVIBY0/eH7tQteQGEWEhhY/oFiew/Yhus9RWB4rkyOx/uQ7vd7MeBEzBt/oxKoLkqX2cMYnfXijsYnvwDpBUjJVfYIQs331Etx+sA/JXNX0JHaBxPh1OTnsnw8aHYt0X+D9w+9mX9huMT3qjU9yTO+3dE3u+dH0k7zs+G572x78MTy/ejk4H47fTi8lwOpuM+rPh4AIGvpiOBmWApq5jOt7ZZHw0Oh5eTMbjGQxU1p3xA1Mtjn9FnIlpTlHIbGU63/T8bDj5ZTQdTy7OCOilGWnZZLjjaYgR/aXZ6o6c7GT0Ew9ufhwCClqm0LX9mP7YqgHPT+PDC/I4F4IlZpfdWTDy4xdfN1vGgBWCgKALvgdQaF0C/09jfbgvTVkCSqFfJ2PJKVcj69dxRzx7t7deI99R8q1cQ+Ao+yZjyXhYfjRgKTr1ClmONBPTnxtOoWvNy3f4RBMJtXvuu/PAwW7gJDqNDJTSRfE9Qe/hNbgl42cp05L0PC+Yv3ntBZe211RIKKx9P1jfcjINHVAp3FCpkTatUBUBjGuIMe0mf3tpUug23jca1lf0ovsK/2nsv4I1W6MFro+Sl7ZVOkShhQSMWdkHoqGGj83OXiUdHJ3eQBGFMQwuJfyKJshDdoTOXN/nAlzM1qYEQ4RJZEN9+zkYyoWvuD+LGi4CL9aAsLfbvrgNJYBZLnOaDgZZXKr1kvdO1oEnj261XlqXdoSaJa9lwhAvoXn6Eu02WtafGhViCXiZ7+RLyxh8irnUk+FP6wrF+9yccTFNULErdlSo3o04JFTvl/kd1ACVuBaIOyq2V+ZPmkt3XcoJZWmtjC8tMHnRgFeuI3F0JP+v9YipBbk0jZMwtFSd7soqRLq21Tmiyp8N8CQ+SCuyukwhr+Ocm/jrUIecU1ZmhOQAApccQWpuLFRRl5t8D+J0k9aUo7XASNYs6yXBoGAw3t0mP2DmcJPujwh65lVTgJ/PXySCh3ypYemgey5AF/3i4RrrsvSJNy421Bcaibd1bkdIXH3rZXrtp1872dd9yUiwgiSChVxBtqtsEPKhwz7I+t8E4cdobc+REJL0qwEkJIjKcoIb3wtsJ+KGIZ862SfZGGdBGEM4zGsXnCTj0MY6B26kNW1w5cYdroFsvFNwUxIO5AcOMhlh7a9XlutHsU1rx/PA+OtVJ/dNNkqYRHGytuIg8OZL2/V55JBvHe7bvpZq+nZ4FVghunKjOLwVks4cmnTSJqZjXrmxYjj4qh8J4yyKg1BM1Bht5LN+LBhqbs+X4qFgJPJVun9hEKM5uGT1l3ZsAWEF2EWA34K0UWe+tGNYZYc1ko07HfxMDDRBwiMscj520p9lfTEkgs54cn1v+xoJe9vXyKB3cI18YXf4oO9/TQouBqFojPSjfpzUWVwwDPumH4VVBZSeB9rA9DTkx8ufhfxQqpPARhGeAzaMwSlg41yCRgOLO5FgIPy1Q77qRhJVTyyPmLZScn0HLezEi7Puif/RD26KTLD2/UuFD05Y013AhUaqCxhnIH4pp01Q0km/g5On9GPh3n2pu3elLbiLVAZHEHgRpkR1C7jrNE2AGjVNgniJQmkbcotJPxfOn7qZakWkhRoW7mjJmmQXh3QiUJWhcA1VCKWNlsFKMYJyfIgC1qxSPTrljXLgMGOQI8mef7SvkKK768vRh1W6Ctyt1nbsXrqeG8s3W7aJnAYsElfDLrEeQR7f2nwne6MUn5I6/iNoqOJBgmIQLzVN+RzjL5VyeCHBkL5xtaFL2dyrdWFJ3Ov0elarF03ZLutayncia8jHxytJNyWG+7856UM5p8nQ0W6xlfLyRLYDjzApkljuZSk5Z5mSlTgkQN35+ZdkSv5h9qqJ05nPwC0pDm8V+cr1MSmhMC4jfQQylN5V2lM2kTgt9pZzmVaezHA8aYZtI3dWQVIM2OKyLjTbdHDA1JRfzRpvPbu9eKOtP2n6zsq7pulZMbLxUSYE53boxyoZ0KGUB2Yi280ozlkAc4GRUlTn0aw0nMzJD+AhiEMGbbWhRWjMTMfIlKnsLrJesq/diWEtZMFqySPuES+X6Y7ZWqd5ibPSYjPJ8fPa33FZVKlG0uRYfUa7PCkIFtVEBEE61HJOXOnncoHvYqpWGebwTZQqP9MILojDJc5sw98T2xMkcVclaRXaImT1ZAX13vfLIFI90rYAVCmvagOKU8vtCJAJkbvFBbRErn8FB8K3SzdGU9DoNNNtrtgvIwBTAUsp9xZMpdZBRn9wADyY8um/oITw+/dPW91Z6K6G2H3n/VNhqWJB/uHbigNxjpeUFOiYbWqYlu0e59Zqihv8LDXAzTpEC/cTFF8GJIGbzftGGeodlppvGoNG6K0bL5uk51aBNtzQfNXoFLS06jSBjPkxGVeT3lYhaa5CbI1kLkwzZLB3CzeMcBwQnezd7gdR2HfhNOuqRNEnMR68OwuOgxsUpl6J5iFUvIow07HDn/uK9jHoltPmWNWsal60jcmsYUXFY2abhT9V7Xltat70KbNeiPWYHIjpj8q+mYKTs5Cx31Q9qeIzsxfiv5VrTJWh2QrZT8qZXN4eDH+ZBtcT4uKYCdWpdhpm/CTjGEQVu284S041W3myvGJ3f4MDXL4JMKztzPpSETTWbd9wGnyyKs4hOI3yCQqGoIpTKd035JNmZqWK82UdTafK7FMVp5K5gcinosalivPQXqaTcCytKunJmKF8ssz+VPW4Szwe5FPlDFmVzzvX1/hkgbmwsRWxSCRIvLL2TG/gMoypoLD3oW01wNBYlQWkNtf9WlNiW2ytOXHPepNi626tSXFPs4RSfLdN+D8WDz4L8knN2VVPlc4Z5Y5oV+W5It9R3uK+r8/rWrr7q+lWcu6tD65RIpHpZAAWMFlQM3WZo64g3JKVi5X53WdbQ+yP2M2+oRhIVXc2HcvGHzoO8l2kHI0FKojGCN14uUKxO++wGPnCSFzYgeUGLGtdimPucxkC1r6I0hwljEgj1lgcjdNIfPRpjX33apMcm4hfkZLesO6IJEh+Q1O3/sN6MxlOz49nECb3/NnFSW/6M65JkP/5bDI8Gv1q+gx2A/UbmL5Ti5DsflosFgsjU+5wMhlPLnA44+l4dnE0Pj8dvOTm72Bztx/EnYWANAvDnPVmbyTDrO14aTrM9E1vMjp9ffHLaHzcm43Gp7mRoqUNO9i5dgO1zy0Z7Hjc/1kyEkSamQ4DGIJI1ovhr/3h4GLSO309zA3m2ysELrwdqJ2gHmswmgz7s/Hkt9wALkn61Uk1a5pBhsfD2fDibHg6GJ2+zo0E2Qxi1IFQPLHjd8l6rqAzXWhPPgMuTR02jaHdSwjEhzRcYNeWnCQ2JtjgAt+7pb65FuSIoDEMoKQivxbt56XOwlRCkXsFESbiIHtRD5I2QzJXSc8vbkYrYmZXmXI0vqH4NlF0yBvnNI2nZX8qReux2IVFBQy1qygjm04K0GsY1RWCKCgc5ttkdNHKLOglXFh/l4LTjcFJV7w9mDIkbgIY3rjtAUXoYBOAGJ1uD6aU8jcBixDgFimKELQxSPjgj6IpMoDBOKczcYXEfKyLx9anY1AiLMsYvDUgC8isnA4cL1HGVeVvlAqbwlPJ41q2/J7YdOE0bnoehE4uw7MkrE0MrW6N8rfzDk+zVZHzO5/W2pMTBZaEyTyKJF5bwKDZy/RR4XBlmlK82HjjZPHFAetkiC+OUS8tfHGUzXLBl9ZVMwH8nVCtOqO6xNhJgEib130ITOdL5CQeciCr2gQtUIj8OTKM6D8KIGNLOSlOsV057U+xRX4MHdA0CdgU/9YLY3dhz+Mpzohf6flCc1CQXPqiFOWsIc4pT1q/siBvl09TtkYymVkBYtmgn4OjbMoXzC6owHr42wVLuAt6gdHp0Xhygp/Plpslli33w63ThMcXM5ys92gsTXxMl0kLi8nD9NNszVNXm/uf3wFwC8B/ls9WDvPWAcPFvgChWSbdA3755aa5qtCq8q7MH0JaYXHKrxhWwf+9b3RtKfZwJFtE2lm2kbKS2mlH2M1jwaJK6TTyCxK3pbQ8sz+iKberWoZWLBogP5QCglHmb+YS5Kiyk1sGld8qpni3SHpnzLlsygMo6GyhUE/S9kAVcgua6SiR5X2TKvqXAhRt4YLJJSLi0d3afDfy53hHVovoT1mpZwtS61ou5OZLuQAdjabK6lh7iky7uCMk89O06XSqSm45rOUAe4dH/FApo1+R35lUiRFe/e/6wWq0giQMH7LfXieu02x8/f33e4PnXx92vtvt7XW+fvb9Xue754cvOs+fP/vu+YsXh9/vfv9to/WhdCGTm/jQnn+8CkE5DJm5TmzfvkKh4NY1g+Wb/vD51/3dQWd30P++83V/76jz3fff9juDXm/v8Nvv+sPht30elncj4DoLe45mt2vUhIH5H7rpX6NodE78pwUrcVkra2S6HDz5WYgiFF6jqXv1oZQ4neTS/ym4LHOGdzSZWS9qnvsrPIeDwT0+ezuNw9aHzLE4Wnv2rbgWcQKzxLeiVDhQOwAQCmUZRo74e2GpUIviP8FlMWefeo2vUSxcIBQsuI/5h36y+im4FPglY+QsPPsqkswOXUsQRABCVBkH+EExQNE8dCV3AUkYXi4SmILq2f5VYl8hKbbI5ehkk4jzoCnO1l7v6OujF3vPOs8Pv93rfP3ixVHnu6Nvvut8e/ji6Nvnvf433/YGd3q2xCivdbhO0adYsunY86UKyYnbEgJCMbyOqhHE9KO7bmagVOuMLRrNan36XuCTyiFbpWp8jzZTXLDFVCO659++ePHd4Pm3nW92vx12vt57sdv5/vnei86zF893Xwz2vtk93Ht2jwz9p+CyFr31HAenAEcxt7NtdioX5FM1DNMhN7gdQrQKYnQeCkIvjMfwgrlN6nhXZrwAfdTkmBOgoSKZTZMIZx6tfEiSFap6Smx/jryqnWj1t2bl0zNymvlbuPII+ACkxw8u+spDnIXBFRS/wsMcvsZpf88m49eT4XQKVV/xx+qAuSuUG3I2OhlOrRh+rjwYNjlnywRvD1TvAuZJkWnwqg0zvvFRbpgAfpDwvGkcJvP42L4NkrhJ/vnZ9Z3uFP2eQDk/2xMwpgh3EpWZ0incAERf+UanMHvrKZonoRvfMomkaJyQMofDIOCBLptiLkf+EoVuXHyUbwsvvf7xxXT0fzm9hw4xmGx6c4Svq31lGw+nKh755xEyaXgUojtZ4/DizbA3GE60OWlvYwQrg73ZVzc5AklXtqZoGYQYRVP3jztZUH84nV70jo/Hb4eDi15/qFtYhgLrDbIdFKp248SOPqq+T10Hh0nUXVgb8suFUwS2APpfLLu14gDPepPZ+RmQqcnBnV+q9WreekI4k6NrN0DRxzhY65rN3NhT0rhz86v682+a3nlaEo6gb/IrPrSA9UgzlmnDI9fzUnWnpqn+zNxMl8ENUeSrG84v2QY+03Fnw4bLaeyM/HUS65uNk9ioXcFOva3zfzYZYwZQgWczoGixAw3osyVoR9WbSUcaaZqRofhW28LC8floYHRVHQc3Zzl2VeIWb9yr5dkGHE0O5Gz88/D04mwy+mV0PHytFzowwGehe+166Ep5w8LyrePEVeJfZIfY1tJ+Gh+OD38a9mcXh73pqH9xPDoZzarQJPh/WmcopJQENUBA0D12V65s0azLT8GlSXOy/dBAxXrOKdmfuD7UlHsbhB8hjBfFCnaa9iF16Iz6UFEHYhDpklWwsxl6i4Xru/HtvppgoHjILXZAUF7dxPQMcRD5ptsiitH4oj8+P50NJ3pSx5sJqWVS245SosTNcYWtCu3HEGFRoT2AMwttP1qg0BAa8+YYGEnz7Z/K4a+z4elgOKh+MLUn2zq0I3eOqVdvI+VIwhoF0F5D8fRwkGKcJkfkp+DSvPEZsj/mZjiPpEIg3yedJN/+rrhpr4+RBt79VVnqLIhtj7HHfV3Dn1HoI0/bdOlGZyh0A8d89HwX7TyYQeGmZ/YVOgK/e+0LkzQnu4kiY76rbooHTSvUO4I+29p0ifuAkZCACxzq3AwSorxb22GEZvbV9ldw2puNfiGuE6CTMpXHBnaMdKQAQlm53bYAL+jmzC4rrKTA5LGvb0b5fIiUEhrW6SqHzFqJRtwyPrBiUYeMwqYTw6sb+IodLXY5CRx34c6rdssuT6wlLnXemrpwNLjonQ4qaAvpTTF9OHmcPDWgbp8O1vLqLGDo96rPeTvD5QHTd+zF8Ne3RtxjiqLIDXz1u1P3OGXF0Wg7hbMkawkI0mzuabK6ROF4QZ68SpZM1Lna6w0uQrDxnEf2lZJXYqHGtLH5YwWGNWqN2Z6JUCCSArbGwqSefNu7ULfA+o7tKCYByRU7kdeG5tb8JfCSFZqi0LU9QpC6ewW2Fe5ak3bHcrUcfwKOXf9jpBsP13k1mRg3zM3MU8zA84glvNn4iInr+bOu43kNBVdqW1MUA0Z5b38hXeFAaPQJIGKcIPUyGuNIy7fNJ0U/HIGtSerZS/XHfsEezK/Kdq7ttbv5qt4R58WXlqExSowFbJWidYRpvrOS8WsWlH97K0wCGUlGyCOJ2inFTSfo2o1KXtacSTHSjJ5ZQksNgeQ/221xnVkwdR0l4l1HjjbX+QyXjhfN1lZYerYw+aJZV6Ola0FLmMmdUhYoP4QwLQWV7KEvieaelVwOc/Q6koUaFO3qwkLt4KqzlvZz7Lkn7BaVPiiP3KakZIxqEOUcHt9i+ieILbt5/u8h3Qyz0wcj4jq4NMHjZ8TcpigmvnAEVWKKBtG/TM+VcFz72N4nJsgLgghfDCPG5Phfhg7uasmAhDRNYeA1zZYkkIWogZ0MI5GVQip1fRYYIV5mdfEhZ0Aaty7cG0OF+w5ILhnkfBY4G9jzeiRkjBTgztg/sOg8rrwJKw3/mFHem3scAxKiWnjbizz25NGmCYnaSr8eCyJIC02wZfhRIgw1OcSQpYFfOqgH2jzV2HNUVfTZIqg4BeHUdZrZe2OvzT0+nj023PYhU/Qs+Ij8EwT6m2jproX0GEObtuRNNQvwODVPqxuRuR8bbsZr5FMlMcaQEC9r0kBw8hwUuSHLPyjlchivj/DE4RXrmJSAKLD3fKEv5ipt6QAjJQMrNhFxMU40ARTQfP6fj5B/HAQfk3Xq+vWL7SVIoru5jWK0Ksv6nC6xjBrsLuYl7qO7CnvOf5KIkFq6+MiU0shN7+LEEz3PywZol7SyRU88CC7HoRACertMFgsUiqgsPfHo2g2SSDAAbWFChTl9tan++Rjih8BRnt0vK+yVYjTH/b7UuAObqsuFG1sKCRRJJEIsV5R7HhuS/p2g8PYu0QQn38yzaDMRsi7R3yefiSB/T3qXZ6jmsFu40B/bEkYRs2v7pSBwlSgiox9j6YwEUhui427MbiCIcUY3gXRFBUkSL9U2sazV4r8Qp0uKCNHNaH5OZhJsvKSAQ5WT4+Aq8MViRhKhUCpkOMHKdn3hp7UdRTdB6Ai4iAezHZVzBNCe9nrtUZ+g8sTEqnMI9WlQaM2D1cr2nWPXF93fc2qVF0zFwhX9azcM/FVJ+ZCv35Xm7C3LE1xAEmA6jJM1cPIy/xVEa7BjyrH+rfAa7QliJFvppaJjE/y5eyNTurIVO4+NqQ4SQnQsadITaZawMwVv5dPxiF85dniFYuEQ/EsQt5Ii8a43KSBVy+6QFpMsmpy4SbHrN8Z/3fXMb203PgK7vn/lofz9T80FpN3K9Tw3QvPAdx6dFADR15/cuB84jCKbhcs/ewsj2vCxrSH1rhaLYZ8H7DLsP2roqQTgFquyckwIDiI0kHKpG3BEK7eQ+T6t3TXnWCcyyCncbB7w/UrYpE7/JTUzruzoo+BnnCLpQUVpQgJgURYLfr7Yiqy4fMguLu0QnQBwRlTB7EhKymCCHMmg50oepxilPd+RDcWuGLRae3Tlj5CpE1fHlNgObwn9DT8JyQ7M/XW0AbKMlernP1GITR/hOZUjzhBtOKuKUR7X7TwjmaMSQI0TznCQPTbkHnlJtARAD/H+RyawwrMR+deP6NE7wFVezkjRS4lKHVJawH+JX7SkKyRMFj8Wg9U6iclr+a45+9bxQu6BghPRZ7QKUmE5fainS4E6Sqql3MTRY9POvJ1NIc0XBCtnkYrDTxI3VshpEZbvWqJoQdfF+vDU9YkGz0hlO04zIbGvlXLsPX6sgrmEBO+WsMkyfcltDMS+IhJOVIh4MPkesuHSCzAnodKkWn8/+fvJ/w/b752mbmIFAA== '@ - if ($encodedSupervisor.Length -ne 64352) { throw 'Supervisor payload length mismatch.' } + if ($encodedSupervisor.Length -ne 64624) { throw 'Supervisor payload length mismatch.' } $compressedSupervisor = [Convert]::FromBase64String($encodedSupervisor) - if ($compressedSupervisor.Length -ne 48262) { throw 'Supervisor compressed size mismatch.' } + if ($compressedSupervisor.Length -ne 48466) { throw 'Supervisor compressed size mismatch.' } $compressedSupervisorDigest = [Convert]::ToHexString([Security.Cryptography.SHA256]::HashData($compressedSupervisor)).ToLowerInvariant() - if ($compressedSupervisorDigest -cne 'e50e52cb3d76732810f5eae3670d8434657b8bed54051ade8e6bdf4235c6d2b6') { throw 'Supervisor compressed digest mismatch.' } - $supervisorSourceSize = 351497 + if ($compressedSupervisorDigest -cne '33eff44bb7cbd2316bda4445712c5e3971fe3d3608a032c9c5b56fbe579730c1') { throw 'Supervisor compressed digest mismatch.' } + $supervisorSourceSize = 352878 $supervisorSourceBytes = [byte[]]::new($supervisorSourceSize) $supervisorInput = [IO.MemoryStream]::new($compressedSupervisor, $false) $supervisorGzip = $null @@ -472,7 +472,7 @@ jobs: } if ($supervisorGzip.ReadByte() -ne -1) { throw 'Supervisor source exceeds the reviewed size.' } $supervisorDigest = [Convert]::ToHexString([Security.Cryptography.SHA256]::HashData($supervisorSourceBytes)).ToLowerInvariant() - if ($supervisorDigest -cne '281acdeba5ee8dd022fd0451bd4ede6af8431aba8810f1683ce7077cc627fcb0') { throw 'Supervisor source digest mismatch.' } + if ($supervisorDigest -cne 'd08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65') { throw 'Supervisor source digest mismatch.' } $jobSupervisorSource = [Text.UTF8Encoding]::new($false, $true).GetString($supervisorSourceBytes) } finally { if ($null -ne $supervisorGzip) { $supervisorGzip.Dispose() } diff --git a/docs/phase1-conformance.md b/docs/phase1-conformance.md index 1bf5e385..cbbe77ee 100644 --- a/docs/phase1-conformance.md +++ b/docs/phase1-conformance.md @@ -1544,7 +1544,7 @@ revision authorities can therefore have different workflow hashes: | File | Bytes | SHA-256 | | --- | ---: | --- | -| `.github/workflows/client-v1-conformance.yml` | 166,782 | `a64fcdaf3fbd51e6cc0d3eb293ec5ac6a27df820182f0e89c272ce9cadfea566` | +| `.github/workflows/client-v1-conformance.yml` | 167,054 | `e0d848fc82bd97d968b661a442420174d0690dd108d9a2c926c292f6505fb342` | | `scripts/contract-canary.mjs` | 40,618 | `a4c2fe0a5eb6a5ff4653de5374c34c0fb46907c6806a5d23b86d8b37206ef958` | | `scripts/executable-resolution.mjs` | 9,154 | `31e3c412ff8c835f14522f36a59e91f4a4ba82913210ae8e3b4455217503f430` | | `scripts/owned-temp-directory.mjs` | 6,965 | `a9c55c85cf2b7d70310d278bafd2c8e7695d66f4ae38b9c3f1f12fce0b442095` | @@ -1569,11 +1569,11 @@ revision authorities can therefore have different workflow hashes: | `scripts/unix-producer-supervisor.test.sh` | 13,348 | `a8c6f48915b0c86a704a7ddc28eaa7f808ae0a3ddfcdb38c0c23ac0d83738f6d` | | `scripts/phase1-windows-supervisor-build.sh` | 4,646 | `713a9e0282887ade3e243b5ba175794d74cdb02c28c38dcd41491c9505812770` | | `scripts/phase1-windows-supervisor-install.ps1` | 1,743 | `2baab275f0bb6789884cded5f6185d00bfa5348b9e7c3ad1e5575353639101d5` | -| `scripts/windows-job-supervisor.cs` | 351,497 | `281acdeba5ee8dd022fd0451bd4ede6af8431aba8810f1683ce7077cc627fcb0` | +| `scripts/windows-job-supervisor.cs` | 352,878 | `d08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65` | | `scripts/windows-job-supervisor.test.ps1` | 187,115 | `9ebf051e1abfc08e86d99fd702fa410857005fdd22aa2e31978b17e1687ad3f3` | -| `scripts/windows-quota-diagnostics.test.ps1` | 25,774 | `c9a9a82a1d90da0da6a95732048946f83917de91bda76ac4a36cfaecdf6e0d42` | -| `scripts/windows-owner-directory-quota.test.ps1` | 11,186 | `41a028dae853502af7f06463983e74d0a798070a538852b7d8bb2773cb3e7fe3` | -| `scripts/windows-quota-isolated-reader.test.ps1` | 18,928 | `247778f13c4238d8b7a9f1e004571d91709790654e246896357fc497514476a6` | +| `scripts/windows-quota-diagnostics.test.ps1` | 29,480 | `b2160b083f6db3c4e6a328b026350c9ae80a2d688482849705705396ded1a998` | +| `scripts/windows-owner-directory-quota.test.ps1` | 14,003 | `a2fa69b2b8b3cdd8a66387d052d1d2f3a7da2186847884328b02ea0828437727` | +| `scripts/windows-quota-isolated-reader.test.ps1` | 22,072 | `144f1e0f95617070d8ba55b697b0cab2aff0ede9e9524e8ae2141bcff0e38476` | | `scripts/windows-quota-lifetime.test.ps1` | 2,513 | `dd10741c19cd97cc1b9ee29ebe18b8381503d589680acd0eddaabda08b5e7aec` | | `scripts/windows-identity-cleanup-diagnostics.test.ps1` | 6,025 | `43688191fcbf8807d5e33ba811f14b0f8a6e780fef30ae2e3f494d540608bdb2` | | `scripts/windows-cleanup-delete-diagnostics.test.ps1` | 7,433 | `e9d30285a1fe0ad035637621c6a3840eb8a6194b2f23e1a4aa188c5884cd0c64` | @@ -2153,3 +2153,25 @@ Chat #257 publishes `phase1.native-scenarios.launch.service-unavailable`; this integration preserves that identifier alongside the six other allowlisted native launch codes and the retained-handle termination correction. Service unavailability is an observed native result and does not by itself establish a timeout. + +Protected run `34773356378` used Chat `3a1f4e3` and SDK validator +`372fa9d`. Linux and Darwin passed. Windows failed during active Cave packaging +with `access-denied; root=cave-checkout; scope=none; +operation=directory-enumeration-depth-3-plus; repeat=readable`. No Windows +record was produced, so validation, attestation, and aggregation were skipped. + +The fresh same-token enumeration had completed under the existing entry bound, +but the monitor discarded it and terminated the producer because every repeat +was diagnostic-only. Directory snapshots now recover only this narrow case: +an initial `UnauthorizedAccessException` followed immediately by a successful +fresh invocation of the same bounded snapshot core. The failed attempt's +partial entries are never used. Missing and persistent repeats, all +non-access-denied failures, and metadata reads remain fail-closed. Quota byte +limits, entry limits, reparse rejection, isolated identity, polling cadence, +process quarantine, cleanup, and private diagnostics remain unchanged. + +Portable coverage demonstrates the prior failure before the repair and verifies +the returned fresh snapshot. Native Windows coverage keeps a real owner-only +denial across both reads to prove persistent denial remains terminal, then +restores only the test fixture between reads and verifies complete snapshot +accounting plus a real byte-limit breach. diff --git a/docs/windows-quota-repeat-outcome.md b/docs/windows-quota-repeat-outcome.md index 4c1531cd..72537b9d 100644 --- a/docs/windows-quota-repeat-outcome.md +++ b/docs/windows-quota-repeat-outcome.md @@ -14,16 +14,36 @@ follow-up read: - `persistent`: it threw another exception; this need not match the first error. - `none`: no diagnostic follow-up was requested. -Every outcome preserves the original failure and rejects the quota measurement. -There is no additional read, wait, measurement acceptance, identity switch, -permission change, or change to any resource ceiling. These are observations -at follow-up time, not proof of the original filesystem state. +Protected run +[34773356378](https://github.com/OpenCoven/chat/actions/runs/34773356378) +later failed while Cave was being built with `access-denied`, +`root=cave-checkout`, `directory-enumeration-depth-3-plus`, and +`repeat=readable`. The monitor had discarded a fresh complete snapshot produced +by the same bounded traversal immediately after the first enumeration failure. + +Directory enumeration now accepts only that `readable` result. The retry uses +the same validated isolated-user token, directory, search pattern, entry limit, +reparse rejection, and byte-accounting path as the first attempt. The first +attempt's partial list is discarded; only a fresh traversal that completes +under the existing bounds can become the measurement. There is no wait, third +read, identity switch, permission change, or resource-ceiling change. + +`missing` and `persistent` repeats remain terminal, as do every initial failure +other than `UnauthorizedAccessException`. Attribute and file-length reads keep +their existing fail-closed diagnostic-only repeats. The terminal check performs +the same bounded recovery and still rejects any path that cannot produce a +complete readable snapshot. Managed regression coverage exercises both missing exception types, a successful -follow-up, repeated access denial, and a different second error. It requires -exactly two callback calls, the original access-denied category, and suppression -of private exception text. Existing single-pass, first-failure, terminal and -background diagnostic checks remain in place. +metadata follow-up, repeated access denial, and a different second error. A +separate snapshot regression requires exactly two calls and verifies that the +accepted result contains the complete fresh directory contents. Native Windows +coverage first holds a real owner-only ACL denial across both reads and requires +the bounded `persistent` failure. The isolated-reader fixture then denies the +validated isolated identity, restores only that fixture ACL between attempts, +and requires two identity-checked reads to return the complete fresh snapshot. +A subsequent 512-byte limit check proves the production accounting path still +enforces the byte quota. Status: local diagnostic tests pass after a demonstrated failing regression. Native Windows validation, reviewed frozen-source binding, SDK rebinding and diff --git a/docs/windows-quota-reproduction.md b/docs/windows-quota-reproduction.md index 812f30a7..fa7ef69c 100644 --- a/docs/windows-quota-reproduction.md +++ b/docs/windows-quota-reproduction.md @@ -117,3 +117,31 @@ both `FILE_LIST_DIRECTORY` and `FILE_READ_ATTRIBUTES`, requires quota rejection, and records the attribute observation independently. Native verification of this corrected control remains required; neither fixture identifies the protected descendant's cause. + +## Complete readable snapshot recovery + +Protected run +[34773356378](https://github.com/OpenCoven/chat/actions/runs/34773356378) +failed during the Cave build with `access-denied`, `root=cave-checkout`, +`directory-enumeration-depth-3-plus`, and `repeat=readable`. This establishes +that the same isolated identity could complete a fresh enumeration immediately +after the first attempt failed. It does not identify the private descendant or +prove whether build-directory replacement, deletion completion, or another +filesystem transition caused the first denial. + +The accounting defect was that the monitor discarded that complete fresh +snapshot and terminated the producer. The repaired enumeration path accepts a +second result only when the first failure is `UnauthorizedAccessException` and +the second invocation of the same bounded snapshot core completes. A missing +or failing repeat remains terminal. Non-access-denied failures and non-directory +metadata reads preserve the diagnostic-only repeat behavior. + +The native fixtures supply deterministic controls without changing production +ACLs. The owner-directory fixture keeps a real owner-only denial in place for +both enumerations and requires `repeat=persistent`. The isolated-reader fixture +then applies a real enumeration denial to the validated isolated identity, +checks both recovery callbacks run under that identity, restores only the +fixture ACL between attempts, and requires the fresh complete snapshot. +Independent terminal checks below and above the byte limit exercise the +production accounting path. It retains the existing path, entry, byte, reparse, +process, output, and time bounds. diff --git a/scripts/windows-job-supervisor.cs b/scripts/windows-job-supervisor.cs index 9ba3284e..5791b0ff 100644 --- a/scripts/windows-job-supervisor.cs +++ b/scripts/windows-job-supervisor.cs @@ -7413,29 +7413,63 @@ private static List ReadBoundedDirectorySnapshot( int maximumEntries, int depth = -1, bool repeatDiagnostic = false) { - try - { - return ReadBoundedDirectorySnapshotCore( + string operation = directoriesOnly ? "pattern-enumeration" : + depth == 0 ? "directory-enumeration-root" : + depth == 1 ? "directory-enumeration-depth-1" : + depth == 2 ? "directory-enumeration-depth-2" : + depth >= 3 ? "directory-enumeration-depth-3-plus" : "directory-enumeration"; + return ReadDirectorySnapshotOperation( + operation, + () => ReadBoundedDirectorySnapshotCore( directory, searchPattern, directoriesOnly, - maximumEntries); - } - catch (Exception error) - { - string repeat = repeatDiagnostic ? ClassifyQuotaReadRepeat(() => - ReadBoundedDirectorySnapshotCore( + maximumEntries), + repeatDiagnostic, + () => ReadBoundedDirectorySnapshotCore( directory, searchPattern, directoriesOnly, - maximumEntries)) : "none"; + maximumEntries, + true)); + } + + private static List ReadDirectorySnapshotOperation( + string operation, + Func> read, + bool repeatDiagnostic, + Func> repeatRead = null) + { + try { return read(); } + catch (Exception error) + { + string repeat = "none"; + if (repeatDiagnostic && error is UnauthorizedAccessException) + { + try + { + return (repeatRead ?? read)(); + } + catch (FileNotFoundException) + { + repeat = "missing"; + } + catch (DirectoryNotFoundException) + { + repeat = "missing"; + } + catch + { + repeat = "persistent"; + } + } + else if (repeatDiagnostic) + { + repeat = ClassifyQuotaReadRepeat(repeatRead ?? read); + } throw new QuotaMonitorContextException( null, - directoriesOnly ? "pattern-enumeration" : - depth == 0 ? "directory-enumeration-root" : - depth == 1 ? "directory-enumeration-depth-1" : - depth == 2 ? "directory-enumeration-depth-2" : - depth >= 3 ? "directory-enumeration-depth-3-plus" : "directory-enumeration", + operation, null, repeat, error); @@ -7446,7 +7480,8 @@ private static List ReadBoundedDirectorySnapshotCore( string directory, string searchPattern, bool directoriesOnly, - int maximumEntries) + int maximumEntries, + bool requireComplete = false) { List snapshot = new List(); IEnumerable entries; @@ -7465,10 +7500,12 @@ private static List ReadBoundedDirectorySnapshotCore( } catch (FileNotFoundException) { + if (requireComplete) throw; return snapshot; } catch (DirectoryNotFoundException) { + if (requireComplete) throw; return snapshot; } using (enumerator) @@ -7482,10 +7519,12 @@ private static List ReadBoundedDirectorySnapshotCore( } catch (FileNotFoundException) { + if (requireComplete) throw; break; } catch (DirectoryNotFoundException) { + if (requireComplete) throw; break; } if (!moved) diff --git a/scripts/windows-owner-directory-quota.test.ps1 b/scripts/windows-owner-directory-quota.test.ps1 index c5d628c2..2adf7ba0 100644 --- a/scripts/windows-owner-directory-quota.test.ps1 +++ b/scripts/windows-owner-directory-quota.test.ps1 @@ -14,13 +14,17 @@ $terminal = [OpenCoven.WindowsJobSupervisor].GetMethod('ApplyTerminalDirectoryQu $monitor = [OpenCoven.WindowsJobSupervisor].GetMethod('MonitorDirectoryQuotasAsync', $staticFlags) $stateType = [OpenCoven.WindowsJobSupervisor].GetNestedType('DirectoryQuotaFailureState', [Reflection.BindingFlags]'NonPublic') $enablePrivilege = [OpenCoven.WindowsJobSupervisor].GetMethod('EnablePrivilege', $staticFlags) -foreach ($method in @($terminal, $monitor, $stateType, $enablePrivilege)) { +$readSnapshot = [OpenCoven.WindowsJobSupervisor].GetMethod('ReadDirectorySnapshotOperation', $staticFlags) +$readBoundedSnapshot = [OpenCoven.WindowsJobSupervisor].GetMethod('ReadBoundedDirectorySnapshot', $staticFlags) +foreach ($method in @($terminal, $monitor, $stateType, $enablePrivilege, $readSnapshot, $readBoundedSnapshot)) { if ($null -eq $method) { throw 'Native owner-directory fixture contract is missing.' } } if (-not ('OpenCoven.Tests.OwnerDirectoryQuotaFixture' -as [type])) { Add-Type -Language CSharp -TypeDefinition @' using System; +using System.Collections.Generic; using System.ComponentModel; +using System.IO; using System.Runtime.InteropServices; using System.Security.AccessControl; namespace OpenCoven.Tests @@ -121,6 +125,40 @@ namespace OpenCoven.Tests throw new Win32Exception(Marshal.GetLastWin32Error(), "Fixture owner-only directory setup failed."); } } + + public static class QuotaSnapshotReadFixture + { + public static string DirectoryPath; + public static Action BeforeReadableRepeat; + + public static Func> Read + { + get { return ReadSnapshot; } + } + + public static Func> RestoreAndRead + { + get { return RestoreAndReadSnapshot; } + } + + private static List ReadSnapshot() + { + var snapshot = new List(); + foreach (var entry in new DirectoryInfo(DirectoryPath).EnumerateFileSystemInfos( + "*", + SearchOption.TopDirectoryOnly)) + { + snapshot.Add(entry); + } + return snapshot; + } + + private static List RestoreAndReadSnapshot() + { + BeforeReadableRepeat(); + return ReadSnapshot(); + } + } } '@ } @@ -176,8 +214,42 @@ try { throw 'Quota fixture changed supervisor identity.' } - # Restore only this test fixture. Production private ACLs remain untouched. - $securityLease.Restore() + [OpenCoven.Tests.QuotaSnapshotReadFixture]::DirectoryPath = $directory + $persistentRead = $null + try { + $readBoundedSnapshot.Invoke($null, [object[]]@( + $directory, + '*', + $false, + 10, + 3, + $true + )) | Out-Null + } catch { + $persistentRead = $_.Exception.GetBaseException() + } + if ($null -eq $persistentRead -or + $persistentRead.GetType().GetProperty('Category', $instanceFlags).GetValue($persistentRead) -cne 'access-denied' -or + $persistentRead.GetType().GetProperty('Operation', $instanceFlags).GetValue($persistentRead) -cne 'directory-enumeration-depth-3-plus' -or + $persistentRead.GetType().GetProperty('Repeat', $instanceFlags).GetValue($persistentRead) -cne 'persistent') { + throw 'Persistent native directory denial did not remain fail-closed.' + } + [OpenCoven.Tests.QuotaSnapshotReadFixture]::BeforeReadableRepeat = [Action]{ + $securityLease.Restore() + } + $snapshot = $readSnapshot.Invoke($null, [object[]]@( + 'directory-enumeration-depth-3-plus', + [OpenCoven.Tests.QuotaSnapshotReadFixture]::Read, + $true, + [OpenCoven.Tests.QuotaSnapshotReadFixture]::RestoreAndRead + )) + if ($snapshot.Count -ne 1 -or $snapshot[0].Name -cne 'payload.bin' -or $snapshot[0].Length -ne 1024) { + throw 'Readable native repeat did not return the complete fresh snapshot.' + } + if ([Security.Principal.WindowsIdentity]::GetCurrent().User.Value -cne $supervisorSid) { + throw 'Readable native repeat changed supervisor identity.' + } + $overflow = [OpenCoven.WindowsJobRunResult]::new() $terminal.Invoke($null, [object[]]@($overflow, [OpenCoven.WindowsDirectoryQuota[]]@( [OpenCoven.WindowsDirectoryQuota]::new('harness execution aggregate', $directory, 512) @@ -190,6 +262,8 @@ try { } catch { $failures.Add($_.Exception) } finally { + [OpenCoven.Tests.QuotaSnapshotReadFixture]::DirectoryPath = $null + [OpenCoven.Tests.QuotaSnapshotReadFixture]::BeforeReadableRepeat = $null try { if ($null -ne $cancellation) { $cancellation.Cancel() } } catch { $failures.Add($_.Exception) } try { diff --git a/scripts/windows-quota-diagnostics.test.ps1 b/scripts/windows-quota-diagnostics.test.ps1 index 9446ccd5..5b388b56 100644 --- a/scripts/windows-quota-diagnostics.test.ps1 +++ b/scripts/windows-quota-diagnostics.test.ps1 @@ -227,6 +227,8 @@ Write-Host 'Bootstrap quota scope classification is fixed and path-free.' if (-not ('OpenCoven.Tests.QuotaRepeatProbe' -as [type])) { Add-Type -Language CSharp -TypeDefinition @' using System; +using System.Collections.Generic; +using System.IO; namespace OpenCoven.Tests { public static class QuotaRepeatProbe @@ -236,6 +238,8 @@ namespace OpenCoven.Tests public static int MissingFileCalls; public static int MissingDirectoryCalls; public static int ChangedErrorCalls; + public static int SnapshotCalls; + public static string SnapshotDirectory; public static Func MissingFileRead { get { return MissingFile; } } public static Func MissingDirectoryRead { get { return MissingDirectory; } } public static Func ChangedErrorRead { get { return ChangedError; } } @@ -275,6 +279,26 @@ namespace OpenCoven.Tests PersistentCalls++; throw new UnauthorizedAccessException("private-persistent"); } + + public static Func> TransientSnapshotRead + { + get { return TransientSnapshot; } + } + + public static List TransientSnapshot() + { + SnapshotCalls++; + if (SnapshotCalls == 1) + throw new UnauthorizedAccessException("private-transient-snapshot"); + var snapshot = new List(); + foreach (var entry in new DirectoryInfo(SnapshotDirectory).EnumerateFileSystemInfos( + "*", + SearchOption.TopDirectoryOnly)) + { + snapshot.Add(entry); + } + return snapshot; + } } } '@ @@ -327,6 +351,80 @@ if ([OpenCoven.Tests.QuotaRepeatProbe]::PersistentCalls -ne 1 -or } Write-Host 'Quota read repeat classification is bounded and remains fail-closed.' +$readSnapshot = [OpenCoven.WindowsJobSupervisor].GetMethod('ReadDirectorySnapshotOperation', $flags) +if ($null -eq $readSnapshot) { throw 'Missing readable directory-snapshot recovery.' } +$snapshotRoot = Join-Path $PSScriptRoot ('.quota-readable-' + [guid]::NewGuid().ToString('N')) +try { + [IO.Directory]::CreateDirectory($snapshotRoot) | Out-Null + [IO.File]::WriteAllText((Join-Path $snapshotRoot 'payload'), 'quota') + [OpenCoven.Tests.QuotaRepeatProbe]::SnapshotDirectory = $snapshotRoot + [OpenCoven.Tests.QuotaRepeatProbe]::SnapshotCalls = 0 + $snapshot = $readSnapshot.Invoke($null, [object[]]@( + 'directory-enumeration-depth-3-plus', + [OpenCoven.Tests.QuotaRepeatProbe]::TransientSnapshotRead, + $true, + [Type]::Missing + )) + if ([OpenCoven.Tests.QuotaRepeatProbe]::SnapshotCalls -ne 2 -or + $snapshot.Count -ne 1 -or $snapshot[0].Name -cne 'payload') { + throw 'Readable repeat did not return the complete fresh directory snapshot.' + } +} finally { + [OpenCoven.Tests.QuotaRepeatProbe]::SnapshotDirectory = $null + Remove-Item -LiteralPath $snapshotRoot -Recurse -Force -ErrorAction SilentlyContinue +} +Write-Host 'Readable directory-snapshot repeat supplies the accepted bounded measurement.' + +$snapshotCore = [OpenCoven.WindowsJobSupervisor].GetMethod( + 'ReadBoundedDirectorySnapshotCore', + $flags, + $null, + [type[]]@([string], [string], [bool], [int], [bool]), + $null +) +if ($null -eq $snapshotCore) { throw 'Missing complete-snapshot enforcement.' } +$missingSnapshotPath = [string](Join-Path $snapshotRoot 'missing') +$missingSnapshot = $null +try { + $snapshotCore.Invoke($null, [object[]]@( + $missingSnapshotPath, + '*', + $false, + 10, + $true + )) | Out-Null +} catch { + $missingSnapshot = $_.Exception.GetBaseException() +} +if ($missingSnapshot -isnot [IO.DirectoryNotFoundException]) { + throw 'Required-complete snapshot accepted a missing directory.' +} +$boundedSnapshotRoot = Join-Path $PSScriptRoot ('.quota-bounded-' + [guid]::NewGuid().ToString('N')) +try { + [IO.Directory]::CreateDirectory($boundedSnapshotRoot) | Out-Null + [IO.File]::WriteAllText((Join-Path $boundedSnapshotRoot 'first'), 'quota') + [IO.File]::WriteAllText((Join-Path $boundedSnapshotRoot 'second'), 'quota') + $boundedSnapshotError = $null + try { + $snapshotCore.Invoke($null, [object[]]@( + [string]$boundedSnapshotRoot, + '*', + $false, + 1, + $true + )) | Out-Null + } catch { + $boundedSnapshotError = $_.Exception.GetBaseException() + } + if ($null -eq $boundedSnapshotError -or + $boundedSnapshotError.GetType().Name -cne 'QuotaEntryBoundException') { + throw 'Required-complete snapshot did not preserve the entry bound.' + } +} finally { + Remove-Item -LiteralPath $boundedSnapshotRoot -Recurse -Force -ErrorAction SilentlyContinue +} +Write-Host 'Readable recovery requires a complete bounded directory snapshot.' + # A real overlong filesystem name exercises the terminal/background catches on # every platform. Windows reports an unreviewed runtime HRESULT as generic I/O; # Unix hosts expose the reviewed filename-too-long HRESULT. diff --git a/scripts/windows-quota-isolated-reader.test.ps1 b/scripts/windows-quota-isolated-reader.test.ps1 index 1a238d33..965178dc 100644 --- a/scripts/windows-quota-isolated-reader.test.ps1 +++ b/scripts/windows-quota-isolated-reader.test.ps1 @@ -11,8 +11,9 @@ $instanceFlags = [Reflection.BindingFlags]'NonPublic,Instance' $terminal = [OpenCoven.WindowsJobSupervisor].GetMethod('ApplyTerminalDirectoryQuotaCheckAsUser', $staticFlags) $monitor = [OpenCoven.WindowsJobSupervisor].GetMethod('MonitorDirectoryQuotasAsUserAsync', $staticFlags) $read = [OpenCoven.WindowsIsolatedUser].GetMethod('RunQuotaRead', $instanceFlags) +$readSnapshot = [OpenCoven.WindowsJobSupervisor].GetMethod('ReadDirectorySnapshotOperation', $staticFlags) $stateType = [OpenCoven.WindowsJobSupervisor].GetNestedType('DirectoryQuotaFailureState', [Reflection.BindingFlags]'NonPublic') -foreach ($contract in @($terminal, $monitor, $read, $stateType)) { +foreach ($contract in @($terminal, $monitor, $read, $readSnapshot, $stateType)) { if ($null -eq $contract) { throw 'Isolated quota reader contract is missing.' } } $readString = $read.MakeGenericMethod([type[]]@([string])) @@ -24,6 +25,57 @@ using System.Security.Principal; using System.Threading; using System.Threading.Tasks; namespace OpenCoven.Tests { + public static class QuotaReadableRepeatProbe { + public static int Calls; + + public static System.Collections.Generic.List Run( + object identity, + MethodInfo quotaReadMethod, + MethodInfo snapshotOperation, + object restoration, + string directory, + string expectedSid) { + Calls = 0; + Func> read = () => { + AssertIdentity(expectedSid); + Interlocked.Increment(ref Calls); + var snapshot = new System.Collections.Generic.List(); + foreach (System.IO.FileSystemInfo entry in new System.IO.DirectoryInfo(directory).EnumerateFileSystemInfos( + "*", + System.IO.SearchOption.TopDirectoryOnly)) { + snapshot.Add(entry); + } + return snapshot; + }; + Func> repeatRead = () => { + AssertIdentity(expectedSid); + restoration.GetType().GetMethod("Restore").Invoke(restoration, null); + return read(); + }; + Func> recovery = () => + (System.Collections.Generic.List)snapshotOperation.Invoke( + null, + new object[] { + "directory-enumeration-depth-3-plus", + read, + true, + repeatRead + }); + MethodInfo genericRead = quotaReadMethod.MakeGenericMethod( + typeof(System.Collections.Generic.List)); + return (System.Collections.Generic.List)genericRead.Invoke( + identity, + new object[] { recovery }); + } + + private static void AssertIdentity(string expectedSid) { + using (WindowsIdentity current = WindowsIdentity.GetCurrent()) { + if (!String.Equals(current.User.Value, expectedSid, StringComparison.Ordinal)) + throw new InvalidOperationException("Readable quota retry escaped the isolated identity."); + } + } + } + public static class QuotaReadPathProbe { private static string ReadOutcome(Action read) { try { read(); return "ok"; } @@ -214,7 +266,7 @@ try { $enumerationDenied = Join-Path $identity.TempPath 'phase1-conformance-run-enumeration-denied' [IO.Directory]::CreateDirectory($enumerationDenied) | Out-Null [IO.File]::WriteAllText((Join-Path $enumerationDenied 'payload'), 'bounded') - $enumerationAcl = Get-Acl -LiteralPath $enumerationDenied + $enumerationLease = [OpenCoven.Tests.OwnerDirectoryQuotaFixture]::new($enumerationDenied) try { $denialAcl = Get-Acl -LiteralPath $enumerationDenied $denialAcl.AddAccessRule([Security.AccessControl.FileSystemAccessRule]::new( @@ -234,11 +286,24 @@ try { $enumerationResult.ResourceQuotaMonitorRepeat -cne 'persistent') { throw 'Isolated enumeration did not retain the original failure and bounded repeat.' } + $snapshot = [OpenCoven.Tests.QuotaReadableRepeatProbe]::Run( + $identity, + $read, + $readSnapshot, + $enumerationLease, + $enumerationDenied, + $identity.Sid + ) + if ([OpenCoven.Tests.QuotaReadableRepeatProbe]::Calls -ne 2 -or + $snapshot.Count -ne 1 -or $snapshot[0].Name -cne 'payload' -or + [Security.Principal.WindowsIdentity]::GetCurrent().User.Value -cne $supervisorSid) { + throw 'Isolated readable enumeration retry did not return one complete snapshot and restore supervisor identity.' + } } finally { - Set-Acl -LiteralPath $enumerationDenied -AclObject $enumerationAcl + $enumerationLease.Dispose() Remove-Item -LiteralPath $enumerationDenied -Recurse -Force } - Write-Host 'Isolated enumeration repeat remains bounded and fail-closed.' + Write-Host 'Isolated enumeration repeats remain bounded, identity-stable, and fail-closed unless a complete retry succeeds.' $state = [Activator]::CreateInstance($stateType, $true) $cancel = [Threading.CancellationTokenSource]::new(5000) $task = $monitor.Invoke($null, [object[]]@($identity, $over, $state, $cancel.Token)) diff --git a/src/client-v1-conformance-workflow.test.ts b/src/client-v1-conformance-workflow.test.ts index 7f6a94f9..8313ced9 100644 --- a/src/client-v1-conformance-workflow.test.ts +++ b/src/client-v1-conformance-workflow.test.ts @@ -3085,7 +3085,7 @@ ${pathAssignment} } }); - test('bounds Windows quota scope and repeat diagnostics without changing fail-closed accounting', () => { + test('accepts only a complete readable Windows directory snapshot repeat', () => { const workflow = readFileSync(workflowPath, 'utf8'); const sources = [ embeddedWindowsSupervisorSource(workflow), @@ -3098,6 +3098,9 @@ ${pathAssignment} 'ClassifyQuotaScope', 'NormalizeQuotaScope', 'NormalizeQuotaRepeat', + 'ReadDirectorySnapshotOperation', + 'repeatDiagnostic && error is UnauthorizedAccessException', + 'return (repeatRead ?? read)();', 'scope == null ? "none" : scope', 'repeat == null ? "none" : repeat', 'catch (QuotaMonitorContextException error)', @@ -3145,6 +3148,9 @@ ${pathAssignment} expect(source).toContain( '() => file.Length, repeatDiagnostic, () => new FileInfo(file.FullName).Length', ); + expect(source).toMatch( + /return ReadDirectorySnapshotOperation\(\s*operation,\s*\(\) => ReadBoundedDirectorySnapshotCore\(\s*directory,\s*searchPattern,\s*directoriesOnly,\s*maximumEntries\),\s*repeatDiagnostic,\s*\(\) => ReadBoundedDirectorySnapshotCore\(\s*directory,\s*searchPattern,\s*directoriesOnly,\s*maximumEntries,\s*true\)\);/u, + ); } }); From bcb53bbbf72bd4cc2af848d8db29c76fb9071762 Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 14:15:54 -0500 Subject: [PATCH 2/6] chore(conformance): freeze quota recovery authority Bind the immutable harness revision, tree, workflow, and Windows supervisor bytes to the reviewed quota recovery commit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/phase1-conformance.md | 4 ++-- phase1-conformance.lock.json | 14 +++++++------- src/phase1-conformance-lock.test.ts | 12 ++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/phase1-conformance.md b/docs/phase1-conformance.md index cbbe77ee..760667b0 100644 --- a/docs/phase1-conformance.md +++ b/docs/phase1-conformance.md @@ -253,8 +253,8 @@ diagnostic-only change. - Coven daemon and observation-test source `8c3735f374d6bc95e5b6fd107f7e7308fa26a2f8`; - Chat native client remains at `721437b84026c042e431b0882dcd14fdb29ac07d` in its frozen Cargo manifest and lock; -- Chat conformance driver `d55b40c3315035be4267424b5d5d55c416bb609d`, tree - `ceb98c9ace85138ef8ddab5a6f7a0aeb7d2008fb`, retained in the producer ancestry; +- Chat conformance driver `ad8d5f3e5e937c398c5d6d8f7bbbb190b4ed499a`, tree + `dd4ffa0af4c39aefee9fc675ba5c804d7fe0e678`, retained in the producer ancestry; - Historical schema-1 SDK evidence contract and registry `4736bf2e0d5b16272d79ecf7784c75f376b39b94`; - manifest digest diff --git a/phase1-conformance.lock.json b/phase1-conformance.lock.json index ce144e3e..672dcfed 100644 --- a/phase1-conformance.lock.json +++ b/phase1-conformance.lock.json @@ -18,11 +18,11 @@ }, "harness": { "repository": "OpenCoven/chat", - "revision": "d55b40c3315035be4267424b5d5d55c416bb609d" + "revision": "ad8d5f3e5e937c398c5d6d8f7bbbb190b4ed499a" }, "harnessAuthority": { - "revision": "d55b40c3315035be4267424b5d5d55c416bb609d", - "tree": "ceb98c9ace85138ef8ddab5a6f7a0aeb7d2008fb", + "revision": "ad8d5f3e5e937c398c5d6d8f7bbbb190b4ed499a", + "tree": "dd4ffa0af4c39aefee9fc675ba5c804d7fe0e678", "files": [ { "path": "scripts/phase1-conformance.mjs", @@ -116,8 +116,8 @@ }, { "path": "scripts/windows-job-supervisor.cs", - "blob": "9ba3284eafac595e8bf2bd6b598832f346e0750a", - "sha256": "281acdeba5ee8dd022fd0451bd4ede6af8431aba8810f1683ce7077cc627fcb0" + "blob": "5791b0ffb7a3d20bdcbfb4774c1bad649d2bdbd8", + "sha256": "d08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65" }, { "path": "scripts/contract-canary.mjs", @@ -146,8 +146,8 @@ }, { "path": ".github/workflows/client-v1-conformance.yml", - "blob": "a45c9311de3dd1b33688270bfbaae015fd8163f8", - "sha256": "a64fcdaf3fbd51e6cc0d3eb293ec5ac6a27df820182f0e89c272ce9cadfea566" + "blob": "b1306d09d7730d941086374a32fc245c9e09d18d", + "sha256": "e0d848fc82bd97d968b661a442420174d0690dd108d9a2c926c292f6505fb342" } ], "productionDeltas": [ diff --git a/src/phase1-conformance-lock.test.ts b/src/phase1-conformance-lock.test.ts index b7fba5dc..9d8e75ca 100644 --- a/src/phase1-conformance-lock.test.ts +++ b/src/phase1-conformance-lock.test.ts @@ -80,8 +80,8 @@ const committedHarnessAuthority = JSON.parse( readFileSync(resolve(projectRoot, 'phase1-conformance.lock.json'), 'utf8'), ).harnessAuthority; const expectedBehaviorAuthority = { - revision: 'd55b40c3315035be4267424b5d5d55c416bb609d', - tree: 'ceb98c9ace85138ef8ddab5a6f7a0aeb7d2008fb', + revision: 'ad8d5f3e5e937c398c5d6d8f7bbbb190b4ed499a', + tree: 'dd4ffa0af4c39aefee9fc675ba5c804d7fe0e678', files: [ { path: 'scripts/phase1-conformance.mjs', @@ -110,8 +110,8 @@ const expectedBehaviorAuthority = { }, { path: 'scripts/windows-job-supervisor.cs', - blob: '9ba3284eafac595e8bf2bd6b598832f346e0750a', - sha256: '281acdeba5ee8dd022fd0451bd4ede6af8431aba8810f1683ce7077cc627fcb0', + blob: '5791b0ffb7a3d20bdcbfb4774c1bad649d2bdbd8', + sha256: 'd08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65', }, { path: 'scripts/unix-producer-command.sh', @@ -125,8 +125,8 @@ const expectedBehaviorAuthority = { }, { path: '.github/workflows/client-v1-conformance.yml', - blob: 'a45c9311de3dd1b33688270bfbaae015fd8163f8', - sha256: 'a64fcdaf3fbd51e6cc0d3eb293ec5ac6a27df820182f0e89c272ce9cadfea566', + blob: 'b1306d09d7730d941086374a32fc245c9e09d18d', + sha256: 'e0d848fc82bd97d968b661a442420174d0690dd108d9a2c926c292f6505fb342', }, { path: 'scripts/process-owned-artifact-root.mjs', From 7d338aadf181277e8b9be4a91d5f0b4ca814fb3b Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 14:21:43 -0500 Subject: [PATCH 3/6] ci: run full quota recovery checks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From 78d7fe1324d25ffdb529a603197fce5b367d7d69 Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 14:38:48 -0500 Subject: [PATCH 4/6] test: preserve quota context through reflection Unwrap only PowerShell and reflection invocation wrappers so the native fixture inspects the bounded quota context instead of discarding it for the deepest access exception. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/phase1-conformance.md | 2 +- scripts/windows-owner-directory-quota.test.ps1 | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/phase1-conformance.md b/docs/phase1-conformance.md index 760667b0..a5e2327a 100644 --- a/docs/phase1-conformance.md +++ b/docs/phase1-conformance.md @@ -1572,7 +1572,7 @@ revision authorities can therefore have different workflow hashes: | `scripts/windows-job-supervisor.cs` | 352,878 | `d08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65` | | `scripts/windows-job-supervisor.test.ps1` | 187,115 | `9ebf051e1abfc08e86d99fd702fa410857005fdd22aa2e31978b17e1687ad3f3` | | `scripts/windows-quota-diagnostics.test.ps1` | 29,480 | `b2160b083f6db3c4e6a328b026350c9ae80a2d688482849705705396ded1a998` | -| `scripts/windows-owner-directory-quota.test.ps1` | 14,003 | `a2fa69b2b8b3cdd8a66387d052d1d2f3a7da2186847884328b02ea0828437727` | +| `scripts/windows-owner-directory-quota.test.ps1` | 14,130 | `ccfea4b189ba719ba4d882c32cee4431ecc639f2cf15c73caf6ce1e2821762ae` | | `scripts/windows-quota-isolated-reader.test.ps1` | 22,072 | `144f1e0f95617070d8ba55b697b0cab2aff0ede9e9524e8ae2141bcff0e38476` | | `scripts/windows-quota-lifetime.test.ps1` | 2,513 | `dd10741c19cd97cc1b9ee29ebe18b8381503d589680acd0eddaabda08b5e7aec` | | `scripts/windows-identity-cleanup-diagnostics.test.ps1` | 6,025 | `43688191fcbf8807d5e33ba811f14b0f8a6e780fef30ae2e3f494d540608bdb2` | diff --git a/scripts/windows-owner-directory-quota.test.ps1 b/scripts/windows-owner-directory-quota.test.ps1 index 2adf7ba0..e405a70a 100644 --- a/scripts/windows-owner-directory-quota.test.ps1 +++ b/scripts/windows-owner-directory-quota.test.ps1 @@ -226,7 +226,10 @@ try { $true )) | Out-Null } catch { - $persistentRead = $_.Exception.GetBaseException() + $persistentRead = $_.Exception.InnerException + if ($persistentRead -is [Reflection.TargetInvocationException]) { + $persistentRead = $persistentRead.InnerException + } } if ($null -eq $persistentRead -or $persistentRead.GetType().GetProperty('Category', $instanceFlags).GetValue($persistentRead) -cne 'access-denied' -or From f7565bad1ca132e6235154b82606e43d3b1fdbfd Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 14:51:52 -0500 Subject: [PATCH 5/6] test: inspect native quota context deterministically Unwrap the production wrapper invocation inside the compiled Windows fixture so persistent denial assertions retain the bounded context exception. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/phase1-conformance.md | 2 +- .../windows-owner-directory-quota.test.ps1 | 53 ++++++++++++------- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/docs/phase1-conformance.md b/docs/phase1-conformance.md index a5e2327a..fe1718a2 100644 --- a/docs/phase1-conformance.md +++ b/docs/phase1-conformance.md @@ -1572,7 +1572,7 @@ revision authorities can therefore have different workflow hashes: | `scripts/windows-job-supervisor.cs` | 352,878 | `d08748d1a7ce3cc3964ce4520cc501f514d5777ed102ac5f57ebc20b75e7bb65` | | `scripts/windows-job-supervisor.test.ps1` | 187,115 | `9ebf051e1abfc08e86d99fd702fa410857005fdd22aa2e31978b17e1687ad3f3` | | `scripts/windows-quota-diagnostics.test.ps1` | 29,480 | `b2160b083f6db3c4e6a328b026350c9ae80a2d688482849705705396ded1a998` | -| `scripts/windows-owner-directory-quota.test.ps1` | 14,130 | `ccfea4b189ba719ba4d882c32cee4431ecc639f2cf15c73caf6ce1e2821762ae` | +| `scripts/windows-owner-directory-quota.test.ps1` | 14,775 | `605b57608bf4ef2939759d32df6ac1685027bdd864aaaab44dac15ab90de51ec` | | `scripts/windows-quota-isolated-reader.test.ps1` | 22,072 | `144f1e0f95617070d8ba55b697b0cab2aff0ede9e9524e8ae2141bcff0e38476` | | `scripts/windows-quota-lifetime.test.ps1` | 2,513 | `dd10741c19cd97cc1b9ee29ebe18b8381503d589680acd0eddaabda08b5e7aec` | | `scripts/windows-identity-cleanup-diagnostics.test.ps1` | 6,025 | `43688191fcbf8807d5e33ba811f14b0f8a6e780fef30ae2e3f494d540608bdb2` | diff --git a/scripts/windows-owner-directory-quota.test.ps1 b/scripts/windows-owner-directory-quota.test.ps1 index e405a70a..2da33c5a 100644 --- a/scripts/windows-owner-directory-quota.test.ps1 +++ b/scripts/windows-owner-directory-quota.test.ps1 @@ -158,6 +158,34 @@ namespace OpenCoven.Tests BeforeReadableRepeat(); return ReadSnapshot(); } + + public static string ReadPersistentOutcome( + System.Reflection.MethodInfo readBoundedSnapshot, + string directory) + { + try + { + readBoundedSnapshot.Invoke( + null, + new object[] { directory, "*", false, 10, 3, true }); + } + catch (System.Reflection.TargetInvocationException error) + { + Exception context = error.InnerException; + if (context == null) throw; + Type type = context.GetType(); + const System.Reflection.BindingFlags flags = + System.Reflection.BindingFlags.NonPublic | + System.Reflection.BindingFlags.Instance; + return String.Format( + "{0}|{1}|{2}", + type.GetProperty("Category", flags).GetValue(context), + type.GetProperty("Operation", flags).GetValue(context), + type.GetProperty("Repeat", flags).GetValue(context)); + } + throw new InvalidOperationException( + "Persistent native directory denial unexpectedly succeeded."); + } } } '@ @@ -215,26 +243,11 @@ try { } [OpenCoven.Tests.QuotaSnapshotReadFixture]::DirectoryPath = $directory - $persistentRead = $null - try { - $readBoundedSnapshot.Invoke($null, [object[]]@( - $directory, - '*', - $false, - 10, - 3, - $true - )) | Out-Null - } catch { - $persistentRead = $_.Exception.InnerException - if ($persistentRead -is [Reflection.TargetInvocationException]) { - $persistentRead = $persistentRead.InnerException - } - } - if ($null -eq $persistentRead -or - $persistentRead.GetType().GetProperty('Category', $instanceFlags).GetValue($persistentRead) -cne 'access-denied' -or - $persistentRead.GetType().GetProperty('Operation', $instanceFlags).GetValue($persistentRead) -cne 'directory-enumeration-depth-3-plus' -or - $persistentRead.GetType().GetProperty('Repeat', $instanceFlags).GetValue($persistentRead) -cne 'persistent') { + $persistentOutcome = [OpenCoven.Tests.QuotaSnapshotReadFixture]::ReadPersistentOutcome( + $readBoundedSnapshot, + $directory + ) + if ($persistentOutcome -cne 'access-denied|directory-enumeration-depth-3-plus|persistent') { throw 'Persistent native directory denial did not remain fail-closed.' } [OpenCoven.Tests.QuotaSnapshotReadFixture]::BeforeReadableRepeat = [Action]{ From a3c6ff98294320ba37e3f147d5db5b2a85121923 Mon Sep 17 00:00:00 2001 From: Val Alexander Date: Sun, 13 Sep 2026 15:04:53 -0500 Subject: [PATCH 6/6] test: restore isolated retry fixture ACL safely Temporarily revert only for test-fixture ACL restoration, then require the retry enumeration to resume under the validated isolated identity. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/phase1-conformance.md | 2 +- docs/windows-quota-repeat-outcome.md | 3 ++- docs/windows-quota-reproduction.md | 9 +++++---- scripts/windows-quota-isolated-reader.test.ps1 | 5 ++++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/phase1-conformance.md b/docs/phase1-conformance.md index fe1718a2..b8b7a533 100644 --- a/docs/phase1-conformance.md +++ b/docs/phase1-conformance.md @@ -1573,7 +1573,7 @@ revision authorities can therefore have different workflow hashes: | `scripts/windows-job-supervisor.test.ps1` | 187,115 | `9ebf051e1abfc08e86d99fd702fa410857005fdd22aa2e31978b17e1687ad3f3` | | `scripts/windows-quota-diagnostics.test.ps1` | 29,480 | `b2160b083f6db3c4e6a328b026350c9ae80a2d688482849705705396ded1a998` | | `scripts/windows-owner-directory-quota.test.ps1` | 14,775 | `605b57608bf4ef2939759d32df6ac1685027bdd864aaaab44dac15ab90de51ec` | -| `scripts/windows-quota-isolated-reader.test.ps1` | 22,072 | `144f1e0f95617070d8ba55b697b0cab2aff0ede9e9524e8ae2141bcff0e38476` | +| `scripts/windows-quota-isolated-reader.test.ps1` | 22,262 | `fb6365248bd8286fa03a950e387f0925ff2c818e72ffc1676e4fc327636b5f03` | | `scripts/windows-quota-lifetime.test.ps1` | 2,513 | `dd10741c19cd97cc1b9ee29ebe18b8381503d589680acd0eddaabda08b5e7aec` | | `scripts/windows-identity-cleanup-diagnostics.test.ps1` | 6,025 | `43688191fcbf8807d5e33ba811f14b0f8a6e780fef30ae2e3f494d540608bdb2` | | `scripts/windows-cleanup-delete-diagnostics.test.ps1` | 7,433 | `e9d30285a1fe0ad035637621c6a3840eb8a6194b2f23e1a4aa188c5884cd0c64` | diff --git a/docs/windows-quota-repeat-outcome.md b/docs/windows-quota-repeat-outcome.md index 72537b9d..bc5d080f 100644 --- a/docs/windows-quota-repeat-outcome.md +++ b/docs/windows-quota-repeat-outcome.md @@ -40,7 +40,8 @@ separate snapshot regression requires exactly two calls and verifies that the accepted result contains the complete fresh directory contents. Native Windows coverage first holds a real owner-only ACL denial across both reads and requires the bounded `persistent` failure. The isolated-reader fixture then denies the -validated isolated identity, restores only that fixture ACL between attempts, +validated isolated identity, temporarily reverts only for the fixture ACL +restoration, verifies impersonation is restored before the second enumeration, and requires two identity-checked reads to return the complete fresh snapshot. A subsequent 512-byte limit check proves the production accounting path still enforces the byte quota. diff --git a/docs/windows-quota-reproduction.md b/docs/windows-quota-reproduction.md index fa7ef69c..253a34ae 100644 --- a/docs/windows-quota-reproduction.md +++ b/docs/windows-quota-reproduction.md @@ -140,8 +140,9 @@ The native fixtures supply deterministic controls without changing production ACLs. The owner-directory fixture keeps a real owner-only denial in place for both enumerations and requires `repeat=persistent`. The isolated-reader fixture then applies a real enumeration denial to the validated isolated identity, -checks both recovery callbacks run under that identity, restores only the -fixture ACL between attempts, and requires the fresh complete snapshot. +checks both recovery callbacks run under that identity, temporarily reverts +only to restore the fixture ACL, verifies the retry is back under the isolated +identity before enumerating, and requires the fresh complete snapshot. Independent terminal checks below and above the byte limit exercise the -production accounting path. It retains the existing path, entry, byte, reparse, -process, output, and time bounds. +production accounting path. It retains the existing path, entry, byte, +reparse, process, output, and time bounds. diff --git a/scripts/windows-quota-isolated-reader.test.ps1 b/scripts/windows-quota-isolated-reader.test.ps1 index 965178dc..024aaa00 100644 --- a/scripts/windows-quota-isolated-reader.test.ps1 +++ b/scripts/windows-quota-isolated-reader.test.ps1 @@ -49,7 +49,10 @@ namespace OpenCoven.Tests { }; Func> repeatRead = () => { AssertIdentity(expectedSid); - restoration.GetType().GetMethod("Restore").Invoke(restoration, null); + WindowsIdentity.RunImpersonated( + Microsoft.Win32.SafeHandles.SafeAccessTokenHandle.InvalidHandle, + () => restoration.GetType().GetMethod("Restore").Invoke(restoration, null)); + AssertIdentity(expectedSid); return read(); }; Func> recovery = () =>