tag:blogger.com,1999:blog-29947318049892019182024-02-07T23:05:01.106+05:00Заметки снежного джедаяRustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.comBlogger54125tag:blogger.com,1999:blog-2994731804989201918.post-83843349155906365782020-06-09T10:05:00.000+05:002020-06-09T10:05:31.455+05:00Каждый раз создается раскладка клавиатуры en-uk<div>Бесит, когда Windows 10 каждый раз создает скрытую раскладку en-gb. Чтобы убрать её автоматическое добавление, надо открыть редактор реестра regedit.</div><div><ol style="text-align: left;"><li>Удалить ветку HKEY_USERS\.DEFAULT\Keyboard Layout\Preload</li><li>Запретить доступ на запись в ветку HKEY_USERS\.DEFAULT\Keyboard Layout</li><li>Перезагрузить компьютер<br /></li></ol></div><div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOOVO8HuLaedB5hare5vaP2wOE8kxaMH8ydglrsrbq3iG1_ILO736nV9cvzBXzGU8avS8iNFtNH25EYICRCBHJGQCp4ch7tbSFqBzm2P9W15aBrJrpwvdtSXzDjcgaD73RlfbX_P8ZQU/s1468/firefox_udhP9bcWDV.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="740" data-original-width="1468" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOOVO8HuLaedB5hare5vaP2wOE8kxaMH8ydglrsrbq3iG1_ILO736nV9cvzBXzGU8avS8iNFtNH25EYICRCBHJGQCp4ch7tbSFqBzm2P9W15aBrJrpwvdtSXzDjcgaD73RlfbX_P8ZQU/s320/firefox_udhP9bcWDV.png" width="420" /></a></div><div><br /></div>Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-70159724044898315172019-11-11T15:21:00.000+05:002019-11-11T15:21:03.360+05:00Extract zip files by double-click on them in Windows explorer<div dir="ltr" style="text-align: left;" trbidi="on">
The best idea that saves a lot of time I had today: extract zip files to folder by double click.<br />
<br />
Usually I don't create or change zip files by hands. I just download some files or software packed to zip. The only thing I <br />
<br />
My idea was implemented by zabbarob:<br />
<br />
<a href="https://gist.github.com/zabbarob/5891200">https://gist.github.com/zabbarob/5891200</a></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-22516834344500629532019-09-30T11:02:00.000+05:002019-09-30T11:02:19.494+05:00Automatically expand regions in Visual Studio and Rider.<div dir="ltr" style="text-align: left;" trbidi="on">
In Visual Studio install extension from Visual Studio MarketPlace<br />
<a href="https://marketplace.visualstudio.com/items?itemName=ExpandRegionsFast.expreg&ssr=false#overview">https://marketplace.visualstudio.com/items?itemName=ExpandRegionsFast.expreg&ssr=false#overview</a><br />
<br />
<br />
In Jetbrains Rider open Settings and deselect all checkboxes in "Code folding"<br />
<br />
<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-68034529748512958982019-06-28T13:56:00.004+05:002019-06-28T13:57:01.526+05:00CreateDefaultBuilder in netcore causes high CPU usage<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<h2 style="text-align: left;">
What went wrong?</h2>
One of our develop issued with high CPU usage of our netcore web application. Sometimes application catches a lot of filesystem changes from %HOME% folder and watches all files inside.I attached to his application with dnSpy and when problem detected again I paused it in debugger. As you can see, web application reacts to filesystem changes:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdKnCtCJmf9XHhZFn9fFkT7VOw8-dCLzhiY3gYTNp0oC7tMBqjquLng1DbtzavnqNgsZnRk4qPUooZwbyNweri2ASWh2EXUluUDuMyAA5YCfdwe4Fo4x2gpE94dIAIg7gxKnIdSVBYKYg/s1600/6d67a006-3ff3-401d-9514-9815cd265eca.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1002" data-original-width="1446" height="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdKnCtCJmf9XHhZFn9fFkT7VOw8-dCLzhiY3gYTNp0oC7tMBqjquLng1DbtzavnqNgsZnRk4qPUooZwbyNweri2ASWh2EXUluUDuMyAA5YCfdwe4Fo4x2gpE94dIAIg7gxKnIdSVBYKYg/s640/6d67a006-3ff3-401d-9514-9815cd265eca.png" width="640" /></a><br />
<br />
I started to investigate and found that <span class="pl-en">CreateDefaultBuilder </span>creates new FileSystemWatcher in it's internal code. FileSystemWatcher are created to watch <span class="pl-s">appsettings*.json<span class="pl-pds"> files:</span></span><br />
<span class="pl-s"><span class="pl-pds"><br /></span></span>
<br />
<table class="highlight tab-size js-file-line-container" data-tab-size="8"><tbody>
<tr><td class="blob-code blob-code-inner js-file-line" id="LC159"><span style="font-family: "courier new" , "courier" , monospace;">config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)</span></td></tr>
</tbody></table>
<span style="font-family: "courier new" , "courier" , monospace;">.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);</span><br />
<table class="highlight tab-size js-file-line-container" data-tab-size="8"><tbody>
<tr><td class="blob-code blob-code-inner js-file-line" id="LC158"></td>
</tr>
<tr>
</tr>
</tbody></table>
<span class="pl-s"><span class="pl-pds"></span></span><br />
<br />
<a href="https://github.com/aspnet/MetaPackages/blob/f245512f6e68d65309b65528d479f32b34c67718/src/Microsoft.AspNetCore/WebHost.cs#L160">https://github.com/aspnet/MetaPackages/blob/f245512f6e68d65309b65528d479f32b34c67718/src/Microsoft.AspNetCore/WebHost.cs#L160</a><br />
<br />
<h2 style="text-align: left;">
Solution</h2>
I took all code from CreateDefaultBuilder(), except lines that watches filesystem changes of appsettings.json. I rewrote them with <b>reloadOnChange: false</b> <br />
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-91507855936318064942019-04-03T09:30:00.000+05:002019-05-13T11:03:35.630+05:00Visual Studio 2019 typing experience<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
Visual studio team introduced typing latency option. IDE do a lot of work helping developer with code completion. Completion is not so cheap. I always frustrate when I cannot type any character in editor. Sometimes I use Sublime instead of VS just to write lots of text.<br />
<br />
Open <b>Tools - Options</b> and set typing latency in ms:<br />
<br />
<a href="https://draft.blogger.com/blogger.g?blogID=2994731804989201918" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" border="0" height="315" src="data:image/png;base64,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/PDD8rnPfc66zpeu+023/9WvfjX3MbcRxBlCAXGmUDa8hC3OqlxNRDrJHdtGkuSu9+vCooQScZ5y9uxZ+c1vflNjKsXT97/85S8liiI5duxYtezYsWPV+yiK5Je//KW1ria67jfvcTaRn/zkJ9r75557zrkt4gyh4CXOALDerPoPjR2LXA0ziaNE8tZtQxfHDn1eaT2h97Ods2fPynvvvVfj6aefluuvv756f/fdd8vdd98tt956a7Xs+uuvl6efflree+89iaKoet2FrvvNe5xN5PDhw/KTn/xE3nvvPXnllVfkj//4j53bIs4QCq3iDACwHGxyNZQsnkaSp+v1lI44y4z3k/SOYSZxtXwq32UdSRLPljVsl2WJPW1k0q7puirSba3LQNmmbPu0z2r/bfVP1ufq/kPr2OWJkvKS5MY4TsgTS1pL/RhJPpZhFjekz1jGobGfjnGytqc7LnE2xXj6OooiTWLV19/5zneqvt19992ahKspRd/5znesImxu1ybO5uu7777b6/irFt5Fcf/998vhw4flb//2b+VP/uRP5Gtf+xriDMGDOAPAivAVZ9u2Le/zZCJ8pXS7hNPcrkoTyRNFhMs26SLdVJe5zUwwSyG19ClPLCkqkzZN5VLLiXZFdN115okttcU4xiRvvOqHNg5GekytPR79VMdpgeL87rvvWrn11lvloYceknfffVeuv/76atlTTz0lDz30kNx6663VtlEUVds89NBDEkWRtm5az1NPPSVRFMlTTz1VrbO9fuihh+To0aO1NjXtO22P7fht9a4j586dkz/90z+VL3zhC3L06FF55513nNsizhAKiDMArAiXONuEq0WUjUjoLPI653a1SXyWaLKzLmMbTQ4dfZrUpYt3fXxm8luX0Vk71PoV6bVKaod/SCzjULWnqZ8+47QPmsR5KseqJB89elTDJqfq+6kou4Tc3E5FFXMfcW46flu968qLL74oR48elTfffLNxO8QZQgFxBoAV0Zbj3FWcPXKj58mhbhRnR3qGuo2POE/WT1MkrHLsisZr7VD/8Sjri7Nh9bP9HCxLnFvGaR+cPXtWzp8/b+UXv/iFXH/99XL06FE5c+ZMteyWW26R66+/Xn7xi19U20ZRZH3/i1/8QqIo0uq95ZZbqvqatrOhHsf1ep56Nx3EGUIBcQaAFWG/q4Z+54wuqRoe6RSd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" style="cursor: move;" width="640" /></a><br />
<br />
In combination with disabled Intellisense option will give most comfortable typing experience in your IDE:<br />
<img alt="" height="433" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA78AAAKJCAYAAABztJ6eAAAgAElEQVR4nOzdf4wc533n+QI2d/nhAM4it0mMbLozjuI/NsDGFW92sZYJxHu8k2udPwwkt87ZQNnr3Amxb7MlxhBvoAWs2ELRYyG2B1tmSEvweY7wKJs6QfEZU4SYnYAWMoeNkylZiNAUZNNrW1AszkKkWwxH5FBkf++P6q56quqpXz09/aP6/QVe0Ex31VNPVfeM+sPnqWeMn3vkBQEAAAAAoM2Mn3vkBaEoiqIoiqIoiqKothbhl6IoiqIoiqIoimp9EX4piqIoiqIoiqKo1hfhl6IoiqIoiqIoimp9EX4piqIoiqIoiqKo1hfhl6IoiqIoiqIoimp9EX4piqIoiqIoiqKo1hfhl6IoiqIoiqIoimp9EX4piqIoiqIoiqKo1hfhl6IoiqIoiqIoqiX13e9+V37xF39RDMMQwzDkN37jN+SHP/zhrLulLcMwZHd3t/D53d1dMQxjYsdrHn7P3x9fSMMw5J3r3x7vyN9el3ca75Rxd6coiqIoiqIoiqLSdfHiRXn44Yflhz/8ofzZn/2ZGIYhn//852fdLW3t7u7Kf/ejP6YNwGXPjVvNwu/5+8VIBdZvy/o76wbg83I/YZeiKIqiKIqiKGpq9fa3v10efvjhWXejsHQh9yiCr0ij8BsF3fvPZx9el3ca90v24XwRfimKoiiKoiiKoqZVn//858UwDPnmN785666Ulhp2jyr4ijQJv4Uh99uy/s5RqB0G3PPr8s7UtOjzcr8yVdq4/7zkwvC3k30MQw3Zw+3W79dMtY4CeX4fiqIoiqIoiqKo5a0vf/nLYhiGfPnLX551V2rVKPQeVfAVaRp+37ku+YFbdUR4GHJH26Xu682O/KrfR/vF4TW33ygwy3Dq9TCEn78/eZyiKIqiKIqiKIoSEZGf+qmfmtt7fXU1f+G37sivkpDP368G44Lwq2m7/n6HWHSLoiiKoiiKoiiqhWUYhly8eHHW3ahV8zftudY9v9mgmh0VnnD4jbvwTqY9UxRFURRFURRFDevixYvy3e9+d9bdqKw5XfBK0lOOowfk/tTIa+b70mBcNe25zn5JfXv9nYwAUxRFURRFURRFicjDDz889yO/8/2njkRyf+c3PdoaBdP773+n9vnz99dd8Kos7Crfp/pSZ8VpiqIoiqIoiqKo9pdhGPLhD3941t0oLcMwSsPt7u6uGIYxseM1D7+lxZ8zoiiKoiiKoiiKouavCL8URVEURVEURVFU64vwS1EURVEURVEURbW+Jhx+KYqiKIqiKIqiKGr+ivBLURRFURRFURRFtb4IvxRFURRFURRFUVTri/BLURRFURRFURRFtb4IvxRFURRFURRFUVTri/BLURRFURRFURRFtb4IvxRFURRFURRFUVTri/BLURRFURRFURRFtb7i8Nvv9wEAAAAAaCXCLwAAAACg9Qi/AAAAAIDWI/wCAAAAAFqP8AsAAAAAaD3CLwAAAACg9Qi/AAAAAIDWI/wCAAAAAFqvVvjdffbbABbcrH/ZAAAAALNUO/xSFLW4RfgFAADAsiP8UtQSFOEXAAAAy47wS1FLUIRfAAAALDvCL0UteH3jG9+Qxx9/XB555BE5c+aM/OVf/qXcvXs3tc3swm8ormmIYQyZroRTO7YvtmGKGzbYJ3TFbLrPOH2Y+HEAAABQhfBLUQtcX/nKV+TEiRM5p0+fTgXgmYTf0BXTMMT204+5/rT6UCf8jhGQJ96HWfQLAABg+Rwu/D53TvnAfU6eO9KP+c/JuROPyoVX6m5+LhUGHq29Y6ZeuSCPNjnuIeqVC4/KiXPqVXxFLjyqhJpHL0i9bjS5Vs/JuUxwOvecyHPnDnHNqKnUN77xDTlx4oQ89NBD8uyzz8rVq1el1+vJJz7xCTlx4oT8+Z//ebzt9MNvNOJrTy3o6hB+AQAAkBg//L5yQR5VA+8rF+TCkabfBoHuuXNyIrVtFCLrhbmGIXtS9coFeVQNt69ckEeHQVTdJrrGVX1sGn51274iFx6dwXWgatfjjz8uJ06ckGeffTb1+He+853oH3wefTR+bOrhN3TFNGzxK7dJpkQnQXkY/PzkedvvS+ia8bamGxZum3su1B3PFr/vi60c37D9in00fXRtTZ9URSFWfTw9Ndz2df3KbjP7/3kAAAAsmvHD73PnGoxETqLqBroo6J7LBvFsWD/0cSZbr1x4VAnnBecQ1zTCr0SvcXEnqBnXJz/5STlx4oT88Ic/zD03GsUf1VGE39dff13eeOMNGQwG8XHi50NXzNL7e6OAF4e41D2ww/A32t+30+HSt4fhVbNtrh3d11EbUXvZcJrdp6KPtq/pU/Y8K8KvbyftFO2n3SaNoiiKoiiqjTUYDOSNN96Q119/fYbhdzhdVjuaOhy1zE6Hfu6cMr02DlVR+Dp37lFl2/R033PqaOdzSdvFx9aFXHUks6itzBTgc89JLhymzk0NqMPtLpzTTLXWnU9R38rOIbnuuj4m11AXaF+RC4/q2iwJv9nRaGqu6otf/KKcOHFCXnjhhdTjP/jBD+TEiRPium782KTD7+3bt+W1G/vynZf35IXv/UB63/076X3379Lht2zkV/O8b4+CZlkgrQi1Re1kRnALR3pz+4zbxwaPD/uWHjnWj0DrR5cjo9cAAACgTV743g/k8stX5IfXb8gbb7wxq/Arooa6XAgcJabnzmlCqrpNNkQXTVEehr5RGHvunP4+48LApo6mZtpK3debDYP5vsbnmttPCfVq/ypHUJ+Tc5kp5OWhU9dH9Zo1Db/qPb/qNpl+UXNVf/qnfyonTpyQT37yk/K9731PRKLg++lPf1pOnDghX/va1+JtJxl+X3/9dXntxr68+NIVuXlwoB/5rbrn98jCr3rc8iBb2fa0wu/wsdG0bn37um3SKIqiKIqi2liDwUBuHRzI5Zf35Nprfy83b96cVfgdlnp/amZk9EQuEI4eLwibhaOeZaE025eaI7/Kvs+dy4ww646jabv+fmX3HGvCb2norLoW+WNnVwMu/MeKwmtGzVN9/etf167yPPLpT39abt26FW8/yfD7xhtvyHde3pObBwfRCPBrr+m3HU5X1q/2rJtSrE5lbhJ+lRHRwnYy29UJv4fq43iPh65ZMB1bt81kXk8AAIB59tprr8mtW7fk9u035MWXXpE7d+6M3dbE/tRRvFJxUXBLPV4SRA8bfmvd85vdNzsqPOHwq14j7bTn7Ahr03t+61ybMaY9M/I7l5UNvl/84hflj/7oj+Kpzl/72tdSwVdksuF3MBjIC9/7gQwGg+LgO5KdbqzeB5x6rm7YzX4ffW3bZvGiVAWLV43uofXtugteNemj+nh6unUu3Pq28nwy0pzqV8E2AAAAy0JEpPfdvxMRGbuNQyx4daFgNeWCe4HVBbJKpxmXTXuuE35FMyVaNy1Y+b40GFdNe66zX1Lpha3Uc85sOxwlr7fa8xGFX+75nbt6+umnU8H36aefrrXfJMOvyOF/8UwOfxIIAABgGUziM+ihF7zKL2Al+am20XzoZNGnR8/JuZIpyNm2646sprt3rmCab7JvtEBU/vl4Ya7KBa9qBtAafw9ZG4qz11EJoqV9POTf+Y37wWrPc1XjBl8Rwi8AAAAW2yQ+g05s2vNi1Yz+lm9Zzd0oK/f7zlt99atfjYPvV7/61Ub7En4BAACwyCbxGZTwO0cV3zc9B/XcuRNz0xcqqa9+9auNg69Im8MvAAAAlsEkPoMSfilqCYrwCwAAgEU2ic+gSxp+KWq5ivALAACARTaJz6CEX4pagiL8AgAAYJFN4jNo7fALYLHN0y8eAAAAoImphV8AGCH8AgAAYNoIvwCmjvALAACAaSP8Apg6wi8AAACmjfALYOrG/cXzwAMPjGXW5wsAAIDZI/wCmLrDhN+mVRp+fVsMwxiyxe/3pd/3xTZMccPZX6ejM8Y5hq6YE70uSh8m3nbm9TVdCRfxms+Do3ptlvV6AgBmamrh91OfXgew4Gb9i2ei4Td0xYwDb/S96/dlOT5U1znHo74OTdofpy++2IYhtj+t8zmKc1i0Y07zeLN+PQEAi2iq4Xd/fx/Agmpd+PXtghHBZfhQvSzhV91n1q8r4XdxjwUAaAvCL9Byh/nhHtnfb2H4HY4Mmm6oedwU13fFHE6JTm0TJo8bysiib5eMMoaumLav6UMorplvq+gYur7Zfl9C14y3Tfpadh6a/qWmf0fXJp4SbvsV+2j66NqaPmmuc5j9OntNdH1Jt+Xbur4ayvFdfRu58076Ytum8ljZsXTvLd3rWv6+0reb70vx8Wtet8bnXPba5H+ekuO54pqZbeJ/cGryM5aenZFs7xJ+AQCNEX6BliP8PlDSZvJhPh3elPtEfTsTErIhdfgB3LeTgOHbYppm/IE+dE1NAIyOrQ/fBcfQ9k1pQ9PXeNtcO7qvh313w/zjuX0q+qhcC12ILOyDeh2125YpOa+q71PnXRTY6/Sp/HXVv6/KzqHOPx6UHfOw51z12pQcL7N98g9Edd+b+T6O3nPRP/gQfgEAzRB+gZYj/D5Q3fZwRMnW3vObXZgpHVjiD/ShK+bww7xvD0e1TFfCfiiuqfmQrmmr6PF0aKgb6PLhTNtOZgS3cKS37nWoPd24oK/D/qSDWEX4TS1cVjP81j7vOseq8brWCKLV51CwXd1jjnXOVa9N1Tkq/xgT32ZQ8t4s6qPy81XrPQEAgAbhF2g5wu8DtdoOXfOQoW8Uckcf8kNxTVv83If2oamH31CZhlp+TpVtH2X4VV+Pwn+QKLpe6j801Am/dc67zrFqvK61r2fJORRt1yj8NjznytemelvTDTOzH0rem2U/F4RfAMAhtTD8BuJ0u9LpdGJOMGZbPU+sriVeb/YBBhgX4fcBfXu+m/vwPd503+SDeuiauenOtm0XjJQ1mfZc9GeYqvsat1/YTsW9z42vw2TCb3w9ta+J+jra9abPar+vc951jlX3dS3oT91zKNyuyTEbnnPla1OxbeiKadpimyX9yL1/qn8umPYMABjH3IbfTqcz5of9QJylDqzLfv7IIvw+UNBewYJAjabLaj7o57Yt+4Ce7oN+wasG961qAmW0iFHBolRF02GH1yJeXKlywasmfSzuaxwENYsdpfuitqMswpQKWfqptcWLP9WZAlx0rDqva9l1qXsOZcfXv5cOf87Vr41K9zr5dvZ1K3tvFr8f1eOz4BUAYBxzHX7HC8DLHv6W/fyRVfXD/eEPf7jyh3x/v43ht+2YFor5kF4JvS+8NwEAszLX4Vf9b31F4W/4uOfEwdryerK/3xPP6qanRgeOdC1Peqm2oq8dx5Ju15Fgf384LbqrmV5ddCzluSDZ1wn2pedZmm3Tx4iPW9h+esp31wlmHrwwe2U/3B/+8IdjZT+/+/vtC7+pBXUUs/6lPDkEDMwB7T3vvDcBALMx9+E3+3W1TABMBcZuEggDJ3kucFJBMXBGYTgbfruZEKuE5tT9wSXHGj1nedIbPpcKvLltlSAfOKmQW9w+I79IFP1wq8G3KgDv789P+B3HrH/RzgYBA7M0mqJdNeUdAIDpWYjwq/u+WMXIb0/3fSCOGh5HwVQz8hvv3/PEiveJ6ENzRTtl32dGlpPR3CbtY9npfrizgbcqAO/vz0f4BYCjcuujH5W7nY7c7XTk9m/9lrz24osz7xMAYLIWIvw2H/ltGn6jaceW14v/m99mVuE3fYzqcyH8Iq0s/FY9NrK/T/gF0F63TpwQMYyUW//yX868XwCAyZr78Dvxe357Bd/3PLEsRxxLDZtVoTU77blo6vGY4Tc31bruPoRfJIrCr+7nlPALYBm89v3vy8FHPiJ3O51c6FXNup8AgMma6/A7/mrP6anCyX2yZaEzWvgqvUhURahMLUbVJNDW3XY/N/W5etpzNALNglcYmUTA3N+fXPh97fvfF/m935Pb//gXSj90Vrnb6cjBBz4g1//2b2f+ixTAYnjtxRfl1okTcucXqn//XHvzm2feXwDAZM11+J11aADaYJ7C72vf/74c/Kt/dajQ2zZ3Ox15413vklurq7K/uUmYB47Aja0tOfjIR2Twoz9a6+fy+pveJP5HPjLzfgMAJmtuwy+AyZin8Pv6+98/87C5CAZvfjOBGDikOPD+7M82+vm7/qY3yaOf+pR885vfnPk5AAAmi/ALtNw8hd+bP/VTMw+Wi2rw5jczzRsocf1v/1Ze/+M/loMPfKBx4B35bz/90/Kl3/99efXVV2d+PgCAySP8Ai03T+H3+29968xDJCJMt8Yi+/v//J9l/0tfklurq3L7ve+tXLiqyEs///Py+Ac/KA899JA89NBD8tnPfla+9a1vzfz8AABHg/ALtJyISBiGY+v3Jxd+/9Mf/qH8t5/+6fiD59//5E/Kxu/8TvzBs4knf/M35dqb3zzzEIl6QfvgAx+Q/c3Nmf9PD/Ptte9/X25sbcmNrS15/XOfk1urq3JrdVXeOH5c3njXu+Tu29526Pfj9Te9SbaOH5dPnDwpX/jCF+T555+f+XkDAKaD8Au03DyF3+985zvy2c9+Vj71qU/J7//Bg/K5z31u7PvqdnZ25DOf+UztsDz6O8ZNjRPMmzjzoQ/JV9/zHvnGr/2avPTzPz/zoHrUmL69fFKB9o//OA60t9/7XnnjXe+SN971riN/3938sR+T8J/+U/nKb/+2nDp1Sra3t5naDABLiPALtNw8hd9J/uJpant7W37wgx80sr29Xdymb4thGEO2+P2+9Pu+2IYpbli/Xy+88IJ8/etfF9/35Qtf+MJSBeI33vUuufXRj8qt1VW5sbUlf/+Xf1nzuinXOXTFbHjNaxm9vqYr4ZTeo7XOd+Z9ybhyJQq2Tz4ZhdoTJ6YWaJsE3k996lPyJ3/yJ/I3f/M3i3/NAQBjI/wCLUf4jUw0/IaumHHgjb53/b5M6gOzLhAv+zTv+B7lEyfk9c/973LK+GX5zH+5UuN6Vr8mr734Yhze3jh+XO52/tGR9P/2b/2WvP65z8n1v/7rhu+JWQSx6Jif+S/6cHvn13995u+JrDd+5Efkxbe+VS68+91y5kMfGgbek/I+45+Mce0IvwDQRoRfoOUIv5GJhl/fLhgRPLoPzE2neTPdGnWM/lEh686v//LM+1bm2pvfLC++9S1y1vhJcf+n98mZD31IPvGJT8jjjz8uTz/9tLzwwguH/Jkk/AJAG7Uw/AbidLvS6XSk0+lIt2uJ1xujnZ4n1rj7zkQgTlF/A0e5Ho4Eh2mrVddsORB+I5Od9uyLbRhiuqHmcVNc3xXTiKZEp7YJk8cNwxDbjx737eTr3Ifu0BXT9jV9CMU1820VHUPXt/eufV3+o/1L8bZvOf7RYTh+v7zdeIscf/9xeUvRcx8dBumPJtsYxtvl/Q+9X96uHN94+/vl8Q++W/4f4yfk6k+8aeahCfNtzzDkomHI//cP/6H8v8aPy7l/dkz+4tgx+cp7flV+yzDkN4zoffZvP/MZefzxfy/3Gb8sjv9XUdhNvfdt8Yc/p/F7cfRzlNsu/7Njui7hFwBaaG7Db6fTGfPDfjq49TxLupYnvakGjjHD41Ecs+eJpQbenideMKn+z+I80RThNzLxe36V8JkOmMp9or4t6fuBsyF1+OHat5MP5r4tpmnGoTl0TU3Ijo6tD98Fx9D2TWlD09d421w7uq+HfXfD3OPPP39a/kfjl+Rf/8EpefI3/7n83RyELEzP1Z94k/zXn/lJufiTPyPf+LVfk784FgXajd/5HXn8gx+UMx/60PAfVQz5Zx86JWfPnpVP/nZXDOOt8r89FkgQ/KG8z/gn8uDW89HKzNr3Wb33Yvl2yc9O6JpiEH4BoHXmOvyOF4CzgWyOgugsjhk4Y4R/wm+bEH4jkw+/Q8PRIlt7z292YSZllKmvjPiGrpjDoOnbw9FZ05WwH4praj6Aa9oqejwZVa4IAWVBoqidzChzMrpW3PbOn/w7+cfGP5f/83d/Vx7/4AflL44dk+AfGfI3P9OVa29mZHjRvPEj/0D+xvjv5a87b5W/OHZMLrz73fL4Bz8o3u/+bjxL4F//wSk5+8nflq5hyC/Z/1GCIJAgCOSb3/ymPP/888mobepWgobvs7rvxaLtyo4/gw9nAICjMdfhV/1vfWXhN/racaxk+m/PE0uZJu0EBe0o26WnDvfEs9T9M9OunUCzTb7fgZPdR+mDl0xbtrxesp/SJ8vzCoJo1J/Ufpr9i8+96HrqzrP4mmnb155X9bVCM4TfyJGF3/5wlKgi9JUH01HI9cWOQ68tfu4D+dDUw2800qwPv5p+1LgOj3/rW/L8889LEATyH44bcu//cVY+85l/m55SrUyxPvOhD8l/et/75C+OHZMX3/oW+a7xIxMNcT/42f9BLvz4j8sf33tcHv/guwv7kUz1fru8P3cvdWY7hfe//Av5hPHz8tdve5vc/LEfnXlorevgH/yI/NduV17s/LT8kfFz8sQw3EajtQ/JJz7xv8q9Rlf+jfu4BEEgTz/9tDz//PPyrW99S/M+GI2oqrMllPduafiteJ/VfS+W/ewQfgGg9eY+/Ga/rlY27TkbBKPv44CVume1JAAGzrCNKKjlg2V++yTQNul/1L9438BRgne67z3PKrm/OQmU6QA6xrk3eq6s/YLzanStUAfhNzLZBa/cXDCsnmKpm5KcfAgPXTM33dm2bc3U5uwx1cfLjtE0/CrtF7ZTce9z4+tQvN8LL7wgf/VXfyVBEMjjj/97+RfGLwxDpj5wfvT4W4b3KRcH0ofe/3Yx3nJcPvrQQ7L+H94nbzXeKr/3f2/L88+frnGt6px34luP/xsx3vZ7svblL8unnPfIW7R9+qgcf4t6f3VRqFa+V84hCuVv0V+Xwu3Kj/k//7tPyNmzZ4f31xrytvv/r2S0tuKci57TT+Uvm3Zc53o3eS9W/+ww7RkA2mkhwq/u+/LwqC54pY7S6kYm0wtABc4osCnbZkYw45FOzf7FxykYfR1JLUpVI1z2PLFS05lrTEEe9sMJGpz7uOG3dvv6a116rdAI4TdyFAte5RbSqQqYqSmXmQ/W2b9XW/n3a9N90C94VTfsZr+PvrZtM99+1TTS4bXw7bpTT5v0sbiv8b3TcbvJPyyk+6K2oywaZtpim5o2i9rQnndZECw6Vp3Xtey61D2HsuPr30uHP+fq1yZF2Sa34FSdY9d6LxZvV3p8AEArLET4PczIb+lzjcKvJuTWDb9DPc/ST+VNtdMTzzqi8DvsQ1Fwn4vwW3Wt0BjhN3KU057bhymfAACgfeY+/B7+nt+y53RTc9VpxelpuvnRyJrTnhU9z8pvry5KVTj9WN+nymnPgac8pva37rlH+8TbBU69kena7RdfL+21QmOE3wjhtwnCL6YrtQBVxqz7BgBoj7kOv5NZ7bniudRCViWBLDP1Ob0oVX6BptECVl0nqPF3dpN7cruWI06dkd/9/VS7VQte5fvd4NzV/jtO6rnUeZYuElYWdpXvG/9NYlQh/Ea2t7fHMutf0rNB+AUAAO0z1+F3tqEhEIfwhRYg/AIAAABzHH5nbqy/jwvMH8IvAAAAQPjNG07VLf6zQcBiIfwCAAAAhF+g9Qi/AAAAAOEXaD3CLwAAAED4BVqP8AsAAAAQfoHWI/wCAAAAhF+g9Qi/AAAAAOEXaD3CLwAAANDW8Bs40ul0pNPpSLfrSDAHASStJ57VTfo4078nHIjDn3VqtTaF3wceeGAss/5FCwAAgNmb2/Db6XTG+7Df88RSA2/PEy+YfQBJ968rTpB+7HB9PEyAJfy2XdvCb9MqDr++2IYpbljyeOiKqd2mbltH0d68KOlj7fOcsXnop2+LYRhimK6Es74edV7bqV3LcX5u5vQ1BgDMjbkOv2MF4MCZ8UhqmWjENxV8J4Lwi2LLFn5v3bolH/vYx+TFF188fPit3bea4Xdm7U3q2NPsxyzPbZr9McT2Z92Pca7TvLwPm2w7b68/AGDa5jr8qv+tLxCn2xXL6+WfG466joJ1EkKzAVD9PvracSxlCnV62nLcjtK+drp1dlRap6qPXjKlOzrH6HzjKdROoO9z7XNH2yxb+D116pSsrKzIfffdR/gdS5uDxLz1ed7606Rf8/I+bLLtvF5vAMC0zH34zX5dTxJO0yGvmwmq6YBbHH7VMB21nQ/XmTYCJ79NzxOrdFS6qo/dYbiN2k8Ctq7/ah+bnDvaZpnC7+bmpqysrMi9994rFy9enED4zWwTumIahhiGIabr5rfz1efDI2gvGik0Rmxf33dlP9vvS+ia8T5Jv/ri29m2itoPxTWTx6ORyobn7NraPhRfg/LzKmoj6V+yn20n558/X/3roWtHfw66a5OhbTd9rVPnEytou6qftV7/uq9f9ni2+Nr3ySSuZZ2fw+w1qfkzERZslzu3ptexxusPAJgbCxF+dd/Xot5fqxl1DZxRIKwe+Y2fKxq9zYysJqOw2W1KRn4n1ccafS5uF23T1vDb6/VSwXd/f1+OHTsmKysr8sgjj8SPl4ffTCCK6T50p6eoRh+E08/F9236dv6D9JG0V3BOqf2UD+qpdrL7FQT04Yf7fEBpcs5K2MhtV3QNSo6Vuo8zM3VY81xhqCt5PXTtaM/BtzWBK9/34naLXsvy617az1qvf9U1Leijbyv/EDPha1nnPam93nVnSpT1OXtuNa9j5esPAJgnCxF+x178an9fep4VhdCphN+qlaUr7vkl/OIItDH8fuUrX5F77rlHvvSlL8Uh98EHH5SVlRU5fvy43Lp1q2b4bTDyG7piphYlqvuh+ijbqzqn6g/75YF/2M/KcFLznLPblV6D8tfKt4fhStO/+Lkm12PcdoYjh/rRy6btlu/XvL1m7yNtO5kR3MKR3klcy7o/h7nrPWb4Hefcmr7+AIC5Mvfht3HwDTwlyKlTlHVTf9P38MbPBY50C4Nl2bTngnuNU+At2csAACAASURBVP1zMtOx95XVnsv6eIjw26hdtE0bw+8jjzwiKysrsrKyIqurq3LhwgVZWVmRe+65R5599tnUiDDht05ACcU1Fyn8RqOicxF+h9uOpsTmpr0uTPhVrmnFdTnqa1nnPZ++3ocJv03f2w1ffwDAXJnr8DveiK9uAajhc6kFqTKBT/3bwI5TEizzx9AteKWd9qzpR+7v/Bb2sTzgBk43t+BVqs+120XbtDH8iog89thj8o53vCMOwSsrK6mR4ImH39IpuuMEwUm0V3VOJd/7do0pr30pn357yPBbeg2yx1L6kAotuim2RVPEm07VrdtO0v9605TrTGFvMu15/PMtvqYF29V+/Q93Leu855PrPWb4Hevcmr7+AIB5Mtfhd9ahAWiDtoZfERHf9+X48eOysrIiH//4x+XmzZtHGH77qWnC2gWqmgbBsdpTFqqqvPex7HtloR7TFtssaz8KCdoFrw4VfsuuQf681IWrUiNsqemr5SElfW5l02Ab/CNCbsGkjAb9y5931YJXTUJa/nXRX9Oy65K8LyZ+Lev8HBZc77o/E7nttOfW8B+Rql5/AMDcmNvwC2Ay2hx+RaKFr44dOyaXL1/OPVcefg+pcMrknLS3iGpPQ8XhcU0BAMuH8Au0XNvDb1UVhV/9Ks9pZX3xbWU12AmYdHuLqPgaENQmj2sKAFg+hF+g5doWfscxmX6n/57n4ac4Trq9RVT3GhDUJo9rCgBYPoRfoOXaFH4BAACAcRF+gZYj/AIAAACEX6D1CL8AAAAA4RdoPcIvAAAAQPgFWo/wCwAAALQw/AZOV5xAfSwQp2uJ11MeCxzpOkHDtjXtaLdxJJiDwAOMEH4BAACAOQ6/nU5nvA/72WDb88TqdsXyevFjPc9KfV9P0/BbZ3vg6BF+AQAAgDkPv2MF4J4nluVJb/h9z7PE8Tyx4kDcE88aJ5QSfrGYCL8AAADAnIdf9b/1qeF29HU2lCpTk4cjw6OwnUyZjsKr41jS7ToSpMJsIE63q5k6PWo7en7UZrydcqxuNiQHyXNOEIX20f7JKHVPPEvXV6AY4RcAAABYgPCb/bqO5L7fQJzhKHDgDINralp0FFLjENnzxMoE3CR4jsJvFED1wbNs5DfzfeAM2x4G6dFodeCkA2/gJEF5rHuVsezaFH4feOCBscz6Fy0AAABmbyHCr+77UqOQqITF0X2+qft9e55YmQWqUsFZE14tq1tyv3BJ+M2MMCcjwhUhWf1ec/8yUKVt4bdplYZf3xbDMIZs8ft96fd9sQ1T3HD2v6CPzhjnGLpiTvK6TLq9KqPX2nQlTB17GV5vAADQ7y9I+G089Xl432/gWelRXcdL3+/bOPx2xbKsktHXqvCrWwm6Qfgd7jOaEs20Z9SxbOH31q1b8rGPfUxefPHF8vAbumLGgTf63vX7shxhqM45TvM6HPWxfLENQ2y/6tjL8NoDALC85j78jrfqczQ1uasJr91UANVNe66ethw4RaOvVdOedfs1D7/7++OuWI1ltGzh99SpU7KysiL33Xdfefj17WgUMPfcMgSgZQy/Re0TfgEAWBZzHX7H/nNH+1E47CqrPu/vR6E1N2qbWoSqbggdhutM+9nFtAKnW7jg1VjTnof3A6cXzALKLVP43dzclJWVFbn33nvl4sWL5eF3OBpouqHmcVNc3xVzOCU6tU2YPG4oo4m+rY4sZkJU6Ipp+5o+hOKa+baKjqHrm+33JXTNeNukr2Xnoelfavp3dG3iKeG2X7GPpo+uremT5jqHumPp+tT0/NOvc/p5XeBt3g/bNoePFbyOAABgrsx1+J11aADaoK3ht9frpYLv/v6+HDt2TFZWVuSRRx6JHy9f8CoJLenwZiSjwr6dCT3ZkDoMUb6dBCbfFtM04yAWuqYmlEXHLgpr2mNo+6a0oelrvG3hfa6ZUOvbmoCo26eij8q1MNTp5f2i9oqOle1T3fMvOlbZsZv1I3Vc7T9uAACAeTK34RfAZLQx/H7lK1+Re+65R770pS/FIffBBx+UlZUVOX78uNy6datm+B0aju7Z2nt+le+z9wn3lRHf0BVzGMp8ezg6aboS9kNxTc1UWk1bRY8no8oV4axiCq+2ncwIbuFIb93rUNnHGn0dp0+1j1V27DH7MdxOP8INAADmBeEXaLk2ht9HHnlEVlZWZGVlRVZXV+XChQuysrIi99xzjzz77LOpEeG6f+oodM1Dhr5RyPXFjkOvLb4SilPHnHr4jUaa9eG34WjpVMJv0xHcuscqO/a4/VDeQ0x7BgBgbhF+gZZrY/gVEXnsscfkHe94RxyCV1ZWUiPBleHXd3PBcLzpvkk4Cl0zN93Ztu2CEcEm056L/gxTdV/j9gvbqbj3ufF1mED4HatPdY9Vduxx+5HQT3EHAADzgPALtFxbw6+IiO/7cvz4cVlZWZGPf/zjcvPmzfrhV7uo0+jxkkCVmgqbCUDZv11b+bds033QL3jVJOzlg1y0KFPBolRF03uH18K36y54dfhAmj5WUZ+OOvyO2Q/t34sGAADzhvALtFybw69ItPDVsWPH5PLly7nnmkx7bp/i0UkAAIBlRPgFWq7t4beqCL+z7sfspRasMoyZ9wcAAMwG4RdoubaF33HM+hftbBB+AQAAVIRfoOXaFH4BAACAcbUu/AZOVzqdTo7l9SZ4nECcbvo4TlC0nSVeb1/2e55Yo6/nIBBheRB+AQAAgBaG34QSPCe+f922i7Y7bN+A+gi/AAAAwAKF306n03Afwi+wv0/4BQAAAPr9BQm/o6nFzfYrCJg9T6zhlOVu15Fgvyee1U2mRQeOdC0r3qbT6UjXCeq1nWnf8jxlu9E+6SnTcdvKfulp1NF+jmMN+zv7MIXFQvgFAAAAFiD8qvfVNttXF1AzjwXOMPQG4nQdCeL/Fu2vtqME2NQ+3Ti49jxLurnwq2s7vV/6/uDoucnes4xlQvgFAAAA5jz8Zhetara/JrxmRldTI6+Box1xbTTtueeJZXnS025XEn57nliZUd3AGYVhpkjjcAi/AAAAwByHX92Kzc0+9BeF34Kpw4RftBThFwAAAJjT8KsLvpOb9qybQjzOtOeihawmNe25Tj+AaoRfAAAAYE7D72RUL3gVTXv2Ugte9TxLusPR29HfDNYveJWePq0umJU8plvwKmoj13ZqIa5sMCb8YnyEXwAAAKDV4RfA/j7hFwAAAOj3Cb9A6xF+AQAAAMIv0HqEXwAAAIDwC7Qe4RcAAAAg/AKtR/gFAAAACL9A6xF+AQAAAMIv0HqtD7++LYZhDNniV20fumIaprjh7H8B9/u+2I37Ms4+i3AtAAAAjhbhF2i5Voff0BVTDbyhK64/y1+qTYPpjMMvAADAEiH8Ai3X6vDr22KYroRz8Ms0QvgFAACYV4TfOnqeWN2udDod6XQ60rU86c2sP4E4XUu83hxcFyyEVoffvi+2YYjphprHTXHdZEp0so0aHodf+66YRdtpn+sPR53V6dZRX+Ip2LYv/X4orpk8ZudGpZseo3of39b3IXXs+B8NMkE6dTx1n2g72zbrTS0HAACYQ4TfKj1PrEzYDBxHgpn1ifCLZtodfvuiBsx0WBuFv/7wvuBMeAyV7Uajx6l7YKueU0Kjbw8DaP7xuA9a4x5D2Sd1btm2h/tn+uHbo2uVvxbxNdRci/w/MgAAACwOwm+pnnhWV5xg1v1QEX7RTPvD79Bw1DIf6rLfF30d0QfDzHOZEdJklFU/klocGidwDF3gjvdRz1MJ//FUcWXf7P3TFdcCAABg0RB+y/Q8sboVo7zKlOhuvO0woHpOPFXa8nq19nEcK34scJSp1k4w3J/wi2aWJvz2+xK6Zo2AWBZ+1SnCJc9pgmL+OJl+lU17PtQxigJsKK6ZbBe6pphuGP+3fN8I4RcAALQJ4bdMzxNLub+351nDwDoKn5kgGjjDkBuI0+0mgTVw8sG4YJ9USI6p+xB+0Uyrw6/v5oKjdvpxafhVRmZTAbDBc33dcdLSoVPd/rDHyExv1k6hHn5v2mKbasCtmvasmyoOAACwmAi/ZbQjv0r4zCyElYzQZgPqOPvsy36QjBwXBm6gQqvDr3aRqdHj9Ud+o4WcyhZ50ixYlZ2WPDx2vOCU7df4G8TjHKPs3JQFtkxbbDM/qpy+B7lswauSqdUAAAALiPBbShc0s0FWNy26KvzW2Ce1XU88i/CL8bQ7/B5WWagj8AEAALQJ4bdCz7OUKcv7kp+CrJuqXBJ+6+4TOMmfVEqtOE34RTOE3zKEXwAAgGVB+K1DmX5ctnhVrWnPtfeJVpqO/q6wIw4jvxgT4bcM4RcAAGBZEH6BliP8AgAAAIRfoPUIvwAAAADhF2g9wi8AAABA+AVaj/ALAAAAEH6B1iP8AgAAAIRfoPUIvwAAAADhF2g9wm/e7u6ubG5uytrampw6dUo2NjZkZ2dn5r+QAQAAcHQIv0DLEX4TV65ckY2NDTl79qzs7e3JwcGB3L59W1599VV54okn5MyZM/Lyyy9XtOOLbRhi2L7m8Sn+XeDQFfNQxxu3v0d8noc+LwAAAD3CL9ByhN/ExsaGXLx4UQaDgejq0qVLsr5edZ5R+DNNQ2w///jihLY5Db9zec4AAKANCL81BU5Xuk5QsV0gTtcSrzf7/i5GvzANhN/I7u6uPPXUU3L37l1t8BURGQwGcv78edne3i5paxigfFdM05Uw+/jCBCvCLwAAWC6E3zp6nliWI45VFSDnNWTOa78wDYTfyObmpuzt7RUG31HduHFDTp8+XdJWEqB82xDTDXOP9/v94fRdQwzDEMOwxe+H4mZHi31bjFGAzm2ftGnbpvJYvh/x16493F/tV1/6w2OPnov6oNk/1LWd7pvpuhXnmb1eJcfW9lfTL189fmY77XO6fg2nq4/YfkHfAABAWxF+a+h5llheL/5v8bbzGjLntV+YBsJvZG1tTQ4ODirD7507d2R1dbWkraLQWBImfTsKZr6dulfYt3VBVNl+GNjSQbaoH8p9yL6tBNEo4OXbqBt+o7ZHwTB0TTGqzlM9Tuack/aL+qs5r9Q/ENR9ruh6ph/P9w0AALQV4bdST7zRiG/PE8vypKc+3/PE6nal0+mI5XnDkNkTz+qKEyjbBY50h/sGTrR9p9NRplIPA6rnxM+lg3bU5ui5uG3l+N2uI0Fpv2Z9LTELhN+I67py+/btWuH35MmTJW0VBSjl8dSoozrS6IuthjztqG92+6JpujXDa+iKqR2RbbB/0fTuwn4rxxlukw7FVWG7qF8l/2CgPlf3emr7BgAA2orwWyUVeJUgvL8vUWBNQm7Ps6Q7CpmBk7pHOHAyYTjef9Re1Fa8T+AoYTYKvvlR58yIbuAMtynp16yvJ6aO8BvZ2NiQq1evVobf69evVyx6lQ1do+nMdQJnNHJqumH8336/bPtFCL/689Sdt37KdVlfiq51xXMNr2e6bwAAoK0IvxWyU517npUE1NxIcDbMjsJrII66XZCM7nZT22eDtTLirI7qjiiju6mR5NJ+YdkQfiM7OzuytbVVuNKzSLTg1TPPPCNbW1slbWkCVDzSmJ6Sqx1RDF0xTVtsUw1nRdtPIPzWmvacuR/Zt3PnUjztuf7IaRL4m4Rfo+AfCRo8V+N6pv4xAgAAtBLht1Q0gqqGy9T04oqQqb1XOBVk1ZHkccNvweOEXwwRfhNnzpyRS5cuFYbfvb09WVtbk2vXrpW0UzZ6WLQQlDodeLjIUsH04IlPe46/L1vwqj8MvKNj24XPlS94pTkvtV3tfb1l56Iu+JVdlKrsueJ++bbyvbZvAACgrQi/ZZT7dJPH1ft5K6YXx6tEKwFVbbPniVVn5Ld02nPx40x7xv4+4Vf10ksvyfr6ujz55JNy48YNGQwGMhgM5ObNm7KzsyNra2ty+fLlmf9ixkjd8A8AAFCN8FsicHTBMjP1OVAXqMouLBWF1vTfB04Wruqm/nxSWfgdfV++4FVqAa3SfmGZEH7ztre35fTp07K6uionT56U9fV12draqhjxxfQRfgEAwOQQfoGWI/xicRF+AQDA5BB+gZYj/AIAAACEX6D1CL8AAAAA4RdoPcIvAAAAQPgFWo/wCwAAABB+gdYj/AIAAACEX6D1CL8AAAAA4RdoPcIvAAAAQPgFWo/wCwAAABB+KwTidLvS6XRilteT/Z4nVtcSrzfaZvT1eG06wZTPK9V/tB3hN293d1c2NzdlbW1NTp06JRsbG7KzszPzX8gAAAA4OoTfUnWC7Tjht+72TdsG8gi/iStXrsjGxoacPXtW9vb25ODgQG7fvi2vvvqqPPHEE3LmzBl5+eWXa7fn24YYtp953BfbMMUNZ/SLPXTFPNTxx+3/EZ/3oc8LAAAsO8JvKcIvFh/hN7GxsSEXL16UwWAgurp06ZKsr9c8z9AV07TFNrOBbMbh99DmNPzO5TkDAIBFQvgtVRQ+1ccz2/Q8sYbTmrtdR4JabfbEs7rRlOr9fdkPHOlaVtxOp9ORrhOUtD9s03PS07OVttNTrIv7nJ6GXdYuFgXhN7K7uytPPfWU3L17V+7cuSOPPfaYvPe975X77rtP1tfX5c6dOzIYDOT8+fOyvb1d2V7ommK6Yfzf5LlFD1KEXwAA0E6E31JF9+cWhd9MqAwcTVhMt5kOsI4E8X817RW2H7UZB+TASdoNnOTxfV070b5x4M3dz1zQLhYG4Teyubkpe3t7IiLy2GOPycrKSsqpU6dEROTGjRty+vTpivZCcUcjvqErpulKGD+XBCnfNsT284/3+8P9hlOmfdsQwxiy/WH76r596fu2GKYr4fC50fapbXLHGX7t2vH26aCua0uzf1hyDnG7buFzhmGLr72GBcfW9lfTL189fmY77XO6fvliG/rrX3yNAQDAIiL8lmo48psZQU2N2Fa2uS/7gaMfeR1tW9h+SUge7pMO4dnn04E2cLr6EWKmYS8kwm9kbW1NDg4ORETkPe95Ty78vuc97xERkTt37sjq6mp5e6nAqwThfl9SIc23k3uCfVtMMxklzo8Yl+zbV4J05vG8bEg0Un1IgmgU8Er7UBp+o7ZHwTB0TTGK9vPt/HG051HWX815jV6D1P3AVc/p+pV/vPwaAwCARUT4LTVO+K0aGT1s+K0zlTp/jJ5n6UeuCb+tR/iNuK4rt2/frhV+T548WdpWNriGrqmEJSVIKSHZt4ejkfHobSZsxaOPalBTgl8qzOlCaz9//LLwGrpiakdkG+xfMOKdHl1VR1SV42jPoypsF/VLHWUvea6wX/oR7eJrDAAAFhHht1TTe36jacLl98WWtVln2rOu/XohtedZyjTpsmnPNaddYyEQfiMbGxty9epVERF59NFHc+H3wQcfFBGR69evVyx6lZkmm5vaqwapUcgdhddQXNMWXw2OqRCaDsXF9xWPRlprTnueSfjVtZ2XPo9xw686TbzkuVrnXOcaAwCARUT4LXW4Ba+Kpz1n/3ZwkFrwqudZ0rU86e1Ho7BFC17VmvYcOAX3Fxct0lUWdgm/i4jwG9nZ2ZGtrS0ZDAZy69Ytefjhh+VXf/VX5Vd+5VfkwQcflP39fRkMBvLMM8/I1tZWcVvxvbfq48XhK3TN3HRn21amAavtZf+cT+GK0krbY09brjPtOXPvsW9nRqbLpj3XHzlNzqNJ+FXaT4XaBs9pz7nONQYAAIuI8Au0HOE3cebMGbl06ZIU1d7enqytrcm1a9cK2/BtfahLpj7rptCWfK8urqQJurm/JZyaIn2Ikdv4+7IFrzLHs+3C58oXvNJMe9aeR7ORX9s2NYtSlT1X3K940THbr3GNAQDAIiL8Ai1H+E289NJLsr6+Lk8++aTcuHFDBoOBDAYDuXnzpuzs7Mja2ppcvnx55r+YVekVoxEp+9NE/NkiAACgR/gFWo7wm7e9vS2nT5+W1dVVOXnypKyvr8vW1lbpiO9M5O6rRYTwCwAAmiP8Ai1H+F1Eo6nQhDg9wi8AAGiO8Au0HOEXAAAAIPwCrUf4BQAAAAi/QOsRfgEAAADCL9B6hF8AAACA8Au0HuEXAAAAIPzWFjhd6TpB5vFAnK4lXi/7ddE2wPQRfgEAAIAlCb+dTudwbfQ8sSxHHCsbYgm/mH+EXwAAAGCJwu9hAnDPs8TyevF/k+cIv5h/hF8AAABgicKv+t9meuKNRnx7nliWJ734ucOF38DpxsE8mVI93N5z4udSgbvnidXtDh/3So6f/l5/rLL20s91u44E8fVI2nKC2Yc7lCP85u3u7srm5qasra3JqVOnZGNjQ3Z2dmb+CxkAAABHZ6nCb/brWlKBVwnC+/syuZHfbDvK/cWBowTP6LlR4Ox5lnRrht+yY9VqL3CiEB44mnufMc8Iv4krV67IxsaGnD17Vvb29uTg4EBu374tr776qjzxxBNy5swZefnllyva8cU2bPHH7ocvtmGKG05rv5pCV8yjbH/ijvJ6+GIbhhiGIUbJa+3bo23STDc8XJ/n9rUY45r7dnRdTFfCmfe/6tpO+D2VPZZ6Leb2NQaAdlu68Kv7vkx2qnPPs/KjtL3s16qS8Bsko7u1Qmyjked8eM0dq6w9ZdQ3NWI8fDw9/RvzjPCb2NjYkIsXL8pgMBBdXbp0SdbXq86zpeH3SB1F34/wevhu3K5vl4XZpn1ZsOtw6GNF/4hg+7Po6yyuZdn+2WsBAJiFpQu/zUZ+o5FRNQCmpwAfIvz2PLFSU4mPMPwWHasy/I72yet5FtOeFwThN7K7uytPPfWU3L17Vxt8RUQGg4GcP39etre3S9oi/E7vnGd/PULXJPyOfazs9vP+Hj7q8DvP5w4Ay2Gpwm/jKc+BI91UONyX0T2vUeg7RPhV2+55YtUawS2bpqz2a9j+6LnSY5VNey4f4c0vAIZ5RPiNbG5uyt7eXmHwHdWNGzfk9OnTJW2p4Xf4gda1C6a8huKayXTYaNRH/RBcEQ5CV8y4XbfwOf3U3JJja/ur6ZevHj+znfY5Xb/UKcSGGLZf0LeEb5eMFoaumLY/Rj/qvF4Zvl1zum4+2KSmRNt+vWunba/sWmWvrSuumdkmPodxrlfFe7Bfdr7pvkX7aq5Jyetk26b2vV16bStf28P+jBUdR/c+Hx0rey3C0n7UvQ4AgOaWJvyOs9hV4OjDXzL1uW74TY8eR20mC0d1U39Gqf705dwCVerUZsdRnis6VkV7manPXSfITJ8uHhnG/CD8RtbW1uTg4KAy/N65c0dWV1dL2sqGX+UDuG8rH1Kj0JL/AF43/KanSYauKUbRfr6dP45vK8FAbb+ov/ljx8EvdX9i1XO6fuUfz/etoO++LaaZjL4mI7GZfhSeS7YfReefEbpi1r5Pte6IX9m1K9in6lpVXNvkHxLGfd2K3oN1+lM18lt+3GYj7nVf28P+jNX9GWr6s36Y6wAAqGtpwu+sA8iRqJiaPPP2MBcIvxHXdeX27du1wu/JkydL2tKM/Oo+0IaumLU+fJfsnwpf2bYzCy1lA9Jwm/QH57ofwPUjmfmR68xzhf3Sj3IVfqhXzt23h6OVpithPxTXrHnt6vSjLLRmQ2fpSLumHd9Wjl/nuha0V3WttOekvD/j99AYr1vZe1B3vSrPt2y0s+x1msCxiq5t45+xCQXcsY4FADispQi/bRU4Xc207PlpD/OB8BvZ2NiQq1evVobf69evVyx6NS/ht940yGg0qyi41g2/oTKdtuS5Wudc1DfVKOSOwlsormmLn7omh732xf1qThfq1BkAda5r+fUqvlb6bU03zNyvPMbrVjf81j7fsutU/X451LGKfo4a/4wdVfhteB0AAGMh/C6U9N/YPfy040m3h3lE+I3s7OzI1tZW4UrPItGCV88884xsbW2VtFUz/Naa9pwJP76dGckqm5JZfzpkeqpw3fCrtJ/6cN7gOe05F/VN83hmurNt2yVhrqT/hf2oG7KqaKYel0wZ11+76uulv1aabUNXTNMW28ye6zivW41pz6XnWzXtudn7ZfxjFb9Pmv2MHUH4Hec6AADGQvgFWo7wmzhz5oxcunSpMPzu7e3J2tqaXLt2raSduuF39H3Zglf99BRO2y58rnwxHs2059TU0Kb3JEZfRwvtZBdaKnuuuF/xIkW2X9C3jOz9sLn7YxtOqW067fkw4VddpCoVQiuuna69GtcqdW3Vx1LvifFet9L3YL/e+WanWhcveFVnum/dY9UJv+P8jJUfJ31+dcPvONcBADAOwi/QcoTfxEsvvSTr6+vy5JNPyo0bN2QwGMhgMJCbN2/Kzs6OrK2tyeXLl2f+i3n2yj5084F8EeTvJeZ1AwCA8Au0HOE3b3t7W06fPi2rq6ty8uRJWV9fl62trYoR32VC+F1o2pWqed0AACD8Ai1H+EVzhN/FNJoSXGO6LwAAS4jwC7Qc4RcAAAAg/AKtR/gFAAAACL8VAnG6yZ8C6nQ64gRjtNPzxOpa4vVmfT5YRoRfAAAAYEnCb6fTGXPfQBw1tPY8sfhbuFgwhF8AAABgicLveAE4E35z3wPzj/ALAAAALFH4Vf9bXybsBo50nSB+PnCSKdHJ4z3xrG5mmnQ2NOu2AY4G4RcAAABYsvCb/bpa+p7fbuGUZyXcZgJy7vlh8LW83sxDEZYD4RcAAABYwvCr+76Y7p7f9EhwEoyHj/c8sbrZcKu0w33DmDLCLwAAALCE4bf5yG9+urIT7GdCbE88K30vcM+z9NOeCb+YMsIvAAAAsGTh99D3/Kojv4EjXcuTXvZxZf+eZw1HgJn2jNkh/AIAAABLFH7HX+25m5/avL8v6qJVXcsRx0pCcf4eYd2q0Sx4hekg/AIAAABLFH5nHUCAWSH8AgAAAEsSfoFlRvgFAAAACL9A6xF+AQAAAMIv0HqEXwAAAIDwC7Reu8OvL7ZhiKGw/Wn88vTFNkxxw1m3OcF+hK6YEz8nAACA+UH4BVqu/eF3tXXhcwAAIABJREFUFoGxheEXAACg5Qi/QMsRfiexz1G0MS/nAgAAsBwIv0DLLWf4HT7u2vF0aNMNJTdN2vaj7UNXzPhxW3ylDds2lcd0xx22WdhWKK6ZmY7t22KYroS6Nv1k/6jP/co+Fu3j29lzLetL5lqmjqfuk7ku2nMBAACYP4RfoOXaH37Ve37VUKgEUt/OB8ZQbUP53rdTQTkVQPvZfbJhsqAt30760o9Caf7e5GGfR0EydQ9ueR/jfVLnqetvv6Qv+UAf9zHXF+W6EH4BAMCCIPzW0hPP6kqn05FOpyNdy5Oe+nzPE8fryf5+II4TzEF/gUT7w2/JyK824JaPcCajpGVTiqPnTLNsdDbblhK+tWExf7w4mNbuYz4kJ/uo56/ri7Jv6IqZCdH6kAwAALA4CL9Vep5Y3a44QfoxT/m+51nR83EInoN+A0OE3+z3uvBbMVqqfc4Q0zRTo6jFbfUldE0x3TD+b/W5KKPKtftYFGBDcc1kO31fCL8AAKDdljL8djqdmttGI76p4KsKnHg0WJUbGQZmiPCb/V73nG56c/XIrxtGoTAdIAumSoeumKYttlkRqEf7pgJo3T5mpjdrp1CrfVEDbtW054Jp40x7BgAAC2Lpwu8ooNbavueJ1XUkKN2uJ54Thd3AqdoWmL72h9/0dODkXtji6cDxQlDaRarqT3uOnotGaNNBU7Oo1ui46kixps1oISnN3yyu1UdNvwxDjFzoHj6X6kvZdPCKqdWEXwAAsACWKvyqo7O19ul5YlWO4o7u801C8KzPE1C1O/wuFv1CVwAAAJiGpQm/2anJtfYrHflNL4KlKpwmDcwA4XdOhK6YjJACAADMzFKEX11ArbdvxT2/+8piV4EjFotdYQ4RfmdtNP2YRaIAAABmqfXhVxd864ff/XhRq6LVngPHEq+nhOA5CDuAivALAAAALEH4nYjhnztiNWcsIsIvAAAAQPgFWo/wCwAAABB+gdYj/AIAAACEX6D1CL8AAAAA4RdoPcIvAAAAQPgFWo/wm7e7uyubm5uytrYmp06dko2NDdnZ2Zn5L2QAAAAcHcIv0HKE38SVK1dkY2NDzp49K3t7e3JwcCC3b9+WV199VZ544gk5c+aMvPzyyxXt+GIbhhi2r3l8Hv+Wb1m/Ztln5dihK+ZcXjsAANAmhF+g5Qi/iY2NDbl48aIMBgPR1aVLl2R9veo8o9BmmobYfv7x+QtwCxB+Z36NOB8AAJYB4RdoOcJvZHd3V5566im5e/euNviKiAwGAzl//rxsb2+XtDUMOb4rpulKmH187sIP4ZfzAQAA/T7hF2g9wm9kc3NT9vb2CoPvqG7cuCGnT58uaSsJOb5tiOmGucf7/f5wKq8hhmGIYdji90Nxs6PFvi3GKEDntk/atG1TeSzh26PtM9OwlbZM1y3sV+657Dm6dtx+cp76vvq2em6aa1E6TVzzdYNj516j1DaafhW1XdhG+vXI7z+cCp99LcZ4TQEAwNEh/E5bzxOr25VOpyOdTke6lie9mfUnEKdridebg+uCI0P4jaytrcnBwUFl+L1z546srq6WtFUR2nJf96Xv21FI8u1USE0CY8H2w1BVGNAK+5QEvtA1xaj1XLY9JcT5dj4Alp2bb4tpmnG/Q9fUnEPZtWt4bE3f48Cbup+4rO2ivuVfj1p9O/RrCgAAJo3wO009T6xM2AwcR4KZ9YnwuwwIvxHXdeX27du1wu/JkydL2sqHmigMZRdwUkYC48Dki62GJe2ob3b7kqm0vq3soxy7aDp22XNl51jn3JS2fVudFh6Ka1Ydo+QfDmpdV6Xd0BUzE2gL/5Gh6Pxrvx4l/R73NQUAAEeG8Ds1PfGsrjjBrPuhIvwuA8JvZGNjQ65evVoZfq9fv16x6FU2vIymM2dDmn5K62gUNDUaWrh9SVBK7aMEzKmEX11fR30YhfpQXNMWP3dM3TGahN+KqcITC791Xo+q8NvwNQUAAEeK8DstPU+sbsUorzIluhtvOwyonhNPlba8Xq19HMeKHwscZaq1Ewz3J/wuA8JvZGdnR7a2tgpXehaJFrx65plnZGtrq6QtTXiJR/nS02u1U1tDV0zTFttUg1HR9iVBKXe/8KSnPZeFPP25ha6Zm+5s27qpybo2a4TfWlOGddOea05Nbvx6VPW74WsKAACOFOF3WnqeWMr9vT3PGgbWUfjMBNHAGYbcQJxuNwmsgZMPxgX7pEJyTN2H8LsMCL+JM2fOyKVLlwrD797enqytrcm1a9dK2tGHl1yQzE57jafnRiPF+um6TabIDtsxDDFMW2x1arGvLsiUWdSq7LnCc6yY0pta4Cm7XZ2VpuuG37LrWnQty8Ju1ch6k2nPygJk2gWvmPYMAMCsEX6nRTvyq4TPzEJYyQhtNqCOs8++7AfJyHFh4EYrEX4TL730kqyvr8uTTz4pN27ckMFgIIPBQG7evCk7OzuytrYmly9fnvkvZgAAAEwe4XdqdEEzG2R106Krwm+NfVLb9cSzCL/LhPCbt729LadPn5bV1VU5efKkrK+vy9bWVsWIbyS1gFGBWf9iBwAAQB7hd4p6nqVMWd6X/BRk3VTlkvBbd5/ASf6kUmrFacLvMiD8AgAAAITf6VOmH5ctXlVr2nPtfaKVpqO/K+yIw8jvUiH8AgAAAIRfoPUIvwAAAADhF2g9wi8AAABA+AVaj/ALAAAAEH6B1iP8AgAAAIRfoPUIvwAAAADhF2g9wi8AAABA+AVaj/ALAAAAEH6B1iP85u3u7srm5qasra3JqVOnZGNjQ3Z2dmb+CxkAAABHh/ALtBzhN3HlyhXZ2NiQs2fPyt7enhwcHMjt27fl1VdflSeeeELOnDkjL7/8cr32fFsMw4iZblizH77YhiluOOnzK2v3qI7ZsF+hK+bM+rEgRu8r05Vw1n3RvYaTOpfa56kee5bv4yO6Rgt7XABYTITfaQoc6XQ60ul0pNt1JJhY24E4XUu8Xvbr7Dbd+PidTkecYA6uCY4c4TexsbEhFy9elMFgILq6dOmSrK/XOE/fFiP1gTMU16wbgJc4/E792It2Pr7YhiG2P2/Xbpx+ZM+l7nNlx27aj2leP8IvACwCwu+09Dyx1MDb88QLJtV+3fCrPJ7tD1qL8BvZ3d2Vp556Su7evasNviIig8FAzp8/L9vb2yVtRUE398E9dMU0bPEr+0L4XWxHHX7Vtufl2o0bfifxfiT8zudxAWAxEX6nJXCka3nSO5L2xwi/hduhbQi/kc3NTdnb2ysMvqO6ceOGnD59uritwpAbimtmPqS7tmZa9OjDqiZE+7Z2GqhvJ9OrDdvP9GXUvpv+EFz2XKysn+k2jOE5+3bJyGToiqn2L7eN5usGx9a/Fsm1yfWrqO3CNkbHKdo/GrHMvRYlbdi2qe1//jVNtx29ZpM5VrNzbPL+KXoNsueiXnvdc2WhX/d1nZ+d7GvlluwzbNdXz7nGe7HGNar981LxXk69tnVfGwBADuF3aqJpx5bX0zzXE8/qZqYjR+HUcaxkinTPE6ub3S7ZtlH4DRzpOkH8fOAk7SaPZ/ug6yfmHeE3sra2JgcHB5Xh986dO7K6ulrcVuiKqb1PUf1APvzgPfpg69v50BEOH1fCYvqDsk42CCTbh66pTMUuey7bXo1+Dp8z3TDdZ98W0zTjoBC6piZklgWZhsfW9D2+Xqn7icvaLuqbepwGfatoo3oqfNnI5iSONe451n//FL8GdUd+m4bfuj87+XPX7zO8FqOf67LzyFy/ymtU6+el+r2c/sezOq8NAECH8DtVSXhMgmP0WD4UZ8Ny9H28X88TSxt4693zW3zPcbYtpQ+ZwIzFQPiNuK4rt2/frhV+T548WdxWk5HfWh/mlcBRtPhPanEtZfGo3EhXjedSbZf0MzMSFY8+Km379nC0zHQlTJ1/0TFqBr2iY1e8DukwU2P6cOFx6r5+Tdqo8ZpW9XucY41zjnXfP41eg5rvu9rvmTo/O7p2dfvk+xqfR42fg8prVPXz0uQ61v7ZBgDoEH5nYTiC6wT7JffeVt+jGzjd1Chx83t+0yPBSTAuaGvYb/3oNeYV4TeysbEhV69erQy/169fr1j0qs49v/XD02j0Rz9qmm0384H5yMNvWcgfhYdQXNMWv3BEfNzwW3H/9MTCb40R4crwW6eNGq9prfB7mGM1eO3nPvzW+NnR9EG/T3Y75We86PrV/hmr8fNC+AWAqSH8zkjPs6JR1FmF3+GIcz6A98SzytvqeRbTnhcI4Teys7MjW1tbhSs9i0QLXj3zzDOytbVV3l5uGq1uamKD8GTaYmtHTfvpexk10yEPP+25rJ/6qbSha+amb9q2bmpy2bmPd+x+5pqnp4rWnJpc+LrVvS7Z5+q0Ufc1rQqFDY819jmOO+256DUoO3bmH5RSq6kf4mdH1wftPplrlDuPoutXb/px9c9L0/cy054BYFyE32kJvFzwjEZQy6Y9Zxeoyk57HgXWQ478qotxFU6nTut5FiPAC4Lwmzhz5oxcunSpMPzu7e3J2tqaXLt2rbq9zN/5TY8ENwlPw8WPcgtFjUTBIPqbqJkP7b66WFFm4Zuy52r1s5+f8planCe7XZ0AUjf8lhxbldqm7khiWRt1pj0ri1UVLFZUPe256DUteG8c6ljjnWO990+T16DsfZf5ebLtmu+Zqp8dzfXT7hO1Gy0qpfl5LnovNrpGFT8vTa5j3eMCAHIIv1OTuec2de9s+rn8aO6QsuBVt3Dl5rr3/OZHgTudjnQtR5yikd8j+zvFOEqE38RLL70k6+vr8uSTT8qNGzdkMBjIYDCQmzdvys7Ojqytrcnly5en/ou4eqErADrj/Ozk92HqMAAsC8Iv0HKE37zt7W05ffq0rK6uysmTJ2V9fV22trZqjfimFr4p0Kg/hffKAig1zs+Odh/CLwAsC8Iv0HKE33k1mvrKh26gmXF+dsr2IfwCwLIg/AItR/gFAAAACL9A6xF+AQAAAMIv0HqEXwAAAIDwC7Qe4RcAAAAg/AKtR/gFAAAACL9A6xF+AQAAAMIv0HqEXwAAAIDwOzWB05VOp5Njeb2S/QJxupZ4vdn3H4uL8AsAAAAQfmegSaAl/OLwCL95u7u7srm5KWtra3Lq1CnZ2NiQnZ2dmf9CBgAAwNEh/E4d4RfTRfhNXLlyRTY2NuTs2bOyt7cnBwcHcvv2bXn11VfliSeekDNnzsjLL79cuz3fNsSw/czjvtiGKW44+1/w5cr6OctzUI4dumIuxLUEAACLgPA7dfpAq06L7jpBetvAE6vbzUyT7olnJfs4wazPC/OK8JvY2NiQixcvymAwEF1dunRJ1tdrnmfoimnaYpvZcEb4Pbp+LaK2nQ8AAIuL8Dt1VaO56vOBON2udC1Pevv7st/zxBo9FzhKSAaKEX4ju7u78tRTT8ndu3e1wVdEZDAYyPnz52V7e7uyvdA1xXTD+L/Jc4sSdgi/nA8AAMuF8Dt1BeE3cJKR31T4TW8bON1olLcXjQaXL5gFEH5HNjc3ZW9vrzD4jurGjRty+vTpivZCcU1laq7pShg/l4Qd3zbE9vOP9/vD/YZTpn3bEMMYsv1h++q+fen7thimK+HwudH2qW2G8u0pxxw+brpuvj9Fz2XPzbXj9lPBX2nDMGzx+/WvQe4YYcHXDY6de91S22j6VdR2YRuj4xTt74ttaF6LkjZs2yzuPwAAOBTC79Rpwm/PE6vrSLC/L9F05qLwG011Vqc49zyLac8oRfiNrK2tycHBQWX4vXPnjqyurpa3lwq8ShDu9yUV2Hw7CTy+LaaZjBLnR4xL9u0rITLzeLlseEwCX+iaYtR6LtuekTqnXAAc7ePb0fkd5hpo+t/o2Jq+x4E3dT9xWdtFfVOP06BvFW0Uhm4AAHBohN+p04TfwNFPbR5Oe45Hd1MhOdHzLEaAUYjwG3FdV27fvl0r/J48ebK0rWxoC11TCaSZBZuGIdm3TXH90feZwOwnI4bpQKoEqFHYHo4aloYkXXslI9Slz6XaLglymVHVeKSz7jXQHqPo65rHVtsNXTEzgTYZla4IqKk2dMcp218z2l2rDQAAMGmE36nTTXtOFq/qWo44mZFfx7HyC1ulpknnAzEwQviNbGxsyNWrVyvD7/Xr1ysWvcpMZS2aAhv2JRkVHoXXUFzTFl8Nm6lQlg6ExfcVj0ZnNdOei9qbSvjVjZbWuAaFx2gSfiumCk8s/NYYEa4Mv3XaAAAAk0b4BVqO8BvZ2dmRra2twpWeRaIFr5555hnZ2toqbiu+91Z9XL1HNx1iQtfMTfW1bWVartpe9k/7FK4orbSdHQEubG9S057LQp5+RLryGhQeo2b4rTVlWDftuebU5Ewb5VO16/S7ThsAAGDSCL9AyxF+E2fOnJFLly4Vht+9vT1ZW1uTa9euFbbh28UBTzt9VRdoUyFHWcBKE3Rzf0s4NaW5aKS1oD1fXZAps6hV2XOxipCYndKbWuCp7BoUHaNu+C05tiq1TVnYLQmi2uOU7x8vQKZd8IppzwAATAvhF2g5wm/ipZdekvX1dXnyySflxo0bMhgMZDAYyM2bN2VnZ0fW1tbk8uXLM//FrEqvlgwAAIBxEX6BliP85m1vb8vp06dldXVVTp48Kevr67K1tVU64juSv9c3baJ9LbwvFgAAAE0RfoGWI/wuotHUZabBAgAATArhF2g5wi8AAABA+AVaj/ALAAAAEH6B1iP8AgAAAIRfoPUIvwAAAADhdyYCpytdJ6jYLhCna4nXm31/F6NfKEL4BQAAAAi/09fzxLIccayqADmvIXNe+4UihF8AAACA8Dt1Pc8Sy+vF/y3edl5D5rz2C0UIvwAAAADhd8p64o1GfHueWJYnPfX5nidWtyudTkcszxuGzJ54VlecQNkucKQ73Ddwou07nY4ylXoYUD0nfi4dtKM2R8/FbSvH73YdCUr7NetriboIvwAAAADhd7pSgVcJwvv7EgXWJOT2PEu6o5AZOKl7hAMnE4bj/UftRW3F+wSOEmaj4Jsfdc6M6AbOcJuSfs36eqKWNoXfBx54YCyz/kULAACA2SP8TlF2qnPPs5KAmhsJzobZUXgNxFG3C5LR3W5q+2ywVkac1VHdEWV0NzWSXNovLIK2hd+mVRp+fVsMwxiyxe/3pd/3xTZMccPZ/4JGX/qhKyavBwAAmADC79REI6hquExNL64Imdp7hVNBVh1JHjf8FjxO+F1oyxZ+b926JR/72MfkxRdfLA+/oStmHHij712/L4TfWeP6AwCAo0H4nRblPt3kcfV+3orpxfEq0UpAVdvseWLVGfktnfZc/DjTnhfXsoXfU6dOycrKitx3333l4de3xTBdCXPPEb5mi+sPAACOBuF3SgJHFywzU58DdYGq7MJSUWhN/33gZOGqburPJ5WF39H35QtepRbQKu0X5t0yhd/NzU1ZWVmRe++9Vy5evFgefvu+2IYhphtqHjfF9V0xh1OiU9uEyeOGYYjtR4/7dvJ1LsCFrpi2rz+Om0y9Vo/j28kxjHjffN9svy+ha2rbSPdVGeWOheKa2XPJhk/NucTHcsd6LulL9vjRa5I+7+Ljq9e//HrqzhMAACwbwi/Qcm0Nv71eLxV89/f35dixY7KysiKPPPJI/Hj5gldJKEqHKCMZFfbtzP3Ayrbq/ai+nYRU3xbTNOPwFbpmQcg2UvvoA6oa/nR9U0Jerq9KaPTtfB/UPmuPpz/+6Pyj0F33OU1fDnn89P3AJddTexz8/+3dP8sj2aHg4f4kVTTMFxg6MzibpL5CB42jm57AGIyTDszkNpUZDB04GAYmLIOjZvKxs9rdi232zl083uvLnW2ziJ71zPhsoH9VpSqppPfo1Sm9j+DhlUqqU5KMbX59TpUA4KkRv3Dn7jF+f/Ob38QPPvgg/vrXv95F7k9+8pP4/Pnz+NFHH8VvvvlmZvxubGYTT858Ds8TfteZ8f39x/HDTZR++mozO/vhx/H3734fP/5wbBnviRnW3sW4JiLy5HvtzKL2ZpD7n7sfxSfG7C0VP+O5sfdyyfGnvv8Z38XhP0AAAE+J+IU7d4/x+/Of/zw+f/48Pn/+PP70pz+Nv/vd7+Lz58/jBx98EP/whz/0ZoTn/tTR7z/+cHyZ7ez42kbup/HVLnpfxU8PonBk3KPH6cbzufE7NpM88dnnxv/F8Tv9Xs46/iXxO3ocAOCpEb9w5+4xfmOM8Ve/+lV88eLFLoKfP3/emwk+Gb+fftwJo/Xy5/XM4LnLbvcx9vuPPzxY7vzq1chy44NxB4+7F+M6WNo7M34nz2ket1+avf4udp/x01dnLG0+/tyx97I//qXf/+n47R/nev/HCgDkSfzCnbvX+I0xxk8//TR+9NFH8fnz5/HHP/5xfP/+/fz43Z4jOnVRqRkXfHo2jKvhb9Ie/Y3aY8fpXKDpw1fx1SUzvwfvdWTZ8+jvHA+2v3o1uRz74KJWx54bey8Tx99d7OvkBa9mfhdTnxMAeFLEL9y5e47fGNcXvvrhD38Y//SnPx08d86yZy5wbDnzGcuuAQAeg/iFO3fv8XvqJn7P07so1cDwtZ++ejbxW8nHnwMAuAXxC3fu3uL3Erf+H9r70f+93P4S4mPPAQDcnviFO3dP8QsAAJcSv4+ujXVVxqIoYlEUsazq2J49RhNDWcW6PWOfJuyPWYbYXPt4ZEP8AgCA+D1bURSX79/WsSrLGJr+tro5d6wzY7StY9UN3t0x544jfpdM/AIAgPg923b29Px91zO+vfC92Jkx2oSJGWbx+xSIXwAAEL9n24bv2QE8nH2dfM1+SfRwhnj7XFXX/RjtPDe+pLmJoSxjVbcH23ZLoUN9GOe7aG7OPB45Eb8AACB+z9aN3rMCuK1jdfT83nWM7uKzrWO1C87+c21dxbL3XCdMmzCI3K39ucb7wD3ctwzNbp8mbI/Zfd3c45EL8QsAAOL3bMPgnR3Ap2Z+R57fxedBOHcCdDBbvJ7FbU68j7Go3T7evocmht0xH3A8bk78AgCA+D3bxTO/p875fVD8nrf0uK2rTbAensvb1lWs6nb3N8XxuC3xCwAA4vdsF5/zu1rtfm5o/GrPY8ueO7OwR5c9D8/nHR637gTuOsLXrx+5kFVbx6oKMVTDGeEzjkdWUgTmaiV+AQBYNvF7psuv9rwxWDbcuwpz70JSgyjt/E7vsQtejS9DHl7cav98E8rRbf0xpi94Zdlz/nKM33/+85/xv/3bX+L33/8z/v3vf7/5/xACAHD/xO+ZHhS+C7G/0BX3IMf4/fbbb+Mf/9f/jv/vH/+I33zzzc3/hxAAgPv2/v37+O1338V//fe/xu+///7icZ5U/N69k1elZmlyjN/379/Hr//+f+Of//K3+I9vv41ubm5ubm5ubm5u17x9+9138d/++p/xP/7r3YMmX8TvXVifC3yw3JrFizG/+H33bj37+5//5+/xf3z5VWz/518AAOBq/vXf/xr/47/exe+///5Bp92JX8hYrvH77t36X92+++67W/4joJubm5ubm5ub2xO4ff/99/Gbb7558PVmxC9kLMZ84xcAAJbkrPh99rMvgEckfgEAIA3xCxkTvwAAkIb4hYyJXwAASEP8QsbELwAApCF+Z/lz/G38Ov5L0vHex1/8cnD/l1/FP+62fxGfffJ15xpnKY/PUohfAABIQ/zOMjd+u1E793UT+/zyq/jH7jF/+VX8xSe3/h54bOIXAADSEL+z3CB+P/k6xr99FX9w88/OLYlfAABIQ/zO0o3fTay+3S9J/uPbdrO9c2v/vN73l1/FPx4sXZ6K3+H97diD93NszIP39UV89rM2/uJv+7f220+OjUNOxC8AAKQhfmcZxm8nbj/5eiJqRx5/8nUnlE/F7xexG627YD065sT7+uTr/fafnRrn1t81XeIXAADSEL+zjMz8jgbu4LnezGp3Rnhu/PbH+e0nc8ccjLXZpxe3k+Pc+rumS/wCAEAa4neWh8Tv2HLiM+P3Z1/EH7x9v47TWWOOj/WDt+/3s8iT45AT8QsAAGmI31kujN/J83ZnxO8nXx0sf+4ubz4+5tjjtR+8fX9iHHIifgEAIA3xO8vc+P0i/kt77IJX5yx7nriA1qwxB2NN/V7w6Di3/q7pEr8AAJCG+IWMiV8AAEhD/ELGxC8AAKQhfiFj4hcAANIQv5Ax8QsAAGmIX8iY+AUAgDTOil/gcYlfAABIQ/xCxsQvAACkIX4hY+IXAADSEL+QMfELAABpPIH4bWNdlbEoilgURSyrOrbd59s6hrqNq1UTQ2iOjNPEUFaxbkeea8J+/DLEZvf6znGn9oUjxC8AAKSRffwWRXH5/m0dq7KMoelvqzuP27paP7+L4KnxJuK3rWO1C97u+P3Xt3V1GN5wgvgFAIA0FhG/lwXwesa3F75dndnarulAnYjfJkzsM3z9kZljmCB+AQAgjUXEb/fvbMMZ2VFtrMM6XJtw6rVT8bpe3lwdzBqLXx5O/AIAQBqLid/h/ZPaOlYnlxlvz/PdR/DR107G6/684v1Ms2XPPJz4BQCANBYVv2OPJx2d+e1fBKtrcpn0nJnb3jnGwwtenZpZhkPiFwAA0lhU/J639PnEOb+rzsWumjCybHlo3rLltq5iGZrZr4djxC8AAKSxmPi96KJXm4taTV3tuQnrON1F8NHxpi54VXe2rYO72v50kvjlgcQvAACksYj4TfFzR6ev5nxKfxlzURSdyO2Mv/utYPHLw4lfAABIYxHxe+sAgVsRvwAAkEb28fv4Dmd4XayKWxG/AACQhviFjIlfAABIQ/xCxsQvAACkIX4hY+IXAADSEL+QMfELAABpiF/ImPgFAIA0xC9kTPwCAEAa4hcyJn4BACCNJxC/bayr/e/2llUd2+1zTRj/Ld+p7fDIxC8AAKSRffwWRXH5/m0dq7KMoelvq5vtc52wPbU9gxDi6RHONyQjAAAXn0lEQVS/AACQxiLi97IAXs/49sK3qwn9WeBT2+EGxC8AAKSxiPjt/p1tOIN7oImhLGNVtzO3w+MTvwAAkMZi4nd4/6S2jtXJGdz9+cD9GeKp7fC4xC8AAKSxqPgdezzp5Mzv8LUjS6SntsMjEb8AAJDGouL3vKXPJ875HWjrKpahmb0dHoP4BQCANBYTvxdd9Grzk0WjV3tu6li32+3rUK7qdnp7BiHE0yN+AQAgjUXEb4qfOzr8nd/1ha1223ezu1Pb4fGJXwAASGMR8XvrAIFbEb8AAJBG9vELT5n4BQCANMQvZEz8AgBAGuIXMiZ+AQAgDfELGRO/AACQhviFjIlfAABIQ/xCxsQvAACkIX4hY+IXAADSEL+QMfELAABp3HH8NjGUZSyKYqeq2wRjVrFuHzBGE2JRFLGs6ti2dax24yUYm7sjfgEAII3s47coigv3HcbkOobL0Dzg/Tw0UNfvITTXGJt7JH4BACCNRcTvZQE8EpNtHasyxObi95Mifqf2F78cEr8AAJDGIuK3+3e+sZhsY111Zl7bOladpdH9Gdn1a/vPdccczCR3xip3gb1+fQhVb/n1fgn2cLzO+x0dj6dG/AIAQBqLid/h/dNOxe9gCXLv/Nv16w7PEd6OOYjo4bGa0Inb7jhjS7HH4ndqvNvHGI9L/AIAQBqLit+xx9Om4nezbWQJdBM2QTu5PHo9ZjUM48EMclEUmxnhY7E7fNy5Pzne7WOMxyV+AQAgjUXF74NnfrtRe3H8lrGqqn6Mnojly+LXUmfELwAApLKY+H34Ob/DKy2PLXveBuepZc/rUO4vZz7++tOPD88nttQZ8QsAAGksIn4vv9rzfulwOXYl5d5FpYbP9/c/vODVOpDLqo7tYKwHL3ueHO/2McbjEr8AAJDGIuL31gECtyJ+AQAgjezjF54y8QsAAGmIX8iY+AUAgDTEL2RM/AIAQBriFzImfgEAIA3xCxkTvwAAkIb4hYyJXwAASEP8QsbELwAApCF+IWPiFwAA0rjj+G1iKMtYFMVOVbf759s6hrpdvy40GbxfOCR+AQAgjezjtyiKC/dtYiirWLfjz7d1FUOz6kTw7UMHhsQvAACksYj4vSyAJ+K3Cb3Z4K2yqmObQexAl/gFAIA0FhG/3b/zHZv5bWMd1rHbhBCbDCIHxohfAABIYzHxO7x/2uE5v6HpPBea2I3gW0cOjBG/AACQxqLid+zxtLGZ3zbWVTm67HkfxpAP8QsAAGksKn7Pn/kdX/a8u9hVE/pXgIbMiF8AAEhjMfGb8pzfJqy37yI4g8iBMeIXAADSWET8Jr3aMyyI+AUAgDQWEb+3DhC4FfELAABpZB+/8JSJXwAASEP8QsbELwAApCF+IWPiFwAA0hC/kDHxCwAAaYhfyJj4BQCANMQvZEz8AgBAGuIXMiZ+AQAgDfELGRO/AACQxh3HbxNDWcW6nd7ehDIWRXGgqtvN68pYhmZ0/LauYrkbf+pY8DDiFwAA0sg+fouiuHDf0/E7Z1tVTY1Ril+uTvwCAEAai4jfywI4TfyGUG1mgjvPNSGWIXT2Eb9ch/gFAIA0FhG/3b/zpYnfum1iKENsdtvbWFfb7eKX6xK/AACQxmLid3j/tPXS5LFzesuz4nd9bnBoNtvbOlZVHduV+OX6xC8AAKSxqPgdezwt1czvqhO83RAWv1yf+AUAgDQWFb/nz/wmit/tUudmH8Hil8cgfgEAII3FxO/tzvndPG5C52eQhs+LX65D/AIAQBqLiN9bXu15v62NddW98NUwfsuR3wq+fTyxbOIXAADSWET83jpA4FbELwAApJF9/MJTJn4BACAN8QsZE78AAJCG+IWMiV8AAEhD/ELGxC8AAKQhfiFj4hcAANIQv5Ax8QsAAGmIX8iY+AUAgDTEL2RM/AIAQBp3HL9NDGUV63Z6exPKWBTFgapuN68rYxma0fHbuorlbvypY03sF5rYhDKG5sT7bcLk8Y9/xrHXlSOf8fH+82hC+ejHvAfiFwAA0sg+fouiuHDf0/E7Z1tVTY1Rnh+/bR2rqo7tanUYtm0dq7IfiG1dnQjGc+J3XpxfTxvr0e+SY8QvAACksYj4vSyA08RvCCMB2oRYhtDZZ15c9mK2G8Kb50Jdx2oXxHNicUnxu5oxk82Q+AUAgDQWEb/dv/Olid+6bWIoQ2x227dR2pwZv8OY7T7ujrk91uC4m5nhoihi2XtNFetm/9z4TPGR99cZtyiKzlLsffyvj3d4rNCso/1wKXUb62pkzEHwc5r4BQCANBYTv8P7px2e57pVnhW/q/75ubuAOzd+hxHdHbeJYROFTdiM05slHYzfhP55ydugbOtYTQZ//7vYHbccfLbeZ+ouwx4cqwn94G3CPsonZ3gPvwOOE78AAJDGouJ37PG0VDO/q96MZS9YHxi/u0jsxOJ2afTBEulBvK5ff3jcwwtpHXl/bR2rY0He2+eMxyPnL6857/dc4hcAANJYVPyeP/ObKH630dZ0l+0miN9NVDd11Z99DXU/Ekcidfx9r5cb3zx+N2Ntl0T3l1Kb+T2H+AUAgDQWE7+3O+d383i4zPfs+B2b9VzHankQkWXnvN79tsOZ1MH22ZHc37+/7HlwPnE7Ncbp+F2tjl/ki9PELwAApLGI+L3l1Z77s6rDIO2fH3vqd3THfrqorav9ebQbTRj5feHB0ufusucQqsOLS836LlaDC2k9JHY7jzf/UNC/ONfK1Z4vIH4BACCNRcTvrQMkmSc98+l830uIXwAASCP7+L03bV09ydnP0dlsThK/AACQhviFjIlfAABIQ/xCxsQvAACkIX4hY+IXAADSEL+QMfELAABpiF/ImPgFAIA0xC9kTPwCAEAa4hcyJn4BACCNO4/fJoayinWbeNwmxKIoYlEUsSxDbM7Zt61j9dD31IRYhiY2ody9j66qbtN/l7f+zE+U+AUAgDSyj9+iKB6w/xXit61j1Y2/to51c43PPvXe21hXw+1XivxsPvPTJX4BACCNRcTv5QF8hZhqQiyrOrZX/+wT772tYxWa63/OnD7zEyZ+AQAgjUXEb/fvQ2Kqu0y4DE1cz6KWMTSdfTqhd/j67ZjlxNLi9Xjbfdbjrt9DCNVmuXD3PW3uN3WsyrKzZHl9jMNjr2JbV/33O/I5j3+uqWNuXtfut++XN9/2Mz9l4hcAANJYTPwO788zNZPY2b45f3b7XBPK2XG5j739tsNAHIbjMATL/axq79zYsffexDB6vu3Iayc/1xnHbELnfd/qMz9t4hcAANJYVPyOPT7uMOb2F23qBldnhrO7vHf09R2bWdLQrA7Pi516D2OzoJ1x+5F6GLTjs6+nQrn7uY4cszPrOzkD+9if+YkTvwAAkMai4vdBM7+9UOtfNKqtq1jV7e7vPvLGX9/V1tU6EJOEYHe58thzU2E4Ho2jn+vYMSc/w60+M+IXAADSWEz8XnTOb/dCTd37w5/eaetYVSGGqhNyU69v6oNwW4flsSXAx0KwnAjuwX6jF7qaOsbwcw2Pf+yYI5/hVp8Z8QsAAIksIn4vm/EtB0uV9+eslgdBuH6uv8R36vXHLszUf258NvNwFjSEarDP2vaCW2VoJi50NTZmXxOGn+v4MYdLn9f73uYz3zo8cyB+AQAgjUXE760D5HrmznQOzkU+w+EFvG49u3rr4y+L+AUAgDSyj9/7duUQbOtYHUTzrePz1sdfFvELAABpiN+bulYIbpZxn/qZp7v6zPdJ/AIAQBriFzImfgEAIA3xCxkTvwAAkIb4hYyJXwAASEP8QsbELwAApCF+IWPiFwAA0hC/kDHxCwAAadx5/A5+VqcJsSiKWBRFLMsQm+5rO88VRRGruh2MU8YyNMfHh8TELwAApJF9/BZF8YD9O3Ha1rHqBm9bx7rZ3G/C4Ddx17+Tuw/g9ThVVcbQTIyfQShxf8QvAACksYj4vTyAO3HahFhWdWwPXrMO3X7UrgaxvBmnqWPVG0P8cl3iFwAA0lhE/Hb/nqcbp+uly/3lzKvDGeGdNtZVd9/1/SYczgiLX65F/AIAQBqLid/h/XmGcbqe5S2KYj/T2w5nc/uvXb9uGNFj9yE98QsAAGksKn7HHh83EadtHatyE7ZnzvyuVqv1EurQTI8PiYhfAABIY1Hx+/CZ3722rjYBe8Y5v7txtvuIX65L/AIAQBqLid+LzvntXuSqqaev5tyEwU8fDc8PHonczexxKX65IvELAABpLCJ+L5vxHYbpetvud36Hv9k7+J3fOT9p1NaV+OWqxC8AAKSxiPi9dYDArYhfAABII/v4hadM/AIAQBriFzImfgEAIA3xCxkTvwAAkIb4hYyJXwAASEP8QsbELwAApCF+IWPiFwAA0hC/kDHxCwAAaYhfyJj4BQCANO44fpsYyirW7dj2MhZFsROazXNN2G0ryxCb1YntcGXiFwAA0sg+fouiuHDfY/E7sr2tY9UN27aOdXNkewZhxP0TvwAAkMYi4veyAD4zfpsQy6qO7XCcqe3wCMQvAACksYj47f6d78z43SyHrup25na4PvELAABpLCZ+h/dPm3fOb/8c3jbWVdk/D/jodrgu8QsAAGksKn7HHk87d+a3o61jVZaHoTu1Ha5E/AIAQBqLit90M78n4ne1im1dxTI0s7fDNYhfAABIYzHxe/Vzfpu6s229zLmq2+ntGYQR90/8AgBAGouI38uv9tz/Pd91tM7bvp/dndoO1yd+AQAgjUXE760DBG5F/AIAQBrZxy88ZeIXAADSEL+QMfELAABpiF/ImPgFAIA0xC9kTPwCAEAa4hcyJn4BACAN8QsZE78AAJCG+IWMiV8AAEhD/ELGxC8AAKRxx/HbxFCWsSiKWBRFLMsq1m33ue7jEW0dq1OvGWjC/nhdVd1m8H2wROIXAADSyD5+i6K4cN9+4LZ1Fcuqju3Ic+k9dPxrvz+WQvwCAEAai4jfywJ4GJDdx+KXZRC/AACQxiLit/t3vvnx212uXIZm+vV1mLmUeSJe2zpWm6XYZRlis2pjXZX7sZoQy6ravab/fniKxC8AAKSxmPgd3j/tkmXPU4G8Pn94F6JN2MTrvGOPbmvCJnqbGMoQm93fY++Pp0b8AgBAGouK37HH04YXvOrG6mGIHl4Y69gy6VNxOvJ8Z9b3YFZ3c/zQzB2fp0L8AgBAGouK34fM/E4+19ax2oVxG+vqmvE7MVssfpkgfgEAII3FxO/Dz/mdeK4J++XQvZ83Shy/m5now3OFLXtmmvgFAIA0FhG/aa72PPXc+qJTRVHEsgoxXGvmd7U6WPpchrp3wavuecnbi3C54NXTJn4BACCNRcTvrQMEbkX8AgBAGtnHLzxl4hcAANIQv5Ax8QsAAGmIX8iY+AUAgDTEL2RM/AIAQBriFzImfgEAIA3xCxkTvwAAkIb4hYyJXwAASEP8QsbELwAApHHf8duEWBRFLIoilmWITe/5NtZVuX++qmN7ar+j40F64hcAANLIPn6Lorhs37aOVTdQ2zrWTfe5Moam//q6ObLfsfHgSsQvAACksYj4vSiAm9Cfzd1Zz/j2wnfOfpPjwfWIXwAASGMR8dv9O18TQ1nGqm7724czuHP3m9wO1yN+AQAgjcXE7/D+PPvzenczvW0dq5MzuCP7Hd0O1yF+AQAgjUXF79jjWbrn+J6c+Z3Yb852SEz8AgBAGouK34svfrVaxbauYhmaePKc38n95m2HlMQvAACksZj4PTt8mzrW7fbxOnh35+tufrJo9GrPU/sdGw+uRPwCAEAai4jfy2Z81xeo2v0u73CWdrN0+fB3fqf2OzEeXIH4BQCANBYRv7cOELgV8QsAAGlkH7/wlIlfAABIQ/xCxsQvAACkIX4hY+IXAADSEL+QMfELAABpiF/ImPgFAIA0xC9kTPwCAEAa4hcyJn4BACAN8QsZE78AAJDGfcdvE2JRFLEoiliWITad59q62j1XFEUsQ9PZt4mhrGLdXj7+Y2pC2fssW1XdPmDcmd8BVyV+AQAgjezjtyiKy/Zt61h1g7StY92s77d1dRCrTSg7ATwj/I6Mfzspg1X85kD8AgBAGouI34sCuAmxrOrYDrcPo3WnjXW1jb0Z4Tc1/k2J33sjfgEAII1FxG/373xNDGV5uPS3CYMlzntN2L5+TvhNjL9abQK7HCyHXo8ZQhXLsopVVcbQDN7XNqZP7j+1xHrifXfGK4qif9zJ57pjtbGuJvbnqsQvAACksZj4Hd6fZx9t22Br62oyftu6OiN+x8c/2LcJnTE7sTyI8CZsY3jm/qPG3vd6v937a+tYld0Z7mPPbe4f+QcDrkv8AgBAGouK37HHs2xmN0OzOhpy58fvyPiDmdT9xbSGYzYxdGd1R2Z9j+8/ZuQ1I8u8d6F97LnuWJv39LALaHEJ8QsAAGksKn4vvvjVqjPjm+qc37PHPxxzG9v76F6dtf+hK8Vv5/1a9vy4xC8AAKSxmPg9O3ybuhNu6+XJ28BsQjm4WNX6+bOu9jw5/tTy5IkwrUIMVTdAz9j/wNxlz93ziI89d3i8XqhzdWPx+6Mf/Wj0v6dT21cr8QsAAIuI38tmfNdhN/47viO/83uwJLm/9Hg8RifGHyxdnl62PIzuc/cf+8zHL3hVjs4Mjz3XP+c3h98zfoqm4ncYumPbtlYr8QsAAIuI30c51iYCD+IQbuhY/G5jd/h4aLUSvwAAkH38wlM2dc5vN3iPhe+7d+IXAADevRO/kLVjF7yaE77v3olfAAB49078QtZOXe35VPi+eyd+AQDg3TvxC1nzU0cAAJCG+IWMiV8AAEhD/ELGxC8AAKQhfiFj4hcAANIQv5Ax8QsAAGmIX3gCUsbvmzdvAADgJh4yOTQ7foFlSxW/bm5ubm5ubm5ubre8XTV+AQAAYMnELwAAAHdP/AIAAHD3xC8AAAB3T/wCAABw98QvAAAAd0/8AgAAcPfELwAAAHdP/AIAAHD3xC8AAAB3T/wCAABw98QvAAAAd0/8AgAAcPfELwAAAHdP/AIAwBPw7Kf/nSuY891/9tlnXMG5/x0QvwAA8ATcOhLv1Zzv/rPPPotffvklCYlfAABg1DbWbh0t90L83pb4BQAARonftMTvbYlfAABglPhNS/zelvgFAABGid+0xO9tiV8AAGCU+E1L/N6W+AUAAEZlGb9vXsZnz57tvHj9eef5N/Hlsxfx9efbx5/H1y+exWcv39z+fX+Zc/xuvqft9/ridfz80Y49/M/sesQvAAAwKrv4ffMyPhuJ230A90PqzcthHN9WlvH7+ev44tmz+PJNf9vrN49w7JH/zK5J/AIAAKPyit916L4cRtnnr+OLZy/jm0FIff76RTYzvlv5xe/Ed/qoxC8AAHBjWcVvL3KHAbeNp01IvX75yEt358kufie/0703LzvLoXf/mND5nkeXn/eXUe/iejPLvN5++A8W1/684hcAABiVXfyOBm139vJNfDkMroxkGb+z/5GgG6mb73kbw29edmJ2uBR9bP/1PuvXiF8AAODGsovfuTO/b17HF48UVOfIMn5PzPz2LzA2+J5332/n8dSYvVnf7kyy+AUAAG4sq/g985zf/mxkHrKL31Pn/Pa+25F/ZPh8+9q58Tv2n4f4BQAAbiyv+P1yJGjXy2+nrvb8+esXWZ37m1/8frmb2R292vObzrnTn3dn04/E79FlzzOWQ1+R+AUAAEZlF7+dWDu4mNJESL15+di/Wzsty/j98svDJcm776tz4aoXL+PLOTO/u8enLnhl2TMAAJCJLON3wbKN3ydC/AIAAKPEb1ri97bELwAAMEr8piV+b0v8AgAAo8RvWuL3tsQvAAAwSvymJX5vS/wCAACjxG9a4ve2xC8AADBqG2ukNee7F7/iFwAAeCS3jsR7Nee7/+yzz7iCc/87IH4BAAC4e+IXAACAuyd+AQAAuHviFwAAgLsnfgEAALh74hcAAIC78vbt2/j27dveNvELAADAXRG/AAAAPEniFwAAgMXrzvaa+QUAAOAuiV8AAACePPELAADAIk3N9pr5BQAA4G6IXwAAAOgQvwAAANy9XfwCAADAPfv/Yk9DNBQ/qYEAAAAASUVORK5CYII=" width="640" /> </div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-51361376848106471272019-03-31T14:17:00.002+05:002019-05-13T10:58:20.901+05:00Боулдеринг возле озера Бафа<div dir="ltr" style="text-align: left;" trbidi="on">
<h1 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
</h1>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Как добраться? </h2>
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Добраться дешево можно на самолётах Pegasus Airlines (http://flypgs.com).<br />
Варианты:<br />
1. Долететь до Стамбула и арендовать машину.<br />
2. Можно до Бодрума, с пересадкой в Стамбуле. Затем на такси до деревни Капикири.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Где жить?</h2>
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_decoration_before">
Мы
жили в паталочках в Karia Pension
(http://www.kariapansiyon.com/index-en.html). Заранее списались с
владельцем Эмином, он же помог нам заказать такси, которое ждало нас в
аэропорту (200 TL). На самом деле, можно было просто в аэропорту такси
заказать и было бы чуть дешевле.</div>
<br />
<br />
<figure class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243390_bfb6f641136e59abf2" data-mode="0" data-paragraph-lines="[{"text":"Нижняя часть пансиона — ресторан, куда приезжают местные. Как раз тут приятнее всего.","decorations":{},"brs":[]}]" data-type="101" data-uuid="37-788691-91530"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false">
<img class="article_ed__img" contenteditable="false" src="https://sun1-1.userapi.com/c854028/v854028567/13327/JCGR-Gm83KI.jpg" style="visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left no_right">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
<div class="article_ed__figcaption_edit" contenteditable="true">
Нижняя часть пансиона — ресторан, куда приезжают местные. Как раз тут приятнее всего.</div>
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_decoration_before">
В
целом опрятно. Пансион разделен как бы на две части: нижняя для
ресторана и гостей из «дорогих» номеров и «верхняя» для тех, кто
экономный. На верхней веранде стоят столы и лежанка. Горячий душ будет
после обеда.<br />
Эмин разрешил нам пожить в домике за 50 TL/день. Вроде как это временная акция, потом будет недоступна. В домике примерно так:</div>
<br />
<br />
<figure class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243383_379f72dcb083262902" data-mode="0" data-paragraph-lines="[{"text":"В домике прохладно, спальник всё равно нужен","decorations":{},"brs":[]}]" data-type="101" data-uuid="38-788693-36392"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false">
<img class="article_ed__img" contenteditable="false" src="https://pp.userapi.com/c854028/v854028214/146d6/DEVM4Ue-lrU.jpg" style="visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left no_right">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
<div class="article_ed__figcaption_edit" contenteditable="true">
В домике прохладно, спальник всё равно нужен</div>
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Есть очень хорошие отапливаемые домики за 80€ в день. Включен завтрак и обед. Немцы очень довольны.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Чем питаться?</h2>
<div class="_article_paragraph article_paragraph article_decoration_first">
В местном магазине продают молоко, сыры, хлеб, печенюшки и немного сладостей.<br />
Овощи
и сыры привозят на грузовиках в деревню примерно раз в неделю. Дни не
запомнил. Встают либо возле мечети возле бюста Ататюрка, либо проезжают
по центральной улице с периодическими остановками.<br />
По вторникам в
Миласе проходит базар, на котором можно купить всё, что угодно.
Божественно вкусные лукум и пахлава обязательны к покупке! Ну и
напробоваться можно прям на рынке. </div>
<div class="_article_paragraph article_paragraph article_decoration_last article_decoration_before">
Из Капикири добраться автостопом до деревни Бафа, оттуда на автобусе до Миласа.</div>
<br />
<br />
<figure class="article__carousel _article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243387_5446844ede678045e8,4071775_456243384_3d8efd1b04f99e17c6" data-mode="0" data-paragraph-lines="[{"text":"Примерно 1% от того, что творится вокруг","decorations":{},"brs":[]}]" data-type="101" data-uuid="39-788695-44397"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false" style="height: 360px;">
<img class="article_ed__img" contenteditable="false" src="https://pp.userapi.com/c856024/v856024214/14896/JrbYytF33Vo.jpg" style="max-height: 360px; max-width: 720px; visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
<div class="article_ed__figcaption_edit" contenteditable="true">
Примерно 1% от того, что творится вокруг</div>
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first">
По субботам в Селемие овощной рынок. Добираться тем же способом.</div>
<div class="_article_paragraph article_paragraph article_decoration_last article_decoration_before">
Газовую горелку можно арендовать у Эмина (30 TL за баллон). 1 баллона хватало на неделю готовки на 6 человек.</div>
<br />
<br />
<figure class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243388_c64e54f336c03b82e6" data-mode="0" data-paragraph-lines="[{"text":"","decorations":{},"brs":[]}]" data-type="101" data-uuid="40-788696-71990"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false">
<img class="article_ed__img" contenteditable="false" src="https://pp.userapi.com/c854028/v854028214/146f5/OdT-iB5VAdM.jpg" style="visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left no_right">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Местные
рыбаки продают кефаль и угрей. Кефаль божественная по вкусу,
рекомендую! Угри дороже и не заходят. Мы просили приготовить у Эмина.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Где брать крэшпады?</h2>
<div class="_article_paragraph article_paragraph article_decoration_first">
Эмин
сдаёт крэшпады в аренду. Всего их 4. Самый лучший — зеленый Mammut из 3
секций. Два разваливающихся красных и крохотный синий. Синий нам дали
бесплатно. Остальные по 25 TL в день за каждый.</div>
<div class="_article_paragraph article_paragraph article_decoration_last">
Местные
скалолазы приезжают преимущественно со своими, но иногда тоже берут в
аренду. Надеяться, что точно сможешь арендовать у Эмина не стоит.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Сколько денег надо?</h2>
<div class="_article_paragraph article_paragraph article_decoration_first">
Здесь и далее расчеты будут на одного взрослого и ребенка туда-обратно.<br />
Билеты до мск ~11К ₽<br />
Билеты до Бодрума ~24К ₽<br />
Такси до Капикири ~700 ₽<br />
Снять жилье в мск, метро и электричка до DME (за транспорт Марата не платил<br />
~1300₽ + 55₽ * 2 + 130₽ * 2 = ~1700 ₽<br />
Проживание в кемпинге (за Марата не платил) 25 TL/день * 14 дней = 350 TL = 4200 ₽ .<br />
Аренда 1 крэшпада 25 TL/день * 14 дней = 350 TL = 4200 ₽<br />
Еда, вода, газ, разные мелочи ~12К ₽</div>
<div class="_article_paragraph article_paragraph article_decoration_last">
Деньги с карт Сбербанка можно снять без комиссий в банкоматах Denizbank. Курс как бы не очень.<br />
Деньги с карт Тинькофф можно снимать вроде как везде, главное завести мультивалютный счет.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Когда ехать?</h2>
<ol class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
<li>Скалолазный сезон начинается в сентябре-октябре и заканчивается в апреле. Летом уж слишком жарит солнце.</li>
<li>С сентября до февраль сезон фламинго. Тусуются близко к берегу.</li>
<li> С марта по май сезон пеликанов, но увидеть их можно только в бинокль. Близко не подлетают.</li>
</ol>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Где лазить?</h2>
<div class="_article_paragraph article_paragraph article_decoration_first">
В пансионе можно арендовать гайдбук.</div>
<div class="_article_paragraph article_paragraph">
Ближайшие секторы Ilk Bahce и Hannuman - отличные. Удобно добраться и много трасс разного уровня.<br />
Kale частично оказался затоплен. В некоторых местах страховка внизу не очень удобна.<br />
Agora - очень живописный сектор с видом на берег и озеро. Пробираться к нему придётся через чей-то участок (немного).<br />
Сектор Avrupa расположен в конце деревни, под один камень может течь вода.<br />
Su Deposu хорошо греется, камни далековаты друг от друга. Хорошие семерки внутри пещерок, туда солнце не проникает.<br />
В Zeus просто прогулялись, до южных камней так и не поняли, как добраться.</div>
<div class="_article_paragraph article_paragraph article_decoration_last">
Почти
всё, что вы будете лазить, будет причинять боль. БОЛЬ! Активники очень
злые, трение прекрасное. Первую неделю лично у меня кожа адаптировалась,
потом я уже лазил без надрывов и прокалываний.</div>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Что хорошо?</h2>
<ol class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
<li>Необъятное количество болдеров в пределах двадцати минут ходьбы.</li>
<li>Соседство с древними постройками. Любители истории будут кайфовать.</li>
<li>Свежий воздух, прекрасный вид с веранды на закат.</li>
<li>Офигенный загар обеспечен.</li>
<li>Владельцы пансиона всегда подскажут где, что и куда.</li>
</ol>
<h2 class="_article_paragraph article_paragraph article_decoration_first article_decoration_last">
Что не очень?</h2>
<ol class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_decoration_before">
<li>В
дождливый день с гор стекает много воды, размывает местные коровники и
всё дерьмо течет по главной улице. Kapikiri чуть более туристический, но
в соседней деревне Golyaka коровников больше.</li>
</ol>
<br />
<br />
<figure class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243389_2e2b2fc79067cdcd91" data-mode="0" data-paragraph-lines="[{"text":"Типичная картина в Golyaka","decorations":{},"brs":[]}]" data-type="101" data-uuid="41-788698-44491"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false">
<img class="article_ed__img" contenteditable="false" src="https://pp.userapi.com/c854028/v854028214/14730/Uz4laxHXACo.jpg" style="visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left no_right">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
<div class="article_ed__figcaption_edit" contenteditable="true">
Типичная картина в Golyaka</div>
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_decoration_before">
2.
Место под палатки находится там же, где гуляют куры. Петухи орут
практически в ухо. В 2 часа ночи примерно 2 минут, в 4 часа примерно 3
минуты. Начиная с 6 орут, не переставая, часа полтора. Спасут
наушники-затычки или беруши.</div>
<br />
<br />
<figure class="_article_paragraph article_paragraph article_decoration_first article_decoration_last article_ed__object_highlighted" contenteditable="true" data-media-id="4071775_456243391_fb41d0a3eab5f04633" data-mode="0" data-paragraph-lines="[{"text":"Ох, как нам хотелось куриного бульона, вы бы знали!","decorations":{},"brs":[]}]" data-type="101" data-uuid="42-788699-64921"><div class="article_ed__img_wrapper">
<div class="article_ed__img_inner">
<div class="article_ed__img_content article_object_el" contenteditable="false">
<img class="article_ed__img" contenteditable="false" src="https://pp.userapi.com/c854028/v854028567/13351/aH4kLsADm-I.jpg" style="visibility: visible;" />
</div>
<div class="article_ed__extra_controls" contenteditable="false">
<div class="article_ed__carousel_nav_btn no_left no_right">
</div>
<div class="article_ed__carousel_btns">
</div>
</div>
</div>
</div>
<figcaption class="article_ed__figcaption article_ed__figcaption_visible" contenteditable="false">
<div class="article_ed__figcaption_edit" contenteditable="true">
Ох, как нам хотелось куриного бульона, вы бы знали!</div>
</figcaption></figure><br />
<div class="_article_paragraph article_paragraph article_decoration_first">
3.
Развлечений в дни отдыха не сказать, чтобы очень много. Трекинг, на
лодке покататься, древний город поглядеть. На машине пожалуй,
поинтереснее будет.</div>
<div class="_article_paragraph article_paragraph article_decoration_last">
<br />
<h2 style="text-align: left;">
Видео</h2>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/tFE-06J70oY/0.jpg" src="https://www.youtube.com/embed/tFE-06J70oY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<h2 style="text-align: left;">
<br /></h2>
</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-61529065644582525292019-03-27T08:34:00.000+05:002019-05-13T10:58:20.921+05:00Включение режима Edit and continue в JetBrains Rider<div dir="ltr" style="text-align: left;" trbidi="on">
В JetBrains Rider добавили тестовую поддержку режима Edit and Continue. Та самая киллер-фича Visual Studio, которая не даёт полностью перейти на Rider.<br />
1. Скачиваем и устанавливаем свежую версию Rider EAP <br />
<br />
<a href="https://vk.com/away.php?to=https%3A%2F%2Fwww.jetbrains.com%2Frider%2Feap%2F&cc_key=">https://www.jetbrains.com/rider/eap/</a><br />
<br />
2. Запускаем Help — Find action — Registry …<br />
3. Ставим галочку у <b>rider.edit.and.continue</b> <br />
<br />
<img src="https://pp.userapi.com/c855520/v855520338/fca0/h0wu3F0owcQ.jpg" /> <br />
<br />
Если в Find action не удаётся найти «Registry ...», то заходим в Help — Custom VM Options, прописываем в конец файла <br />
<br />
<b>-Didea.is.internal=true</b><br />
<br />
После этого перезапустить Rider и попробовать включить режим снова. <br />
<br />
<img src="https://pp.userapi.com/c855520/v855520338/fc8d/uIJqJ8sLCqw.jpg" /> <br />
<br />
Пока что не поддерживается:<br />
<ul style="text-align: left;">
<li>Работа с async методами в portable PDB</li>
<li>WPF</li>
<li>ОС, отличные от Windows</li>
</ul>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-85910837510403658452018-10-21T10:32:00.000+05:002019-05-13T10:54:46.922+05:00Коротко о боулдеринге в Крыму<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
</h2>
<h2 style="text-align: left;">
Маты напрокат</h2>
Мат напрокат можно взять:<br />
1. У Евгения Екимова в Симферополе <a href="http://vk.com/e.a.ekimov">http://vk.com/e.a.ekimov</a><br />
2. В магазине «Геккон», что на автовокзале Ялты<br />
<h2 style="text-align: left;">
Малый маяк</h2>
<img height="478" src="https://pp.userapi.com/c851528/v851528085/287e6/0atdAdHwU-Y.jpg" width="640" /> <br />
<br />
Близко к дороге. Незачищенные вылазы. Камни могут расслаиваться и ломаться. Маршрутов очень мало, но на один раз приехать пойдёт.<br />
<br />
Рядом магазинов я не обнаружил, воды тоже.<br />
<br />
Как добраться: троллейбусом Симферополь-Ялта до остановки Малый Маяк. От остановки пройти в сторону леса, примерно через 50 метров завернуть в лесок, будет тропинка. Пройти ещё метров 5. Если видно кучу разного мусора и говнобумажки - вы на месте. Дальше по ориентироваться по гайду.<br />
<h2 style="text-align: left;">
Ореанда. Верхушка горы Крестовой.</h2>
<img src="https://pp.userapi.com/c851528/v851528085/287f8/TIlD9--Y6RQ.jpg" /> <br />
<br />
<br />
Очень живописное место. Но болдеры здесь со злыми и очень болючими активниками. Либо очень широкие щипки, как раз качать силу жамканья. Категории каждый раз заставляют сомневаться в том, действительно ли ты сможешь её лезть.<br />
<br />
Воды поблизости не обнаружил.<br />
<br />
Как добраться: с автовокзала Ялты сесть на автобус 115 (уходит каждые полчаса) или с остановки на 27. Ехать до остановки Ореанда. Если смотреть на остановку в сторону моря, зайти слева и идти по тропинке мимо винзавода.<br />
<h2 style="text-align: left;">
Уч-Кош</h2>
<img src="https://pp.userapi.com/c851528/v851528085/287c9/tMCTvM-9ECk.jpg" /> <br />
<br />
Силовые боулдеры и их очень много. Находится в ущелье Уч-Кош. Часть камней расположены вдоль склона. Остальные - внизу, в русле пересохшей реки, есть удобные площадки для укладки матов. Двигаться к разным секторам удобно ориентируясь на здоровенную трубу.<br />
<br />
Есть два ключа, где можно набрать воды.<br />
<br />
Как добраться: с автовокзала Ялты сесть на автобус 44 и ехать до конечной (Долоссы). Приезжает на автовокзал в 40-50 минут почти каждого часа. Потом лучше включить GPS и идти по координатам в AllClimb/27crags. Или найти тропинку в лесок и идти в сторону смотровой площадки в ущелье, оттуда вниз.<br />
<img src="https://pp.userapi.com/c849128/v849128701/a1261/unu7duebQxA.jpg" /> <br />
<br />
<h2>
Петровские скалы</h2>
Расположены в Симферополе.<br />
<img src="https://pp.userapi.com/c851528/v851528085/287c0/iHmUY2f7AiE.jpg" /> <br />
<br />
Как добраться: от Центрального автовокзала Симферополя по ул. Киевской двигаться на юг в район круговой авторазвязки. От авторазвязки по ул. Беспалова, пройдя пересечения с ул. Курортной и Алуштинской свернуть в вправо и идти по тропе, пересекающей кладбище. Да, я шел прямо по кладбищу. Если после кладбища увидели мусор, говнобумажки и ночлёжки бомжей — вы идёте в правильном направлении.<br />
<br />
<h2 style="text-align: left;">
Видео </h2>
Короткая зарисовка<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/jrISUaN-iFY/0.jpg" src="https://www.youtube.com/embed/jrISUaN-iFY?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-87379271356252213192018-03-23T23:11:00.000+05:002018-03-23T23:11:04.644+05:00Как я дома скалодром строил<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
<span style="font-family: inherit;">Начать стоит с того, что я ни разу ничего не строил. Вот вообще. Что действительно у меня хорошо получалось (когда-то давно), так это делать чертежи и трехмерные детали в Компас-3D. Но это не помогло.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Отчим был токарем 5 разряда. Он мог разрисовать и объяснить чертёж любой сложности. Но строитель из него был тоже хреновый.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Ну так вот. Задумал я всё это дело, а как начать и что делать — не знал. Начать гуглить. Везде пишут: «Да тут всё просто». Хуяк-хуяк и в продакшн. Но лично мне было непонятно, как делать хуяк-хуяк.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Первой решил отработать строительство вертикальной стенки. Оказалось действительно несложно. Покупаешь фанеру и сверло 11-12 мм, сверлишь дырки с лицевой стороны, забиваешь усовые гайки М10 с обратной стороны. Прикручиваешь брус 40х40 к стене, а к брусу — готовую фанеру. Из сложностей тут только притащить саму фанеру и найти место для её сверления и забивания гаек.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">У меня был шуруповерт, который поддерживает свёрла до 10мм. Это значит, что мне пришлось подобрать сверло, которое в него залезает. Это оказалось сверло 10.5 мм и вытащить его потом оказалось проблематично. У шуруповёрта быстро садился аккумулятор. Насверлю 10-15 дырок, а потом жду час-два для следующей партии. Аккумулятора в комплекте два, так что чутка повезло. Каждое отверствие приходилось рассверливать.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">На следующем этапе тоже были сложности. Рассверленные отверстия иногда были недостаточно рассверлены и гайки забивались туго.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">После того, как я собрал вертикальную стенку и опробовал её, я понял, что этого недостаточно. Совсем. Обязательно нужно сделать нависание.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Как его делать — тоже неизвестно. Гугл вывел меня на то, что для нависания нужно построить каркас, а уже к нему крепить фанеру. Причем везде деревянные опоры крепились к стенам и потолку, которыми я пользоваться не мог, так как на картинке. Пришлось придумывать свои способы монтажа. Возможно, что не самые лучшие.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Пока я болел и лежал в постели, смотрел «Игру престолов». И знаете, на что я смотрел? На то, как сделаны дома, как устроены потолки и лестницы. Я пытался понять вообще любые конструкции из дерева, даже самые элементарные, вроде перил. Дурацкое ощущение, что ты — беспомощный котёнок.</span></div>
</div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">Когда начал собирать каркас, я косячил как умел. Получалось просто отлично.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<ol style="text-align: left;">
<li><span style="font-family: inherit;">Гуглить приходилось всегда по два раза. Первый раз я, видимо, неправильно набирал запрос и соответственно не получал нужного ответа. Разочаровавшись в гугле, я шёл пробовать сам. Понимал, что делаю что-то не так, и возвращался обратно, чтобы переформулировать запрос и почитать снова. Второй раз всегда находил нужные ответы.</span></li>
<li><span style="font-family: inherit;">Недооценил другие магазины со стройматериалами. Почему-то в голове отложилось, что Сатурн дико дорогой и даже не стал смотреть в его сторону. Доски вообще надо было купить сразу 4х-метровые. Вместо этого я поехал в Леруа и купил 3х-метровые, а потом ломал голову как их нарастить.</span></li>
<li><span style="font-family: inherit;">Безумно мечтал о соединениях досок. У меня в голове почему-то отложилось, что сращивают металлической пластиной. В моём идеальном мире это сработало бы, но как только я начал присверливать пластину к доске, я понял, что придется делать по-другому.</span></li>
<li><span style="font-family: inherit;">Доски нихрена не ровные. Я купил несколько досок в Леруа, привёз домой, а некоторые потом скрутило винтом. Что потом делать с этим я не знал, ибо гугл отвечал: «Крутись теперь, как умеешь».</span></li>
<li><span style="font-family: inherit;">Не нужно строить, когда болеешь. На январских каникулах как раз планировал закончить основные работы по каркасу и фанере. Заболел в конце декабря и болел почти 3 недели подряд. Болезнь всё испортила. Голова у меня работала совсем плохо. Из-за этого каркас был установлен слегка криво. Не влияет на функциональность, но просто сам факт.</span></li>
<li><span style="font-family: inherit;">Надо было сразу продумать полиспаст. Он сэкономил просто кучу сил и времени.</span></li>
</ol>
</div>
</div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">Чтобы не ломать мозг насчет того, как делать нависание, я решил просто сделать мунборд. Есть готовые размеры, угол наклона и как сверлить. Распечатываешь PDF и делаешь.</span></div>
<div>
<span style="font-family: inherit;">Как потом оказалось, для его строительства нужно всего 4 фанерных листа из Сатурна размерами 2440х1200. Останется только купить усовых гаек.</span></div>
<div>
<span style="font-family: inherit;">Ссылка на руководство:</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">https://moonboard.com/Content/Information/How-to-build-a-MoonBoard.pdf</span></div>
</div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">Что ещё из сложностей?</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<ol style="text-align: left;">
<li><span style="font-family: inherit;">Ничего нет в одном магазине. Для покупки всех частей скалодрома пришлось объехать магазины во всех уголках города.</span></li>
<li><span style="font-family: inherit;">Усовые гайки продаются в «Левше». Но только по 100 штук и то меньше. В общем, я ездил после работы и забирал сколько было в наличии. За весь период закупил примерно 700 штук.</span></li>
<li><span style="font-family: inherit;">Продумай освещение. В некоторых частях может быть критична прокладка проводов.</span></li>
<li><span style="font-family: inherit;">У меня не сошёлся стык между нависанием и вертикальной стеной. Да, я сам виноват из-за того, что недосмотрел. Но в итоге подумал: а) это можно использовать б) на скалах нет ничего идеального.</span></li>
</ol>
</div>
<div>
<span style="font-family: inherit;">Советы:</span></div>
<div>
<ol style="text-align: left;">
<li><span style="font-family: inherit;">Организуй полиспаст! С ним можно строить и одному.</span></li>
<li><span style="font-family: inherit;">Лучше средне, но сейчас, чем идеально, но никогда.</span></li>
<li><span style="font-family: inherit;">Ищи всё, что возможно в Интернет-магазинах. Поздновато решился купить в Сатурне. Мне сразу же после заказа перезвонила оператор и сказала, что всё, чего я хочу, в одном магазине нет. И предложила поехать именно в тот, где было почти всё. Кое-какие доски заменили на другие. В итоге я просто приехал и забрал. Ехать правда пришлось в Черниковку. Видимо, магазины в южной части города чаще подвергаются набегам строителей.</span></li>
<li><span style="font-family: inherit;">Запланируй сколько и чего нужно купить, чтобы не ездить по два, а то и по три раза.</span></li>
<li><span style="font-family: inherit;">Продумывай стыки и фаски.</span></li>
<li><span style="font-family: inherit;">Крепёж дешевле всего в офлайновых магазинах. «Мастер» в Дёме и «Мастер» возле Госцирка. Это совершенно разные магазины, с разным ассортиментом. Но в обоих цены ниже, чем в крупных магазинах.</span></li>
<li><span style="font-family: inherit;">Убирай за собой сразу, опилки расползаются сразу же.</span></li>
</ol>
</div>
</div>
<div>
<div>
<span style="font-family: inherit;">Сколько ушло денег? Когда я начинал, я рассчитывал на 50 килорублей. Сейчас ушло чуть больше 40, но это далеко не конец, потому что зацепок мало, а постоянно перекручивать — долго и нудно. А ещё хочется черный сет для мунборда :) А ещё нужны ещё маты и освещение… А ещё…</span></div>
</div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<div>
<span style="font-family: inherit;">По итогам:</span></div>
<div>
<ol style="text-align: left;">
<li><span style="font-family: inherit;">Построил? Построил! Фантазия перестала быть фантазией.</span></li>
<li><span style="font-family: inherit;">Приобрёл практический опыт, пусть небольшого, но строительства. Приоткрыло дверь в новую интересную инженерную область.</span></li>
<li><span style="font-family: inherit;">Можно лазить-лазить-лазить.</span></li>
<li><span style="font-family: inherit;">Сын доволен, что можно лазить-лазить-лазить в любое время.</span></li>
<li><span style="font-family: inherit;">Я приобретаю какой-то опыт накрутки трасс. К примеру, на нависании действительно нужно зацепы крупнее, чем на вертикали. Глупо, но опытным путем это осозналось быстрее.</span></li>
</ol>
</div>
<div>
<span style="font-family: inherit;">Все расходы занёс в табличку:</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">https://docs.google.com/spreadsheets/d/1KDuA04XdHauIKfL9FU0aXZeuUekcG98TLp5U2soznSc/edit?usp=sharing</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Хорошие статьи по теме:</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">http://blog.ratibus.net/posts/i-built-a-moonboard-in-my-garage</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">http://eveningsends.com/battle-of-the-boards-moon-hang-and-campus-a-home-gym-review/</span></div>
</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-64220501026107564562017-11-05T22:03:00.001+05:002019-05-13T10:09:49.967+05:00Шутки и веселые картинки про скалолазов и альпинистов<div dir="ltr" style="text-align: left;" trbidi="on">
Решил собирать воедино, завёл группу во ВКонтакте <a href="https://vk.com/funclimbing">https://vk.com/funclimbing</a>. Уже 50+ подписчиков. Лично для меня - результат :)</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-6131379049878400002016-07-12T15:09:00.000+05:002017-04-19T11:21:39.251+05:00Configuring Jenkins for C# projects<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
Steps in my build configuration</h2>
<h3 style="text-align: left;">
Restore nuget packages</h3>
</div>
<pre>chcp 1251
.nuget\nuget.exe restore Swag.sln</pre>
<pre></pre>
<h3 style="text-align: left;">
Build solution</h3>
<pre>chcp 1251
cmd.exe /C " "C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" </pre>
<pre> /t:Build /p:Configuration=Release "/p:Platform=Any CPU" </pre>
<pre> SOLUTION.sln " && exit %%ERRORLEVEL%%</pre>
<pre></pre>
<h3 style="text-align: left;">
Run NUnit tests and export results in NUnit2 format</h3>
<pre></pre>
<pre>chcp 1251
packages\NUnit.ConsoleRunner.3.2.1\tools\nunit3-console.exe </pre>
<pre> bin\Release\TESTS.dll --result=TestResult.xml;format=nunit2</pre>
<pre><span style="color: #444444;">
</span></pre>
<h3 style="text-align: left;">
Add post-build action<b style="color: #444444;">Publish NUnit test result report</b></h3>
<pre>TestResult.xml
</pre>
<div>
<br />
<br />
You need to add <b>chcp1251</b> for Jenkins log file encoding. Replace with your own locale</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-57666293642752604222016-01-29T11:04:00.004+05:002016-01-29T11:06:18.259+05:00Книги за 2015<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: "verdana" , sans-serif;">В 2015 году выдалось прочитать не так уж много книг. Сказывается, что слушать приходится только в машине. И то не всегда, т.к. трудно порой сосредоточиться.</span><br />
<span style="font-family: "verdana" , sans-serif;"><br /></span>
<div style="text-align: center;">
<span style="font-family: "verdana" , sans-serif;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1BMEs2Rb5dfUMfh6HLn1uw0bLKEG_Fg2E1N5GMiSRrc2JkESWHLakx7sm4oU1VedVc1NWtcExapAwDBkPlR-b5B1_p_fs-Db_nLWt7aQCmvLctP3uTlLifpBmdkhEt7HD1qyBYZM_OjA/s1600/1454069140_book.png" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1BMEs2Rb5dfUMfh6HLn1uw0bLKEG_Fg2E1N5GMiSRrc2JkESWHLakx7sm4oU1VedVc1NWtcExapAwDBkPlR-b5B1_p_fs-Db_nLWt7aQCmvLctP3uTlLifpBmdkhEt7HD1qyBYZM_OjA/s400/1454069140_book.png" /></a></span></div>
<span style="font-family: "verdana" , sans-serif;"><br /></span>
Итак мой список (довольно короткий):<br />
<br />
<ol style="text-align: left;">
<li><b>Энди Уир</b> "<i>Марсианин</i>" - очень классная книга, просто башку порвало. Не то, чтобы в корне поменяло какое-то мое мышление, но очень и очень увлекательно. Я был очень удивлен детальностью всех объяснений и что для чего нужно. А позже я узнал, что автор - программист и для меня всё встало на свои места. Да, такие технологические мелочи гуманитарий редко сможет прописать. В общем, кто не читал - читайте. Того стоит</li>
<li><b>Рэй Бредберри</b> "<i>451 градус по Фаренгейту</i>" - с антиутопиями я уже свыкся. С сюжетом и повествованием всё в порядке. Для ознакомления - хорошая книга.</li>
<li><b>Борис Акунин</b> "<i>История Российского государства. Том I. От истоков до монгольского нашествия. Часть Европы</i>"</li>
<li><b>Борис Акунин</b> "<i>История Российского государства. Том II. Ордынский период. Часть Азии</i>"</li>
<li><b>Борис Акунин</b> "<i>История Российского государства. Том III. От Ивана III до Бориса Годунова. Между Азией и Европой</i>" - три замечательных книги. Все, что мне нравится в книгах Акунина - детальная подробность, ненавязчивость и много собственных рассуждений, подвергая сомнению какие-то исторические факты, отражено здесь. </li>
<li><b>Борис Акунин</b> "Другой путь" - хорошие рассуждения о настоящей любви. Мнение автора о настоящей любви и всем, что с ней связано. Есть о чем подумать после прочтения.</li>
<li><b>Мартин Фаулер</b> "Архитектура корпоративных программных приложений" - если честно, я мало чего понял. То ли книгу надо читать в оригинале, то ли в печатном варианте разбираться.</li>
</ol>
<div>
<br /></div>
<div>
На остальные книги по программированию в этом году времени не осталось. А те, что мог прочитать, не имели для меня профессионального интереса.</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-48029524001665868962015-11-09T13:30:00.001+05:002015-11-09T13:30:47.327+05:00Youtube comment reload page fix (Chrome)<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;"><br /></span><span style="font-family: "verdana" , sans-serif;">1. Open this link <a href="chrome://net-internals/#hsts">chrome://net-internals/#hsts</a> and add <b>youtube.com</b> domain into HSTS. This will force chrome to use HTTPS for youtube.com.</span><br />
<span style="font-family: "verdana" , sans-serif;">2. Reload your youtube pages.</span><br />
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpjjMqeFoPq5lSZQD_fkgEZHJOTOfTVmbnvxMV1iQOUXyvcmzi84bVHjjJJy_TPxtbLowH1k04HaRp8Nj-Xj_N6Rvamla0wTVgrdEzgihQQlvS-MmPQyKMF3G-DDCzDl3LTfvcGh4K3Rg/s1600/2015-11-09_13-29-16.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpjjMqeFoPq5lSZQD_fkgEZHJOTOfTVmbnvxMV1iQOUXyvcmzi84bVHjjJJy_TPxtbLowH1k04HaRp8Nj-Xj_N6Rvamla0wTVgrdEzgihQQlvS-MmPQyKMF3G-DDCzDl3LTfvcGh4K3Rg/s640/2015-11-09_13-29-16.png" width="640" /></a></div>
<br />
<br /></div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-13196765982482042302015-03-02T09:10:00.000+05:002015-10-21T08:28:39.725+05:00Where download Qt Visual Studio add-in?<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">I have not found this link on official pages.<br />You can get add-in here: <a href="http://download.qt-project.org/official_releases/vsaddin/">http://download.qt-project.org/official_releases/vsaddin/</a></span></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-39982834521443639642015-02-26T14:05:00.003+05:002015-02-26T14:06:39.320+05:00Исправление ошибки при использовании P/Invoke<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Чтобы исправить вот эту ошибку:</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">System.BadImageFormatException: Была сделана попытка загрузить программу, имеющую неверный формат.</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">Нужно в свойствах проекта Visual Studio установить платформу сборки x86.</span><span style="font-family: Verdana, sans-serif;">Properties - Build - Platform Target - x86</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil8vdT38lgGct6usMat2ks0NZdAND_VULxRVJPPGbLDrrqFtodjtZjxUPvWbFG8s-FzkZZLfmL47lvrteYF-_XNC1NxHb6Taw8WNi1EqUVgS9veujvbcdzrcs4FxirXaVRsD4G_RJ9hNg/s1600/7stb5Hs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil8vdT38lgGct6usMat2ks0NZdAND_VULxRVJPPGbLDrrqFtodjtZjxUPvWbFG8s-FzkZZLfmL47lvrteYF-_XNC1NxHb6Taw8WNi1EqUVgS9veujvbcdzrcs4FxirXaVRsD4G_RJ9hNg/s1600/7stb5Hs.png" height="199" width="640" /></a></div>
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-4564305962398172842015-02-26T11:35:00.003+05:002019-05-13T11:08:26.693+05:00#slack for windows with desktop notifications<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Verdana, sans-serif;">Hello there!</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">There are no official desktop Slack version, so I started to search non-official clients. I have found this project <a href="https://github.com/rfgamaral/SlackUI">SlackUI</a>, but that version does not support desktop notifications :(</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<span style="font-family: Verdana, sans-serif;">So, I have been working on new Slack UI with desktop notifications. Here is result of my work (be careful, 25 Mb GIF):</span><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="https://lh4.googleusercontent.com/GdVxADmQTy3BRVpF7X2Ml8SoCmvxjcg2tOkcLEMERnB5ZNba-hXwEQ3p4ym3lc7xkYA7dlEFyZk=w1896-h875"><span style="font-family: Verdana, sans-serif;">https://lh4.googleusercontent.com/GdVxADmQTy3BRVpF7X2Ml8SoCmvxjcg2tOkcLEMERnB5ZNba-hXwEQ3p4ym3lc7xkYA7dlEFyZk=w1896-h875</span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<a href="http://2.bp.blogspot.com/brHisHN8G57uUidsM6XhcMUs84BYEBFknLE6hcp9Z39vCzcHpo7ej6W0evWEYwOIp8JoCw=s400" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><span style="font-family: Verdana, sans-serif;"><img border="0" src="http://2.bp.blogspot.com/brHisHN8G57uUidsM6XhcMUs84BYEBFknLE6hcp9Z39vCzcHpo7ej6W0evWEYwOIp8JoCw=s400" /></span></a><br />
<span style="font-family: Verdana, sans-serif;"><br /></span>
<br />
<h4 style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">What works?</span></h4>
<div>
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Drag'n'Drop</span></li>
<li><span style="font-family: Verdana, sans-serif;">Notifications</span></li>
</ul>
</div>
<h4 style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">What doesn't work?</span></h4>
<ul style="text-align: left;">
<li><span style="font-family: Verdana, sans-serif;">Opening links in new window</span></li>
<li><span style="font-family: Verdana, sans-serif;">Hiding to tray</span></li>
</ul>
<div>
<h4 style="text-align: left;">
<span style="font-family: Verdana, sans-serif;">Where can I download?</span></h4>
</div>
<div>
<span style="font-family: Verdana, sans-serif;"><a href="https://dl.dropboxusercontent.com/u/14792418/slacker_0.1.zip">https://dl.dropboxusercontent.com/u/14792418/slacker_0.1.zip</a></span></div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-29036225693363080932015-02-19T08:49:00.002+05:002019-05-13T11:02:58.912+05:00How to set Omnibus Gitlab unicorn workers count<div dir="ltr" style="text-align: left;" trbidi="on">
Stop your gitlab instance<br />
<div>
<br /></div>
<div>
<pre><span style="color: #0b5394;">sudo gitlab-ctl stop</span></pre>
<div>
<br /></div>
<div>
Edit file <b></b><br />
<pre><span style="color: #0b5394;">/etc/gitlab/gitlab.rb</span></pre>
</div>
<div>
<b><br /></b>
<br />
Uncomment and set unicorn workers count</div>
<div>
<b><br /></b></div>
<div>
<pre><span style="color: #0b5394;">#!/bin/sh
##################
# GitLab Unicorn #
##################
## Tweak unicorn settings.
# unicorn['worker_timeout'] = 60
</span><span style="color: #cc0000;">unicorn['worker_processes'] = 1
</span>
</pre>
</div>
</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-2600001317714647622015-02-19T08:46:00.005+05:002015-02-19T08:51:38.821+05:00How to set Omnibus #Gitlab #Sidekiq workers count<div dir="ltr" style="text-align: left;" trbidi="on">
Stop your gitlab instance<br />
<div>
<br /></div>
<div>
<pre><span style="color: #0b5394;">sudo gitlab-ctl stop</span></pre>
<div>
<br /></div>
<div>
Edit file <b></b><br />
<pre><span style="color: #0b5394;">/opt/gitlab/sv/sidekiq/run</span></pre>
</div>
<div>
<b><br /></b>
<br />
Set your workers count</div>
<div>
<b><br /></b></div>
<div>
<pre><span style="color: #0b5394;">#!/bin/sh
cd /var/opt/gitlab/gitlab-rails/working
exec 2>&1
exec chpst -e /opt/gitlab/etc/gitlab-rails/env -P \
-U git -u git \
/opt/gitlab/embedded/bin/bundle exec sidekiq \
</span><span style="color: #cc0000;"> # ADD THE LINE BELOW AND SET NUMBER OF WORKERS
-c 3 \ # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< SET NUMBER OF WORKERS HERE
</span><span style="color: #0b5394;"> -q post_receive \
-q mailer \
-q system_hook \
-q project_web_hook \
-q gitlab_shell \
-q common \
-q default \
-e production \
-r /opt/gitlab/embedded/service/gitlab-rails \
-t 4</span>
</pre>
</div>
</div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-47239262182822701182014-12-25T15:27:00.004+05:002014-12-25T15:34:45.023+05:00WPF set application-wide Culture, NumberFormat, Decimal separator<div dir="ltr" style="text-align: left;" trbidi="on">
WPF by default uses built-in culture settings that come with .Net Framework libraries.<br />
<br />
For example, for ru-RU culture <i>double</i> must look like 123456,789, for en-US like 123456.789, so if you don't want your users to be angry, you must set your application culture at startup. However, our users want to see <i>doubles </i>like in en-US culture, e.g. 123456.789<br />
<br />
There are two ways to do this:<br />
<br />
1. Modify current culture settings. And that is awful<br />
a. Not all controls support such behaviour<br />
b. This code breaks all your hopes:<br />
<pre class="line-pre" style="background-color: white; box-sizing: border-box; width: 748px;"><span style="font-family: Consolas, Liberation Mono, Menlo, Courier, monospace;"><span style="font-size: 12px; line-height: 16.7999992370605px;"><span style="color: #333333;"> </span><span style="color: #674ea7;">XmlLanguage</span><span style="color: #333333;"> xmlLanguage = </span><span style="color: #674ea7;">XmlLanguage</span><span style="color: #333333;">.GetLanguage(</span><span style="color: #e06666;">"ru-RU"</span><span style="color: #333333;">);
</span><span style="color: #674ea7;">FrameworkElement</span><span style="color: #333333;">.LanguageProperty.OverrideMetadata(typeof (</span><span style="color: #666666;">FrameworkElement</span><span style="color: #333333;">),
new </span><span style="color: #674ea7;">FrameworkPropertyMetadata</span><span style="color: #333333;">(xmlLanguage)); </span></span></span></pre>
<pre class="line-pre" style="background-color: white; box-sizing: border-box; width: 748px;"><span style="font-family: Consolas, Liberation Mono, Menlo, Courier, monospace;"><span style="font-size: 12px; line-height: 16.7999992370605px;"><span style="color: #333333;">
</span></span></span></pre>
<pre class="line-pre" style="background-color: white; box-sizing: border-box; width: 748px;"><span style="line-height: 16.7999992370605px;"><span style="font-family: inherit;"><b><span style="color: #333333; font-size: 12px;"> </span><span style="color: #990000;">XmlLanguage ignore all modifications to Thread.CurrentThread.CurrentCulture</span></b></span></span></pre>
<br />
2. Register your own culture (<b>works if your users can get administator rights</b>).<br />
<br />
<br />
<pre class="brush: csharp"> private const string CultureName = "ru-MIT";
private const string cultureEnglishName = "ru-MIT";
private const string cultureNativeName = "Русский (Мит)";
private static void Main(string[] args)
{
CreateAndRegisterOwnCulture();
}
private static void CreateAndRegisterOwnCulture()
{
var ownCulture = new CultureAndRegionInfoBuilder(CultureName, CultureAndRegionModifiers.None);
var parentCulture = new CultureInfo("ru-RU");
var region = new RegionInfo("RU");
ownCulture.LoadDataFromCultureInfo(parentCulture);
ownCulture.LoadDataFromRegionInfo(region);
ownCulture.CultureEnglishName = cultureEnglishName;
ownCulture.CultureNativeName = cultureNativeName;
var nfi = (NumberFormatInfo) parentCulture.NumberFormat.Clone();
nfi.NumberDecimalSeparator = ".";
nfi.NumberGroupSeparator = " ";
nfi.CurrencyDecimalSeparator = ".";
nfi.CurrencyGroupSeparator = " ";
ownCulture.NumberFormat = nfi;
ownCulture.Parent = parentCulture;
if (SystemHasMitCulture())
{
Console.WriteLine(">>> System already has own culture :)");
return;
}
// Admin rights are needed here
// CultureAndRegionInfoBuilder.Unregister(CultureName);
try
{
// Admin rights are needed here
Console.WriteLine(">>> Trying to set own culture");
ownCulture.Register();
Console.WriteLine(">>> Own culture set successfully");
}
catch (UnauthorizedAccessException)
{
Console.WriteLine(">>> Set own culture failed :(");
}
catch (InvalidOperationException)
{
Console.WriteLine(">>> Culture is already registered :)");
}
}
private static bool SystemHasMitCulture()
{
return CultureInfo.GetCultures(CultureTypes.UserCustomCulture).Any(ci => (ci.Name == CultureName));
}
</pre>
<br />
The same code on Github Gist: https://gist.github.com/Snegovikufa/f051959dd105b7e56405</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-29669001984526400752014-12-25T15:01:00.001+05:002019-05-13T11:02:08.368+05:00Python setup.py build vcvarsall.bat error<div dir="ltr" style="text-align: left;" trbidi="on">
If you get this error when running python setup.py build<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">error: Unable to find vcvarsall.bat</span><br />
<div>
<br /></div>
<div>
You need:</div>
<div>
1. Install Microsoft Visual C++ Compiler for Python 2.7</div>
<div>
http://www.microsoft.com/en-us/download/details.aspx?id=44266</div>
<div>
2. Upgrade setuptools</div>
<div>
3. Try again</div>
<div>
<br /></div>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-63096639296277928262014-11-11T08:38:00.002+05:002014-11-11T08:38:35.527+05:00Выбор графика для отображения данных<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Georgia, Times New Roman, serif;">Иногда возникает проблема выбора каким же графиком отобразить данные. Надеюсь вот эти картинки смогут помочь.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYv4ebjn5zo66EGRQFrP6oQKET-b9PYg06utCBhTRrrewrkKhAD0hIo2q6kBe6nNHnkbhRQACtPHArLiQJXhlzalZjMEmOuSozfwEqsXEFjA-G-bRwRswVI0mScmTNQNFlRjrktBKBSuE/s1600/4c01a2ef33ea443d9db66131c51703dd.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYv4ebjn5zo66EGRQFrP6oQKET-b9PYg06utCBhTRrrewrkKhAD0hIo2q6kBe6nNHnkbhRQACtPHArLiQJXhlzalZjMEmOuSozfwEqsXEFjA-G-bRwRswVI0mScmTNQNFlRjrktBKBSuE/s640/4c01a2ef33ea443d9db66131c51703dd.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEwvWTyu4frLw94E2KAOP1sCWQB86HMnmM4yGXUVc9oW857EOEa6psr9Vtp1XQy5fprdmDkET8BGVbikHd_D-D7i5J0bjJhZn5XM5U4foZ3mW-fk8LFu9Z-gJoAuTKAukJ8Y4-fpuuzaE/s1600/data-chart-type.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEwvWTyu4frLw94E2KAOP1sCWQB86HMnmM4yGXUVc9oW857EOEa6psr9Vtp1XQy5fprdmDkET8BGVbikHd_D-D7i5J0bjJhZn5XM5U4foZ3mW-fk8LFu9Z-gJoAuTKAukJ8Y4-fpuuzaE/s640/data-chart-type.png" width="640" /></a></div>
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-14040539710497509562014-11-11T08:15:00.002+05:002014-11-11T08:15:28.734+05:00SSH / SCP ignores sshconfig in command line<div dir="ltr" style="text-align: left;" trbidi="on">
If you setup git and then try to use ssh from SYSTEM account, then you will get authentication errors. To solve that issues you need to add <b>HOME</b> <b>system </b>environment variable and reboot your machine.<br />
<br />
So your system PATH will look like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/Nbw9Gwl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://i.imgur.com/Nbw9Gwl.png" height="372" width="640" /></a></div>
<br />
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-62569742143201126092014-10-15T16:37:00.001+06:002014-10-15T16:40:17.651+06:00Telerik RadComboBox bind to Enum<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<span style="color: #444444; font-family: Georgia, Times New Roman, serif; font-weight: normal;">Short posts are nice, yeah!</span></h2>
<div>
<span style="color: #444444; font-family: Georgia, Times New Roman, serif;">The result you want to see:</span></div>
<div>
<span style="color: #444444; font-family: Georgia, Times New Roman, serif;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<span style="color: #444444; font-family: Georgia, Times New Roman, serif;"></span><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvsHqucIpAhFGN_T74zYTWtWyzOVRh4neRxskxsOm-uSf-Lqn_BOU-TMQ0dbzwbeQviyV93WAgtq40IUDnjjtCZ241XcgAE8OsnpDeyP0O1j5ZaePJRvor6cVpzrhTt7K6zv-FcxGxH4/s1600/Result.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhvsHqucIpAhFGN_T74zYTWtWyzOVRh4neRxskxsOm-uSf-Lqn_BOU-TMQ0dbzwbeQviyV93WAgtq40IUDnjjtCZ241XcgAE8OsnpDeyP0O1j5ZaePJRvor6cVpzrhTt7K6zv-FcxGxH4/s1600/Result.png" /></a></div>
<span style="color: #444444; font-family: Georgia, Times New Roman, serif;">
</span></div>
<br />
<div style="text-align: left;">
<span style="color: #444444; font-family: Georgia, Times New Roman, serif;"><b>TestCombobox.xaml</b></span></div>
<pre><pre style="background: rgb(255, 255, 255); font-family: Consolas, 'Lucida Console', 'DejaVu Sans Mono', Monaco, 'Courier New', monospace; line-height: 1.5em; padding: 4px;"><pre style="color: #333333; line-height: 16.25px;"><pre><span style="color: navy;"><Window</span> <span style="color: teal;">x:Class=</span><span style="color: #bb8844;">"TelerikWpfApp1.TestComboBox"</span>
<span style="color: teal;">xmlns=</span><span style="color: #bb8844;">"http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span>
<span style="color: teal;">xmlns:x=</span><span style="color: #bb8844;">"http://schemas.microsoft.com/winfx/2006/xaml"</span>
<span style="color: teal;">xmlns:telerik=</span><span style="color: #bb8844;">"http://schemas.telerik.com/2008/xaml/presentation"</span>
<span style="color: teal;">xmlns:telerikWpfApp1=</span><span style="color: #bb8844;">"clr-namespace:TelerikWpfApp1"</span>
<span style="color: teal;">Title=</span><span style="color: #bb8844;">"TestComboBox"</span> <span style="color: teal;">Height=</span><span style="color: #bb8844;">"300"</span> <span style="color: teal;">Width=</span><span style="color: #bb8844;">"300"</span><span style="color: navy;">></span>
<span style="color: navy;"><Window.Resources></span>
<span style="color: navy;"><telerik:EnumDataSource</span> <span style="color: teal;">EnumType=</span><span style="color: #bb8844;">"telerikWpfApp1:PlayerType"</span>
<span style="color: teal;">x:Key=</span><span style="color: #bb8844;">"enumDataSource"</span> <span style="color: navy;">/></span>
<span style="color: navy;"></Window.Resources></span>
<span style="color: navy;"><Grid></span>
<span style="color: navy;"><telerik:RadComboBox</span> <span style="color: teal;">SelectedValue=</span><span style="color: #bb8844;">"{Binding Path=PlayerType}"</span>
<span style="color: teal;">ItemsSource=</span><span style="color: #bb8844;">"{Binding Source={StaticResource enumDataSource}}"</span>
<span style="color: teal;">DisplayMemberPath=</span><span style="color: #bb8844;">"DisplayName"</span>
<span style="color: teal;">SelectedValuePath=</span><span style="color: #bb8844;">"Value"</span> <span style="color: navy;">/></span>
<span style="color: navy;"></Grid></span>
<span style="color: navy;"></Window></span></pre>
<pre>
</pre>
</pre>
</pre>
</pre>
<b><span style="color: #444444; font-family: Georgia, Times New Roman, serif;">TestCombobox.xaml.cs</span></b><br />
<pre style="background: rgb(255, 255, 255); color: #3b3b3b; font-family: Consolas, 'Lucida Console', 'DejaVu Sans Mono', Monaco, 'Courier New', monospace; font-size: 0.9333em; line-height: 1.5em; padding: 4px;"><pre style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: black; font-family: Consolas, 'Lucida Console', 'DejaVu Sans Mono', Monaco, 'Courier New', monospace; font-size: 0.9333em; line-height: 1.5em; padding: 4px;"><pre style="color: #333333; line-height: 16.25px;"><span style="font-weight: bold;">using</span> <span style="color: #555555;">System</span>;
<span style="font-weight: bold;">using</span> <span style="color: #555555;">System.Collections.Generic</span>;
<span style="font-weight: bold;">using</span> <span style="color: #555555;">System.ComponentModel</span>;
<span style="font-weight: bold;">using</span> <span style="color: #555555;">System.Linq</span>;
<span style="font-weight: bold;">using</span> <span style="color: #555555;">System.Windows</span>;
<span style="font-weight: bold;">namespace</span> <span style="color: #555555;">TelerikWpfApp1</span>
{
<span style="font-weight: bold;">public</span> <span style="font-weight: bold;">partial</span> <span style="font-weight: bold;">class</span> <span style="color: #445588; font-weight: bold;">TestComboBox</span>
{
<span style="font-weight: bold;">public</span> <span style="color: #990000; font-weight: bold;">TestComboBox</span>()
{
InitializeComponent();
<span style="font-weight: bold;">this</span>.DataContext = <span style="font-weight: bold;">new</span> Player()
{
PlayerType = PlayerType.Defender,
};
}
}
<span style="font-weight: bold;">public</span> <span style="font-weight: bold;">enum</span> PlayerType
{
<span style="color: teal;"> [Description("The forward")]</span>
Forward,
<span style="color: teal;"> [Description("The defender")]</span>
Defender,
<span style="color: teal;"> [Description("The goal keeper")]</span>
GoalKeeper,
}
<span style="font-weight: bold;">public</span> <span style="font-weight: bold;">class</span> <span style="color: #445588; font-weight: bold;">Player</span>
{
<span style="font-weight: bold;">public</span> PlayerType PlayerType { <span style="font-weight: bold;">get</span>; <span style="font-weight: bold;">set</span>; }
}
}</pre>
</pre>
</pre>
</div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-3348760857600874192014-10-08T23:18:00.001+06:002014-10-08T23:26:04.211+06:00Книги за апрель-октябрь 2014<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Georgia, Times New Roman, serif;">В этот раз прочитал много меньше, много больше времени провожу за обдумыванием полученных из книг идей, построением архитектуры приложения и постоянным зависанием с пакетным чайником возле чашки.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<span style="font-family: Georgia, Times New Roman, serif;">Прочитал полностью или прочитал большую часть:</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">1. Краковецкий <b><a href="http://appclub.im/special/book">"Когда я говорил"</a></b> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-9g80m1QmFiCQ-qNH796iIQHxLNmZryLomqS4T1PbDeCyRg4B69YK6nEhV_sZHrauOKWp_wPTEE3YF49bd8PuZzDBopePu1TuX_J3ue5FbiGlBfI9TQdrdrohso4XOExyCR10g3xqBDE/s1600/books.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-9g80m1QmFiCQ-qNH796iIQHxLNmZryLomqS4T1PbDeCyRg4B69YK6nEhV_sZHrauOKWp_wPTEE3YF49bd8PuZzDBopePu1TuX_J3ue5FbiGlBfI9TQdrdrohso4XOExyCR10g3xqBDE/s1600/books.jpg" height="240" width="320" /></a></div>
<div style="text-align: right;">
</div>
<span style="font-family: Georgia, 'Times New Roman', serif;">Не совсем книга, а цикл статей от известного на Хабрахабре человека.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">2. Мартин Р. <b>"Быстрая разработка программного обеспечения</b>.<b>"</b> Оказалась на 80% схожей с книгой того же автора <b>"Принципы, паттерны и методы"</b>. Переосмыслил примеры из этой книги и стало снова грустно, что все примеры непригодны для реальных проектов :(</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">3. Мартин Фаулер <b>"Рефакторинг. Улучшение существующего кода."</b> Перечитал снова, но уже почти ничего не извлекаю.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">4. Seemann Mark <b>"Dependency Injection in .NET"</b> - Хорошая книга по внедрению зависимостей.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">5. <a href="http://gameprogrammingpatterns.com/">Game Programming Patterns</a> - цикл статей о паттернах при разработке игр, очень и очень полезно, с кучей примеров.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">6. Дэвид Херман <b>"Сила JavaScript. 68 способов эффективного использования JS"</b> - Эту книгу посоветовали, но не очень понравилось, набор сомнительных советов. Хотя кому-то может и пригодится.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">7. Книга по Django c <a href="https://docs.djangoproject.com/">https://docs.djangoproject.com/</a> - Порой так трудно въехать в эту документацию.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">8. Цикл статей с <a href="http://www.tangowithdjango.com/book/">tangowithdjango</a>. В связи со непонятностью основной документации, читал больше именно с этого сайта.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">9.Albhari J., Albhari B. <b>"C# in a Nutshell, 5th Edition" - </b>Отличная книга по С#!</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">10. C. Petzold <b>"Programming Windows 6th edition"</b> - В сочетании с предыдущей книгой позволяет быстро начать делать приложения под WPF, в том числе очень много материала по WinRT.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">11. Brennon Williams <b>"Microsoft Expression Blend 4 Unleashed"</b> - оказалась почти бесполезной</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">12. Kosinska E., Leeds C. <b>"Microsoft Expression Blend 4 Step"</b> - тоже бесполезно</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">13. Майк Микаловиц <b>"Стартап без бюджета"</b> - призыв "Бери и херачь" на протяжении всей книги. Правильно в общем-то :)</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">Аудиокниги слушаю только в исполнении Сергея Чонишвили, т.к. все другие читатели рассеивают моё внимание через 2-3 минуты слушания.</span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;"><br /></span>
<span style="font-family: Georgia, 'Times New Roman', serif;">Прослушал аудиокниги:</span><br />
<span style="font-family: Georgia, Times New Roman, serif;">1. Борис Акунин <b>"Нефритовые четки"</b></span><br />
<span style="font-family: Georgia, Times New Roman, serif;">2. </span><span style="font-family: Georgia, 'Times New Roman', serif;">Борис Акунин <b>"Чёрный город"</b></span><br />
<span style="font-family: Georgia, Times New Roman, serif;">3. </span><span style="font-family: Georgia, 'Times New Roman', serif;">Борис Акунин <b>"Белонна"</b></span><br />
<span style="font-family: Georgia, Times New Roman, serif;">4. </span><span style="font-family: Georgia, 'Times New Roman', serif;">Борис Акунин <b>"Фантастика"</b></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">5. Чейз Хедли <b>"Если вам дорога жизнь"</b></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">6. Сергей Чонишвили <b>"Человек-поезд"</b></span><br />
<span style="font-family: Georgia, 'Times New Roman', serif;">7. Уилки Коллинз <b>"Лунный камень"</b></span><br />
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0tag:blogger.com,1999:blog-2994731804989201918.post-76694312349016849612014-09-08T14:27:00.004+06:002019-05-13T10:09:14.516+05:00YouTrack 5 agile board dark theme<div dir="ltr" style="text-align: left;" trbidi="on">
I wanted a dark theme for Youtrack's Agile board. JetBrains added new Darcula theme, but that theme didn't impressed me :(<br />
<br />
So, I started to modify theme with Chrome Stylish:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAWECyn-O8ojyesiqOh4TFZLdIg-6W_ZGb_CL6_RnFfWRewdnDGtxQsIDFbJk7sU-D7s7lzlsfrYTS6ckXpw6-OxChtrx5gwkFZZqqRxqnBkVUEI68e5EjNfyB2swX1ZDR6CecW6b5oNo/s1600/3f87e833210ab8e6b7af4e9606958932.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAWECyn-O8ojyesiqOh4TFZLdIg-6W_ZGb_CL6_RnFfWRewdnDGtxQsIDFbJk7sU-D7s7lzlsfrYTS6ckXpw6-OxChtrx5gwkFZZqqRxqnBkVUEI68e5EjNfyB2swX1ZDR6CecW6b5oNo/s1600/3f87e833210ab8e6b7af4e9606958932.png" width="640" /></a></div>
<br />
<br />
1. Install Stylish<br />
2. Set Darcula theme in your agile board settings<br />
3. Add new style to Stylish<br />
4. Copy style in Stylish from this <a href="https://gist.github.com/Snegovikufa/d6de3e7d13beaf5c7284">gist</a>:<br />
5. Set url startswith: http://yourdomain.com/rest/agile/<br />
6. Save style<br />
<br />
<br /></div>
Rustam Safinhttp://www.blogger.com/profile/11566128559721015633noreply@blogger.com0