serve-sim 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/serve-sim.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var pe=Object.defineProperty;var De=(e)=>e;function Ee(e,_){this[e]=De.bind(null,_)}var de=(e,_)=>{for(var t in _)pe(e,t,{get:_[t],enumerable:!0,configurable:!0,set:Ee.bind(_,t)})};var Fe=(e,_)=>()=>(e&&(_=e(e=0)),_);var j={};de(j,{simMiddleware:()=>Ie});import{readdirSync as we,readFileSync as ve,existsSync as be,unlinkSync as G}from"fs";import{execSync as he,spawn as x,exec as Oe,execFile as me}from"child_process";import{tmpdir as He}from"os";import{join as q}from"path";function We(e){return!Le.test(e)}function Pe(e,_){if(Ne.has(_))return Promise.resolve(!0);return new Promise((t)=>{me("xcrun",["simctl","get_app_container",e,_,"app"],{timeout:2000},(s,r)=>{if(s)return t(!1);let S=r.trim();if(!S)return t(!1);for(let o of Ve)if(be(q(S,o)))return t(!0);t(!1)})})}function qe(){let e=Date.now();if(b.booted&&e-b.at<1500)return b.booted;try{let _=he("xcrun simctl list devices booted -j",{encoding:"utf-8",stdio:["ignore","pipe","pipe"],timeout:3000}),t=JSON.parse(_),s=new Set;for(let r of Object.values(t.devices))for(let S of r)if(S.state==="Booted")s.add(S.udid);return b={at:e,booted:s},s}catch{return null}}function h(){let e;try{e=we(K).filter((s)=>s.startsWith("server-")&&s.endsWith(".json"))}catch{return[]}let _=qe(),t=[];for(let s of e){let r=q(K,s);try{let S=JSON.parse(ve(r,"utf-8"));try{process.kill(S.pid,0)}catch{try{G(r)}catch{}continue}if(_&&!_.has(S.device)){try{process.kill(S.pid,"SIGTERM")}catch{}try{G(r)}catch{}continue}t.push(S)}catch{}}return t}function Me(){if(!P)P=Buffer.from("PCFkb2N0eXBlIGh0bWw+CjxodG1sPjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPlNpbXVsYXRvciBQcmV2aWV3PC90aXRsZT4KPHN0eWxlPiosKjo6YmVmb3JlLCo6OmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveH1odG1sLGJvZHl7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVufTwvc3R5bGU+CjwvaGVhZD48Ym9keT4KPGRpdiBpZD0icm9vdCI+PC9kaXY+CjwhLS1fX1NJTV9QUkVWSUVXX0NPTkZJR19fLS0+CjxzY3JpcHQgdHlwZT0ibW9kdWxlIj52YXIgYzAsQixqNCxtNSxQMCxiNCx2NCx5NCwkNCxtMCxUMCxwNCxHNCx6NCxXNCxnNCxkMD17fSxhMD1bXSxmNT0vYWNpdHxleCg/OnN8Z3xufHB8JCl8cnBofGdyaWR8b3dzfG1uY3xudHd8aW5lW2NoXXx6b298Xm9yZHxpdGVyYS9pLGIwPUFycmF5LmlzQXJyYXk7ZnVuY3Rpb24gejAoWCxaKXtmb3IodmFyIEogaW4gWilYW0pdPVpbSl07cmV0dXJuIFh9ZnVuY3Rpb24gVjQoWCl7WCYmWC5wYXJlbnROb2RlJiZYLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoWCl9ZnVuY3Rpb24gVzAoWCxaLEope3ZhciBZLHEsUSxLPXt9O2ZvcihRIGluIFopUT09ImtleSI/WT1aW1FdOlE9PSJyZWYiP3E9WltRXTpLW1FdPVpbUV07aWYoYXJndW1lbnRzLmxlbmd0aD4yJiYoSy5jaGlsZHJlbj1hcmd1bWVudHMubGVuZ3RoPjM/YzAuY2FsbChhcmd1bWVudHMsMik6SiksdHlwZW9mIFg9PSJmdW5jdGlvbiImJlguZGVmYXVsdFByb3BzIT1udWxsKWZvcihRIGluIFguZGVmYXVsdFByb3BzKUtbUV09PT12b2lkIDAmJihLW1FdPVguZGVmYXVsdFByb3BzW1FdKTtyZXR1cm4gZjAoWCxLLFkscSxudWxsKX1mdW5jdGlvbiBmMChYLFosSixZLHEpe3ZhciBRPXt0eXBlOlgscHJvcHM6WixrZXk6SixyZWY6WSxfX2s6bnVsbCxfXzpudWxsLF9fYjowLF9fZTpudWxsLF9fYzpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6cT09bnVsbD8rK2o0OnEsX19pOi0xLF9fdTowfTtyZXR1cm4gcT09bnVsbCYmQi52bm9kZSE9bnVsbCYmQi52bm9kZShRKSxRfWZ1bmN0aW9uIGYoWCl7cmV0dXJuIFguY2hpbGRyZW59ZnVuY3Rpb24gaShYLFope3RoaXMucHJvcHM9WCx0aGlzLmNvbnRleHQ9Wn1mdW5jdGlvbiBCMChYLFope2lmKFo9PW51bGwpcmV0dXJuIFguX18/QjAoWC5fXyxYLl9faSsxKTpudWxsO2Zvcih2YXIgSjtaPFguX19rLmxlbmd0aDtaKyspaWYoKEo9WC5fX2tbWl0pIT1udWxsJiZKLl9fZSE9bnVsbClyZXR1cm4gSi5fX2U7cmV0dXJuIHR5cGVvZiBYLnR5cGU9PSJmdW5jdGlvbiI/QjAoWCk6bnVsbH1mdW5jdGlvbiBkNShYKXtpZihYLl9fUCYmWC5fX2Qpe3ZhciBaPVguX192LEo9Wi5fX2UsWT1bXSxxPVtdLFE9ejAoe30sWik7US5fX3Y9Wi5fX3YrMSxCLnZub2RlJiZCLnZub2RlKFEpLEg0KFguX19QLFEsWixYLl9fbixYLl9fUC5uYW1lc3BhY2VVUkksMzImWi5fX3U/W0pdOm51bGwsWSxKPT1udWxsP0IwKFopOkosISEoMzImWi5fX3UpLHEpLFEuX192PVouX192LFEuX18uX19rW1EuX19pXT1RLGY0KFksUSxxKSxaLl9fZT1aLl9fPW51bGwsUS5fX2UhPUomJng0KFEpfX1mdW5jdGlvbiB4NChYKXtpZigoWD1YLl9fKSE9bnVsbCYmWC5fX2MhPW51bGwpcmV0dXJuIFguX19lPVguX19jLmJhc2U9bnVsbCxYLl9fay5zb21lKGZ1bmN0aW9uKFope2lmKFohPW51bGwmJlouX19lIT1udWxsKXJldHVybiBYLl9fZT1YLl9fYy5iYXNlPVouX19lfSkseDQoWCl9ZnVuY3Rpb24gTDQoWCl7KCFYLl9fZCYmKFguX19kPSEwKSYmUDAucHVzaChYKSYmIWwwLl9fcisrfHxiNCE9Qi5kZWJvdW5jZVJlbmRlcmluZykmJigoYjQ9Qi5kZWJvdW5jZVJlbmRlcmluZyl8fHY0KShsMCl9ZnVuY3Rpb24gbDAoKXt0cnl7Zm9yKHZhciBYLFo9MTtQMC5sZW5ndGg7KVAwLmxlbmd0aD5aJiZQMC5zb3J0KHk0KSxYPVAwLnNoaWZ0KCksWj1QMC5sZW5ndGgsZDUoWCl9ZmluYWxseXtQMC5sZW5ndGg9bDAuX19yPTB9fWZ1bmN0aW9uIGg0KFgsWixKLFkscSxRLEssVyxHLHosTyl7dmFyICQsXyxBLE0sVSxrLEksQz1ZJiZZLl9fa3x8YTAsaD1aLmxlbmd0aDtmb3IoRz1hNShKLFosQyxHLGgpLCQ9MDskPGg7JCsrKShBPUouX19rWyRdKSE9bnVsbCYmKF89QS5fX2khPS0xJiZDW0EuX19pXXx8ZDAsQS5fX2k9JCxrPUg0KFgsQSxfLHEsUSxLLFcsRyx6LE8pLE09QS5fX2UsQS5yZWYmJl8ucmVmIT1BLnJlZiYmKF8ucmVmJiZQNChfLnJlZixudWxsLEEpLE8ucHVzaChBLnJlZixBLl9fY3x8TSxBKSksVT09bnVsbCYmTSE9bnVsbCYmKFU9TSksKEk9ISEoNCZBLl9fdSkpfHxfLl9faz09PUEuX19rPyhHPW00KEEsRyxYLEkpLEkmJl8uX19lJiYoXy5fX2U9bnVsbCkpOnR5cGVvZiBBLnR5cGU9PSJmdW5jdGlvbiImJmshPT12b2lkIDA/Rz1rOk0mJihHPU0ubmV4dFNpYmxpbmcpLEEuX191Jj0tNyk7cmV0dXJuIEouX19lPVUsR31mdW5jdGlvbiBhNShYLFosSixZLHEpe3ZhciBRLEssVyxHLHosTz1KLmxlbmd0aCwkPU8sXz0wO2ZvcihYLl9faz1BcnJheShxKSxRPTA7UTxxO1ErKykoSz1aW1FdKSE9bnVsbCYmdHlwZW9mIEshPSJib29sZWFuIiYmdHlwZW9mIEshPSJmdW5jdGlvbiI/KHR5cGVvZiBLPT0ic3RyaW5nInx8dHlwZW9mIEs9PSJudW1iZXIifHx0eXBlb2YgSz09ImJpZ2ludCJ8fEsuY29uc3RydWN0b3I9PVN0cmluZz9LPVguX19rW1FdPWYwKG51bGwsSyxudWxsLG51bGwsbnVsbCk6YjAoSyk/Sz1YLl9fa1tRXT1mMChmLHtjaGlsZHJlbjpLfSxudWxsLG51bGwsbnVsbCk6Sy5jb25zdHJ1Y3Rvcj09PXZvaWQgMCYmSy5fX2I+MD9LPVguX19rW1FdPWYwKEsudHlwZSxLLnByb3BzLEsua2V5LEsucmVmP0sucmVmOm51bGwsSy5fX3YpOlguX19rW1FdPUssRz1RK18sSy5fXz1YLEsuX19iPVguX19iKzEsVz1udWxsLCh6PUsuX19pPWw1KEssSixHLCQpKSE9LTEmJigkLS0sKFc9Slt6XSkmJihXLl9fdXw9MikpLFc9PW51bGx8fFcuX192PT1udWxsPyh6PT0tMSYmKHE+Tz9fLS06cTxPJiZfKyspLHR5cGVvZiBLLnR5cGUhPSJmdW5jdGlvbiImJihLLl9fdXw9NCkpOnohPUcmJih6PT1HLTE/Xy0tOno9PUcrMT9fKys6KHo+Rz9fLS06XysrLEsuX191fD00KSkpOlguX19rW1FdPW51bGw7aWYoJClmb3IoUT0wO1E8TztRKyspKFc9SltRXSkhPW51bGwmJigyJlcuX191KT09MCYmKFcuX19lPT1ZJiYoWT1CMChXKSksYTQoVyxXKSk7cmV0dXJuIFl9ZnVuY3Rpb24gbTQoWCxaLEosWSl7dmFyIHEsUTtpZih0eXBlb2YgWC50eXBlPT0iZnVuY3Rpb24iKXtmb3IocT1YLl9fayxRPTA7cSYmUTxxLmxlbmd0aDtRKyspcVtRXSYmKHFbUV0uX189WCxaPW00KHFbUV0sWixKLFkpKTtyZXR1cm4gWn1YLl9fZSE9WiYmKFkmJihaJiZYLnR5cGUmJiFaLnBhcmVudE5vZGUmJihaPUIwKFgpKSxKLmluc2VydEJlZm9yZShYLl9fZSxafHxudWxsKSksWj1YLl9fZSk7ZG8gWj1aJiZaLm5leHRTaWJsaW5nO3doaWxlKFohPW51bGwmJloubm9kZVR5cGU9PTgpO3JldHVybiBafWZ1bmN0aW9uIEwwKFgsWil7cmV0dXJuIFo9Wnx8W10sWD09bnVsbHx8dHlwZW9mIFg9PSJib29sZWFuInx8KGIwKFgpP1guc29tZShmdW5jdGlvbihKKXtMMChKLFopfSk6Wi5wdXNoKFgpKSxafWZ1bmN0aW9uIGw1KFgsWixKLFkpe3ZhciBxLFEsSyxXPVgua2V5LEc9WC50eXBlLHo9WltKXSxPPXohPW51bGwmJigyJnouX191KT09MDtpZih6PT09bnVsbCYmVz09bnVsbHx8TyYmVz09ei5rZXkmJkc9PXoudHlwZSlyZXR1cm4gSjtpZihZPihPPzE6MCkpe2ZvcihxPUotMSxRPUorMTtxPj0wfHxRPFoubGVuZ3RoOylpZigoej1aW0s9cT49MD9xLS06USsrXSkhPW51bGwmJigyJnouX191KT09MCYmVz09ei5rZXkmJkc9PXoudHlwZSlyZXR1cm4gS31yZXR1cm4tMX1mdW5jdGlvbiBTNChYLFosSil7WlswXT09Ii0iP1guc2V0UHJvcGVydHkoWixKPT1udWxsPyIiOkopOlhbWl09Sj09bnVsbD8iIjp0eXBlb2YgSiE9Im51bWJlciJ8fGY1LnRlc3QoWik/SjpKKyJweCJ9ZnVuY3Rpb24gaDAoWCxaLEosWSxxKXt2YXIgUSxLO1g6aWYoWj09InN0eWxlIilpZih0eXBlb2YgSj09InN0cmluZyIpWC5zdHlsZS5jc3NUZXh0PUo7ZWxzZXtpZih0eXBlb2YgWT09InN0cmluZyImJihYLnN0eWxlLmNzc1RleHQ9WT0iIiksWSlmb3IoWiBpbiBZKUomJlogaW4gSnx8UzQoWC5zdHlsZSxaLCIiKTtpZihKKWZvcihaIGluIEopWSYmSltaXT09WVtaXXx8UzQoWC5zdHlsZSxaLEpbWl0pfWVsc2UgaWYoWlswXT09Im8iJiZaWzFdPT0ibiIpUT1aIT0oWj1aLnJlcGxhY2UocDQsIiQxIikpLEs9Wi50b0xvd2VyQ2FzZSgpLFo9SyBpbiBYfHxaPT0ib25Gb2N1c091dCJ8fFo9PSJvbkZvY3VzSW4iP0suc2xpY2UoMik6Wi5zbGljZSgyKSxYLmx8fChYLmw9e30pLFgubFtaK1FdPUosSj9ZP0pbVDBdPVlbVDBdOihKW1QwXT1HNCxYLmFkZEV2ZW50TGlzdGVuZXIoWixRP1c0Ono0LFEpKTpYLnJlbW92ZUV2ZW50TGlzdGVuZXIoWixRP1c0Ono0LFEpO2Vsc2V7aWYocT09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIilaPVoucmVwbGFjZSgveGxpbmsoSHw6aCkvLCJoIikucmVwbGFjZSgvc05hbWUkLywicyIpO2Vsc2UgaWYoWiE9IndpZHRoIiYmWiE9ImhlaWdodCImJlohPSJocmVmIiYmWiE9Imxpc3QiJiZaIT0iZm9ybSImJlohPSJ0YWJJbmRleCImJlohPSJkb3dubG9hZCImJlohPSJyb3dTcGFuIiYmWiE9ImNvbFNwYW4iJiZaIT0icm9sZSImJlohPSJwb3BvdmVyIiYmWiBpbiBYKXRyeXtYW1pdPUo9PW51bGw/IiI6SjticmVhayBYfWNhdGNoKFcpe310eXBlb2YgSj09ImZ1bmN0aW9uInx8KEo9PW51bGx8fEo9PT0hMSYmWls0XSE9Ii0iP1gucmVtb3ZlQXR0cmlidXRlKFopOlguc2V0QXR0cmlidXRlKFosWj09InBvcG92ZXIiJiZKPT0xPyIiOkopKX19ZnVuY3Rpb24gUjQoWCl7cmV0dXJuIGZ1bmN0aW9uKFope2lmKHRoaXMubCl7dmFyIEo9dGhpcy5sW1oudHlwZStYXTtpZihaW20wXT09bnVsbClaW20wXT1HNCsrO2Vsc2UgaWYoWlttMF08SltUMF0pcmV0dXJuO3JldHVybiBKKEIuZXZlbnQ/Qi5ldmVudChaKTpaKX19fWZ1bmN0aW9uIEg0KFgsWixKLFkscSxRLEssVyxHLHope3ZhciBPLCQsXyxBLE0sVSxrLEksQyxoLEUsZSxaMCx4LEswLHM9Wi50eXBlO2lmKFouY29uc3RydWN0b3IhPT12b2lkIDApcmV0dXJuIG51bGw7MTI4JkouX191JiYoRz0hISgzMiZKLl9fdSksUT1bVz1aLl9fZT1KLl9fZV0pLChPPUIuX19iKSYmTyhaKTtYOmlmKHR5cGVvZiBzPT0iZnVuY3Rpb24iKXRyeXtpZihJPVoucHJvcHMsQz1zLnByb3RvdHlwZSYmcy5wcm90b3R5cGUucmVuZGVyLGg9KE89cy5jb250ZXh0VHlwZSkmJllbTy5fX2NdLEU9Tz9oP2gucHJvcHMudmFsdWU6Ty5fXzpZLEouX19jP2s9KCQ9Wi5fX2M9Si5fX2MpLl9fPSQuX19FOihDP1ouX19jPSQ9bmV3IHMoSSxFKTooWi5fX2M9JD1uZXcgaShJLEUpLCQuY29uc3RydWN0b3I9cywkLnJlbmRlcj1pNSksaCYmaC5zdWIoJCksJC5zdGF0ZXx8KCQuc3RhdGU9e30pLCQuX19uPVksXz0kLl9fZD0hMCwkLl9faD1bXSwkLl9zYj1bXSksQyYmJC5fX3M9PW51bGwmJigkLl9fcz0kLnN0YXRlKSxDJiZzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyE9bnVsbCYmKCQuX19zPT0kLnN0YXRlJiYoJC5fX3M9ejAoe30sJC5fX3MpKSx6MCgkLl9fcyxzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhJLCQuX19zKSkpLEE9JC5wcm9wcyxNPSQuc3RhdGUsJC5fX3Y9WixfKUMmJnMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzPT1udWxsJiYkLmNvbXBvbmVudFdpbGxNb3VudCE9bnVsbCYmJC5jb21wb25lbnRXaWxsTW91bnQoKSxDJiYkLmNvbXBvbmVudERpZE1vdW50IT1udWxsJiYkLl9faC5wdXNoKCQuY29tcG9uZW50RGlkTW91bnQpO2Vsc2V7aWYoQyYmcy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9PW51bGwmJkkhPT1BJiYkLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMhPW51bGwmJiQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhJLEUpLFouX192PT1KLl9fdnx8ISQuX19lJiYkLnNob3VsZENvbXBvbmVudFVwZGF0ZSE9bnVsbCYmJC5zaG91bGRDb21wb25lbnRVcGRhdGUoSSwkLl9fcyxFKT09PSExKXtaLl9fdiE9Si5fX3YmJigkLnByb3BzPUksJC5zdGF0ZT0kLl9fcywkLl9fZD0hMSksWi5fX2U9Si5fX2UsWi5fX2s9Si5fX2ssWi5fX2suc29tZShmdW5jdGlvbihyKXtyJiYoci5fXz1aKX0pLGEwLnB1c2guYXBwbHkoJC5fX2gsJC5fc2IpLCQuX3NiPVtdLCQuX19oLmxlbmd0aCYmSy5wdXNoKCQpO2JyZWFrIFh9JC5jb21wb25lbnRXaWxsVXBkYXRlIT1udWxsJiYkLmNvbXBvbmVudFdpbGxVcGRhdGUoSSwkLl9fcyxFKSxDJiYkLmNvbXBvbmVudERpZFVwZGF0ZSE9bnVsbCYmJC5fX2gucHVzaChmdW5jdGlvbigpeyQuY29tcG9uZW50RGlkVXBkYXRlKEEsTSxVKX0pfWlmKCQuY29udGV4dD1FLCQucHJvcHM9SSwkLl9fUD1YLCQuX19lPSExLGU9Qi5fX3IsWjA9MCxDKSQuc3RhdGU9JC5fX3MsJC5fX2Q9ITEsZSYmZShaKSxPPSQucmVuZGVyKCQucHJvcHMsJC5zdGF0ZSwkLmNvbnRleHQpLGEwLnB1c2guYXBwbHkoJC5fX2gsJC5fc2IpLCQuX3NiPVtdO2Vsc2UgZG8gJC5fX2Q9ITEsZSYmZShaKSxPPSQucmVuZGVyKCQucHJvcHMsJC5zdGF0ZSwkLmNvbnRleHQpLCQuc3RhdGU9JC5fX3M7d2hpbGUoJC5fX2QmJisrWjA8MjUpOyQuc3RhdGU9JC5fX3MsJC5nZXRDaGlsZENvbnRleHQhPW51bGwmJihZPXowKHowKHt9LFkpLCQuZ2V0Q2hpbGRDb250ZXh0KCkpKSxDJiYhXyYmJC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSE9bnVsbCYmKFU9JC5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShBLE0pKSx4PU8hPW51bGwmJk8udHlwZT09PWYmJk8ua2V5PT1udWxsP2Q0KE8ucHJvcHMuY2hpbGRyZW4pOk8sVz1oNChYLGIwKHgpP3g6W3hdLFosSixZLHEsUSxLLFcsRyx6KSwkLmJhc2U9Wi5fX2UsWi5fX3UmPS0xNjEsJC5fX2gubGVuZ3RoJiZLLnB1c2goJCksayYmKCQuX19FPSQuX189bnVsbCl9Y2F0Y2gocil7aWYoWi5fX3Y9bnVsbCxHfHxRIT1udWxsKWlmKHIudGhlbil7Zm9yKFouX191fD1HPzE2MDoxMjg7VyYmVy5ub2RlVHlwZT09OCYmVy5uZXh0U2libGluZzspVz1XLm5leHRTaWJsaW5nO1FbUS5pbmRleE9mKFcpXT1udWxsLFouX19lPVd9ZWxzZXtmb3IoSzA9US5sZW5ndGg7SzAtLTspVjQoUVtLMF0pO040KFopfWVsc2UgWi5fX2U9Si5fX2UsWi5fX2s9Si5fX2ssci50aGVufHxONChaKTtCLl9fZShyLFosSil9ZWxzZSBRPT1udWxsJiZaLl9fdj09Si5fX3Y/KFouX19rPUouX19rLFouX19lPUouX19lKTpXPVouX19lPWM1KEouX19lLFosSixZLHEsUSxLLEcseik7cmV0dXJuKE89Qi5kaWZmZWQpJiZPKFopLDEyOCZaLl9fdT92b2lkIDA6V31mdW5jdGlvbiBONChYKXtYJiYoWC5fX2MmJihYLl9fYy5fX2U9ITApLFguX19rJiZYLl9fay5zb21lKE40KSl9ZnVuY3Rpb24gZjQoWCxaLEope2Zvcih2YXIgWT0wO1k8Si5sZW5ndGg7WSsrKVA0KEpbWV0sSlsrK1ldLEpbKytZXSk7Qi5fX2MmJkIuX19jKFosWCksWC5zb21lKGZ1bmN0aW9uKHEpe3RyeXtYPXEuX19oLHEuX19oPVtdLFguc29tZShmdW5jdGlvbihRKXtRLmNhbGwocSl9KX1jYXRjaChRKXtCLl9fZShRLHEuX192KX19KX1mdW5jdGlvbiBkNChYKXtyZXR1cm4gdHlwZW9mIFghPSJvYmplY3QifHxYPT1udWxsfHxYLl9fYj4wP1g6YjAoWCk/WC5tYXAoZDQpOnowKHt9LFgpfWZ1bmN0aW9uIGM1KFgsWixKLFkscSxRLEssVyxHKXt2YXIgeixPLCQsXyxBLE0sVSxrPUoucHJvcHN8fGQwLEk9Wi5wcm9wcyxDPVoudHlwZTtpZihDPT0ic3ZnIj9xPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6Qz09Im1hdGgiP3E9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiOnF8fChxPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiksUSE9bnVsbCl7Zm9yKHo9MDt6PFEubGVuZ3RoO3orKylpZigoQT1RW3pdKSYmInNldEF0dHJpYnV0ZSJpbiBBPT0hIUMmJihDP0EubG9jYWxOYW1lPT1DOkEubm9kZVR5cGU9PTMpKXtYPUEsUVt6XT1udWxsO2JyZWFrfX1pZihYPT1udWxsKXtpZihDPT1udWxsKXJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShJKTtYPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhxLEMsSS5pcyYmSSksVyYmKEIuX19tJiZCLl9fbShaLFEpLFc9ITEpLFE9bnVsbH1pZihDPT1udWxsKWs9PT1JfHxXJiZYLmRhdGE9PUl8fChYLmRhdGE9SSk7ZWxzZXtpZihRPVEmJmMwLmNhbGwoWC5jaGlsZE5vZGVzKSwhVyYmUSE9bnVsbClmb3Ioaz17fSx6PTA7ejxYLmF0dHJpYnV0ZXMubGVuZ3RoO3orKylrWyhBPVguYXR0cmlidXRlc1t6XSkubmFtZV09QS52YWx1ZTtmb3IoeiBpbiBrKUE9a1t6XSx6PT0iZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPyQ9QTp6PT0iY2hpbGRyZW4ifHwoeiBpbiBJKXx8ej09InZhbHVlIiYmKCJkZWZhdWx0VmFsdWUiaW4gSSl8fHo9PSJjaGVja2VkIiYmKCJkZWZhdWx0Q2hlY2tlZCJpbiBJKXx8aDAoWCx6LG51bGwsQSxxKTtmb3IoeiBpbiBJKUE9SVt6XSx6PT0iY2hpbGRyZW4iP189QTp6PT0iZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiP089QTp6PT0idmFsdWUiP009QTp6PT0iY2hlY2tlZCI/VT1BOlcmJnR5cGVvZiBBIT0iZnVuY3Rpb24ifHxrW3pdPT09QXx8aDAoWCx6LEEsa1t6XSxxKTtpZihPKVd8fCQmJihPLl9faHRtbD09JC5fX2h0bWx8fE8uX19odG1sPT1YLmlubmVySFRNTCl8fChYLmlubmVySFRNTD1PLl9faHRtbCksWi5fX2s9W107ZWxzZSBpZigkJiYoWC5pbm5lckhUTUw9IiIpLGg0KFoudHlwZT09InRlbXBsYXRlIj9YLmNvbnRlbnQ6WCxiMChfKT9fOltfXSxaLEosWSxDPT0iZm9yZWlnbk9iamVjdCI/Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiOnEsUSxLLFE/UVswXTpKLl9fayYmQjAoSiwwKSxXLEcpLFEhPW51bGwpZm9yKHo9US5sZW5ndGg7ei0tOylWNChRW3pdKTtXfHwoej0idmFsdWUiLEM9PSJwcm9ncmVzcyImJk09PW51bGw/WC5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIik6TSE9bnVsbCYmKE0hPT1YW3pdfHxDPT0icHJvZ3Jlc3MiJiYhTXx8Qz09Im9wdGlvbiImJk0hPWtbel0pJiZoMChYLHosTSxrW3pdLHEpLHo9ImNoZWNrZWQiLFUhPW51bGwmJlUhPVhbel0mJmgwKFgseixVLGtbel0scSkpfXJldHVybiBYfWZ1bmN0aW9uIFA0KFgsWixKKXt0cnl7aWYodHlwZW9mIFg9PSJmdW5jdGlvbiIpe3ZhciBZPXR5cGVvZiBYLl9fdT09ImZ1bmN0aW9uIjtZJiZYLl9fdSgpLFkmJlo9PW51bGx8fChYLl9fdT1YKFopKX1lbHNlIFguY3VycmVudD1afWNhdGNoKHEpe0IuX19lKHEsSil9fWZ1bmN0aW9uIGE0KFgsWixKKXt2YXIgWSxxO2lmKEIudW5tb3VudCYmQi51bm1vdW50KFgpLChZPVgucmVmKSYmKFkuY3VycmVudCYmWS5jdXJyZW50IT1YLl9fZXx8UDQoWSxudWxsLFopKSwoWT1YLl9fYykhPW51bGwpe2lmKFkuY29tcG9uZW50V2lsbFVubW91bnQpdHJ5e1kuY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChRKXtCLl9fZShRLFopfVkuYmFzZT1ZLl9fUD1udWxsfWlmKFk9WC5fX2spZm9yKHE9MDtxPFkubGVuZ3RoO3ErKylZW3FdJiZhNChZW3FdLFosSnx8dHlwZW9mIFgudHlwZSE9ImZ1bmN0aW9uIik7Snx8VjQoWC5fX2UpLFguX19jPVguX189WC5fX2U9dm9pZCAwfWZ1bmN0aW9uIGk1KFgsWixKKXtyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvcihYLEopfWZ1bmN0aW9uIGkwKFgsWixKKXt2YXIgWSxxLFEsSztaPT1kb2N1bWVudCYmKFo9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSxCLl9fJiZCLl9fKFgsWikscT0oWT10eXBlb2YgSj09ImZ1bmN0aW9uIik/bnVsbDpKJiZKLl9fa3x8Wi5fX2ssUT1bXSxLPVtdLEg0KFosWD0oIVkmJkp8fFopLl9faz1XMChmLG51bGwsW1hdKSxxfHxkMCxkMCxaLm5hbWVzcGFjZVVSSSwhWSYmSj9bSl06cT9udWxsOlouZmlyc3RDaGlsZD9jMC5jYWxsKFouY2hpbGROb2Rlcyk6bnVsbCxRLCFZJiZKP0o6cT9xLl9fZTpaLmZpcnN0Q2hpbGQsWSxLKSxmNChRLFgsSyl9ZnVuY3Rpb24gXzAoWCl7ZnVuY3Rpb24gWihKKXt2YXIgWSxxO3JldHVybiB0aGlzLmdldENoaWxkQ29udGV4dHx8KFk9bmV3IFNldCwocT17fSlbWi5fX2NdPXRoaXMsdGhpcy5nZXRDaGlsZENvbnRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gcX0sdGhpcy5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe1k9bnVsbH0sdGhpcy5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24oUSl7dGhpcy5wcm9wcy52YWx1ZSE9US52YWx1ZSYmWS5mb3JFYWNoKGZ1bmN0aW9uKEspe0suX19lPSEwLEw0KEspfSl9LHRoaXMuc3ViPWZ1bmN0aW9uKFEpe1kuYWRkKFEpO3ZhciBLPVEuY29tcG9uZW50V2lsbFVubW91bnQ7US5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe1kmJlkuZGVsZXRlKFEpLEsmJksuY2FsbChRKX19KSxKLmNoaWxkcmVufXJldHVybiBaLl9fYz0iX19jQyIrZzQrKyxaLl9fPVgsWi5Qcm92aWRlcj1aLl9fbD0oWi5Db25zdW1lcj1mdW5jdGlvbihKLFkpe3JldHVybiBKLmNoaWxkcmVuKFkpfSkuY29udGV4dFR5cGU9WixafWMwPWEwLnNsaWNlLEI9e19fZTpmdW5jdGlvbihYLFosSixZKXtmb3IodmFyIHEsUSxLO1o9Wi5fXzspaWYoKHE9Wi5fX2MpJiYhcS5fXyl0cnl7aWYoKFE9cS5jb25zdHJ1Y3RvcikmJlEuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yIT1udWxsJiYocS5zZXRTdGF0ZShRLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihYKSksSz1xLl9fZCkscS5jb21wb25lbnREaWRDYXRjaCE9bnVsbCYmKHEuY29tcG9uZW50RGlkQ2F0Y2goWCxZfHx7fSksSz1xLl9fZCksSylyZXR1cm4gcS5fX0U9cX1jYXRjaChXKXtYPVd9dGhyb3cgWH19LGo0PTAsbTU9ZnVuY3Rpb24oWCl7cmV0dXJuIFghPW51bGwmJlguY29uc3RydWN0b3I9PT12b2lkIDB9LGkucHJvdG90eXBlLnNldFN0YXRlPWZ1bmN0aW9uKFgsWil7dmFyIEo7Sj10aGlzLl9fcyE9bnVsbCYmdGhpcy5fX3MhPXRoaXMuc3RhdGU/dGhpcy5fX3M6dGhpcy5fX3M9ejAoe30sdGhpcy5zdGF0ZSksdHlwZW9mIFg9PSJmdW5jdGlvbiImJihYPVgoejAoe30sSiksdGhpcy5wcm9wcykpLFgmJnowKEosWCksWCE9bnVsbCYmdGhpcy5fX3YmJihaJiZ0aGlzLl9zYi5wdXNoKFopLEw0KHRoaXMpKX0saS5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oWCl7dGhpcy5fX3YmJih0aGlzLl9fZT0hMCxYJiZ0aGlzLl9faC5wdXNoKFgpLEw0KHRoaXMpKX0saS5wcm90b3R5cGUucmVuZGVyPWYsUDA9W10sdjQ9dHlwZW9mIFByb21pc2U9PSJmdW5jdGlvbiI/UHJvbWlzZS5wcm90b3R5cGUudGhlbi5iaW5kKFByb21pc2UucmVzb2x2ZSgpKTpzZXRUaW1lb3V0LHk0PWZ1bmN0aW9uKFgsWil7cmV0dXJuIFguX192Ll9fYi1aLl9fdi5fX2J9LGwwLl9fcj0wLCQ0PU1hdGgucmFuZG9tKCkudG9TdHJpbmcoOCksbTA9Il9fZCIrJDQsVDA9Il9fYSIrJDQscDQ9LyhQb2ludGVyQ2FwdHVyZSkkfENhcHR1cmUkL2ksRzQ9MCx6ND1SNCghMSksVzQ9UjQoITApLGc0PTA7dmFyIEYwLHAsTzQsbDQsUzA9MCxuND1bXSxkPUIsYzQ9ZC5fX2IsaTQ9ZC5fX3IsdTQ9ZC5kaWZmZWQsbzQ9ZC5fX2MsczQ9ZC51bm1vdW50LHI0PWQuX187ZnVuY3Rpb24gbzAoWCxaKXtkLl9faCYmZC5fX2gocCxYLFMwfHxaKSxTMD0wO3ZhciBKPXAuX19IfHwocC5fX0g9e19fOltdLF9faDpbXX0pO3JldHVybiBYPj1KLl9fLmxlbmd0aCYmSi5fXy5wdXNoKHt9KSxKLl9fW1hdfWZ1bmN0aW9uIFMoWCl7cmV0dXJuIFMwPTEsQTQoWDUsWCl9ZnVuY3Rpb24gQTQoWCxaLEope3ZhciBZPW8wKEYwKyssMik7aWYoWS50PVgsIVkuX19jJiYoWS5fXz1bSj9KKFopOlg1KHZvaWQgMCxaKSxmdW5jdGlvbihXKXt2YXIgRz1ZLl9fTj9ZLl9fTlswXTpZLl9fWzBdLHo9WS50KEcsVyk7RyE9PXomJihZLl9fTj1beixZLl9fWzFdXSxZLl9fYy5zZXRTdGF0ZSh7fSkpfV0sWS5fX2M9cCwhcC5fX2YpKXt2YXIgcT1mdW5jdGlvbihXLEcseil7aWYoIVkuX19jLl9fSClyZXR1cm4hMDt2YXIgTz1ZLl9fYy5fX0guX18uZmlsdGVyKGZ1bmN0aW9uKF8pe3JldHVybiBfLl9fY30pO2lmKE8uZXZlcnkoZnVuY3Rpb24oXyl7cmV0dXJuIV8uX19OfSkpcmV0dXJuIVF8fFEuY2FsbCh0aGlzLFcsRyx6KTt2YXIgJD1ZLl9fYy5wcm9wcyE9PVc7cmV0dXJuIE8uc29tZShmdW5jdGlvbihfKXtpZihfLl9fTil7dmFyIEE9Xy5fX1swXTtfLl9fPV8uX19OLF8uX19OPXZvaWQgMCxBIT09Xy5fX1swXSYmKCQ9ITApfX0pLFEmJlEuY2FsbCh0aGlzLFcsRyx6KXx8JH07cC5fX2Y9ITA7dmFye3Nob3VsZENvbXBvbmVudFVwZGF0ZTpRLGNvbXBvbmVudFdpbGxVcGRhdGU6S309cDtwLmNvbXBvbmVudFdpbGxVcGRhdGU9ZnVuY3Rpb24oVyxHLHope2lmKHRoaXMuX19lKXt2YXIgTz1RO1E9dm9pZCAwLHEoVyxHLHopLFE9T31LJiZLLmNhbGwodGhpcyxXLEcseil9LHAuc2hvdWxkQ29tcG9uZW50VXBkYXRlPXF9cmV0dXJuIFkuX19OfHxZLl9ffWZ1bmN0aW9uIGcoWCxaKXt2YXIgSj1vMChGMCsrLDMpOyFkLl9fcyYmZTQoSi5fX0gsWikmJihKLl9fPVgsSi51PVoscC5fX0guX19oLnB1c2goSikpfWZ1bmN0aW9uIHcoWCl7cmV0dXJuIFMwPTUsczAoZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpYfX0sW10pfWZ1bmN0aW9uIHMwKFgsWil7dmFyIEo9bzAoRjArKyw3KTtyZXR1cm4gZTQoSi5fX0gsWikmJihKLl9fPVgoKSxKLl9fSD1aLEouX19oPVgpLEouX199ZnVuY3Rpb24gaihYLFope3JldHVybiBTMD04LHMwKGZ1bmN0aW9uKCl7cmV0dXJuIFh9LFopfWZ1bmN0aW9uIFIwKFgpe3ZhciBaPXAuY29udGV4dFtYLl9fY10sSj1vMChGMCsrLDkpO3JldHVybiBKLmM9WCxaPyhKLl9fPT1udWxsJiYoSi5fXz0hMCxaLnN1YihwKSksWi5wcm9wcy52YWx1ZSk6WC5fX31mdW5jdGlvbiB1NSgpe2Zvcih2YXIgWDtYPW40LnNoaWZ0KCk7KXt2YXIgWj1YLl9fSDtpZihYLl9fUCYmWil0cnl7Wi5fX2guc29tZSh1MCksWi5fX2guc29tZShVNCksWi5fX2g9W119Y2F0Y2goSil7Wi5fX2g9W10sZC5fX2UoSixYLl9fdil9fX1kLl9fYj1mdW5jdGlvbihYKXtwPW51bGwsYzQmJmM0KFgpfSxkLl9fPWZ1bmN0aW9uKFgsWil7WCYmWi5fX2smJlouX19rLl9fbSYmKFguX19tPVouX19rLl9fbSkscjQmJnI0KFgsWil9LGQuX19yPWZ1bmN0aW9uKFgpe2k0JiZpNChYKSxGMD0wO3ZhciBaPShwPVguX19jKS5fX0g7WiYmKE80PT09cD8oWi5fX2g9W10scC5fX2g9W10sWi5fXy5zb21lKGZ1bmN0aW9uKEope0ouX19OJiYoSi5fXz1KLl9fTiksSi51PUouX19OPXZvaWQgMH0pKTooWi5fX2guc29tZSh1MCksWi5fX2guc29tZShVNCksWi5fX2g9W10sRjA9MCkpLE80PXB9LGQuZGlmZmVkPWZ1bmN0aW9uKFgpe3U0JiZ1NChYKTt2YXIgWj1YLl9fYztaJiZaLl9fSCYmKFouX19ILl9faC5sZW5ndGgmJihuNC5wdXNoKFopIT09MSYmbDQ9PT1kLnJlcXVlc3RBbmltYXRpb25GcmFtZXx8KChsND1kLnJlcXVlc3RBbmltYXRpb25GcmFtZSl8fG81KSh1NSkpLFouX19ILl9fLnNvbWUoZnVuY3Rpb24oSil7Si51JiYoSi5fX0g9Si51KSxKLnU9dm9pZCAwfSkpLE80PXA9bnVsbH0sZC5fX2M9ZnVuY3Rpb24oWCxaKXtaLnNvbWUoZnVuY3Rpb24oSil7dHJ5e0ouX19oLnNvbWUodTApLEouX19oPUouX19oLmZpbHRlcihmdW5jdGlvbihZKXtyZXR1cm4hWS5fX3x8VTQoWSl9KX1jYXRjaChZKXtaLnNvbWUoZnVuY3Rpb24ocSl7cS5fX2gmJihxLl9faD1bXSl9KSxaPVtdLGQuX19lKFksSi5fX3YpfX0pLG80JiZvNChYLFopfSxkLnVubW91bnQ9ZnVuY3Rpb24oWCl7czQmJnM0KFgpO3ZhciBaLEo9WC5fX2M7SiYmSi5fX0gmJihKLl9fSC5fXy5zb21lKGZ1bmN0aW9uKFkpe3RyeXt1MChZKX1jYXRjaChxKXtaPXF9fSksSi5fX0g9dm9pZCAwLFomJmQuX19lKFosSi5fX3YpKX07dmFyIHQ0PXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiI7ZnVuY3Rpb24gbzUoWCl7dmFyIFosSj1mdW5jdGlvbigpe2NsZWFyVGltZW91dChZKSx0NCYmY2FuY2VsQW5pbWF0aW9uRnJhbWUoWiksc2V0VGltZW91dChYKX0sWT1zZXRUaW1lb3V0KEosMzUpO3Q0JiYoWj1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoSikpfWZ1bmN0aW9uIHUwKFgpe3ZhciBaPXAsSj1YLl9fYzt0eXBlb2YgSj09ImZ1bmN0aW9uIiYmKFguX19jPXZvaWQgMCxKKCkpLHA9Wn1mdW5jdGlvbiBVNChYKXt2YXIgWj1wO1guX19jPVguX18oKSxwPVp9ZnVuY3Rpb24gZTQoWCxaKXtyZXR1cm4hWHx8WC5sZW5ndGghPT1aLmxlbmd0aHx8Wi5zb21lKGZ1bmN0aW9uKEosWSl7cmV0dXJuIEohPT1YW1ldfSl9ZnVuY3Rpb24gWDUoWCxaKXtyZXR1cm4gdHlwZW9mIFo9PSJmdW5jdGlvbiI/WihYKTpafWZ1bmN0aW9uIFo2KFgsWil7Zm9yKHZhciBKIGluIFopWFtKXT1aW0pdO3JldHVybiBYfWZ1bmN0aW9uIFo1KFgsWil7Zm9yKHZhciBKIGluIFgpaWYoSiE9PSJfX3NvdXJjZSImJiEoSiBpbiBaKSlyZXR1cm4hMDtmb3IodmFyIFkgaW4gWilpZihZIT09Il9fc291cmNlIiYmWFtZXSE9PVpbWV0pcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gSjUoWCxaKXt0aGlzLnByb3BzPVgsdGhpcy5jb250ZXh0PVp9KEo1LnByb3RvdHlwZT1uZXcgaSkuaXNQdXJlUmVhY3RDb21wb25lbnQ9ITAsSjUucHJvdG90eXBlLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihYLFope3JldHVybiBaNSh0aGlzLnByb3BzLFgpfHxaNSh0aGlzLnN0YXRlLFopfTt2YXIgWTU9Qi5fX2I7Qi5fX2I9ZnVuY3Rpb24oWCl7WC50eXBlJiZYLnR5cGUuX19mJiZYLnJlZiYmKFgucHJvcHMucmVmPVgucmVmLFgucmVmPW51bGwpLFk1JiZZNShYKX07dmFyIEo2PUIuX19lO0IuX19lPWZ1bmN0aW9uKFgsWixKLFkpe2lmKFgudGhlbil7Zm9yKHZhciBxLFE9WjtRPVEuX187KWlmKChxPVEuX19jKSYmcS5fX2MpcmV0dXJuIFouX19lPT1udWxsJiYoWi5fX2U9Si5fX2UsWi5fX2s9Si5fX2spLHEuX19jKFgsWil9SjYoWCxaLEosWSl9O3ZhciBxNT1CLnVubW91bnQ7ZnVuY3Rpb24gTDUoWCxaLEope3JldHVybiBYJiYoWC5fX2MmJlguX19jLl9fSCYmKFguX19jLl9fSC5fXy5mb3JFYWNoKGZ1bmN0aW9uKFkpe3R5cGVvZiBZLl9fYz09ImZ1bmN0aW9uIiYmWS5fX2MoKX0pLFguX19jLl9fSD1udWxsKSwoWD1aNih7fSxYKSkuX19jIT1udWxsJiYoWC5fX2MuX19QPT09SiYmKFguX19jLl9fUD1aKSxYLl9fYy5fX2U9ITAsWC5fX2M9bnVsbCksWC5fX2s9WC5fX2smJlguX19rLm1hcChmdW5jdGlvbihZKXtyZXR1cm4gTDUoWSxaLEopfSkpLFh9ZnVuY3Rpb24gTjUoWCxaLEope3JldHVybiBYJiZKJiYoWC5fX3Y9bnVsbCxYLl9faz1YLl9fayYmWC5fX2subWFwKGZ1bmN0aW9uKFkpe3JldHVybiBONShZLFosSil9KSxYLl9fYyYmWC5fX2MuX19QPT09WiYmKFguX19lJiZKLmFwcGVuZENoaWxkKFguX19lKSxYLl9fYy5fX2U9ITAsWC5fX2MuX19QPUopKSxYfWZ1bmN0aW9uIEI0KCl7dGhpcy5fX3U9MCx0aGlzLm89bnVsbCx0aGlzLl9fYj1udWxsfWZ1bmN0aW9uIEc1KFgpe3ZhciBaPVguX18mJlguX18uX19jO3JldHVybiBaJiZaLl9fYSYmWi5fX2EoWCl9ZnVuY3Rpb24gcjAoKXt0aGlzLmk9bnVsbCx0aGlzLmw9bnVsbH1CLnVubW91bnQ9ZnVuY3Rpb24oWCl7dmFyIFo9WC5fX2M7WiYmKFouX196PSEwKSxaJiZaLl9fUiYmWi5fX1IoKSxaJiYzMiZYLl9fdSYmKFgudHlwZT1udWxsKSxxNSYmcTUoWCl9LChCNC5wcm90b3R5cGU9bmV3IGkpLl9fYz1mdW5jdGlvbihYLFope3ZhciBKPVouX19jLFk9dGhpcztZLm89PW51bGwmJihZLm89W10pLFkuby5wdXNoKEopO3ZhciBxPUc1KFkuX192KSxRPSExLEs9ZnVuY3Rpb24oKXtRfHxZLl9fenx8KFE9ITAsSi5fX1I9bnVsbCxxP3EoRyk6RygpKX07Si5fX1I9Szt2YXIgVz1KLl9fUDtKLl9fUD1udWxsO3ZhciBHPWZ1bmN0aW9uKCl7aWYoIS0tWS5fX3Upe2lmKFkuc3RhdGUuX19hKXt2YXIgej1ZLnN0YXRlLl9fYTtZLl9fdi5fX2tbMF09TjUoeix6Ll9fYy5fX1Asei5fX2MuX19PKX12YXIgTztmb3IoWS5zZXRTdGF0ZSh7X19hOlkuX19iPW51bGx9KTtPPVkuby5wb3AoKTspTy5fX1A9VyxPLmZvcmNlVXBkYXRlKCl9fTtZLl9fdSsrfHwzMiZaLl9fdXx8WS5zZXRTdGF0ZSh7X19hOlkuX19iPVkuX192Ll9fa1swXX0pLFgudGhlbihLLEspfSxCNC5wcm90b3R5cGUuY29tcG9uZW50V2lsbFVubW91bnQ9ZnVuY3Rpb24oKXt0aGlzLm89W119LEI0LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oWCxaKXtpZih0aGlzLl9fYil7aWYodGhpcy5fX3YuX19rKXt2YXIgSj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxZPXRoaXMuX192Ll9fa1swXS5fX2M7dGhpcy5fX3YuX19rWzBdPUw1KHRoaXMuX19iLEosWS5fX089WS5fX1ApfXRoaXMuX19iPW51bGx9dmFyIHE9Wi5fX2EmJlcwKGYsbnVsbCxYLmZhbGxiYWNrKTtyZXR1cm4gcSYmKHEuX191Jj0tMzMpLFtXMChmLG51bGwsWi5fX2E/bnVsbDpYLmNoaWxkcmVuKSxxXX07dmFyIFE1PWZ1bmN0aW9uKFgsWixKKXtpZigrK0pbMV09PT1KWzBdJiZYLmwuZGVsZXRlKFopLFgucHJvcHMucmV2ZWFsT3JkZXImJihYLnByb3BzLnJldmVhbE9yZGVyWzBdIT09InQifHwhWC5sLnNpemUpKWZvcihKPVguaTtKOyl7Zm9yKDtKLmxlbmd0aD4zOylKLnBvcCgpKCk7aWYoSlsxXTxKWzBdKWJyZWFrO1guaT1KPUpbMl19fTsocjAucHJvdG90eXBlPW5ldyBpKS5fX2E9ZnVuY3Rpb24oWCl7dmFyIFo9dGhpcyxKPUc1KFouX192KSxZPVoubC5nZXQoWCk7cmV0dXJuIFlbMF0rKyxmdW5jdGlvbihxKXt2YXIgUT1mdW5jdGlvbigpe1oucHJvcHMucmV2ZWFsT3JkZXI/KFkucHVzaChxKSxRNShaLFgsWSkpOnEoKX07Sj9KKFEpOlEoKX19LHIwLnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oWCl7dGhpcy5pPW51bGwsdGhpcy5sPW5ldyBNYXA7dmFyIFo9TDAoWC5jaGlsZHJlbik7WC5yZXZlYWxPcmRlciYmWC5yZXZlYWxPcmRlclswXT09PSJiIiYmWi5yZXZlcnNlKCk7Zm9yKHZhciBKPVoubGVuZ3RoO0otLTspdGhpcy5sLnNldChaW0pdLHRoaXMuaT1bMSwwLHRoaXMuaV0pO3JldHVybiBYLmNoaWxkcmVufSxyMC5wcm90b3R5cGUuY29tcG9uZW50RGlkVXBkYXRlPXIwLnByb3RvdHlwZS5jb21wb25lbnREaWRNb3VudD1mdW5jdGlvbigpe3ZhciBYPXRoaXM7dGhpcy5sLmZvckVhY2goZnVuY3Rpb24oWixKKXtRNShYLEosWil9KX07dmFyIFk2PXR5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wuZm9yJiZTeW1ib2wuZm9yKCJyZWFjdC5lbGVtZW50Iil8fDYwMTAzLHE2PS9eKD86YWNjZW50fGFsaWdubWVudHxhcmFiaWN8YmFzZWxpbmV8Y2FwfGNsaXAoPyFQYXRoVSl8Y29sb3J8ZG9taW5hbnR8ZmlsbHxmbG9vZHxmb250fGdseXBoKD8hUil8aG9yaXp8aW1hZ2UoIVMpfGxldHRlcnxsaWdodGluZ3xtYXJrZXIoPyFIfFd8VSl8b3ZlcmxpbmV8cGFpbnR8cG9pbnRlcnxzaGFwZXxzdG9wfHN0cmlrZXRocm91Z2h8c3Ryb2tlfHRleHQoPyFMKXx0cmFuc2Zvcm18dW5kZXJsaW5lfHVuaWNvZGV8dW5pdHN8dnx2ZWN0b3J8dmVydHx3b3JkfHdyaXRpbmd8eCg/IUMpKVtBLVpdLyxRNj0vXm9uKEFuaXxUcmF8VG91fEJlZm9yZUlucHxDb21wbykvLEs2PS9bQS1aMC05XS9nLCQ2PXR5cGVvZiBkb2N1bWVudDwidSIsejY9ZnVuY3Rpb24oWCl7cmV0dXJuKHR5cGVvZiBTeW1ib2w8InUiJiZ0eXBlb2YgU3ltYm9sKCk9PSJzeW1ib2wiPy9maWx8Y2hlfHJhZC86L2ZpbHxjaGV8cmEvKS50ZXN0KFgpfTtmdW5jdGlvbiBWNShYLFosSil7cmV0dXJuIFouX19rPT1udWxsJiYoWi50ZXh0Q29udGVudD0iIiksaTAoWCxaKSx0eXBlb2YgSj09ImZ1bmN0aW9uIiYmSigpLFg/WC5fX2M6bnVsbH1pLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PSEwLFsiY29tcG9uZW50V2lsbE1vdW50IiwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyIsImNvbXBvbmVudFdpbGxVcGRhdGUiXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShpLnByb3RvdHlwZSxYLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbIlVOU0FGRV8iK1hdfSxzZXQ6ZnVuY3Rpb24oWil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsWCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlp9KX19KX0pO3ZhciBLNT1CLmV2ZW50O0IuZXZlbnQ9ZnVuY3Rpb24oWCl7cmV0dXJuIEs1JiYoWD1LNShYKSksWC5wZXJzaXN0PWZ1bmN0aW9uKCl7fSxYLmlzUHJvcGFnYXRpb25TdG9wcGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuY2VsQnViYmxlfSxYLmlzRGVmYXVsdFByZXZlbnRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRlZmF1bHRQcmV2ZW50ZWR9LFgubmF0aXZlRXZlbnQ9WH07dmFyIEg1LFc2PXtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xhc3N9fSwkNT1CLnZub2RlO0Iudm5vZGU9ZnVuY3Rpb24oWCl7dHlwZW9mIFgudHlwZT09InN0cmluZyImJmZ1bmN0aW9uKFope3Zhcntwcm9wczpKLHR5cGU6WX09WixxPXt9LFE9WS5pbmRleE9mKCItIik9PS0xO2Zvcih2YXIgSyBpbiBKKXt2YXIgVz1KW0tdO2lmKCEoSz09PSJ2YWx1ZSImJigiZGVmYXVsdFZhbHVlImluIEopJiZXPT1udWxsfHwkNiYmSz09PSJjaGlsZHJlbiImJlk9PT0ibm9zY3JpcHQifHxLPT09ImNsYXNzInx8Sz09PSJjbGFzc05hbWUiKSl7dmFyIEc9Sy50b0xvd2VyQ2FzZSgpO0s9PT0iZGVmYXVsdFZhbHVlIiYmInZhbHVlImluIEomJkoudmFsdWU9PW51bGw/Sz0idmFsdWUiOks9PT0iZG93bmxvYWQiJiZXPT09ITA/Vz0iIjpHPT09InRyYW5zbGF0ZSImJlc9PT0ibm8iP1c9ITE6R1swXT09PSJvIiYmR1sxXT09PSJuIj9HPT09Im9uZG91YmxlY2xpY2siP0s9Im9uZGJsY2xpY2siOkchPT0ib25jaGFuZ2UifHxZIT09ImlucHV0IiYmWSE9PSJ0ZXh0YXJlYSJ8fHo2KEoudHlwZSk/Rz09PSJvbmZvY3VzIj9LPSJvbmZvY3VzaW4iOkc9PT0ib25ibHVyIj9LPSJvbmZvY3Vzb3V0IjpRNi50ZXN0KEspJiYoSz1HKTpHPUs9Im9uaW5wdXQiOlEmJnE2LnRlc3QoSyk/Sz1LLnJlcGxhY2UoSzYsIi0kJiIpLnRvTG93ZXJDYXNlKCk6Vz09PW51bGwmJihXPXZvaWQgMCksRz09PSJvbmlucHV0IiYmcVtLPUddJiYoSz0ib25pbnB1dENhcHR1cmUiKSxxW0tdPVd9fVk9PSJzZWxlY3QiJiYocS5tdWx0aXBsZSYmQXJyYXkuaXNBcnJheShxLnZhbHVlKSYmKHEudmFsdWU9TDAoSi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih6KXt6LnByb3BzLnNlbGVjdGVkPXEudmFsdWUuaW5kZXhPZih6LnByb3BzLnZhbHVlKSE9LTF9KSkscS5kZWZhdWx0VmFsdWUhPW51bGwmJihxLnZhbHVlPUwwKEouY2hpbGRyZW4pLmZvckVhY2goZnVuY3Rpb24oeil7ei5wcm9wcy5zZWxlY3RlZD1xLm11bHRpcGxlP3EuZGVmYXVsdFZhbHVlLmluZGV4T2Yoei5wcm9wcy52YWx1ZSkhPS0xOnEuZGVmYXVsdFZhbHVlPT16LnByb3BzLnZhbHVlfSkpKSxKLmNsYXNzJiYhSi5jbGFzc05hbWU/KHEuY2xhc3M9Si5jbGFzcyxPYmplY3QuZGVmaW5lUHJvcGVydHkocSwiY2xhc3NOYW1lIixXNikpOkouY2xhc3NOYW1lJiYocS5jbGFzcz1xLmNsYXNzTmFtZT1KLmNsYXNzTmFtZSksWi5wcm9wcz1xfShYKSxYLiQkdHlwZW9mPVk2LCQ1JiYkNShYKX07dmFyIHo1PUIuX19yO0IuX19yPWZ1bmN0aW9uKFgpe3o1JiZ6NShYKSxINT1YLl9fY307dmFyIFc1PUIuZGlmZmVkO0IuZGlmZmVkPWZ1bmN0aW9uKFgpe1c1JiZXNShYKTt2YXJ7cHJvcHM6WixfX2U6Sn09WDtKIT1udWxsJiZYLnR5cGU9PT0idGV4dGFyZWEiJiYidmFsdWUiaW4gWiYmWi52YWx1ZSE9PUoudmFsdWUmJihKLnZhbHVlPVoudmFsdWU9PW51bGw/IiI6Wi52YWx1ZSksSDU9bnVsbH07ZnVuY3Rpb24gUDUoWCl7cmV0dXJuISFYLl9fayYmKGkwKG51bGwsWCksITApfWZ1bmN0aW9uIE81KFgpe3JldHVybntyZW5kZXI6ZnVuY3Rpb24oWil7VjUoWixYKX0sdW5tb3VudDpmdW5jdGlvbigpe1A1KFgpfX19ZnVuY3Rpb24gQzUoWCxaKXtmb3IodmFyIEogaW4gWilYW0pdPVpbSl07cmV0dXJuIFh9ZnVuY3Rpb24gVTUoWCxaKXtmb3IodmFyIEogaW4gWClpZihKIT09Il9fc291cmNlIiYmIShKIGluIFopKXJldHVybiEwO2Zvcih2YXIgWSBpbiBaKWlmKFkhPT0iX19zb3VyY2UiJiZYW1ldIT09WltZXSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBBNShYLFope3RoaXMucHJvcHM9WCx0aGlzLmNvbnRleHQ9Wn0oQTUucHJvdG90eXBlPW5ldyBpKS5pc1B1cmVSZWFjdENvbXBvbmVudD0hMCxBNS5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKFgsWil7cmV0dXJuIFU1KHRoaXMucHJvcHMsWCl8fFU1KHRoaXMuc3RhdGUsWil9O3ZhciBCNT1CLl9fYjtCLl9fYj1mdW5jdGlvbihYKXtYLnR5cGUmJlgudHlwZS5fX2YmJlgucmVmJiYoWC5wcm9wcy5yZWY9WC5yZWYsWC5yZWY9bnVsbCksQjUmJkI1KFgpfTt2YXIgTDY9dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoInJlYWN0LmZvcndhcmRfcmVmIil8fDM5MTE7ZnVuY3Rpb24gRDAoWCl7ZnVuY3Rpb24gWihKKXt2YXIgWT1DNSh7fSxKKTtyZXR1cm4gZGVsZXRlIFkucmVmLFgoWSxKLnJlZnx8bnVsbCl9cmV0dXJuIFouJCR0eXBlb2Y9TDYsWi5yZW5kZXI9WCxaLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PVouX19mPSEwLFouZGlzcGxheU5hbWU9IkZvcndhcmRSZWYoIisoWC5kaXNwbGF5TmFtZXx8WC5uYW1lKSsiKSIsWn12YXIgTjY9Qi5fX2U7Qi5fX2U9ZnVuY3Rpb24oWCxaLEosWSl7aWYoWC50aGVuKXtmb3IodmFyIHEsUT1aO1E9US5fXzspaWYoKHE9US5fX2MpJiZxLl9fYylyZXR1cm4gWi5fX2U9PW51bGwmJihaLl9fZT1KLl9fZSxaLl9faz1KLl9faykscS5fX2MoWCxaKX1ONihYLFosSixZKX07dmFyIF81PUIudW5tb3VudDtmdW5jdGlvbiBFNShYLFosSil7cmV0dXJuIFgmJihYLl9fYyYmWC5fX2MuX19IJiYoWC5fX2MuX19ILl9fLmZvckVhY2goZnVuY3Rpb24oWSl7dHlwZW9mIFkuX19jPT0iZnVuY3Rpb24iJiZZLl9fYygpfSksWC5fX2MuX19IPW51bGwpLChYPUM1KHt9LFgpKS5fX2MhPW51bGwmJihYLl9fYy5fX1A9PT1KJiYoWC5fX2MuX19QPVopLFguX19jLl9fZT0hMCxYLl9fYz1udWxsKSxYLl9faz1YLl9fayYmWC5fX2subWFwKGZ1bmN0aW9uKFkpe3JldHVybiBFNShZLFosSil9KSksWH1mdW5jdGlvbiB3NShYLFosSil7cmV0dXJuIFgmJkomJihYLl9fdj1udWxsLFguX19rPVguX19rJiZYLl9fay5tYXAoZnVuY3Rpb24oWSl7cmV0dXJuIHc1KFksWixKKX0pLFguX19jJiZYLl9fYy5fX1A9PT1aJiYoWC5fX2UmJkouYXBwZW5kQ2hpbGQoWC5fX2UpLFguX19jLl9fZT0hMCxYLl9fYy5fX1A9SikpLFh9ZnVuY3Rpb24gRjQoKXt0aGlzLl9fdT0wLHRoaXMubz1udWxsLHRoaXMuX19iPW51bGx9ZnVuY3Rpb24gVDUoWCl7dmFyIFo9WC5fXyYmWC5fXy5fX2M7cmV0dXJuIFomJlouX19hJiZaLl9fYShYKX1mdW5jdGlvbiB0MCgpe3RoaXMuaT1udWxsLHRoaXMubD1udWxsfUIudW5tb3VudD1mdW5jdGlvbihYKXt2YXIgWj1YLl9fYztaJiYoWi5fX3o9ITApLFomJlouX19SJiZaLl9fUigpLFomJjMyJlguX191JiYoWC50eXBlPW51bGwpLF81JiZfNShYKX0sKEY0LnByb3RvdHlwZT1uZXcgaSkuX19jPWZ1bmN0aW9uKFgsWil7dmFyIEo9Wi5fX2MsWT10aGlzO1kubz09bnVsbCYmKFkubz1bXSksWS5vLnB1c2goSik7dmFyIHE9VDUoWS5fX3YpLFE9ITEsSz1mdW5jdGlvbigpe1F8fFkuX196fHwoUT0hMCxKLl9fUj1udWxsLHE/cShHKTpHKCkpfTtKLl9fUj1LO3ZhciBXPUouX19QO0ouX19QPW51bGw7dmFyIEc9ZnVuY3Rpb24oKXtpZighLS1ZLl9fdSl7aWYoWS5zdGF0ZS5fX2Epe3ZhciB6PVkuc3RhdGUuX19hO1kuX192Ll9fa1swXT13NSh6LHouX19jLl9fUCx6Ll9fYy5fX08pfXZhciBPO2ZvcihZLnNldFN0YXRlKHtfX2E6WS5fX2I9bnVsbH0pO089WS5vLnBvcCgpOylPLl9fUD1XLE8uZm9yY2VVcGRhdGUoKX19O1kuX191Kyt8fDMyJlouX191fHxZLnNldFN0YXRlKHtfX2E6WS5fX2I9WS5fX3YuX19rWzBdfSksWC50aGVuKEssSyl9LEY0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMubz1bXX0sRjQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihYLFope2lmKHRoaXMuX19iKXtpZih0aGlzLl9fdi5fX2spe3ZhciBKPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFk9dGhpcy5fX3YuX19rWzBdLl9fYzt0aGlzLl9fdi5fX2tbMF09RTUodGhpcy5fX2IsSixZLl9fTz1ZLl9fUCl9dGhpcy5fX2I9bnVsbH12YXIgcT1aLl9fYSYmVzAoZixudWxsLFguZmFsbGJhY2spO3JldHVybiBxJiYocS5fX3UmPS0zMyksW1cwKGYsbnVsbCxaLl9fYT9udWxsOlguY2hpbGRyZW4pLHFdfTt2YXIgRjU9ZnVuY3Rpb24oWCxaLEope2lmKCsrSlsxXT09PUpbMF0mJlgubC5kZWxldGUoWiksWC5wcm9wcy5yZXZlYWxPcmRlciYmKFgucHJvcHMucmV2ZWFsT3JkZXJbMF0hPT0idCJ8fCFYLmwuc2l6ZSkpZm9yKEo9WC5pO0o7KXtmb3IoO0oubGVuZ3RoPjM7KUoucG9wKCkoKTtpZihKWzFdPEpbMF0pYnJlYWs7WC5pPUo9SlsyXX19Oyh0MC5wcm90b3R5cGU9bmV3IGkpLl9fYT1mdW5jdGlvbihYKXt2YXIgWj10aGlzLEo9VDUoWi5fX3YpLFk9Wi5sLmdldChYKTtyZXR1cm4gWVswXSsrLGZ1bmN0aW9uKHEpe3ZhciBRPWZ1bmN0aW9uKCl7Wi5wcm9wcy5yZXZlYWxPcmRlcj8oWS5wdXNoKHEpLEY1KFosWCxZKSk6cSgpfTtKP0ooUSk6USgpfX0sdDAucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihYKXt0aGlzLmk9bnVsbCx0aGlzLmw9bmV3IE1hcDt2YXIgWj1MMChYLmNoaWxkcmVuKTtYLnJldmVhbE9yZGVyJiZYLnJldmVhbE9yZGVyWzBdPT09ImIiJiZaLnJldmVyc2UoKTtmb3IodmFyIEo9Wi5sZW5ndGg7Si0tOyl0aGlzLmwuc2V0KFpbSl0sdGhpcy5pPVsxLDAsdGhpcy5pXSk7cmV0dXJuIFguY2hpbGRyZW59LHQwLnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU9dDAucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dmFyIFg9dGhpczt0aGlzLmwuZm9yRWFjaChmdW5jdGlvbihaLEope0Y1KFgsSixaKX0pfTt2YXIgRzY9dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKXx8NjAxMDMsVjY9L14oPzphY2NlbnR8YWxpZ25tZW50fGFyYWJpY3xiYXNlbGluZXxjYXB8Y2xpcCg/IVBhdGhVKXxjb2xvcnxkb21pbmFudHxmaWxsfGZsb29kfGZvbnR8Z2x5cGgoPyFSKXxob3JpenxpbWFnZSghUyl8bGV0dGVyfGxpZ2h0aW5nfG1hcmtlcig/IUh8V3xVKXxvdmVybGluZXxwYWludHxwb2ludGVyfHNoYXBlfHN0b3B8c3RyaWtldGhyb3VnaHxzdHJva2V8dGV4dCg/IUwpfHRyYW5zZm9ybXx1bmRlcmxpbmV8dW5pY29kZXx1bml0c3x2fHZlY3Rvcnx2ZXJ0fHdvcmR8d3JpdGluZ3x4KD8hQykpW0EtWl0vLEg2PS9eb24oQW5pfFRyYXxUb3V8QmVmb3JlSW5wfENvbXBvKS8sUDY9L1tBLVowLTldL2csTzY9dHlwZW9mIGRvY3VtZW50PCJ1IixVNj1mdW5jdGlvbihYKXtyZXR1cm4odHlwZW9mIFN5bWJvbDwidSImJnR5cGVvZiBTeW1ib2woKT09InN5bWJvbCI/L2ZpbHxjaGV8cmFkLzovZmlsfGNoZXxyYS8pLnRlc3QoWCl9O2kucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9ITAsWyJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwiY29tcG9uZW50V2lsbFVwZGF0ZSJdLmZvckVhY2goZnVuY3Rpb24oWCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGkucHJvdG90eXBlLFgse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1siVU5TQUZFXyIrWF19LHNldDpmdW5jdGlvbihaKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxYLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Wn0pfX0pfSk7dmFyIEQ1PUIuZXZlbnQ7Qi5ldmVudD1mdW5jdGlvbihYKXtyZXR1cm4gRDUmJihYPUQ1KFgpKSxYLnBlcnNpc3Q9ZnVuY3Rpb24oKXt9LFguaXNQcm9wYWdhdGlvblN0b3BwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9LFguaXNEZWZhdWx0UHJldmVudGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZH0sWC5uYXRpdmVFdmVudD1YfTt2YXIgYjUsQTY9e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LGs1PUIudm5vZGU7Qi52bm9kZT1mdW5jdGlvbihYKXt0eXBlb2YgWC50eXBlPT0ic3RyaW5nIiYmZnVuY3Rpb24oWil7dmFye3Byb3BzOkosdHlwZTpZfT1aLHE9e30sUT1ZLmluZGV4T2YoIi0iKT09LTE7Zm9yKHZhciBLIGluIEope3ZhciBXPUpbS107aWYoIShLPT09InZhbHVlIiYmKCJkZWZhdWx0VmFsdWUiaW4gSikmJlc9PW51bGx8fE82JiZLPT09ImNoaWxkcmVuIiYmWT09PSJub3NjcmlwdCJ8fEs9PT0iY2xhc3MifHxLPT09ImNsYXNzTmFtZSIpKXt2YXIgRz1LLnRvTG93ZXJDYXNlKCk7Sz09PSJkZWZhdWx0VmFsdWUiJiYidmFsdWUiaW4gSiYmSi52YWx1ZT09bnVsbD9LPSJ2YWx1ZSI6Sz09PSJkb3dubG9hZCImJlc9PT0hMD9XPSIiOkc9PT0idHJhbnNsYXRlIiYmVz09PSJubyI/Vz0hMTpHWzBdPT09Im8iJiZHWzFdPT09Im4iP0c9PT0ib25kb3VibGVjbGljayI/Sz0ib25kYmxjbGljayI6RyE9PSJvbmNoYW5nZSJ8fFkhPT0iaW5wdXQiJiZZIT09InRleHRhcmVhInx8VTYoSi50eXBlKT9HPT09Im9uZm9jdXMiP0s9Im9uZm9jdXNpbiI6Rz09PSJvbmJsdXIiP0s9Im9uZm9jdXNvdXQiOkg2LnRlc3QoSykmJihLPUcpOkc9Sz0ib25pbnB1dCI6USYmVjYudGVzdChLKT9LPUsucmVwbGFjZShQNiwiLSQmIikudG9Mb3dlckNhc2UoKTpXPT09bnVsbCYmKFc9dm9pZCAwKSxHPT09Im9uaW5wdXQiJiZxW0s9R10mJihLPSJvbmlucHV0Q2FwdHVyZSIpLHFbS109V319WT09InNlbGVjdCImJihxLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHEudmFsdWUpJiYocS52YWx1ZT1MMChKLmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKHope3oucHJvcHMuc2VsZWN0ZWQ9cS52YWx1ZS5pbmRleE9mKHoucHJvcHMudmFsdWUpIT0tMX0pKSxxLmRlZmF1bHRWYWx1ZSE9bnVsbCYmKHEudmFsdWU9TDAoSi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih6KXt6LnByb3BzLnNlbGVjdGVkPXEubXVsdGlwbGU/cS5kZWZhdWx0VmFsdWUuaW5kZXhPZih6LnByb3BzLnZhbHVlKSE9LTE6cS5kZWZhdWx0VmFsdWU9PXoucHJvcHMudmFsdWV9KSkpLEouY2xhc3MmJiFKLmNsYXNzTmFtZT8ocS5jbGFzcz1KLmNsYXNzLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLCJjbGFzc05hbWUiLEE2KSk6Si5jbGFzc05hbWUmJihxLmNsYXNzPXEuY2xhc3NOYW1lPUouY2xhc3NOYW1lKSxaLnByb3BzPXF9KFgpLFguJCR0eXBlb2Y9RzYsazUmJms1KFgpfTt2YXIgSTU9Qi5fX3I7Qi5fX3I9ZnVuY3Rpb24oWCl7STUmJkk1KFgpLGI1PVguX19jfTt2YXIgTTU9Qi5kaWZmZWQ7Qi5kaWZmZWQ9ZnVuY3Rpb24oWCl7TTUmJk01KFgpO3Zhcntwcm9wczpaLF9fZTpKfT1YO0ohPW51bGwmJlgudHlwZT09PSJ0ZXh0YXJlYSImJiJ2YWx1ZSJpbiBaJiZaLnZhbHVlIT09Si52YWx1ZSYmKEoudmFsdWU9Wi52YWx1ZT09bnVsbD8iIjpaLnZhbHVlKSxiNT1udWxsfTt2YXIgQjY9MDtmdW5jdGlvbiBOKFgsWixKLFkscSxRKXtafHwoWj17fSk7dmFyIEssVyxHPVo7aWYoInJlZiJpbiBHKWZvcihXIGluIEc9e30sWilXPT0icmVmIj9LPVpbV106R1tXXT1aW1ddO3ZhciB6PXt0eXBlOlgscHJvcHM6RyxrZXk6SixyZWY6SyxfX2s6bnVsbCxfXzpudWxsLF9fYjowLF9fZTpudWxsLF9fYzpudWxsLGNvbnN0cnVjdG9yOnZvaWQgMCxfX3Y6LS1CNixfX2k6LTEsX191OjAsX19zb3VyY2U6cSxfX3NlbGY6UX07aWYodHlwZW9mIFg9PSJmdW5jdGlvbiImJihLPVguZGVmYXVsdFByb3BzKSlmb3IoVyBpbiBLKUdbV109PT12b2lkIDAmJihHW1ddPUtbV10pO3JldHVybiBCLnZub2RlJiZCLnZub2RlKHopLHp9dmFyIEQ0PWB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjAnIGhlaWdodD0nMjAnJTNFJTNDY2lyY2xlIGN4PScxMCcgY3k9JzEwJyByPSc5JyBmaWxsPSdyZ2JhKDI1NSwyNTUsMjU1LDAuNCknIHN0cm9rZT0ncmdiYSgyNTUsMjU1LDI1NSwwLjcpJyBzdHJva2Utd2lkdGg9JzEnLyUzRSUzQy9zdmclM0UiKSAxMCAxMCwgcG9pbnRlcmAsXzY9MyxGNj00LEQ2PTU7ZnVuY3Rpb24gbjAoe3VybDpYLHdzVXJsOlosc3R5bGU6SixpbWFnZVN0eWxlOlksY2xhc3NOYW1lOnEsb25Ib21lUHJlc3M6USxvblN0cmVhbVRvdWNoOkssb25TdHJlYW1NdWx0aVRvdWNoOlcsb25TdHJlYW1CdXR0b246RyxzdWJzY3JpYmVGcmFtZTp6LHN0cmVhbUZyYW1lOk8sc3RyZWFtQ29uZmlnOiQsaGlkZUNvbnRyb2xzOl8sb25TdHJlYW1pbmdDaGFuZ2U6QSxjb25uZWN0aW9uUXVhbGl0eTpNfSl7bGV0IFU9ISFLLGs9dyhudWxsKSxJPXcobnVsbCksQz13KG51bGwpLFtoLEVdPVMoITEpLFtlLFowXT1TKG51bGwpLFt4LEswXT1TKG51bGwpLHM9dyhudWxsKSxbcixVMF09UyhudWxsKTtnKCgpPT57bGV0IFY9cy5jdXJyZW50O2lmKCFWfHx0eXBlb2YgUmVzaXplT2JzZXJ2ZXI+InUiKXJldHVybjtsZXQgSD1uZXcgUmVzaXplT2JzZXJ2ZXIoKEwpPT57bGV0IFA9TFswXT8uY29udGVudFJlY3Q7aWYoUClVMCh7d2lkdGg6UC53aWR0aCxoZWlnaHQ6UC5oZWlnaHR9KX0pO3JldHVybiBILm9ic2VydmUoViksKCk9PkguZGlzY29ubmVjdCgpfSxbXSk7bGV0W2owLHYwXT1TKDApLEcwPXcoMCksW0o0LEkwXT1TKCExKSxGPXcobnVsbCk7ZygoKT0+e2lmKE09PT0icG9vciIpe2lmKEkwKCEwKSxGLmN1cnJlbnQpY2xlYXJUaW1lb3V0KEYuY3VycmVudCk7Ri5jdXJyZW50PXNldFRpbWVvdXQoKCk9PntJMCghMSksRi5jdXJyZW50PW51bGx9LDMwMDApfWVsc2UgaWYoSTAoITEpLEYuY3VycmVudCljbGVhclRpbWVvdXQoRi5jdXJyZW50KSxGLmN1cnJlbnQ9bnVsbDtyZXR1cm4oKT0+e2lmKEYuY3VycmVudCljbGVhclRpbWVvdXQoRi5jdXJyZW50KX19LFtNXSk7bGV0IFI9YCR7WH0vc3RyZWFtLm1qcGVnYCx2PXcoQSk7di5jdXJyZW50PUEsZygoKT0+e3YuY3VycmVudD8uKGgpfSxbaF0pLGcoKCk9PntpZihVJiYkKUswKCQpfSxbVSwkXSk7bGV0IFQ9dyghMSk7VC5jdXJyZW50PWg7bGV0IHU9dyhudWxsKTtnKCgpPT57aWYoIVV8fCF6KXJldHVybjtsZXQgSD1zZXRUaW1lb3V0KCgpPT57aWYoIVQuY3VycmVudClaMCgiU3RyZWFtIGlzIG5vdCBwcm9kdWNpbmcgZnJhbWVzLiBUaGUgc2ltdWxhdG9yIG1heSBoYXZlIHN0b3BwZWQg4oCUIHRyeSByZWNvbm5lY3RpbmcuIil9LDYwMDApLEw9eigoUCk9PntHMC5jdXJyZW50KyssWDAuY3VycmVudD1EYXRlLm5vdygpO2xldCBEPUkuY3VycmVudDtpZihEKXtpZih1LmN1cnJlbnQpVVJMLnJldm9rZU9iamVjdFVSTCh1LmN1cnJlbnQpO3UuY3VycmVudD1QLEQuc3JjPVB9aWYoIVQuY3VycmVudCljbGVhclRpbWVvdXQoSCksRSghMCksWjAobnVsbCl9KTtyZXR1cm4oKT0+e2NsZWFyVGltZW91dChIKSxMPy4oKX19LFtVLHpdKTtsZXQgbT1qKChWKT0+e2lmKFUpe0s/LihWKTtyZXR1cm59bGV0IEg9Qy5jdXJyZW50O2lmKCFIfHxILnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTilyZXR1cm47bGV0IEw9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKEpTT04uc3RyaW5naWZ5KFYpKSxQPW5ldyBVaW50OEFycmF5KDErTC5sZW5ndGgpO1BbMF09XzYsUC5zZXQoTCwxKSxILnNlbmQoUCl9LFtVLEtdKSxKMD1qKChWKT0+e2lmKFUpe0c/LihWKTtyZXR1cm59bGV0IEg9Qy5jdXJyZW50O2lmKCFIfHxILnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTilyZXR1cm47bGV0IEw9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKEpTT04uc3RyaW5naWZ5KHtidXR0b246Vn0pKSxQPW5ldyBVaW50OEFycmF5KDErTC5sZW5ndGgpO1BbMF09RjYsUC5zZXQoTCwxKSxILnNlbmQoUCl9LFtVLEddKSx5PWooKFYpPT57aWYoVSl7Vz8uKFYpO3JldHVybn1sZXQgSD1DLmN1cnJlbnQ7aWYoIUh8fEgucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXJldHVybjtsZXQgTD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoVikpLFA9bmV3IFVpbnQ4QXJyYXkoMStMLmxlbmd0aCk7UFswXT1ENixQLnNldChMLDEpLEguc2VuZChQKX0sW1UsV10pO2coKCk9PntpZihVKXJldHVybjtmZXRjaChgJHtYfS9jb25maWdgKS50aGVuKChsKT0+bC5qc29uKCkpLnRoZW4oKGwpPT57aWYobC53aWR0aD4wJiZsLmhlaWdodD4wKUswKGwpfSkuY2F0Y2goKCk9Pnt9KTtsZXQgVj1aPz9YLnJlcGxhY2UoL15odHRwLywid3MiKSsiL3dzIixIPW5ldyBXZWJTb2NrZXQoVik7SC5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsQy5jdXJyZW50PUgsSC5vbm9wZW49KCk9PntFKCEwKSxaMChudWxsKX0sSC5vbmNsb3NlPSgpPT57RSghMSl9LEgub25lcnJvcj0oKT0+e1owKCJXZWJTb2NrZXQgY29ubmVjdGlvbiBmYWlsZWQiKSxFKCExKX07bGV0IEw9bmV3IEFib3J0Q29udHJvbGxlcixQPXNldEludGVydmFsKCgpPT57djAoRzAuY3VycmVudCksRzAuY3VycmVudD0wfSwxMDAwKSxEPSExLGI9c2V0VGltZW91dCgoKT0+e2lmKCFEKVowKCJTdHJlYW0gaXMgbm90IHByb2R1Y2luZyBmcmFtZXMuIFRoZSBzaW11bGF0b3IgbWF5IGhhdmUgc3RvcHBlZCDigJQgdHJ5IHJlY29ubmVjdGluZy4iKX0sNjAwMCk7cmV0dXJuKGFzeW5jKCk9Pnt0cnl7bGV0IG49KGF3YWl0IGZldGNoKFIse3NpZ25hbDpMLnNpZ25hbH0pKS5ib2R5Py5nZXRSZWFkZXIoKTtpZighbilyZXR1cm47bGV0IFEwPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZSgiLS1mcmFtZSIpO3doaWxlKCEwKXtsZXR7ZG9uZTpoNSx2YWx1ZTpRNH09YXdhaXQgbi5yZWFkKCk7aWYoaDUpYnJlYWs7aWYoUTQpZm9yKGxldCBLND0wO0s0PD1RNC5sZW5ndGgtUTAubGVuZ3RoO0s0Kyspe2xldCBUND0hMDtmb3IobGV0IHgwPTA7eDA8UTAubGVuZ3RoO3gwKyspaWYoUTRbSzQreDBdIT09UTBbeDBdKXtUND0hMTticmVha31pZihUNCl7aWYoRzAuY3VycmVudCsrLCFEKUQ9ITAsY2xlYXJUaW1lb3V0KGIpfX19fWNhdGNoe319KSgpLCgpPT57TC5hYm9ydCgpLGNsZWFySW50ZXJ2YWwoUCksY2xlYXJUaW1lb3V0KGIpLEguY2xvc2UoKSxDLmN1cnJlbnQ9bnVsbH19LFtYLFIsVV0pO2xldCBYMD13KDApO2coKCk9PntpZighVSlyZXR1cm47bGV0IFY9MjAwMCxIPSgpPT57bGV0IEQ9WDAuY3VycmVudDtpZighRHx8IVQuY3VycmVudClyZXR1cm47aWYoRGF0ZS5ub3coKS1EPlYpRSghMSl9LEw9c2V0SW50ZXJ2YWwoKCk9Pnt2MChHMC5jdXJyZW50KSxHMC5jdXJyZW50PTAsSCgpfSwxMDAwKSxQPSgpPT57aWYoIWRvY3VtZW50LmhpZGRlbilIKCl9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixQKSwoKT0+e2NsZWFySW50ZXJ2YWwoTCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsUCl9fSxbVV0pO2xldCBhPWooKCk9PntyZXR1cm4gVT9JLmN1cnJlbnQ6ay5jdXJyZW50fSxbVV0pLFYwPWooKFYsSCk9PntsZXQgTD1hKCk7aWYoIUwpcmV0dXJuO2xldCBQPUwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRD0oSC5jbGllbnRYLVAubGVmdCkvUC53aWR0aCxiPShILmNsaWVudFktUC50b3ApL1AuaGVpZ2h0O20oe3R5cGU6Vix4OkQseTpifSl9LFttXSksWTA9MyxjPXcoITEpLG89dyghMSksQTA9dyghMSksTTA9dyh7ZHg6MCxkeTowfSksQzA9dyghMSksW1k0LEk0XT1TKCExKSxNND13KHt4OjAuNSx5OjAuNX0pLFtIMCxxMF09UyhudWxsKTtnKCgpPT57bGV0IFY9KEwpPT57aWYoTC5rZXk9PT0iQWx0IilJNCghMCl9LEg9KEwpPT57aWYoTC5rZXk9PT0iQWx0Iil7aWYoSTQoITEpLCFvLmN1cnJlbnQpcTAobnVsbCl9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFYpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsSCksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsViksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIixIKX19LFtdKSxnKCgpPT57aWYoWTQmJiFvLmN1cnJlbnQpe2xldCBWPU00LmN1cnJlbnQ7cTAoe3gxOlYueCx5MTpWLnkseDI6MS1WLngseTI6MS1WLnl9KX1lbHNlIGlmKCFZNCYmIW8uY3VycmVudClxMChudWxsKX0sW1k0XSk7bGV0IHkwPXcobnVsbCkscTQ9dyghMSksRTA9dygwKSxDND1qKChWLEgpPT57cTQuY3VycmVudD0hMDtsZXQgTD15MC5jdXJyZW50O2lmKEwpY2FuY2VsQW5pbWF0aW9uRnJhbWUoRTAuY3VycmVudCksRTAuY3VycmVudD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntMLnN0eWxlLmxlZnQ9YCR7VioxMDB9JWAsTC5zdHlsZS50b3A9YCR7SCoxMDB9JWAsTC5zdHlsZS5kaXNwbGF5PSJibG9jayJ9KX0sW10pLEU0PWooKFYsSCk9PntpZighcTQuY3VycmVudClyZXR1cm47bGV0IEw9eTAuY3VycmVudDtpZihMKWNhbmNlbEFuaW1hdGlvbkZyYW1lKEUwLmN1cnJlbnQpLEUwLmN1cnJlbnQ9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57TC5zdHlsZS5sZWZ0PWAke1YqMTAwfSVgLEwuc3R5bGUudG9wPWAke0gqMTAwfSVgfSl9LFtdKSxwMD1qKCgpPT57cTQuY3VycmVudD0hMTtsZXQgVj15MC5jdXJyZW50O2lmKFYpY2FuY2VsQW5pbWF0aW9uRnJhbWUoRTAuY3VycmVudCksVi5zdHlsZS5kaXNwbGF5PSJub25lIn0sW10pLHc0PXcoMCksdzA9dyhudWxsKSx4NT1qKCgpPT57bGV0IFY9RGF0ZS5ub3coKSxIPVYtdzQuY3VycmVudDtpZih3NC5jdXJyZW50PVYsSDwzMDApe2lmKHcwLmN1cnJlbnQpY2xlYXJUaW1lb3V0KHcwLmN1cnJlbnQpLHcwLmN1cnJlbnQ9bnVsbDtpZihRKVEoKTtlbHNlIEowKCJhcHBfc3dpdGNoZXIiKX1lbHNlIHcwLmN1cnJlbnQ9c2V0VGltZW91dCgoKT0+e2lmKFEpUSgpO2Vsc2UgSjAoImhvbWUiKTt3MC5jdXJyZW50PW51bGx9LDMwMCl9LFtKMCxRXSksZzA9KCgpPT57aWYoIXh8fCFyKXJldHVybiBudWxsO2lmKHIud2lkdGg9PT0wfHxyLmhlaWdodD09PTApcmV0dXJuIG51bGw7bGV0IFY9TWF0aC5taW4oci53aWR0aC94LndpZHRoLHIuaGVpZ2h0L3guaGVpZ2h0KTtyZXR1cm57d2lkdGg6eC53aWR0aCpWLGhlaWdodDp4LmhlaWdodCpWfX0pKCk7cmV0dXJuIE4oImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGZsZXg6MSwuLi5fP3t9Ontib3JkZXI6IjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpIn0sb3ZlcmZsb3c6ImhpZGRlbiIsbWluV2lkdGg6MCxtaW5IZWlnaHQ6MCwuLi5KfSxjbGFzc05hbWU6cSxjaGlsZHJlbjpbTigiZGl2Iix7cmVmOnMsc3R5bGU6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsZmxleDoxLG1pbkhlaWdodDowLG1pbldpZHRoOjAsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0sY2hpbGRyZW46TigiZGl2Iix7c3R5bGU6e3Bvc2l0aW9uOiJyZWxhdGl2ZSIsd2lkdGg6ZzA/YCR7ZzAud2lkdGh9cHhgOiIxMDAlIixoZWlnaHQ6ZzA/YCR7ZzAuaGVpZ2h0fXB4YDoiMTAwJSJ9LGNoaWxkcmVuOltOKCJpbWciLHtyZWY6ayxzcmM6VT92b2lkIDA6UixkcmFnZ2FibGU6ITEsb25Mb2FkOihWKT0+e2xldCBIPVYuY3VycmVudFRhcmdldDtpZihILm5hdHVyYWxXaWR0aD4wJiZILm5hdHVyYWxIZWlnaHQ+MClLMCgoTCk9PkwmJkwud2lkdGg9PT1ILm5hdHVyYWxXaWR0aCYmTC5oZWlnaHQ9PT1ILm5hdHVyYWxIZWlnaHQ/TDp7d2lkdGg6SC5uYXR1cmFsV2lkdGgsaGVpZ2h0OkgubmF0dXJhbEhlaWdodH0pfSxzdHlsZTpVP3tkaXNwbGF5OiJub25lIn06e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixjdXJzb3I6RDQsZGlzcGxheToiYmxvY2siLHVzZXJTZWxlY3Q6Im5vbmUiLFdlYmtpdFVzZXJTZWxlY3Q6Im5vbmUiLHRvdWNoQWN0aW9uOiJub25lIiwuLi5ZfX0pLFUmJk4oImltZyIse3JlZjpJLGRyYWdnYWJsZTohMSxvbkxvYWQ6KFYpPT57bGV0IEg9Vi5jdXJyZW50VGFyZ2V0O2lmKEgubmF0dXJhbFdpZHRoPjAmJkgubmF0dXJhbEhlaWdodD4wKUswKChMKT0+TCYmTC53aWR0aD09PUgubmF0dXJhbFdpZHRoJiZMLmhlaWdodD09PUgubmF0dXJhbEhlaWdodD9MOnt3aWR0aDpILm5hdHVyYWxXaWR0aCxoZWlnaHQ6SC5uYXR1cmFsSGVpZ2h0fSl9LHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsd2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsY3Vyc29yOkQ0LGRpc3BsYXk6ImJsb2NrIix1c2VyU2VsZWN0OiJub25lIixXZWJraXRVc2VyU2VsZWN0OiJub25lIix0b3VjaEFjdGlvbjoibm9uZSIsLi4uWX19KSxOKCJkaXYiLHtzdHlsZTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGN1cnNvcjpENCx0b3VjaEFjdGlvbjoibm9uZSJ9LG9uTW91c2VEb3duOihWKT0+e1YucHJldmVudERlZmF1bHQoKTtsZXQgSD1hKCk7aWYoIUgpcmV0dXJuO2xldCBMPUguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUD0oVi5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxEPShWLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O2lmKFYuYWx0S2V5KXtvLmN1cnJlbnQ9ITAsQTAuY3VycmVudD1WLnNoaWZ0S2V5O2xldCBiPXt4MTpQLHkxOkQseDI6MS1QLHkyOjEtRH07TTAuY3VycmVudD17ZHg6MS1QLVAsZHk6MS1ELUR9LHEwKGIpLHkoe3R5cGU6ImJlZ2luIiwuLi5ifSk7cmV0dXJufWlmKEM0KFAsRCksRD4wLjg4KWMuY3VycmVudD0hMCxtKHt0eXBlOiJiZWdpbiIseDpQLHk6RCxlZGdlOlkwfSk7ZWxzZSBjLmN1cnJlbnQ9ITEsVjAoImJlZ2luIixWKX0sb25Nb3VzZU1vdmU6KFYpPT57bGV0IEg9YSgpO2lmKCFIKXJldHVybjtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFA9KFYuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgsRD0oVi5jbGllbnRZLUwudG9wKS9MLmhlaWdodDtpZihNNC5jdXJyZW50PXt4OlAseTpEfSxWLmJ1dHRvbnM9PT0wKXtpZihWLmFsdEtleSlxMCh7eDE6UCx5MTpELHgyOjEtUCx5MjoxLUR9KTtyZXR1cm59aWYoby5jdXJyZW50KXtsZXQgYjtpZihBMC5jdXJyZW50KXtsZXQgbD1NMC5jdXJyZW50O2I9e3gxOlAseTE6RCx4MjpQK2wuZHgseTI6RCtsLmR5fX1lbHNlIGI9e3gxOlAseTE6RCx4MjoxLVAseTI6MS1EfTtxMChiKSx5KHt0eXBlOiJtb3ZlIiwuLi5ifSk7cmV0dXJufWlmKEU0KFAsRCksYy5jdXJyZW50KW0oe3R5cGU6Im1vdmUiLHg6UCx5OkQsZWRnZTpZMH0pO2Vsc2UgVjAoIm1vdmUiLFYpfSxvbk1vdXNlVXA6KFYpPT57aWYoby5jdXJyZW50KXtsZXQgSD1hKCk7aWYoSCl7bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxQPShWLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLEQ9KFYuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQ7aWYoQTAuY3VycmVudCl7bGV0IGI9TTAuY3VycmVudDt5KHt0eXBlOiJlbmQiLHgxOlAseTE6RCx4MjpQK2IuZHgseTI6RCtiLmR5fSl9ZWxzZSB5KHt0eXBlOiJlbmQiLHgxOlAseTE6RCx4MjoxLVAseTI6MS1EfSl9aWYoby5jdXJyZW50PSExLCFWLmFsdEtleSlxMChudWxsKTtyZXR1cm59aWYocDAoKSxjLmN1cnJlbnQpe2xldCBIPWEoKTtpZihIKXtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFA9KFYuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgsRD0oVi5jbGllbnRZLUwudG9wKS9MLmhlaWdodDttKHt0eXBlOiJlbmQiLHg6UCx5OkQsZWRnZTpZMH0pfWMuY3VycmVudD0hMTtyZXR1cm59VjAoImVuZCIsVil9LG9uTW91c2VMZWF2ZTooVik9PntpZihvLmN1cnJlbnQpe2lmKEgwKXkoe3R5cGU6ImVuZCIsLi4uSDB9KTtvLmN1cnJlbnQ9ITEscTAobnVsbCk7cmV0dXJufWlmKHAwKCksYy5jdXJyZW50KXtsZXQgSD1hKCk7aWYoSCl7bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxQPShWLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLEQ9KFYuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQ7bSh7dHlwZToiZW5kIix4OlAseTpELGVkZ2U6WTB9KX1jLmN1cnJlbnQ9ITE7cmV0dXJufWlmKFYuYnV0dG9ucz4wKVYwKCJlbmQiLFYpO3EwKG51bGwpfSxvblRvdWNoU3RhcnQ6KFYpPT57Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBIPWEoKTtpZighSClyZXR1cm47bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihWLnRvdWNoZXMubGVuZ3RoPj0yKXtwMCgpO2xldCBsPVYudG91Y2hlc1swXSxuPVYudG91Y2hlc1sxXSxRMD17eDE6KGwuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgseTE6KGwuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQseDI6KG4uY2xpZW50WC1MLmxlZnQpL0wud2lkdGgseTI6KG4uY2xpZW50WS1MLnRvcCkvTC5oZWlnaHR9O2lmKCFDMC5jdXJyZW50JiYhYy5jdXJyZW50KW0oe3R5cGU6ImVuZCIseDpRMC54MSx5OlEwLnkxfSk7QzAuY3VycmVudD0hMCxvLmN1cnJlbnQ9ITAsYy5jdXJyZW50PSExLHEwKFEwKSx5KHt0eXBlOiJiZWdpbiIsLi4uUTB9KTtyZXR1cm59bGV0IFA9Vi50b3VjaGVzWzBdO2lmKCFQKXJldHVybjtsZXQgRD0oUC5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxiPShQLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O2lmKEM0KEQsYiksYj4wLjg4KWMuY3VycmVudD0hMCxtKHt0eXBlOiJiZWdpbiIseDpELHk6YixlZGdlOlkwfSk7ZWxzZSBjLmN1cnJlbnQ9ITEsbSh7dHlwZToiYmVnaW4iLHg6RCx5OmJ9KX0sb25Ub3VjaE1vdmU6KFYpPT57Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBIPWEoKTtpZighSClyZXR1cm47bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihDMC5jdXJyZW50JiZWLnRvdWNoZXMubGVuZ3RoPj0yKXtsZXQgbD1WLnRvdWNoZXNbMF0sbj1WLnRvdWNoZXNbMV0sUTA9e3gxOihsLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLHkxOihsLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0LHgyOihuLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLHkyOihuLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0fTtxMChRMCkseSh7dHlwZToibW92ZSIsLi4uUTB9KTtyZXR1cm59bGV0IFA9Vi50b3VjaGVzWzBdO2lmKCFQKXJldHVybjtsZXQgRD0oUC5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxiPShQLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O2lmKEU0KEQsYiksYy5jdXJyZW50KW0oe3R5cGU6Im1vdmUiLHg6RCx5OmIsZWRnZTpZMH0pO2Vsc2UgbSh7dHlwZToibW92ZSIseDpELHk6Yn0pfSxvblRvdWNoRW5kOihWKT0+e1YucHJldmVudERlZmF1bHQoKTtsZXQgSD1hKCk7aWYoIUgpcmV0dXJuO2xldCBMPUguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoQzAuY3VycmVudCl7aWYoVi50b3VjaGVzLmxlbmd0aDwyKXtsZXQgbD1WLmNoYW5nZWRUb3VjaGVzWzBdLG49SDA7aWYobCYmbil5KHt0eXBlOiJlbmQiLHgxOihsLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLHkxOihsLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0LHgyOm4ueDIseTI6bi55Mn0pO2Vsc2UgaWYobil5KHt0eXBlOiJlbmQiLC4uLm59KTtDMC5jdXJyZW50PSExLG8uY3VycmVudD0hMSxxMChudWxsKX1yZXR1cm59bGV0IFA9Vi5jaGFuZ2VkVG91Y2hlc1swXTtpZighUClyZXR1cm47bGV0IEQ9KFAuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgsYj0oUC5jbGllbnRZLUwudG9wKS9MLmhlaWdodDtpZihwMCgpLGMuY3VycmVudCltKHt0eXBlOiJlbmQiLHg6RCx5OmIsZWRnZTpZMH0pLGMuY3VycmVudD0hMTtlbHNlIG0oe3R5cGU6ImVuZCIseDpELHk6Yn0pfX0pLE4oImRpdiIse3JlZjp5MCwiZGF0YS10ZXN0aWQiOiJ0b3VjaC1pbmRpY2F0b3IiLHN0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGRpc3BsYXk6Im5vbmUiLHdpZHRoOjI0LGhlaWdodDoyNCxib3JkZXJSYWRpdXM6IjUwJSIsYmFja2dyb3VuZDoicmdiYSg1OSwxMzAsMjQ2LDAuNSkiLGJveFNoYWRvdzoiMCAwIDhweCByZ2JhKDU5LDEzMCwyNDYsMC4zKSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGUoLTUwJSwgLTUwJSkiLHBvaW50ZXJFdmVudHM6Im5vbmUifX0pLEgwJiZOKGYse2NoaWxkcmVuOltOKCJkaXYiLHsiZGF0YS10ZXN0aWQiOiJmaW5nZXItZG90IixzdHlsZTpqNShIMC54MSxIMC55MSl9KSxOKCJkaXYiLHsiZGF0YS10ZXN0aWQiOiJmaW5nZXItZG90IixzdHlsZTpqNShIMC54MixIMC55Mil9KV19KSwhaCYmIWUmJk4oImRpdiIse3N0eWxlOlM1LGNoaWxkcmVuOk4oInNwYW4iLHtzdHlsZTp7Y29sb3I6IiM4ODgiLGZvbnRTaXplOjE0fSxjaGlsZHJlbjoiQ29ubmVjdGluZy4uLiJ9KX0pLGUmJk4oImRpdiIse3N0eWxlOlM1LGNoaWxkcmVuOk4oInNwYW4iLHtzdHlsZTp7Y29sb3I6IiNmNDQiLGZvbnRTaXplOjE0LHBhZGRpbmc6MjAsdGV4dEFsaWduOiJjZW50ZXIifSxjaGlsZHJlbjplfSl9KSxKNCYmTigiZGl2Iix7c3R5bGU6azYsY2hpbGRyZW46Tigic3BhbiIse3N0eWxlOntjb2xvcjoiI2ZiYmYyNCIsZm9udFNpemU6MTMsZm9udEZhbWlseToibW9ub3NwYWNlIn0sY2hpbGRyZW46IlNsb3cgY29ubmVjdGlvbiJ9KX0pXX0pfSksIV8mJk4oImRpdiIse3N0eWxlOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixwYWRkaW5nOiI0cHggOHB4Iixib3JkZXJUb3A6IjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpIn0sY2hpbGRyZW46W04oImJ1dHRvbiIse29uQ2xpY2s6eDUsc3R5bGU6e2JhY2tncm91bmQ6Im5vbmUiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4yKSIsY29sb3I6IiNhYWEiLGZvbnRTaXplOjExLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSIscGFkZGluZzoiMnB4IDEwcHgiLGN1cnNvcjoicG9pbnRlciIsYm9yZGVyUmFkaXVzOjR9LGNoaWxkcmVuOiJIb21lIn0pLE4oInNwYW4iLHtzdHlsZTp7Y29sb3I6ajA+MD8iIzRmNCI6IiM4ODgiLGZvbnRTaXplOjEyLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSIsZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixnYXA6Nn0sY2hpbGRyZW46W00mJk4oInNwYW4iLHsiZGF0YS10ZXN0aWQiOiJxdWFsaXR5LWRvdCIsc3R5bGU6e3dpZHRoOjgsaGVpZ2h0OjgsYm9yZGVyUmFkaXVzOiI1MCUiLGRpc3BsYXk6ImlubGluZS1ibG9jayIsYmFja2dyb3VuZDpNPT09Imdvb2QiPyIjNGFkZTgwIjpNPT09ImRlZ3JhZGVkIj8iI2ZhY2MxNSI6IiNlZjQ0NDQifX0pLGowLCIgZnBzIl19KV19KV19KX12YXIgazY9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOjgsbGVmdDoiNTAlIix0cmFuc2Zvcm06InRyYW5zbGF0ZVgoLTUwJSkiLGJhY2tncm91bmQ6InJnYmEoMCwwLDAsMC43KSIsYm9yZGVyUmFkaXVzOjYscGFkZGluZzoiNHB4IDEycHgiLHBvaW50ZXJFdmVudHM6Im5vbmUifSxTNT17cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsYmFja2dyb3VuZDoicmdiYSgwLDAsMCwwLjgpIn0sUjU9MjA7ZnVuY3Rpb24gajUoWCxaKXtyZXR1cm57cG9zaXRpb246ImFic29sdXRlIixsZWZ0OmAke1gqMTAwfSVgLHRvcDpgJHtaKjEwMH0lYCx3aWR0aDpSNSxoZWlnaHQ6UjUsYm9yZGVyUmFkaXVzOiI1MCUiLGJhY2tncm91bmQ6InJnYmEoMjU1LDI1NSwyNTUsMC40KSIsYm9yZGVyOiIxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjcpIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgtNTAlLCAtNTAlKSIscG9pbnRlckV2ZW50czoibm9uZSJ9fWZ1bmN0aW9uIGswKFgpe2lmKCFYKXJldHVybiJpcGhvbmUiO2xldCBaPVgudG9Mb3dlckNhc2UoKTtpZihaLmluY2x1ZGVzKCJpcGFkIikpcmV0dXJuImlwYWQiO2lmKFouaW5jbHVkZXMoIndhdGNoIikpcmV0dXJuIndhdGNoIjtpZihaLmluY2x1ZGVzKCJ2aXNpb24iKSlyZXR1cm4idmlzaW9uIjtyZXR1cm4iaXBob25lIn12YXIgJDA9e2lwaG9uZTp7d2lkdGg6NDI3LGhlaWdodDo4ODEsYmV6ZWxYOjE4LGJlemVsWToxOCxpbm5lclJhZGl1czo1NX0saXBhZDp7d2lkdGg6NDMwLGhlaWdodDo2MDUsYmV6ZWxYOjE2LGJlemVsWToxNixpbm5lclJhZGl1czoxMn0sd2F0Y2g6e3dpZHRoOjI3NCxoZWlnaHQ6MzIyLGJlemVsWDoxMixiZXplbFk6MTIsaW5uZXJSYWRpdXM6Nzl9LHZpc2lvbjp7d2lkdGg6NjQwLGhlaWdodDo0MDAsYmV6ZWxYOjEyLGJlemVsWToxMixpbm5lclJhZGl1czozMn19LGI3PSQwLmlwaG9uZS53aWR0aCxTNz0kMC5pcGhvbmUuaGVpZ2h0LFI3PSQwLmlwaG9uZS5iZXplbFgsajc9JDAuaXBob25lLmJlemVsWSx2Nz0kMC5pcGhvbmUuaW5uZXJSYWRpdXM7ZnVuY3Rpb24gZTAoWD0iaXBob25lIil7bGV0IFo9JDBbWF0sSj1aLndpZHRoLTIqWi5iZXplbFgsWT1aLmhlaWdodC0yKlouYmV6ZWxZO3JldHVybmAke1ouaW5uZXJSYWRpdXMvSioxMDB9JSAvICR7Wi5pbm5lclJhZGl1cy9ZKjEwMH0lYH12YXIgazQ9XzAobnVsbCk7ZnVuY3Rpb24gWDQoWCl7bGV0IFo9UjAoazQpO2lmKCFaKXRocm93IEVycm9yKGA8U2ltdWxhdG9yVG9vbGJhci4ke1h9PiBtdXN0IGJlIHJlbmRlcmVkIGluc2lkZSA8U2ltdWxhdG9yVG9vbGJhcj5gKTtyZXR1cm4gWn12YXIgdzY9e2Rpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJ3cmFwIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixnYXA6IjRweCAxMnB4IixwYWRkaW5nOiI4cHggMTJweCIsYm9yZGVyUmFkaXVzOjI0LGJhY2tncm91bmQ6IiMxYzFjMWUiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSIsYm94U2hhZG93OiIwIDFweCAycHggcmdiYSgwLDAsMCwwLjIpIixtaW5XaWR0aDoyNDAsd2lkdGg6IjEwMCUifTtmdW5jdGlvbiBUNih7ZXhlYzpYLGRldmljZVVkaWQ6WixkZXZpY2VOYW1lOkosZGV2aWNlUnVudGltZTpZLHN0cmVhbWluZzpxPSExLGRpc2FibGVkOlE9ITEsY2hpbGRyZW46SyxzdHlsZTpXLC4uLkd9KXtsZXQgej1rMChKKSwkPXtleGVjOlgsZGV2aWNlVWRpZDpaLGRldmljZU5hbWU6SixkZXZpY2VSdW50aW1lOlksZGV2aWNlVHlwZTp6LHN0cmVhbWluZzpxLGRpc2FibGVkOlF8fCFafHwhcX07cmV0dXJuIE4oazQuUHJvdmlkZXIse3ZhbHVlOiQsY2hpbGRyZW46TigiZGl2Iix7ImRhdGEtc2ltdWxhdG9yLXRvb2xiYXIiOiEwLHN0eWxlOnsuLi53NiwuLi5XfSwuLi5HLGNoaWxkcmVuOkt9KX0pfXZhciBiNj17ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0Iix0ZXh0QWxpZ246ImxlZnQiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGNvbG9yOiIjZmZmIixwYWRkaW5nOiIycHggNHB4IixtYXJnaW46Ii0ycHggLTRweCIsYm9yZGVyUmFkaXVzOjYsY3Vyc29yOiJwb2ludGVyIixtaW5XaWR0aDowLG1heFdpZHRoOiIxMDAlIixsaW5lSGVpZ2h0OjEuMixmb250RmFtaWx5OiJpbmhlcml0In0sUzY9RDAoZnVuY3Rpb24oe25hbWU6WixzdWJ0aXRsZTpKLGhpZGVDaGV2cm9uOlksc3R5bGU6cSxvbk1vdXNlRW50ZXI6USxvbk1vdXNlTGVhdmU6SywuLi5XfSxHKXtsZXQgej1YNCgiVGl0bGUiKSxbTywkXT1TKCExKSxfPVo/P3ouZGV2aWNlTmFtZT8/Ik5vIHNpbXVsYXRvciIsQT1KPz8oei5kZXZpY2VSdW50aW1lP3ouZGV2aWNlUnVudGltZS5yZXBsYWNlKC9cLi8sIiAiKToi4oCUIik7cmV0dXJuIE4oImJ1dHRvbiIse3JlZjpHLHR5cGU6ImJ1dHRvbiIsImRhdGEtc2ltdWxhdG9yLXRvb2xiYXItdGl0bGUiOiEwLG9uTW91c2VFbnRlcjooTSk9PnskKCEwKSxRPy4oTSl9LG9uTW91c2VMZWF2ZTooTSk9PnskKCExKSxLPy4oTSl9LHN0eWxlOnsuLi5iNixiYWNrZ3JvdW5kOk8/InJnYmEoMjU1LDI1NSwyNTUsMC4xKSI6InRyYW5zcGFyZW50IiwuLi5xfSwuLi5XLGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo0LGZvbnRTaXplOjEyLGZvbnRXZWlnaHQ6NjAwLGNvbG9yOiIjZmZmIixtYXhXaWR0aDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsd2hpdGVTcGFjZToibm93cmFwIn0sY2hpbGRyZW46W18sIVkmJk4oInN2ZyIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxMCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIuNSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3R5bGU6e2NvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDAuNikiLGZsZXhTaHJpbms6MH0sY2hpbGRyZW46TigicG9seWxpbmUiLHtwb2ludHM6IjYgOSAxMiAxNSAxOCA5In0pfSldfSksTigic3BhbiIse3N0eWxlOntmb250U2l6ZToxMCxjb2xvcjoicmdiYSgyNTUsMjU1LDI1NSwwLjUpIixtYXhXaWR0aDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsd2hpdGVTcGFjZToibm93cmFwIn0sY2hpbGRyZW46QX0pXX0pfSksUjY9e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjQsZmxleFNocmluazowfTtmdW5jdGlvbiBqNih7c3R5bGU6WCwuLi5afSl7cmV0dXJuIE4oImRpdiIse3N0eWxlOnsuLi5SNiwuLi5YfSwuLi5afSl9dmFyIHY2PXtiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIixwYWRkaW5nOjYsYm9yZGVyUmFkaXVzOjYsY3Vyc29yOiJwb2ludGVyIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixjb2xvcjoicmdiYSgyNTUsMjU1LDI1NSwwLjgpIix0cmFuc2l0aW9uOiJiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzLCBjb2xvciAwLjE1cyJ9LFo0PUQwKGZ1bmN0aW9uKHtmb3JjZURpc2FibGVkOlosc3R5bGU6SixkaXNhYmxlZDpZLG9uTW91c2VFbnRlcjpxLG9uTW91c2VMZWF2ZTpRLGNoaWxkcmVuOkssLi4uV30sRyl7bGV0IHo9UjAoazQpLE89WXx8Wnx8ej8uZGlzYWJsZWQsWyQsX109UyghMSk7cmV0dXJuIE4oImJ1dHRvbiIse3JlZjpHLHR5cGU6ImJ1dHRvbiIsZGlzYWJsZWQ6Tyxvbk1vdXNlRW50ZXI6KEEpPT57XyghMCkscT8uKEEpfSxvbk1vdXNlTGVhdmU6KEEpPT57XyghMSksUT8uKEEpfSxzdHlsZTp7Li4udjYsY29sb3I6Tz8icmdiYSgyNTUsMjU1LDI1NSwwLjI1KSI6InJnYmEoMjU1LDI1NSwyNTUsMC44KSIsYmFja2dyb3VuZDokJiYhTz8icmdiYSgyNTUsMjU1LDI1NSwwLjEpIjoidHJhbnNwYXJlbnQiLGN1cnNvcjpPPyJub3QtYWxsb3dlZCI6InBvaW50ZXIiLC4uLkp9LC4uLlcsY2hpbGRyZW46S30pfSk7ZnVuY3Rpb24geTYoKXtyZXR1cm5bJ3RlbGwgYXBwbGljYXRpb24gIlN5c3RlbSBFdmVudHMiIHRvIHRlbGwgcHJvY2VzcyAiU2ltdWxhdG9yIiB0byBzZXQgZnJvbnRtb3N0IHRvIHRydWUnLCd0ZWxsIGFwcGxpY2F0aW9uICJTeXN0ZW0gRXZlbnRzIiB0byB0ZWxsIHByb2Nlc3MgIlNpbXVsYXRvciIgdG8gcGVyZm9ybSBhY3Rpb24gIkFYUmFpc2UiIG9mIChmaXJzdCB3aW5kb3cgd2hvc2UgbmFtZSBjb250YWlucyAid2F0Y2hPUyIpJywndGVsbCBhcHBsaWNhdGlvbiAiU3lzdGVtIEV2ZW50cyIgdG8gdGVsbCBwcm9jZXNzICJTaW11bGF0b3IiIHRvIGNsaWNrIG1lbnUgaXRlbSAiSG9tZSIgb2YgbWVudSAiRGV2aWNlIiBvZiBtZW51IGJhciBpdGVtICJEZXZpY2UiIG9mIG1lbnUgYmFyIDEnXS5tYXAoKFopPT5gLWUgJyR7Wn0nYCkucmVkdWNlKChaLEopPT5gJHtafSAke0p9YCwib3Nhc2NyaXB0Iil9dmFyIHA2PU4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLGNoaWxkcmVuOk4oInBhdGgiLHtkOiJNMyAxMC41IDEyIDNsOSA3LjVWMjBhMSAxIDAgMCAxLTEgMWgtNXYtN2gtNnY3SDRhMSAxIDAgMCAxLTEtMXoifSl9KSxnNj1OKCJzdmciLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIyIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixjaGlsZHJlbjpbTigicGF0aCIse2Q6Ik0xNC41IDRoLTVMNyA3SDRhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTN6In0pLE4oImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI0In0pXX0pLHg2PU4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDEyIDEzIixmaWxsOiJjdXJyZW50Q29sb3IiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46TigicGF0aCIse2Q6Ik0xMC4yMzA1IDEyLjgwNzdINC40MjM4M0MzLjkyMzgzIDEyLjgwNzcgMy41NDY4OCAxMi42ODQ2IDMuMjkyOTcgMTIuNDM4NUMzLjA0Mjk3IDEyLjE5NjMgMi45MTc5NyAxMS44MTk0IDIuOTE3OTcgMTEuMzA3N1Y1LjUxMjc0QzIuOTE3OTcgNC45OTcxMSAzLjA0Mjk3IDQuNjE4MjEgMy4yOTI5NyA0LjM3NjAyQzMuNTQ2ODggNC4xMjk5MyAzLjkyMzgzIDQuMDA2ODggNC40MjM4MyA0LjAwNjg4SDEwLjIzMDVDMTAuNzM0NCA0LjAwNjg4IDExLjExMTMgNC4xMjk5MyAxMS4zNjEzIDQuMzc2MDJDMTEuNjExMyA0LjYxODIxIDExLjczNjMgNC45OTcxMSAxMS43MzYzIDUuNTEyNzRWMTEuMzA3N0MxMS43MzYzIDExLjgxOTQgMTEuNjExMyAxMi4xOTYzIDExLjM2MTMgMTIuNDM4NUMxMS4xMTEzIDEyLjY4NDYgMTAuNzM0NCAxMi44MDc3IDEwLjIzMDUgMTIuODA3N1pNMTAuMjEyOSAxMS44NjQzQzEwLjQxNiAxMS44NjQzIDEwLjU2MjUgMTEuODE5NCAxMC42NTIzIDExLjcyOTVDMTAuNzQ2MSAxMS42NDM2IDEwLjc5MyAxMS40OTcxIDEwLjc5MyAxMS4yOTAxVjUuNTI0NDZDMTAuNzkzIDUuMzE3NDMgMTAuNzQ2MSA1LjE3MDk0IDEwLjY1MjMgNS4wODUwMUMxMC41NjI1IDQuOTk1MTYgMTAuNDE2IDQuOTUwMjQgMTAuMjEyOSA0Ljk1MDI0SDQuNDQxNDFDNC4yNDIxOSA0Ljk1MDI0IDQuMDk1NyA0Ljk5NTE2IDQuMDAxOTUgNS4wODUwMUMzLjkwODIgNS4xNzA5NCAzLjg2MTMzIDUuMzE3NDMgMy44NjEzMyA1LjUyNDQ2VjExLjI5MDFDMy44NjEzMyAxMS40OTcxIDMuOTA4MiAxMS42NDM2IDQuMDAxOTUgMTEuNzI5NUM0LjA5NTcgMTEuODE5NCA0LjI0MjE5IDExLjg2NDMgNC40NDE0MSAxMS44NjQzSDEwLjIxMjlaTTIuOTE3OTcgMi41ODMwNVYwLjQxNTA4M0MyLjkxNzk3IDAuMjAwMjQgMi45ODYzMyAwLjA2OTM4MDMgMy4xMjMwNSAwLjAyMjUwNTNDMy4yNTk3NyAtMC4wMjgyNzU5IDMuNDEwMTYgMC4wMDY4ODAzMyAzLjU3NDIyIDAuMTI3OTc0TDUuMDUwNzggMS4yMTE5NkM1LjE3NTc4IDEuMzA1NzEgNS4yMzgyOCAxLjQwMTQxIDUuMjM4MjggMS40OTkwN0M1LjIzODI4IDEuNTk2NzIgNS4xNzU3OCAxLjY5MjQzIDUuMDUwNzggMS43ODYxOEwzLjU3NDIyIDIuODY0M0MzLjQxMDE2IDIuOTg1NCAzLjI1OTc3IDMuMDIyNTEgMy4xMjMwNSAyLjk3NTYzQzIuOTg2MzMgMi45MjQ4NSAyLjkxNzk3IDIuNzkzOTkgMi45MTc5NyAyLjU4MzA1Wk0zLjUzMzIgMS4xNTMzNkMzLjYyNjk1IDEuMTUzMzYgMy43MDcwMyAxLjE4NjU3IDMuNzczNDQgMS4yNTI5N0MzLjg0Mzc1IDEuMzE5MzggMy44Nzg5MSAxLjM5NzUxIDMuODc4OTEgMS40ODczNUMzLjg3ODkxIDEuNTgxMSAzLjg0Mzc1IDEuNjYzMTMgMy43NzM0NCAxLjczMzQ0QzMuNzA3MDMgMS43OTk4NSAzLjYyNjk1IDEuODMzMDUgMy41MzMyIDEuODMzMDVIMi44MDY2NEMyLjM4MDg2IDEuODMzMDUgMi4wMTE3MiAxLjkyNDg1IDEuNjk5MjIgMi4xMDg0NEMxLjM5MDYyIDIuMjg4MTMgMS4xNTIzNCAyLjUzODEzIDAuOTg0Mzc1IDIuODU4NDRDMC44MTY0MDYgMy4xNzg3NiAwLjczMjQyMiAzLjU0NTk0IDAuNzMyNDIyIDMuOTYwMDFWNC44Mzg5MUMwLjczMjQyMiA0LjkzNjU3IDAuNjk3MjY2IDUuMDIyNTEgMC42MjY5NTMgNS4wOTY3MkMwLjU1MjczNCA1LjE2NzA0IDAuNDY0ODQ0IDUuMjAyMTkgMC4zNjMyODEgNS4yMDIxOUMwLjI2NTYyNSA1LjIwMjE5IDAuMTgxNjQxIDUuMTY3MDQgMC4xMTEzMjggNS4wOTY3MkMwLjAzNzEwOTQgNS4wMjI1MSAwIDQuOTM2NTcgMCA0LjgzODkxVjMuOTYwMDFDMCAzLjQwMTQxIDAuMTE3MTg4IDIuOTExMTggMC4zNTE1NjIgMi40ODkzQzAuNTgyMDMxIDIuMDY3NDMgMC45MDgyMDMgMS43MzkzIDEuMzMwMDggMS41MDQ5M0MxLjc0ODA1IDEuMjcwNTUgMi4yMzgyOCAxLjE1MzM2IDIuODAwNzggMS4xNTMzNkgzLjUzMzJaIn0pfSksaDY9RDAoZnVuY3Rpb24oe29uQ2xpY2s6WiwuLi5KfSxZKXtsZXQgcT1YNCgiSG9tZUJ1dHRvbiIpO3JldHVybiBOKFo0LHtyZWY6WSwiYXJpYS1sYWJlbCI6IkhvbWUiLG9uQ2xpY2s6KFEpPT57aWYoWj8uKFEpLFEuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYocS5kZXZpY2VUeXBlPT09IndhdGNoIilxLmV4ZWMoeTYoKSk7ZWxzZSBxLmV4ZWMoInNlcnZlLXNpbSBidXR0b24gaG9tZSIpfSwuLi5KLGNoaWxkcmVuOnA2fSl9KSxtNj1EMChmdW5jdGlvbih7b25DbGljazpaLC4uLkp9LFkpe2xldCBxPVg0KCJTY3JlZW5zaG90QnV0dG9uIik7cmV0dXJuIE4oWjQse3JlZjpZLCJhcmlhLWxhYmVsIjoiU2NyZWVuc2hvdCIsb25DbGljazooUSk9PntpZihaPy4oUSksUS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZihxLmRldmljZVVkaWQpcS5leGVjKGB4Y3J1biBzaW1jdGwgaW8gJHtxLmRldmljZVVkaWR9IHNjcmVlbnNob3Qgfi9EZXNrdG9wL2hhdGNoLXNjcmVlbnNob3QtJChkYXRlICslcykucG5nYCl9LC4uLkosY2hpbGRyZW46ZzZ9KX0pLGY2PUQwKGZ1bmN0aW9uKHtvbkNsaWNrOlosLi4uSn0sWSl7bGV0IHE9WDQoIlJvdGF0ZUJ1dHRvbiIpO3JldHVybiBOKFo0LHtyZWY6WSwiYXJpYS1sYWJlbCI6IlJvdGF0ZSBkZXZpY2UiLG9uQ2xpY2s6KFEpPT57aWYoWj8uKFEpLFEuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYocS5kZXZpY2VVZGlkKXEuZXhlYyhgb3Nhc2NyaXB0IC1lICd0ZWxsIGFwcGxpY2F0aW9uICJTaW11bGF0b3IiIHRvIGFjdGl2YXRlJyAtZSAndGVsbCBhcHBsaWNhdGlvbiAiU3lzdGVtIEV2ZW50cyIgdG8ga2V5IGNvZGUgMTI0IHVzaW5nIHtjb21tYW5kIGRvd259J2ApfSwuLi5KLGNoaWxkcmVuOng2fSl9KSx0PVQ2O3QuVGl0bGU9UzY7dC5BY3Rpb25zPWo2O3QuQnV0dG9uPVo0O3QuSG9tZUJ1dHRvbj1oNjt0LlNjcmVlbnNob3RCdXR0b249bTY7dC5Sb3RhdGVCdXR0b249ZjY7ZnVuY3Rpb24gZDYoWCl7bGV0W1osSl09UyhudWxsKSxZPXcobmV3IFNldCksW3EsUV09UyhudWxsKSxLPWooKFcpPT57cmV0dXJuIFkuY3VycmVudC5hZGQoVyksKCk9PntZLmN1cnJlbnQuZGVsZXRlKFcpfX0sW10pO3JldHVybiBnKCgpPT57aWYoIVgpcmV0dXJuO2xldCBXPW5ldyBBYm9ydENvbnRyb2xsZXIsRz1YLnJlcGxhY2UoL1wvc3RyZWFtXC5tanBlZyQvLCIiKTtyZXR1cm4gZmV0Y2goYCR7R30vY29uZmlnYCx7c2lnbmFsOlcuc2lnbmFsfSkudGhlbigoeik9PnouanNvbigpKS50aGVuKCh6KT0+e2lmKHoud2lkdGg+MCYmei5oZWlnaHQ+MClKKHopfSkuY2F0Y2goKCk9Pnt9KSwoYXN5bmMoKT0+e3RyeXtsZXQgTz0oYXdhaXQgZmV0Y2goWCx7c2lnbmFsOlcuc2lnbmFsfSkpLmJvZHk/LmdldFJlYWRlcigpO2lmKCFPKXJldHVybjtsZXQgJD1uZXcgVWludDhBcnJheSgwKTt3aGlsZSghMCl7bGV0e2RvbmU6Xyx2YWx1ZTpBfT1hd2FpdCBPLnJlYWQoKTtpZihfKWJyZWFrO2xldCBNPW5ldyBVaW50OEFycmF5KCQubGVuZ3RoK0EubGVuZ3RoKTtNLnNldCgkKSxNLnNldChBLCQubGVuZ3RoKSwkPU07d2hpbGUoITApe2xldCBVPS0xO2ZvcihsZXQgRT0wO0U8JC5sZW5ndGgtMTtFKyspaWYoJFtFXT09PTI1NSYmJFtFKzFdPT09MjE2KXtVPUU7YnJlYWt9aWYoVT09PS0xKWJyZWFrO2xldCBrPS0xO2ZvcihsZXQgRT1VKzI7RTwkLmxlbmd0aC0xO0UrKylpZigkW0VdPT09MjU1JiYkW0UrMV09PT0yMTcpe2s9RSsyO2JyZWFrfWlmKGs9PT0tMSlicmVhaztsZXQgST0kLnNsaWNlKFUsayk7JD0kLnNsaWNlKGspO2xldCBDPW5ldyBCbG9iKFtJXSx7dHlwZToiaW1hZ2UvanBlZyJ9KSxoPVVSTC5jcmVhdGVPYmplY3RVUkwoQyk7UShoKTtmb3IobGV0IEUgb2YgWS5jdXJyZW50KUUoaCl9fX1jYXRjaHt9fSkoKSwoKT0+Vy5hYm9ydCgpfSxbWF0pLHtzdWJzY3JpYmVGcmFtZTpLLGZyYW1lOnEsY29uZmlnOlp9fXZhciBhNj17S2V5QTo0LEtleUI6NSxLZXlDOjYsS2V5RDo3LEtleUU6OCxLZXlGOjksS2V5RzoxMCxLZXlIOjExLEtleUk6MTIsS2V5SjoxMyxLZXlLOjE0LEtleUw6MTUsS2V5TToxNixLZXlOOjE3LEtleU86MTgsS2V5UDoxOSxLZXlROjIwLEtleVI6MjEsS2V5UzoyMixLZXlUOjIzLEtleVU6MjQsS2V5VjoyNSxLZXlXOjI2LEtleVg6MjcsS2V5WToyOCxLZXlaOjI5LERpZ2l0MTozMCxEaWdpdDI6MzEsRGlnaXQzOjMyLERpZ2l0NDozMyxEaWdpdDU6MzQsRGlnaXQ2OjM1LERpZ2l0NzozNixEaWdpdDg6MzcsRGlnaXQ5OjM4LERpZ2l0MDozOSxFbnRlcjo0MCxFc2NhcGU6NDEsQmFja3NwYWNlOjQyLFRhYjo0MyxTcGFjZTo0NCxNaW51czo0NSxFcXVhbDo0NixCcmFja2V0TGVmdDo0NyxCcmFja2V0UmlnaHQ6NDgsQmFja3NsYXNoOjQ5LFNlbWljb2xvbjo1MSxRdW90ZTo1MixCYWNrcXVvdGU6NTMsQ29tbWE6NTQsUGVyaW9kOjU1LFNsYXNoOjU2LENhcHNMb2NrOjU3LEYxOjU4LEYyOjU5LEYzOjYwLEY0OjYxLEY1OjYyLEY2OjYzLEY3OjY0LEY4OjY1LEY5OjY2LEYxMDo2NyxGMTE6NjgsRjEyOjY5LFByaW50U2NyZWVuOjcwLFNjcm9sbExvY2s6NzEsUGF1c2U6NzIsSW5zZXJ0OjczLEhvbWU6NzQsUGFnZVVwOjc1LERlbGV0ZTo3NixFbmQ6NzcsUGFnZURvd246NzgsQXJyb3dSaWdodDo3OSxBcnJvd0xlZnQ6ODAsQXJyb3dEb3duOjgxLEFycm93VXA6ODIsTnVtTG9jazo4MyxOdW1wYWREaXZpZGU6ODQsTnVtcGFkTXVsdGlwbHk6ODUsTnVtcGFkU3VidHJhY3Q6ODYsTnVtcGFkQWRkOjg3LE51bXBhZEVudGVyOjg4LE51bXBhZDE6ODksTnVtcGFkMjo5MCxOdW1wYWQzOjkxLE51bXBhZDQ6OTIsTnVtcGFkNTo5MyxOdW1wYWQ2Ojk0LE51bXBhZDc6OTUsTnVtcGFkODo5NixOdW1wYWQ5Ojk3LE51bXBhZDA6OTgsTnVtcGFkRGVjaW1hbDo5OSxDb250cm9sTGVmdDoyMjQsU2hpZnRMZWZ0OjIyNSxBbHRMZWZ0OjIyNixNZXRhTGVmdDoyMjcsQ29udHJvbFJpZ2h0OjIyOCxTaGlmdFJpZ2h0OjIyOSxBbHRSaWdodDoyMzAsTWV0YVJpZ2h0OjIzMX07ZnVuY3Rpb24gbDYoWCl7cmV0dXJuIGE2W1hdPz9udWxsfWFzeW5jIGZ1bmN0aW9uIE8wKFgpe3JldHVybihhd2FpdCBmZXRjaCgiL2V4ZWMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7Y29tbWFuZDpYfSl9KSkuanNvbigpfWZ1bmN0aW9uIGM2KFgpe3RyeXtsZXQgWj1KU09OLnBhcnNlKFgpLEo9W107Zm9yKGxldFtZLHFdb2YgT2JqZWN0LmVudHJpZXMoWi5kZXZpY2VzPz97fSkpe2xldCBRPVkucmVwbGFjZSgvXmNvbVwuYXBwbGVcLkNvcmVTaW11bGF0b3JcLlNpbVJ1bnRpbWVcLi8sIiIpLnJlcGxhY2UoLy0vZywiLiIpO2ZvcihsZXQgSyBvZiBxKWlmKEsuaXNBdmFpbGFibGUpSi5wdXNoKHt1ZGlkOksudWRpZCxuYW1lOksubmFtZSxzdGF0ZTpLLnN0YXRlLHJ1bnRpbWU6UX0pfXJldHVybiBKfWNhdGNoe3JldHVybltdfX1mdW5jdGlvbiB2NShYKXtsZXQgWj1YLnRvTG93ZXJDYXNlKCk7aWYoWi5pbmNsdWRlcygiaXBob25lIikpcmV0dXJuIDA7aWYoWi5pbmNsdWRlcygiaXBhZCIpKXJldHVybiAxO2lmKFouaW5jbHVkZXMoIndhdGNoIikpcmV0dXJuIDI7aWYoWi5pbmNsdWRlcygidmlzaW9uIikpcmV0dXJuIDM7cmV0dXJuIDR9ZnVuY3Rpb24geTUoWCl7bGV0IFo9WC50b0xvd2VyQ2FzZSgpO2lmKFouc3RhcnRzV2l0aCgiaW9zIikpcmV0dXJuIDA7aWYoWi5zdGFydHNXaXRoKCJpcGFkb3MiKSlyZXR1cm4gMTtpZihaLnN0YXJ0c1dpdGgoIndhdGNob3MiKSlyZXR1cm4gMjtpZihaLnN0YXJ0c1dpdGgoInZpc2lvbm9zIil8fFouc3RhcnRzV2l0aCgieHJvcyIpKXJldHVybiAzO3JldHVybiA0fWZ1bmN0aW9uIGk2KHtkZXZpY2VzOlgsc2VsZWN0ZWRVZGlkOlosbG9hZGluZzpKLGVycm9yOlksc3RvcHBpbmdVZGlkczpxLG9uUmVmcmVzaDpRLG9uU2VsZWN0Okssb25TdG9wOlcsdHJpZ2dlcjpHfSl7bGV0W3osT109UyghMSksJD13KG51bGwpO2coKCk9PntpZigheilyZXR1cm47bGV0IFU9KGspPT57aWYoISQuY3VycmVudD8uY29udGFpbnMoay50YXJnZXQpKU8oITEpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsVSksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLFUpfSxbel0pO2xldCBfPW5ldyBNYXA7Zm9yKGxldCBVIG9mIFgpe2lmKFUudWRpZD09PVopY29udGludWU7bGV0IGs9Xy5nZXQoVS5ydW50aW1lKTtpZighaylrPVtdLF8uc2V0KFUucnVudGltZSxrKTtrLnB1c2goVSl9Zm9yKGxldCBVIG9mIF8udmFsdWVzKCkpVS5zb3J0KChrLEkpPT52NShrLm5hbWUpLXY1KEkubmFtZSl8fGsubmFtZS5sb2NhbGVDb21wYXJlKEkubmFtZSkpO2xldCBBPVsuLi5fLmVudHJpZXMoKV0uc29ydCgoW1VdLFtrXSk9Pnk1KFUpLXk1KGspfHxVLmxvY2FsZUNvbXBhcmUoaykpLE09WC5maW5kKChVKT0+VS51ZGlkPT09Wik/P251bGw7cmV0dXJuIE4oImRpdiIse3JlZjokLHN0eWxlOntwb3NpdGlvbjoicmVsYXRpdmUifSxjaGlsZHJlbjpbTigiZGl2Iix7b25DbGljazooKT0+e2lmKCF6KVEoKTtPKChVKT0+IVUpfSxjaGlsZHJlbjpHfSkseiYmTigiZGl2Iix7c3R5bGU6bzYsY2hpbGRyZW46W04oImRpdiIse3N0eWxlOnM2LGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjoiU2ltdWxhdG9ycyJ9KSxOKCJidXR0b24iLHtvbkNsaWNrOihVKT0+e1Uuc3RvcFByb3BhZ2F0aW9uKCksUSgpfSxkaXNhYmxlZDpKLHN0eWxlOnI2LGNoaWxkcmVuOko/Ii4uLiI6IlJlZnJlc2gifSldfSksWSYmTigiZGl2Iix7c3R5bGU6dDYsY2hpbGRyZW46WX0pLE0mJk4oZix7Y2hpbGRyZW46W04oImRpdiIse3N0eWxlOnsuLi5nNSxjb2xvcjoiI2E1YjRmYyJ9LGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6cDUoTS5zdGF0ZT09PSJCb290ZWQiPyIjNGFkZTgwIjoiIzQ0NCIpfSksTigic3BhbiIse3N0eWxlOntmbGV4OjF9LGNoaWxkcmVuOk0ubmFtZX0pXX0pLE4oImRpdiIse3N0eWxlOm42fSldfSksWC5sZW5ndGg9PT0wJiYhSiYmIVkmJk4oImRpdiIse3N0eWxlOmU2LGNoaWxkcmVuOiJObyBhdmFpbGFibGUgc2ltdWxhdG9ycyBmb3VuZCJ9KSxBLm1hcCgoW1Usa10pPT5OKCJkaXYiLHtjaGlsZHJlbjpbTigiZGl2Iix7c3R5bGU6WDcsY2hpbGRyZW46VX0pLGsubWFwKChJKT0+e2xldCBDPXEuaGFzKEkudWRpZCksaD1JLnN0YXRlPT09IkJvb3RlZCI7cmV0dXJuIE4oImRpdiIse3N0eWxlOmc1LG9uTW91c2VFbnRlcjooRSk9PkUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpIixvbk1vdXNlTGVhdmU6KEUpPT5FLmN1cnJlbnRUYXJnZXQuc3R5bGUuYmFja2dyb3VuZD0idHJhbnNwYXJlbnQiLG9uQ2xpY2s6KCk9PntLKEkpLE8oITEpfSxjaGlsZHJlbjpbTigic3BhbiIse3N0eWxlOnA1KGg/IiM0YWRlODAiOiIjNDQ0Iil9KSxOKCJzcGFuIix7c3R5bGU6e2ZsZXg6MX0sY2hpbGRyZW46SS5uYW1lfSksaCYmTigic3BhbiIse3JvbGU6ImJ1dHRvbiIsb25DbGljazooRSk9PntpZihFLnN0b3BQcm9wYWdhdGlvbigpLCFDKVcoSS51ZGlkKX0sc3R5bGU6e2ZvbnRTaXplOjEwLHBhZGRpbmc6IjFweCA2cHgiLGJvcmRlclJhZGl1czo0LGNvbG9yOkM/IiM4ODgiOiIjZjg3MTcxIixiYWNrZ3JvdW5kOkM/InRyYW5zcGFyZW50IjoicmdiYSgyNDgsMTEzLDExMywwLjEpIixjdXJzb3I6Qz8iZGVmYXVsdCI6InBvaW50ZXIifSxjaGlsZHJlbjpDPyJTdG9wcGluZy4uLiI6IlN0b3AifSldfSxJLnVkaWQpfSldfSxVKSldfSldfSl9ZnVuY3Rpb24gcDUoWCl7cmV0dXJue3dpZHRoOjYsaGVpZ2h0OjYsYm9yZGVyUmFkaXVzOiI1MCUiLGJhY2tncm91bmQ6WCxmbGV4U2hyaW5rOjB9fWZ1bmN0aW9uIHU2KCl7bGV0IFg9d2luZG93Ll9fU0lNX1BSRVZJRVdfXyxbWixKXT1TKCExKSxbWSxxXT1TKFtdKSxbUSxLXT1TKCExKSxbVyxHXT1TKG51bGwpLFt6LE9dPVMobmV3IFNldCksWyQsX109UyghMSksQT1qKGFzeW5jKCk9PntLKCEwKSxHKG51bGwpO3RyeXtsZXQgRj1hd2FpdCBPMCgieGNydW4gc2ltY3RsIGxpc3QgZGV2aWNlcyBhdmFpbGFibGUgLWoiKTtpZihGLmV4aXRDb2RlIT09MCl0aHJvdyBFcnJvcihGLnN0ZGVycnx8InNpbWN0bCBsaXN0IGZhaWxlZCIpO3EoYzYoRi5zdGRvdXQpKX1jYXRjaChGKXtHKEYgaW5zdGFuY2VvZiBFcnJvcj9GLm1lc3NhZ2U6IkZhaWxlZCB0byBsaXN0IGRldmljZXMiKX1maW5hbGx5e0soITEpfX0sW10pO2lmKGcoKCk9PntBKCl9LFtBXSksZygoKT0+e2lmKCFYPy5sb2dzRW5kcG9pbnQpcmV0dXJuO2xldCBGPW5ldyBFdmVudFNvdXJjZShYLmxvZ3NFbmRwb2ludCksUj1uZXcgTWFwLHY9WyIjOGJlOWZkIiwiIzUwZmE3YiIsIiNmZmI4NmMiLCIjZmY3OWM2IiwiI2JkOTNmOSIsIiNmMWZhOGMiLCIjNjI3MmE0IiwiI2ZmNTU1NSIsIiM2OWZmOTQiLCIjZDZhY2ZmIiwiI2ZmZmZhNSIsIiNhNGZmZmYiLCIjZmY2ZTZlIiwiI2NhYTlmYSIsIiM1YWY3OGUiXTtmdW5jdGlvbiBUKEowKXtsZXQgeT1SLmdldChKMCk7aWYoIXkpe2xldCBYMD0wO2ZvcihsZXQgYT0wO2E8SjAubGVuZ3RoO2ErKylYMD0oWDA8PDUpLVgwK0owLmNoYXJDb2RlQXQoYSl8MDt5PXZbTWF0aC5hYnMoWDApJXYubGVuZ3RoXSxSLnNldChKMCx5KX1yZXR1cm4geX1sZXQgdT0iIixtPSExO3JldHVybiBGLm9ubWVzc2FnZT0oSjApPT57dHJ5e2xldCB5PUpTT04ucGFyc2UoSjAuZGF0YSksWDA9eS5wcm9jZXNzSW1hZ2VQYXRoPy5zcGxpdCgiLyIpLnBvcCgpPz95LnNlbmRlckltYWdlUGF0aD8uc3BsaXQoIi8iKS5wb3AoKT8/IiIsYT15LnN1YnN5c3RlbT8/IiIsVjA9eS5jYXRlZ29yeT8/IiIsWTA9eS5ldmVudE1lc3NhZ2U/PyIiO2lmKCFZMClyZXR1cm47aWYoWDAhPT11KXtpZihtKWNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgTTA9VChYMCk7Y29uc29sZS5ncm91cENvbGxhcHNlZChgJWMke1gwfSR7YT9gICVjJHthfSR7VjA/IjoiK1YwOiIifWA6IiJ9YCxgY29sb3I6JHtNMH07Zm9udC13ZWlnaHQ6Ym9sZGAsLi4uYT9bImNvbG9yOiM4ODg7Zm9udC13ZWlnaHQ6bm9ybWFsIl06W10pLG09ITAsdT1YMH1sZXQgYz0oeS5tZXNzYWdlVHlwZT8/IiIpLnRvTG93ZXJDYXNlKCksbz1hJiZYMD09PXU/YCVjJHtWMHx8YX0lYyBgOiIiLEEwPW8/WyJjb2xvcjojODg4O2ZvbnQtc3R5bGU6aXRhbGljIiwiY29sb3I6aW5oZXJpdCJdOltdO2lmKGM9PT0iZmF1bHQifHxjPT09ImVycm9yIiljb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjojZmY1NTU1Iik7ZWxzZSBpZihjPT09ImRlYnVnIiljb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjojNjI3MmE0Iik7ZWxzZSBjb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjppbmhlcml0Iil9Y2F0Y2h7fX0sKCk9PntpZihtKWNvbnNvbGUuZ3JvdXBFbmQoKTtGLmNsb3NlKCl9fSxbWD8ubG9nc0VuZHBvaW50XSksIVgpcmV0dXJuIE4oImRpdiIse3N0eWxlOk4wLnBhZ2UsY2hpbGRyZW46TigiZGl2Iix7c3R5bGU6TjAuZW1wdHksY2hpbGRyZW46W04oImgxIix7c3R5bGU6TjAuZW1wdHlUaXRsZSxjaGlsZHJlbjoiTm8gc2VydmUtc2ltIHN0cmVhbSBydW5uaW5nIn0pLE4oInAiLHtzdHlsZTpOMC5lbXB0eUhpbnQsY2hpbGRyZW46WyJCb290IGFuIGlPUyBzaW11bGF0b3IgYW5kIHN0YXJ0IGEgSGF0Y2ggc3RyZWFtIHdpdGgiLCIgIixOKCJjb2RlIix7c3R5bGU6TjAuY29kZSxjaGlsZHJlbjoiYnVueCBzZXJ2ZS1zaW0gLS1kZXRhY2gifSksIiwgdGhlbiByZWxvYWQuIl19KV19KX0pO2xldCBNPVkuZmluZCgoRik9PkYudWRpZD09PVguZGV2aWNlKT8/bnVsbDtnKCgpPT57ZG9jdW1lbnQudGl0bGU9TT8ubmFtZT9gU2ltdWxhdG9yIC0gJHtNLm5hbWV9YDoiU2ltdWxhdG9yIFByZXZpZXcifSxbTT8ubmFtZV0pO2xldCBVPWswKE0/Lm5hbWUpLGs9JDBbVV0sST1rLndpZHRoLTIqay5iZXplbFgsQz1rLmhlaWdodC0yKmsuYmV6ZWxZLGg9ZTAoVSksRT1VPT09InZpc2lvbiI/NTgwOlU9PT0iaXBhZCI/NDAwOlU9PT0id2F0Y2giPzIwMDozMjAsZT1kNihYLnN0cmVhbVVybCksWjA9dyhudWxsKTtnKCgpPT57bGV0IEY9bmV3IFdlYlNvY2tldChYLndzVXJsKTtyZXR1cm4gRi5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsWjAuY3VycmVudD1GLCgpPT57Ri5jbG9zZSgpLFowLmN1cnJlbnQ9bnVsbH19LFtYLndzVXJsXSk7bGV0IHg9aigoRixSKT0+e2xldCB2PVowLmN1cnJlbnQ7aWYoIXZ8fHYucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXJldHVybjtsZXQgVD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoUikpLHU9bmV3IFVpbnQ4QXJyYXkoMStULmxlbmd0aCk7dVswXT1GLHUuc2V0KFQsMSksdi5zZW5kKHUpfSxbXSksSzA9aigoRik9PngoMyxGKSxbeF0pLHM9aigoRik9PngoNSxGKSxbeF0pLHI9aigoRik9PngoNCx7YnV0dG9uOkZ9KSxbeF0pLFUwPWooKEYsUik9Pnt4KDYse3R5cGU6Rix1c2FnZTpSfSl9LFt4XSksW2owLHYwXT1TKG51bGwpO2coKCk9PntsZXQgRj1uZXcgRXZlbnRTb3VyY2UoIi9hcHBzdGF0ZSIpLFI9bnVsbDtyZXR1cm4gRi5vbm1lc3NhZ2U9KHYpPT57dHJ5e2xldCBUPUpTT04ucGFyc2Uodi5kYXRhKTtpZihSKWNsZWFyVGltZW91dChSKTtsZXQgdT1UPy5pc1JlYWN0TmF0aXZlPzA6NjAwO1I9c2V0VGltZW91dCgoKT0+djAoVCksdSl9Y2F0Y2h7fX0sKCk9PntpZihSKWNsZWFyVGltZW91dChSKTtGLmNsb3NlKCl9fSxbXSk7bGV0IEcwPWooYXN5bmMoKT0+e1UwKCJkb3duIiwyMjcpLGF3YWl0IG5ldyBQcm9taXNlKCh2KT0+c2V0VGltZW91dCh2LDMwKSksVTAoImRvd24iLDIxKSxhd2FpdCBuZXcgUHJvbWlzZSgodik9PnNldFRpbWVvdXQodiwzMCkpLFUwKCJ1cCIsMjEpLGF3YWl0IG5ldyBQcm9taXNlKCh2KT0+c2V0VGltZW91dCh2LDMwKSksVTAoInVwIiwyMjcpfSxbVTBdKTtnKCgpPT57bGV0IEY9KFQsdSk9PntpZihULmNvZGU9PT0iS2V5SCImJlQubWV0YUtleSYmVC5zaGlmdEtleSl7aWYoVC5wcmV2ZW50RGVmYXVsdCgpLHU9PT0iZG93biImJiFULnJlcGVhdCl4KDQse2J1dHRvbjoiaG9tZSJ9KTtyZXR1cm59aWYoVC5jb2RlPT09IktleUEiJiZULm1ldGFLZXkmJlQuc2hpZnRLZXkpe2lmKFQucHJldmVudERlZmF1bHQoKSx1PT09ImRvd24iJiYhVC5yZXBlYXQpTzAoYHhjcnVuIHNpbWN0bCB1aSAke1guZGV2aWNlfSBhcHBlYXJhbmNlYCkudGhlbigoSjApPT57bGV0IHk9SjAuc3Rkb3V0LnRyaW0oKT09PSJkYXJrIj8ibGlnaHQiOiJkYXJrIjtyZXR1cm4gTzAoYHhjcnVuIHNpbWN0bCB1aSAke1guZGV2aWNlfSBhcHBlYXJhbmNlICR7eX1gKX0pLmNhdGNoKCgpPT57fSk7cmV0dXJufWxldCBtPWw2KFQuY29kZSk7aWYobT09bnVsbClyZXR1cm47VC5wcmV2ZW50RGVmYXVsdCgpLHgoNix7dHlwZTp1LHVzYWdlOm19KX0sUj0oVCk9PkYoVCwiZG93biIpLHY9KFQpPT5GKFQsInVwIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixSKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHYpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLFIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdil9fSxbeCxYLmRldmljZV0pO2xldCBKND1qKGFzeW5jKEYpPT57aWYoJHx8Ri51ZGlkPT09WC5kZXZpY2UpcmV0dXJuO18oITApO3RyeXtpZihGLnN0YXRlIT09IkJvb3RlZCIpYXdhaXQgTzAoYHhjcnVuIHNpbWN0bCBib290ICR7Ri51ZGlkfWApO2F3YWl0IE8wKGBidW54IHNlcnZlLXNpbSAtLWtpbGwgJHtYLmRldmljZX1gKSxhd2FpdCBPMChgYnVueCBzZXJ2ZS1zaW0gLS1kZXRhY2ggJHtGLnVkaWR9YCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfWNhdGNoe18oITEpfX0sWyQsWC5kZXZpY2VdKSxJMD1qKGFzeW5jKEYpPT57TygoUik9Pm5ldyBTZXQoUikuYWRkKEYpKTt0cnl7YXdhaXQgTzAoYHhjcnVuIHNpbWN0bCBzaHV0ZG93biAke0Z9YCksYXdhaXQgQSgpfWZpbmFsbHl7TygoUik9PntsZXQgdj1uZXcgU2V0KFIpO3JldHVybiB2LmRlbGV0ZShGKSx2fSl9fSxbQV0pO3JldHVybiBOKCJkaXYiLHtzdHlsZTpOMC5wYWdlLGNoaWxkcmVuOltOKHQse2V4ZWM6TzAsZGV2aWNlVWRpZDpYLmRldmljZSxkZXZpY2VOYW1lOk0/Lm5hbWU/P251bGwsZGV2aWNlUnVudGltZTpNPy5ydW50aW1lPz9udWxsLHN0cmVhbWluZzpaLHN0eWxlOnttYXhXaWR0aDpFfSxjaGlsZHJlbjpbTihpNix7ZGV2aWNlczpZLHNlbGVjdGVkVWRpZDpYLmRldmljZSxsb2FkaW5nOlEsZXJyb3I6VyxzdG9wcGluZ1VkaWRzOnosb25SZWZyZXNoOkEsb25TZWxlY3Q6SjQsb25TdG9wOkkwLHRyaWdnZXI6Tih0LlRpdGxlLHt9KX0pLE4odC5BY3Rpb25zLHtjaGlsZHJlbjpbajA/LmlzUmVhY3ROYXRpdmUmJk4odC5CdXR0b24seyJhcmlhLWxhYmVsIjoiUmVsb2FkIFJlYWN0IE5hdGl2ZSBidW5kbGUiLHRpdGxlOiJSZWxvYWQgKENtZCtSKSIsb25DbGljazooKT0+dm9pZCBHMCgpLGNoaWxkcmVuOk4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLGNoaWxkcmVuOltOKCJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDMuNS03LjEifSksTigicG9seWxpbmUiLHtwb2ludHM6IjMgMyAzIDkgOSA5In0pXX0pfSksTih0LkhvbWVCdXR0b24se29uQ2xpY2s6KEYpPT57Ri5wcmV2ZW50RGVmYXVsdCgpLHIoImhvbWUiKX19KSxOKHQuU2NyZWVuc2hvdEJ1dHRvbix7fSksTih0LlJvdGF0ZUJ1dHRvbix7fSldfSldfSksTigiZGl2Iix7c3R5bGU6e21heFdpZHRoOkUsd2lkdGg6IjEwMCUiLGFzcGVjdFJhdGlvOmAke0l9IC8gJHtDfWB9LGNoaWxkcmVuOk4objAse3VybDpYLnVybCxzdHlsZTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYm9yZGVyOiJub25lIn0saW1hZ2VTdHlsZTp7Ym9yZGVyUmFkaXVzOmgsY29ybmVyU2hhcGU6InN1cGVyZWxsaXBzZSgxLjMpIn0saGlkZUNvbnRyb2xzOiEwLG9uU3RyZWFtaW5nQ2hhbmdlOkosb25TdHJlYW1Ub3VjaDpLMCxvblN0cmVhbU11bHRpVG91Y2g6cyxvblN0cmVhbUJ1dHRvbjpyLHN1YnNjcmliZUZyYW1lOmUuc3Vic2NyaWJlRnJhbWUsc3RyZWFtRnJhbWU6ZS5mcmFtZSxzdHJlYW1Db25maWc6ZS5jb25maWd9KX0pLE4oImRpdiIse3N0eWxlOk4wLmJhcixjaGlsZHJlbjpOKCJzcGFuIix7c3R5bGU6ey4uLk4wLmxpdmUsY29sb3I6Wj8iIzRhZGU4MCI6IiM2NjYifSxjaGlsZHJlbjpbTigic3BhbiIse3N0eWxlOnsuLi5OMC5kb3QsYmFja2dyb3VuZDpaPyIjNGFkZTgwIjoiIzY2NiJ9fSksWj8ibGl2ZSI6ImNvbm5lY3RpbmciXX0pfSldfSl9dmFyIE4wPXtwYWdlOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsaGVpZ2h0OiIxMDB2aCIsYmFja2dyb3VuZDoiIzBhMGEwYSIscGFkZGluZzoyNCxnYXA6MTIsZm9udEZhbWlseToiLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmIn0sYmFyOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDoxMCxmb250U2l6ZToxMixmb250RmFtaWx5OiJ1aS1tb25vc3BhY2UsIG1vbm9zcGFjZSIsY29sb3I6IiM2NjYifSxsaXZlOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo1LHRyYW5zaXRpb246ImNvbG9yIDAuM3MifSxkb3Q6e3dpZHRoOjYsaGVpZ2h0OjYsYm9yZGVyUmFkaXVzOiI1MCUiLHRyYW5zaXRpb246ImJhY2tncm91bmQgMC4zcyJ9LGVtcHR5OntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjEyLHRleHRBbGlnbjoiY2VudGVyIn0sZW1wdHlUaXRsZTp7Zm9udFNpemU6MTgsbWFyZ2luOjAsY29sb3I6IiNlZWUifSxlbXB0eUhpbnQ6e2NvbG9yOiIjODg4Iixmb250U2l6ZToxNCxtYXhXaWR0aDo0ODB9LGNvZGU6e2JhY2tncm91bmQ6IiMyMjIiLHBhZGRpbmc6IjJweCA2cHgiLGJvcmRlclJhZGl1czo0LGZvbnRTaXplOjEzfX0sbzY9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiJjYWxjKDEwMCUgKyA2cHgpIixsZWZ0OjAsbWluV2lkdGg6MjYwLG1heEhlaWdodDozNjAsb3ZlcmZsb3dZOiJhdXRvIixiYWNrZ3JvdW5kOiIjMWMxYzFlIixib3JkZXI6IjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpIixib3JkZXJSYWRpdXM6MTAscGFkZGluZzo0LGJveFNoYWRvdzoiMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuNSkiLGZvbnRGYW1pbHk6InVpLW1vbm9zcGFjZSwgbW9ub3NwYWNlIixmb250U2l6ZToxMyxjb2xvcjoiI2VlZSIsekluZGV4OjIwfSxzNj17ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZzoiNnB4IDEwcHgiLGZvbnRTaXplOjExLGNvbG9yOiIjYWFhIn0scjY9e2JhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGNvbG9yOiIjYTViNGZjIixmb250U2l6ZToxMSxjdXJzb3I6InBvaW50ZXIiLHBhZGRpbmc6MH0sdDY9e3BhZGRpbmc6IjZweCAxMHB4Iixjb2xvcjoiI2Y4NzE3MSIsZm9udFNpemU6MTF9LGc1PXtkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo4LHBhZGRpbmc6IjZweCAxMHB4Iixib3JkZXJSYWRpdXM6NixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246ImJhY2tncm91bmQgMC4xNXMifSxuNj17aGVpZ2h0OjEsYmFja2dyb3VuZDoicmdiYSgyNTUsMjU1LDI1NSwwLjA4KSIsbWFyZ2luOiI0cHggMCJ9LGU2PXtwYWRkaW5nOjEyLGNvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDAuNCkiLGZvbnRTaXplOjExLHRleHRBbGlnbjoiY2VudGVyIn0sWDc9e3BhZGRpbmc6IjZweCAxMHB4IDJweCIsZm9udFNpemU6MTAsZm9udFdlaWdodDo2MDAsY29sb3I6InJnYmEoMjU1LDI1NSwyNTUsMC40KSIsdGV4dFRyYW5zZm9ybToidXBwZXJjYXNlIixsZXR0ZXJTcGFjaW5nOiIwLjA4ZW0ifTtPNShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpKS5yZW5kZXIoTih1Nix7fSkpOwo8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=","base64").toString("utf-8");return P}function Ie(e){let _=(e?.basePath??"/.sim").replace(/\/+$/,"");return(t,s,r)=>{let S=t.url??"";if(S===_||S===_+"/"){let C=h()[0]??null,$=Me();if(C){let n=`<script>window.__SIM_PREVIEW__=${JSON.stringify({...C,logsEndpoint:_+"/logs"})}</script>`;$=$.replace("<!--__SIM_PREVIEW_CONFIG__-->",n)}s.writeHead(200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store"}),s.end($);return}if(S===_+"/api"){let o=h();s.writeHead(200,{"Content-Type":"application/json","Cache-Control":"no-store"}),s.end(JSON.stringify(o[0]||null));return}if((S===_+"/exec"||S===_+"/exec/")&&t.method==="POST"){let o="";t.on("data",(C)=>{o+=typeof C==="string"?C:C.toString()}),t.on("end",()=>{let C="";try{C=JSON.parse(o).command??""}catch{}if(!C){s.writeHead(400,{"Content-Type":"application/json"}),s.end(JSON.stringify({stdout:"",stderr:"Missing command",exitCode:1}));return}Oe(C,{maxBuffer:16777216},($,i,n)=>{s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({stdout:i.toString(),stderr:n.toString(),exitCode:$?$.code??1:0}))})});return}if(S===_+"/logs"||S.startsWith(_+"/logs?")){let o=h();if(o.length===0){s.writeHead(404),s.end("No serve-sim device");return}let C=o[0].device;s.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}),s.write(`:
3
+ var pe=Object.defineProperty;var De=(e)=>e;function Ee(e,_){this[e]=De.bind(null,_)}var de=(e,_)=>{for(var t in _)pe(e,t,{get:_[t],enumerable:!0,configurable:!0,set:Ee.bind(_,t)})};var Fe=(e,_)=>()=>(e&&(_=e(e=0)),_);var j={};de(j,{simMiddleware:()=>Ie});import{readdirSync as we,readFileSync as ve,existsSync as be,unlinkSync as G}from"fs";import{execSync as he,spawn as x,exec as Oe,execFile as me}from"child_process";import{tmpdir as He}from"os";import{join as q}from"path";function We(e){return!Le.test(e)}function Pe(e,_){if(Ne.has(_))return Promise.resolve(!0);return new Promise((t)=>{me("xcrun",["simctl","get_app_container",e,_,"app"],{timeout:2000},(s,r)=>{if(s)return t(!1);let S=r.trim();if(!S)return t(!1);for(let o of Ve)if(be(q(S,o)))return t(!0);t(!1)})})}function qe(){let e=Date.now();if(b.booted&&e-b.at<1500)return b.booted;try{let _=he("xcrun simctl list devices booted -j",{encoding:"utf-8",stdio:["ignore","pipe","pipe"],timeout:3000}),t=JSON.parse(_),s=new Set;for(let r of Object.values(t.devices))for(let S of r)if(S.state==="Booted")s.add(S.udid);return b={at:e,booted:s},s}catch{return null}}function h(){let e;try{e=we(K).filter((s)=>s.startsWith("server-")&&s.endsWith(".json"))}catch{return[]}let _=qe(),t=[];for(let s of e){let r=q(K,s);try{let S=JSON.parse(ve(r,"utf-8"));try{process.kill(S.pid,0)}catch{try{G(r)}catch{}continue}if(_&&!_.has(S.device)){try{process.kill(S.pid,"SIGTERM")}catch{}try{G(r)}catch{}continue}t.push(S)}catch{}}return t}function Me(){if(!P)P=Buffer.from("PCFkb2N0eXBlIGh0bWw+CjxodG1sPjxoZWFkPgo8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPlNpbXVsYXRvciBQcmV2aWV3PC90aXRsZT4KPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9ImRhdGE6aW1hZ2UveC1pY29uO2Jhc2U2NCxBQUFCQUFVQUVCQUFBQUVBSUFBNEJnQUFWZ0FBQUNBZ0FBQUJBQ0FBUEFvQUFJNEdBQUF3TUFBQUFRQWdBS0VQQUFES0VBQUFnSUFBQUFFQUlBQ2NPQUFBYXlBQUFBQUFBQUFCQUNBQS9wb0FBQWRaQUFDSlVFNUhEUW9hQ2dBQUFBMUpTRVJTQUFBQUVBQUFBQkFJQmdBQUFCL3ovMkVBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFBSUdOSVVrMEFBSG9tQUFDQWhBQUErZ0FBQUlEb0FBQjFNQUFBNm1BQUFEcVlBQUFYY0p5NlVUd0FBQUI0WlZoSlprMU5BQ29BQUFBSUFBUUJHZ0FGQUFBQUFRQUFBRDRCR3dBRkFBQUFBUUFBQUVZQktBQURBQUFBQVFBQ0FBQ0hhUUFFQUFBQUFRQUFBRTRBQUFBQUFBQUFrQUFBQUFFQUFBQ1FBQUFBQVFBRG9BRUFBd0FBQUFFQUFRQUFvQUlBQkFBQUFBRUFBQUFRb0FNQUJBQUFBQUVBQUFBUUFBQUFBT2JZeVZNQUFBQUpjRWhaY3dBQUZpVUFBQllsQVVsU0pQQUFBQUtjYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pZVFZBZ1EyOXlaU0EyTGpBdU1DSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHgwYVdabU9saFNaWE52YkhWMGFXOXVQakUwTkR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01UUTBQQzkwYVdabU9sbFNaWE52YkhWMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0eVBDOTBhV1ptT2xKbGMyOXNkWFJwYjI1VmJtbDBQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01qVTJQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQakkxTmp3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9rTnZiRzl5VTNCaFkyVStNVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNEtJQ0FnUEM5eVpHWTZVa1JHUGdvOEwzZzZlRzF3YldWMFlUNEs2ZjdKY1FBQUFvSkpSRUZVT0JHbFVzOXJFMEVVL21abWs5MU5paVd4MHRvcVZSRHhvQ0NtSUhnVVdpaWV2UFRrU2NHVENJSUhFUS8xRC9BaWluK0NKdzhxZUZERVMrMUZnZ0VWV3l5MDBDYllObW1iNXNkbXM3c3pmck90cGZjK2RuYmY3SHZ2ZTkvN1pvQWptamhjYndEMWJIZTNVRzA2N2tZdkVBR0RXMTB1T2x1ZWIzUWNoN1dKWS9YRE5RY0FkNVo2NTc1MW5PZk5VSlFTcmQxWUE0WlJUZFNFdnJhWlVvWUNwdXlZK1A3bU5XL0pBcVVBNXN1c2M4bC85R0ZGdUpNNk1QeHBZRmdvNUY1QzZqUFRScVRIMVEwL05UZmZUV05tSm5Fc3l0UGlyV0tyTGt2OVVHT2lZSEJqUkNLeDg2UkZUS0NmSWRqbkRZMjVob0FqWkduWXVYSjhIZGhJQVdvdDRTVmRPQ01zbUM0S1hQVU5hcDBFemI2QXNCeEp3WFVraGpnS3V1U2g0S2kyOExoREN0Q2pTSjFkNE1GRmdTZm5iUVV3VjR2d2FqbUJiMXNUd0ZFSzFSYjlEdU1xVFVsZktVRFE0Nnc5ZHJFZGFGYkFJVTlpY2xTZzZOdHNnNGdxanUwQXl3Mmd6WHpFTm5PZndmWTJ2YTVBMUdlRHlLVEtEeWlEVTVrRWl0MnRpRW9LVEExTHhLSEV5N0pCUWZ1b0hRYXc2b2NjcGRIUkZFeGd2YVh4ZlMyQ2w3RWtMU2hucHlBNnpNTHRhM2dwOS84YWtBSGxRa0lHOVRibmxScTFIWU9mVmY1WDdNcVI4bVJqcmRyV2tJSEE2QW1nekgySzArMTNRektPRjFZTnlqbnlaY2NmYXhxVkZRZDFKc2QyL2tGN2ZCcXJUWWxjRnZGQTBBZ3RZQW93UHYrbThhZjBzUEoxTVg5OS9oYzdFU05Lc2xEc3pnZVMreW9QM2ZCcUtsY2luM1FxTjBkLzExOFRZTy9NNkp5NXUzZ2g5c2RlUUdRdUcyTmNLNXk5QTVRai9UcEVVWTRNZlJWVnhnYzI3NzEvZkhiQk1qZ0FzQnVhT0gzNzQwa0Izek1KYnhITmRZRkJya0krYTNKZTBIczdPL1dYZ2YwRHR4bEh0SDg0aWhRSmZTYXpqUUFBQUFCSlJVNUVya0pnZ29sUVRrY05DaG9LQUFBQURVbElSRklBQUFBZ0FBQUFJQWdHQUFBQWMzcDY5QUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFnWTBoU1RRQUFlaVlBQUlDRUFBRDZBQUFBZ09nQUFIVXdBQURxWUFBQU9wZ0FBQmR3bkxwUlBBQUFBSGhsV0VsbVRVMEFLZ0FBQUFnQUJBRWFBQVVBQUFBQkFBQUFQZ0ViQUFVQUFBQUJBQUFBUmdFb0FBTUFBQUFCQUFJQUFJZHBBQVFBQUFBQkFBQUFUZ0FBQUFBQUFBQ1FBQUFBQVFBQUFKQUFBQUFCQUFPZ0FRQURBQUFBQVFBQkFBQ2dBZ0FFQUFBQUFRQUFBQ0NnQXdBRUFBQUFBUUFBQUNBQUFBQUFmZ3ZhVWdBQUFBbHdTRmx6QUFBV0pRQUFGaVVCU1ZJazhBQUFBcHhwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJbGhOVUNCRGIzSmxJRFl1TUM0d0lqNEtJQ0FnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0S0lDQWdJQ0FnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJS0lDQWdJQ0FnSUNBZ0lDQWdlRzFzYm5NNmRHbG1aajBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5MGFXWm1MekV1TUM4aUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9tVjRhV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdlpYaHBaaTh4TGpBdklqNEtJQ0FnSUNBZ0lDQWdQSFJwWm1ZNldGSmxjMjlzZFhScGIyNCtNVFEwUEM5MGFXWm1PbGhTWlhOdmJIVjBhVzl1UGdvZ0lDQWdJQ0FnSUNBOGRHbG1aanBaVW1WemIyeDFkR2x2Ymo0eE5EUThMM1JwWm1ZNldWSmxjMjlzZFhScGIyNCtDaUFnSUNBZ0lDQWdJRHgwYVdabU9sSmxjMjlzZFhScGIyNVZibWwwUGpJOEwzUnBabVk2VW1WemIyeDFkR2x2YmxWdWFYUStDaUFnSUNBZ0lDQWdJRHhsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0eU5UWThMMlY0YVdZNlVHbDRaV3haUkdsdFpXNXphVzl1UGdvZ0lDQWdJQ0FnSUNBOFpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtNalUyUEM5bGVHbG1PbEJwZUdWc1dFUnBiV1Z1YzJsdmJqNEtJQ0FnSUNBZ0lDQWdQR1Y0YVdZNlEyOXNiM0pUY0dGalpUNHhQQzlsZUdsbU9rTnZiRzl5VTNCaFkyVStDaUFnSUNBZ0lEd3ZjbVJtT2tSbGMyTnlhWEIwYVc5dVBnb2dJQ0E4TDNKa1pqcFNSRVkrQ2p3dmVEcDRiWEJ0WlhSaFBncnAvc2x4QUFBR2hrbEVRVlJZQ2UxV3pZOFVSUlIvVlYwOTNiUExmbVVYa0JESTdvVUVSU1ZySUFvbTNreU1GeEtQbmpRbXhJTlhUTlNMQ1RHR2kvNEZHaE1UalViQ3djQkJFMDFBQ0pKZEVrRUlBbUVGQVlGZGxtVm1kcVkvcXN2ZnIyYUc2VmtXcm5yd0pkWFZYZjNxdmQvN3JCTDVuLzVsRDZoSDZYZUgzNGtPN056LzdKKzE0TWtrTUJPdFhFVlpManJIaHJ3UVNUQUtMWkppWGs0eFk3MkZueTE4NXdxL2pFdXlMSjgzeXA1YlAvdjE2Wm05ZTdQVmRLMEs0T1ByQzd1T0xvOGN1RnhUTDlSRmF4ZEFxSVZDMXhiaE9yUEdPbDh0RkhQdURnV3BBZmRBcGJKRllZdzdVY21XOXQzWU5YNThKWWlIQU95ZnU3WHJjR1BpK3pNMVBXWmJWclJ5WW93U2E1MTBGVk1JTndhQjhrb0wvQ3RURzRDU1BPZTZFaFVGWXFSWXJOcDdyMTdmUFg2aXpBc245dWo0OFcrcXgycWpuL3kycE1lS0p2eE5qWEFwaDFzeENueHpjTDM3WHA1Ny9FNG9LeTMwV0t0WTgrbms1ei9GUFkwQ1lDVTZNanc5UFZjek8yemRDb3p6NURFQVIwQXNaUmZncjBlUGRkZU5UVWVXeGw0UERLSGh1eWZFMElabVI3cDJhaHJmRDBMUkIrQjJNdkpVM1dxbEVUenVnM0V5Q0k0M3BnSlpXMEdzb2F4TWREVnBCUzRQL2o1eTVvdUx1ZHhwQWJ6blF3aE5xS3dNYnNPVzFRRWtFa3dnNUZLQlpPNWh0bThjVURLOVJvbEdtaGY4U2VMa2hmS0JqODdFWDN6bnA0NlVURldWTERTZGhCMDNjREk2bVBCOG5VZWZCNUxNUlRrUUYwazc0UnJJNGlZc24yOWlEUW1KaFBiV2hqQ0pTbFRIQlc2RkN6UTBtVEFRQ3psRkM2T3JCVEd6cVlzZUNjQW15RHRhbWlvWlFORGYzNmJsdVhFbG13ZGhwNFZLcCtWR3M1Q2pONEVNTmFpN0FPaUZMZ2lzYWEwbFJQd3RLeC9ERllTTEdhVXAyWU9zOEd0ZGJQNGp4eVp1eU9DRkZ6Y3AyYmVWTzdyVUxwZ3RJNEdjdXRHU0t6V1J5TFQvdHozUUNRL1kwVGtrcXNCeXlGSWNUQ2FRZ2piZnlkcWYvdGtQQU5ZckQ4SUp3dTZKWWt2R2VkZmZiMXE1ZGs5SlhFRWY4TVo3cnZZR2NMQUpEY1RPTnlqS1V4MEJCQ09VWDZLSEFEZ3dPVEFWSFVZbVlqZkdqQzB6T29TYnA0WUQyWXhSRGZrTkpSZ1d2QWxLcFo0cHVZY21WRUY1SnVqTkJvM0kyME9aandVQUFheDM0eEJIV2daKzlucGZqNUJBaDdQOXZyWWxGcVZEcVJpRUJkYVJyMHhNVHFiTUs1TmF2anlYeTZHTERsN1JYbVpBZVNYcTgwREtFTUFEUGs2bzR4U1NVeUNtQjJrNXJTUTFtNW5VWUtHQjBCNkJpVWpBUkFBQnZEV0VaSHo3NlJCblFpYUhMcUFER0NQbWNRQmFLTGNjSUh6NUFFZ0NFQzBvWWd4cExFUEFwcmVFSEZoTTRQcE9FaEtFMTkxQlF3RGtSZW5BWTRIc1hxL2x5TytaV0NSMzNER2l3OXJmaXJNVkh1RHgyc3djV2k3aUNkZnpZS0psTmRUMjNXV3NoVlJib2c0S2YwUUJSQUcwRG51Y0NtVVFNVjJHVVRINlNwbjZRd0NFTklWaEFIaHBZVjVHSENqUUFvQkRnMWRJZ29WNklUZFJobkVGYnVsYTVMSDA1d09UVXBFRmZpOGdCMmtqbGNjQmFBRUFlbzNQVkFMZ1JhTU9hMkdMWklCcWVRT0JSYmRyVHY1YUxDU09BQWdhWXJpSDNiR1pXa2t6NnpGMW9SakVqaTI4VmtkcGpnQkEyWHk4OTNrQTVWY3d5d01vWi9Ob0FuVUQ3WlE1a0VCQmhud2d3SVdHa3IrWGxBd1BCakkrRk1yY2dwVmJPSDIyYlF4eFlBV3lXSWNndUI5UmtBMWpSazVmemFTQUM1bUFsUlZIWng4QVpWM0taQXRRaGdWQXBMaGJKYWhwRnFCR2ZjTTRDYkREd0pjREZXUTAwSjY4bE1rZmQranFRSzdNRjdKOW84akVtb3Evd0xCSXpsN0w1ZHgxSllNUitCR21XTEhaOTZnUFFOWklGM0ljRlJxSk4zT3BrRk9iUkVaeGZTZ0FpRVJ3cDY4bTh0MnZLZTk5MGtTWHltQnhCZVdtd0pQZzVEdDJvWkNoS0lkQ1ZFc2psM3JLRUJsVUZnV3d4TzI4RjlaNTlBR1F4dng1SmVza3dPRnhGeTcrOEdDS294U1hFNWhpa1ZIc2lHZ0JLSzBCOUFERVBkU0MyNXEzbG9IbkdSbXBRTmhQVVBwWUQzQ280UWRjWDBCbWpNUWFjcmZPbHdIQXBoNDF6aHljTVhsckZvZXBCMkVrUkNoaW5HWVJSZ3doVmFtYUt0eklob0phNzdaV3psRFlIVnpuL3dEdHNIMjJJSFRZc3pacXpZN09INXp0YVdSd1M3UTg5M002dm5YUFpSMnQyNFBhalhnRkFuNWYrN1FDeWV5SDd6cDQ1M0hNTlY2L3V2ODRrOWlNZUo0NHRuVVR5dWJSN1A1a2NPYXR6ejU0L1VLYm8vMmsvSWRvNnMxZlhpNUduL2tJaFRhTkM3NEtFU2hleTltU3k4UlRqd0o4dldObTF2T2J0YzhtU1dDeHp0MjY0V1RtQ1RuNzNsZnZQdjlEZVQvZlZ3WEFINk9UMjBlSFhqcXdVOFVidG9hVjZnVEtDeFZFMFQzU0FNYkVSQ3BJekZNUjMreE5KblFGY2ljMXJqay9ZRytmVjhmMm5mejJ4NW1sM3M3LzMvNURIdmdIYWtRU1dLMGpJVXdBQUFBQVNVVk9SSzVDWUlLSlVFNUhEUW9hQ2dBQUFBMUpTRVJTQUFBQU1BQUFBREFJQmdBQUFGY0MrWWNBQUFBRVowRk5RUUFBc1k4TC9HRUZBQUFBSUdOSVVrMEFBSG9tQUFDQWhBQUErZ0FBQUlEb0FBQjFNQUFBNm1BQUFEcVlBQUFYY0p5NlVUd0FBQUI0WlZoSlprMU5BQ29BQUFBSUFBUUJHZ0FGQUFBQUFRQUFBRDRCR3dBRkFBQUFBUUFBQUVZQktBQURBQUFBQVFBQ0FBQ0hhUUFFQUFBQUFRQUFBRTRBQUFBQUFBQUFrQUFBQUFFQUFBQ1FBQUFBQVFBRG9BRUFBd0FBQUFFQUFRQUFvQUlBQkFBQUFBRUFBQUF3b0FNQUJBQUFBQUVBQUFBd0FBQUFBQW02MUswQUFBQUpjRWhaY3dBQUZpVUFBQllsQVVsU0pQQUFBQUtjYVZSWWRGaE5URHBqYjIwdVlXUnZZbVV1ZUcxd0FBQUFBQUE4ZURwNGJYQnRaWFJoSUhodGJHNXpPbmc5SW1Ga2IySmxPbTV6T20xbGRHRXZJaUI0T25odGNIUnJQU0pZVFZBZ1EyOXlaU0EyTGpBdU1DSStDaUFnSUR4eVpHWTZVa1JHSUhodGJHNXpPbkprWmowaWFIUjBjRG92TDNkM2R5NTNNeTV2Y21jdk1UazVPUzh3TWk4eU1pMXlaR1l0YzNsdWRHRjRMVzV6SXlJK0NpQWdJQ0FnSUR4eVpHWTZSR1Z6WTNKcGNIUnBiMjRnY21SbU9tRmliM1YwUFNJaUNpQWdJQ0FnSUNBZ0lDQWdJSGh0Ykc1ek9uUnBabVk5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmRHbG1aaTh4TGpBdklnb2dJQ0FnSUNBZ0lDQWdJQ0I0Yld4dWN6cGxlR2xtUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwyVjRhV1l2TVM0d0x5SStDaUFnSUNBZ0lDQWdJRHgwYVdabU9saFNaWE52YkhWMGFXOXVQakUwTkR3dmRHbG1aanBZVW1WemIyeDFkR2x2Ymo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V1ZKbGMyOXNkWFJwYjI0K01UUTBQQzkwYVdabU9sbFNaWE52YkhWMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFNaWE52YkhWMGFXOXVWVzVwZEQ0eVBDOTBhV1ptT2xKbGMyOXNkWFJwYjI1VmJtbDBQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01qVTJQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQakkxTmp3dlpYaHBaanBRYVhobGJGaEVhVzFsYm5OcGIyNCtDaUFnSUNBZ0lDQWdJRHhsZUdsbU9rTnZiRzl5VTNCaFkyVStNVHd2WlhocFpqcERiMnh2Y2xOd1lXTmxQZ29nSUNBZ0lDQThMM0prWmpwRVpYTmpjbWx3ZEdsdmJqNEtJQ0FnUEM5eVpHWTZVa1JHUGdvOEwzZzZlRzF3YldWMFlUNEs2ZjdKY1FBQUMrdEpSRUZVYUFYdFdWMklIV2NaZnIvNVBidG5mMDIyS1UzU2xqYjlTUk1DcFdCU1c5QkFiU0V0MUp2Y0ZoUzhLSUpDUVJTdDRJVUI5Y0tmNG9XVW9ONUpJc1ZDSU1YRzJpYUlwaWxwU2tvYTA2aHBaZFBkVFRiWjdPNDVlMmJtekkvUDg4NlozZGt6czBrS3hSdnpuWjJaYjc2ZjkzdWY5L2Y3WmtWdWxWc1MrUCtXZ1BtMDhETVJJd2YzdWxPUFArY3NMSXpiMTJ6SExNNHZtcmtTSWRhWDMxRXAzb3MyZmNmTkdSck9yblhqYk1pYVMrVFFvZTdKbDEvdWxzamNWUFdtQUV4UC82bDV3SC8waVU5Q2IvZHNhTGEyWXVzMnNhMkJvQ3RPa29vRlVCTGp5bEJKV2NjelJzWFllUjNqSkVFYnIyN3Z3anl0NHpYMVBZbURJTzJJbFY2eVRIYld5YUkzbzdOLy8vUE1jMCsxYjRUaWhnQitkZW5xbmxQUjZJL2VYN0Flbm81RVdpR1lTa1JjVHlRTXJrL2VjZkwrbU9oUTFsck1iNEFXYUJzckIyMWpvR1BTVTE1My9zWEpYWjg3bk0rdXY2OUZVMGYvZE9yYTgyKzJSMzV4L0lyeGdrNHNvQzhHTXpqSjk0MkVJZVIzbmVJNE9mbVlLcmxPcWFObGZFZGNxS0tSdEw5MWNlZndyOWVhVHA1cXk4OC9tbnI2TDYyUlh4NmRFcThMNXNtTDFXTytkc0puM0ppRnNVUWQ4UUtyK2RLbW81ZjJyRVcrRnNEQkl3ZEhUeWZyZm54ODFyaUc5Z0lCWnJEWlQzT2xuM0o4TFcyc0hYV05HN2xqUDlueTB1R1JPaEMxQVA2MStRdFBubGx5dHdldFdBd1lVYy9zZnhMWFozalZya0VoTE1VU0czZDc1NzRkVDlVQjZMblo2cTdMMXZEdTZTVVJHd1JNamZreXdsaVk2VU0xakR5MUJlYm05UG9zVldIdEtQVXBOelhTUVhpaTh4bzZXVjlKS0NodmVEZWEvOURYSlJVQWU4SDN0Y2g5c0EwQUt2MitHVEU0M2psaHlkTjMyc0pmdWhZQXpDdDRXUk5rYWN6eHkwWmUrMDlNcUJVUUdTSlVJdDRENkVKZ1JyVlVLZ0MyN2QwMmNMWnJKbUxFYnF1UE94Skh4Sk05bXl4NWdER2VraWtSNjY4V3NyelJHQWFINWpwTFRrNkpUSGN5Y2NobXVUQzlHVE94WWNlT3hzenAwNnR5UXdXQWJOdmxHY2RxZVBRT1o3V0xLQUJ0TXJJRXFTQ0pxZ25oWGw1TzY0YkJ0b1RnZW1NY0lHQ1NhMkk5RHh5NXRLVnlBU0RmTmdPeS9URlBiZ1RBODI2emc0NDRJVTJJNmJKVXVuaE5RQ3pvV3RMS2pBSkllbU80SkNXNVV2QlN2Q3UrS2tpT05aYWxERE9sUkFHaUR0Yk43TldDRTl1bXp6bjIwSVorM1ZSOUlISjlrekJuTVh2Q3VZclNoVGx0SEJDWjhETVpSYk9IZHd1eGo3OE1SdDdHK0NXWWxLdkpndk95WlZ0bWYxNktKOTlVUndDUUFVQW1BZDlwM1dyaEsrdm04ekNhM1pibTBxSkpueFVUaXFMSU1DYlRnZFdKc1NhWi8rNTJTNzV4dndVMW0xSkM2MDNIbUVXRXBsY3ZoUExoUWlZK2paZ3I5a0tZOHI4TW9yZSs5b0VXQUhCNFFKNFQzR0JMeW40WmcvWXQ2L1A2QU9naEthV2dHZ0E5TUg5WFUrU0ZyYlkwS3dyczBjSUM0M0NheHpZNGNtSnFTUm8rUkFVcktFSWlOZERQUDJjU0lNYzUwRUFNdTFlaDZiNkptaW9oS0N1dXQyVHhxR2lBSFJtSVVKMGt5SXc2aWdXOEVyMWljdi9UaC9rc0JyRUVxWXQ5RE5IbUs2c0RvMXJtZytRSWtDYWtDblBSZ0xWNHFTbWhXaTRNeWVYNVJWOHRBQ1lPRFF1UVBqV3RhYjQzZzJ1VXBaa3pna1hSemh3eDMwbkZCV29MRXFVeGNHeXVnZFhMa3lFTE54dmo2QU1OZEd2WVZoL2dZcVh4Sk5MbjF4ekJVZ0hRaGczQmlaZWx3ZTBDSFVzWlp4VzBGSURlY2luU2J5bHZadWlyN1V6R0lOVjFycEVSN0ZnYjZHQlk3RzFNbFMwR3JnaUVPcURiUmdadVJTbk9CcGJ1Ym5WdFNxT3ZHUEswS2dQa0F5b0EyTXdFcGRHQVhHczlVd0Nrd2NWWG9nb0FLQkJJRWhJYWdlMC8vOGlRM0x1dUllTURDSTlvQSs5YXlqeFJ0cndvRFBBdWkxRW1NemhickljZi9mRmNMUFB3YUI4NWdWclNRcUVWOVY1VDhhZ0FJRWhLazR2RFFuVWxGNTRHYTFJSmE5aFhhbVFoai8xcVpxZ1BRZW9QalhKdUpsMHd4ZE1YaTVwUVhsVlR5Mjg1ZlI1aVJvQnlmRmprL29jOWVmSWVSMTQ2RWN2SkdaaVZabE5NeEJnUFROV2RueW9BcUNhZW9Bb256aldRUzR2Q0xqUkFnYWhRUUJ4L0t0RVVuWE90U1B5R0JZMVFER3d2VU9DbGtDS2JVS2VBMUpFaGFndDJTSi9aQkthL3M4dVRIeDRMNWV4c0lnMFhkUERIYURXRWFUTzR5cVVDZ0JxSUFEVU9RUnpxamFIbkJLSWs0MVE1UXl5QmNMazhaeG5WRG5taWxoYVpUV0Z3bWt6Sk1EdldLajBRWko1QTFPbEJtWG5rMlh0c09UTVp3RmNBem5iUVdsOXFBWlExb0NHdHh6eWpVMG9VWkI1M01rbVFCTUxtR0FoYUFSeVNBQXF2TGRaVklHVTB5bjB1Q0FMUUdvVkFoa1UyRDl0eUczYU9sMEdQOUhFRUZ3LzVxTDlVQU5DRUdBa014WWxMa3dzMWdhdXJBRWdpQjdDODN5Y0FiRHM0cG8xTlhnd2ZzT244MXkwRVE4bm4yaVJOMWJBQ1FEdWNlQnhSYkhvUk9RaGhsb3pTaFBwTEJVQUxJN2lWTGlTdlR6QkRFNG9BakptWlRtdmpscHNTR2NBRk1VVVl0d2lKUmVpd25WU2xtaSs0N0FsOTY5Tm9PSnV5eWdHd2hTYmxJekh3UUpYeGd3RG9Ncy9kRkFENmdNWmlTaEFFaW5CSzZlS2NyU2FVSWJQWldJVCt0YnhOQUIvc24yc2prV0d3bzJFUWkwUEVPWXVnMVN1cm8xSU9qc0tnMGptWSs2TWhQRHNRaGtteENOYUdFbXBMUlFNYWhYaUFLQUdnR1hFckhkS1pxV2Y4V1doTUVQNHkyRG9YWm1URkxrS3VJSkY1a0pwRERaQjVjcC9mOUVGR1dUSms2Nkt1N3lTS1loQlhzWHVXRENCbUZ5QU1HQSt0Z09iYXJGRkJCVURIOGJJTU1aeE1FM24reEdZTFJDaGhQWjlpWlRxeFJpaHd6NlNUd2FRSVlCNzdlWmNMZ2pKTkFiYUZmWkVsNjRZY0RZVUVlM1V4aGpCQVFCSGtwb2czQlVxOFk4T1dmRHdiSXlTTERBNWlKZENqckhSTTM2MEN3QVFoTE1Ud3B3QUtFQVFRUUFPTVFqUUJMa1F6b21uUkx5QlBaV294dE1UQlhBZVowRUk0V1Qvc3lOaWdrYitkRCtRQ21OcXl3Wk5kOS9weXRXWExwWGtnNWdJS0JCeUN4UUY4MEJxRWJiNzZiZ3NIUW9DR2FnMHVLRFJ6YXI2a1ZRQjBybDVNUnh6a01tb0FKd2h1ZVQzRVpmVUJTRTIzMmoycnBvQUpyQXRRdEt3WWpGUHBTZVlpSzd0eSs1Z0RqY1J5NEoydXpDNVp5S3dEOHU1RmtjbHJzWHp4UGx2dVd1L0p6SHdxN1pBT2oxMHZwRDB4Yk9USW1Vam1PcDZNREZCcjRBRW0xWEFsSG5FdVliWFZwUUlnbkh3N0NscHBFSElvUWcrbE8zT0Y1dUZBUXBRNHFCWDJtZzlCRzA1VjhJVzVWaXJETGlUWWRLU0RrSFQwZzY1OE9FTTdSRlJCT3o3d2FEaThkQzJWQThkRHVYZEM1SUhiSFprWXNtR2FxVnhaN01vYjcwY3kyN1prY01DVmJrQk5BeHdFbUlacHNIRHFPSUwwNmxJQk1IdnVYRENjSnJQd0lmMXd4Uno0eVpWVTlyOFZ5ak03T0J5eW9zZFNaTFJLNk4zR3k4ZFhZdm5aNFFVNVBZazlESTZlQ2NZMGZGY0djYVVBQ0RsQ2ZaeUVoQVNSOHR6N2J3ajAvRlFNczhIT05JZ29MM0dodVNHWUVXTVh6WmhMTUNjMjdHVDI4bHRuS3R1aENnQ003MXBSNTd6bE5ML0U1RVF1dVpsNzVVUWlyNTFxaTJmbFoyQVAzOFJEZkZMT1J6RCtjNHZzeXVpUXE3YlBEcGR4bGdVQXRHZzA2bFhSNVBIckdIelVBNGNaTm9MOFpSakRQS1A1aCtOUjU1YThhY0lQRDBHSCtleVZleDBBU1Jlbmo5bWo2Nyt1SVJOalNiaUJzQkxESnlMZFltS25DU21HRVdOUlhoeUVDUjlNTU9vUUZCY0dWcFVnL1RRdmFDd1ZqdU5GUjdWd0htQWg4eXNGd1FGengzMUVvMmo2MkVyN1NtMkZnNVUyYWIrei80Z2RkLzVoR2VRLzlZV2NHYmdVdEdIamNpQTlXeVZJS2ZKeUFJaE1rT2xpenMwK2kyeGZOOTUzWE5uWURNN092Zi9iSXlVV2w2czlIUysvYTZWOThlMzIyTlpuWnAzbUhWOUpFa1J6bWdBbGcwdlZpeWNsbmlCaEZlOHF1YjR4UERLeW5hZTY4cmh5blRUWG9wVmx0ank0TVl2dlNOLzc1dS8zZmZYRWFpN3p0MW9Oc091ai9ZKytZaGJPdnRqd3M5aEFDdityd2x4UU9QTzJPN1A0YnYvYzkzL3p3dWRmV1d0OU5kZTFPdEh1M2ZPMW8zdk51a2UrRjV2bVE0ejFtZ2Z3aEE5TGdIODM5YXk4bGtUbFB6U1lWeTU4cFgveFgwd1JBaVMzRUEzWSs5aWd5TWFSOWdkandYdjdmdmZ0eC9sRm1ubTd0dHdJQUNlWjhXMVBiQjdiK1lNdm0rRzdIeGQ3YUV0bTNQVytiemZDeU5qSXl0QmlQUmxFUk4zLzBHUVlrUGo1aEV3eUxQSXNrWC9VTW1uRHk1SzBtd1MrMjUxdG1QWS8zZkRDWHlmZjJQZjZzZGRmbjhUNmZiQlg0NmhmZWZXWThodHRhYkE1TVRIZ3JyL1B6NXh4QkhRWDUvcGVnQytQUkIzQzFKcytXVVdGWDdmWndUWjhGODBzcTV2RlMzTkpOSDgrUEhQbWNnZk4yRTJ0TFhIMDNTcTNKSEJMQWlVSi9CY1lHc1pyMjk1WnJRQUFBQUJKUlU1RXJrSmdnb2xRVGtjTkNob0tBQUFBRFVsSVJGSUFBQUNBQUFBQWdBZ0dBQUFBd3o1aHl3QUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQWdZMGhTVFFBQWVpWUFBSUNFQUFENkFBQUFnT2dBQUhVd0FBRHFZQUFBT3BnQUFCZHduTHBSUEFBQUFIaGxXRWxtVFUwQUtnQUFBQWdBQkFFYUFBVUFBQUFCQUFBQVBnRWJBQVVBQUFBQkFBQUFSZ0VvQUFNQUFBQUJBQUlBQUlkcEFBUUFBQUFCQUFBQVRnQUFBQUFBQUFDUUFBQUFBUUFBQUpBQUFBQUJBQU9nQVFBREFBQUFBUUFCQUFDZ0FnQUVBQUFBQVFBQUFJQ2dBd0FFQUFBQUFRQUFBSUFBQUFBQW1nTzgxZ0FBQUFsd1NGbHpBQUFXSlFBQUZpVUJTVklrOEFBQUFweHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlsaE5VQ0JEYjNKbElEWXVNQzR3SWo0S0lDQWdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRLSUNBZ0lDQWdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlLSUNBZ0lDQWdJQ0FnSUNBZ2VHMXNibk02ZEdsbVpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzkwYVdabUx6RXVNQzhpQ2lBZ0lDQWdJQ0FnSUNBZ0lIaHRiRzV6T21WNGFXWTlJbWgwZEhBNkx5OXVjeTVoWkc5aVpTNWpiMjB2WlhocFppOHhMakF2SWo0S0lDQWdJQ0FnSUNBZ1BIUnBabVk2V0ZKbGMyOXNkWFJwYjI0K01UUTBQQzkwYVdabU9saFNaWE52YkhWMGFXOXVQZ29nSUNBZ0lDQWdJQ0E4ZEdsbVpqcFpVbVZ6YjJ4MWRHbHZiajR4TkRROEwzUnBabVk2V1ZKbGMyOXNkWFJwYjI0K0NpQWdJQ0FnSUNBZ0lEeDBhV1ptT2xKbGMyOXNkWFJwYjI1VmJtbDBQakk4TDNScFptWTZVbVZ6YjJ4MWRHbHZibFZ1YVhRK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXVVJwYldWdWMybHZiajR5TlRZOEwyVjRhV1k2VUdsNFpXeFpSR2x0Wlc1emFXOXVQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZoRWFXMWxibk5wYjI0K01qVTJQQzlsZUdsbU9sQnBlR1ZzV0VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnSUNBZ1BHVjRhV1k2UTI5c2IzSlRjR0ZqWlQ0eFBDOWxlR2xtT2tOdmJHOXlVM0JoWTJVK0NpQWdJQ0FnSUR3dmNtUm1Pa1JsYzJOeWFYQjBhVzl1UGdvZ0lDQThMM0prWmpwU1JFWStDand2ZURwNGJYQnRaWFJoUGdycC9zbHhBQUEwNWtsRVFWUjRBZTJkYVpBa3gzWGZzKytlYzYvWjJRT0xhNEVsUUFJbUtkQ0VMRktrUk5BMmd3ckxsTU1mek1PbUltelJKaDBNaDBnNS9FRmhpYklWVmppc2d3aUhlSVJOU3FBc0tpZ0xFbmpia0hpSUpnaVFPQWlBd3BKWVhBdnNpY1VlTTdPN2MvWDA0Zi92WldaMWRVLzNUTmRzTHdTU2t6TlZlYjE4NytWN0wxOW1WV1ZWTzdjWk5pV3dLWUZOQ1d4S1lGTUNteExZbE1DbUJEWWxzQ21CVFFsc1NtQlRBcHNTMkpUQXBnUTJKYkFwZ1I5OUNlUmVZbDE4cWZGenVjVFR1bHlJcytMOTJ4SjRwQnZqTk44STV5VWpvRFJqUTBqVDMzNTlCdjJMM3U5ZXpBeWhuNnRRUkRveDdsWnk0YWYydWZMUC9PcEhxN3R1dnJsYTNUbFJHUzFQbGk4MG02VjhvVnFvNXh1RlZqMlhiK1J5dVh6ZDVlcEY1eHIxdXVGYWdWVGQwd3VSWmF4Y3FYUmNqNWxRWGlyNStvV0ZCRVViWHJBUlgyeEd2S0xDWHVYMVpyRkZmYTdsV3ZWV3E1VnJ0SnFOU3FGUnFDODF4c2J5SzNQbnp0ZGFaeTRzdHc0K3RuVGt2LzdiSllIV2REUjBwRU0rWktJaHhEZ05NOVIwVk1oUWthYVFSZngwTEhhMi9JbnZmbmRQYzhldUEvbXg4UnR6b3lQWExkZGIxOVNhK1YzMWh0dldMT1NxdVVLdVhDeTYwbnpORlpvdWwyKzJYTDZKYkZ2K1VOcUdpc283WXFTVmxJVTBlUWdUMnhIU0RlV3JJMUtvS2hlbERtQW9pL0F4SGZNV2kzQWRtSWdqM1VibDFrWXNLV2tIWUxsOHE3bGx3alZtNTl4S3M5R3FpY0NTbUo1eHVlYXBWajczYkc1eDhlbld3c1hIQytkT1BYbjRuOTV5UW0yaXZSVm9yMFBvTGwrSUNobzJoWWdYeGRNSjl6K2ZlT0xHMHM3ZFA3ZGNxdno5UlZlOCtXSTl2MmNoN3dybk5ad3VhaXdzcU51TE9wYlJoRnFWcTg1SmFDYlVLTTBZZ3crcGtDZFkyaWU5dEZRUXFoSzRKQi9xWUdwc1RBckZBQlo5WTJEc0NEQ1IzcXJ5QUlkUlVFZEl3L29TblNXRmd2b3lPZW5jM0FVUGswTWlPdktvbHhqZ2htdmtjODJUdVdiOU1iZXkvSlhDMmJOZmV2WXQxeDVTRGVndnF5RkVSY0hHc0FJNDZaZko3Uk5QUHZucXd0NTk3NXR0bGYvSjJWWis2dmk4Yzg5ZmRPNnMzTzVjcmVVV05LUnFVb0xjcGgraDBreEJybmwwTE8vbVpodUpnSWZGWElKSDNJMVA1TDBCTE1qUEJFa01XeUI1U1dKeVM4R2RuMnU2cGcwRnp3SDBOS01aM1p5c3BLQnByVkRSb1RqZmJKN0pOMWYrb243cTZNZFAvSU1ERDZ1RjJZbGlrMm5TaHlFa2h0MWY4TUZzNDdmdnZudDYrcWRlLzRHWi9NaDdqOVh6Vzc5L3hybm41bHJ1N0ZMTExjcFhOcVJ3UmswTVVRR1VsVXM1TnpidURTRFdEejN1WXdERHB0TTJnRWFIQWF5bWd6SGs1Qmx5cmxET3ViSzhVNkhSbk0zWGx6NjIvRGYzM0g3cTNXOTVRVzJHN2cyR2FRRGdnc0g2SGM4OTkvcjY3ajIvZDdSZXV2WGg1NTE3L0Z6TG5WNXF1bHJ3bVdiOXF5VmdKUmhBNmNmU0FOSUNrUkhJY29yVm5LdU00eEZXN3MrZE92bkJJN2RkL1MxQkRkVUlvbXRKVTk5SU9pcS8rWWZQUC8vTytlbDluLzN1aGRLdFgzckt1WHRQTnR6eGhZWldRRnJKQ1hOZWtNTzB1bzB3KzlKdkl3L1piTGpseFlaYm1OSGxRck4wYTNQWHZzL3V1K2Y1ZDRwM0poS01ZQ2hpSElZQndJaG1MdGU2NDlUcFg1cWJuUDdrZldmeVUzOTF1T1VPemRiZGt0dzlSSWJDcmZEOFdBVzV3N3F1TzVjMGRkWnErU20zYmZxVCsrNDkvUjdKWUdoR2NLa0dnRjZ4eHNZbmp4NTkrK3pranR2dk81MnJmdk40MDUzUXFHZUszMVM4aEhDSm9kbVFON2pRZE10THVhcmJ1dVAyZlY4LytnNmg1SHJwa2ozQnBSZ0F1cVY5ODZNSEQ3MSthV3J2N1ErZXpZMTgrMlRUbmRGOHZ6bnFKWmtoaG1aTGE2aDVIVXU1RVRlOTkvWXJ2M2pvcDRYK2tqM0JSZzBBNVpzQi9QS0hQN3lyY1BVMXR4K2N6MC9kZjdMbHppeEwrWnZEZm9pcWI2UENDSmJuVzFwUGFUcllkODN0TzMvakk5T2hkc01TMzZnQlFCZjM0Mjc2NTcvNGdaTzU4aTMzSDJ1NTUrWDI0OGlQRnZKU2plR2Q4Rkxscng5ZnVzSHNhbG9UTkN2bFd5ci84QjBmOUwzWStGVEE0aTFyZ0RmMDNQcXRyMzN6TmZQVkxlL2hVdThaelZFMU9hUkxIZjFjQnVaMUVIUGI5WElGOEhOd1pRb2RPblU1UWlGRkExckRDSTE2MHhVdUZGeDFiTXQ3ZG4vNi85MzUvTHZlK0pEdzBvWE1GRFppQVBTQjBaK2ZldVVyMy91RWJ2SThmcmJsbGxkYXJpZ1c5RERra2tJMGdKeU1DZUZkcnRCTjUzSVpBTWJNZ3d6NmNxbXlhY3RDMDREV1dhV1IvTmJTZ1ZlL1YrWHYwOEY2QUlsbGt0cEdwZ0N6dE4rNDY2NGI1NHZqLy9nSHVqOTFTb3VUOUlqQzBpLzFpS1B6VXZHczFYN1lQUGVpZGJsbzFPVzJWblJidlZVY2U5c1YvLzBMTndiRlo3YmpyQjRBQW96KzF2UXRQL25XazduODl1ZG14WWl1OVhVSE02UHRDYjVIUUdDTUdrS01mVzY0Witnd1ZtQWJPcGtsTnlBN2NkUmJYMEsvQm15NkRwanVFU3pxZHZwb2ZudnU3N3ptclFJK3FNT21ac1VEVThwcUFEQ1YzNzU5ZTZVMU92bm1FM3FvYzBiMzloRW0vbWNZSVk0WUVGcDZHRWg3NFJEUFpnU2l3OGk5bkFhZ3hYdmlFU09kZ1RYVWkvZFlwcWRMalZwQlQwNjN2TmxOVFgzRW5UbXpyQ3J1RHd3Y3NrNEJ4dis3Zi9NM3Ixak9WMTV4OGp5UGNNT2RQb1E0aE1OR0k5TGhrR2JZQk9BM0JQZzRSOW5RRHVnTUUxOHZYRUV1TWdMNHRqNHBwcCt4cnh1Vkc0T2tvYjBNclVMNXBoM3YveTlYQksxSEd3dlp0YU1zSGdERTVtS21iNzdsd0tJcjdEeWpPYWhCWjlhbXNXNHR1aVlRYXpPTlBUWGowYWtXdTc2d3k2TkZlTnBzT0FnSitEbVl3dUxUeUEzajY5TVFMOU13T3ZLVWlwT3JKQ29JSWh3MUZtTmZzZjVaR0YxRGV5aWFsY0xPeXY2Zk9LQVdUNE54L1padGlDd0dRQ3REUHJwcjF3Mm5XN25pZWJsL2U4YWRpV1NiZUV6bG9vSWxFK1F5cVFYRmJ1MEptTllqNFo0aHlJNjZWSElWNkNxMlVnVzBxMVp5eG4rdFVPaVVXaGZTcm13SG5SUktYOTVWZ01JcjZzdWtudXp4S1B5Q0ZtOEZGVVl3UEp6UGlKY096SU5sbWxoWFBsOHNiSisrUVMzK3J3NkVCcXExMkZhMUQxa05BT1Q1OHVUay9ndTJneWU0c29odGd6R2NhaEM2cXJELzVNNkN1M1U2NzdielBMeFlzRjVZVDFMZFNTVUhwb2pBYVJjRmJ3bERwSkpZbWNJMkxCcTRkN1N4cEkyTUp5KzAzUDI2VmY2OW1icks5T3hmbzU4Nm13SjB5cmU1UzNHeVRsSUl6TE9NVCs0WEpBdDBVQTRjc2hnQVl1SW8xMTM1U3JaeExjbWFtOUdWRFV5eUI2Q0VCQ052bWk2Nlg3ZytwOUdpcldIQzMySTVvN3FleXVoWDNvVWVoaTBraVpCUEkwMm5RM1VrMnFzcWdzUTRRWjBrdW1pb3ZGRjJibXBYem0wZktiaUNIUFVEWjdXN1ZRWnZ1NElFamhoYldFTFdvQ200cFcxMWNzaFhxYWw4alcwMkhSaExGZ013cE5Oalk5VjZvN0JyUWV2TnBvZ1h4WE4zdndlbFRuYzVtSWV2MGhhd04xeVJjeFBhRnJVd0t5dEx5UUw4MGM1U3hZT1M2WUNMdkRMblIxeklQYVpqM05Fb1F5YmlwMGxjVjRDekZHaG9GNXA3MVZUQlBUVlhkN05hUUxObnNIc2RrTVlCbmpXREJLTzd3NUpQY2RxTmoxZmRSWWFtcVdTZ3JrQiswR0I4M2Z5V242azJjb1V0Yk9CRWNReFMyY0dHRHBUS0hUOVd3MWVONXR5MkNlZm10YkFzcTR3QVhtQ1k1a2d6VGNReXlyTWMzVHlDRTlmSkVmSEcrRkpvcEhGQUkvSXVkcDBjbTZ0S2J1TXk4bDJhNzFoQXMraWxJellOd0Uvb1l6ZS8vZkxXSENWSUp5T3Zlek1rTXRuUG9CNGdJczN0dmY2V2Fpdm5xalYxQk8zYkxVNGxOeG9RREVJWWsvTnFpa29UZDZZeUZwZldPUkJUa0FxVzdTcExWYTlPQ20vc3dPckszaVhEcElFbmlJZGQvb25rS0hmT3NCWlYwRzhXd3F3SnFNOGFiS29zdW1ycDJyOWJYWFNmby9uQTNSM1VBQktlSnZidXJlU0toWktNd09XNStiOEJoaE5rSk5RZUl5cHBaU3lkbStLanRkc0lWVjFDSWlSOGxKUjJvT3VYU2RiZGE0a21oWkpMckt5aEh3MnVCS0lCMkFoWFI0c3FMQlh6cmlSRGlMdUQ1UWN5cU01ekIwMmgwVDdLZkhsa3g1NkticzFrQ3BrTm9McDl2RndxdTFKWmJteDhWSlN6eXlsaE1EWkZLRVVKQXNYak1uazZaNk5mTVdYbUptbWxOQ2VMU0dZSS9sSXphTCtmRVNTSUw1RkdDai9LeGJBcFlyNk5VMDlaV2h1WDIwTjV0aHNZZ05BdTFWeUY2NGV5WG5BWkhja1Y2OXRIcEpVa2dDYnBVVkxhbGNoaUFJYXcxYXFXNWhkeitWa3QxTTdOTVBtc1M2T0xaR2NXbDRlQzZ4TkZZZEs4cUh6aUFVaExldDRZSXAwWWQrSVpMRWZiSGxMdVFObVJHUXh0QjFTYlJoelowUU8wcEd6NlI2Z3RhUkY0YmtXR3I0cy9BUlJ3RWVLTjZTQkxBTHl5Vk5KMk1WZFlybzFsMGFlUnlkb2dWeWdWQ3kyOThJUmllTXc1akdBM2s0UUlSYWM5Z0JtQ1RoaEkyd3RzVUVFREN6Ymczd2dabzhGSmpSWFp3azV4WGdxbWxBVXZDMmY2U2Qvc2hBZFFHWXJIVUpnT3Fjb1NtQ3AxSGFpWGpYSlo5V21YMzFsb3lXSUw2SjNiODhZb0hkdG9RQkJnTWVFb0RVNEV4QlJnK0JYVE9STVdhUXdoSWRaT21iUjdsQ2R6Y3F3elptblhXZFBHcEJTTG14UVYzN1FORVZHMTR5NEpTT3VHWFNQYTVuMEJZdUNrVWJCTkFVSVhMejJKRVFCWXJIKzBheU1mS0dVNHVDZUhPL0ZoWUJTWkxVYTdsQXZTZzUvWU9oU3lOcStSSSt0dklrK2ZhRW5ER0FQdWtYZjFkSGxzZWNxNDF4QTlBSGxUanNXQm5oQmpGaEYvd29VS1lobmdNVzMxcGlSU2xLYU1LdUszMHE0MmdLOFIwalJRTmhxT1U0QVpnc3FpQVdEUUtNMHJUZ2taSGUyajlraG5DU1lYa1pNTlJCUUROODlzQUxwVWlXL3ArazRNU01vNnBST3lRUUM4S01KZFJKU0xrdGxSeER1Q1M3cThwRU8rVGh0TlZOZVNHL0I1aUtsUy96RWdWQzZmd0d2RHJCMUZFRTgwNUF3T2FFdWtFRmt5WlF6dDF1dWtVamdFNlVkL1VENTVTT0htaVhYZ0FZeC9tcEdtQTByVGppTGxFa05RY3FCZ2hzUzk1VmJ6OGh1QTAzdmI2b1E5dzlCYjhHbGQ5R1NXRGxsQTBlcmhzb2I1Tmwzejc5TWJzOXYwTUthRVZGVHh5aTA1dDFmczE2b3RWeFpXREFOTE1BUEJMU01keWhGUlNMTUhjVjR2bU00cWdTeTVsUFFLME5ra2JvQkczdmlneklJdjc4eWxxOXJ0MnFsUTN5T0tlRXpEY0NnNkpobFZvRjhiN2ZDbXRLMEJoTU9QZmhWQVFQMVR5Zzc2UjE4eUJYQklKNFhzTTNyMkZucEp3V3RkWExLQ2gvRitJUW9QSldMNUpmWDZYOTFRY1A5aWY5NWRPNVp6dWkzdWR4SUZCTURueGhHR3g3b1dicHFZUWVsMDlHTFRmZk5relQycmQ4M0xyS28xNUZoWm14R0FzMXZ4U1I0czdXQkcxODV1SU9XVmoxYk5DTlFCU05tQnJKUzJTMXpEckV3d2JCYUJYQ0hRZjRadzFtRnN4Z1RPWnRackNQOE1ocWFaQW9KbmdCS3ZGZFJGQXdTdXBPNTkrTmFpKzhWcnNuYXZQd1Z1cG5FajVlVjYvZnJxaWFxNzg2a2w5K2pabXF2bzhXNWUwNkZORFF4QkJUc25pbWVjaVRWZlphTXgzUlh6TStrQ3c3REdTWGdBOTZhcmxPaVkwcVVaSDRlOFlHd1JLQkY0RDZBQ2dkUFdycWdDbnF3ZWdPY3hoa1JSMXBCNURiQlNhK1NxY0NpaU1CMWsySk11Z3VSZlh3Qnh2L1NLdkh2M0VKWGZUWEJVaXY3NWE2dnU4RnpOemVvckV5VjVGek1DN0Mwb0pKRVMrUzRFeU5Dc3VxdmNpbnVVeGFKT1BNSml1THNVYjRiZ2pjQ21BQnBCa0FNWmlrZVM1bEU3RWFwMC9aQVkwL3FncXlBeUd3QVlqSGVkYkpwZWhUSlZJQmhHLzNiTitlL2EzN1hwSWdVMnJPUTJ2VmIrcXFteSsvSXppMjVFNzlnWHVNMnFZWjZYWkUzbEVxNlhMejFJTXI1RDZoV2xGcEpFMzRKWW9UaG9MQjBGZzZNb2VlUUxPUjNSQU1JaXl2aERqdGdwWkZlUlZ0bDZnVXRsTTRMMUFIdlViOGdBN01iTk9rUlpLTkN4dWhaOVYybkJkN1hlYzM4eHdyN3hnbWpxRlNwNW5hSVl5T3ZPU2g1ZjcvL0ZnaCtKcTNrUnh5WjlyNEpPUmFqeE9pRkNvR1FDc1IxQ3BPc21IWjZ1M1FrTUl6NXFIT1ZCejV3VmNvdEdaWmpXUDcyb0hrQVA2K3ptREJ3anNOanhiamJqK2dEcjNLYk5FTlV3RjNmRERUcy9KaS9BWTlibEZlMllGWGVGNkFFa1hlOEZFRFhCY3BieUphRzhJNHF3QnJiR0tlQXlZUVQzRC81b0JOREdDUFNIL0ZBMGgya2RFaGlxWmYzNnVwOU1hZEl6R0E3VmdEeGp5TzRCZEsyTzRrMzVpdnN4RzYyYTYzZ3U5YXpER1puYkNEZ0x2eFg4ckJZb3VtT3RhUUFQd0lFUzJrcjMwby9jSTBFZjRycUZrbGdiNi9ySG9YM0VyNGFvVWxsL05XSzBQVDVkUTltdDM3YnlsVmQ5cERjNHpSUTNOT2JZUU1oc0FCZ1pLMWtJMmgyaEhrU05uOGhRekt6UnN3aWFSclVHZUJwc1ZSclBVK05hUzRwdlNlczhZbUpuSVdzQkpPM3grdEdabGhvR1RaNEltSkNsY1AwQWFrRjU1dzF1bE84TE1UNUxrdFZSMXdtaEErOUhrby9pQVBIMEk1OEFEUkJvWkF3UEFOc0ZrdGtBYUcvQ0VrSGlmblRwSU5mVkVkWUFyZGVkSE5DK0Y0NWVaYkVsYUhxZ3NtcG9zczNic01vQXNGVWVzT2g3ZmFZVWxPQXBwakVFYW9wOEtuVU9WYlRxR1lTbWpTa29ueEwrZFREekVjY0REOUFoRStHUEhpQnRCT3VSN2VBbDRPZ29HekN6WVFPZ0V6Q3UvdlFNQ042a0tSaGc5YjkrR0FTb0g4R0FIVnIrWTFSS1NLSzZtYXkxZ0Y4SWV1VjdaWGlPUU9hSm1sSlNYSGJtMXlFcUxCNDN1S0lIOEdWeDhXZFhBL0FvbnNCdHNnTmNCM21VVHhaSzBSQ1VIQ2lBSzhYNlFHMGlVR1lEWUFlQUxmQ2tZUmlIZHE5Z29nMk1wY1ZIVWN5SGFrT0N3Y1R5WHZoaW1ZMldBTmdMSHB4OC9kT1FLYWFEWEFYWVl4STFTTnFrRTE3YnZpOGdTSWVRajhWSk0yQTZNcjZSR1lMS3UwYytkL3VpQVVJb1VScUlBM0xRcGJJZTRTRG5EVFh5aURNYkFDdE5MZ1BOYWtXNGh3d01Nd28xdVFvbXh1bSt3RE13aE1oLzBJTndVdElPUHFlUnBhSXdsU2VFSTMxZ3JGNkpGVnRwcVVCckFZeVYrd0FZUUU1YThMaEE1T2thRDViMkJiNCtuUmJzR2lIU2p5UGRLNTViMGQ0STh0STBpcmVMSUdKeGFaZlJFSW9IOGd6RG5pamlYSU5zVW1YOFJqd1lmc2FRMlFCWUJISnBoN0tZYXZzeEMwL2V5cFZDYTdRTEIya0UzeGEraDQzMTFnNmdkTEJDNFRIRTZZclZQTEFHaUs0L3B3OHNtZkoxS3JBb2xDYTRmVnpSblVMaXNvNlNwSzZyUjl1V3hqWkhGZGwyN1dURVFnNjZDanlWcE44c2hMblk0S21tUDd6bllmcFprWWJySzdvY2xYUllHTElocENDTDRNNGt0OFMxb1VieUl4WWk4V1E5aVBpTlNzWlRhSnV4bFlGbk5nRHpBQkJVNTlHSlpOVXpVSTZSR0l4aW1oQlFPblhFRkFKREhiRVBpR3gxQUE4MStJR2tQaEEzV21vU3NtNUJUd2Naa1ZWdHh0ODVWbkM3dFBkdWwyNFFUU3U5UTY5b2JkRXhxcnVUVldtN0xFTmdYNTRwWFFpSTQzemRZUURDRDkyRVgzVUFRK0NDQTJQUWJRZWJlbmhaWmw2UHRQVmRjRGVqNDdSZTRlWTRxKzhSejRrdmRsUFg2Z1h0NVplUjZ1QktoUVVxQW1HYzJFMHJ1aDg3UTNxOUFHTnF2NUdRMlFEd0FIRUtzRUhaaHlvOGVZbUZlSFcyWFczQW9VR1NKdDhPRktNUWk5dkZxK1JVbGpKZnF4Y0xiOWhadGVPS0xTVzNiU1R2UnFSd3ZXbG1nWUZuaDNMRTRMUTRwTTBZU1ZQUkk1aGhDQmZvRUdEYVlIRHhOZzNBbWY3WjRLTHRmKzY4WHFSNVFkOUhQbkpleHFEMGpQWlV0bVE1ZWwzUVZZVEVOdlBRUHgwMDlBYnYrMHpKbWtFNDF0TEZXbTB6R3dESW9yQk1jbjJ3TTVkRlFVWVE1QmxsYWlOSm1TamtHRWZZN2hpNUFNTTFOdnNRd0U5QVlBbE81YmVQRnR6NzM3RERUZXBac3cwc0FUQkM1eVQwU05Oa0hCcFpXdTFpREU1Q3hPbHpnNTJUTmhHWm1NUVkrREw0TnIzck9LVVhYMTYrTytjdWlwZlg3cW5vS0xpN24xNXhqN3pRc084blYyU2hmcTNpNmVIdHpCQWl2bjVzUURnaDNnK29kM2xtQTZpbkZvRVE3Y2ViOFVPOWpyUnk4VlN4TENyRVdBT3VBNXRoc0Nwb1dDNGswcDZnRFdXZzl1YnQwcElFT2wvWE40dllkNjl0RXZaNFdQV0IyWFNiam5RNjQ5RUZ5djE2bVFDWmQ0bzUra2V3ZmlwR1p1WTVsY1pnMmJxNWI2dHpWMnd2dWpkZVYzVGZmcTdoN3Z6K2ludjBkRVA4Nnh2QmJPMkRwSkhWU2ZpNnB5UFZKc0hvSVZpSVpBeVpEUUQ4akNoYkNCTDNJV2k4cXhLNE9EOEJHK0U3MHFIUW91UVVDaU4rSWN5eFZJN1NEYmlNVG9BaGpWdXR6Uys1TXY2K1dKSzMwcFp6elZsYWdrVk1YWEdiZUNmRmRDNmRwbm1hcWtmWFZwQ3ZpL2xWc1ZDMTVBRnErckFEdjNreXFwMzh0OTFZY0RmdExyalBQcmJpN255OHBvOXU2QU5RdHJGRkFFTEFYek1pNnVLZXJNbTRtOFVlY0wyS01odUFkb1RwdlhxOUZDS1hOcW5QazZ3V1Jac01VMFZSZS8xRzljYWFqWFpWc1g2Z1RUTDZFVWlhK1NUVHhteWp4c29CYkpkSG1hU2JVOHNlUTFiaUdBTmVoYW1BbzNjSUZVa1VBZHQweEdHcUtlWGsyMlVHQ1RPZVVWRlVuVEVuMWFrWUJmS2ZoSkRXejZHNHV0NkZyQ25QRlBITzE1YmNYcjA5K3FtRFRUZXZLd1Y3YTBoekNEak1mTk00RW1TNmdwRStSa2UxUFM3OVdraXFmcTFrWmdQQW5hMW9KYnVpZDFEcmJOL3RFK0FWblRVRW95c3hDK1F4Q2pwRE91WWpyQWZTT2RWUlN3cldDcnZLRFVlb0lvcWhycFdYN1pIVU9ScUFmWjdGbEJLaEFobjRTQ21UV2lQWFZkWnU1V3RqdnMyU244QmFva0ZaTkFLcnR6S2xBakFSME5nTG9TUkRxT2tYUlhpNSt3MHYwemQvNUwwKzh0Q3liWkExVDJCRzRBMEIrRTRPL0JxRGR5bzNFakliQUQvcFVwVDc0bWRXbHZpbGpUNVVZWkpyM1VWdDlWMWVSdVU4bHZFRzRPdW85MGU3UjlRQWxNaXFuZkJTOC9VNjIyQUx1ZEFxeVhFZklJL3lkZU1IRHUxWmdDM1Z2WklTSk9EcGJKemc4SWxldllzTmV0V0pYWnVpZkIzMjFqWUV5d1I1V2FtUndHQUlTQ2pQMUNCRnZucWZjLy9vYk03ZDhjaVMzdm5UOXdTMExyQjlqaGlTb2ZGdHJLRk9yYWFNUmtWMXRjOGFNaHNBSG9BMUFQMjBKMng5S1VyWTBwTDlDUmF4Y1VRUFFHekNqM0hiQ3F3aXlNWFRNUnJXY3k5UXhFZzdjSGJLd25DdWlFR2I4OFVrUnRqa2tYQlVUQUpQNnhoQ1licklxbFlWeEFhSzAzV2h2YUsyYWxHV2g3R25nOENqUUhoWDJuc2RvUFZuV3ZVMUJYbFd6YXp1dHV2TDdwR1RkZmZ3ODNWWGxYWU5SOGM4RUdnS0c4WGN2K0RkOEt3aHN3RkFnSG1jUTd6M0RKRzFxT0FJQnpoSFZINnNOelJkdUtnelBCR1oyaUZQd0NqcTlnQUptQURzbzArQzVJc2JkREN2TkpkamhrRFI2Z0RXWGlFUTdGV1ZFRFJ1T2lEOHFQZEZxTldNejVSUFdac1dFMVRvcGVkTlhzcjRsQkZ3YitDdEJ5cnU0S2tWM1RDU0g1T1c5WUZZWFNZbWhEMEJuYU1CYk9CT3NNa25RVFJJZ3FrRzVVZmw5V3BEdDZ5YlNjSVhwQldmYm0rM1JhMEIyRHJkTk1WMEdTWEcrVFdXQVEwaDhoZ0VOMlpJK3lsQWVHUUEzQlRXVFdBSlZrS01ia1V3Z3dianN4ZHcwRU43eEhjQ1JWTFVHMTN4MG9adHArRFh1RFl2QUkrNkRGUUpMOGdjMEpkRURtd3J1SU5uR3JxcmlTblJIN1V3WTZLbFo0SUhUZlNkQlhyV2tMMUptQUxTQ3V4RkZOYUFpZE1FN0hKdys5UkdjaWhJQkV6ZUlQeloycXZFdXFnVGNLRUpnRDZ2Y2h5UmVVWXJ4YnY0L1FDMkNVUkxmLzRZZ2V3VUFvUGhDN0JyUmNiT1dnQmRkUjE0RXdXSi81Z1dnTEZnN2NTVkxOYjNoek9WSGlFUHJIaW5nV3ZFc2hhRnI5WmR6Yi9STk5DU2hnMFM0VVZnWDJJNXBnQmtrVFZrTmdEY2pIa0FVVE5lK2xBME5qbHhCTTVRSW0zcHF5bFVlVWEveHdOZ093QVRkR2FGakhDdlRtdnRCUWhlYWQrbUEzQUJvNWlITk9aZXpXMEtoRVVoUkV3WmJScURwRHhYL3B6dUw3VG9pVVhkaUFUb3kvMm9wUjllK1I3ZStpR1VZRzNqVjUwQmFocnduYlZuQzlmdDBLYy9wUHdHNnhxYkI0VE1ybW5idEJrQUtGSk9JM1BJYkFEY2JXSVJDT2NvYjgxZ1dnNndpbWlHQjRCL1d0ck5KTVdtTlFwTWFsSVdSU0ZMa1JVbm9xWStqQjRxd0FVd1NlV1pacmovRGcwZXNsQmxVd05JMFNBRkVaZEhITW9vdDBvU0E0WmU4Q2pTTnpjdWxZNVRqK2ZhVTdGcEwxQ0prME0wRkM1WnZhejBWVEY5aEdPclhxSGpnVkxST2lXYXVrY0FyS2Z1QjVCTkFRTnluUWJMYkFDc0FiaHVSWG53MHk5UVpZcXhoSWNpMldzZEVCVklBMlFISEIwRVAwcU5Cb0ZRQ0I1R1FsS2wxY0dQQ28yVVRoaUFEWGpjSnVWQ1pxT1gyS1BvYzE2N3RyT1JjZGxabE1yQlA2RlQrUlJpbERJRitrYk9ZcDFVUlJ0YjdZZTIzQ21zNklubDFrcmVuZExyYnkzMk9RSkRweFVDbU1VOFE4aXNUT0hJM0FiaHhrVmdvamhqcDhmSmV0Z3VSL2tjTUc1Vm9aN0lsN1E3RlkwcmdiVVdmZ3laZTVlMHpFRFVNaG9HTWZodFU3RFM4SXJBZ0xlUE5FU0pxVzZ3NERrejByMGFtRldsSzlvRUxLV1RMd2w0aENqMnRkTUFBUFExOFhJUFUyVmZDNzhrT3E0RklIYzNyYkVKRUZpUEdlcllnNVlMdXR3bGx5MWtOZ0RRRDdJR0FNNE1CTDdoVjBkVUVLeWIrdy9sUkhRSTlmcng0V0ZSWHZKOFhCQjJKU0FvVTdodlpDMVpNMEVqNHVmRkVKNGI2SFZaM1E3MlUwcmNuV3NOa2xOYmlNWmdVcjUrSXBKUFkwampzSEp6QXhIUzQ3UWVxcWpEQUFRYzRURUEvNTZnbm1Hb1BRYkFKV0hiZFpKV2UyazlPQUlqdXdIZEcwT1pEU0JlQnBvMWR2Yk45ekNjcWNLbzQwR2VvM3NSU0tFWmlCSmVtREtFSUJBLzNtbEY4TFZnWVEzQWF0OEhsWU5ER1F5QVl2WUUyb0NTOHYyWGg0UWJqMkdGdEFxNHlOTndvREF3b0xDMWVVMlMwQWprNHZ3ZmpjQ1RWeHZ4UTkrOXQ5SXRkR21ZQVkraURaWU9nbHBsYk1sSFltU3A1OGlzekkyMGFjZ0M3TXVVV09FYU1qRSs2VEF3NFNCaUFkbXU4d0J4TVVrNXdORUFiR1FyWS9Vb2kxNEdDZVI0RTVvR0tvczBFQmFMVEQ0MFllL2VLWVA3dDB0Q2hHdk52YWNoYVlGQ3RSa2s5QWFqMURDblVBUmFIU1UrQTYrZEJxQzIvdC9IU2pPMUlRUDZZNlBkTEZ0cDh2RkFqb0loeTZuSC9TRnExZzNaalVZR3dCeExSK0k4M1lzS1BNT1lEVExGTmhjcnRpbU1Lc3JBRTlLazFCOS9xREIyRHJkdkFqTEFBS3plQW11dHFjWVl5Q2tOZmw0TXNTc0FGZlBxTkI4MEFwOEp5WU1hUEdVV0JHTkJlWklVeDloWCtEUDRMeVZZbjRYQTQwbjd0MkF3TW1aN3BkMzRWUjgxc1FQTDExT1FvekVWNDhBSXZISzhhQjZBS1lDbmU4a2NIaGhKUjRtY0FyT1JlWlREWVFJMkk1SWJVdys5UUR3R3hHTHVHcmpZdXhoalZmUlVzZTJqQTVPbGZWdHdtd2VBU2NFMVJWaXN5cVhxVUJxOHZoM3dJRjA3cENHRXVrZndwZEdEUlFCcmwycHNVRG9SMnhFS0xMSkc0a3Z3eU1rdkFqRnd2VktuNGNtVWVUSDhFR2NiZ2FjVTI5UHVSVE1BMnhTS0ltQTJjdUQ1U2M2eDd5akRhOWRiTzgyU0tVRGFRdkYyZ014d2haRWd4SFRJVHdHcWtuVHdJQ3g4ZUliT1BmNjhSajJ4TFJRaEk1R1pnYW1lTjROeFQ5NEFCSXNCbUY4VnoxZ0V3clkyUGxZeUJLK0ltSU9sMkpkWVJwendIQXZURmh6TGlLMnhUcUZ2UkJIVWlneFc5ZW9Ib0dZRTZyVDNXTG9UcU1JVmpmNFpQWFZsM1NPdzVLRGZQT1VFRDIyUjEwWkM1aW1Bd2NWOUFDelRkNnczV2Fvand4R096bmNzQWdVVTU4TkVNZ0pHRUlqRWxFN3ZRRVFQdzd3Znk4MmxxeHh2Uk1EZ1dCeXlNeGNEQUs2dVBDK0lldUY2WWRuWmhBNXloU1JTdTVpeEN1VkNIVFd4SDBreUZIYlhoYVloRWgrcGdrNXZJZVNCRCtPUHJQcUN3WkpuQy92c2ZNTU1vS0I5Wk1ZS3lIUmd6eVpqWlUwOHF1U0tJV3ZJM0lScmE5dmdJUWFpTmZjaWF2b0t6TUl3eWVpaTZRaHQyMGNBQ0tJeVlTaU5BdGtLUmN4bGpvMTRDUVZjaGs4aTRaTEpEQ0dGMzE0T3RSRXY1WXVJL2VZUVFQcVBzS1QxNzBOSTRIZ0owRy9YSmxBcTg1U05iMkJKS0RZVms3UjY0aGg4VzZzS2RUd0Q4TUhqNHVFUHdmb3M1b3hOOVVuZi90VzJkZWNlTzdPaVBSWE84UkhZNVBFNkRkUThZb3JqZytLc0liTUI1SEw2VUtnWVpOUkJ1RitneXVwOVA0MWhNd0RhcVE3WkdSNEp4T1JvQXZJcVlBV1BJSUJuN2tabW9PRnpxZ2piVHduQlV3aVFPcERHS2FDbVcyZ3R5bFhHOXdIc0oxb1lWUndlVkltZzd1N1ljQ1dtWUVaSGtTRlRSSTNSRTQvdzdkTWhOcmhVbW53U29FeWR0VEE4c2NxVXIycEdQenl5RUJ6UlZuWmVWbm5zUk0xZ29XdC9hbzRoZ0NYMmhSZ3p5cXpNamJScGFIZUZ1WCtNd1BkRmFEcERaTXpxQXd3UitmUVU0QTFBaGFyd1lQNU1lK1p2T3VWN1NZbkFWSVpDZVprQ0k4QlYybVZTSUdnR0lCUmNCa2IveUZVQTE5TmVzSW9qY3dLSmdvZUlVVkNCcCtRck1VTGU1cUVlRGpGNmFIZzNya3JTL0dGcDFnZGFXNkZpSDVSTGhYU090T2lwVDdZNFZWUGpSelJLdXYzTGJ3eWR1OUJ3UDNoK3haVzFyNXdiWW1DM29LYko4eEFWQ0lYSkttY0xuUUF6WUpUZGFMUWxTUGNCVExkNDJYNkJLZ095aEluRmoxRGw2VWhVUGpEeGlMaW9SeWlTaFhrQ3ZBQUNRQmUyQUJRR0huK2E4QlhieUJhZWh0WUlLSWhkUytnRVFuWWZRQVJNZ0ZZbVBCQUthUk0rR2ZKVzdEMUdWYThNamZOQ2lkNDBZWmMyWHgxWjFKcytGeGVidHMydHFRNndUakY5Qzc5L3ZDdmlWa2JjRGgyNW1JbkdScHdjdnI4VGVyZGhtNzRBL21WdENUdXZoMENqZWhnVS82eGo4Q284OUFOMFpDVVAzVHBraFpZdFpEYUF1bFpaZXVQS0hsZWh1SDdCR09NVUR5VnRoS0pWQmQ2TEk1OG9IeUg2S3V1UVpHSXg2ejV6L1lxTm5uck5Rczl1aFFhalFCQUl3UzhDOVlVUWVRQXpBQTFoM1JTMmUrU01Fc05wZUNWTzFkbWZDVi93YW0rdVY0cmZNVmwwZS9UaFNyNXJlTzVpM1MxSUNSTXlodDA3Q25xQlF3OW16aGZjV2Yza0Mvc2Q2UU9OazM0bzB6blBlOXlDVWdJdVF6QStsRmFNcDRFMzBpT2lQejJaZCtjdk50dzNubHdPM3owVXAvQ3A5Z1lIdllDR21LYVNRVXZ2SHdicGhzb0Jvc3dHa05OZWE2TVA1Y2hGRDBJb3hRc0hhSm1uSXZMSlpTQjVzV3RYQVNZOTBLbFF3V1NoazFlUU5RK2VBQmd2TU9DUUozbmZ5dU9EQm04SE0wV1lWQlN6a1BRZUlBaFNlUzlNbjRjU1c3QzM2TjNCSzdVTFo3czIxeDA4dXVUKzh1Q2lPM3l1WVFiRlY4Y083Q3k1dDl3MDRnN3MwZXRtNHlWMzVIVGV6Y2hOODk2Qjc0ZG5LdmFEYm5XR2RBRzlGR1Y0Q1FlL0lUQzFwZWgyYW92M0gzMXJ3WjI5eU9objZ6MS93Y3d4Z2hSUzB0U1lBWmhFVTVVREpMTWFRSzZoSFpkYXJEQXdiZTdwUllOdUpxWklKdlNiTWtZcGJSUGxteEY0a0k2T0FhZUNPSEpSTmtRUnFrMEZJYmJPQTZzRXl1ZW82NU81K25xNkZsVXFsREhrNVM2WXk2T2d1ZGVPZ1VDUEJlS0loTHhIVzYrdTNaSFRieFkxM0NlL2ZkRjkrOWxsNGNwcmk3YW1BTUd5UmV2aFl3MzMvWk1YM1J1dUs3bTMvY1NvdS9uS2dqc3NJemloWHdCYldKWlFSQnorOE1aZStjb290Tk5RYkFmNHNVNnFSVm56L283SmtydE9QRHp3OUpMN3hoTkx1Z29JeWxkZjZDZXRPZkF3NUFtZWdwVTNtendGeXhpeUdvQkdZcjJoaFV2VDNCYW5IaUVwRlhjSUQ5Y0tveWlkQTdiYkM2b2dJT3RKMHJKRCtSZ0J5b2NjaG1EWHdJcTVFV0kzUXlRTmd3bjRXUXZZSXBGRzBKZllPTXdBUUtJcEFwNHF1dFRhcnJlR3I5cVpkM3YwR2J0SG5xdTV6OXcvNzA3UHQ3UUhyeHkyWS90Mm5pSFJsNUsvL25UVFBYVm13YjNqdFNQdTVWY1U5QjVpeVQxN3FtbUx0cHAwWUYxSitoT05RWFFUZFpIeUJzaFVoS0ozYlMyNEczZm4zYkhUZGZjbjl5OXFmMS9KakMrbmkzdTJoZHNESXNGYUsvRWVBeW5lYnRabUVkMHQ0aUk5Vzhoc0FGV05oUzBUcnFIWDdiUm5iZTJIa0ZoK2VhVm9iNjBnRDBabm5BSzhCNGdHc1pwcEZLcmVlZzlBVW1uekFrcWpReGE4MkpKdENoRXNYZ0hjMEZnSkJzRG94LzJiRWFvT0E4QVFHTlVUZW5tVVViOS9TdkI2YmZ2T2g1cnVPMGRVVzVwd3U2ZTgwZHJpVW5neGxpU29VN0Myb1BYV0hRODY5OU5uVys2MkEzcXo1K3E4ZStaTTNwMDgxM1FYRnYyMEFDOSs5Q2V0MjNuaDVPUFdFL0krKzlqOE9aMXp4ODgyM1I4Slo2RTY0YVprblBRcHI2bkpYaFZVR2paU25CaFM4bHYxMHVuRW1Hdk0xZlZDNUdxUU52RWVxY3dHTURzN3UrSm1tbzJGSlMySUZ2b2JIR0pDaVV0YWtaM2ZwaEhaOHU4dGVRK2d2S1NEOHBDbXJhWlhNZWZiVTJ3ZFIvQUlRQWVDeFF0d2NFbG84N3ZTZmhFb281TjExcE54ai92VVRsdEpzNklGRm91NW5Wdnk3a3J4cEduY1Bmak1rdnVMaHpUcTlVdm9yUHlaS3BaMStCRW5neEJCT3dKL0tKUyt3WDlEbmZtc0RPZUJwNXo3aFZkWE5DV1UzVjR0NEk3TjV0Mlo4eGdDM3dPZ244RFRFZkVxcGFQNEVWM203WmdvdUd2azhuZG94WC92b1VYM3B3OHU2aTRtbTBIenJpWWVDdlpTcTNnUVBIMmcvK2pYb3NBUG1lMGpSVGQvc1ZWZm1iSGZES1JHWEE0V3NoaUFJVjJhT2JuY3FqZHI1c0pOLy8xb0lTWnhvbzZmWDlDSEcyV2I2cE1wandvRWlTSkRyNHhiV3JRNzU2Y044b0RSYmRxWU1VaVFwZ2psaWUwVE1LRytvR3ZtbTY2YWtDRDlPa0EvY0dMWDFhUGFWclZWaTZ2dE9pRDgrUEVsZDk5ekJmZlk4YnFyNlkwYTNEQ2JMdm1EbG0wb2tTZXhxd1hvV0NsOFdNYjRWZ3ZickhGeXR1aysrdGVMN3FZOU5mZm1sNWZkeTNacExwL1NBbkV4NytiMFRZQkZmZExlREYrZFlhN254ekg1YVZ4KzRlZllHVTA3OXl5Nmg0K3VtS3N2cXQ2clcveEw0Mlk0aXJrdkVrTTdoVHlBbGd5YWpaVUxGMDVrZmpjb2l3RVkvZnFwN3k3cmQrcVdVQXlFK3dWVGtDcHh2eWNrb0JmbVdtNUsxbzRWZS9ldlJKQ2xhVmluS09SdW5QUWR4Uk44T3VCUm5nc2ZWdlFhTkJLdWM4K2QwdnlwZDZTdTJWcDFaYTNjY1o4WVhrM1RJNWR1MzNtODdoNDl1dXlPempUZDVNUzQ1bm90dExTWEtzL05GZ0dhUUVWTU4xV2tDS09ZT3Z1ODl3amV3RTFadG1VcnA3dDJUWGZ3eEtLOHk1SjcxYjZpdTM1WDBVM3J4N0RLOGdwNERBSmVneW5pMGFmMTFzK1JtdnVCM3Y3aHhsVkZmRURmNW5zV3NDbGpOS3JXWEh3Rk9WQkdFWk13TTdFVzVrc3p6enlZTmdCUEVNQTFRbVlEbUh2NjNxVTlqY1ljaktEa3ZrRjE4Q3FEZHFmMW84bDNINnk3ZjMxYlNVTFhyNDJkbzYzdmlhR3dFM2t2MUY0NDR3Q0FMdW13dnZNME5FK082NWRIZVhMMk8xK1ljOTg3V25QYnRpekp6UlpOcUEydDV2bWwwd1hWczA3Z0lRc2p2aXFyNFlaTzNaUXZRMER4T3BqeitiTmd2UFhrU0lYQXc3Tk1GNXhoNzk1UnJRTU9uNjVKbWN0dVFudTZkMjRiZHd2ekYwUmJENnIwNnJmZVhyY0hWdERodHdOSGRiUEozRHhLTnlQMGhwaHdrY2pIS3oxeVE3R2EyR2R1dElOdzd2Z0QzeFRtYkdGUUE0Q1dGOFhDd25LdXVYSTZyNWFpM2Q4SUJHME5kRUxnZjNqUGlrWkYzcjN5V3UzUGtjVmYxTXVsOGJjbkFtWmhDMEx2MlFkUEhnakp6U0NGMXR3N1B6bXJBZTkrNzB2bjNhTzZWTXRYeXZvZVQwRS8xZTZWeWJ6TDVSNGV3b1JxQ0h3Wkk3aWd6WVB4NVV2ckUxQ2VYT0FrRUNRWE82VWtzSHdJS3JhQk1hYWpBb1lnMThQY3Z5d2U1cVNXbVFzcWt3RUFqZUpIOWYza2FIQVdpejhiOWFvajd6blZPYzBIeGVtODBnV05zS3JXTWtWWGYrSDAvTHdlRzFsSVE0V2kzdEdnQmhCYmcxanovL0pSZUVTWW5ZODNJNWppaEFWOUdsWEE1M1JwOWNIUExMcjN2Nm5zM25pamJxUm9FY1pUMjdRWFNaclFYQm1UUTRJU2F1MUEybGJIaWwrWXJidmYvZnk4KzlQdnpMdWlsRi9rMnQxR05RcVJhelZtUTJ0Rk9IY3VFekVLNWlUdmJzSHZZUkE2dkZnK05HdjNCeDVvSnkra1UyaGh2TnFpVkhqdHp4YW5ZZEVuS2ZQNWwyYjZKMzNVME9DQUQveVpJVVM2TUpBRUEvWk1KV1ZLQ0lZSFJoaEF2clYwVENXOEc5TFJNZzNlSzcwUkEyZzF6NTk3TmpjMUxYd1lnQmRCTjNLRXFOcFFyTkVuTjMxR28rRFg3bHAwMTA0dHVldW44MjZiRm1SY3cxcVF4aU0wcTk5eXVheFgwT1VtVWlGTmlVVTFpNnNUK3ZIS3g0NnZDSGRUcTN4K2lWTUtsMlg0YTJjaFoyVHhoNUJEaUdrTUEvWnRWRklYR1RDNHNPcnVLQXNJUXVSSFp4c0FPdkJGOERSa0lLTEJPZ2lEYk11akRXTmNKYnpCaVVLQ0V2NEMzMG1aYjJ0Z0ttTlJ5UWV3YWhkbUQ2dU1aVG1RUGFCcHNUcGtNUUNRV3Y5V3poNTVzclQ5WlEzZGU5Ymo5dGpsMWNqVHhzRUtHeGZjbENBT24ybTZKL1MrR3dzaUhpMmFGeEYyNDFxR1VDcVYzUGhFeWMzTWRCcEFKd1hFTFVHYmF5KzRNVjBLMlNxZWVWVEd4bHhxcjFKSmdBWVo1QWdPa294ZGowR3BZTVFKU0VoMHVGOGFyZ29BNmdodURQNHBpWDRCLzQyM3dkRjRYcXlIQ1JaZ2FSSGhJejFmVHBVNDdHeGlMZUtKS3RZUGxWeXpjZkhja1NkRGVYK0Z4SWFwT0lzQjBNeVExNDdkOTFSbC84K2VMaFRLdTJzMjYvVG0wdHk0R3BtZ0JlTG5PRndXSDJyMGN5U3JZeHY3aGtJcERFQ1dNajZpS1dKSkUyVlhTSVJqNWNyWnZ5aG82TVE1bERtZkFrYWYwVTRhSlFtek5vUnJBbFpNeCtKZ0UwTUtkaklxZzU3YS9ZMHRSRDBnWld4M2U0QUVLa1dxazQ5VVJRUU9NVFY0bGtsNTBYS3VmdnI0RS9mcGJnVFN5TVo0VmdNd2pvNy8xVzgvZjhQcmZ2bnhRckdzbTVmcVZoZ0JnYmNrTW5FbmZUQlZtSklZRjF5LzhiS0dGdWhpR2NYVHpNZDgxY3QvMFhNOTloQ3dtdW5rSTUxSiswS1ZkYnJVaEJWUHlrUmxSZ0NLV0VhOHdXQTRZdHRBTEJwWmpHTjF6eGoycWVoZ3RDZWt3WENacXdzTVYyd3UvK0N2UC8zZlRnYklRVm9uU05lVGNBS29CSWc1WktUemk2MExwNzVSM0xIbFo3RkNMcTM2aHNDT1diWjFENlhveG9pdHZGVkp2WG90MVJzS0RJRzdkaXpRQ2dOdGN2UEtwN0VmOGVBS3F2QW9EUzlGb2RUeXBDMHZtR2dFSG5ENDU0Zy9UYjhubFRTL1BRRlNoWUtkckdvZEpRTlltVC8xallzWHVhNHlSd2FXZ1RIWm1pT0ZkcjBraUcyaGNlSFE1NzZhYnpSbVdISGJIU3ZWb0x6dUE4WFR5QVN1aEJlR2xLc1N2RWY4MDR5ZCtsT2REQ3RkMGovdE1YajRnQzJoNDJrYkQxMjgyWDBaR09zcTcrWi9HUGxoMDRCM0J0NU83VmtZTHpabWpqend4YStvSjRTNENQUzVBYzVaRFNBU2NTZS85QjhPTlJmUC9KK0tyci90STBaaUtycTVkTXlsVVRwUDJpekN5cjBScEEwQkZXSXU4UnhVbWhoS2Q1NjIxcDZGWE1EZFRhOFhENUdQYnRnZmlyd3Nlb3QyRGUzVGhWaGgrZXlYUC8vN0h6Z1VwSXF0WndwWkRRQVJRNFRyelpVTGozM3VVOW9nTXNmREMxYlM2NDRXTlVycHZ5T3RxblpsT3QydkFlVUthMVd2eHcrTjE0TzUxUHFoMDVEMHVhUytRazhzZDFRYmM4Y2UvTklkRWdQNjBOT1daQXBRY3JDUTFRREFpc3doMWpqeGhYL3pTSFB1eUIrYkY5RENiVzF0aEpacmFVd2doRGdLZlc2TjgxcTRma1RyOEl3N0ovVVllNDhTRjQ3OXIvLzlPLy95RWFXaVRvZ3poWTBhQUhPTldkM3ByL3pLeDNPMStlOVZkUysreU1KT0xBempvQmZEd0xNV0RzUm1VODJRZU81RmE1ZzB3TFZOanhCZmRwV2VLQmJtdi9lMU8zN2w0eEpUMUFXZVdSRFp3a1lNQUFvUXNtbGc1bnQzblZ3ODlNVmZMK1hyNXlyNm5BazNZRGJEOENYQVZNUVgwQTljS2ZlL3RYN3V4S05mL1BWSHYvN25YUHFaSGhSblZqNWNibFJiRU1QaXVBM1VmUGJPdDkrM2VPeWVENVhMamVVS24ybmZOQUtKWlhnQllVOXEwWGZneXJ5N2ZrOXo2ZnpoZXo3MEovLzU3ZmVxT05HQjBpK3FBZEE3Q0xJVzRCRms0L0FuMy9Ubnl5Y2YrbENsMGx5dWlsbnU1MitHUzVOQTFDajdGbDkrVGQ3ZHNMZTV2SGo4dXgvNkh4OTgwNTNJWElmSlhuRUV6VXh3R0ZxQ09FZGg1cUZQSE55eS83WmpsZTFYL0wxOHFUaWlyYU5hWldmbmpSOTlMdXNlOTVKZWk3NmNvYUpkUXJESFBnSzdlWGdaaUhGenFxb2JOc3Q2cVdSUVVaakVkT0xxYXMrMm9udkYvcHk3WmtvYnZwNzcxcTkrL04rOS9qTmlFN2VQOHMwREs4NHVaRFVpRE5NQTBGWis1dUU3RG8xT0hYaTR1dk82RzR2VnltNW1tZlJESWFPNnp1bkgxUUNpZ2JBdGJLdEcvYlY3dGIxdHYzUFRvL09QSEhuZ3ovNzlwLzdqMis2VzZGQStkLzB1V2Ztb1lSZ0dBQjRza01PTVlPNzdkNTJvblQ3MHRkRjlyMm1XeHladktGVUxlcm1KNVVaNDhyV092ZjZvRzRCMVB5MERYWXB3NjdzaXI3ZE5pcjk2Rnk0LzU2N2FYajlmbkgvbUQ3NzZzZmQvNkt1Zi9xM3ZTNEJSK2NTWjcvcXB6YXJBVmRDd0FyZ3dLSjR2NlA2Z0hhVXJmdTUzWHpWeDh6OTdWNjQ2L1pabXZyU05id3cxeEQ2dm1QTVJaS1lJTzlTQXl5aHVjL0tKMURFSllsWWJQUzVYWUxSTmFGZHVRMXVKRi9qcy9RWWxrZFpqbWxlUFRtWXZ1OSt5cGVET2E1ZXc3UWhTQlE4clViajJpTmk3Q2FQYUlUeWhwM3BiSjdWWlZQZjJ4MHYxYzduRlUzLzU5TDEvOXNlZi85Z0hIaFZlRk01K1A5dythUVphUDlLcUdqeHNzTnQ5Q1lDUG9ZNFI4Q3lYdmVDa0s5TnYvazh2bTd6aDUyOHJUbDc5dWx4cDdJWm1yaklsU0Y3ZmwyRFVtM0NRNXFQSC9DSUp2NnpWM2MyaDlCcTBRc1QrUkF4eVVXSkZLUndZQXAyd3g4dkVNWitPQWFDT0k1U1RpZWtrbGlSUThxUVVPNjl0NXhnREd6Z3hjRzFjc2w5ZVlUT0hkcU0zS3JtbE0vbkd3cUhsMlNQZmV1YkJMMzd0N2ovNHRTZUVIcVhIeFI0dW54R0JDSVlsQnV1RDhBMDFtRnlFc2RzUThBNlVqZTI4OVgyN1I2NTgvZjdTanV1dkswenN1aXBmSEwyaTVUQ0kwcVMwVU5FQ3NEUTJrUy9PenVCUndvTjlQVGptT1lBOEJQZ3ZQV0FBVWd5ZWlHM2hLSW90WnNraEtpZ3M1akVPMGhZcmpZR1FqdVZLMnErRGFmMnFUVHhpVXA4bjEzY09Xc1ZpcXprKzZocUxDL3BOajJaVFB5ZlpXczQzVjg3bjNQS1pYSFBoK09Mc3FTTnpKNTk2K3RTVDl6NTl6MTBmUFNVMCtoRVpVenFLeHdBWThTZytqdnFoS1Y4NGh5Uk1NSzBPeUlRRHhYUEkxczBiRUV0OEZ0SjFsZEc5cjZsV2QreXY1TWVueXFPVE8wcTFsVktwVlJ6UjFuNkpucGZmc1FFZWd4SDQrYzFMRENNYWhValpuOFFrUnFCc3ZJS05lUW9qb3pGTnN3Uk9hVzFHc1I4bktHb25xTDc0clgwdWN2aThTTnRZYkpSMG5URi80ZXpLeFhObmF1ZFBIMTQ2K2RTRHk5cElnM0xqUWc0MlVDeEtSdGxSNlpkTjhhSmg0WktGR0JHdEVVT0RBNlhISThxVE9KWkZ1RFJQNmJSQWYyZ0N5a3p6bmg2MXBPT0J3cVBTaVRHRVdFWWM0WlM4UENITjVPV2gwTVlhYVJHbkR3d2c1b0dPZWRLRTJNN25mdmpPM2NxUGlxVW5NUjBWSFdQcTB1M0lYNWJ3dHlYY2JycnBmRHBOcDd2emwwVVFseEZwdHlMVCtYUWFGcnJ6bDVFdGovcWxLdHlYS2wrWHFwQVhYY0dYeXZCbSswMEpiRXBnVXdLYkV0aVV3S1lFTmlXd0tZRk5DV3hLWUZNQ214TFlsTUNtQkg1MEpQRC9BYVVjdVE1N1EyS0lBQUFBQUVsRlRrU3VRbUNDaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVFBQUFBRUFDQVlBQUFCY2NxaG1BQUFBQkdkQlRVRUFBTEdQQy94aEJRQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFlR1ZZU1daTlRRQXFBQUFBQ0FBRUFSb0FCUUFBQUFFQUFBQStBUnNBQlFBQUFBRUFBQUJHQVNnQUF3QUFBQUVBQWdBQWgya0FCQUFBQUFFQUFBQk9BQUFBQUFBQUFKQUFBQUFCQUFBQWtBQUFBQUVBQTZBQkFBTUFBQUFCQUFFQUFLQUNBQVFBQUFBQkFBQUJBS0FEQUFRQUFBQUJBQUFCQUFBQUFBQzFaNkxvQUFBQUNYQklXWE1BQUJZbEFBQVdKUUZKVWlUd0FBQUJuV2xVV0hSWVRVdzZZMjl0TG1Ga2IySmxMbmh0Y0FBQUFBQUFQSGc2ZUcxd2JXVjBZU0I0Yld4dWN6cDRQU0poWkc5aVpUcHVjenB0WlhSaEx5SWdlRHA0YlhCMGF6MGlXRTFRSUVOdmNtVWdOaTR3TGpBaVBnb2dJQ0E4Y21SbU9sSkVSaUI0Yld4dWN6cHlaR1k5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZNREl2TWpJdGNtUm1MWE41Ym5SaGVDMXVjeU1pUGdvZ0lDQWdJQ0E4Y21SbU9rUmxjMk55YVhCMGFXOXVJSEprWmpwaFltOTFkRDBpSWdvZ0lDQWdJQ0FnSUNBZ0lDQjRiV3h1Y3pwbGVHbG1QU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDJWNGFXWXZNUzR3THlJK0NpQWdJQ0FnSUNBZ0lEeGxlR2xtT2xCcGVHVnNXRVJwYldWdWMybHZiajR5TlRZOEwyVjRhV1k2VUdsNFpXeFlSR2x0Wlc1emFXOXVQZ29nSUNBZ0lDQWdJQ0E4WlhocFpqcFFhWGhsYkZsRWFXMWxibk5wYjI0K01qVTJQQzlsZUdsbU9sQnBlR1ZzV1VScGJXVnVjMmx2Ymo0S0lDQWdJQ0FnUEM5eVpHWTZSR1Z6WTNKcGNIUnBiMjQrQ2lBZ0lEd3ZjbVJtT2xKRVJqNEtQQzk0T25odGNHMWxkR0UrQ2w2d0hoc0FBRUFBU1VSQlZIZ0I3TDE3dEc5TFZ0ZTNmdnQ5bnZmOTZOdjMzbjdjaGdhYTdzWldCSU5nVkh3Z3daWVlEUWl0S01NWGYraUl3YUFSa1dIVWtXaFFFOGVBa0JBRDBhQXlJc0pBVVFNa21nd0lBU0tTRmtUZ2RqZmR0Mi9mUjkvWGVaLzl6UGZ6blRWcjFWcjd0OC9aZTUvOSs1MTltbC90dlZiTm1uUFdyRGxuVmMycXRYN3J0MzVkdDBnTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhzUERBd2dNTER5dzhjRGM4TUxrYmpkNGpiUzU4YzQ5MDFCSFUzRHNDNzY4STFsK3Bnenp0WmtBa2ZKUU9QMDZkbzhoZjhCN1BBOGVaNE8wWU9FNzk0Mmw2U21yOVNocklCOWs2eG8vTGJWZmRpdGJ5TGVDNzY0R0RKdkkwL0RRYzJoK0V2N3VXblhEckt5Y3M3elNJWTVMU2VkTW1hNHRMT0hOMFB3Z2UweWhuYXVza2JwSFB6d01IVGRScCtNUmxqcFlId2EwRjhORFBMVzlMdjJmaFQ2WEJPODJXeEpHM01CM1dsaE1HVHlkblIrODJjT0xneVpUMU1oL2pzN3pJVDhZRDR6N0ljdVp0SzlrbjVPTUR2cXpUNWkwOGpRZGNwdVROOGoyWnA1UHVTZVVicFZzN0VoNTNlb3VuODVqY09jR1hCSysrKzkzdjN2aThyLzdxY3crKzVkTXVuSC8wa1lzWDdyL3ZRbmRtNCtMeSt0bnp5MHZMNTFmWFY4NnVyNjJjMmR5YmJHeHVkZXRMeTh1cjNXUnBWWFZYOWlaN0t4SzYzSFZMUzhxWDl2WjJrVG5aNjVZbTNkN2VaSmRzZDg4NlpPT2l4eWdVQWtWSSsyZ2lwSkxRQjdDWWs5KzVpRm0yTEJXUzN6a25wUjBkeTlMMHpKbXUyMUxoeXJWU3I2bS9ONlZ1eXJvVnpUeXFTeHVHZGNwNnU4THJmejllT0dTNmpwajNsaVp5MzU3NGxBc1FYbzViMmhYUDd1N2U3dTVrMHUzSXBkdVN0TDIzMjIxMXV6dGI5OTNYM1Z5ZTdOMTQvZFh0NjV1YjI5ZjJkbmV1VEc1ZXU3SjM4OGFsM1V0dlhONTU1ZVZMTnovMGk1ZDMvc1hmdmZyR0J6OTRRMDF1RlZYb0UvcksvYVVjRmZNUVdHRndwTXpIc0luMzJpa254YjJtTi9xMnVpZE1QdTJnMHpSZ25OYS83bHYrMGtPZjl1dC95NU5uSG4vaW1kV3o1NTlaV2xsN1c3ZXkrcVFHM0dPN1M4c1BhT3hkRUh4R2xWWTdYU1F4YlRsV05kV1o3ZGQxM05Ud1FTaURHaUFIT2JEeFFpZGNXTUI0b0dlWmZCK1BrQzE5R2crVHBmSUl5TGFuNGJQTmxnZVlBSEQrZkFTQVM1ZDd2UWFUdExTVE9OcE1PSFByMGVpUStKcGo0a2pPbUdiZGtxZnc3OE1KZjJCUzM5ei9RTmowK3F2cWFQVTBiZG94UkpXOWJtdXYyN3V1L1BKa2IrYzFSWklYSjl0YnorMXViWDU0OStxVlovZGVmZjdaNnovK1E4KzkrdGUvOFJWeDN5enR5RU1PQ2tnNjZDaXNwaWQ4VCtWTWxuc3R0VG9ubk5HYmNoNTBQY2ZaYi82KzczdjZ6ZTk5MzN2WEgzencxKzR0cmIxUGsvd2QyOTNTbzN0cjNjcTJ1RGMxMmpZMWFHN3FZRVhrMkJadWgwTmR6N0VyZUhXajY5YldGUUFVQWE2emhpZ0pIYjB2bm5hVVFQTWdCRkJLV3NJZ3dOV3lBUE1VNUQ1YWc2ODBBY0NITHNOYjZpd3JzRjI0SUZzVnlCd0FVbzdvMkVSSzNuSFpiUlk1aHMzYytFSmxKam5KZFFXM01pb3NlcmFSY2dabElZdVltbHZvbEZNR2dOZGVpMzZEeFFOQko4dlFDTkhPd1ZONm9xazlLU05tSW1WMk43dnR5ZDd1UzVOdTl4ZjN0bS8rOU43cnIvN0UxaS8rcTU5NTRZLzlybytxaHZaSERnVGNMMHMxTVNGaGdRUDFVbVh3cHo3aGtuc2x0Ym9tbkJNL2Myelplc2M3SGp6M0o3NzNYL3lxQjU5Nnl4ZnZyWjM1amR0TEs1Kzlzeks1YjFPMXJtNnFSM1ZjMThDL29RbnZ5YS91Wk1KdmthdjdPQWFUWDBJcHJ5c0FiR2piZkZWRDRocmJaclFRTHowdWNwOEtEbnlic3N3Z0wxVXJHVnJTS3pKeGhkRFNCM0JEYi9ISXlRbVZNcUZ6ckdnNDMzY3hBc0FibC9xMnN6NzFTRmxPdUpWWGFRWEFCeFVIWEFwa0EzeWhKUzV6b1FkMVhBYW5ZK3d2YUNUd0hHMEFvQy9CWmZMRXI0VkNLeFVaT0V4dmdzS1NmRExod0pDdHZUZDBoZkZ2OW01ZS96LzJYdmpsSDM3dWEvNzluKzVlZmZXS0tHd0NxWjNtWmo0d1EvUjdJclYrT3MwS3QzcVdycXZYYkd6VmNQNzJuL3oyYjMvaWZWLyt1OSsvZk9HKzM3ZlpMWC91MXRwaytaSTJkSmUxV2pQeHIydGx2OUVjVFA2YktwTXphSnhMa2xkLzVUdGF4a1QyYWtZQU9IT1dZOUpkdnJLbkFDQUdORkVtVXA5VTFyK1BIcmtmZ3VlNEtaM1J5OUFHdHk4VXNja1Z4UUZaaFJVTjQvc2ZXUElPNEkzWHNmTGdsSFVuTWpoZ25SMzlwdGVSTm9VUU9neEx2Vzk2dm1BUHZxSGViUXN0SldVbS9RSFpzcUtSOE5wcjZqTnQyU1psMXNNSEdIVURxR1dLUWVCT2pabE1FN3hFUUZpTG9MQjNjMjluYVcvbkovZXV2dkhkbC8vNVAveisxNzc1ajM1YzNPd0lxRVgzMDB6bXJXb3RMSmJUbDRyNXAwK3hScVBVa1R3UEFuZXUrcHQvNXU5OHo5cysrei80Ylg5Zzc4ejUzNys1dXZUMDY1cjByMnFGdnF4SmYxV3IvRldONyt2S0NRQ1pFd2h1YXFDdzZtOHFaOVhuTHBPMys4cmRjenBsRDdLbFBYZCtxVHQzYnFtN2NtVzN1M1pWZHdsU3MwYlpld0tVTFN1ckV3V0E1VzVUVjhlWGJoTUE3Z1V6c1dWNWVkSzkvdHFPQTBEMkEvM1g2eThvL3BVVHppQXFCMWR6b3dwT2c0emRnWTVsWGZwNWg3QzUrOUhkYTFmKzU1cy8vcjkvNTB0LzRzcy9JZ25zQ0VnRWdEWUk1TkRKM0V5bjdXUWZuRGFsR24xU1AvS2M4T1NzK2x0Zi9aZi84c08vOVk5KzNkY3VuYi80eDIrc0xUM3hzalpvcjJqaXY4RjFyWTdMT3E1d2FQSmYwd3lQSFlBbXZXYTViaVBYRzFwTmV3YXowUmJQQ3Zzck5RQzBmaml0OEVFQjRORDZFZ1dVSWhEb013Y0NBcE5mYUlJQU93UUhBdTBLQ0FiYUxqNC91WHpwMjY1OTcvL3dIUy8vdGYvc2s4SVFDRElJdElGQTZMcU9BSitxTkcyc254WUZVemNtUEFmbDNPNVB2dVBESDMzLzJUZTk2UnR2cksyODYwVk4vSmMxOFYvWGl2K2FqamQwQUYvYTNOTU9ZRS9iZmsxNExlSDBTcVlVbnVYYjVZc0FjRHNQM1YzNkhRZUFzZm9FQVA0MDh6TVlPQkFRREhRczEwQ3cvYk43TDN6aUwzM3NpNS8rdmlLQ29jVTFWUWFCZHRpZHV0MEFFK3UwSlJ5WUIvcmx3VFhYOXAvNW51OTU4bis1Zk8wN1ZwNTQ2dSs5c0x2eXJwOS91ZXQrNmZXdSs3Q0N3TFA2T091WGRFUHJGeS90ZGgrNXZOTzlxQ1gvc3ZiNFc1cjhlRDZGa2kvU3dnTzM5QUNYZ1hySVlIZG5wOXZtMEkyaGJTMG1mTVRJc2FYN1Nwc2FiN3VUbFhkTjN2VFUzM3ZMVDEvN2prZi8yMy8wWnNrVTFmY0hXS3h5N09hUXkveVdUYytUZU5vVVNuM0kwM21aYjMvYnYvdWxMNzN2clcvOXI2K3NMTC85T1UzNlQ2b1RQcW5yZmVlQ1g3dTUyMTJtazdoZ1YwcGhMdHpoYWJFRHVFTUh6cmo2aWU4QUR0QjNvdVYvU2NleVJxVjNCSnJtUEZPeGNrN2piWFBuUXpzZis4alhQL2NsNy9qSHFwNlhCTzF1SUhjQW1SL1F5dnpRVEs3VGtuSyt0cE9mS0RwNVdENytyaGRmK2M4dnZQMlp2Ly9penZMYmYwR3Iva2UwNHJQcWYwaFIrTmxMZTkzSGRLZnZOZDNHWjZ1UGdCUjJXb3hiNlBHcDRRRTlpTmp0Yk85MFcrd0lOTFYzMkJIb1BoTzdnWjNKOHR1WDMvck0zMy82UjEvNWM3S1d1Y1V3Wk9lYXU0RWNscG1MZEhmVGFRa0E2UkJ5ZE9MQWNkMVgvc2svZWZHL2VmM0tmOWM5OHVCZitPV3IzZHF6V3ZtVk93Qjg2UEtldC9xdjZMTTh0dmtwaEhxTHRQREE3RHlneXdNRmdtMEhBdTA0U3lEWTBnTmkyNXZkR21QMUxUOTE1ZHZQZitEcjlhaVZyejR6QUdSUVFMVlRNVnhSN0c2bmRNUjQ4dS85c2IveE54NzdMWC82ejM3WHpmTm4zdjloUGVMNW5DYit4M1d6aitOalYvZTZWL1JaSGgvalVUR0Z6TktZdGJWSng3R3BtNHRiK3ZpczNEaWVaWk16azcya2o4dzJ6aXo1QWFlYk4wN05qdlRZOW1MTGttN1kzWkF0WEs3TksrbkxDcVU5alVDMVM5dDhlV0hwNHRxN3o3enZON3h2OHZEalAzTGovL3BCN1ZXOXFJM1Ztc2V3SGJjNUtOL3RBSkFPSUNjNm9nOHIvOTZmL3ZidmZPTFgvYUUvOU4zWE50YS82RmxOL284cnVqTHhueU1BNkRQNFM4eDhwUlRnd294UGl3QXdZd2ZmZ2ZpN0ZRQ3NzbVk5ejVDMFM5R2VMZ3VXejYrOGZlUFRQK2Z6Tjk3eW1UOTA5VWUrVnhjSlU0UEFIVmg5NTFWUFF3REl5ViszL2F6OHYrNFBmdTEzWDlsWSsveG45UWxydStwLzR0cXVQOWFiNThSUE55OENRSHJpOU9WM05RQVVkM2oxMXhPUy9Ia1RvaUN3ZEg3NXlkVzNmc2JuVFI1NjdKOXBKNkE5N09rS0FuY3pBRENIeDVOLzhudSs3dXN1L3JaditIUGZkZTNzK2hjK3ErOW01Y3IvVVczNVg3d1JIK25kamNsUEh5OENBRjQ0bmVrMEJBQTg0MHNDaDRBK0NFd1VCRGJlOFo3M2JMLzYyai9aK3JtZjFCTXFIdmRtcDBwVEJqZlh4S3A3TjFMTzRRd0FCS0tsQng1NFlPWEwvb3YvNm0vY1BMZnhtejZrbGYvNWNyMy9VVDE3LzVJKzArZmp2YXg0TjVSZXRMbnd3R0U4NEdjSDlISDBydTRGY0lOd216c0FGelorMDhOZi8xZi9ldmZnZzF6aU11L2FBN0YzWldqZmpRQ1FocllPSUFEcy9QVVAvdngvMmoxdy9pcytvbXYrVCtoei9lZDEzYy9OdnBkMXM0OW45TE1pM2xxa2hRZE9zd2QyTmZ1M2VRS1ZUd2gwYkNrSTdEMXc3aXVmK3Q1LysvWFNXNWpUOGZIZ3ZBTkF6bUh5REFCRXhPMi8rYTkrNW5lc1B2Ym9OM3hNVC9KOVFoUC9FNzdacDBkOEY1TmY3bG1rZTlFRDdBVDRacUtEZ0o0WDJORzRYbnIwMFc5NDB6LzZtUytWUFR3eDZKMnZjdVpDT3pkVW5FK2Fad0JvRFV5RGZRL2lqLy9OYjMzTHc1LzVybTk1YWF0YlkrSy9JRWV4L1g5Ums1K3Y1bWJGK2JoazBjckNBeWZuZ1YwZUhOSjY3OHNCM1JSVVBGaGJlL3U3dnVYaGIvN3ZueTZ0NUVLWWMrTGtHaitFcEhrR2dGU0grY3pCNU9lWWZONVhmZFZmdkw2Ky9KYm50ZnEvcU1sUEFIangrcTYvcHJ1WS9QTFFJdDI3SHRCSEF6dmVDWlFnb0V2YjNUUExiem43MjcveUw4cW9uQWM1K1hPNFp6NXp1K2NWQU5JZ2NnN2FaZkp2LzgxLy9jSDNUKzYvK0h1ZTA2dWNYdFp6L1JFQTlIMTdMZjFaU1h5bklxWHlldFBucDBUS2p2aFVNQ2I3NWxUYVFoQm9kZ0k3ZkJoNDhmenZmZFAzLyt6N0JiV1hBbk0zdzQvYnpzbHBhVnhPL3NtWC9aRS84c2hENzNqbk43NjgxVTFlMXFyUDhkSjF2YmxSWCtyaDFicW5LZms1RDNRcWVxRWZCdDJUU2JyYnY4V2UwK2JyWS9tMHNjVjlkU3doczZ1MHAxZEs3V2pFOE5YaUhRMGN2VXQ2c3ZyMHAvMzVCNy9pNi83UFYvLyt0MnI1ODZKWXJLZ2ZEVktlYVpwSEFHam5DWk0vQThET2wvM1p2L0MxVzJkWDMvbkNTL0d0dnBlMFBYcFpuL1VyQnB5NnlVVlA4QjRJbmova0V3bHRWazZkamxMcFVLbTFCWHV3NVY1T0RERHNJT2REZGwxcW44cStXZEV1WUdsbjJZK1E3MmlzTDExWWZlZlpQL3pudmxZQjRMK1V5c3hGdWlaTkFaNTU4azI0R2JkQ3YrVEI1TWZRcFQvNHpYL2w2VS83cmIvOWI3MXdZM0tlWi95NTZmZWNQdko3UTkvb2d5a3JuSnBjM2JHdTd3R3M2MVZhL2k2QXZnOXdLdlU4ak85a3k2cWVteit6c2VTYlV6dy9mMnI4ZkJqOVJ6ejB3MW5ad3VwNlU2dUh2c1ovS3UycHUwZGVOaUtINC9PVk0rYytjMlhqM1BkZi8vRWYxaDB3SnlaK0hyRE1OT0c3ZVNYYXlodC9PMS93dFYvNyt6YzNsaDU3V1pQL1ZTMUJyeWdpTXZteEdNYlRlSER0bjhkcDFPOG9PdUZuMzh1UVRVZXBkeHA1MDVhOE4zTWFkVVFuOVBTbkFucWdUWnVCYmxmamZrOXo0TXo3ditZUGlNU3pBY3lQWklXZGxIbVVUdmc4NjBzQTk0MTBUcVBJdXkvL1UzL3F6YXYzUC9TQjUvWDFDRjdoOVpvYzhhcFdvVjN0cldldDBISDl4M1ZsYThReXdlQzR3dTUyUFd3cCttTVR0dHpyS1FlYWJUbkY5cUFhNDV5Zk45cVYwbHdLTE4vMzBBY3VmczJmL2g4dmZlZGZlMEZrdW9RanJjaGNxSk5QODVwdjlFOGF0dlBGZi9qcmZ1Zk9tZVVuWHRHMVArL3VlMVZPdUtUVm4ydTMwNXJvaFEyZEZMeDlENkI5b1B1MDZudzd2YkNGQTF2dTVjVGd3ZzUyQUl3aGJxdWY1clRFdlFETmZnNzlLSW0rTmJqOHhJWGYrOGQvcHdMQXQwbHY1a25HTTFrMDJ6VExBSUFScERUR0FlQnRiM3ZiMlhPUFAva1ZiUGt2eVhoZTRmM2FUVjdQSGRmVVVlWDBuZlBPY3ZaSXJxQ25UOVBiYTRRdFRCWnM0YmpYUHdWZ2dMVzIzQXYydEx1QVhVV3M1WWVlK01yenp6enpkNjQ4KzZ4bWhvUEFYRzRHTWlsbm1YTHlrOVBXN2dmKzFyZCt6dTc2K250ZjFiVS9yKzUrUXdIZ3FyN2IzektlVmhoSFdUZU50dE9xNDJIMXFyYWtUZmR3ZmkvYTRoOC8xUlRuaGlYM0Fqck5pYk4vNnRzK1J4QVQzNHVsOHJZN1ZUejVOTXNkUUdxTEVXblE3cHMvKzNOKzg3Witjdk9LVm45K3VJTlhkL084OUR3VVNZV09rL3NlQUJPL1RQNTcvUjZBOVMvMmZFcmNBeWkyc1ByZkcvWndJMUJ2SGRhUFNPOXh6WEsyVzFuNzlIZDlzYUFmMWNITlFHNEtNbmRtbW1ZMTcxTHhqR0FPQU9mT25UdXpkdUgrTDJMNzcxL3MwUTdnaWw2dHhYVmJWcGlwdFhjZ1hPTXFYdjBrZ0dCd0wraDhrTG5ZZ3IreEkyMDVpUGRld0xlMk1KZkc5d0J5RUdJTHRwK1dwQjg4angwQS9hQUJ0WHord1MvU1R6YWYxVTlQYVdtY3oyWEFyQUlBUGs2L1o5Nzl4OS8wVFUvdHJhNS8xbVU5OFVjQTRGZDcrTkVPQnVGcFQ1NHNVcEw5R2VybVRxRFgreDR3SXBWbHdIRlVXKzRoM2RPR1VkN2FNdkdBWXRqMUtTM012S2ZjUFVnajN6Y3ZmUm1nS2IrMHN2NVpELy9SYjM3Nms5L3k5YjhrclhMZXBDSGtKNjcrTEFNQW5rWHB1djEvMTIvNExlL1pYWnRjdUtwSEh2aDEzcXM2K000MERLY3hwZWZSRGM5NzBnc2dYOUlnTTcwd2didG5rblJsbTh4MitkN1pNdC9hdTJsTDJyTkhoK2gvblBaNEFtZVVwckNOT0daVVJFWHZBdlJwQUJ2K3M1TUxhNS83eGU4UjlBczZtQmFwTFBsTTFKeGxBRURwUERCbTcrTGpiLzQxbXZQeEE1M2FBVnpYVzFQb3Axa3FvZVpPSlBHcUo0eHhyNVN1WURkQXQ5eXFkMmJTYTNkb0VUbzU2QXBnc1dUczNhc0ozN2VKUHNsK1NkL2JWdUU5R0ROd3U5VFd2RHV3QXdDL3RDeWw5NlRvOGtOditseHA4ci9xOEZCVDNwb0luR1lKdlBNMGk3bVhDcFBuZ1RHcksrZlB2NWZmN2RQWC9CMEUrSFhlMDVEUW90VmtBRE5Eb0N2ajRQTm1CaGlxcDNFQzc2bmszWXFVcm5wWDRKNHl3OHFpT3YyUS9ZTlJwY3VxZmVNQUIzOWFuejhqRGlid1FIM2ZSbWwyWjc5RFVBT0tjY1Y5Z0tVekY5Z0JuTkdSOXdIYVlYYmlQVFdMQUlDM1dsODZBSC94Qno3d1lMZXkvdlpyK3NqamhsWi9EZ0tBTmdFRFppcmZyY1ExV2F0NHE0Znh1TDhjYkRXZE1oZWhnb1dVMlVINHBNODlsMEs3UElUQ3dQTng2alE4bEV2YXZ1STYycDJuMlUvZlFFdXJEQ2RDT2Zpa01RRXpKWjYzK3M0cjZUTUFCU3kxclA3d3B3RXJhODljK0xLdmVmRHlEM3puaTlJQlJkcWpWL2FFRkp4VkFFQzlnZUx2L2ExZjh1VDJaUG5oNjRwcitpRWZCNERUOUxZZjN1R2EzWjdYODJrQVl3dGQ2U2Q5RjZnN3E1QzJvbDkrNDdmaGZLa0pJOXU0ZXlUWkRobHluejVzMG9jdzNVUmZjcnFYRTlwZmtDMFRIVmZWSjllMHNPUVB4dmhudmQwL0RFZzlmU2Q3V1pFS3ltYm5yS0lMd1pNU0Y2WFpuZWtMZ3BkamdCYkZwWlhsaDgvK2UxL3lwQUlBandXalRxcUVFc0FucXRwSkI0QlcyVlRZU2ovMnpEdmZwcDlMWExucGxUOVcvNG4yUFNldEFJMmVWR0xpNndubDdyd215enN2VHJvbnowKzY4MUo0YVcxSlBjRXdHaVU2YzRSeWNTcnlBTjVwOVVlNHNaTkg1T0dRS1VUWEdWVjB4ekQ1ei9JN2xpVWQwWWFtV29KSHprZHFEZXRQSVJvMXdsTmtBbTgvdHVxZDVldDZ2dVNqK2dHWjUvVTdFbHl1RVFqd2VGd09SR1hPNEd0UDFuNENDQjVxelRMUmtvTUFnTWFhM2hPd3N2clVwNzlOcFovUWtVcGtMdFRKcGxuTlB4VE9BLy91bm52bzRiZnhJZ1FtMUpaNllYTjhZWGF5ZGgxUld2UzhvN0JxbHI2d0FlKytmNm43TEMyVlRQd3ptaWZuOVZLQWRlWDhJaXdHdWdNUGFBMTU4SkNpaFlCbmRSNjBwVUtXNzdROWRNOWQwVHpzUU4vVTNlM2R4aFo0NFdPaWIybUJ1YjQ1NmE3cGVNZjVwZTRGZmNuc3AxN1o3bDdTZXliV05OdERyaGdGc09lakRrTVJQSWQzQjJaQ29nSGxzMHUwRVBjQnRBZFZrOTZGUFBEUTIwcUxWcWZBWmoxcFRVNDZBT0MxR2xBRm96VEg4c3FaODIvbDVoOFRQNFBBYWJqKzU4b2RwUWRKQ0xiNlgvREljdmMyRGFJSGRFdm1NeC9xdXZ2UCtsTE5BNGJkQWNlK3VrWFFRZmhCTzNNbzRQempwdE5pQS9vZnhnNzA1V0JDWDFjZ2VFRWZONis5T3VrZVdsdnRmbFN2bmZyd2xkMU9QNG1vRlBzM3JyK0JYVS80N05QczFMZ3NQRXpMeUR4K1d0Yk05K1NYSXVSTGErZmVLbWs1K1ZHZ1ZRSVlsVThrblhRQVNFVlQ2Y3hYbGxmWG45aFVwM0J0UmhEZ3l6KzdzaU1ybklnMXh4Q1NDckxDSmN3ZDJjOS9lTGw3KzRXbDd1MzNkOTE3SHRIV1VrU05uMjVMOXpENDhvWnZPcFZ1b05NT2xaTC9VTXlIWTJyOTExN0RVcHZtV3ZyaEpCNkNxN0czQVE5UjhkWXNyYTVqVzI1ZFUxUXE2NkRlbm5ablN6cmVwTDQ3cDZEOXk4OTMzUmMrb2tzRC9ZNzNDM3JaN0xJNm01SEhoR2VTOHlLUnZLbUxQVDZLTW96UldhY2xLMTBhMXR6UXczSnZWbWxOQjUrYUYwMEV6U0NkZEFCb1ZVUnhLLy80NDQrZjBaWE5JNXN5aDV0cC9GcktMdGYvOHUxTXJXdTFPU1NNZnF6NnoyanlQNmtmZDM3Zm8vcStndXBlMGRPTHUzcHIwWkowMTlpeTNsTjFsMDJ6SHpLSE5LYXdWVDByY0p2NnA5Q0cxTmdtSEdBSGZpZDRxNHY4bWZxMlJ2ZXFwdEZqMnIxOTRxV3UrOXlIVjdvZmZHN1QyLzVsSmo1OG12dzdpdUJjSExBN1FMVEZ6N1VUbXgyQWxGOWFYbjJrZStLSmplNzU1N1hVVkpVT3NGb2NkNUJtR1FCUXkvNzh6Qy80Z25ON1M4djNiMnIxZEFEUUpPUFhWS3V6NzhDQUU2bGFCanplNXFiUVordTZuK3Q5Vm41KzB2V1N2cms0MFMrNzZLMVQzVXE1d0duSFIvYU1jUTJoQVU5RXphTUtTYjFxUFNGYVhPcTNENWVFVW5GVXJPTG1CYlQ2dWMyUkhlQmFIWUVaWjN6a3ZLVkZoL3MxWjNVWjk0aTJjYzhvdVAvOEczbzlaOXdWZERCbkV1eHFWN0N0bFppMk1zQVBuQ1g4ekJJS3M0MVUrL3kwdUNMQS9lYy82d3ZQWFhuK0gvQ2pZcTM1d0sycEt0NVptbFVBUU5FOHVzYys2NzNuTmQzUGMvT3ZEd0RpT0ZGVGp1WUkrMXhWTkU2c2hqMHI1T01iays1KzNSbC9RcXYva3J6RCt3cjIxQTM2K1hrSEIvZlRxS2swQTlwcFN2dlVFV0xLazdCOU40aStyODRwTUdpZlR0aUJYajVOVnpBL3JtVzNlVTNIdXZyeXFtYjIyODR2ZC85T0FZQUp4ME5BclA1OHBzT2s1NTRBWDB6bmNvL0VaU0h4bnVJdG1vTDFqcFBIbGRyajBsSjZuVjkveDdzdlhQbmhmOEN6QUtTWk5UK0xBREJXZHUrUk56MTVZVyt5dEpHVDM3bU1WVGZjdFpSSzBza1o4ZEhyTVFXQUZSRWZQcStCSSswMnRmWG5iY0FzR0RuQk14OHJmeEIrekhkWHk3TDN3T0hFQUx5cnloMis4VnVaWVNucUw3YjBYRWl2cWw5NVpvUDdBZzhvdUNzR2RGYzArSmp3VEg2K044RHFEejlqZ2U5SklKL0ZRYy9uT00zU0w5YURCckxSbGFXTmxVZTVBSFZDZ3p3SzZ1U3lXUVNBMUs0cWZlN2hSeTdvMm14VnIwYVBhelRsK1dXVVpMN2JPY3B5YStnOEgvRnBzS3dxMXlkSDhUVk5FYm0ycElQSWFnNmN5WVFzRkw2K2VOY2c3R3BUNnQvaURvSkhKaDNFTmpmOFBsdGFCUnNpSUNSeWdya0R2QkFUK2xXUi9LeG1PaStoSWFycmJEcjM0ZmhVYWtVMXVTbElvbDUwT01Ec2t4ZVFzR2wxNytLakJJQTBZMmFObjJRQUNLK0ZxZ21UNzIyY1AzZUJKMzU0N0pRZ3dMYXJmUVJ6WnRiZFFuQXFpSXZ4TXJkYkdRd2JHaFIrd2srOXp5VUwxMlFNbk9UTFRvcCtFajVUZzJqQXBONjFQSFdwOWg1U2s2eDNTUGE1c0tWT1UyMkJtQVRsN095WTFDUmdRT1kxK1lZQ0FKLy9yNWtuVm44bXZ0N1k3KzAvbndnNGFKVDZ5QkJxdGtrRGE0TENOS1RHbDgrZHpSMUEyeTRhbmFncUp4a0FXa1dCcS92V3psODhoMjA0blpXVVFKQ2RNcTQwanpJZXpJTkp6OEhYZTdYb2U4Vmd1NC8yNkFrams5NTlVMkJoKzhzQkZ6amRPdEdlVXdVU2NVSzU5RVh0ZzlKSk5WdmxWT0NnRnU4QWYweGJCdlpUU0IyVkp3aWErd084TTREeHlLUm42MjlZT1o5TThkSGZscUpGKzlndzlUaG1sVHpHSkp5Y2hwWTJMcDZqR0tYWk5UM0xBQ0RkUTNHOTZPQWNsbmoxMTZRaTE1T2FweUpsdExjeTBvbjd3S3dVVEhoL1VhYm82UTRTVE5HZFZPQTZzc0JQczJpQUhCU21jUjhmWjMyYUlkcUFZNkhUU0xmVmJNQXdLSXpGMzNtNXRXV2FzcVdGQVlrQ2FwVzhncFlWTkhEWmQ0ekJmdUwzTndTWG1maUlLZlh5aHFCUU0wMXIwaWUvRTRDZTNlbzZBWUNVWm1ZZTJCTTZuM1FBbUtya3h0bTFzMnU2RzdQR1k3UWJmQ1F6NlM3cWpzeFU1aE15N0RCaUdBem9nTU41SUlUeWlrWUZPVGdmT3JGcllWZVFaUThpNkVZRVhrVXdrUld3S2ZYNG1VSk5pd0x0MzMxT3h0S0Qwb2hTaWlQc1FaVlBHRDlzZkw4dFF6c3FuV29VU3U2K0ZFd3grKzNNaGg3dDNsbnlUc0M4bXZScytibmhSOVhvNi9oSTBHSXNYSVFacGlVMXluMm5GYzNJZGQyQTNyNndxa2VZRGt4cDRZRU1oeVdjZEFBb2JnKzNTZ203YnUzTTJzYUtBc0M2amcwRmdETXk3Wnp1dE0zQnJ3ZjZJUld0REVLQVcyRWtGSmdCbzhEc2daTjVTK3RoYXZhSkVpdElwQUJxTWRFenlzT25jWGFibkFhT1Bwd21ycmFQbGR1azgwdGpXNnhUYlQ0MUtUczJGZUhuTUY4QmZNa3BCRHM2Q1BUTCt2cHlkMEc1UHhrQUxab3Yrd1FqZ0IzQTBHY2dacHZRaFFEQXdkcS9kV0ZOTTZXYWhQWXpTU2NkQUZCeW43SmJ1NU9OaVY0RWVvMTNBZXFobWl0WDlycXIraTJBZll3ek1YRy9VUFc5QndrNUFCL0RKTHpEMHo3U3JQSUlZUEo3UWdzMnZoREhjRkRqbkZ0SW1waC9RclBvaURyd2o2Z0VFaktJaGJRakNqZ3g5c2FXSXJNZk4weCtkbTVORUlDb0ttUUZkQUJQRzhEZHVMN1RYZEp6M2F2dTZxZ0xONWQrcnNkSnlTK3JUNXpLQlczYVNaOTRNR2xWSDFud05YTjlqNm5idnI1RUFKaDVPdWtBTU5WSE96dEw2emYwUU0xMWdvQStYTCtpSHdHOXBKY0NUR1dldWNsOUE3UWZnN3dFSTQyU25RZU1OVk91SHI0RUVJWkIxRzc3V3hpaUI1bFBCUTZNWlJXMDRWbWR4djYwVlFOOTFQS1lxVlZtcEdSZm5BYTFGVThlSHF1NXp4WXh3SU5tQitZaXVBOExYM2JIcHQ1R2MxVnZwZVhiZ1o3MWtnREl6M1d0SUUzL1liRVdnZ3FmdkkydHhGVnRBVmEwL1dRSHNLM0F0SHR6d3VNbk0wOG5IUURHQ3N0OWVpeGJEemYzUXdpTVArbHd4NDByekx2c3FDOTkwSSt2SzZOd3J0NU04SG93RUpveWVycE1UZU4xQWxmS0xzejVGQnEwamU3SHRGUjNUb3NBdm5XVk1mZk15dnZWYUREMGsyWW12dGE2clVtcW5KbWFCbVV1N1FnQTBVL0ZOSlVoYzZWSFloT1ExLzdnR0FPYWcwNkpMOFhaWnlpbVJEYVpMS09HUVhDelNyTU9BT2c5bVN3dHIvQXhTMDZnV1JseldMbkZ6NTdvd0F3dGZ3OEFCWnRFS1hjQm9FMHVkbkJaUUVYWEtMaktBK0JrYWhiNi9BQjB6M0JFS0EzYVYyMUlvTm5ZOGV4anJBanoxRklDUTRVcnp4Q2R6SGVXRDFVdXN2WWpFK05jZWhESVNXUXRqVDV6RUlCWTlHMmZRQVhGSjBGTWRnSUFNSGYrbVJqNVJDQ3hoVlNxUitHa3p4TGU5czFraWR1QjFSUmFTN05PdE9WWkJvQkc0UWtmcjhZRVFuMFZjRzdEY0tKR0hWWVlPbTJqalA1WkNlaDhyLzZCc3I3akFOQUdNYi9Jd2J4Um9WLzlEWVVhSXMwOFpSdjdIT3FOODZENS9aZ0JXWVZHZDVkRzlHeHJoRDZ4WXNvZjJCTElRTFhuTW9hRXl0OEN5R3JrSE5sL0tSWTl3Yk1nc1MwbGtMUDlkNzlDOHdEUUEwR0MrWmpRdHduYXlzTFBKS0VVN2Vnb3VyUnpFeXFKUERtTnVOTlQyOGlkeW1ycnA4TGdlTFNPZHg3VUNaWE9iaXZNRTY0clFtblVYcFYrdnROdmhYdGRjd0RCbWpiMHNHb0t5YVNLSnh2N1BIam9VVU1sbjBYbVRiQUVvMHVSYisvN1ZGR0hiem5xN2VQSCtKckM1aWkyK01wd1RDRGE5am5GdWhCNG93VEc5bDlOYU5tUFZSTWYyQU45dTBLZ3N2dGF1YS9sbGNNZmRjSmRCSDM5bDQvK1loR3dNT0g0eGlvM0FuMnJvSmM4RXloMVFobkRtak16YVdna2RGWUJJSnR4ejJseThQWHJHSXpPNHlrc0U1Tnp6cmtIVERPbzR6dmh4ZmxGMXh4QURDSVNaVmRwNkdHWEpvUjVnaENnejJGempxaVE0dlB3ZERSUGpMbjNyZW8wWFVjVUxmVTFlbWlvQWFYUXVNVVh6RDVDSzZXRjI3ckhod2ZOVWJBdE1jbVJhcFRGSnhTNXo2Z2pnSXdqQTNqMkc5V1k5QnpRK0s2QWR3R0NTZHdEWUx0SzBVRkRlZlkvOUZrbGRodHRCMmdwSVFDTXNDZmYrcXdEQUJyckU0NGxmZ2F0TjdBNCsrVE5DWStONWJaelFZNDFPVlhJYTNtMmVwREFlNklyOStBUmczNi84UllUUHlxeEp1NExBdGxXTmtZYlUxUFBRSTg3VlNBUjQzdy9RNHRCRjVkOTZ1WDNVZ2JjUFhvTXFTcTFiODg5clkyeHNJUEtyZlRnMlk4SkxRSlB5QXNvK2FibDRPaEQ5eWM1b25WcUp6d3dsdzk4QXNBWTRDTkZnb0JuWDZrenIzc0FxR2NsVVZTM3psMmU4V2tlQVFDSDg2aDkzeEdDNTMwUEFKL2kzVjMxWnNBTWFtL2U3WFFHUWlnSVlGUjlGSmpIUm5PQVZUdVFvb0xMQlhiR2lmck9zcVVvcHd3ejVBa2tiR05pcmRvVDhrWlhWSzBNS1dtVWwzckpwbUl2Q2RZa2pLb2xaVUFlRlBaWHVHUE1yZVJMYTVIRGRnSHF2d3JMb3VoRExFT0d5c2xiY2dkeHFrSG1LSWtiZ2VzcTArLytDQkM4eW5FL0lMNGx1Q1JoU0c0WEVOaG1rV3hUMGMrNlJqeWFSVk1EbVhNSkFHclJZOC8yNldTbkpuS2d6cDBYb28yYzVLekxPVFNRYlRVYzhYTTBtQjZ6VlNpVitDOUg3Z0JZRWVxTm91UVJvNi83WFNVcTZPektrYnZnOW9HY1RCQVVhZ3h4aGRhVEJMa1FCTUJVMDRTZU1lVHNPL2Yxeks5aXJtVDdXRnRFMFVQY3h0Wml5ek5IT0hveSt6TmNram94TWJFcFhXRWZTYmUyUEFnQVJXL1RFYUlqNnNSczh5Y0I0SVVrWTdIZ2owQXc4MVNhb0NuYnRjY1BoUlgxWnRqNFhBS0FKb3AzQUhqVmRzcXg0ZHlUczZ6NHp3S0JjOGpZb2FVWndrRzBIOXd4b1pqSU1PZ2tJSDZzTVZZR3ZnekVTMElJQUZrM0puM0lxVEJWczM2MjFjOVdpeTRjaFJvOTJ4YzhKUHNpVUl4TTQwd2RMUDlhbWNLRVdxY3NpMzE1QU1WS2hvcVdHNmNCUnhSc2lNRjk0b1VkNDNvQkIxTjZubHRCUS92SG5ObVhLSjhCQVo2RS9RbUEvSk5TMm54d0NTQTE4ZHRTMmRHeCtyTVRaZUw3eFNDTVM4SDU4Ujh3bG5GWlFJcXp3Uk0vc2NCNENCWEowbk9XelZYOTV4UUE5T0dLUElrejAwaWNmeElXdGpKaVVzVExIa3RUcFUyMi9ucStXaWUyODB4YzVwUHJlcUpxK2hZRnQvVDVFTytLNE9VUWZvVzV5cHVGSHg3ellVYkM1S1hzTmxWMkt2Z282R3gwMEFxSFVibkNNQUFHdjFOWERIT0dza1Z1eTFObEF5UWRlQkFzUUlTdHZRcEFTRTVONElnMEhSdTB0RDE1VHk2Zm9zZllCckZVbEd4TlA5Zy9Vc1Q1Rkh6ZEFUVEtldXd4RG55VnJacWE0R2hRZDNsQ0lTOERRWm4vdmx4b3hKd29XQU02aXZod1NLQU5tM2FpalRYQzVoUUFpb2N4VEFsalozTVBJQnF3L3d6R2hPYzNDQi9RRjVIZTkrQlM5eG4zVGJxbnp1bGQ4WHJROHB5ZXRlTHVLeDVPTHordWwvOXRDSzhmQWVxMjlWcnBYYjFNY2tVakx3WmZXV1dLYkJ0VFRtWCtxUlNoT3pScE9aSXhQb1BlMU1pOHF0L2xlazJ2SFhwUnI2citwSTR0YlRsNFkwME03aGprMXFzb1p4MGt1TWNWUWhGTktWUkxKZ2hEbmg2elg4TURNZnNKaUhHNkJTbFpEcDIzbWtaWXBXcGd3elphaXo3SWRzRUhiWHBlQXdBVlNpVjZDSkRYY1h2MVYrZUJ5M2hBSGQrVkw3THI1RlI1Vm9tK3BSMXNjWnFnMmV6VFBBSUFwcFdCS1lOYUkrL1F2dFpEckU1RTlwcFU1Z2RJSDlNRS9xcG5WcnJmOVpZbHZSQnkwcDNSN2QzOGZJWDZLU056QmtZZUUzMGRRMTlqcWp6SVRyNGhGc3IrbEx6N0tYVXN1aTE5TDZwN1VUOWg5YS8xNHhVZmZHVkxyMDNYdStzSkJQeVZrVkZoMVloQWdQUndKclI5Q1NPY0N2ODBubVNaa25zQ1ZobGhkMU9jVXVQa1VMWXNHOU9zcVBZSjV3ZDF3QkJ4UzBTMGIrekp3dG1UdlBOREZPekZYZmFFTDBHRjg1aFJnMHkrM1A2VDg2Q1F4MG5qV2tUTUt0VWdReU54TkMzUHF0VjQ0bkYyMGh2SmRFQzFUWUNmdW12b1J3V1JSYUlEYzdYSUNNb0RIRGUwaC8vU3A1YTZiL3ljbGU3VDlidCtlSk5veHdFOGw4OVkxTTZ0VXZwRHIwZm8zbkp1cVh2NjNIcjNub2RYdXgvOHlQWHVlYjIxY3MzYmt4amVqZ00yVUdYMnBJSnRGVUlNMHhLV2pSSW9PU2tuem9nNnBSaWU5VG5BS1R3dDZsQk1iWVZid0ZQMEYzZGU2MU94NVVqWXVkUndQTkJvQ0k4RjgyQUhnQUR4NWRoalRESU9HRU80bW5zK1hCYjRHUUdWK2FRQWw4TkRHN01jTTNTcGc1VGFtV2VheHc1Z01QRXA2UDlFZnZLRVRrR2E1MFdBaXR5NlpsZjQvaU9mdnR6OStmZXRlTVhuYTFYNUJRL1lUa3RDLzdBaE5HTEE4YU1rSC9pTXM5MzMvTUwxN3BkZTMrcFdOVExaQmRTRE9xb1VnNzNrakI3ajhXejQxOEVoQ3lXUElFQWhlQUtLYzZ2SHRJRllnMnhiNmNUaGJBVy9GSTFrVWs3c0J1dVdIUmhrZXdhM3RLSG1xc3RLVGhEUXY0K2srZWFmY0V3QTAzU2lIYitXdXdRQjQ0V0xSY1pOenV4VWZ5UW5GWjFaUzBQQjh3a0E3WWZ2eGNDTXdrTjFEbGZLVHFUckRFdW1PMGtqOTZaVy92L3dyY3ZkTi8zcWxVNjc5MDR2VjhtaGREamhkNUdMTFNmdXVhakgwLzZqVHp2VC9lMS9zOU85b0pmYTgxWFJuUFI5THVOWStjdHV3Sk9EeXFUZVFWRXVad0tsMHdGME55NkdaQ3ZjK3pIN0dYcldPNEVHZXNWS1RsUFd1OUFDTnJhYW1kVUlDTzIzQXZHVlYzV3h0MEVOR0FsZTZjbDE0RVlIaFZMSDl3QUUrMUtqdEVTZG1TVzFOWEE4QTNvT2FaWUJBSk9jN1BDbUV5RGtVVmlPbEZtd2hKSjdpMGR0bGZuSTdxMjZ6di96djJxNVd4ZVJHM25tUFpMMHU4dU12Z1NDKy9YbXlpOTkrOW51YjMvd2t0NU92S3V2VTdEU1JTRGcvbkFFQW9BYzlBelBzbTU2cE9wVWpRK2dGazJmYnVlUVZFcEQ1TlNLaDJDWldnL2tnWG8xRVdzdzhXbXMybTNRUW9JSDBBeVdPNzRFb0MybzROa1ZlcDZCVUNJSTVQWWZPZ0VCSVNaWEpjMTY0cWRxS28zcG1IRnpWZjlaQm9EYWlGZm5VaUlZWU9DeWtNY3hrdW9rY3JiTTVEaVBuSS81L3ZBN1Y3b25kWmQvUTRqanlKZVl1NTdRbStNZCtsbnlkejI4MXYzVUoyN3FsMjAwK2ZVQk5rR0FtMVFFZ0FnRUZFb1F3QXNpVU5jSnB5UmdaRU5MMGlpUEtxVmlyVDlpVW5FL2FUOW1mNjJETUtGeDFUdlpVcVFJcGxIR1ZrcUd3UWZnMVQrNHhCSVZxTU5FcmdzUUNKVTlzV2xEc044R1ZYd0duLzFLSGZIR1Y4UmpoeEM4VkpwTjhrZVN0Ri9FQzV4TG1rc0FzQ1ZZVkt6QzBUZzNqVDJLcGRVeEJmRDJUUUpaL1o4K08rbCt4OVBDQ0Y2RGNBOG5kZ0VFenM5OWZGMEI0SVoyQVhxK1FUYnJXeFVPQWt6K1BaOFl0Sm9TeFpuOTNmRXd2dm9ZZjNtWnVaVmp4RVRubE5SRGljbThVQTVtU01aRDVrVlFHdEhVc3Y2ZW1hRjNhMThFQWdVRTZrbUVjOVZObXpHM3ZRZUEyS0RwTndCRXc3L2sramVlU1U5VHVEWEhLano1Z1Z6S0ZlckVFOWJaOVdyZjNZUlNjMGh6Q1FBWWhqMXBvTzA2cG9IWmdjakFhVVI0T21sYlBmMXJIbG5TeDM2VFRyLys5Q21STU9QTjUxZTZCL1VXMjVldTd2aVZVUkVFWWxCNjFXUHlpOCtEcHNBeEdYREJ5QkgyT1JNRzJ2N2svaG5YcVd5cUhQL0NIQ0NnOGg0VGtIeEw3azlWVUQveHcxNElpVXR0bkNNRG9PUWVIK2l0SXhQamhTSStLNXVGbVBqQzhkUW5lSTh0WUNvMWRTbk9KS21Ob25ib05wTkc5Z3VkU3dDZzJYYnllN0R1MStWUUdBLzYwaUh1U0FtT1FMRFh2VWZ2OCtQbXpkeU1PcFRHeDJmQ3JqTXk1dEd6eTkxemw3YTh3dkVsTWU2Vk04aVpDdjdDQ2lPSHlZK1R5K3dPSDBjWjhpQVYvdzF3bzBKbE1WQkxNNThMMXJWdEU3c2EzWUl1aG9MUGN1d0N5bTVBL0ZtbnZRUm94SGpoZ0FlWDVXU0g3cDJCQ05CeWQ4QXJ4MGlTN253V0p6ZUJXVFFWemMyaW1YMHk1ekpYNnAxWW1zZElaVGozdU83RVB6SDUrMTBBMyt0K1NoK2hrYnlGTTNSdm4vQVBGajJvTnhWekNiQ3M1ZDgvSkNrbjhtVlJ2bVB0RlV5d0I4NDRDR0IrRXhRb2txYjVmZCtZVXoxd0xlOCtIa3ViemFtMjIraWZBYzYwb2x6eWtWZTQxTUVuakpNTUFza0EzcmJvVk9LbEw2L0FNWGI0NGdvdkFzRzMrSjlkMTh5VDJrcjkzUmFLenlITkpRQlVPK1JJK3NaSFJSNGVZRWpTRis1ZjVYUk95TnZ6aXgwZTRBTi9NWHlxQkFCWjQzUmU3Ni9lMWlqZVljTFhQeDVqSlJCb2hkUmc4VUNXN1pIM0s2RUY0Q1NuR0dXRGdWWW9aT2JxVHcwbHdKVFNNTzdqdVRQRUFmcTV3OHRPUUhCYzY3TWVpei9MSlUvYk1tL3ZBVER4d1hNd3FabGp2dGNpMkE4Q1laaG1mUVlGbXZYRFFLcVE5ZTdNdm9OckQ0SVNhaHpNZXFLVXVRUUFqTUdabVFDSnlqajFPTWtkcUlyeGhSekprU3c2a01kOFA1VlMrb2NuQW5mM0JZQ1kvSHg3a1FuQnd6QU0zREpOWWtlQU0xSklPdVlXZnFkZnBnNjlJQlFKRVlSTDRZUXoyYUMybU5wT3JlN29uV2owQVM0NDZsQTJPZmxLUUdDY01mWTRYRis1NnltcnM2eklZa0hoSGtBK2xKTTMvK0FyMWFnMWsrUkZpMFpLc2kxWm1HRStsd0JnQitMRTlLSnlERHlPa1hRMjlSQkY1OUpwZkhQUDEvN2VFZ2p4S1pTd0U5dFkvZGtGOEc2MTlvOGZsTWlQd096VE12RERRNkloZ0dSblp5RlFmUStNOGFJWFZHVDc2V0FzTWtXZFFON0xMSkF5dDZFVE52cjUvV0xINEFHbzByYkhCcWR5Wnc5V3hnaUgwVVdlc2dnSTBIWGtkVC9yQnpzRGdnQndmdzlBaFJtbjJrOVdUbzJSenlITkpRRGs1VXdHQUl6RjBlN0xZeGlKYjl5cHlpMFRiekh3S1RmeWdJL2JSaVBtN29NeWhBQ1Fsd0RldGtvcjRwM3ZDWGdISUZ1THNaa3o2bk5Ia0k0WitNaXo0bGJtTmF0OTQ5Z0VUOXEzZy80cU04TDZsd2I5eUMrVFd5bFhjL0tLeDk2Yy9FVVk0d09RSXplSTZZTnFmakVFM3BUTG1HVlZobFJVRVRURFJGc29PZWMwbHdDUXYzcUtiV0VqQXpNbTdHSHRUZC9RU1JsUUhLMlJDRkVPVEo3RHlreStvOVJqUU13em9SdjI4aDREdjh1QXhqVlN1RkhsU3lEdFUvM0RHSW9HSHF3K3c2U2t5dm1jZkNDQ0oyRVArQ3lVdlBlRm9QZzNwYlc3NXhsVlBvRml0b051cE5UZmVIQUNrc2QwVU1MbnhJMWNZNnNnMkRWNE1qZEtVNThiaWlGT2RBRU9xaUw0L2ZYS29lVWk0KzA1alJrN2JOL29remdSdUdnMGo1T1FlUWdaY3drQTZPRU9UZU9VcDNNUG9hTlpzbXJ5eDUxYUJCZU1janAyMWltYk8ybzd4OVpORFRMUjJ4MEFocUlIT3dCR1B3OEU4WlliVHc0YUVuOU1BR0FkeFVrVkIrb1dpZlp1bThSekNLN2JpbWtaUEdmSHZWajBiM1hIeFBxSkFMcXFvbGRQRVV3clFzSGhGcnNHT2JDNmJ1UlV4WWQ1clE5LzNnTUFWNnI0WVNLeFZjMlFjZElKbVRZRndkbndTVGN5UmQ1Y0FrRGFnNEdaeW5qTjRxRnlkNTQ0NlNqTDFNbWRrWEl6UDVTMGtKR3NSNnlhMVE2VnUzTUxwL1U5VksxZ1FpLzh4dDFzRGh1dTZGbi91QWNnUENRU0U4T1R4YU9wWGdBRXNlQ2lNT1VNZlpRcXhrQXQxZlpHN0hkVXhJNXFTVVNET3VscVVCdlpsV09DZW5HNUVQWmJsb2lJOUtHVHhXY0xLbVMvMUU4RWhHQmg4ajJBd3B3TGM2TlpsUVB1cEZKZW50ZzhDVTFkVDByK1FYTG1FZ0NpQjBJRmp6RlpkeWZQQVNBcEEwaktvemR4bXN2UmxNdDA4cEhUU1hyL0dBcU1tOGRXdHY4OFQrR0VUQnNiOXNiekFCcit3bnZlUUFNdWVWUXE1K3FnREE0SHJPUkZpY2hLSWNTNjZTcXpKMVhVa1lDUmY5STBUM2dMd3BDUW1QYjB1Um92cTMvYTNlZWlhZlppWGI3eUc4VmRGNUpFNXNSbmkyL1hDbWxZT1RzQWRnZndsK1pEaVJtZDBkdTZJUi9sNXBUbUVnQndMdU91VHRZN05NNHJvV1RFUFlBaWJJNU91MFAxajE1ZHR2R2VBOThFWkpUSW9aakx3U0JsbFpySUdRelV2RHVlZVF5bW5PeGl5RlJIbXhBSWFsSVVDM0pFZzYxSDlWQlQvV2pnUU1RQmVzcEFUMEowTnF5Y2lhK1dQT0dGbi9CdEd2eGdaMlJPQUloVTR4NTFRQlVDTURUOG1OdC9aSUpqM0JJUTVwSlNIK1VGbkV1emN3a0E5U1lnbHJYSEVVMTBJQ2wxTW5wWGVWTTY2aUJISmo1emkxUmhVRDZpYmdleGU4eENsSDZvbUcxTVVmY2dFYTdqbTRCVXhnbkNNTTRacER3SE1IZ1lpSFk4Q1RSQnNqSFY4RVNKb1krQVhwRW8xYlAzQTY0WEd2WWlnSFJJTmxCUTQxd3JIeEhvWlVmRktxMEIwZ2JybjVPYjFsVTU3d3Rrc0t1VHYrb1htbkllQkFEcUNzZDJ2d1pRVkZDWkp2SmpRZXF4Mk1DYkIyd3pTVFJBZzVuY3oxbVlYVDZYQUpBVHQ3WFBUMWdkd3k1M1JPbVVjYWNlUTl6dHE2QTBqYzQ1alp0bHNISjRrRElKeXdEaEJpQitZRDMwbWdqc3dSUkFWWjI2Z3hHbVlrUUZvVTJFb1VrS0JmdlFWWnI0UkJ6UWd6WkFGV2x0cld5Z3pPVXNEdk1xUklBcVY3dG9VRG83QkpIYmNPVTBFQ1RiUW1CSW5BVnJsdHVXRUdlMU03QkFUNWc2K0ppY0JVYi9FV2pKWVp4aEl1ZzRLVWVmTE02d1NZdWVTd0RBR2pvZ0Q4bzRtSDQ3U21yNVBSbW9MRGsrQ3BFaUtkRlJpbk5MU3p6ektBZEExc2x5OGxoWUxSd2VRQ1VHdWhQQ0MyeDhRU2U1RkNzclFOVlhBTmYvN0FKcUtrSThXSVQzajFjSWx6Y0FNNi84TkI3L1BjcXpvclNUamRWV2d5MVlLckd2MjBJbTM0YW41UWRHLzl1bU1wRlRKeWEyRkVyYlBORnBWazVvY2JEejhhRnhGUGlvVkJtc21YQWx2dzRNam0wK094L2VFa3gvc2VxdlVKKy9wbElEcHBpVHkvR0hHckMvYVdpbWpmVnF6eVVBMko0MGpyWUZZeS9IVVJOMXZCb3FwM09RN1pUeUs2S2hKYzhkNVkzZ0ErVWN4NklEaFEwSXZnUW9BWURQL2YwREpySStYMmpCVFN0V0xnOThQT3VSMityRGdJNDBXSDN4MjZBbENvRUVUNTJnRjY2U3dYV2NsRElQckdzbFExT3Y5REFtVGpZeEtUM2hnV3lqaWdRR3RDU0hYT0ZvVGU5UUNSc282dkRpbzl6VXpFWENoL3lNTlRjTkNRTGNtVWNlZkNTQk0wdkZsSm0yTVUzNXVRUUFKcXdqR3hvVWJ4NW5CMEJWTGgyWUIra3d5ME40UllnNFNxWEpiRHFxSkkrSVpWNVpCSjJjNVdSQjZWdUlyMno1dFZGa2xDRVo5Z29Cem1vS1NIMk1NMjhWWWFDbGc2RE1nUFN1UjdudnFSUTh0Rmp0eURuNnlkQzNGTzJMZFdwQ1JwdmE1d0JNSzUzWDh0WCtiQ3ZlQnNaZXB3cE1MY3BYYWdsalNrclFtSUt1T0pXQlFSdG5tSlA2ekFnRlNlVytaRUtzK0hMOFpIL2dKOTgvRUkzZzZPMi9jbDVhazU5V1VZOWpWc2xCR1FjWEozTnZZaDVwTGdIQWR1bUV3L000emh1QkxFZGVvWU5JZzBGWWNFR0pjL0tQY1cyNWhhZUlxT1JiMFdBYUQ0NldIMXFXRXg3ejE0WkdnTWV3Y08yRFFMNVJaNWxBREhBVmRDSkl4YW9vQkJPZ3lNcTI3WHZxRlVUaWc2M25weDd0a2lPN3pST2ZlZFRkZjdac25jaDVUVHM1N2VaaWtIbmdDNzJLb2NYUXgrM29SRkR3elU1UkFoZk13Q2pvakx6QXhvRTBFTjhqc1AxRmtSM0p5NThCNTJmQi9MR2ZhSkF0UXdEVndXZHF3RVNkV0o1ajJnSlJZazVwTGdHQWtJdE5PZkN3cllVUGF5c2RrSjNBWUVlbUI3MkIvVkxjWnFrRFRCcmtwZUFzQ2NGbXhrQ05DY213UDBlWFBtbFFlM1NHamlaSmVROUM1ZGdCcnMzN3VqMEVIVVoyQUZ3R1VDY090djlNaTlpeXhnMHhsYlNVN0pwRHNsVjVXU2QrYldoTis5bDF2VFJoUTk4czJpRFhzUzU0WFhpK2JRZ2RQZzY5ZnRBSGRRa0FjUVNNUHNqTkhQWDJKUlJVcXJvS0FDWVFNUEU1SE5DVTh5bzN2dVRFK3h5M3RMM2pGNVA0SlNkK2xvMDNQTjhRekc4OGtOOFVqdmNpYk9JSER5QUZCam1kd01BcXp6c1NVaS9yV1BXVW4xQ0FnMVJnOUdDYlQ1RjZmcVRhL3BQTjREeklvRVRLNmxrKzBWeHRvV01kUTdKeEhta3VBUUJIdXdPd3FCanBqanFHaGE0bkdWd0sxQTVObUhaR01yTTh6bUUwcmhDU1BoUlFzU09wcWlzU2d5elRWRTU0eE1EMkRucHVMZDIyY0tZSjMrYklneGNjUjZiNEdGQ0RSTTdrajhua080TzZ3T1U5Z1d2TFM5MVp2UWp4NHZwUzk0QmVJWGEvWGlKeW4xNk5mRUc0czNyRE1KT2RpZTdKTGNGaTk0UmhBakJ4UlBLZzk0dEdKTnAwK0FxZDYyaFBDdEU4MFlweTZFcWltTEFSNVpScVF1UGEybVYxSHYzSHVNQXV4anB3SHByakFZc0FYd1NKbVB3RWd1djZTYlhMT2k1dDduVnY2R2VWWHRkeFJmQjEwUWdtN0IzNFpTVUNGM1l3a1hlMWxOTzJrNVZRUVhUYXhpNUkzbWNJNSs5WkZGMmh3YWQvODZRSTBDZWFpbURyS0JpOTVwSG1FZ0N3RGNQcW9US1RBYWNlSldVbnNIM2ozK3VmOHRKNyswUkJ5dFRDaVR2cGZOeEcydGZpZ2RPT3BOOUtqK1RaMGVDK3FZRTgwZHMvK0xHUUMvclpza2YwcXJESEw2eDJqNTliNlI0NnUrTEpmMFl2RDFsWHIvSlNWRloxOGcyVk9XS1ZaNldQZzhuaGlhL2M3ZWlVN1kxMVNoc3loOTdDWS81cDVXbXlVd2E1eDRkeVB2RWdHTlNKcnpJLzJMcXBKM1UydDNVb0tyQUxBTWZCenVDNnJpbXY4RnVMK28zRmw2L3ZkUy9wZU8zR1huZE51d2UrRUxRcW52WlNoQjBFN1pGNCs0OWNvQ1QvQ3NmT2piR0ZOOWhOb1RkbmN2alNqbEpkbUR0UExDWjE5WmZnd1NYQm5Zcy9VTUo4QW9BNktTYy9tbFJERDFSclB3Rm5TMHgwUzNxZXZJV2JhaWJwbEt0dnNzR1NIWjk1aSt0RlVMa3ZUWVBhK2dNNm5TbEVyTldDSkljT1J2L0FSMDQ1QnQ2ZzlxQUFQNG1QK1o0NnY5eTk5WUhWN3FtTGE5MGplbG5vUmUzZnoycFdNK25QNjAyb0YzU2MxNCtnS2hZNENMRGFzd3BpQmdmdGNiQ3Frbk1mWmxPSGFUcGxIemtIRDY3UURSU2NNcWNEN1UrR29uemFnQStjbEZjUXVKUXpYMUxnZ281dmVNbVRmdDZ4VHJ5c1oxc0lCR1h5WDVNeDF6WW4yZ1VzNjlKQkFVSDRxekx1VlFXQkY2OHBGMDd4UVR1TzNXNWJrV1ZYQVpXeDRZYmtXOThES0FwNFlTazk1WnVxOW9ONGl0YlZEbFVucFpnb0hmT01vNVU4TndvY21ObWU1eElBTUlHSTNvK21LR2RuSHNYRWREYU9ZaUE3SWZzQVlhMHZEZXVVT1hWYjJHVWpnSTZmMEsyS1VjSHJpUkFNSENiTklDL05vRDUxeG1iZ3Q4Zk82dWZDM25WT3EvMUtkMTdMKzBVdDV3K2VXKzRlMEN1UTd0ZlBINjFyaTg5S1RuMG1OY2QxY2lHOHhkWnNRUTRycXlkMTVsUWdrZXNnYy91Smh6WktZLzFHNUFPTFk1SGpzaXVtY09XZVpDVUg5bEVDbWk5VGhGdFdvT0M0b0tDbkgzSzI3dGhKVUdEeVg5Rng2ZVpFdXdBRmg2MnV1NndBY1hWcnFmdkk2OHZkczY5dkM4ZHVha2t5WWc4UU9uR08xWjZjSUo3bHVNR0tEOVY0aytDSXVnM3lpQ0NCK282RkhMRk4yT2NTQU9pVXVwb1UrQmk2eHVCVVJiWkhUUDdCUkp2U0ExTlF0MnoycVB5M0ZIWUN4QndUOStsNi9yMVBiSFJ2MW0rY1A2d2djRWI3ZW1oTWRGWncvYkN3WG9zdW4ranc5bGxsbG5pdjBESUtQM25JNnVSY1pQSThBQkl2OUtoZ3pGeE85ajhuQTVGbEVaTkloZVRWTzRPQzcwOG9FUGhlaG9MRWlrYTFOa2pkZldmMVduWFY0UkxoOGczdEFoUVZYNzh4Nlg3ZnV6YTYzL2lXdGU0bm50L3FmdXpqVzNyak1yKzhGSmRXUkJybXR5ZWsvWUpuV1AxeFMxNEdvRVY0TEdOQjZpWENzVklkeXhJRVBLODBsd0F3K0M1QXNleW85d0RDM1ZHWnp2QktTaEZuY1lnaFFkQ2s5R1BOQytDSlVSaVNsc3hScmxnSmFWdTIyT1lFMzVET0t0SFVqaURWc0FDMnRWb1l3VmszcTZEci9ick8vNXdIVnowSWI4ajR5emMxNGJtMlZRVHc1OXZDTVRRWnRIbDRjcUFkZ2xJWURZeFRhYkQ2WkV3ZmxWTy9FZnBZeFZ1cGhjQzB3WERUUXVxQXpudjRRRFIyTzNRVkJ3SEJRVUdqTzNjSjU4OHBJT2pnbnNIckNnUVA2ZGVZMzNMZmV2ZWIzN3JlL2ZRTFc5MFBmMlJUdXdKK2xsMEJSTUdFTWVhSmlKSldsQk45RzNjSElKcWtCazBXTlZQcWwrVkQ1UkpTSno0Q1VHQU9hUzRCQUZ0c0U1MmtBMFB0dkdNWWFGbFpIM2twQXlDUGdtdUxPY0FQeWxOTUNDeWRYSkV0VUZ1c3JmUURRUFV5WUpRQkFyYzdGaVlWUEVDTkRIVUwycko2T1VVMGRZVmtkWC94bXI0TnFLVnNWOWV2RTIycCtJaHVXZnYrRlMxNzVId001Z25UQ0tHWnRMZEtCRGxPVTNDSmF2VWJWK3VkdjQ4U2lOU2xGWFlBSytoc0s2c041QXRaOFVYR3dONUNwS2xkK1l2QXNLM3RFVHNrYmlCTU5OS1hDQWc2TGlnUVhOUnhYY1NYTG5lNmxGcnRmdlhqcTkxUGZHS3IrNmNmMnV3K2Zqa3VEZGhST0RISjFZbmxZazU2UkdPMGxaY0kzakdvREdXc3AyWGM1dVF4QWsvNjZqYjhKMFdlU3dCZ0VIb2doc2NNYzFsd0hFZWxmOWhCMUNnTmNpVE1mRHA1d3AyVXQ5dzdsanhGSWdva2JhVE1GTzdEb2hqazI3cXI5Y1pMMStJdXZwYW9GUzFyeXhxZE1lazFCR1ZrM0szT29kbW9jdGlHcGxWSmMyNHI0d0RHTVpyT3VFM0NYdmZybUM5bGlWNmxGQngxTWdIbTlsMExlWXcxQ2R6UnJtbExsd0dibXRUWENRYjZaZEFWSFU4ODFIVVAzNmNBKzdvdUc5Wlh1L2MrdXRMOTBFZTBJL2p3cHA4LzRCNEJFUndmdTUxQld5cTRyTjJZZFFsaXc1SnEzVGEzem1ramVjSzNyWGxuREhNSkFMbHF0emExOEZGTXdMblRvbVhGTmNKYVA3bzluY1k1N0lscnFob2M0aWtaNHo0SHlvNE9yTTRGNFV3RHhqd01IdjB4TmNkMXJITUtHVFhlb3FtNU91Rm53cGRqY0NOUkVkWFBBakF3TFQrYUQ1bHQ3U0k0bEt3NkdydHZleEM4eVRwU3FTa2V4REdsM2FaVytxK2lXb2NrVWppa3VBV0xHOHJFdnA0V2xjWiszRmVXQ0g0NGhzZDZkZk0vZ29FQ3dxWWl4SVJBb0k4YUhuOVlsMW9YOVhIcEs1UHVkNit0ZGU5NVpLWDdlejkzbzN2MnRWMC9RSlZCeGpzOE5SQmVSNVA0Q0RHMFZMK0kwZnFsUFlmTnMxTG1oNjEzaDN4ekNRQjR4UGNCRkFseU4wQW5EYnYyMXBZTWVGV1hvR0s1T0F6NVdTWXZLZHVpbUdOOW5MYzBWN01nUXdlZWtpWHp5aWdFZXVaQ1p4aWNBTnIxSUZJT2ZUeElxNHdSZ0F4V0IxWHpoUGNUY01Vd0xnV2dJTGM5d2hralFWbWtTazJEUXNWUy93Qkt6ek1WT2thdFVSWHNUZjhGTUdTd0QybTdNRlgrd2pZdWo5VmtWKyt3ZFFJWUFBQkFBRWxFUVZUN0ErTGYxbVhDbGo0ZFlHY3cwU2NKSzNxMjRzbkhkWS9nQ3BjS1M5MS84cmxudTMvNDcyNTIvL0tYTitQQkluVUVmempiZllnc0ZYbVJTS0dvWCtrUHRPalQwSUllUDRhbTNTc2I4NXgwZVM0QmdHc3Bic1p3ZDVaalRlR1lEMTZHYmpxOGFjUmZUeWdOVStZQWQ3NTV1TVdPTDk0bXl3UEpSdXMwemxzYThMNUVRelhkUW1NUEF0WjZKUVlCbVFZQ2Y3RURLRzBMMzBwSjZTME9FWU1rZWZ3d2lEK3JsclQ2cUsrdmc5UVd0cXVDanhwZEJoTDJGN0xoL1JSaGVtSVBUV1U4VVNUNnU3MCtBZ3ljWmJvWkJEbUNGbktaalgxOUNhTFFaNDFGUGQ3UFNVaWVIeWpTc3dJM3RDdFlVaEE0cHdjUG5ucENZL1dscnZ2cWQ2MTNENTlaNnY3eHMvdzJJMDlkU3JUN05YSVZhb0NtdjBYT3BxT2hRNTZSdVZvdVM4ajN1SDZaUTVwTEFOaVFRL2ZPNithTEl1MTFkY3hOZWZIR2RueVVkU3diMVdrZUkrUTZIQUFrbHlBelRpS0xLYkFseTJMTnN3NzBNbTRTTmRQOE1PMmxQdjVsSUgxVXRhZFhYL2twTmhtdDRhZ1Jxd0NnQUtqeDR3T0ZnWSthMGpkRHAxVHNVY1hkQVQrR05NdkRGQlZzWDRQMzUvTWxhTmgwR0JxNmxabmlFMWc0OG9FcG5oL1kwdXJQemNObEJZSTNhVGZ3MGllNzdrdWVXZTBlT0xmYS9jQXZoMjhqQ0FSc3YwdUdtMVFiTkZPYnFvQ1F0MGtFOFZVV1NPMUVOalJYZUFweUhta3VBWUN0MWk1YkxSMmJjdTZXamsxZGpCM0JQL1pGQ2ZxRzNiODZaUUJnSW5oeUZLKzVjMzBxWXdGZWFGUHlVc1YwNUkzVDdmUTAzWElGK1Q5MkF1anJ4VW1uL0tMSlFVWm5zK08yc3V3ZFFOeHBrbnJpWnZWSFdSMjA0NEhJOGlOYWZyVTEycElFMGNzSklGSUtOcTJuZ2k2b3dqZ3N4ZkFlNHdycnRBeFdsQnVrVzlmSG5ud0V0MVpyUk5SeElKeDNXQmFuVXluYkwxU3NkY1JWbWl4WnRiSEVEVGZEWTlNRTA1dmNIOUNZbmVqZXdFTVBoSnpQVjBWMkN0Ly83STQvS3ZRTldQZ2h5ejc3WHdYa0c3YkU0YWx0YTBpSnk3enNOK1lISC9IT0k4MGxBRnpWOW1wYnEvT2xTenIwc2N2cmwzZTBBeURLSHkzMS9FeDJuTzJUSCs5YzFZVFkyVkhZOWlZczVOSVpISmx5Y285ejAwTlVzcFo4S3JMeVdKL1M2WWxrb09XejVJUTRlTkFob01KbG5oZzhoWmpWRDh6OVRUcXZDaUVOUnV6bmozc0Uxa1YwMnFuUElzQmEwNkJRSjBRbEZ5QzVNcGY0bWdKc0VKVnlHeUFkUG9YTmVpZmVoWDVoeUphY2EvYVlyQk1YVlU2ZVVlSlBJVUpYV0F5ZTlFWjRwRVFWbjZ1RU9rQ3lMVzc2OC9neGp4UHo3VVFlcnJydmduS1ZmNzEyQk0vcm1lSi85dXhOM1JqTVQySHdkMytra3FqVTZ4SUtaaHRXWVhUaUc0MnIyZ0tzYWZ1L3JvVnk3NDBSdzR5S2N3a0FmanBOMXJjT3NJT09ZUlQxR0UvTUJSWkIzd2xIVGl1OEZPR3JZdys0OEkxejBKbUMzeHlKR29zMlBycFVZTU5LaDFQc2cwQzBYOGFnQ0QxN3JWOWJPUmhneTgvWFozbnpyN2YvS3BQN0ZWYkN4d3R4TlFoUkhzRmtkZlExQ3JaTjdFTUhZaCs2clROcmVOUjQrRWhuQTRXb3pNWHFWSlVoQlZJK0taUGQxWFJTR1ZJdk91N0pWRk1rcDZjRkkveDhjWXBWZUVzUERmRTQ5WDM2aEdCTDVkLzF6blU5T2JqZC9lekxPdzRDeUtHK04xL0tDVk51QWJraWdFZFZlSkI3dXdRUEFYMWVhUzRCQUVlMEJ4M0c1RDJPblV4OEJXWFhyMDRxM3FXTk5sRTBxdUNUbmpuRVFtcUFBUmppQ2hQNjlqcHpVeTVLMmZuSXJaMk5iQm5LY0NCbE8zMzlnaXdJNklESko5QXArWGt0T08vL2h5T0dlT1Jjais3cDdtQzhFekNEZ0dxSlArc1dVVk96Y1h0VG1TcFMzRWVyVUd0T0JZci9wdElLMHRPemJiUFVjYkNEcHhnWjIrZTRVV3BVMlIxQVR6OE1RMEhCeWsvN1BGWHFjRW5BUTBXYnVuZUY2eStXbmNCWGZ2YVo3cS8rNkJWL2wyQlpXd1lrdFNyU29sL1ZwcHdidC81a3dMaGkxTFJNQXBnWHlNcnhOSTN0cEhGekNRQk1XaVlIUjNvSzhDZ3BxNUxuRzFUcEZFZC80VEp2NWJzTm4wcjdOTmlVWFN4bFlDY3JtWVZodnA5VmsxSXNjVzBYVTUzcWJSQ2dSeE1YOG5YT0VRT3ROQUhxb0VSOWRsRTdNaEorRHhEQkVSRFVMbmdoOFlGWGZ0c2dpVVhvVUhhMkdIcjFiU1lYZE9DZXIrYzVZY2g2VHBPWnVvZ21vNkxFV1VkUnl6aE9LanZEZUpMTHdvekxoWmpTUXBDbHFJcisybUNFakNENTY5UnMvLzFSb2E0Tnp1cjdCVS91TG5WZitta2IzWGQvOEhvSnZCSU9QMHUzYktJdUY3aStOSk1zTk9PZVJyWUJLMGViR0QySk4yMU9VV0F1QVlEUE44dmlWUU1CRDFUZ21LT2tjRkNwRmJNdXFqT1Fpa2NITWxYSWhjQjR5dFJvOGxJc2hCQlh6MmJPVWhUYVpta1NMTTNueXptTlV6a0hVSEEweWpVZ2trc1IwTExhc3BFRjc1dUFqallTVHFORVZjcksvVEVndVNwNzNLY1ErSlFvRnJDVXdCNlVzbkxtQi9HQjc2WGVpdXR3dEFQYWs4TXJKU2UxTU1iUmZDRTJKS0ZFS0IyRlQxb3RtZXlScU5pWGFpd3FIZGY2a1krWWVSeDdTemNIbDNXWG5zZUt2L0RwdGU3LytkaG05K0hYZC9TeGRwbXRYcEg0aUR1N2huQ2pIWUtFaGI2aExCcWtGcUZMTEdwUU9aQVduRW1kWFQ2WEFJQzFPTGc2dWN6SzR4ckpkZzhuMDBrT0xGUDhnNE45Y0FKV1RudXBRK2JJS0N6bUd4WUNOZUFvekttN3QzakkxUkhYNEVrcHRVVHdtRktPMmRZQjNoUk43c28xMjZjQzEvdDhMTVNEUDdCeVprZ1oxclhVUkVwNDhpUGZCakZCUkIwMDBqWjRTSmdHU21yQVJKMXdIaTFVbFN1UXpRaFJsQmpZSnB6RGdjaXVranhaMytXQ1RGSDJUdmdTdGdFMTZ5RXQvcjJTTTFHNEI2RC9ibDFCZ1BzRFgvS085ZTViZi9LcW45SGdVaXdscFV3K3BzMVdJa1NvcEk2cVRWQ2xKSEFjbnZ3Q2dqK3BzOHZuRWdCd01CTXVEeHpGT0ozbWlGdWJHbDNGNUVkV3JRODZqMFpBb3BLUHNsTUZvbHFpYTNTb2lGc0RqWmpCSUhKN0VMUGhSb3pSQjlCZ2EyWFdha0p5czVQSFdQTW1JTG9hNXZxZklDRG1hSzVNZmtvcERBSndNRlN4RlVpK2lyZ1ZjQ1RtV3dscWFGTVVhNXNST2NKZFU2VkUwNmhaeHBNTGdhazNSR3VWd0VjeHBtWGZCTFJTU21SQnhTVlZQQ3VnMXdaMDI3cEQzeWtBOE5LU2R6KzIyajN6Z040dDhLcStQS1NaeEUzYVByRkk2VEpORTU2eG1ndEZ2WGN4Nm95Y0R6VHJJTkFMbWlrMGx3REFLbzBUT0p5VXQ5MXhGQXVaL1BTVjY2ZThLUUlndWMxQ002dE9XYVhxQXIzQkYvYWVzU0lDOEdvZVZZeklIUVQ0YkNPTmEyMkVWblVlRWJ3aEt2U3FYL0lyQjhlZDZMd0ptTXF4dm5BM2xKdUF0QjlIdE9TZGdPbzV0VUlUZDFKNXlqNkt2TmIrZ1lJSENLbHRsTlV6SFNsOGlBcjdzd095ai9JeUFLa0VrQ3BHNVI1dUtUaXhVSkR0VGxWd0tRTDVQZ0VQQyswb0NQQkVLNjllKzRLbjE3dGYrT1JWdldGWXZjRkE5OUtOVmdUbENGdmNvSTB2YkNFVFhUaG9CeWlTUzdTcFloV1J4Qm5tY3drQStZd3pSc2JFay9tREdYaDdDNm5iSm9JdDJ6SDNsd1VITmNVbUt1dFZmQkxFYmxwaDhQQkk1dHJRRUVIbnBCeFlQRDdJQ3o3R0NaS2lZeDBjVEF4ZTZyVEpza1EzTjAxRnRkQ3JNSUtHcjM4T29QQ0JKSElvTU1RUGc4WndpeW5DaXBpQ2k2RGpaRFIraUhSSXRsN1NxRUl4dTZjbnRJOFFrNm82cUpvWUFzTjJWYVpvMnFnaHk0MnBsMDNBSFAxQVkrSjNGU3JqUXhVRGRCQmdZbkw0Y2t3N0FHNjh2dWZSMWU1QlBTcDhTUzhtbmVqdWRINGFFWjBaN2Z1R0lBMDJUUVFsVUpDaTNTZzdBQmc1KzlOY0FnQ0JNWGNCTnBTeWJNTWZSMDNVb1dOY3YzZ3g1SXlraWVhT0ZUOXNGUzUxUUNhWVFDMmpWRllBVmtLNjZhVVpsNFZ3cmxPV0FkQ1B2R1NsSmtHdkNGSUdzU3dzaG5NWEFBbGFXeVpZZWdkQTFFTUl4bWNTenZjQXlQa1QyVHFNaFNUL3NYTUV6eVlOSmVQSmtvYUUzcTZHN2tsdjUwTldoYXd1QnlhWTdKRTcxRmRVTkNIT3RyOHREMm55YWVrazM4Z1R6S3ZYK0J4NlI3T1V5NEQ3ejB5NnozaDRwZnV4ai9LRklkWFFRSjlNK1NCL1Z4MnpMSjNjSHMwVkRUSlBoUkJQay9NS0FuTUpBQmhwL3dwSVB6T1dNZlk0S2VWUlArUUtFbUI4RVpod08xZXliWExxRXBSSTdwWUNSMVlLcHBtbGRoaUEyNDJLUFZGSTQ2bXF6bVlsWUJJekljbGRqNXhrbmdJVzJLUUNrN1dKY3Q0RDhBVEhnSG93MEtNOVpNUVE2eHNDS21KYmtiZUZiMVVIMnV5U2JKa3F2TWYyME5CZTQ0dmkrT0VnUGJPRnBQZWNSYklKT21rbTVyMEVoeFA1bkp3KzRQa0FQZzFnc3I1YnU0QWYrK1dibXZ6eU5VR0FxbTVmUlAzemNCSUE5d0U4c1UzSHlNQURJVk5rMCtIaGs1MTVwTGtFQUQ3RHp2RnFvNm9Eam1kaU9GaDE4VjlKT0s4dHUxam96blJxYyt0VDZvQjNmY3JpcXZKZE1qSk9Zb0xQY3BUbjVEYXVDRWs1THVya0lPRGF3WURzMnBoZ0JsQ1NNMkJRaG8xa1BWWHcwNVNLV0JwM2xwbDRCbDE4REtqQktWbDUzVW9qVmJZbHplYVVlbzZsTzFDTmtTbzdHSTd3NllJUmVsUlVTL3IzUkN3VmFqMDVJMjAxSGFYd3hVZ0NSZXNyZm5MRGhTZUNRbyt4UElvQ0NBSXU5OGh1ajQ3Z2FVRTE4dGI3VjdwemVqRXJQMnJpajdjdEgwMVVUeks0ODgrQ2h6Z1dwQ2tiQkdGRFgzUjJBREJtOXFlNUJBRDVvdzVrWU5KQkF5U28wOC9wd0t4UDJYSUFpdHlzbVNnY25yUnNPM1B3TVJSQ1AxaHowSXpFUVlyT05DUllqUEM0ZzhtcGlMeVNRNGdoVUhnSzNuekljT1hJS0pLeWF0SUNLeDd4K2tsQTZsRElyUXNNR2xuc05xanJvOGl0c3VDNTA0VE0yNlloMDdEVVZCNFEwSExvQXlNQ2JiQTloVTBTa0RMa3pNb3FYUGdXdnl1WnA2ZEhsZXh0R0dLdkJGL1N3TnFMN3RUU2V3aWpIZm5kOGt1Ylh1MFpYS0kvb0hzQWorZ3R6Ui9WTXdGK0ZvaEFRTCtJbCs1aVFoTW8rT0ZSZ2dIZFo3SENrNEJKTkF0OFVJQXcwd21mNWhNQXBEUkc0d3g3V3dBLzdwR0czODRtcW1XeTR3ckM4cEtRZWRKVWhsN3JKa3hla1VNWTdwYVdJc2s5WElyQ1pQQjVpS2lRWlFBNk1SRGlJUWhvY2hJVUtoNWg2RUFsSmVNTkZKbkNJMko4NEQ4UG5KS0hjU293K1RVUTQzTm82dUZYdEEwYW9sTWZ3M2txN1djUjlvUFRMWWtIVjdzdDVRQzVBM1E2S3N4b1JUSXA4K2s2OEswdm85WkFVRytpMFBaUEVSWmM3dUh3bkR0SFdDWTdSQW1MblpYS0NLYnp4Y05sQUxPYjd3MDhlV0c1Ky9Dck8vbzBJUHp2eHVDelJJdUlTd0JRSk1ueDRsUzA0bnNkaU01alRsY0FjM290dUN6TlR3S3czVzVKUjRDNFRVcW50R3oxVXdUazVGRkErQkxsUHFCYzJuTXVPSW9CdERCMSt4U1U3SXpvc09na2VIeGpLRVNVZ1NGTlVSWWNvSEo0Nk56QUl5OWhKQ2dsUDJEQ1JhYnBPcUd6TDZPa2dIVW9mR21raDI3NUtORGlTek5wcFpWSllabkRjOHQwVzRaYjFqNDVZaGlETDYwUnRwZGtFT2NJQ0pjVVlxQ1N6Ym5yRm94aG5ZYTRDSjFaS1NhOFNzaUdVU2Y2SjRLcjZpb2E4M05qRHJ6Q1AzR2hmQXdvZmVodVA2UGhTUjJoUmlnTGN5c0lrc3pBOVhwUVpxeHhlQ3dvbjNXYXp3NEFaM1BJR3ZkWFkveFJEY1JKS1l1T3lVbHBPVFJRVXJaRlo5QXdkVWpKa21YakVtbU9saXM2Q2JKWmRMSTRuVklQZ0I0V1E1bnNNV2lpb2xHRjVDYVFReVVsNjFGa1dNK0NOdzE2NFdIMTV6TEFDSXgybzhvRjUxM25ySnE1cUU2eHRtVXBjdVMyYVZ3SDJwaW41WjhuWFBZejBXVHhMNFdxc3hRMWJLY0hXNnlud0RFQkErdGl0UXY3V0s5akxCUnBLVlRJZWo5Rk9GOW1JVDhhY2gyQ2NySS9xbDl0OHZZZmx1eFVHbEFxOHozdUExaFdqek1kbnNLYi9Mbm9VSjVsbWtzQThBMHNHV2kvWUtpTzF1RERHSmlPcHJySFB3Q3B5SXBPREZSQnU2TVRYd05CSWJwNmtlRWhrdko2RVJWS1V1bjdhQk9xRUNuZkV4cEdtSlJuZXpGQ0hQY0xLTGpPZnJFWHd5d242NFlJblFOQWJGd0MwR0Jwa3dhMEF2RlpkTjVnb25vZCtLS25iTVRNTGFIc1lSTEtIaU81R20wVTR3WmloSGZaZzJ1b2lGL21XZHFEa3YzV2M1VkFVVHF1VG40OEtxSHhZSlZnS3Fqc0ZSNy9hekFpNno3OUtDdmZHWWhCRncyWlI1VnpyQ09hdmxJMTU4cXNiK3BBbVNEaUhjQ2NJc0JjQWdBRzJ1RUMwdkhob3NPZm1mVHBLSnhJWWxKa3dubmpSRnZ1VHhHeTNab2pqVXAwWUszWVE2QWdtNzhSVHBrQmtVR29qTU9lcnpEa1FFRU9xREt1TEhRZ3R6U0puSlJ0L2xJSGNreitZcThReU9iTFFZd2lMaThBa2VsRE1BQXc0TnhTTm5iYmhndGpkc3cwQlpGeFFLb2tuRVJpZ2dYVW53K1FuWUUrVlhYdUUzdU1USUt5TXlUWkU5OG90Y0kvenVlL0hEa0d6K2wzR2ZscGRUNEpnSmozZnd5cllzWUdaR1RBVGpYUm40TkVEdStjNXYrYzdnRTBEc05JbkplT28zellsRTR5djJTUTNCL0F0QkVaNk9pZ0xCZGE4Z1JkMHFpZ0U5dkFVZ0F4VEcyajhMZXNDU3RQTm91MDRJSVJJc1pUQVpBdUIrUTFaZzRDcXVTNFF3WkhUU3JFeDREQzBGWXlsTHg5SjJCZHFaQlFoVmRKQWFTeUkvU3cwVEZ4WEtieEtla0E5SDdPV3pCVzBraFJiQjhMd3BjdHJpMFVPVldjK0JoN3BNUkZ1YXorS2NrT1JwQzRDREFDdmEwbnB5d0s0NWMrTVl1eStQbjFlSk1RYm05RndNU3V6emN0VmJ2ZTVXOTBRUThtUGJKcDcxTXFBR0JjSHVsNUREMU9zb01ranh1d0thdUNPSlNqWkc0eml0SHg2RUdaVlgra0FMemhmdkpNSUUxd3AyVEhCcXNFQUNBbldGeUp6Z3U4T3QwVnN0endWUjVWVjkyUTEvT2wzc2JyeERqemdCT0J5VTQ1MjJVTEdsOEdpb0dKYU1zRWFCVnpGU1BIYUJpZGFLOXcxUEtCekZGbHhtZDd3RzJFT2MxSzNTcGF0QWllb1VwVmdvQ0V2VFV2Yk9EcTVZRm5MUWdrOVVHYW9Kb0JPK0RvRDhJRzM4TkFNS3MvbHdBZVJ4WnF3VWp4MklHQWpHZ3ZKampOVUxiZXlpa0FaeUFBTmVzMGwwc0FJcVVIdFF4TUI2V3ZEMnRnZFpJcU1BR1FBeTdsMlpPTk1CenJOZ3ZPZk1tdmlsRkdvV0FvV1MxWElCdXVET0xQaHAzcmxEeUlnczk0WlRrVFZYWjdOcHBDendPdjJSdGM2ZzNLaHhEY0FQU0xVSlF6Z0NNS3FLNzNrMHgraHByS0pVcEZMc1FnSWExTjFDQ0JiMkVqVC9aVW1qNUlBemRtUnpUTnBrb1ZGYldOOWlTdGhGNzlSQTNhaXdKdUsralMvMWxPZWpUb2FVb2tGenI3a0tKaCtZbHVkRUNtTGNGTVdENE5XR0dDRTVGSmJveEt3RFZ6a1poQm91c0syVHpnS1Bzb1BPQm1tZVlTQUdTbkhZWlAwaG5IdGErZC9NZ2lrWTNsbGFhQ1JRV1hPWkVvSit3eXNieE5NWm1NYXdkYVJxMWtEb2Ftb3JSQUVmQTFWMEV5UEo2eW5ta3FsRUZtQVpVL3F1ZjRjUzVXZ2lqZkIwZ1JqRUlDd1JJM29taE85Zk1Ba1FQWHNnODh3YWgvQ3gzNzRNQktzeU5ZajBiOHVGeEl1S3A2SWdxMVdGaGNicXNYRTZ2LzJ2N3YrWUNLUUdjcXk2bUE5aWV3Q3BRZEFMVHFaekF3VHphT2NERmFXaEZac3NiWC9hUEJiVjFnQjVTVU5lTjhQZ0ZBMWpzd2ttTVF1WUdqV1ZkaXF5dmhlRVI0OEFJVWVTVUx3U3BVRW5BaHRqa09KeVd1Q2dwMGY0WXhnMEhNbUo2R1hOTUxZRGh4NURSZWdvQ05GMFBMZzZRcVF5RHNCV1dTQ3J3VWRKbFJWK3I1N2pNOEdpMThUWmlQQWlGUnVXNVhMVVU0UnUxQmlZWk9PdlhPUEpSa1ZMaUZoaUhEREZPNGJxTi9yd29CTTBTUkdkU3BvSG9OM0xkcUIyWW12SFAwQXdiRmlRQ2dDUzYvYy9uZ0tpbUlYQWZWV09Hejd3WFpSb1lRL09Ud2NDa3IwTHM3OHZaUWNlWnBMZ0dndlFTd2MyUldPNW1QWXFVZGhHT1ZjT0FnVVU2YVFPWUw3UmlsVS9LVEU1OWpQa0hJYWdKS29wMUk3QWJFclVwNURWZWY3aE1EQTZLTUNjYUxPaDBaZlcxa2dJbDN3eUNwVDZ5NVlCSkg1Q2Nod2dld0RteGc5ZmNMUVJoMFlLbGtva3BNZnVHVm9aQXJXMm9LdGs2dFZpSWtUVldja0RWSSt4QnVEcGFzdXA5aklPQmtDMjRNZjQzVGZvejlrMnlxbDNxU0YxZjB1Q1I2Rmt1V3l6clZ5UzlQUnRHRzB4cGxKaTZzMldjQys0WmNLR1dZU0tsbWtZVU1Cd0dSWU9GSUZycHdYbWt1QVFDbk05azhxSXUxOXZjUnJCejdwSFpra1ljSEFVbEdsVUxMWjVSTzFnTStZT1hJYm04TXFWZzYxaldnSmhNa3c5R0Jxa2t2UWkrc1RGYS9xTU5vbmZnWGpldSthbk5VenJtS1JNTU9TT0pEVk9ybVhBZ0hBQWszelJVaUVQanVzckFFSjdjaDJSRlN4Q2xaNVJRZ1JTZWtOTWw4S28vUURjZXh3TU9MUzg1V2tZU0hUZS9IWnQyZUx6SE9kYXBsbkttVVpZQStwRWl5T3dqdkFjTXBxRFJJSGtjQUhzK2EvWWlFaFRLN05BdFhadG13QXNOUVNNaHduVUlycEdoT1BQQ0RHd1FXbFdlVjVoSUF4anVBTlBJNFJ0bGg2VXpsVERodzR5UlNUS0xpNFN4blIwUWVna3hEQUlDVGRnZktVMjdkdG9GcjVQa3F6NGdCMHUxYURJYTZzdW9aTE9YU2hsdUFRRXNsczE2d0NjdEJ5c0hGQUl1L29MSEY1T1lUZzhVN0VTczhITFM5RkJNdHI3QVpkaU5KeWdhekxJNUVCZk1SemxNclRrVTJRbHQ2Q3ljTGlvRnZGRXpTS1BjdW9JaElTVEgvbzI3aXFCYXd6ZzdtUlRwc09ySjdYQlJMdlFRUTBiVFM3cmI2WnF2NXRTdTNnbUNBekNtV1pzak40MVBoS2V6dVQ4SHpTSE1KQURqZXdSSGppMVcrUGpxaWhkVGw4T1FzZ3V6UUpCUTZZczJuVTBaU2RJZ0JRRTRoZU9DRm9HSkpQYzF6RzZ4UUtTZTVhc2U2cG5veG1TV0xsYmkzRDhuUVE4NGdSMWpmTUNVbnF4ZHFtRXg1dkFPZ1dudXdBL0MxUDAxQlVBcVZhSGhLYXREQjN5UHNuMUlGTE9MTW8wSVJEVVovZmFtd0J5OTE5cE5jSi9tT24vZDYza3FHVi9haVE2b3l5S1ZnZlNLekNvSWo3Y0xZMkZtRjdjQkJoZDJYaEw3bWlyN2UzTjZMbnhNekVRWWRxTnJtMEpBaG5NY0lSY0U1NFdIUEk3L2NSWlZacHJrRUFFOSt0cTg0UXdjNWsvZ29xVlIxRlp5R281Q2JpWEltOCtxVU9YamFwSnp0SjQ2Y1pOMkNJeEFGbDNLdHJ3cE1iT1FZenltRlVxc0dnZExCeVdqaFRGRGFFZElBRlpxVXN1QVIydm9LQU1aT1hrTzFwQXRQQnN1MEkzY0FERjlHbFlPQjZubkZLcnVRcHJVUWZHdkVnT29DeXRUa0tWWkxMVEJnYXdsakdFYnNEaWVXYzJHcXRGSldadFp5N3JFOU5HaFhoUXpyeHJzODRvMU9MOGlRYnQvUmh2amRuYzZSWU05Nnd1SlRYdlBGeDdMVTRyaTJ1YWVmRThNblJRNVNvMXFmZ3hMT2NVTTVRWUJFWmxtTnZFYUtlV1oxbWtzQXdBOTFRRk1vNVlBT2Z4NnN3cEpqVVJhT3dPWklFSjdpeWVTMUhqUXBJSENaZzFReU1rQ2ZpVFpLOFNTWE9rMXdEZ3dUT05FR2JBalBuaE9vMzQrSUNGL29KbU1Fdk1ZVmdEYktKTFYrRkJ1UjRQcWJnTkNHZi9WSEtOeDJtZncwa2JwWXZoQk9pZXhWVGNxaDhyNzZvZGh0aURpekg3SWNGa0pveExSd2d4NkFwVDhHdUZFQmY3V0o0alJjeTJORlNtQzJpV3FuUGxPaHpuS3pJc0FTN2xRQWtBREtUTjVMTjNiMTJ2QTl2UjI0OEFxWC9yYzh5dWpoVTlEU0ZQUnJFeXlEc2Q0U1R4aWVUd0RRck1tQjdRNHZ6amlPTGVsTWYzd2lPV1BucFV6d3RPbVZHNzdDV1BVb2RQTkRIMGdxekNKbUp5SEFuVjl3TVJEVTJWSUluWHdBcTJyRnFYRmdFdHRscjhxT0lMUVdhNFhwK0llNndWcDlsVnJFRG9EUC9IV29Kb09Ed1ljb1lIQnhBNUQyUWk0VzhlOVVjWlFTR2FTcVlDbU9zOVNwNGtmVksvNDJRUHEvZGtUeUkwK043Qk5iSzZDQnFHbkRQc1lRTkVDWFF1TGN0eU5jMUJwWlY0cDViOGRGbmVnakgraGttRlBvVFgrem9yOThaY2RCZXJWMEpHU1N4MDloenpKOTVZZTZsS2VPTmxFTTlLZmJnbmtPYVM0QmdBR003OXlueW5GT25WaEhNSko2SkNaL09zeDlvcE5sZzFmQ3FmVUFLR1dRYk1HTkFqYWl6NFB6OW1mM3NlcXpGWXhyL2RTc3Fac284WG5PcTh4bnl2bWUrQnhrS0o3UGlZZG54STlzNnVuQUxuSmZBa2hRVG5pK2JFSkE4THZuNWRFNlNOMXVCS3VVaDRYUSszS2paM2pEZlFKV1RWWFlVTnJSVmprdWpIQ2xra1VoRWRrdlBiWkF5WjE1UVEvMEtnV3o5SHdWS2tBdDF6WVNVK3A3VURhQldlVjhvaklucGYwb2RxN1JnYU0vOUt2QmIrdzBmb3NHUXB5WXNobWhxVU9STVpHWEVKU0ZyZ200TFZmQ0RJQzVCQUEvdENJckdjd1l5K2s0QmxJWHh5R0gralVYbkRla0xGOWwycWp0RlY3alJuRGlxQUpjVGdCT29LeXJHd3hxcTdzbnR5b3lFTXhaK0N3TDJHV2RpckxtVHg3WEthY0dsM3FuTFFRdEFzQ3lJaCs0aW1jUXVzd0VMMEVBcWtkcHpXb3J2aDhRMWxTY0FZU1UxSUNCeWNhU0lmUFVWL200anF0TXJSZkkvZlNEOE5uWTdmTDlqUTB3cFREQU5TTHJqN2pDd0tRdkZqR0JjV1hreGNmVUU1NmY4L2FOT3NGY25qM24xNEdWNE1FSzBXN3BFRXU5a3BDbi85aTFLVGNOUklFZFZOb0tRWnJKZVM0QmdCWE1GbU40T1l3N29rbkZSM1pZT2pIbE9rZGVZU0tqclppZ2ZidUIxem4rZzFCNGpVVEdJREVnbE1RZjgwcWRYT0NhQjFsQklIZ1pCblhnaU1iRU00NTY4R2h3bUc1K0tPeEZJb2NEbmZOVEJGWHhEb0NQQVBtb2lSK1pvQjN3c2Zwb0Y0QThWUWlaeUlZcXJkMnVRT0NhMFZJdEdEcTRXT1QwWEFFaEFCSkplWkdlUmVlRFUvS0tNelNQZWkxUFphbEFTejBjUEsycTI1dEdhTFcyQWRFRG9GMHNmZVp5Z2RPdHZva25aNi9vT294Vi9QTE4zZTRGL1dTNFh4aytVdFYxd0NHMDZFRS9rVExRbDJLTUsrRXBKdzYrV2FhNUJBRHN6bDFBT21GcW54ekNVanRIbFpra0tTdXJwVVBkSG1RQkxld3E0SXdzUXhGWWlhMTA3U3hqQ3NGd2V4SWVKU0NySjVGRmtjbm9pYXZjZ25JRmdJL0RNMXFjQmU5SFNHbFRLTnBGaGhNc0tuTms0QVQyRGtBTkNQVEJtYis0QVlqdVRIekpRUkM1dVF5NEJ1SEZxV1FocFdJYkJZSXR6NVc5QXFLZ1JFMk5qSXBMbGdHamtRT01Db015OVFzaXNuM1Vwb1ZXb1FhZEFoSWxFZE9sSkZaeWlpaG5wVmo5S0RiZnUwazh1eTRSZWZTYTN3UmRFZjNqcjI5M2IxelhEVUIrS3J6MHIyV05ZR1RTYWgwS1JVZVA1ZFIzenZsY0FvQmZuaWpMTWQ0bkFjUEpkbnVyN2RDV0RSbUlRNmdGdDhUQWV5S1pxVFJiZUkybnRzcTVRbFF4QW1MeURPV1ozYlRBd3c5ZkRuODZNWFdNRGc0T2MwTXdnMXBqOENESGVtV05NbDJOYTNSMzVRZ0U4U21BNnF1dVgwa3RtbHZRaVU4YldKV1FhYmxGckRQYU0yZHBsRXBLUVJQZ1FTcGt3WnNJM1lLeUJGK3BZMVEyMU5DbmdyU0M3QkFlWisxZlhJNlNwYXFjcFY2TU1QdVJQYmtRWWJFdGhUS3RDcjAwVEQyWEtmaUFwS3hPWVB0RnZqTk9lUHpJb1g1YzF0N2ZxNytxOEhOaFAvZkNwaThEZURsb3BKREh1WWNLUlUybnk0Tld6QlErK1ZsTU9PYVI1aElBTk9oam5zbDVaU3pzNjVLakdCc0RpTTdxNVhrODlQMWFpM1VWVlFQUmRwa09SUkYvbnh2MTZCWFhMejNSYU1qei9iU1ZQZFRhNENCQUZWV1BEdTNQcG9HWDdEcVFrS1BleFFZUHFGS1h0cE9QV01FQks0bjJIQUIyaXU3VUY0TUhpazc4TWhEcW80RGI0VVJ5Mndtb2FJR0ZCamxCOUlPTmxJQUZCaXJ4RFZldlhGc24yVlB4ckZpRXhpQm9Lb2d2V0xHRVBrZ0JrYnM0d2cwNURsZmFMeUtON00ydHZoSXArN3JtNE5RVTVXVkZXbGIvOVZYNVgrVXREYkNmL2NTV2RnUG1zRUxCV3lyaFJ4Qks5QzlGN0RRcThVRU9IdmpLMGFCbkJzNG5BSlNKWHpzWUIrZzRTa3AySmdhSitnd28reENpanVKUHdEZ0FTbkxiS2pQeFRDOG5zNkNmK2VKY245QW9kWGZMVEtGTmZ6dE1lS05nejk3S3FwS0VWZ3hwazZpamlrd2V5djZoU0UzWU92bEFwcHdDVXZSQlhSMEVNUWNBOUJRL1BsaVdOUE1JUnBiSEdiSjA1RDJBYUFPdWFOc0txRVNxK2tjeFNOU0h2VEJTckhWb0lJc0JacW5VTVhsMHNqRFRBeW9OcUJBOVp5Q2FwR1lVaHpLaW9uRU5PT1M1YldsY3N4cFFhMlovREhLeHVjL0p5N0VzWUVVWCsydWFPVXllajcyMjNUMzNtbDRITGp4U09aT1RFcktNUU1TNEZRTjk2SjBpZUpKVVREN2FXaHIrMUhEd3pPQTh5d0JRdmM3UFdybVh5UXh5N1hyMGhFQTdHVURKa3pyQUtCY1lzdHNwZktETnEzTFErdFdteWlpMElxTEpncGQyUGJVQmxHS2JyMExUUmxBNHg3VTVyQVNDbW9SZ010UEJVWS9LckFxYURwN0JnUWZiNmc4Y2x3Q3FMOGZGVGpNQ2pTV2doZzdMTFRsTjFKRUlDQUptcFo1bXlBaERaWkticDVBc3VGUktWT0pjcmtpWWhzbVR2TFJKNHdiZHhoQ21WcnlWSjVpalR4QmN5b0tZSE9NMEJUVmk2ZXUzaEFpZGplS04vOTJPU0RVdk1QN1RKYjd1L0M5MTYvcDVjQ2FPM2dQYS9ZUitFb3duQU0rc3RUMmRVNy80dW1uY3JVb3QzSkJ6QUp6eEpRODRxVTNsR1lDekRBQ3BybDZTSW5mS0huZXNqTGR6Yjk5N1dkOTU2eVFRTVVoNm1jbWMrTXFqaXVBU1grR0NLMFBSREZVbEE3WGt6b201b1k2VkFBWUQzY05BQ3IyaXcxUEh5Sm5VTUNWTmQrOVY5ajBBMXd1OGg0M3hLYStzN09DS1VlaE1BUENOd01RcGg4N0I3cFAzQXRBdUNFOTJnWU1jUnBLWWttOEFsNEpwOE1GZkJGVCtoaWRsNjdaWFljdWE4cWpxVXQyN3JRSzdWUWpna1ZOZzhIbEoxK0xOV1lLRks5M2lGRkl0dU9HcTJBYTNIN1Fkc0VxbE91bWJzdW1pMFUrczhpdUtBbWZYRlF6RWMwVlAvLzJrQXNCYXVmMVBqOFlmNHZnYnBaUUxEYmdrZ3pyQnowRmJud283Z0dLZUI0TG5tZnU4R0w3UE9aWDcxZ0QxY29CNWxDVjc0MUJRbFlmQVkwU1BDejF5Rldyb0tXc2dPT2g5aC9YckJ6aHY3eVdRZ1pMWDhJWWxLMjBrYjJFM0EwTDFIVWdLREQ3TllLZkF3VUFEUndCZzlTZFJSbUQvVWhDMVh5NHJRbytnNTRDbWd0dUhPSVpOUUtCNFJNdEFad1M4cmhKTW5DbnpNTk95SnNLS1ZzTmxEWDQrRXdkUHdyZThzWmlQTFhlazlMYU9zSVhBVUppa1JJVlZ3UlBmT0NTSXh6aGdFblVrbElSK0FSM3RYT3E1OVZRaEpZam1HNTdPbzQyMm5OT1lJTHVzbndNK284blBZcThmQmU3KzVVZHZkaTlkMnUwMjlETEE1QXV4MlFoNUhPbGJqeG1hU1phbzRIT2k4T1dFdDQzTUljMWpCMEJuOHltYk84OVc0ZXc3TUM5bDJEOFVrTmM0cTZBWVI1R1V0N2pFai9QVXNSRzFINlNoSXBkT2pFa2ZxM3N6ZzJvOWY3eFloZ2ZWaU82SWlNL3lHVFlNZi8wMUk0VEo0ZDFDMFRzbVVBU0Vhb2lDQVEraVlBT0J3SU5HZ3JuSFFNSCt0YTdJRG5VcURoMVFwdENoQm84UUJWK3FxQnoxbVFCTTlGWGQvbDdUNTE5cm1nWGNDRnZWQ0dKcjNDWitNV2RMRHkzZDNGenVibTdwYTdJcWJHbjdzaTFsdVJ5TXlVOUQ2RzhsYXQ3aUF1WWNQRUNERkNLTWFzQ0R1S09xR2NNNm40dG8yKzhPRGQ4NENLZ0dmdkpEUC9vRlZtdyt2eUY3NWU4dE9lcEhmdjY2YndxaUgySjhVemZobW90QW02VVREQmE1eW1vS2paQVVCMTFiaVRNRTVoTUFtQVdZbzhNRDc1Z0dGUkVoQjNHdGl5b3hoSHRpQ0djVzhoYW1yanF4MG9CY0lDc0FZZ3BJM3lVMko0NDdURWhvZVhlWFNSczMvQUlIamJrUmQveWhVVXNUWGdQTlk0MjZ3bmlRQ1RCT01uQVhuKy9UWnRyQkRvRERPRXZSU1luNktPRmZDQmJJaEhJenlJYVpCQnduQzhqQm5aUGJQRm1QZ3V1RkhHUng0MnRWazM1OWRiazd1NkZKY0VZcm9DYi9paHF3N2pUUnRDVTFkUjkxMHUyYzdicnJteE50bFZlNjZ6ZjN1aHMzQ1FRN0pSRElQdGZoQkp5NWlsWWdjWlNWY0E2Wi9nSXFhaG83NVZUNFc2NVFzZmducTZUZEl0cHZveHdjazRUQXgrVGYwQTJZcytyVUgzMzJadmVoVCs3SUo2eitKRHpNWDBCR1JZTWduUEFSYXVHZjRBczhaOHlIbm5oSmdtM21hVDRCZ1BHQU16aEl5dTkwZzJOblN0UkFib2gyTXpSRkc1NkFpUyt6Q1JvSFhvKzhMeHZOcVUxbWFoRUZwcmNhV25Rc2c0QkJtZ00xQmtYV05vL3FEVHBiWlE4QU1hWElvcXJGTTZsWlZmTVNJSmlvcEoyQ0JNWjdBYU15QTlZdFNxK2M2TWdrMlZkaXFMbHd0T01BMHNBQ1BSblk2cTlxaXg4VGY3bTdUeFA2Z2lZQmcwYjN3Znd1L0UyOUJPUDE2enZkVlUxdzBubmRHYnRmdjViTHp1Q0dkZ0hyMmpJemNhN2VuSFJ2WEYzcHJ0NVlpa0RBNVFIK1owYUVFckpWTXZ6ZjRpVFVkSk5VU0d0NnZDQ24wQ0JMbVRmOGlSSmp4UXFvL2dBdm00czY5cU92K3pYNUNYd1hGZmhXNU8rYnN2a0gvcjlyWHYzeE5YWDRjektNL1A0UFBHMWdxdHRTR1YwNVNPU3BEN25oZUNBMFdXQ2JTWnBQQU5pTG9XdHJUc0FrVmxvbVV2VmdDeGY1WkQ1MHlod2c0VEttY216VlBIa1FHWWthVFZJSFcwaURvc2VRbDUxSDF4TjRZUFNFRnhRMEh1TUZRdWIrM0ZpaGtaV0hHTTBkbHdFTVRqRW9HR1RpZllDK1hCQUNyQ25vSXFCeXFVNlVBNVA0TEpGbnVFSXUyMzArMTE1anhWOWY3aTZlblhUM240dTczbXVTdmFGUjg3SFh0clFLM3VnKytQRk5mUk51VjNmQ3FTbmE2cVI3VkQrVStkNDNyM1ZmOE14Rzk4UjlXdjBWQ0ZZVkJNN3BlUDNxVXZmNmxhWHVtcEEzZEduQVBRSi9qUWJqbGFKZlNtQ1FWa1pqTTdRb0dRWnNkYVowVUlJU0VzWWM5RlFrOGp5QURPdkVUYjhOUGVHRC9mcnhuKzZjYlAvZW43N1dmVXkvQkx5aFM0S29nMytwRTM5dGE5RFp6WkVpQ0FSc3hPaVVGSExkQS9BUUYzaXdZYVA2eHluT0l3RG9VNjRKdndaZW94K2hNRDlQUDRyUzZTQThraE91ZnNUWUNFbzZQTHhJaytTQkpaaWNnVlRMS0ZadzVIM3FDd25SZmc1Q3VocCtUeXdZVklUdVEyWEdMRnQ5SmxOT3hsd0ZCampxRkRrSXBBN0plaUtud0R2Q1l3dVRQWkNSVzZZQ2dtL0VxZlVjZ2t3T3k2SjlzNGJjaXJPQ3RrTHlnb21neGZVOHEvNlo5UlZ0OVplNkJ5OW9CZGR5djZwMnoybjcrL0xsN2U3di9zeTE3c2MrZEVQYmUvR1htNERZUkxxNVBlays4c3B1OSt6TE43ci83ZC9lN0w3d0hldmRsMzcybWU0aFZiNnFRUERveFFnRW43eTAzRjBpRUNoeTdIRi9RTVBkRTFxRzkzbkl4Tjd3ZTJrRUh6aGxiMUFvTk1DR1RwRlVVY2xYMklmK29DOUVVSWZ4VVNzM09UZjBnZi85NXlmYTJlaXlSN2lQZkhLcit5Y2Z2S2I3SU1YWGRHNlJtYjR2bEI2UC9tTER2L1FYcWRjbnloNERBaHRwOHRiczB6d0NnSzYzZDNkaVJaUkJzcnczOG5nR01qbVFNZkRpMktPUUU2ZmNFeXFyTkdWa21DMXo4VXdMVHRtQmd6WlJvdFN6UGlxU2tKYzJBcnZqaFVrZnhLN0FVMVRZekl0TjFGZGw2dm5RaVR4M0FFR0VJUTdmL1dmMktRaDRGZEtBZEU0OUJxZHl5cGtqaTVhRXFUaEExckpsalFhdWFWbjFHZlFQbnRlS0xrYnVlTVA4VC8vTnRlNzdOZmw1N3AwSnNLN1YzckpGZFp1d0tTM3pmS3dTay9xZi85eE5mVlMyMWIzL1BSdmRiL3owalc1WEFXS2lkalllN3JwUGFrbDk5ZEpxZCtXYWRnUGFCL0JPUGI5dW04cFdGTzlnQ0Foa3FoUUdnRkFLSE5BUUQ0WVVlZ1E4T2t0T3VDVjhFYjFBQzlGUEs3S0J5WC9mT2ZtQjFaOEFwVm42UC8zZlY3cnJXL0tUNkZ3aSthL2tDQXhwMFZhMjdoeTlFekVFQjRyQmdsN3EwRStkQUtBSW9EQXZtN0x6Y0g3QzJIcUlsT3hNSGhJK010ektLa3hrT2VHenpjUlJqdnNQWlRDcERJMlQ4d0RCREJMNjFyYXpJN01DNVFLVEpUa0ZVSStnd29UTVlNRFF6b0FRZkZHVGVZMHNkTXhCemJZL0QzL3pyNVFOcTdXNEpDcURrYlo4cEJZNUpQdWM5b0lhT0cvM05hRFBhT0t6Nmora1ZmOCtMWGVyVXZ5Q2J2WTkrL0pXOTNkKy9ITDNieit4cld0N0pyN0NSUm5zREZaTGFYTGtPd25IemNJcnVqL3dYVDkrdmZ0L0ZRaSs2dGVlN1o1NlVQY0NkTW53K0gyaWEzZng4dXZMdWo4dzBZM0NIYjFYTDE2dTZVc2RPL1gvYis5c2dDdzdydnArNTgzMzU4NStTR3ZKdHJCazdFaE9RRFlRd0NUQlpRcENnZ1BZVUU1VmtncEpwWkpLa1pTTFZFd3FUaWpLVUs3WUlWUkNnWTBEd1NZQ2JGbUlzdVVQWkRuSXNtVFpzaTFMU0VMU3JsYUxySlYycFYzdGgzWjNkcjduemN6TC8zZTZ6NzM5N3J6NTNQZG1aK3piTTMxUDkrbnUwNmRQOXpuZHQyL2YrMmc3MUlKOEFCYU5WMjlKZ2ZlOHhzRWFGNWNIV1dKWWN2VVZVRkQrV25hVlZpd29QNnVnVzZUOFQ3OVUxMjJPem1GYSsxV3lEQ08xSUYrbDAxY3hRbitsZmU1NUFnZWhKZURNYTFHa1lHZ3FHVHJrdG1zRm9HNk5MbmFnSzVPajE0SjVXYy9rQ0VHRVpWRmRnTG5TZUJpOGU4cDdHT2p4Q0FIQjVWUXRTc3o1dGFGQ1daQnlCaFFQaWxEZ2JFbW5SRE4wZ3Jic1Y0ME1iQjdWTVhDZ1liT0lEeUtLV3dONFlTWUVnVGI3c3dsSVdTQ1ZVVmhlMXh3U0JoT3hxMElycDh3TTlqNWRiTmJYSnRjNHM1MlVmMGpyWDVhNzNUcUU4TG5IWnJKUHljL3FjUjdQdTJrbzFWc3RGallPckQyd1lva0FlYkd1UUVOdnpLRllEYjAwczVUOXQ3dW1zcDk3VTMvMkV6Y05aZ3VhU2NlMXRCNjRTbDczMCtjbnU3THBXVWw2UVovWDBtcUFweDQ0ZjBJUXduYlZKZFJMelByVUF3YVROSXUzdnZqeW4vTDBCK2Y4T2RTRElSd2Y2YzRPeWtDSnZXeE15di9GcDJheUx6dzVxNW0vTUg2Qmh5RHY1aXYxRlR3d0J1Z3VuSStqRUF1NVRFNFJRVGJrcTZWUzNGWHhuSjJCblRZQW9XM0w5WG9oamxRMEcydFVXcFlTSnA4SVcxR2dVbGNnSHh4U1BVTTYzaGhUcEJtbTFJcGFMUS8xQ1VVNGxBbDgwTEdXMHpNNUNmSUtSeGtHQUIwUGRCck1CRll1UXNJTVNPdDhoU21icmdMWVNMS1ZpeE5RT293dzhCejZsaFJKNE11UThneDBqQkd6UG9ONVVMdjJJM3F1dFYvTGZYYjUyZVFiMWFnNG8zdjlXeDZZeWg0OVViZFozNVFmcWlydk5HQ1dQNE0wZ0hBWkdCTVlQbTR2Tkx1TGlZODlPSjg5SldQd3o3VWEyRHNzU1VnNDErNlYwZW52eXM1TmFHOUFHNFV6V2czTTF6VU54dHVDUUJoaWNwSlREQkV4RklEbGUrR0tIQVhPUXlHZlh4RXB1LzNJWTBqUCtmYU4xVXo1dFJqSzlrajVIMzV1UHZ2amIwemJoaUJIZ1RIYXdYQkhZeUJja0VSeHBYYVRUYXd5RFRzWEtTVGR4b1I0QWFybE1vL1d1TUJtbXJtTjRVNFpnQ2JwajQ1azgvM2pzdktxYlVFYlJ3djFibGwzbXJsRlo1MnRza0I1QmphVEV4dFNDcG9Ea29iSGVkamk0Qk9jWmRqQXhXbDVqMENqVlJnY3lrNmlLMzBPWXhsTVQ0MkJUQjRsaGdGVjNJa3kyeHZQeWcrMHg0QmtWdGlXbFFxRFkvUFBsNWJjTklhNk5ad0lHUEdRbndUcVlLQnovODdPOWpDenZoU2ZlLzBoOVkwMjZhV2tPdDkrdkpIZDhVU21lLzNoN0JWWE1jZ0RZUU9LRUUrOVVrTWVhekN4a2xNREVBY1hiOU8zTGpXeTMvbGFscjM5YjJYWm02N1ZJMFBOZC92RXdKQVU3cHdNd1lYSm5teFNxNEU1clFZVzRpYWhHVUFqQkNrUHdKVzdpRk0wTndZRkttUktzcU4wR2pJMjY3T3NIeG5zenZhUGRkbXluNzJQY2NuaThPa3N1L1V4UFFrWjIyc3ZBVm03SlhPTWFBajdLcTZRaVlraDFoT0JFcDNIMW5CSSt5RjdkTHV4Unl1d01mbUZtV3krZGM3MllqdGxBSnE0bExyUGQydFp5WkxUb0N3K3d0K3E4OW1Vdm1WQWhYZTBDMnFPdDhFV0I0Q0hIWkk3RFJlbDF3N0J0WkYwOWhVaGJuaGRUUEVoa1dja1V1UUo3eEpFQlNXL0RkVmd1TndrVXBUQlRqdWRSek1JY2ZsdlMxY3BOd3BOUGd3Sks0UWcwMERMNVF2a3hDQXpQb2Q1bU1tWjlYbTBoK0tQU2VsWTVqTHJuNXZSN1B5WGpleXhGNVZmSFRVa1JXU2dpMFN6d2h2ZkRQeVFadWtFaWJkeTRnOFowUllja1BmcFp6VEgvY2tqV1hib3BTejdSemRKNFhUZndhZlByOUhTbTBlRzV5N1ZiRFV3cXkvdXpHazFZS2NKSlJTT0dydUNCNXFSTUl5VW5aSTh0NVZSSEQ3aFBaeHhrRHhrRE1lMENqcWdldmRxRmRTdlBNejhmL2xDSS92NEk3b1YwVE9Cc09HcHNwS2xsWSt3S2F5NlRRYWlEU2ZSL3JiaXFzeWx5UU9ab0IvQWhlV2wxQUI0QXltWGhsZlEyU3lpa3dZZ1ovVEMrWVc1UG5YdS9KUzhPcjJ1emx6Mkc3eE5jQXpCY0xSV2dVaWQrMFBPbmZmcUhuTnhzVS9DRG1wRXNubGRBdFFnakFqYlVDT2R1RGwxbDRWemhDZXNnSlpEV3U2SzdpWG9jSnpEd0VXSU93Nlllc3FTejNCaXhsNFVVb1JCaEdKN0czbjhCODRITURNL2hleWJBQnJKRG9VeVdyYWFVQWlEeTNQc3NHUGZyVm0vS3h2VmxqNnpQb3F2QllEZDczTXMrUXVIWnJOUFB6YW56MXVGR1JFYVZPcEwvaEJ0amxzNk5lcWZSVEFEdnFXTFFySlptM1lxVHI4Rm4yWDNuRzlrRHovVHlINzI1cjdzTGEvcjArTk85YUptMzhGOVdvVm8zSEJ1WUdxMnBzZU9PbStnc2NQaEk3czFrREdBcHZkblhyZlZGeXJsbWh0RHRkY1YzL1krdE84d3JDVS96L2paK0dRVkpMdG9LOVU3SHAzTzduZ01IUXl2Lzdvc1RMWVNCcmNDaFd5UVFUU1dsRUJZY2k0UDZnY1RzSmEwNHJLZ3poalFpUzQxTjV2aUJPWGt3dHlLVERTM3phNlRCZ0JXVGY3MStiblpiaW0rVG9GbVMxcnFMY1dkM3EyMUpkcCtVYWJ6R1UxTDhzdWlpWEhCV2FYQWtHeHhEMXNSWFloYlFnRVVXcXVMbEJ3TDJCS2NxT1VYUHlvR3VVQTBvRkZncU5rc0VNTmt3WkVYQTJMbi8xV1k4dWJCUjIvOEtvekRWZzVybHVJOTlFYWNncm9FYlRCcVJQT0JDc0pzWW5GTHdHeVA0dnVPUFJ0c0hOL2xKQnNuK1ZCOFBEdjB6NXhaeWo3MjlVdlpZWDNVZ2hrUkdoaVlZSXpnTFhweGx2TVptWFNlWVpyYkR4VTEvbzNwZUtHdGVKZU5LejFZd3VBNVVzeWp4VDk4WURaNzhOaEM5czd2Rzh4ZWQzVlBOcU94d2dHaVVTMVJNRXlYWm1wMmtwQmp4ZmEwUUgyT0lXQUNDTzhZZUYwQk9uKzB3WXloR0tTTmZYRVZOQ3A1N0pVeFpJZGZpeDNiN0x1Z3d3cS85N1dwN0J2UHp0dUtDWGtzNlVNc0xnZUVnT3oxaW11Tzh6Ujc3S3FtSWg0WGhMV2QrRHB1UUFMazZJOTV0UnVkaVVXY2hNTjFLRzB1dWQwR29DV1RqZnI4dEN1Y0NVZlNDWEJ6ekhwdWxDZXRpRGpQbkhuY1pQVW9JM3FDSTE4Y1p4WnBpdWRjUkdyTndNbzM4eGxpYnRuSlFFdnlPalU0aklUVEVXUHdoa3NOUVVwVGJCc1g0SUlQcHdXZERuQlpTOUFEZXdaTXlURXNZYUNoOUpxRjJKVFNJQ1hNSGdodjZUSEllL1dNZmtBS3psSWFwVWZaR2VUTWN0cmt0bzlZM1B0c0xYdncyYVhzbkQ1cVlXKzBNYmo1czBIZUdzSmtrVWZNQllTdEFPQy83QnpIb2dYaFFCdkRUYnVnRTBJeUFsckJZUWdPbjF6TzNuOTZLbnZ6RGIzWjI3NW5JSHZsZUhjMks0WGdubnlQREFGR1lXcXVLNXVSbjVQQlgxQjhVWVlnR0FGVkFXRmtwRDlWWlRLeld5QmtJajhnWlVjbUhFOGVqaklCc2dxNi8rbTU3UGFIcDdOelV3MTdNZ0t2WVNVVVpudkNablFoTEorbkI0bFkwMDAyZ1lVOGJvRjFMZ3hYdkZnMHVMdzRQNjJvWXJTbWM2N2RCZ0JPbldHSFhZMjVTOVBjME5JYWQ2NFlIdDhLaEFZZERsMVdGM1FjbFM0cHJOdGRNd0k2Z1dET2pZQXhKVzBNT1pWa2lJSXppK1pOS0JwVDVQQXlrYTZBcGVuaXZKQUNuVERBWTdvdzVHdnBsVG1PS1lNYVpaQXd4NHlBU1hqTjFVTjJuNzhvVGVLV3dLajdJRlJibWVHNGYrUkxOWGlVWDRmNTdLTVZmTGhpU0hHWSt0YVpoZXp1dzdQWlk3cS9IUmdaVjMxNkRDaGhtZExEc1RGWURHN0RSK1pDSHFvT2l1QnRMTGdOZkxtQkxQbzRHalZsWk5ZM09pb2M3MlJNSnRCQ1FnUDZ5aVlydXZ1ZXJtZmZQRmJQZnZBMXZkbVAzZGlmWFgrZ0IvWXpMUUpzdjJKQnkyUTlLTEFqeUp3K1hOUXN6UmlnRDFKbk0zK1VDL0pnSTFvTElqT0dLRDRqNFlrWEZyTFA2RkhuSVoxellQWFV5aGk2NHVmeVFGYjZzMzZJb1dEbFErMUYyMU51Vmc4SHVoZ3NVVlFiRnVlbWRNUGNlU2R4ZE1SNU54aGNuSnVleEFDNGF4NHdqdDA0TktKZWczV0NPbDVUNDdOblF5VjFLVDFLd01tMmVUMTFjRWNSUDJCaTZwZ1Fjbkx3RmxUVlM2MFBLUnM2UEZMeEJqWVJqVWdCTXhTQ2xBRmI5Z3dDWmkzd0dJQ2U1Ym5zbWtHZG1kY1JPbFlEeTEzZFlheDVQc0d3eE1Yd2FZbXJzcnBqc01FT3JmTmExajcwekh6MlZmbWpweGQxRDYwWlVDZHdVQWllTnZ2Z1JySHRMeW80ZzlKd0FuQVQwcGlod3FhanFnbE1LcDY2bFlNL3BLTnMwS0NYSU0yM0RxekhJbjBrajJNV0hOUXluYytnMzNlMG5uM3RXL1hzOVZkM1p6L3kzYjNaOTc2cU45dXZnd3FzaE13QXFDMnMvclFJTU1Qb1cwdE9FbHA2NkdHZWxROXRabktZME9uREI1NWJ5TzQ3TXBjZGtVd1lGd05tQ09FdHROWGw0Zkp4NVRlNXFCM0lJYlFJcnEzRzBJUVl6SEVrcitISWJuMnVBSkE5bllXWlNRd0FTWWdvQ0VhQmRqdUpvK091YTNucXBTa05ldTdRdFRDVlUzTU1iclpxbFd1U1JCS2hVeDg3d1hGU3ZYbW03Wk1oUFZMaFRiU1ptU0JReStvenYwMVJ2Z2FJbklRTVJ0L0pwanc2cmhYTDVMTjBEUnlnSzRDRlk1cm5jWnFtL0lxRU9JTXBoRzNvS2RMSDdDUUM1L1NUVS9jZW1zNWV0VSszQVdNTjdjd3Y2LzUrT1c1Q2FRaHlDOENBWmVTSUdrdmhHVzJXOFVNVno1NWR6QTY5V00vKytreGRiK3lGUjQxOHVwcmJBVjd4RFlNT3FBcWhnZWNQdnNJbHg4RW9PUGkwL1lISTcrYU1KZFF4SUx3a0JhM0FFOHBzMVVGYkh1dG1yMVZMQURXZEhXRFZjUGpVVXZia2k0dlorTkNjOWdlNnM1dXU3Y2x1MEtyZ3FsRzlwYWpOVFc1L3pCbUJFUFFyOU5sQVBIdHBLVHNtbVR5cEY1aU9hTFovZVRyY3gvTjBCR1htSDFuQ2pQMEI1UzNOTUdTaEhtUVdvRiticWxVazVJc2NrR2tOUnpKOVljdC9RZjNYRnk2ZW1WeWpTRk4xYStSYk42bVRCZ0FtOFYzekYxL1FDbUI1VHN2TjN0RERVcFF0TkNFdGduSVljYUE4RzJTSGRQOTRWQWRNYnJwV1gyNlJJUmpUN3U2MDdxVG1aQkRJaXl2cURjcWFJSlJLVnhUT3l4U1kxaUh5R2JWWUlNU0ZFemxEUmJ5Uno4TkJCdFNJRDQveFFqdnNtM1BTTk83WjczNWlPcnZsTHlhem1tYTlNYjFRczNla1I1NW4rT0hESEJnQWxKQlZEM3NnRi9Ycy9LSWU1L0Y2THJ2bHRpa28yZkNXbnYxUm1VSmhWZ3M4Y2hzQXI0VUJzRWpBS1M4S2orS25nem9vaFhCcWo5bFR5SzdqeUl1RERsejc3TW5nZHlOQWF0RmJHQXNreTdzSEZGYTc5Q3U4RHorL2FMY0hQQzRia1pERzlRanYxVmVQYXEramxpM016YWhMMWZseVRBWXplb1NJOGJzZ1paK1FiSGhya1JvWUwrRmRmbkZEYzhFcTRISWdRTjBtazRDMHNHV3ozTmJqRnFLdVZBNjB5N3ZaMDRDck9lcFFVNElSa0tCcmplVzVpYlBIZlFYZ3BCeXVSbVpMK0U0YUFCZ3lwdXNubjVpU0FkQnA3OW9vd3Nmak50dWlGUy9weEprY1dneFFYdEw0K0lQMTdBTS9wN1Bsc3A4Y3FKalNMaS8zaG5YZENnVGxqNTJUVzRMbXpncE1iWll6MmhKYXhWakJRYUVZOERIdStCUXFZNWhsMUFZR3BWWXRROXFnWWx2OW9nYnZIMzFaRGRIYWRWbEtlbkcyeXhUODJEa0thV1dJNXFoQ0g2UW9OYmNPQVdxbTE2Z3lkc2dqa2pqeUJzaktJWkFJeGlEUXlmUEVNcm55eDNKUVJOYXA4M2FtdVBYQ0JVZkJES0FBckhYaGpxcENENUFyck5TSWs1UE53bTVWYUhIMUlUL0x6YmY1SmxXWWhjejU4M1gxdDdROE91aDVPekYwN0kyQU03bFpIdHBkeEUwK1FnVGxqM2d5eUR2UHlBdFhZQ3lhOTNmUjJ3b3BhMmhMeU5QcUNyV3drWXRoRXQzRzh2VHA1eDVQRGNCNkpGcVIzUkN1MHdiQW1KZzUvdlVaUGZpL3FKdnlWNENnd1NiTVhBa3QyNll1Wm5FcElkRkFEd254aHRiZGh4ZXpINzhKMzVOcE1zajI2bGFBKzF6V1V4eXVaS1loYzFCWUl0RWx3VUF4NEIxTkhlczdEVXd2NEpsVkVKU1Y5elJubUVHbE1NdDNOdkJRL0RGdGJ1bmxhVnVtLzlhZGw3Sm45WGl1aXh0WHk2djgrWkpmUTFRNEc0d3hqVXJ5UVdrVm1wUkJHaDVvRVYzTlNJQTNHdEtjUEUva1NRZ0dMNHFBd2dmV0F6M3BvRzNnUVcybHMwcEthRzk0Z1NZWG5wV1A5WWFBSFdoU3g5cEJwNERPK1hJelFMOFJEbi9LcFB3OHFrTkVHRC9iTzlDMys1eGpCUklYNVFHR291RmlFWWtoeG92MkIyTWdQUExWbjhzakVMVFNwdlEyRHdWa3ZNSjhjSXpUdFJ6SjhDM2JIL1p4alBXbGk2ZWUxdG5qbFc0ZGFpc0xySWRwcHdHQU9Wb09USDAyZituc1hHT3BmcmFydC85R0dBcmlKTFJKSjBuVC9UaG1DNXhWR0hzZ0RJMnU3QU9mbjh1dTFiR3ltNjdobTNSNmZLUmJBV2FCR2QwS1lBellLRUpSdzRaZ29CUEp4c2hXQWR3ME84TkVOTURqUUp1WjFPRjhQWWVQVGZLMVdiN3d3KzcwN1EvT1pCKzlkOUtVSHdOaGc5Q1ZYek1aTTBZWW9ERU5xWG85SHFDK2x1RmdPRWlDaDNTQWh6QnRDSW9mU1ZvY3JEdU1nTHNROU1vZG0wRHJuNlpjU1NMQjBLdGMrYjBEK2hacThHZjlKQmlNRUZoTVFPanBZQlRBaGJ3b2tzMms5c3d4NEMyeGRHa2xFOGRaKzExbWdsQUpWM2dJb1RCNUJLS1dIbVdSaUNRMG9GVHZhbEdNTVh0WTVqRUEwcFdKMDZmOUpDQmszYTlHWXN2NGRocUExWmlBK1hxalBuMnFhM0RFQk9vWjE3T09ucThNWFJwcCtSRFdzMTRKOG1VOUR2eWxUOHhtNzN2N1FQYm0xK3JWVXkzL2VmN2RKMFBBZlNHZWxRQTc3R1VIYlRvVnVLcHJrYmpxY0lzSk5sQ2NvQ0lvbmoraTBqSDA4TjA1OGNNZ3VPWCs2ZXo5bjcxb3kvNmFNdm1nREVwZmJQbzUzb2FsNkRuTWh5eVZ5aFg0UEVVMHd5MkEweUJGVlVlbkVrYVBhQ0NDZk5Gam1vNlBwTWtRNkZ0SWx4YXlDVWxlb3NpUWl0LzdEd0xJSnB6dWs2cWhoQ3BDM1VENGdnTFV3bXFBY05oTUpJME5UZnN3YXFoMDVaV0NjaXRrSWp3NGFCajFHQmNxNUxaNERFZCs0TU41Q1NuRjFSS0lic0Q1N0E5a01saWVuenVwWXNuenF3MFEyV0tXVGhrQWwwME9sK2VtbnU4Wk8yaHNJbVNHR3grRDJwVFRLQWhXMzdvb0ZxV0hxS1p3SEgwOXE4ODF2K3ZqTTlrLytjSGU3Si8rY0g5MlVHOTQ2UlJwcGx2R1RJK05iUlhBKzBpK1pHK21VTkM2M0JEY2xSMEQzQTBBQm92SGRpZ2Y3NXAvK0l0VDJWMlB6V1kxV1FJK1N1RUtDaXdmUDAzVHFJTjQ0WHd3Qnd5RE93eG00cUpGTktKSW8yUTRZQlI0U1RJSEFwU0tRZ0tFWUN6cENYbk8xUUxxdjF6UVRxR2NGMDdnSVR3cHNGeEM1YmNkUXBpQk1KNkwwZUF5Tlpsb0tXRHRLU29MTFF5azh3cFRtVmc1cFlUNmdqRk01VUhld0hFbzdrMEdGL0NibFVYT2h0M0NwQ3VBK2RtSjR6blpzTmhOcXk0S3RpSFVLUU1BYXk0YllGZjkwdW5uZWc2ODFqcUdSQk9vTFEySmJjWloxK1lGdkNPc00zT3NsRXJLdytiZlIrNWYwRHZ0QzlsYmIrekozcXpueU5jZjBHTWpuWWZuNVE2YlVaTXlIbHhOMmpaK1l2V3I1WEVhcGJIbWFJT1U1UWdyUjFwZjBHTytwL1ZJNmt0UHpXVmZlWHBlNzhQcnZRWlpoRlM1N2NTZnROVnZCVmd5bXJKSDZHMUhvWFBGVFJob1RsZkgySFFhaklBWkFnWjN6TThTM0p5WWRGeEFwRmZ5aEh3bWg5VXpwb1ZpT05LM1dHc3BoajROU3VnZmxLWStqS1JYWlhsRXlxblI5bURVYUZmQWVydXRLcy9ZeEFWeWpJaElpWGhham1TTHcycWUxOHM0RExrMkw0dFEzbDdVWWhVb3o5bUkrUXRuajBYS1J0SnJFU3pIazZTdEJUdHBBT0FJaHZIZEM2Y1BQemR3M1k4c1NzQlN6YTA3Vi9pVWdtMGFSZGxBTzBoSkcyc2FNVU5TSmg0QjNmcU5sWWxHOVFBQUdDOUpSRUZVaGV3MnZZYytyS09nSEkwZDF2MjJiUnlwUUZGR0pVUGhsTHlGZVJZOU5EU1VEUTRPNm15QlBwQXhPeHVVY0VYT3RSSGNldkNzbm1Pc2s5cTludEFqdTFtV0pYSWMzKzNuMko2RTVFcmViQWdZc0lVbm54bUNXR1ZUT09JTUtKODdDMUd1YVRTSGRCUXNkYTFremR5TWMwVk04Mjh1TEE2TUNHMWZSZWhLWVM2M2o0WmFubkQvYi9YRVR2T1NOQkVVK2YwZVBlVXh0TkJLaGt0WkpwUnV5a1FFbytNMUtGWUVJNkdRSjYwbnFXSGRvSlhXeFc0QnBmd2NYdFBEbmNWekx4NStUb1ZKNWk2Sld0MHIyRjdYYmdNQW96RHVERHVzVFIyNTgrVFk5LzNMbDd0cVBRZkpFR2FlbUZOZzQ4N0poeExGUmw0WUhNWUFXWENSRzU3NURtbFp5R2xCbm8yZm1kVHljc0pmSUZFbSt5ZHpMQk5DOFJyd0dJRGhrVVkyb3EvbVRPb3J1RFA2cGxXcWNFMUYxb3lJdWZCdk1tQjI1M3g2d0hsYVVPeFUyVmZNL2lvUXhuQlN4amtXcW5DRnFqczZ0dFE2S3VCUVJyR3djb1FYWkpMY0lOZk1tcFJhUHdnSGVMaHl6cHBMc2Z3UFN1MzVTRGVHN2RhQW1MWERTT2tTbGR0d0pLNXdMV1NTRXlCektHa2JuYXNTSVNFa1hvNHNtS1RzM1EzQllBQVdYLzdyYi80NWV3QllXcDVudGhhS0V0cmgybTBBa0FnTU95UnMvdUtoVDErNFpuSDJXSzEvOUdDdzFuU0NaOXRrVXhLVDY5S0JGbmVFcHBRUlNUMWhvMGtiUTZTcVJ6bExZTC9RYTZNcTNFT2kzTGxUT0lubEhKS0hNK0o4TUdOQkpudEpmck1HSUcwdFlSK29JV2lZbkdhVDhxc2h6WEVyWWZLTFl4MWkrYXdjS1Bud0pLKzdtRWZ5QzMrT2o5RHdKWnhIaTRvYzAxNlk5R21aY05vZlJhdThsVVVxR0ZZQTRkRmltVXFJZTZraTFlVzJNb1U4WVpWUzVNNURiWkFIblBNSUU4WEhjd0NzSVIwNWRPOGQ1Mk05clZZQVJZTnpaclllYUxjQktITUNzOTZJdWFXNWlTZTZoMFovR0ZFalB3YmhNZ2VmdCtBZzNDUUpHN3htQWtRMU9NWVVadFR6RnBCT1Z3eGxCNmt3d0M1VzJHSmdjb2NCWU04QWkwMm4rWVpjbm1HVmdQT3lNam1tQ0lSUUNKaGlFclFCcHBnZ3F5VUVaampEczRJeUpBbjZEL3pTMXVCSVMxMFJiNXF0U3Mya0p6eW53NXlLQ1NxUGJVc0E5a29zTnRVYjJvTEVtdDFLVEhONmlCV2xYQ1psRzBUZGJGT1RzOGdkU2llN21SR3hOY0IzQ1ZCK2JnTllDZFl2VER3aFN1VkhnRnNqdm9GUzdUWUF5QXhaZWQ4NVpHelZGbDcrMXFORDQ2OWlMQWVoS3VBWk5zQnJrWVZDY2lzNlJSZzYwMjRHbE1pWXRUeFdIM1hGUDJVS3R3NkNsc0VLV2VaSU9sUmcxNERCQUFURmx3RVEzOTNzTkpzU0psblhEVnBsSzNJRk1uSFlLaEo0Rm94OFUwOVJGL2VsdENYUTRvb1A4WUJiVVVFWmdWeThvV2s0NWlPcHJBeGxFaDJQUi80MjJLSW9EYmphYUltVkxjaGxVa295ZVZ3ZTZSTEZFTVZnczFuTmkxc1lBUjREbmo5MVROOUlVbmNXbnN4UkdnVGI2OXB0QU1yY3BRMnBUVDk5NTVPRDEvMjlLYzJlSXd4dVpqWWI3bTJhWFh5NWhwcEQyWmI5cWloOGV5L2czQXpBS0t1QVVMWFM0cmhaeVFybDZJSHdyQm1lN2JDSjd0MExwYlFzRzdqRVNtSk9aRkM0b1BERVRlRmh5TklkSCtLbS9MRWd5Y1JOV3kxdm9CWTREdUd0WEkzVTVSTFpTc1dYVVFhZUV4RmNCcVdWUlhPNmJaUUpwTUlKUnA1SWhkZTN1K3JMVTg4K2RPZVRTc0kyYUpzNFh6MHJhSU82alJ4QU1wdy9DYUgyWG1IVVBiTy9yUzdQUHZqQkYvYS85YjFIYW4zRFA4QVlSdm41QzFtM3dFQVVSOTVCT1lsQUV4TUFiYkpaUFdiaWkvcHMvYUZvMHg1QVRpeVU4MkdGWVdEWmJRWUFxT09tVVEveldqY2FnSmZBVTFHaU1DWml3UDRESTZHT1psd29GVnJuRk5MWks1VDBsQUNqcVBJSWVTaGp2am5yem80MU5TU3dhdTBGTHgrM2RqYlVoaGFraW5LdGhGaWtYbjVJbFljdk5vV25VWVAyL3NmY1U5KzQ0N2RmRUhGcWp5M0tJWFU2bm5CYlhDZFdBRENlaW85NE1BSnpjN05MazZjZjZMdjZoaDhJaWhTVXF0V0p2SzIyanNwdy9vakpURXdxTm9WSnN6MkF5R1pnMWt1RzhselRoaEF1RElDK3ZxTjM4amRyQUx5R1ZEaWhOcGdLSWE3QldDWHhwb3FVS2tLYlhhSW41RU5Wb2tHbndGTnFQSXBhZDFmSVpic1pybE9ackNpM0ZZSXJpS3lPb0c2K1ArQWZic0VBekowKzg4RGNIRyt3bVBQdWdaT09jVlBzRzhWYTJ3aWM4YUQ4Y1Q5bDl2aFh2Nnl2Tnl4aEFCalh4V2JXRm12MldnU1pwZkhGZ0ViTWVOVmpvUmlQOWJKOERnWkNWeTNwN1hVeW1JcmVadVZTM1BuMlBKdUJ0clJQNklXeTRWWUNQdURIbHZUR2N1QXRQNWlqTkc4TDdURWprTFI5SzBNRUdvV3NvTHA3M1c1ckM4dC9QZ1hPdHhuNGRhVGFVbVBweEZQU2pUQlVYV2U4aDcxamlMZlZkV0lGa0RMb0RmQUcxYzcrdjE5K1l1d05QLzlFZDkvd0cvbDBGd1lBeGVCVHo1dDFHeTNoZXdPMko2QksyREN6c3VoNlFtVGx3cnpnaUd6b0xub0l2OEY0Rk9sYkQwRTBPSi9WWXpXbThsUUlqNTdtZVlId2xMQnZrWUphbXJNNWJQc2NTVUdMTjJmWlZiRzB6VDRKN1BRRzhFaVpsNy93STNwSHBhcysrL2dYUC9wdW5nRFFITmNYNElwdWJtZmJPbVVBZkhnNTgzbUQ5R2JnZFAzc2tVLzF2ZnI3Mzhoc2FtOXdhZllOUno2OTJPYWFtQTRBS3huSnJNQ2pUTW9ROEp3MWwzUVZLWXpBeWhJcEo2U0dsUVRZdGZPbTVUWVNOajRpMWNCbFVZcWFuTWRjUXFYcUhlK3dLTDB5UkI2ODBWUmdJMlZXVXRsWkdOcXlRa1k3aThXY0c1NGlEZXZFSjZkUitTRVVQbEI2NmJtam41dzRjNFp2QU9CNCtsanVsbkxjTWw3dXBWTUd3UG1DYWZjMEN0OTM1djRQM1BYS2Q5NzJpOTNkUGRmd0c2Z3NoK3hUMUZ0WUJYaEZtNGVheGFOSVU4bW00WlUwWGV0TUpWY21id0hqRkoyWDlleUs1eThQanh5L0FSN1MyeVRLNVhWdm9PeE96NElSMk1udFlYenh3eXg4bWRobWY3Ny9VRjg4OWVYYjN2OEZKZW1Cb0wwRm1FK1lpdnVRcEtzOHJHQjdYQ2YzQUp4RG1QWUdtV1diZVBLVHArb1hqLzFaTi9jK2FsWllDUlJ6cXhlOExFaXQ2L2xZQVpKMUR4ZnVIZWN3WmpmZ3VNMUNwKzNReStlMDErT1o5RFk0cTlmcmFnTzlLMDBpWFFGY2FWN1dxcDhYZi9oMEdlK2pqR2dGc0VkZnJKbysrL3p0VDl6N1p5ZFZqaDVCUjJ4eFdxTFRwcDV2cHNvNDdLVHpJUWFrVVRTTzg4MjFsKy83NzdmcFlQNFp2dHpMYlVENFNLV0daVnJpY3NLcVpMT3VYRjI1UEVxRDg2Vm1pRzN1dWw0ZEc2SldKcktGdU4wcnF6S0t0azNtVytDakhYWFRIMTUxSG5ERURvT0Rlam1OSHlSaDJjODNLN3VYbHM1OC9YYnBRcGgzWFBsOXdreTVwNmZhN2pwcEFHQWVCL1FHMFVCODQveWpmM2hpNGR6UlA3SlZnTGl3dllCNHVpNXQ5UlVMcTJMZlVIS1lEeTRhMENKOXd6aktYMkd2NnEwTk1IS2xlV2xML2JRRFFyUnJoM25uaVM4eWora25oNW45OGVQNlhOM1VxV2R1ZWZDdWp4d25qeHlUb3hzQmI0WWxkT3JTU1FQZ1BIdEQwaFVBcDV4cUp6LzM3MjV0ek0wOTA2TkhJZmtaZXg3SGVZbHRocjZNTkNnR2ZYbnUwQnNFZE55V29OcmxkVjJwdGxxOTNxQnRsbk5IMmh6YllrWmdoN1VIbm5ocU5Dcmw1eWZZUitWUmZuMnUrcG5QLys0djNxb1E5LzdvUkQ1Qkt1eXRVTEJ6cnRNR2dFYmd2REZ1Qk16S1RUOTMzem41MzlMRTM4QUEySzJBTHZhZCtsQnVaMTNWQ2hTM1NYbDJGb2ViNHViYnJTM1duazFKWVBzeUQybmpiMXkvUE1wSFgvbU5SdDBDTkU0ZXV2OS9IWDMwM25QaUFuMUlaMy8weEhXbm8weDIraWxBeWp5TllzTDB4bUx4QnA3LzQzLzRoYi94bjE3NmJNK2Vneis3ekk5NHlCYjI2TUx2dlRVZDBVMHBYWWt3eXAvVWF6TjRFdDlWd2NTSTJRcG1XNGJhOWtqSSttVUh0UWRXZU9hL2QxaXp2Kzc1TVFBSDltcTZ2M2o2cy8vM3YvNGtPLzlNd3J6OVo1T2lvUGVPdDhLaGt0cnZPcjBDZ09PMFFZUjlGWURGczJYUG1YdC81VGV6aFlVVFBYb3FZTGNDTWdMZCtrNjJuY1NEUXVVcUNleENDVERZK2RqSHVIN0loWjhneHdEczM2TUpibW5oeEpjKzlxdi9ROGsrR2Zyc254b0JXdHhSNWFlQzdUQUExSU56NVM4YmdPVUxEMy8weE5Rem4vLzE3bHFqYms4RnpBRG9PYjE5M3owVXJxNlZCSGFiQkhqa042NWZjOXFuUjMzajhudjFReldqQTQzNmM0OTgvdGNmdXZNUFRxZzk2QUtUb0JzQTR1aEp4eFZmZFpqYlRnTkFoVzRFVXN1SEFHclAzL3FPZXhiT0hQbFFyNTZOOGlNWjV2V3VOQ3VCeWxVUzJHMFM0SWc3UCtXMlQ3K0ZaY292QTNCZ1hEOUtldUxJaC83a3ZlKzRXKzFCOTlaUy9tMHhBdHRsQUx3eHdMSVJRQWo0cnFOLzhLYmZYN3A0OGpOOWVrU0MzdHRYVW5WUFVLdU1nTVJUdWQwaUFWZisvVkorWnYyOVV2NnI5L08xMzlPZi9yMTN2ZWwvcXgzb0hkLzlYOHNBYkV0enQ4c0EwSmkxakVBUXh2ejh3dkZQdlAzWGxxY3ZQTkNybmRLd0NzQVE2UFhieWdoc3k0Q29Lcms4Q2ZDeG1EMjY1ejh3MXBYdDE2TStsdit2T0NDYUd0TzN2KzluZm0xK250K3FNc1ZQbGQvdi9ia0Z3TG11aEZnSHI5dHBBTHdadmdJbzd3VmdCSmFtWDN4bzRvVlAvK3RmYnN4ZWVyUlhLd0ZiQmVoWlJiZmVuZGE3QTlYR29FdXhnanRPQW54OW1sOXV2cXFrL04wTFU0OTg5a1AvNXQzSERuMXpnakV1WDU3OTBZbHRVL3BVY0ZmaUJ0dWZwamxNK1FIWFBYL3VxZG5GeVZOZkdiN2h4OTdZTTloL0RTS3p4MVh4ZmR3cjlYaXdUOGM0Ky9RTzk0Sys0MSt2NjZYaVZpMUlXN09EdzkwYXJJTTZtTUxIV09iMCt3UzczZEVXWmwvYTRpY0N0N05OL05UNFB2MTBPelAvUGkzNzhkZGNwUWxzL3RJamQzMzRsOTcxNkQyM3ZpUitFRFRLajA4My9zQzdBWEFvVk9mZGxUQUF0QXJWS1RjMFZhZnV1WmYrYW5yKzdOUDNqNzMyNzkvWU16UjRuWDA4T0ZnQktWNVl1R3kzSWFnTVFPY0g1RlpydUZJR2dFZlZ3d1BkV3U3amcrTHZaOWt2NWUrYXZmalZ6L3pPdi9vUGo5N3pDWlNmOGM3ei9yTHlnM2RkY0NqVTlyZ3JaUUJvblN1OHczS0x1eGZPSFptZGZ2YUw5NDY4L3FjUDlvMk0zb2lZTExNdXdRaXNWclJNcWozeHlnQzBSNDZkb0hJbERFQ3Zia3YzYUtmL2dINTMwbWQ5bnZOZnZVOWFmdkhVcDI5OTcwKzk1K2hEOTV4WGU1bmhVWDYvL3kvUC9vaGsyNVdmU25lQ0FZQ1AxVnhYZmZMVTRzdGYrNS8zN2ZtYjc2ejNqVjcxL1YxOGpBOVJtUkVJWHhPaThIWklyeklBcTNYVGxjZHZwd0hnK3hVam12WDNqV3JXMTA0L3lzOXUvOVU2NGJkM3VGR2ZlT0h3QnovNEwxNzdHK2ZQbnB5VlpGQjJYL1pqQU5nRDhFMC9IN1lPbGJTOTdrb2FBRnE2MmhUdUFnRmFudlBmL1BBM0I2NTU0NUdCZmRmZjNEM1FzMGUvb1JidXdiVUU2K0l0d2tqS0MzWkNqSlVCNklSVTIwTnpPd3lBZmNldlg2ZjZ0TkhIOC8xOWNjbVBBVGlvbmY3QnJ2bmp4eDc2OC8veWY5NzlsdHVrNGN6NktIeTY3UGVabjJIcXZqMEMyQ0tWSzIwQVlIczlJK0JONjVsNDRrK2ZsWG45MHNncmYyaHY5K0Rvalg1UUVBTGNpM0ZiME1uanc1VUI4SzdZZWJBVEJzQm5IM2IzQjZYNExQZE44WFdQNzgvM3I5TGhIcDd6TDAyZStzemRIL21QLy9tdWo3em5NWWFqdk0vNndQTE1mOFUyL2NvOXQ1cnlsZk4xT3U1OEFObmh3Mk9jOEhwWjJMemVGTWp3aHIvK0Z6Ny9FNFBmOWFQdnF2VVB2MjVSNGwyU1owYzc5OW9LNXNkQTJTaGNabHY0TXJlR0tUNGl5eitzbHpyQ2o0UHFOMnVkYXpHMW14eHQ0WmVJOSs3dHNhY1pGeTh5TWUxdVIxdDRzbkhod21LMnBCK0EzWXFqRkYxS3Z6TGJvL2k4eURQWXowWmYrSVFYRU0vSFBNWTE4OWNXWm8rZWVQSytEOTN5S3ovMUZ5cnF5M3RYZmhRZjRhWXovNDVSZnZHMTZ1eEwyblk3VnllZ0d3RWdieXppVTBOQWVIbndOWC8zd0t0LytzUC91SGYvamY4czYrazlpQkZZa3FneEFqdzFNS2hleFFBdzZCdENLQlJzQVloTk9MSlhCbUFUQXR2bXJCczFBR212KzREajVCNnZvcVB3K0g1K3B0MjgzdVRUbE1ObnUvRkRVbnplNVIvVGpOKzlWRDk5NmRTUmozL3V0Ly85bng0NzlKVnphaTVqRllYM0dkK1YzNDJDSzc2ejRIQ2JKZFZjbmN1Z0dYdmxZczRQRU8rR0FBT1FyZ2JjR0lCZkhyLzVGMTU5OVZ2ZTgvTzllMjk0UjliYmZ5MGZHc1VZbUJHUW1JRm1BQWliandaQkVmN3Nud1M1L0JvQ2hqTzg0cFVCeU1WeDJRSEU2NTFkRW5VVGJmS3NsZTZaOTYyeUFyQTZkR0dQaUpuZFozZi9vVmNVbnQvbjQ4QlpuMFpWL2t1OU1jd1Bkd3pvL1pSUnpmak0vTFhGK1pPVFo0NTk2b0hiZnVPVEQzL3hsaE9xbnpIS0RJL0N1MDluZlJSL1J5cS8rTXI3Z1BCT2N0WnZZc2dOZ0VOZkRhUXJBb3dCNmN1anIzL2JOUWZmK3FzLzNuZmdwcCtwOVkxOWp6NHIwSTB4V0U1V0Jia2hVQUhUZVkydXFQdUNaZzd5RVplZU0rQ0R4U1BEV2dyS1QwMDFzdWxwL1FpMWN5bGF1STBNMUpEenlsNXByOTBDak5mQ0xjREV5aC9VTGpYTkdBYVgvajZCeFlWcmxkZGI2REpDTnF2bGE4SjdwRVVCVHpJWUNSTW1PTDYzWmtvOE1kR3dXNER3ZXhNYUdFcGpkamVGVjlpT2x5dXVKM2dXNWxkNVVmNWVqU2ovbFY0TUFUL1Z6WXpQTC9iVWxyUzBYNXA2L09LSnB6NTMvKzN2dS92UVZ6LzNVbXdPaXUxS0Qwd1ZuNW5mRlIvb2JrY05FK1MzVTUzekJrVEIzYXU3N0pZQWlQSzdVY2dOUWRZN1BITHRQL2pOTjR4Yy82Ti9wM3YwMVQ5VTZ4MSt2WHA3bEJGb0JrRmRZNnNDZFl2MWhpNG9oWWRGYzBXWS9DTmErZzFySnBqVTE5dW5wOFBBSTY4NUsreVJuUTJEQWREbUZSK20wTENkNElDcW5BbGNGNkFyYmc3WHdLWGx5blNJUTlEeUpPRnlQQ2JsR1QwOXJUK2xBOTd5QU9YSDlmeWRWOGtuMVJadS9WQjg4S2I4Z3NVWHAwTFlEWUROL0NnL1NxK1pIc1hYZ2lEcldsNmVYSzVQSFowOS8rSTNqaCs2LzRFN2YvZmRoK3YxYWI3Ynp6aEVvWDNXZDZWM1NGcnFmV1E0VlBMT2NXcnFqblVwYjRRUnZFUENHQUEzQm00RUhJSjNnUS91Kzl2Lzl0cXhHOTkyVTkvK04zeHY5OUNCTjlSNmhyNHJxL1h1VjJtOVhCQ1ZYMTNtdHdxVU5JUGdGR0ljNWNkUHRUSUFxckNWY3hLdDBxNFVqcll4NEZNRGdHQk5xUlJ3NVhJbGFrcEw4NjBYcG9IUTgzeWJpYStSMTJnNlhXaHJOT3pSSXpsbTk2bkphQUNFODluZlBqS2pPT2tvUE4rZ1pNWW5ySC9VZFZHZm9uaDVlV0htK2ZucGM0ZlB2M0Q0OFdjZXV2T3ByMy8yOTA4cWxkL3Fvd2s0Wm5WWGRJZmczSmNWMzd2ZklUUjJsUE9HN1NpbVNzdzRqMEQzR0FEQzlGL1pZd1RBT2ZTOGRBNWwrclV5MkR2eStwOTh4ZUJWTjEvWHMrZFYxM1gzNzN0VlY5L3dLN3E2Ky9kMzFmcjJOR3ExNFM1RjFHdTlkdXBZcGVoQlZnRDRTUTB5WHdHZ1RPdTZqZVJabDBqN01wZ0IwRXlYR2dCVEZyWFRaczBFdWhGWUMzcGFXdGFOU0JOT1RUQjhwQzlRMUplbXBlRlNYaStUMDFGZVp2a3g3Y2lqNE16UnJBQXNIM0tYVjdpZU5aYm1hNDNsNmF5eE1MRzhPUC95MHNMMFMvTlQ1MStZdW5EeStYUEhIajl4N0xHN1R4MTk1SjZMS3NGemUwcENBdWZLN2NxZlFrOXp4WTgxMmdvZ2xBNjBQTHpqb0RkeXh6RldZaWpsazdCN2xEdjFaV05BbXVNODdHV3BnZzdEa2RiYk83U252Ly9nelVPOTQ5ODkzTFBudXVHKzBZTWpYUU5qSXowRGU0ZXk3c0doNFpHQndhR3hnZjdaK1o3K3VibGFmNjI3cDBjZks5QXFRZytndW1yYVRxcnBSMmthZ2h4STBQZERPWlRRMEYwemYxVFJXS2J1SGVIRWViWkh5K1pGeldOVGx5UlFzU2ZHRFpwQ2kwdFRYdUVSanVFSWswZnhwcndSaHlLYVlwS2ZzSmZ6ZE1VaFpuUVZOT01LVkxyUWVWbkpVcUpqajZXcm9mclVSeEtpQkN1MEh1TjBMVW1PVXJqbEpSWFR6OHd1TERVYWk0dURBOHZ6V1dOeGZ2TFMzUHpTL056c1luMTJabUhxd3N6Q3pLV3BtWW5UVXhObmowOWZQUFhNOU9uamZ6VXpNekV4cCtxNFowZHhjVlNQWXp5NE1xUGNoRjNKVStoNG9KY0J1bGZRSFBFZDdlaWozZVJTZmdtN3B3TnRERVdJMGpzT1dJNm5hZER3c2dvYVRTRE9PNVE4M3BrZUJ1SWNsc09XV0VwM1hBVTNMZ0dYZTFvaXhYbllZWnFQc1BkUDJtL2tkZVgxTVBIVXV3RndYRG51NVlEdUZUUkhmRmM0Rjg2dVlEWmhNdVdiY09wZG1WUFlTdUU5bmJKcE9LWGxZYW9takhOWURsdGlLZDF4Rld5UEJGb3BWaG5uY1dBNTdEaUhiZ1JTV0E2N0FTaVg4VGpRWFJwMjNJNkc2V0RlMFl5dXdsektQK0gxZktyb2FiaFZPYXAwdklkYlFYQ3BvMHpsT2lPQnRSVE0wMXJCRkVlNDdGM3B3YWRoajlNYThMaTBiTUFVaHNianV3Wit1d3pXdEIwZUJwYkRhK0hLZWVuRWN2NjBZejEvaWl1SE41S25YS2FLcjVRQVNyY1JsK2J6c0NzczVWdUZIZWN3elZmR2VSb1FSL3F1ZHQ5T0E1UzIwQ0hsTm5rY21JYnB1TlZ3cExrcmwzRTgwTk5TWEJwZUx6M05XNFZYbDhCNml0WXEzWEVPb2U3aGpjQnlIdWZPOFI3ZjFmRGJmWUNXMjVmR054S21jOU44YVdldmhrL3pWT0h0bFVBcjVVeHhhUmpPUE80d3hhV2NrMDUvcC9uUzlGMGIvazRaeE41NWE3VzNuTGFWTXJ0MklPeHl4dGRTek5YUzFzTDdXRmd0enk0WFY4RytON1RBZkdlRkxyZjlsMXYrTzB2YW5XdnQ1U3JxNVpidlhNczZUTGthd0JzVGNDV25qY2xwcCtYNmpsWHNuZFlSRlQrVkJDb0pWQktvSkZCSm9KSkFKWUZLQXBVRUtnbFVFcWdrVUVtZ2trQWxnVW9DbFFRcUNWUVNxQ1JRU2FDU1FDV0JTZ0tWQkNvSlZCS29KRkJKb0pKQUpZRktBcFVFS2dsVUVxZ2tVRW1na2tBbGdVb0NsUVFxQ1ZRU3FDUlFTYUNTUUNXQlNnS1ZCQ29KVkJLb0pGQkpvSkpBSllGS0FwVUVLZ2xVRXFna1VFbWdrc0RHSmZEL0FiUEhaeUY3ZWlnRkFBQUFBRWxGVGtTdVFtQ0MiPgo8c3R5bGU+KiwqOjpiZWZvcmUsKjo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94fWh0bWwsYm9keXttYXJnaW46MDtoZWlnaHQ6MTAwJTtvdmVyZmxvdzpoaWRkZW59PC9zdHlsZT4KPC9oZWFkPjxib2R5Pgo8ZGl2IGlkPSJyb290Ij48L2Rpdj4KPCEtLV9fU0lNX1BSRVZJRVdfQ09ORklHX18tLT4KPHNjcmlwdCB0eXBlPSJtb2R1bGUiPnZhciBjMCxCLGo0LG01LFAwLGI0LHY0LHk0LCQ0LG0wLFQwLHA0LEc0LHo0LFc0LGc0LGQwPXt9LGEwPVtdLGY1PS9hY2l0fGV4KD86c3xnfG58cHwkKXxycGh8Z3JpZHxvd3N8bW5jfG50d3xpbmVbY2hdfHpvb3xeb3JkfGl0ZXJhL2ksYjA9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiB6MChYLFope2Zvcih2YXIgSiBpbiBaKVhbSl09WltKXTtyZXR1cm4gWH1mdW5jdGlvbiBWNChYKXtYJiZYLnBhcmVudE5vZGUmJlgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChYKX1mdW5jdGlvbiBXMChYLFosSil7dmFyIFkscSxRLEs9e307Zm9yKFEgaW4gWilRPT0ia2V5Ij9ZPVpbUV06UT09InJlZiI/cT1aW1FdOktbUV09WltRXTtpZihhcmd1bWVudHMubGVuZ3RoPjImJihLLmNoaWxkcmVuPWFyZ3VtZW50cy5sZW5ndGg+Mz9jMC5jYWxsKGFyZ3VtZW50cywyKTpKKSx0eXBlb2YgWD09ImZ1bmN0aW9uIiYmWC5kZWZhdWx0UHJvcHMhPW51bGwpZm9yKFEgaW4gWC5kZWZhdWx0UHJvcHMpS1tRXT09PXZvaWQgMCYmKEtbUV09WC5kZWZhdWx0UHJvcHNbUV0pO3JldHVybiBmMChYLEssWSxxLG51bGwpfWZ1bmN0aW9uIGYwKFgsWixKLFkscSl7dmFyIFE9e3R5cGU6WCxwcm9wczpaLGtleTpKLHJlZjpZLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjpxPT1udWxsPysrajQ6cSxfX2k6LTEsX191OjB9O3JldHVybiBxPT1udWxsJiZCLnZub2RlIT1udWxsJiZCLnZub2RlKFEpLFF9ZnVuY3Rpb24gZihYKXtyZXR1cm4gWC5jaGlsZHJlbn1mdW5jdGlvbiBpKFgsWil7dGhpcy5wcm9wcz1YLHRoaXMuY29udGV4dD1afWZ1bmN0aW9uIEIwKFgsWil7aWYoWj09bnVsbClyZXR1cm4gWC5fXz9CMChYLl9fLFguX19pKzEpOm51bGw7Zm9yKHZhciBKO1o8WC5fX2subGVuZ3RoO1orKylpZigoSj1YLl9fa1taXSkhPW51bGwmJkouX19lIT1udWxsKXJldHVybiBKLl9fZTtyZXR1cm4gdHlwZW9mIFgudHlwZT09ImZ1bmN0aW9uIj9CMChYKTpudWxsfWZ1bmN0aW9uIGQ1KFgpe2lmKFguX19QJiZYLl9fZCl7dmFyIFo9WC5fX3YsSj1aLl9fZSxZPVtdLHE9W10sUT16MCh7fSxaKTtRLl9fdj1aLl9fdisxLEIudm5vZGUmJkIudm5vZGUoUSksSDQoWC5fX1AsUSxaLFguX19uLFguX19QLm5hbWVzcGFjZVVSSSwzMiZaLl9fdT9bSl06bnVsbCxZLEo9PW51bGw/QjAoWik6SiwhISgzMiZaLl9fdSkscSksUS5fX3Y9Wi5fX3YsUS5fXy5fX2tbUS5fX2ldPVEsZjQoWSxRLHEpLFouX19lPVouX189bnVsbCxRLl9fZSE9SiYmeDQoUSl9fWZ1bmN0aW9uIHg0KFgpe2lmKChYPVguX18pIT1udWxsJiZYLl9fYyE9bnVsbClyZXR1cm4gWC5fX2U9WC5fX2MuYmFzZT1udWxsLFguX19rLnNvbWUoZnVuY3Rpb24oWil7aWYoWiE9bnVsbCYmWi5fX2UhPW51bGwpcmV0dXJuIFguX19lPVguX19jLmJhc2U9Wi5fX2V9KSx4NChYKX1mdW5jdGlvbiBMNChYKXsoIVguX19kJiYoWC5fX2Q9ITApJiZQMC5wdXNoKFgpJiYhbDAuX19yKyt8fGI0IT1CLmRlYm91bmNlUmVuZGVyaW5nKSYmKChiND1CLmRlYm91bmNlUmVuZGVyaW5nKXx8djQpKGwwKX1mdW5jdGlvbiBsMCgpe3RyeXtmb3IodmFyIFgsWj0xO1AwLmxlbmd0aDspUDAubGVuZ3RoPlomJlAwLnNvcnQoeTQpLFg9UDAuc2hpZnQoKSxaPVAwLmxlbmd0aCxkNShYKX1maW5hbGx5e1AwLmxlbmd0aD1sMC5fX3I9MH19ZnVuY3Rpb24gaDQoWCxaLEosWSxxLFEsSyxXLEcseixPKXt2YXIgJCxfLEEsTSxVLGssSSxDPVkmJlkuX19rfHxhMCxoPVoubGVuZ3RoO2ZvcihHPWE1KEosWixDLEcsaCksJD0wOyQ8aDskKyspKEE9Si5fX2tbJF0pIT1udWxsJiYoXz1BLl9faSE9LTEmJkNbQS5fX2ldfHxkMCxBLl9faT0kLGs9SDQoWCxBLF8scSxRLEssVyxHLHosTyksTT1BLl9fZSxBLnJlZiYmXy5yZWYhPUEucmVmJiYoXy5yZWYmJlA0KF8ucmVmLG51bGwsQSksTy5wdXNoKEEucmVmLEEuX19jfHxNLEEpKSxVPT1udWxsJiZNIT1udWxsJiYoVT1NKSwoST0hISg0JkEuX191KSl8fF8uX19rPT09QS5fX2s/KEc9bTQoQSxHLFgsSSksSSYmXy5fX2UmJihfLl9fZT1udWxsKSk6dHlwZW9mIEEudHlwZT09ImZ1bmN0aW9uIiYmayE9PXZvaWQgMD9HPWs6TSYmKEc9TS5uZXh0U2libGluZyksQS5fX3UmPS03KTtyZXR1cm4gSi5fX2U9VSxHfWZ1bmN0aW9uIGE1KFgsWixKLFkscSl7dmFyIFEsSyxXLEcseixPPUoubGVuZ3RoLCQ9TyxfPTA7Zm9yKFguX19rPUFycmF5KHEpLFE9MDtRPHE7USsrKShLPVpbUV0pIT1udWxsJiZ0eXBlb2YgSyE9ImJvb2xlYW4iJiZ0eXBlb2YgSyE9ImZ1bmN0aW9uIj8odHlwZW9mIEs9PSJzdHJpbmcifHx0eXBlb2YgSz09Im51bWJlciJ8fHR5cGVvZiBLPT0iYmlnaW50Inx8Sy5jb25zdHJ1Y3Rvcj09U3RyaW5nP0s9WC5fX2tbUV09ZjAobnVsbCxLLG51bGwsbnVsbCxudWxsKTpiMChLKT9LPVguX19rW1FdPWYwKGYse2NoaWxkcmVuOkt9LG51bGwsbnVsbCxudWxsKTpLLmNvbnN0cnVjdG9yPT09dm9pZCAwJiZLLl9fYj4wP0s9WC5fX2tbUV09ZjAoSy50eXBlLEsucHJvcHMsSy5rZXksSy5yZWY/Sy5yZWY6bnVsbCxLLl9fdik6WC5fX2tbUV09SyxHPVErXyxLLl9fPVgsSy5fX2I9WC5fX2IrMSxXPW51bGwsKHo9Sy5fX2k9bDUoSyxKLEcsJCkpIT0tMSYmKCQtLSwoVz1KW3pdKSYmKFcuX191fD0yKSksVz09bnVsbHx8Vy5fX3Y9PW51bGw/KHo9PS0xJiYocT5PP18tLTpxPE8mJl8rKyksdHlwZW9mIEsudHlwZSE9ImZ1bmN0aW9uIiYmKEsuX191fD00KSk6eiE9RyYmKHo9PUctMT9fLS06ej09RysxP18rKzooej5HP18tLTpfKyssSy5fX3V8PTQpKSk6WC5fX2tbUV09bnVsbDtpZigkKWZvcihRPTA7UTxPO1ErKykoVz1KW1FdKSE9bnVsbCYmKDImVy5fX3UpPT0wJiYoVy5fX2U9PVkmJihZPUIwKFcpKSxhNChXLFcpKTtyZXR1cm4gWX1mdW5jdGlvbiBtNChYLFosSixZKXt2YXIgcSxRO2lmKHR5cGVvZiBYLnR5cGU9PSJmdW5jdGlvbiIpe2ZvcihxPVguX19rLFE9MDtxJiZRPHEubGVuZ3RoO1ErKylxW1FdJiYocVtRXS5fXz1YLFo9bTQocVtRXSxaLEosWSkpO3JldHVybiBafVguX19lIT1aJiYoWSYmKFomJlgudHlwZSYmIVoucGFyZW50Tm9kZSYmKFo9QjAoWCkpLEouaW5zZXJ0QmVmb3JlKFguX19lLFp8fG51bGwpKSxaPVguX19lKTtkbyBaPVomJloubmV4dFNpYmxpbmc7d2hpbGUoWiE9bnVsbCYmWi5ub2RlVHlwZT09OCk7cmV0dXJuIFp9ZnVuY3Rpb24gTDAoWCxaKXtyZXR1cm4gWj1afHxbXSxYPT1udWxsfHx0eXBlb2YgWD09ImJvb2xlYW4ifHwoYjAoWCk/WC5zb21lKGZ1bmN0aW9uKEope0wwKEosWil9KTpaLnB1c2goWCkpLFp9ZnVuY3Rpb24gbDUoWCxaLEosWSl7dmFyIHEsUSxLLFc9WC5rZXksRz1YLnR5cGUsej1aW0pdLE89eiE9bnVsbCYmKDImei5fX3UpPT0wO2lmKHo9PT1udWxsJiZXPT1udWxsfHxPJiZXPT16LmtleSYmRz09ei50eXBlKXJldHVybiBKO2lmKFk+KE8/MTowKSl7Zm9yKHE9Si0xLFE9SisxO3E+PTB8fFE8Wi5sZW5ndGg7KWlmKCh6PVpbSz1xPj0wP3EtLTpRKytdKSE9bnVsbCYmKDImei5fX3UpPT0wJiZXPT16LmtleSYmRz09ei50eXBlKXJldHVybiBLfXJldHVybi0xfWZ1bmN0aW9uIFM0KFgsWixKKXtaWzBdPT0iLSI/WC5zZXRQcm9wZXJ0eShaLEo9PW51bGw/IiI6Sik6WFtaXT1KPT1udWxsPyIiOnR5cGVvZiBKIT0ibnVtYmVyInx8ZjUudGVzdChaKT9KOkorInB4In1mdW5jdGlvbiBoMChYLFosSixZLHEpe3ZhciBRLEs7WDppZihaPT0ic3R5bGUiKWlmKHR5cGVvZiBKPT0ic3RyaW5nIilYLnN0eWxlLmNzc1RleHQ9SjtlbHNle2lmKHR5cGVvZiBZPT0ic3RyaW5nIiYmKFguc3R5bGUuY3NzVGV4dD1ZPSIiKSxZKWZvcihaIGluIFkpSiYmWiBpbiBKfHxTNChYLnN0eWxlLFosIiIpO2lmKEopZm9yKFogaW4gSilZJiZKW1pdPT1ZW1pdfHxTNChYLnN0eWxlLFosSltaXSl9ZWxzZSBpZihaWzBdPT0ibyImJlpbMV09PSJuIilRPVohPShaPVoucmVwbGFjZShwNCwiJDEiKSksSz1aLnRvTG93ZXJDYXNlKCksWj1LIGluIFh8fFo9PSJvbkZvY3VzT3V0Inx8Wj09Im9uRm9jdXNJbiI/Sy5zbGljZSgyKTpaLnNsaWNlKDIpLFgubHx8KFgubD17fSksWC5sW1orUV09SixKP1k/SltUMF09WVtUMF06KEpbVDBdPUc0LFguYWRkRXZlbnRMaXN0ZW5lcihaLFE/VzQ6ejQsUSkpOlgucmVtb3ZlRXZlbnRMaXN0ZW5lcihaLFE/VzQ6ejQsUSk7ZWxzZXtpZihxPT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciKVo9Wi5yZXBsYWNlKC94bGluayhIfDpoKS8sImgiKS5yZXBsYWNlKC9zTmFtZSQvLCJzIik7ZWxzZSBpZihaIT0id2lkdGgiJiZaIT0iaGVpZ2h0IiYmWiE9ImhyZWYiJiZaIT0ibGlzdCImJlohPSJmb3JtIiYmWiE9InRhYkluZGV4IiYmWiE9ImRvd25sb2FkIiYmWiE9InJvd1NwYW4iJiZaIT0iY29sU3BhbiImJlohPSJyb2xlIiYmWiE9InBvcG92ZXIiJiZaIGluIFgpdHJ5e1hbWl09Sj09bnVsbD8iIjpKO2JyZWFrIFh9Y2F0Y2goVyl7fXR5cGVvZiBKPT0iZnVuY3Rpb24ifHwoSj09bnVsbHx8Sj09PSExJiZaWzRdIT0iLSI/WC5yZW1vdmVBdHRyaWJ1dGUoWik6WC5zZXRBdHRyaWJ1dGUoWixaPT0icG9wb3ZlciImJko9PTE/IiI6SikpfX1mdW5jdGlvbiBSNChYKXtyZXR1cm4gZnVuY3Rpb24oWil7aWYodGhpcy5sKXt2YXIgSj10aGlzLmxbWi50eXBlK1hdO2lmKFpbbTBdPT1udWxsKVpbbTBdPUc0Kys7ZWxzZSBpZihaW20wXTxKW1QwXSlyZXR1cm47cmV0dXJuIEooQi5ldmVudD9CLmV2ZW50KFopOlopfX19ZnVuY3Rpb24gSDQoWCxaLEosWSxxLFEsSyxXLEcseil7dmFyIE8sJCxfLEEsTSxVLGssSSxDLGgsRSxlLFowLHgsSzAscz1aLnR5cGU7aWYoWi5jb25zdHJ1Y3RvciE9PXZvaWQgMClyZXR1cm4gbnVsbDsxMjgmSi5fX3UmJihHPSEhKDMyJkouX191KSxRPVtXPVouX19lPUouX19lXSksKE89Qi5fX2IpJiZPKFopO1g6aWYodHlwZW9mIHM9PSJmdW5jdGlvbiIpdHJ5e2lmKEk9Wi5wcm9wcyxDPXMucHJvdG90eXBlJiZzLnByb3RvdHlwZS5yZW5kZXIsaD0oTz1zLmNvbnRleHRUeXBlKSYmWVtPLl9fY10sRT1PP2g/aC5wcm9wcy52YWx1ZTpPLl9fOlksSi5fX2M/az0oJD1aLl9fYz1KLl9fYykuX189JC5fX0U6KEM/Wi5fX2M9JD1uZXcgcyhJLEUpOihaLl9fYz0kPW5ldyBpKEksRSksJC5jb25zdHJ1Y3Rvcj1zLCQucmVuZGVyPWk1KSxoJiZoLnN1YigkKSwkLnN0YXRlfHwoJC5zdGF0ZT17fSksJC5fX249WSxfPSQuX19kPSEwLCQuX19oPVtdLCQuX3NiPVtdKSxDJiYkLl9fcz09bnVsbCYmKCQuX19zPSQuc3RhdGUpLEMmJnMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIT1udWxsJiYoJC5fX3M9PSQuc3RhdGUmJigkLl9fcz16MCh7fSwkLl9fcykpLHowKCQuX19zLHMuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKEksJC5fX3MpKSksQT0kLnByb3BzLE09JC5zdGF0ZSwkLl9fdj1aLF8pQyYmcy5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM9PW51bGwmJiQuY29tcG9uZW50V2lsbE1vdW50IT1udWxsJiYkLmNvbXBvbmVudFdpbGxNb3VudCgpLEMmJiQuY29tcG9uZW50RGlkTW91bnQhPW51bGwmJiQuX19oLnB1c2goJC5jb21wb25lbnREaWRNb3VudCk7ZWxzZXtpZihDJiZzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcz09bnVsbCYmSSE9PUEmJiQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyE9bnVsbCYmJC5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKEksRSksWi5fX3Y9PUouX192fHwhJC5fX2UmJiQuc2hvdWxkQ29tcG9uZW50VXBkYXRlIT1udWxsJiYkLnNob3VsZENvbXBvbmVudFVwZGF0ZShJLCQuX19zLEUpPT09ITEpe1ouX192IT1KLl9fdiYmKCQucHJvcHM9SSwkLnN0YXRlPSQuX19zLCQuX19kPSExKSxaLl9fZT1KLl9fZSxaLl9faz1KLl9fayxaLl9fay5zb21lKGZ1bmN0aW9uKHIpe3ImJihyLl9fPVopfSksYTAucHVzaC5hcHBseSgkLl9faCwkLl9zYiksJC5fc2I9W10sJC5fX2gubGVuZ3RoJiZLLnB1c2goJCk7YnJlYWsgWH0kLmNvbXBvbmVudFdpbGxVcGRhdGUhPW51bGwmJiQuY29tcG9uZW50V2lsbFVwZGF0ZShJLCQuX19zLEUpLEMmJiQuY29tcG9uZW50RGlkVXBkYXRlIT1udWxsJiYkLl9faC5wdXNoKGZ1bmN0aW9uKCl7JC5jb21wb25lbnREaWRVcGRhdGUoQSxNLFUpfSl9aWYoJC5jb250ZXh0PUUsJC5wcm9wcz1JLCQuX19QPVgsJC5fX2U9ITEsZT1CLl9fcixaMD0wLEMpJC5zdGF0ZT0kLl9fcywkLl9fZD0hMSxlJiZlKFopLE89JC5yZW5kZXIoJC5wcm9wcywkLnN0YXRlLCQuY29udGV4dCksYTAucHVzaC5hcHBseSgkLl9faCwkLl9zYiksJC5fc2I9W107ZWxzZSBkbyAkLl9fZD0hMSxlJiZlKFopLE89JC5yZW5kZXIoJC5wcm9wcywkLnN0YXRlLCQuY29udGV4dCksJC5zdGF0ZT0kLl9fczt3aGlsZSgkLl9fZCYmKytaMDwyNSk7JC5zdGF0ZT0kLl9fcywkLmdldENoaWxkQ29udGV4dCE9bnVsbCYmKFk9ejAoejAoe30sWSksJC5nZXRDaGlsZENvbnRleHQoKSkpLEMmJiFfJiYkLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIT1udWxsJiYoVT0kLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKEEsTSkpLHg9TyE9bnVsbCYmTy50eXBlPT09ZiYmTy5rZXk9PW51bGw/ZDQoTy5wcm9wcy5jaGlsZHJlbik6TyxXPWg0KFgsYjAoeCk/eDpbeF0sWixKLFkscSxRLEssVyxHLHopLCQuYmFzZT1aLl9fZSxaLl9fdSY9LTE2MSwkLl9faC5sZW5ndGgmJksucHVzaCgkKSxrJiYoJC5fX0U9JC5fXz1udWxsKX1jYXRjaChyKXtpZihaLl9fdj1udWxsLEd8fFEhPW51bGwpaWYoci50aGVuKXtmb3IoWi5fX3V8PUc/MTYwOjEyODtXJiZXLm5vZGVUeXBlPT04JiZXLm5leHRTaWJsaW5nOylXPVcubmV4dFNpYmxpbmc7UVtRLmluZGV4T2YoVyldPW51bGwsWi5fX2U9V31lbHNle2ZvcihLMD1RLmxlbmd0aDtLMC0tOylWNChRW0swXSk7TjQoWil9ZWxzZSBaLl9fZT1KLl9fZSxaLl9faz1KLl9fayxyLnRoZW58fE40KFopO0IuX19lKHIsWixKKX1lbHNlIFE9PW51bGwmJlouX192PT1KLl9fdj8oWi5fX2s9Si5fX2ssWi5fX2U9Si5fX2UpOlc9Wi5fX2U9YzUoSi5fX2UsWixKLFkscSxRLEssRyx6KTtyZXR1cm4oTz1CLmRpZmZlZCkmJk8oWiksMTI4JlouX191P3ZvaWQgMDpXfWZ1bmN0aW9uIE40KFgpe1gmJihYLl9fYyYmKFguX19jLl9fZT0hMCksWC5fX2smJlguX19rLnNvbWUoTjQpKX1mdW5jdGlvbiBmNChYLFosSil7Zm9yKHZhciBZPTA7WTxKLmxlbmd0aDtZKyspUDQoSltZXSxKWysrWV0sSlsrK1ldKTtCLl9fYyYmQi5fX2MoWixYKSxYLnNvbWUoZnVuY3Rpb24ocSl7dHJ5e1g9cS5fX2gscS5fX2g9W10sWC5zb21lKGZ1bmN0aW9uKFEpe1EuY2FsbChxKX0pfWNhdGNoKFEpe0IuX19lKFEscS5fX3YpfX0pfWZ1bmN0aW9uIGQ0KFgpe3JldHVybiB0eXBlb2YgWCE9Im9iamVjdCJ8fFg9PW51bGx8fFguX19iPjA/WDpiMChYKT9YLm1hcChkNCk6ejAoe30sWCl9ZnVuY3Rpb24gYzUoWCxaLEosWSxxLFEsSyxXLEcpe3ZhciB6LE8sJCxfLEEsTSxVLGs9Si5wcm9wc3x8ZDAsST1aLnByb3BzLEM9Wi50eXBlO2lmKEM9PSJzdmciP3E9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjpDPT0ibWF0aCI/cT0iaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCI6cXx8KHE9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiKSxRIT1udWxsKXtmb3Ioej0wO3o8US5sZW5ndGg7eisrKWlmKChBPVFbel0pJiYic2V0QXR0cmlidXRlImluIEE9PSEhQyYmKEM/QS5sb2NhbE5hbWU9PUM6QS5ub2RlVHlwZT09Mykpe1g9QSxRW3pdPW51bGw7YnJlYWt9fWlmKFg9PW51bGwpe2lmKEM9PW51bGwpcmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEkpO1g9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHEsQyxJLmlzJiZJKSxXJiYoQi5fX20mJkIuX19tKFosUSksVz0hMSksUT1udWxsfWlmKEM9PW51bGwpaz09PUl8fFcmJlguZGF0YT09SXx8KFguZGF0YT1JKTtlbHNle2lmKFE9USYmYzAuY2FsbChYLmNoaWxkTm9kZXMpLCFXJiZRIT1udWxsKWZvcihrPXt9LHo9MDt6PFguYXR0cmlidXRlcy5sZW5ndGg7eisrKWtbKEE9WC5hdHRyaWJ1dGVzW3pdKS5uYW1lXT1BLnZhbHVlO2Zvcih6IGluIGspQT1rW3pdLHo9PSJkYW5nZXJvdXNseVNldElubmVySFRNTCI/JD1BOno9PSJjaGlsZHJlbiJ8fCh6IGluIEkpfHx6PT0idmFsdWUiJiYoImRlZmF1bHRWYWx1ZSJpbiBJKXx8ej09ImNoZWNrZWQiJiYoImRlZmF1bHRDaGVja2VkImluIEkpfHxoMChYLHosbnVsbCxBLHEpO2Zvcih6IGluIEkpQT1JW3pdLHo9PSJjaGlsZHJlbiI/Xz1BOno9PSJkYW5nZXJvdXNseVNldElubmVySFRNTCI/Tz1BOno9PSJ2YWx1ZSI/TT1BOno9PSJjaGVja2VkIj9VPUE6VyYmdHlwZW9mIEEhPSJmdW5jdGlvbiJ8fGtbel09PT1BfHxoMChYLHosQSxrW3pdLHEpO2lmKE8pV3x8JCYmKE8uX19odG1sPT0kLl9faHRtbHx8Ty5fX2h0bWw9PVguaW5uZXJIVE1MKXx8KFguaW5uZXJIVE1MPU8uX19odG1sKSxaLl9faz1bXTtlbHNlIGlmKCQmJihYLmlubmVySFRNTD0iIiksaDQoWi50eXBlPT0idGVtcGxhdGUiP1guY29udGVudDpYLGIwKF8pP186W19dLFosSixZLEM9PSJmb3JlaWduT2JqZWN0Ij8iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI6cSxRLEssUT9RWzBdOkouX19rJiZCMChKLDApLFcsRyksUSE9bnVsbClmb3Ioej1RLmxlbmd0aDt6LS07KVY0KFFbel0pO1d8fCh6PSJ2YWx1ZSIsQz09InByb2dyZXNzIiYmTT09bnVsbD9YLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKTpNIT1udWxsJiYoTSE9PVhbel18fEM9PSJwcm9ncmVzcyImJiFNfHxDPT0ib3B0aW9uIiYmTSE9a1t6XSkmJmgwKFgseixNLGtbel0scSksej0iY2hlY2tlZCIsVSE9bnVsbCYmVSE9WFt6XSYmaDAoWCx6LFUsa1t6XSxxKSl9cmV0dXJuIFh9ZnVuY3Rpb24gUDQoWCxaLEope3RyeXtpZih0eXBlb2YgWD09ImZ1bmN0aW9uIil7dmFyIFk9dHlwZW9mIFguX191PT0iZnVuY3Rpb24iO1kmJlguX191KCksWSYmWj09bnVsbHx8KFguX191PVgoWikpfWVsc2UgWC5jdXJyZW50PVp9Y2F0Y2gocSl7Qi5fX2UocSxKKX19ZnVuY3Rpb24gYTQoWCxaLEope3ZhciBZLHE7aWYoQi51bm1vdW50JiZCLnVubW91bnQoWCksKFk9WC5yZWYpJiYoWS5jdXJyZW50JiZZLmN1cnJlbnQhPVguX19lfHxQNChZLG51bGwsWikpLChZPVguX19jKSE9bnVsbCl7aWYoWS5jb21wb25lbnRXaWxsVW5tb3VudCl0cnl7WS5jb21wb25lbnRXaWxsVW5tb3VudCgpfWNhdGNoKFEpe0IuX19lKFEsWil9WS5iYXNlPVkuX19QPW51bGx9aWYoWT1YLl9faylmb3IocT0wO3E8WS5sZW5ndGg7cSsrKVlbcV0mJmE0KFlbcV0sWixKfHx0eXBlb2YgWC50eXBlIT0iZnVuY3Rpb24iKTtKfHxWNChYLl9fZSksWC5fX2M9WC5fXz1YLl9fZT12b2lkIDB9ZnVuY3Rpb24gaTUoWCxaLEope3JldHVybiB0aGlzLmNvbnN0cnVjdG9yKFgsSil9ZnVuY3Rpb24gaTAoWCxaLEope3ZhciBZLHEsUSxLO1o9PWRvY3VtZW50JiYoWj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLEIuX18mJkIuX18oWCxaKSxxPShZPXR5cGVvZiBKPT0iZnVuY3Rpb24iKT9udWxsOkomJkouX19rfHxaLl9fayxRPVtdLEs9W10sSDQoWixYPSghWSYmSnx8WikuX19rPVcwKGYsbnVsbCxbWF0pLHF8fGQwLGQwLFoubmFtZXNwYWNlVVJJLCFZJiZKP1tKXTpxP251bGw6Wi5maXJzdENoaWxkP2MwLmNhbGwoWi5jaGlsZE5vZGVzKTpudWxsLFEsIVkmJko/SjpxP3EuX19lOlouZmlyc3RDaGlsZCxZLEspLGY0KFEsWCxLKX1mdW5jdGlvbiBfMChYKXtmdW5jdGlvbiBaKEope3ZhciBZLHE7cmV0dXJuIHRoaXMuZ2V0Q2hpbGRDb250ZXh0fHwoWT1uZXcgU2V0LChxPXt9KVtaLl9fY109dGhpcyx0aGlzLmdldENoaWxkQ29udGV4dD1mdW5jdGlvbigpe3JldHVybiBxfSx0aGlzLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7WT1udWxsfSx0aGlzLnNob3VsZENvbXBvbmVudFVwZGF0ZT1mdW5jdGlvbihRKXt0aGlzLnByb3BzLnZhbHVlIT1RLnZhbHVlJiZZLmZvckVhY2goZnVuY3Rpb24oSyl7Sy5fX2U9ITAsTDQoSyl9KX0sdGhpcy5zdWI9ZnVuY3Rpb24oUSl7WS5hZGQoUSk7dmFyIEs9US5jb21wb25lbnRXaWxsVW5tb3VudDtRLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7WSYmWS5kZWxldGUoUSksSyYmSy5jYWxsKFEpfX0pLEouY2hpbGRyZW59cmV0dXJuIFouX19jPSJfX2NDIitnNCsrLFouX189WCxaLlByb3ZpZGVyPVouX19sPShaLkNvbnN1bWVyPWZ1bmN0aW9uKEosWSl7cmV0dXJuIEouY2hpbGRyZW4oWSl9KS5jb250ZXh0VHlwZT1aLFp9YzA9YTAuc2xpY2UsQj17X19lOmZ1bmN0aW9uKFgsWixKLFkpe2Zvcih2YXIgcSxRLEs7Wj1aLl9fOylpZigocT1aLl9fYykmJiFxLl9fKXRyeXtpZigoUT1xLmNvbnN0cnVjdG9yKSYmUS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IhPW51bGwmJihxLnNldFN0YXRlKFEuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKFgpKSxLPXEuX19kKSxxLmNvbXBvbmVudERpZENhdGNoIT1udWxsJiYocS5jb21wb25lbnREaWRDYXRjaChYLFl8fHt9KSxLPXEuX19kKSxLKXJldHVybiBxLl9fRT1xfWNhdGNoKFcpe1g9V310aHJvdyBYfX0sajQ9MCxtNT1mdW5jdGlvbihYKXtyZXR1cm4gWCE9bnVsbCYmWC5jb25zdHJ1Y3Rvcj09PXZvaWQgMH0saS5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oWCxaKXt2YXIgSjtKPXRoaXMuX19zIT1udWxsJiZ0aGlzLl9fcyE9dGhpcy5zdGF0ZT90aGlzLl9fczp0aGlzLl9fcz16MCh7fSx0aGlzLnN0YXRlKSx0eXBlb2YgWD09ImZ1bmN0aW9uIiYmKFg9WCh6MCh7fSxKKSx0aGlzLnByb3BzKSksWCYmejAoSixYKSxYIT1udWxsJiZ0aGlzLl9fdiYmKFomJnRoaXMuX3NiLnB1c2goWiksTDQodGhpcykpfSxpLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihYKXt0aGlzLl9fdiYmKHRoaXMuX19lPSEwLFgmJnRoaXMuX19oLnB1c2goWCksTDQodGhpcykpfSxpLnByb3RvdHlwZS5yZW5kZXI9ZixQMD1bXSx2ND10eXBlb2YgUHJvbWlzZT09ImZ1bmN0aW9uIj9Qcm9taXNlLnByb3RvdHlwZS50aGVuLmJpbmQoUHJvbWlzZS5yZXNvbHZlKCkpOnNldFRpbWVvdXQseTQ9ZnVuY3Rpb24oWCxaKXtyZXR1cm4gWC5fX3YuX19iLVouX192Ll9fYn0sbDAuX19yPTAsJDQ9TWF0aC5yYW5kb20oKS50b1N0cmluZyg4KSxtMD0iX19kIiskNCxUMD0iX19hIiskNCxwND0vKFBvaW50ZXJDYXB0dXJlKSR8Q2FwdHVyZSQvaSxHND0wLHo0PVI0KCExKSxXND1SNCghMCksZzQ9MDt2YXIgRjAscCxPNCxsNCxTMD0wLG40PVtdLGQ9QixjND1kLl9fYixpND1kLl9fcix1ND1kLmRpZmZlZCxvND1kLl9fYyxzND1kLnVubW91bnQscjQ9ZC5fXztmdW5jdGlvbiBvMChYLFope2QuX19oJiZkLl9faChwLFgsUzB8fFopLFMwPTA7dmFyIEo9cC5fX0h8fChwLl9fSD17X186W10sX19oOltdfSk7cmV0dXJuIFg+PUouX18ubGVuZ3RoJiZKLl9fLnB1c2goe30pLEouX19bWF19ZnVuY3Rpb24gUyhYKXtyZXR1cm4gUzA9MSxBNChYNSxYKX1mdW5jdGlvbiBBNChYLFosSil7dmFyIFk9bzAoRjArKywyKTtpZihZLnQ9WCwhWS5fX2MmJihZLl9fPVtKP0ooWik6WDUodm9pZCAwLFopLGZ1bmN0aW9uKFcpe3ZhciBHPVkuX19OP1kuX19OWzBdOlkuX19bMF0sej1ZLnQoRyxXKTtHIT09eiYmKFkuX19OPVt6LFkuX19bMV1dLFkuX19jLnNldFN0YXRlKHt9KSl9XSxZLl9fYz1wLCFwLl9fZikpe3ZhciBxPWZ1bmN0aW9uKFcsRyx6KXtpZighWS5fX2MuX19IKXJldHVybiEwO3ZhciBPPVkuX19jLl9fSC5fXy5maWx0ZXIoZnVuY3Rpb24oXyl7cmV0dXJuIF8uX19jfSk7aWYoTy5ldmVyeShmdW5jdGlvbihfKXtyZXR1cm4hXy5fX059KSlyZXR1cm4hUXx8US5jYWxsKHRoaXMsVyxHLHopO3ZhciAkPVkuX19jLnByb3BzIT09VztyZXR1cm4gTy5zb21lKGZ1bmN0aW9uKF8pe2lmKF8uX19OKXt2YXIgQT1fLl9fWzBdO18uX189Xy5fX04sXy5fX049dm9pZCAwLEEhPT1fLl9fWzBdJiYoJD0hMCl9fSksUSYmUS5jYWxsKHRoaXMsVyxHLHopfHwkfTtwLl9fZj0hMDt2YXJ7c2hvdWxkQ29tcG9uZW50VXBkYXRlOlEsY29tcG9uZW50V2lsbFVwZGF0ZTpLfT1wO3AuY29tcG9uZW50V2lsbFVwZGF0ZT1mdW5jdGlvbihXLEcseil7aWYodGhpcy5fX2Upe3ZhciBPPVE7UT12b2lkIDAscShXLEcseiksUT1PfUsmJksuY2FsbCh0aGlzLFcsRyx6KX0scC5zaG91bGRDb21wb25lbnRVcGRhdGU9cX1yZXR1cm4gWS5fX058fFkuX199ZnVuY3Rpb24gZyhYLFope3ZhciBKPW8wKEYwKyssMyk7IWQuX19zJiZlNChKLl9fSCxaKSYmKEouX189WCxKLnU9WixwLl9fSC5fX2gucHVzaChKKSl9ZnVuY3Rpb24gdyhYKXtyZXR1cm4gUzA9NSxzMChmdW5jdGlvbigpe3JldHVybntjdXJyZW50Olh9fSxbXSl9ZnVuY3Rpb24gczAoWCxaKXt2YXIgSj1vMChGMCsrLDcpO3JldHVybiBlNChKLl9fSCxaKSYmKEouX189WCgpLEouX19IPVosSi5fX2g9WCksSi5fX31mdW5jdGlvbiBqKFgsWil7cmV0dXJuIFMwPTgsczAoZnVuY3Rpb24oKXtyZXR1cm4gWH0sWil9ZnVuY3Rpb24gUjAoWCl7dmFyIFo9cC5jb250ZXh0W1guX19jXSxKPW8wKEYwKyssOSk7cmV0dXJuIEouYz1YLFo/KEouX189PW51bGwmJihKLl9fPSEwLFouc3ViKHApKSxaLnByb3BzLnZhbHVlKTpYLl9ffWZ1bmN0aW9uIHU1KCl7Zm9yKHZhciBYO1g9bjQuc2hpZnQoKTspe3ZhciBaPVguX19IO2lmKFguX19QJiZaKXRyeXtaLl9faC5zb21lKHUwKSxaLl9faC5zb21lKFU0KSxaLl9faD1bXX1jYXRjaChKKXtaLl9faD1bXSxkLl9fZShKLFguX192KX19fWQuX19iPWZ1bmN0aW9uKFgpe3A9bnVsbCxjNCYmYzQoWCl9LGQuX189ZnVuY3Rpb24oWCxaKXtYJiZaLl9fayYmWi5fX2suX19tJiYoWC5fX209Wi5fX2suX19tKSxyNCYmcjQoWCxaKX0sZC5fX3I9ZnVuY3Rpb24oWCl7aTQmJmk0KFgpLEYwPTA7dmFyIFo9KHA9WC5fX2MpLl9fSDtaJiYoTzQ9PT1wPyhaLl9faD1bXSxwLl9faD1bXSxaLl9fLnNvbWUoZnVuY3Rpb24oSil7Si5fX04mJihKLl9fPUouX19OKSxKLnU9Si5fX049dm9pZCAwfSkpOihaLl9faC5zb21lKHUwKSxaLl9faC5zb21lKFU0KSxaLl9faD1bXSxGMD0wKSksTzQ9cH0sZC5kaWZmZWQ9ZnVuY3Rpb24oWCl7dTQmJnU0KFgpO3ZhciBaPVguX19jO1omJlouX19IJiYoWi5fX0guX19oLmxlbmd0aCYmKG40LnB1c2goWikhPT0xJiZsND09PWQucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHwoKGw0PWQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKXx8bzUpKHU1KSksWi5fX0guX18uc29tZShmdW5jdGlvbihKKXtKLnUmJihKLl9fSD1KLnUpLEoudT12b2lkIDB9KSksTzQ9cD1udWxsfSxkLl9fYz1mdW5jdGlvbihYLFope1ouc29tZShmdW5jdGlvbihKKXt0cnl7Si5fX2guc29tZSh1MCksSi5fX2g9Si5fX2guZmlsdGVyKGZ1bmN0aW9uKFkpe3JldHVybiFZLl9ffHxVNChZKX0pfWNhdGNoKFkpe1ouc29tZShmdW5jdGlvbihxKXtxLl9faCYmKHEuX19oPVtdKX0pLFo9W10sZC5fX2UoWSxKLl9fdil9fSksbzQmJm80KFgsWil9LGQudW5tb3VudD1mdW5jdGlvbihYKXtzNCYmczQoWCk7dmFyIFosSj1YLl9fYztKJiZKLl9fSCYmKEouX19ILl9fLnNvbWUoZnVuY3Rpb24oWSl7dHJ5e3UwKFkpfWNhdGNoKHEpe1o9cX19KSxKLl9fSD12b2lkIDAsWiYmZC5fX2UoWixKLl9fdikpfTt2YXIgdDQ9dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIjtmdW5jdGlvbiBvNShYKXt2YXIgWixKPWZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KFkpLHQ0JiZjYW5jZWxBbmltYXRpb25GcmFtZShaKSxzZXRUaW1lb3V0KFgpfSxZPXNldFRpbWVvdXQoSiwzNSk7dDQmJihaPXJlcXVlc3RBbmltYXRpb25GcmFtZShKKSl9ZnVuY3Rpb24gdTAoWCl7dmFyIFo9cCxKPVguX19jO3R5cGVvZiBKPT0iZnVuY3Rpb24iJiYoWC5fX2M9dm9pZCAwLEooKSkscD1afWZ1bmN0aW9uIFU0KFgpe3ZhciBaPXA7WC5fX2M9WC5fXygpLHA9Wn1mdW5jdGlvbiBlNChYLFope3JldHVybiFYfHxYLmxlbmd0aCE9PVoubGVuZ3RofHxaLnNvbWUoZnVuY3Rpb24oSixZKXtyZXR1cm4gSiE9PVhbWV19KX1mdW5jdGlvbiBYNShYLFope3JldHVybiB0eXBlb2YgWj09ImZ1bmN0aW9uIj9aKFgpOlp9ZnVuY3Rpb24gWjYoWCxaKXtmb3IodmFyIEogaW4gWilYW0pdPVpbSl07cmV0dXJuIFh9ZnVuY3Rpb24gWjUoWCxaKXtmb3IodmFyIEogaW4gWClpZihKIT09Il9fc291cmNlIiYmIShKIGluIFopKXJldHVybiEwO2Zvcih2YXIgWSBpbiBaKWlmKFkhPT0iX19zb3VyY2UiJiZYW1ldIT09WltZXSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBKNShYLFope3RoaXMucHJvcHM9WCx0aGlzLmNvbnRleHQ9Wn0oSjUucHJvdG90eXBlPW5ldyBpKS5pc1B1cmVSZWFjdENvbXBvbmVudD0hMCxKNS5wcm90b3R5cGUuc2hvdWxkQ29tcG9uZW50VXBkYXRlPWZ1bmN0aW9uKFgsWil7cmV0dXJuIFo1KHRoaXMucHJvcHMsWCl8fFo1KHRoaXMuc3RhdGUsWil9O3ZhciBZNT1CLl9fYjtCLl9fYj1mdW5jdGlvbihYKXtYLnR5cGUmJlgudHlwZS5fX2YmJlgucmVmJiYoWC5wcm9wcy5yZWY9WC5yZWYsWC5yZWY9bnVsbCksWTUmJlk1KFgpfTt2YXIgSjY9Qi5fX2U7Qi5fX2U9ZnVuY3Rpb24oWCxaLEosWSl7aWYoWC50aGVuKXtmb3IodmFyIHEsUT1aO1E9US5fXzspaWYoKHE9US5fX2MpJiZxLl9fYylyZXR1cm4gWi5fX2U9PW51bGwmJihaLl9fZT1KLl9fZSxaLl9faz1KLl9faykscS5fX2MoWCxaKX1KNihYLFosSixZKX07dmFyIHE1PUIudW5tb3VudDtmdW5jdGlvbiBMNShYLFosSil7cmV0dXJuIFgmJihYLl9fYyYmWC5fX2MuX19IJiYoWC5fX2MuX19ILl9fLmZvckVhY2goZnVuY3Rpb24oWSl7dHlwZW9mIFkuX19jPT0iZnVuY3Rpb24iJiZZLl9fYygpfSksWC5fX2MuX19IPW51bGwpLChYPVo2KHt9LFgpKS5fX2MhPW51bGwmJihYLl9fYy5fX1A9PT1KJiYoWC5fX2MuX19QPVopLFguX19jLl9fZT0hMCxYLl9fYz1udWxsKSxYLl9faz1YLl9fayYmWC5fX2subWFwKGZ1bmN0aW9uKFkpe3JldHVybiBMNShZLFosSil9KSksWH1mdW5jdGlvbiBONShYLFosSil7cmV0dXJuIFgmJkomJihYLl9fdj1udWxsLFguX19rPVguX19rJiZYLl9fay5tYXAoZnVuY3Rpb24oWSl7cmV0dXJuIE41KFksWixKKX0pLFguX19jJiZYLl9fYy5fX1A9PT1aJiYoWC5fX2UmJkouYXBwZW5kQ2hpbGQoWC5fX2UpLFguX19jLl9fZT0hMCxYLl9fYy5fX1A9SikpLFh9ZnVuY3Rpb24gQjQoKXt0aGlzLl9fdT0wLHRoaXMubz1udWxsLHRoaXMuX19iPW51bGx9ZnVuY3Rpb24gRzUoWCl7dmFyIFo9WC5fXyYmWC5fXy5fX2M7cmV0dXJuIFomJlouX19hJiZaLl9fYShYKX1mdW5jdGlvbiByMCgpe3RoaXMuaT1udWxsLHRoaXMubD1udWxsfUIudW5tb3VudD1mdW5jdGlvbihYKXt2YXIgWj1YLl9fYztaJiYoWi5fX3o9ITApLFomJlouX19SJiZaLl9fUigpLFomJjMyJlguX191JiYoWC50eXBlPW51bGwpLHE1JiZxNShYKX0sKEI0LnByb3RvdHlwZT1uZXcgaSkuX19jPWZ1bmN0aW9uKFgsWil7dmFyIEo9Wi5fX2MsWT10aGlzO1kubz09bnVsbCYmKFkubz1bXSksWS5vLnB1c2goSik7dmFyIHE9RzUoWS5fX3YpLFE9ITEsSz1mdW5jdGlvbigpe1F8fFkuX196fHwoUT0hMCxKLl9fUj1udWxsLHE/cShHKTpHKCkpfTtKLl9fUj1LO3ZhciBXPUouX19QO0ouX19QPW51bGw7dmFyIEc9ZnVuY3Rpb24oKXtpZighLS1ZLl9fdSl7aWYoWS5zdGF0ZS5fX2Epe3ZhciB6PVkuc3RhdGUuX19hO1kuX192Ll9fa1swXT1ONSh6LHouX19jLl9fUCx6Ll9fYy5fX08pfXZhciBPO2ZvcihZLnNldFN0YXRlKHtfX2E6WS5fX2I9bnVsbH0pO089WS5vLnBvcCgpOylPLl9fUD1XLE8uZm9yY2VVcGRhdGUoKX19O1kuX191Kyt8fDMyJlouX191fHxZLnNldFN0YXRlKHtfX2E6WS5fX2I9WS5fX3YuX19rWzBdfSksWC50aGVuKEssSyl9LEI0LnByb3RvdHlwZS5jb21wb25lbnRXaWxsVW5tb3VudD1mdW5jdGlvbigpe3RoaXMubz1bXX0sQjQucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihYLFope2lmKHRoaXMuX19iKXtpZih0aGlzLl9fdi5fX2spe3ZhciBKPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLFk9dGhpcy5fX3YuX19rWzBdLl9fYzt0aGlzLl9fdi5fX2tbMF09TDUodGhpcy5fX2IsSixZLl9fTz1ZLl9fUCl9dGhpcy5fX2I9bnVsbH12YXIgcT1aLl9fYSYmVzAoZixudWxsLFguZmFsbGJhY2spO3JldHVybiBxJiYocS5fX3UmPS0zMyksW1cwKGYsbnVsbCxaLl9fYT9udWxsOlguY2hpbGRyZW4pLHFdfTt2YXIgUTU9ZnVuY3Rpb24oWCxaLEope2lmKCsrSlsxXT09PUpbMF0mJlgubC5kZWxldGUoWiksWC5wcm9wcy5yZXZlYWxPcmRlciYmKFgucHJvcHMucmV2ZWFsT3JkZXJbMF0hPT0idCJ8fCFYLmwuc2l6ZSkpZm9yKEo9WC5pO0o7KXtmb3IoO0oubGVuZ3RoPjM7KUoucG9wKCkoKTtpZihKWzFdPEpbMF0pYnJlYWs7WC5pPUo9SlsyXX19OyhyMC5wcm90b3R5cGU9bmV3IGkpLl9fYT1mdW5jdGlvbihYKXt2YXIgWj10aGlzLEo9RzUoWi5fX3YpLFk9Wi5sLmdldChYKTtyZXR1cm4gWVswXSsrLGZ1bmN0aW9uKHEpe3ZhciBRPWZ1bmN0aW9uKCl7Wi5wcm9wcy5yZXZlYWxPcmRlcj8oWS5wdXNoKHEpLFE1KFosWCxZKSk6cSgpfTtKP0ooUSk6USgpfX0scjAucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihYKXt0aGlzLmk9bnVsbCx0aGlzLmw9bmV3IE1hcDt2YXIgWj1MMChYLmNoaWxkcmVuKTtYLnJldmVhbE9yZGVyJiZYLnJldmVhbE9yZGVyWzBdPT09ImIiJiZaLnJldmVyc2UoKTtmb3IodmFyIEo9Wi5sZW5ndGg7Si0tOyl0aGlzLmwuc2V0KFpbSl0sdGhpcy5pPVsxLDAsdGhpcy5pXSk7cmV0dXJuIFguY2hpbGRyZW59LHIwLnByb3RvdHlwZS5jb21wb25lbnREaWRVcGRhdGU9cjAucHJvdG90eXBlLmNvbXBvbmVudERpZE1vdW50PWZ1bmN0aW9uKCl7dmFyIFg9dGhpczt0aGlzLmwuZm9yRWFjaChmdW5jdGlvbihaLEope1E1KFgsSixaKX0pfTt2YXIgWTY9dHlwZW9mIFN5bWJvbDwidSImJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKXx8NjAxMDMscTY9L14oPzphY2NlbnR8YWxpZ25tZW50fGFyYWJpY3xiYXNlbGluZXxjYXB8Y2xpcCg/IVBhdGhVKXxjb2xvcnxkb21pbmFudHxmaWxsfGZsb29kfGZvbnR8Z2x5cGgoPyFSKXxob3JpenxpbWFnZSghUyl8bGV0dGVyfGxpZ2h0aW5nfG1hcmtlcig/IUh8V3xVKXxvdmVybGluZXxwYWludHxwb2ludGVyfHNoYXBlfHN0b3B8c3RyaWtldGhyb3VnaHxzdHJva2V8dGV4dCg/IUwpfHRyYW5zZm9ybXx1bmRlcmxpbmV8dW5pY29kZXx1bml0c3x2fHZlY3Rvcnx2ZXJ0fHdvcmR8d3JpdGluZ3x4KD8hQykpW0EtWl0vLFE2PS9eb24oQW5pfFRyYXxUb3V8QmVmb3JlSW5wfENvbXBvKS8sSzY9L1tBLVowLTldL2csJDY9dHlwZW9mIGRvY3VtZW50PCJ1Iix6Nj1mdW5jdGlvbihYKXtyZXR1cm4odHlwZW9mIFN5bWJvbDwidSImJnR5cGVvZiBTeW1ib2woKT09InN5bWJvbCI/L2ZpbHxjaGV8cmFkLzovZmlsfGNoZXxyYS8pLnRlc3QoWCl9O2Z1bmN0aW9uIFY1KFgsWixKKXtyZXR1cm4gWi5fX2s9PW51bGwmJihaLnRleHRDb250ZW50PSIiKSxpMChYLFopLHR5cGVvZiBKPT0iZnVuY3Rpb24iJiZKKCksWD9YLl9fYzpudWxsfWkucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9ITAsWyJjb21wb25lbnRXaWxsTW91bnQiLCJjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzIiwiY29tcG9uZW50V2lsbFVwZGF0ZSJdLmZvckVhY2goZnVuY3Rpb24oWCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGkucHJvdG90eXBlLFgse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1siVU5TQUZFXyIrWF19LHNldDpmdW5jdGlvbihaKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxYLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Wn0pfX0pfSk7dmFyIEs1PUIuZXZlbnQ7Qi5ldmVudD1mdW5jdGlvbihYKXtyZXR1cm4gSzUmJihYPUs1KFgpKSxYLnBlcnNpc3Q9ZnVuY3Rpb24oKXt9LFguaXNQcm9wYWdhdGlvblN0b3BwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5jZWxCdWJibGV9LFguaXNEZWZhdWx0UHJldmVudGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdFByZXZlbnRlZH0sWC5uYXRpdmVFdmVudD1YfTt2YXIgSDUsVzY9e2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc319LCQ1PUIudm5vZGU7Qi52bm9kZT1mdW5jdGlvbihYKXt0eXBlb2YgWC50eXBlPT0ic3RyaW5nIiYmZnVuY3Rpb24oWil7dmFye3Byb3BzOkosdHlwZTpZfT1aLHE9e30sUT1ZLmluZGV4T2YoIi0iKT09LTE7Zm9yKHZhciBLIGluIEope3ZhciBXPUpbS107aWYoIShLPT09InZhbHVlIiYmKCJkZWZhdWx0VmFsdWUiaW4gSikmJlc9PW51bGx8fCQ2JiZLPT09ImNoaWxkcmVuIiYmWT09PSJub3NjcmlwdCJ8fEs9PT0iY2xhc3MifHxLPT09ImNsYXNzTmFtZSIpKXt2YXIgRz1LLnRvTG93ZXJDYXNlKCk7Sz09PSJkZWZhdWx0VmFsdWUiJiYidmFsdWUiaW4gSiYmSi52YWx1ZT09bnVsbD9LPSJ2YWx1ZSI6Sz09PSJkb3dubG9hZCImJlc9PT0hMD9XPSIiOkc9PT0idHJhbnNsYXRlIiYmVz09PSJubyI/Vz0hMTpHWzBdPT09Im8iJiZHWzFdPT09Im4iP0c9PT0ib25kb3VibGVjbGljayI/Sz0ib25kYmxjbGljayI6RyE9PSJvbmNoYW5nZSJ8fFkhPT0iaW5wdXQiJiZZIT09InRleHRhcmVhInx8ejYoSi50eXBlKT9HPT09Im9uZm9jdXMiP0s9Im9uZm9jdXNpbiI6Rz09PSJvbmJsdXIiP0s9Im9uZm9jdXNvdXQiOlE2LnRlc3QoSykmJihLPUcpOkc9Sz0ib25pbnB1dCI6USYmcTYudGVzdChLKT9LPUsucmVwbGFjZShLNiwiLSQmIikudG9Mb3dlckNhc2UoKTpXPT09bnVsbCYmKFc9dm9pZCAwKSxHPT09Im9uaW5wdXQiJiZxW0s9R10mJihLPSJvbmlucHV0Q2FwdHVyZSIpLHFbS109V319WT09InNlbGVjdCImJihxLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHEudmFsdWUpJiYocS52YWx1ZT1MMChKLmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKHope3oucHJvcHMuc2VsZWN0ZWQ9cS52YWx1ZS5pbmRleE9mKHoucHJvcHMudmFsdWUpIT0tMX0pKSxxLmRlZmF1bHRWYWx1ZSE9bnVsbCYmKHEudmFsdWU9TDAoSi5jaGlsZHJlbikuZm9yRWFjaChmdW5jdGlvbih6KXt6LnByb3BzLnNlbGVjdGVkPXEubXVsdGlwbGU/cS5kZWZhdWx0VmFsdWUuaW5kZXhPZih6LnByb3BzLnZhbHVlKSE9LTE6cS5kZWZhdWx0VmFsdWU9PXoucHJvcHMudmFsdWV9KSkpLEouY2xhc3MmJiFKLmNsYXNzTmFtZT8ocS5jbGFzcz1KLmNsYXNzLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShxLCJjbGFzc05hbWUiLFc2KSk6Si5jbGFzc05hbWUmJihxLmNsYXNzPXEuY2xhc3NOYW1lPUouY2xhc3NOYW1lKSxaLnByb3BzPXF9KFgpLFguJCR0eXBlb2Y9WTYsJDUmJiQ1KFgpfTt2YXIgejU9Qi5fX3I7Qi5fX3I9ZnVuY3Rpb24oWCl7ejUmJno1KFgpLEg1PVguX19jfTt2YXIgVzU9Qi5kaWZmZWQ7Qi5kaWZmZWQ9ZnVuY3Rpb24oWCl7VzUmJlc1KFgpO3Zhcntwcm9wczpaLF9fZTpKfT1YO0ohPW51bGwmJlgudHlwZT09PSJ0ZXh0YXJlYSImJiJ2YWx1ZSJpbiBaJiZaLnZhbHVlIT09Si52YWx1ZSYmKEoudmFsdWU9Wi52YWx1ZT09bnVsbD8iIjpaLnZhbHVlKSxINT1udWxsfTtmdW5jdGlvbiBQNShYKXtyZXR1cm4hIVguX19rJiYoaTAobnVsbCxYKSwhMCl9ZnVuY3Rpb24gTzUoWCl7cmV0dXJue3JlbmRlcjpmdW5jdGlvbihaKXtWNShaLFgpfSx1bm1vdW50OmZ1bmN0aW9uKCl7UDUoWCl9fX1mdW5jdGlvbiBDNShYLFope2Zvcih2YXIgSiBpbiBaKVhbSl09WltKXTtyZXR1cm4gWH1mdW5jdGlvbiBVNShYLFope2Zvcih2YXIgSiBpbiBYKWlmKEohPT0iX19zb3VyY2UiJiYhKEogaW4gWikpcmV0dXJuITA7Zm9yKHZhciBZIGluIFopaWYoWSE9PSJfX3NvdXJjZSImJlhbWV0hPT1aW1ldKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEE1KFgsWil7dGhpcy5wcm9wcz1YLHRoaXMuY29udGV4dD1afShBNS5wcm90b3R5cGU9bmV3IGkpLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwLEE1LnByb3RvdHlwZS5zaG91bGRDb21wb25lbnRVcGRhdGU9ZnVuY3Rpb24oWCxaKXtyZXR1cm4gVTUodGhpcy5wcm9wcyxYKXx8VTUodGhpcy5zdGF0ZSxaKX07dmFyIEI1PUIuX19iO0IuX19iPWZ1bmN0aW9uKFgpe1gudHlwZSYmWC50eXBlLl9fZiYmWC5yZWYmJihYLnByb3BzLnJlZj1YLnJlZixYLnJlZj1udWxsKSxCNSYmQjUoWCl9O3ZhciBMNj10eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKXx8MzkxMTtmdW5jdGlvbiBEMChYKXtmdW5jdGlvbiBaKEope3ZhciBZPUM1KHt9LEopO3JldHVybiBkZWxldGUgWS5yZWYsWChZLEoucmVmfHxudWxsKX1yZXR1cm4gWi4kJHR5cGVvZj1MNixaLnJlbmRlcj1YLFoucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9Wi5fX2Y9ITAsWi5kaXNwbGF5TmFtZT0iRm9yd2FyZFJlZigiKyhYLmRpc3BsYXlOYW1lfHxYLm5hbWUpKyIpIixafXZhciBONj1CLl9fZTtCLl9fZT1mdW5jdGlvbihYLFosSixZKXtpZihYLnRoZW4pe2Zvcih2YXIgcSxRPVo7UT1RLl9fOylpZigocT1RLl9fYykmJnEuX19jKXJldHVybiBaLl9fZT09bnVsbCYmKFouX19lPUouX19lLFouX19rPUouX19rKSxxLl9fYyhYLFopfU42KFgsWixKLFkpfTt2YXIgXzU9Qi51bm1vdW50O2Z1bmN0aW9uIEU1KFgsWixKKXtyZXR1cm4gWCYmKFguX19jJiZYLl9fYy5fX0gmJihYLl9fYy5fX0guX18uZm9yRWFjaChmdW5jdGlvbihZKXt0eXBlb2YgWS5fX2M9PSJmdW5jdGlvbiImJlkuX19jKCl9KSxYLl9fYy5fX0g9bnVsbCksKFg9QzUoe30sWCkpLl9fYyE9bnVsbCYmKFguX19jLl9fUD09PUomJihYLl9fYy5fX1A9WiksWC5fX2MuX19lPSEwLFguX19jPW51bGwpLFguX19rPVguX19rJiZYLl9fay5tYXAoZnVuY3Rpb24oWSl7cmV0dXJuIEU1KFksWixKKX0pKSxYfWZ1bmN0aW9uIHc1KFgsWixKKXtyZXR1cm4gWCYmSiYmKFguX192PW51bGwsWC5fX2s9WC5fX2smJlguX19rLm1hcChmdW5jdGlvbihZKXtyZXR1cm4gdzUoWSxaLEopfSksWC5fX2MmJlguX19jLl9fUD09PVomJihYLl9fZSYmSi5hcHBlbmRDaGlsZChYLl9fZSksWC5fX2MuX19lPSEwLFguX19jLl9fUD1KKSksWH1mdW5jdGlvbiBGNCgpe3RoaXMuX191PTAsdGhpcy5vPW51bGwsdGhpcy5fX2I9bnVsbH1mdW5jdGlvbiBUNShYKXt2YXIgWj1YLl9fJiZYLl9fLl9fYztyZXR1cm4gWiYmWi5fX2EmJlouX19hKFgpfWZ1bmN0aW9uIHQwKCl7dGhpcy5pPW51bGwsdGhpcy5sPW51bGx9Qi51bm1vdW50PWZ1bmN0aW9uKFgpe3ZhciBaPVguX19jO1omJihaLl9fej0hMCksWiYmWi5fX1ImJlouX19SKCksWiYmMzImWC5fX3UmJihYLnR5cGU9bnVsbCksXzUmJl81KFgpfSwoRjQucHJvdG90eXBlPW5ldyBpKS5fX2M9ZnVuY3Rpb24oWCxaKXt2YXIgSj1aLl9fYyxZPXRoaXM7WS5vPT1udWxsJiYoWS5vPVtdKSxZLm8ucHVzaChKKTt2YXIgcT1UNShZLl9fdiksUT0hMSxLPWZ1bmN0aW9uKCl7UXx8WS5fX3p8fChRPSEwLEouX19SPW51bGwscT9xKEcpOkcoKSl9O0ouX19SPUs7dmFyIFc9Si5fX1A7Si5fX1A9bnVsbDt2YXIgRz1mdW5jdGlvbigpe2lmKCEtLVkuX191KXtpZihZLnN0YXRlLl9fYSl7dmFyIHo9WS5zdGF0ZS5fX2E7WS5fX3YuX19rWzBdPXc1KHosei5fX2MuX19QLHouX19jLl9fTyl9dmFyIE87Zm9yKFkuc2V0U3RhdGUoe19fYTpZLl9fYj1udWxsfSk7Tz1ZLm8ucG9wKCk7KU8uX19QPVcsTy5mb3JjZVVwZGF0ZSgpfX07WS5fX3UrK3x8MzImWi5fX3V8fFkuc2V0U3RhdGUoe19fYTpZLl9fYj1ZLl9fdi5fX2tbMF19KSxYLnRoZW4oSyxLKX0sRjQucHJvdG90eXBlLmNvbXBvbmVudFdpbGxVbm1vdW50PWZ1bmN0aW9uKCl7dGhpcy5vPVtdfSxGNC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKFgsWil7aWYodGhpcy5fX2Ipe2lmKHRoaXMuX192Ll9fayl7dmFyIEo9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksWT10aGlzLl9fdi5fX2tbMF0uX19jO3RoaXMuX192Ll9fa1swXT1FNSh0aGlzLl9fYixKLFkuX19PPVkuX19QKX10aGlzLl9fYj1udWxsfXZhciBxPVouX19hJiZXMChmLG51bGwsWC5mYWxsYmFjayk7cmV0dXJuIHEmJihxLl9fdSY9LTMzKSxbVzAoZixudWxsLFouX19hP251bGw6WC5jaGlsZHJlbikscV19O3ZhciBGNT1mdW5jdGlvbihYLFosSil7aWYoKytKWzFdPT09SlswXSYmWC5sLmRlbGV0ZShaKSxYLnByb3BzLnJldmVhbE9yZGVyJiYoWC5wcm9wcy5yZXZlYWxPcmRlclswXSE9PSJ0Inx8IVgubC5zaXplKSlmb3IoSj1YLmk7Sjspe2Zvcig7Si5sZW5ndGg+MzspSi5wb3AoKSgpO2lmKEpbMV08SlswXSlicmVhaztYLmk9Sj1KWzJdfX07KHQwLnByb3RvdHlwZT1uZXcgaSkuX19hPWZ1bmN0aW9uKFgpe3ZhciBaPXRoaXMsSj1UNShaLl9fdiksWT1aLmwuZ2V0KFgpO3JldHVybiBZWzBdKyssZnVuY3Rpb24ocSl7dmFyIFE9ZnVuY3Rpb24oKXtaLnByb3BzLnJldmVhbE9yZGVyPyhZLnB1c2gocSksRjUoWixYLFkpKTpxKCl9O0o/SihRKTpRKCl9fSx0MC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKFgpe3RoaXMuaT1udWxsLHRoaXMubD1uZXcgTWFwO3ZhciBaPUwwKFguY2hpbGRyZW4pO1gucmV2ZWFsT3JkZXImJlgucmV2ZWFsT3JkZXJbMF09PT0iYiImJloucmV2ZXJzZSgpO2Zvcih2YXIgSj1aLmxlbmd0aDtKLS07KXRoaXMubC5zZXQoWltKXSx0aGlzLmk9WzEsMCx0aGlzLmldKTtyZXR1cm4gWC5jaGlsZHJlbn0sdDAucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZT10MC5wcm90b3R5cGUuY29tcG9uZW50RGlkTW91bnQ9ZnVuY3Rpb24oKXt2YXIgWD10aGlzO3RoaXMubC5mb3JFYWNoKGZ1bmN0aW9uKFosSil7RjUoWCxKLFopfSl9O3ZhciBHNj10eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLmZvciYmU3ltYm9sLmZvcigicmVhY3QuZWxlbWVudCIpfHw2MDEwMyxWNj0vXig/OmFjY2VudHxhbGlnbm1lbnR8YXJhYmljfGJhc2VsaW5lfGNhcHxjbGlwKD8hUGF0aFUpfGNvbG9yfGRvbWluYW50fGZpbGx8Zmxvb2R8Zm9udHxnbHlwaCg/IVIpfGhvcml6fGltYWdlKCFTKXxsZXR0ZXJ8bGlnaHRpbmd8bWFya2VyKD8hSHxXfFUpfG92ZXJsaW5lfHBhaW50fHBvaW50ZXJ8c2hhcGV8c3RvcHxzdHJpa2V0aHJvdWdofHN0cm9rZXx0ZXh0KD8hTCl8dHJhbnNmb3JtfHVuZGVybGluZXx1bmljb2RlfHVuaXRzfHZ8dmVjdG9yfHZlcnR8d29yZHx3cml0aW5nfHgoPyFDKSlbQS1aXS8sSDY9L15vbihBbml8VHJhfFRvdXxCZWZvcmVJbnB8Q29tcG8pLyxQNj0vW0EtWjAtOV0vZyxPNj10eXBlb2YgZG9jdW1lbnQ8InUiLFU2PWZ1bmN0aW9uKFgpe3JldHVybih0eXBlb2YgU3ltYm9sPCJ1IiYmdHlwZW9mIFN5bWJvbCgpPT0ic3ltYm9sIj8vZmlsfGNoZXxyYWQvOi9maWx8Y2hlfHJhLykudGVzdChYKX07aS5wcm90b3R5cGUuaXNSZWFjdENvbXBvbmVudD0hMCxbImNvbXBvbmVudFdpbGxNb3VudCIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJjb21wb25lbnRXaWxsVXBkYXRlIl0uZm9yRWFjaChmdW5jdGlvbihYKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoaS5wcm90b3R5cGUsWCx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzWyJVTlNBRkVfIitYXX0sc2V0OmZ1bmN0aW9uKFope09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpafSl9fSl9KTt2YXIgRDU9Qi5ldmVudDtCLmV2ZW50PWZ1bmN0aW9uKFgpe3JldHVybiBENSYmKFg9RDUoWCkpLFgucGVyc2lzdD1mdW5jdGlvbigpe30sWC5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbmNlbEJ1YmJsZX0sWC5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWZhdWx0UHJldmVudGVkfSxYLm5hdGl2ZUV2ZW50PVh9O3ZhciBiNSxBNj17Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsYXNzfX0sazU9Qi52bm9kZTtCLnZub2RlPWZ1bmN0aW9uKFgpe3R5cGVvZiBYLnR5cGU9PSJzdHJpbmciJiZmdW5jdGlvbihaKXt2YXJ7cHJvcHM6Six0eXBlOll9PVoscT17fSxRPVkuaW5kZXhPZigiLSIpPT0tMTtmb3IodmFyIEsgaW4gSil7dmFyIFc9SltLXTtpZighKEs9PT0idmFsdWUiJiYoImRlZmF1bHRWYWx1ZSJpbiBKKSYmVz09bnVsbHx8TzYmJks9PT0iY2hpbGRyZW4iJiZZPT09Im5vc2NyaXB0Inx8Sz09PSJjbGFzcyJ8fEs9PT0iY2xhc3NOYW1lIikpe3ZhciBHPUsudG9Mb3dlckNhc2UoKTtLPT09ImRlZmF1bHRWYWx1ZSImJiJ2YWx1ZSJpbiBKJiZKLnZhbHVlPT1udWxsP0s9InZhbHVlIjpLPT09ImRvd25sb2FkIiYmVz09PSEwP1c9IiI6Rz09PSJ0cmFuc2xhdGUiJiZXPT09Im5vIj9XPSExOkdbMF09PT0ibyImJkdbMV09PT0ibiI/Rz09PSJvbmRvdWJsZWNsaWNrIj9LPSJvbmRibGNsaWNrIjpHIT09Im9uY2hhbmdlInx8WSE9PSJpbnB1dCImJlkhPT0idGV4dGFyZWEifHxVNihKLnR5cGUpP0c9PT0ib25mb2N1cyI/Sz0ib25mb2N1c2luIjpHPT09Im9uYmx1ciI/Sz0ib25mb2N1c291dCI6SDYudGVzdChLKSYmKEs9Ryk6Rz1LPSJvbmlucHV0IjpRJiZWNi50ZXN0KEspP0s9Sy5yZXBsYWNlKFA2LCItJCYiKS50b0xvd2VyQ2FzZSgpOlc9PT1udWxsJiYoVz12b2lkIDApLEc9PT0ib25pbnB1dCImJnFbSz1HXSYmKEs9Im9uaW5wdXRDYXB0dXJlIikscVtLXT1XfX1ZPT0ic2VsZWN0IiYmKHEubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkocS52YWx1ZSkmJihxLnZhbHVlPUwwKEouY2hpbGRyZW4pLmZvckVhY2goZnVuY3Rpb24oeil7ei5wcm9wcy5zZWxlY3RlZD1xLnZhbHVlLmluZGV4T2Yoei5wcm9wcy52YWx1ZSkhPS0xfSkpLHEuZGVmYXVsdFZhbHVlIT1udWxsJiYocS52YWx1ZT1MMChKLmNoaWxkcmVuKS5mb3JFYWNoKGZ1bmN0aW9uKHope3oucHJvcHMuc2VsZWN0ZWQ9cS5tdWx0aXBsZT9xLmRlZmF1bHRWYWx1ZS5pbmRleE9mKHoucHJvcHMudmFsdWUpIT0tMTpxLmRlZmF1bHRWYWx1ZT09ei5wcm9wcy52YWx1ZX0pKSksSi5jbGFzcyYmIUouY2xhc3NOYW1lPyhxLmNsYXNzPUouY2xhc3MsT2JqZWN0LmRlZmluZVByb3BlcnR5KHEsImNsYXNzTmFtZSIsQTYpKTpKLmNsYXNzTmFtZSYmKHEuY2xhc3M9cS5jbGFzc05hbWU9Si5jbGFzc05hbWUpLFoucHJvcHM9cX0oWCksWC4kJHR5cGVvZj1HNixrNSYmazUoWCl9O3ZhciBJNT1CLl9fcjtCLl9fcj1mdW5jdGlvbihYKXtJNSYmSTUoWCksYjU9WC5fX2N9O3ZhciBNNT1CLmRpZmZlZDtCLmRpZmZlZD1mdW5jdGlvbihYKXtNNSYmTTUoWCk7dmFye3Byb3BzOlosX19lOkp9PVg7SiE9bnVsbCYmWC50eXBlPT09InRleHRhcmVhIiYmInZhbHVlImluIFomJloudmFsdWUhPT1KLnZhbHVlJiYoSi52YWx1ZT1aLnZhbHVlPT1udWxsPyIiOloudmFsdWUpLGI1PW51bGx9O3ZhciBCNj0wO2Z1bmN0aW9uIE4oWCxaLEosWSxxLFEpe1p8fChaPXt9KTt2YXIgSyxXLEc9WjtpZigicmVmImluIEcpZm9yKFcgaW4gRz17fSxaKVc9PSJyZWYiP0s9WltXXTpHW1ddPVpbV107dmFyIHo9e3R5cGU6WCxwcm9wczpHLGtleTpKLHJlZjpLLF9fazpudWxsLF9fOm51bGwsX19iOjAsX19lOm51bGwsX19jOm51bGwsY29uc3RydWN0b3I6dm9pZCAwLF9fdjotLUI2LF9faTotMSxfX3U6MCxfX3NvdXJjZTpxLF9fc2VsZjpRfTtpZih0eXBlb2YgWD09ImZ1bmN0aW9uIiYmKEs9WC5kZWZhdWx0UHJvcHMpKWZvcihXIGluIEspR1tXXT09PXZvaWQgMCYmKEdbV109S1tXXSk7cmV0dXJuIEIudm5vZGUmJkIudm5vZGUoeiksen12YXIgRDQ9YHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCclM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzknIGZpbGw9J3JnYmEoMjU1LDI1NSwyNTUsMC40NSknIHN0cm9rZT0ncmdiYSgwLDAsMCwwLjU1KScgc3Ryb2tlLXdpZHRoPScxLjI1JyBmaWx0ZXI9J2Ryb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNDUpKScvJTNFJTNDL3N2ZyUzRSIpIDEyIDEyLCBwb2ludGVyYCxfNj0zLEY2PTQsRDY9NTtmdW5jdGlvbiBuMCh7dXJsOlgsd3NVcmw6WixzdHlsZTpKLGltYWdlU3R5bGU6WSxjbGFzc05hbWU6cSxvbkhvbWVQcmVzczpRLG9uU3RyZWFtVG91Y2g6SyxvblN0cmVhbU11bHRpVG91Y2g6VyxvblN0cmVhbUJ1dHRvbjpHLHN1YnNjcmliZUZyYW1lOnosc3RyZWFtRnJhbWU6TyxzdHJlYW1Db25maWc6JCxoaWRlQ29udHJvbHM6XyxvblN0cmVhbWluZ0NoYW5nZTpBLGNvbm5lY3Rpb25RdWFsaXR5Ok19KXtsZXQgVT0hIUssaz13KG51bGwpLEk9dyhudWxsKSxDPXcobnVsbCksW2gsRV09UyghMSksW2UsWjBdPVMobnVsbCksW3gsSzBdPVMobnVsbCkscz13KG51bGwpLFtyLFUwXT1TKG51bGwpO2coKCk9PntsZXQgVj1zLmN1cnJlbnQ7aWYoIVZ8fHR5cGVvZiBSZXNpemVPYnNlcnZlcj4idSIpcmV0dXJuO2xldCBIPW5ldyBSZXNpemVPYnNlcnZlcigoTCk9PntsZXQgUD1MWzBdPy5jb250ZW50UmVjdDtpZihQKVUwKHt3aWR0aDpQLndpZHRoLGhlaWdodDpQLmhlaWdodH0pfSk7cmV0dXJuIEgub2JzZXJ2ZShWKSwoKT0+SC5kaXNjb25uZWN0KCl9LFtdKTtsZXRbajAsdjBdPVMoMCksRzA9dygwKSxbSjQsSTBdPVMoITEpLEY9dyhudWxsKTtnKCgpPT57aWYoTT09PSJwb29yIil7aWYoSTAoITApLEYuY3VycmVudCljbGVhclRpbWVvdXQoRi5jdXJyZW50KTtGLmN1cnJlbnQ9c2V0VGltZW91dCgoKT0+e0kwKCExKSxGLmN1cnJlbnQ9bnVsbH0sMzAwMCl9ZWxzZSBpZihJMCghMSksRi5jdXJyZW50KWNsZWFyVGltZW91dChGLmN1cnJlbnQpLEYuY3VycmVudD1udWxsO3JldHVybigpPT57aWYoRi5jdXJyZW50KWNsZWFyVGltZW91dChGLmN1cnJlbnQpfX0sW01dKTtsZXQgUj1gJHtYfS9zdHJlYW0ubWpwZWdgLHY9dyhBKTt2LmN1cnJlbnQ9QSxnKCgpPT57di5jdXJyZW50Py4oaCl9LFtoXSksZygoKT0+e2lmKFUmJiQpSzAoJCl9LFtVLCRdKTtsZXQgVD13KCExKTtULmN1cnJlbnQ9aDtsZXQgdT13KG51bGwpO2coKCk9PntpZighVXx8IXopcmV0dXJuO2xldCBIPXNldFRpbWVvdXQoKCk9PntpZighVC5jdXJyZW50KVowKCJTdHJlYW0gaXMgbm90IHByb2R1Y2luZyBmcmFtZXMuIFRoZSBzaW11bGF0b3IgbWF5IGhhdmUgc3RvcHBlZCDigJQgdHJ5IHJlY29ubmVjdGluZy4iKX0sNjAwMCksTD16KChQKT0+e0cwLmN1cnJlbnQrKyxYMC5jdXJyZW50PURhdGUubm93KCk7bGV0IEQ9SS5jdXJyZW50O2lmKEQpe2lmKHUuY3VycmVudClVUkwucmV2b2tlT2JqZWN0VVJMKHUuY3VycmVudCk7dS5jdXJyZW50PVAsRC5zcmM9UH1pZighVC5jdXJyZW50KWNsZWFyVGltZW91dChIKSxFKCEwKSxaMChudWxsKX0pO3JldHVybigpPT57Y2xlYXJUaW1lb3V0KEgpLEw/LigpfX0sW1Usel0pO2xldCBtPWooKFYpPT57aWYoVSl7Sz8uKFYpO3JldHVybn1sZXQgSD1DLmN1cnJlbnQ7aWYoIUh8fEgucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXJldHVybjtsZXQgTD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoVikpLFA9bmV3IFVpbnQ4QXJyYXkoMStMLmxlbmd0aCk7UFswXT1fNixQLnNldChMLDEpLEguc2VuZChQKX0sW1UsS10pLEowPWooKFYpPT57aWYoVSl7Rz8uKFYpO3JldHVybn1sZXQgSD1DLmN1cnJlbnQ7aWYoIUh8fEgucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXJldHVybjtsZXQgTD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoe2J1dHRvbjpWfSkpLFA9bmV3IFVpbnQ4QXJyYXkoMStMLmxlbmd0aCk7UFswXT1GNixQLnNldChMLDEpLEguc2VuZChQKX0sW1UsR10pLHk9aigoVik9PntpZihVKXtXPy4oVik7cmV0dXJufWxldCBIPUMuY3VycmVudDtpZighSHx8SC5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4pcmV0dXJuO2xldCBMPW5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShKU09OLnN0cmluZ2lmeShWKSksUD1uZXcgVWludDhBcnJheSgxK0wubGVuZ3RoKTtQWzBdPUQ2LFAuc2V0KEwsMSksSC5zZW5kKFApfSxbVSxXXSk7ZygoKT0+e2lmKFUpcmV0dXJuO2ZldGNoKGAke1h9L2NvbmZpZ2ApLnRoZW4oKGwpPT5sLmpzb24oKSkudGhlbigobCk9PntpZihsLndpZHRoPjAmJmwuaGVpZ2h0PjApSzAobCl9KS5jYXRjaCgoKT0+e30pO2xldCBWPVo/P1gucmVwbGFjZSgvXmh0dHAvLCJ3cyIpKyIvd3MiLEg9bmV3IFdlYlNvY2tldChWKTtILmJpbmFyeVR5cGU9ImFycmF5YnVmZmVyIixDLmN1cnJlbnQ9SCxILm9ub3Blbj0oKT0+e0UoITApLFowKG51bGwpfSxILm9uY2xvc2U9KCk9PntFKCExKX0sSC5vbmVycm9yPSgpPT57WjAoIldlYlNvY2tldCBjb25uZWN0aW9uIGZhaWxlZCIpLEUoITEpfTtsZXQgTD1uZXcgQWJvcnRDb250cm9sbGVyLFA9c2V0SW50ZXJ2YWwoKCk9Pnt2MChHMC5jdXJyZW50KSxHMC5jdXJyZW50PTB9LDEwMDApLEQ9ITEsYj1zZXRUaW1lb3V0KCgpPT57aWYoIUQpWjAoIlN0cmVhbSBpcyBub3QgcHJvZHVjaW5nIGZyYW1lcy4gVGhlIHNpbXVsYXRvciBtYXkgaGF2ZSBzdG9wcGVkIOKAlCB0cnkgcmVjb25uZWN0aW5nLiIpfSw2MDAwKTtyZXR1cm4oYXN5bmMoKT0+e3RyeXtsZXQgbj0oYXdhaXQgZmV0Y2goUix7c2lnbmFsOkwuc2lnbmFsfSkpLmJvZHk/LmdldFJlYWRlcigpO2lmKCFuKXJldHVybjtsZXQgUTA9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKCItLWZyYW1lIik7d2hpbGUoITApe2xldHtkb25lOmg1LHZhbHVlOlE0fT1hd2FpdCBuLnJlYWQoKTtpZihoNSlicmVhaztpZihRNClmb3IobGV0IEs0PTA7SzQ8PVE0Lmxlbmd0aC1RMC5sZW5ndGg7SzQrKyl7bGV0IFQ0PSEwO2ZvcihsZXQgeDA9MDt4MDxRMC5sZW5ndGg7eDArKylpZihRNFtLNCt4MF0hPT1RMFt4MF0pe1Q0PSExO2JyZWFrfWlmKFQ0KXtpZihHMC5jdXJyZW50KyssIUQpRD0hMCxjbGVhclRpbWVvdXQoYil9fX19Y2F0Y2h7fX0pKCksKCk9PntMLmFib3J0KCksY2xlYXJJbnRlcnZhbChQKSxjbGVhclRpbWVvdXQoYiksSC5jbG9zZSgpLEMuY3VycmVudD1udWxsfX0sW1gsUixVXSk7bGV0IFgwPXcoMCk7ZygoKT0+e2lmKCFVKXJldHVybjtsZXQgVj0yMDAwLEg9KCk9PntsZXQgRD1YMC5jdXJyZW50O2lmKCFEfHwhVC5jdXJyZW50KXJldHVybjtpZihEYXRlLm5vdygpLUQ+VilFKCExKX0sTD1zZXRJbnRlcnZhbCgoKT0+e3YwKEcwLmN1cnJlbnQpLEcwLmN1cnJlbnQ9MCxIKCl9LDEwMDApLFA9KCk9PntpZighZG9jdW1lbnQuaGlkZGVuKUgoKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLFApLCgpPT57Y2xlYXJJbnRlcnZhbChMKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixQKX19LFtVXSk7bGV0IGE9aigoKT0+e3JldHVybiBVP0kuY3VycmVudDprLmN1cnJlbnR9LFtVXSksVjA9aigoVixIKT0+e2xldCBMPWEoKTtpZighTClyZXR1cm47bGV0IFA9TC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxEPShILmNsaWVudFgtUC5sZWZ0KS9QLndpZHRoLGI9KEguY2xpZW50WS1QLnRvcCkvUC5oZWlnaHQ7bSh7dHlwZTpWLHg6RCx5OmJ9KX0sW21dKSxZMD0zLGM9dyghMSksbz13KCExKSxBMD13KCExKSxNMD13KHtkeDowLGR5OjB9KSxDMD13KCExKSxbWTQsSTRdPVMoITEpLE00PXcoe3g6MC41LHk6MC41fSksW0gwLHEwXT1TKG51bGwpO2coKCk9PntsZXQgVj0oTCk9PntpZihMLmtleT09PSJBbHQiKUk0KCEwKX0sSD0oTCk9PntpZihMLmtleT09PSJBbHQiKXtpZihJNCghMSksIW8uY3VycmVudClxMChudWxsKX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsViksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixIKSwoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixWKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5dXAiLEgpfX0sW10pLGcoKCk9PntpZihZNCYmIW8uY3VycmVudCl7bGV0IFY9TTQuY3VycmVudDtxMCh7eDE6Vi54LHkxOlYueSx4MjoxLVYueCx5MjoxLVYueX0pfWVsc2UgaWYoIVk0JiYhby5jdXJyZW50KXEwKG51bGwpfSxbWTRdKTtsZXQgeTA9dyhudWxsKSxxND13KCExKSxFMD13KDApLEM0PWooKFYsSCk9PntxNC5jdXJyZW50PSEwO2xldCBMPXkwLmN1cnJlbnQ7aWYoTCljYW5jZWxBbmltYXRpb25GcmFtZShFMC5jdXJyZW50KSxFMC5jdXJyZW50PXJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e0wuc3R5bGUubGVmdD1gJHtWKjEwMH0lYCxMLnN0eWxlLnRvcD1gJHtIKjEwMH0lYCxMLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0pfSxbXSksRTQ9aigoVixIKT0+e2lmKCFxNC5jdXJyZW50KXJldHVybjtsZXQgTD15MC5jdXJyZW50O2lmKEwpY2FuY2VsQW5pbWF0aW9uRnJhbWUoRTAuY3VycmVudCksRTAuY3VycmVudD1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntMLnN0eWxlLmxlZnQ9YCR7VioxMDB9JWAsTC5zdHlsZS50b3A9YCR7SCoxMDB9JWB9KX0sW10pLHAwPWooKCk9PntxNC5jdXJyZW50PSExO2xldCBWPXkwLmN1cnJlbnQ7aWYoViljYW5jZWxBbmltYXRpb25GcmFtZShFMC5jdXJyZW50KSxWLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxbXSksdzQ9dygwKSx3MD13KG51bGwpLHg1PWooKCk9PntsZXQgVj1EYXRlLm5vdygpLEg9Vi13NC5jdXJyZW50O2lmKHc0LmN1cnJlbnQ9VixIPDMwMCl7aWYodzAuY3VycmVudCljbGVhclRpbWVvdXQodzAuY3VycmVudCksdzAuY3VycmVudD1udWxsO2lmKFEpUSgpO2Vsc2UgSjAoImFwcF9zd2l0Y2hlciIpfWVsc2UgdzAuY3VycmVudD1zZXRUaW1lb3V0KCgpPT57aWYoUSlRKCk7ZWxzZSBKMCgiaG9tZSIpO3cwLmN1cnJlbnQ9bnVsbH0sMzAwKX0sW0owLFFdKSxnMD0oKCk9PntpZigheHx8IXIpcmV0dXJuIG51bGw7aWYoci53aWR0aD09PTB8fHIuaGVpZ2h0PT09MClyZXR1cm4gbnVsbDtsZXQgVj1NYXRoLm1pbihyLndpZHRoL3gud2lkdGgsci5oZWlnaHQveC5oZWlnaHQpO3JldHVybnt3aWR0aDp4LndpZHRoKlYsaGVpZ2h0OnguaGVpZ2h0KlZ9fSkoKTtyZXR1cm4gTigiZGl2Iix7c3R5bGU6e2Rpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsZmxleDoxLC4uLl8/e306e2JvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMikifSxvdmVyZmxvdzoiaGlkZGVuIixtaW5XaWR0aDowLG1pbkhlaWdodDowLC4uLkp9LGNsYXNzTmFtZTpxLGNoaWxkcmVuOltOKCJkaXYiLHtyZWY6cyxzdHlsZTp7cG9zaXRpb246InJlbGF0aXZlIixmbGV4OjEsbWluSGVpZ2h0OjAsbWluV2lkdGg6MCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIifSxjaGlsZHJlbjpOKCJkaXYiLHtzdHlsZTp7cG9zaXRpb246InJlbGF0aXZlIix3aWR0aDpnMD9gJHtnMC53aWR0aH1weGA6IjEwMCUiLGhlaWdodDpnMD9gJHtnMC5oZWlnaHR9cHhgOiIxMDAlIn0sY2hpbGRyZW46W04oImltZyIse3JlZjprLHNyYzpVP3ZvaWQgMDpSLGRyYWdnYWJsZTohMSxvbkxvYWQ6KFYpPT57bGV0IEg9Vi5jdXJyZW50VGFyZ2V0O2lmKEgubmF0dXJhbFdpZHRoPjAmJkgubmF0dXJhbEhlaWdodD4wKUswKChMKT0+TCYmTC53aWR0aD09PUgubmF0dXJhbFdpZHRoJiZMLmhlaWdodD09PUgubmF0dXJhbEhlaWdodD9MOnt3aWR0aDpILm5hdHVyYWxXaWR0aCxoZWlnaHQ6SC5uYXR1cmFsSGVpZ2h0fSl9LHN0eWxlOlU/e2Rpc3BsYXk6Im5vbmUifTp7cG9zaXRpb246ImFic29sdXRlIixpbnNldDowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLGN1cnNvcjpENCxkaXNwbGF5OiJibG9jayIsdXNlclNlbGVjdDoibm9uZSIsV2Via2l0VXNlclNlbGVjdDoibm9uZSIsdG91Y2hBY3Rpb246Im5vbmUiLC4uLll9fSksVSYmTigiaW1nIix7cmVmOkksZHJhZ2dhYmxlOiExLG9uTG9hZDooVik9PntsZXQgSD1WLmN1cnJlbnRUYXJnZXQ7aWYoSC5uYXR1cmFsV2lkdGg+MCYmSC5uYXR1cmFsSGVpZ2h0PjApSzAoKEwpPT5MJiZMLndpZHRoPT09SC5uYXR1cmFsV2lkdGgmJkwuaGVpZ2h0PT09SC5uYXR1cmFsSGVpZ2h0P0w6e3dpZHRoOkgubmF0dXJhbFdpZHRoLGhlaWdodDpILm5hdHVyYWxIZWlnaHR9KX0sc3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixjdXJzb3I6RDQsZGlzcGxheToiYmxvY2siLHVzZXJTZWxlY3Q6Im5vbmUiLFdlYmtpdFVzZXJTZWxlY3Q6Im5vbmUiLHRvdWNoQWN0aW9uOiJub25lIiwuLi5ZfX0pLE4oImRpdiIse3N0eWxlOntwb3NpdGlvbjoiYWJzb2x1dGUiLGluc2V0OjAsY3Vyc29yOkQ0LHRvdWNoQWN0aW9uOiJub25lIn0sb25Nb3VzZURvd246KFYpPT57Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBIPWEoKTtpZighSClyZXR1cm47bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxQPShWLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLEQ9KFYuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQ7aWYoVi5hbHRLZXkpe28uY3VycmVudD0hMCxBMC5jdXJyZW50PVYuc2hpZnRLZXk7bGV0IGI9e3gxOlAseTE6RCx4MjoxLVAseTI6MS1EfTtNMC5jdXJyZW50PXtkeDoxLVAtUCxkeToxLUQtRH0scTAoYikseSh7dHlwZToiYmVnaW4iLC4uLmJ9KTtyZXR1cm59aWYoQzQoUCxEKSxEPjAuODgpYy5jdXJyZW50PSEwLG0oe3R5cGU6ImJlZ2luIix4OlAseTpELGVkZ2U6WTB9KTtlbHNlIGMuY3VycmVudD0hMSxWMCgiYmVnaW4iLFYpfSxvbk1vdXNlTW92ZTooVik9PntsZXQgSD1hKCk7aWYoIUgpcmV0dXJuO2xldCBMPUguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUD0oVi5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxEPShWLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O2lmKE00LmN1cnJlbnQ9e3g6UCx5OkR9LFYuYnV0dG9ucz09PTApe2lmKFYuYWx0S2V5KXEwKHt4MTpQLHkxOkQseDI6MS1QLHkyOjEtRH0pO3JldHVybn1pZihvLmN1cnJlbnQpe2xldCBiO2lmKEEwLmN1cnJlbnQpe2xldCBsPU0wLmN1cnJlbnQ7Yj17eDE6UCx5MTpELHgyOlArbC5keCx5MjpEK2wuZHl9fWVsc2UgYj17eDE6UCx5MTpELHgyOjEtUCx5MjoxLUR9O3EwKGIpLHkoe3R5cGU6Im1vdmUiLC4uLmJ9KTtyZXR1cm59aWYoRTQoUCxEKSxjLmN1cnJlbnQpbSh7dHlwZToibW92ZSIseDpQLHk6RCxlZGdlOlkwfSk7ZWxzZSBWMCgibW92ZSIsVil9LG9uTW91c2VVcDooVik9PntpZihvLmN1cnJlbnQpe2xldCBIPWEoKTtpZihIKXtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFA9KFYuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgsRD0oVi5jbGllbnRZLUwudG9wKS9MLmhlaWdodDtpZihBMC5jdXJyZW50KXtsZXQgYj1NMC5jdXJyZW50O3koe3R5cGU6ImVuZCIseDE6UCx5MTpELHgyOlArYi5keCx5MjpEK2IuZHl9KX1lbHNlIHkoe3R5cGU6ImVuZCIseDE6UCx5MTpELHgyOjEtUCx5MjoxLUR9KX1pZihvLmN1cnJlbnQ9ITEsIVYuYWx0S2V5KXEwKG51bGwpO3JldHVybn1pZihwMCgpLGMuY3VycmVudCl7bGV0IEg9YSgpO2lmKEgpe2xldCBMPUguZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUD0oVi5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxEPShWLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O20oe3R5cGU6ImVuZCIseDpQLHk6RCxlZGdlOlkwfSl9Yy5jdXJyZW50PSExO3JldHVybn1WMCgiZW5kIixWKX0sb25Nb3VzZUxlYXZlOihWKT0+e2lmKG8uY3VycmVudCl7aWYoSDApeSh7dHlwZToiZW5kIiwuLi5IMH0pO28uY3VycmVudD0hMSxxMChudWxsKTtyZXR1cm59aWYocDAoKSxjLmN1cnJlbnQpe2xldCBIPWEoKTtpZihIKXtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFA9KFYuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgsRD0oVi5jbGllbnRZLUwudG9wKS9MLmhlaWdodDttKHt0eXBlOiJlbmQiLHg6UCx5OkQsZWRnZTpZMH0pfWMuY3VycmVudD0hMTtyZXR1cm59aWYoVi5idXR0b25zPjApVjAoImVuZCIsVik7cTAobnVsbCl9LG9uVG91Y2hTdGFydDooVik9PntWLnByZXZlbnREZWZhdWx0KCk7bGV0IEg9YSgpO2lmKCFIKXJldHVybjtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKFYudG91Y2hlcy5sZW5ndGg+PTIpe3AwKCk7bGV0IGw9Vi50b3VjaGVzWzBdLG49Vi50b3VjaGVzWzFdLFEwPXt4MToobC5jbGllbnRYLUwubGVmdCkvTC53aWR0aCx5MToobC5jbGllbnRZLUwudG9wKS9MLmhlaWdodCx4Mjoobi5jbGllbnRYLUwubGVmdCkvTC53aWR0aCx5Mjoobi5jbGllbnRZLUwudG9wKS9MLmhlaWdodH07aWYoIUMwLmN1cnJlbnQmJiFjLmN1cnJlbnQpbSh7dHlwZToiZW5kIix4OlEwLngxLHk6UTAueTF9KTtDMC5jdXJyZW50PSEwLG8uY3VycmVudD0hMCxjLmN1cnJlbnQ9ITEscTAoUTApLHkoe3R5cGU6ImJlZ2luIiwuLi5RMH0pO3JldHVybn1sZXQgUD1WLnRvdWNoZXNbMF07aWYoIVApcmV0dXJuO2xldCBEPShQLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLGI9KFAuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQ7aWYoQzQoRCxiKSxiPjAuODgpYy5jdXJyZW50PSEwLG0oe3R5cGU6ImJlZ2luIix4OkQseTpiLGVkZ2U6WTB9KTtlbHNlIGMuY3VycmVudD0hMSxtKHt0eXBlOiJiZWdpbiIseDpELHk6Yn0pfSxvblRvdWNoTW92ZTooVik9PntWLnByZXZlbnREZWZhdWx0KCk7bGV0IEg9YSgpO2lmKCFIKXJldHVybjtsZXQgTD1ILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKEMwLmN1cnJlbnQmJlYudG91Y2hlcy5sZW5ndGg+PTIpe2xldCBsPVYudG91Y2hlc1swXSxuPVYudG91Y2hlc1sxXSxRMD17eDE6KGwuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgseTE6KGwuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQseDI6KG4uY2xpZW50WC1MLmxlZnQpL0wud2lkdGgseTI6KG4uY2xpZW50WS1MLnRvcCkvTC5oZWlnaHR9O3EwKFEwKSx5KHt0eXBlOiJtb3ZlIiwuLi5RMH0pO3JldHVybn1sZXQgUD1WLnRvdWNoZXNbMF07aWYoIVApcmV0dXJuO2xldCBEPShQLmNsaWVudFgtTC5sZWZ0KS9MLndpZHRoLGI9KFAuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQ7aWYoRTQoRCxiKSxjLmN1cnJlbnQpbSh7dHlwZToibW92ZSIseDpELHk6YixlZGdlOlkwfSk7ZWxzZSBtKHt0eXBlOiJtb3ZlIix4OkQseTpifSl9LG9uVG91Y2hFbmQ6KFYpPT57Vi5wcmV2ZW50RGVmYXVsdCgpO2xldCBIPWEoKTtpZighSClyZXR1cm47bGV0IEw9SC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihDMC5jdXJyZW50KXtpZihWLnRvdWNoZXMubGVuZ3RoPDIpe2xldCBsPVYuY2hhbmdlZFRvdWNoZXNbMF0sbj1IMDtpZihsJiZuKXkoe3R5cGU6ImVuZCIseDE6KGwuY2xpZW50WC1MLmxlZnQpL0wud2lkdGgseTE6KGwuY2xpZW50WS1MLnRvcCkvTC5oZWlnaHQseDI6bi54Mix5MjpuLnkyfSk7ZWxzZSBpZihuKXkoe3R5cGU6ImVuZCIsLi4ubn0pO0MwLmN1cnJlbnQ9ITEsby5jdXJyZW50PSExLHEwKG51bGwpfXJldHVybn1sZXQgUD1WLmNoYW5nZWRUb3VjaGVzWzBdO2lmKCFQKXJldHVybjtsZXQgRD0oUC5jbGllbnRYLUwubGVmdCkvTC53aWR0aCxiPShQLmNsaWVudFktTC50b3ApL0wuaGVpZ2h0O2lmKHAwKCksYy5jdXJyZW50KW0oe3R5cGU6ImVuZCIseDpELHk6YixlZGdlOlkwfSksYy5jdXJyZW50PSExO2Vsc2UgbSh7dHlwZToiZW5kIix4OkQseTpifSl9fSksTigiZGl2Iix7cmVmOnkwLCJkYXRhLXRlc3RpZCI6InRvdWNoLWluZGljYXRvciIsc3R5bGU6e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsZGlzcGxheToibm9uZSIsd2lkdGg6MjQsaGVpZ2h0OjI0LGJvcmRlclJhZGl1czoiNTAlIixiYWNrZ3JvdW5kOiJyZ2JhKDU5LDEzMCwyNDYsMC41KSIsYm94U2hhZG93OiIwIDAgOHB4IHJnYmEoNTksMTMwLDI0NiwwLjMpIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgtNTAlLCAtNTAlKSIscG9pbnRlckV2ZW50czoibm9uZSJ9fSksSDAmJk4oZix7Y2hpbGRyZW46W04oImRpdiIseyJkYXRhLXRlc3RpZCI6ImZpbmdlci1kb3QiLHN0eWxlOmo1KEgwLngxLEgwLnkxKX0pLE4oImRpdiIseyJkYXRhLXRlc3RpZCI6ImZpbmdlci1kb3QiLHN0eWxlOmo1KEgwLngyLEgwLnkyKX0pXX0pLCFoJiYhZSYmTigiZGl2Iix7c3R5bGU6ey4uLlM1LC4uLll8fHt9fSxjaGlsZHJlbjpOKCJzcGFuIix7c3R5bGU6e2NvbG9yOiIjODg4Iixmb250U2l6ZToxNH0sY2hpbGRyZW46IkNvbm5lY3RpbmcuLi4ifSl9KSxlJiZOKCJkaXYiLHtzdHlsZTpTNSxjaGlsZHJlbjpOKCJzcGFuIix7c3R5bGU6e2NvbG9yOiIjZjQ0Iixmb250U2l6ZToxNCxwYWRkaW5nOjIwLHRleHRBbGlnbjoiY2VudGVyIn0sY2hpbGRyZW46ZX0pfSksSjQmJk4oImRpdiIse3N0eWxlOms2LGNoaWxkcmVuOk4oInNwYW4iLHtzdHlsZTp7Y29sb3I6IiNmYmJmMjQiLGZvbnRTaXplOjEzLGZvbnRGYW1pbHk6Im1vbm9zcGFjZSJ9LGNoaWxkcmVuOiJTbG93IGNvbm5lY3Rpb24ifSl9KV19KX0pLCFfJiZOKCJkaXYiLHtzdHlsZTp7ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZzoiNHB4IDhweCIsYm9yZGVyVG9wOiIxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKSJ9LGNoaWxkcmVuOltOKCJidXR0b24iLHtvbkNsaWNrOng1LHN0eWxlOntiYWNrZ3JvdW5kOiJub25lIixib3JkZXI6IjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMikiLGNvbG9yOiIjYWFhIixmb250U2l6ZToxMSxmb250RmFtaWx5OiJtb25vc3BhY2UiLHBhZGRpbmc6IjJweCAxMHB4IixjdXJzb3I6InBvaW50ZXIiLGJvcmRlclJhZGl1czo0fSxjaGlsZHJlbjoiSG9tZSJ9KSxOKCJzcGFuIix7c3R5bGU6e2NvbG9yOmowPjA/IiM0ZjQiOiIjODg4Iixmb250U2l6ZToxMixmb250RmFtaWx5OiJtb25vc3BhY2UiLGRpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjZ9LGNoaWxkcmVuOltNJiZOKCJzcGFuIix7ImRhdGEtdGVzdGlkIjoicXVhbGl0eS1kb3QiLHN0eWxlOnt3aWR0aDo4LGhlaWdodDo4LGJvcmRlclJhZGl1czoiNTAlIixkaXNwbGF5OiJpbmxpbmUtYmxvY2siLGJhY2tncm91bmQ6TT09PSJnb29kIj8iIzRhZGU4MCI6TT09PSJkZWdyYWRlZCI/IiNmYWNjMTUiOiIjZWY0NDQ0In19KSxqMCwiIGZwcyJdfSldfSldfSl9dmFyIGs2PXtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDo4LGxlZnQ6IjUwJSIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVYKC01MCUpIixiYWNrZ3JvdW5kOiJyZ2JhKDAsMCwwLDAuNykiLGJvcmRlclJhZGl1czo2LHBhZGRpbmc6IjRweCAxMnB4Iixwb2ludGVyRXZlbnRzOiJub25lIn0sUzU9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsaW5zZXQ6MCxkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJjZW50ZXIiLGJhY2tncm91bmQ6InJnYmEoMCwwLDAsMC44KSJ9LFI1PTIwO2Z1bmN0aW9uIGo1KFgsWil7cmV0dXJue3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDpgJHtYKjEwMH0lYCx0b3A6YCR7WioxMDB9JWAsd2lkdGg6UjUsaGVpZ2h0OlI1LGJvcmRlclJhZGl1czoiNTAlIixiYWNrZ3JvdW5kOiJyZ2JhKDI1NSwyNTUsMjU1LDAuNDUpIixib3JkZXI6IjEuMjVweCBzb2xpZCByZ2JhKDAsMCwwLDAuNTUpIixib3hTaGFkb3c6IjAgMXB4IDNweCByZ2JhKDAsMCwwLDAuNDUpIix0cmFuc2Zvcm06InRyYW5zbGF0ZSgtNTAlLCAtNTAlKSIscG9pbnRlckV2ZW50czoibm9uZSJ9fWZ1bmN0aW9uIGswKFgpe2lmKCFYKXJldHVybiJpcGhvbmUiO2xldCBaPVgudG9Mb3dlckNhc2UoKTtpZihaLmluY2x1ZGVzKCJpcGFkIikpcmV0dXJuImlwYWQiO2lmKFouaW5jbHVkZXMoIndhdGNoIikpcmV0dXJuIndhdGNoIjtpZihaLmluY2x1ZGVzKCJ2aXNpb24iKSlyZXR1cm4idmlzaW9uIjtyZXR1cm4iaXBob25lIn12YXIgJDA9e2lwaG9uZTp7d2lkdGg6NDI3LGhlaWdodDo4ODEsYmV6ZWxYOjE4LGJlemVsWToxOCxpbm5lclJhZGl1czo1NX0saXBhZDp7d2lkdGg6NDMwLGhlaWdodDo2MDUsYmV6ZWxYOjE2LGJlemVsWToxNixpbm5lclJhZGl1czoxMn0sd2F0Y2g6e3dpZHRoOjI3NCxoZWlnaHQ6MzIyLGJlemVsWDoxMixiZXplbFk6MTIsaW5uZXJSYWRpdXM6Nzl9LHZpc2lvbjp7d2lkdGg6NjQwLGhlaWdodDo0MDAsYmV6ZWxYOjEyLGJlemVsWToxMixpbm5lclJhZGl1czozMn19LGI3PSQwLmlwaG9uZS53aWR0aCxTNz0kMC5pcGhvbmUuaGVpZ2h0LFI3PSQwLmlwaG9uZS5iZXplbFgsajc9JDAuaXBob25lLmJlemVsWSx2Nz0kMC5pcGhvbmUuaW5uZXJSYWRpdXM7ZnVuY3Rpb24gZTAoWD0iaXBob25lIil7bGV0IFo9JDBbWF0sSj1aLndpZHRoLTIqWi5iZXplbFgsWT1aLmhlaWdodC0yKlouYmV6ZWxZO3JldHVybmAke1ouaW5uZXJSYWRpdXMvSioxMDB9JSAvICR7Wi5pbm5lclJhZGl1cy9ZKjEwMH0lYH12YXIgazQ9XzAobnVsbCk7ZnVuY3Rpb24gWDQoWCl7bGV0IFo9UjAoazQpO2lmKCFaKXRocm93IEVycm9yKGA8U2ltdWxhdG9yVG9vbGJhci4ke1h9PiBtdXN0IGJlIHJlbmRlcmVkIGluc2lkZSA8U2ltdWxhdG9yVG9vbGJhcj5gKTtyZXR1cm4gWn12YXIgdzY9e2Rpc3BsYXk6ImZsZXgiLGZsZXhXcmFwOiJ3cmFwIixhbGlnbkl0ZW1zOiJjZW50ZXIiLGp1c3RpZnlDb250ZW50OiJzcGFjZS1iZXR3ZWVuIixnYXA6IjRweCAxMnB4IixwYWRkaW5nOiI4cHggMTJweCIsYm9yZGVyUmFkaXVzOjI0LGJhY2tncm91bmQ6IiMxYzFjMWUiLGJvcmRlcjoiMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xKSIsYm94U2hhZG93OiIwIDFweCAycHggcmdiYSgwLDAsMCwwLjIpIixtaW5XaWR0aDoyNDAsd2lkdGg6IjEwMCUifTtmdW5jdGlvbiBUNih7ZXhlYzpYLGRldmljZVVkaWQ6WixkZXZpY2VOYW1lOkosZGV2aWNlUnVudGltZTpZLHN0cmVhbWluZzpxPSExLGRpc2FibGVkOlE9ITEsY2hpbGRyZW46SyxzdHlsZTpXLC4uLkd9KXtsZXQgej1rMChKKSwkPXtleGVjOlgsZGV2aWNlVWRpZDpaLGRldmljZU5hbWU6SixkZXZpY2VSdW50aW1lOlksZGV2aWNlVHlwZTp6LHN0cmVhbWluZzpxLGRpc2FibGVkOlF8fCFafHwhcX07cmV0dXJuIE4oazQuUHJvdmlkZXIse3ZhbHVlOiQsY2hpbGRyZW46TigiZGl2Iix7ImRhdGEtc2ltdWxhdG9yLXRvb2xiYXIiOiEwLHN0eWxlOnsuLi53NiwuLi5XfSwuLi5HLGNoaWxkcmVuOkt9KX0pfXZhciBiNj17ZGlzcGxheToiZmxleCIsZmxleERpcmVjdGlvbjoiY29sdW1uIixhbGlnbkl0ZW1zOiJmbGV4LXN0YXJ0Iix0ZXh0QWxpZ246ImxlZnQiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGNvbG9yOiIjZmZmIixwYWRkaW5nOiIycHggNHB4IixtYXJnaW46Ii0ycHggLTRweCIsYm9yZGVyUmFkaXVzOjYsY3Vyc29yOiJwb2ludGVyIixtaW5XaWR0aDowLG1heFdpZHRoOiIxMDAlIixsaW5lSGVpZ2h0OjEuMixmb250RmFtaWx5OiJpbmhlcml0In0sUzY9RDAoZnVuY3Rpb24oe25hbWU6WixzdWJ0aXRsZTpKLGhpZGVDaGV2cm9uOlksc3R5bGU6cSxvbk1vdXNlRW50ZXI6USxvbk1vdXNlTGVhdmU6SywuLi5XfSxHKXtsZXQgej1YNCgiVGl0bGUiKSxbTywkXT1TKCExKSxfPVo/P3ouZGV2aWNlTmFtZT8/Ik5vIHNpbXVsYXRvciIsQT1KPz8oei5kZXZpY2VSdW50aW1lP3ouZGV2aWNlUnVudGltZS5yZXBsYWNlKC9cLi8sIiAiKToi4oCUIik7cmV0dXJuIE4oImJ1dHRvbiIse3JlZjpHLHR5cGU6ImJ1dHRvbiIsImRhdGEtc2ltdWxhdG9yLXRvb2xiYXItdGl0bGUiOiEwLG9uTW91c2VFbnRlcjooTSk9PnskKCEwKSxRPy4oTSl9LG9uTW91c2VMZWF2ZTooTSk9PnskKCExKSxLPy4oTSl9LHN0eWxlOnsuLi5iNixiYWNrZ3JvdW5kOk8/InJnYmEoMjU1LDI1NSwyNTUsMC4xKSI6InRyYW5zcGFyZW50IiwuLi5xfSwuLi5XLGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6e2Rpc3BsYXk6ImlubGluZS1mbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo0LGZvbnRTaXplOjEyLGZvbnRXZWlnaHQ6NjAwLGNvbG9yOiIjZmZmIixtYXhXaWR0aDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsd2hpdGVTcGFjZToibm93cmFwIn0sY2hpbGRyZW46W18sIVkmJk4oInN2ZyIse3dpZHRoOiIxMCIsaGVpZ2h0OiIxMCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIuNSIsc3Ryb2tlTGluZWNhcDoicm91bmQiLHN0cm9rZUxpbmVqb2luOiJyb3VuZCIsc3R5bGU6e2NvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDAuNikiLGZsZXhTaHJpbms6MH0sY2hpbGRyZW46TigicG9seWxpbmUiLHtwb2ludHM6IjYgOSAxMiAxNSAxOCA5In0pfSldfSksTigic3BhbiIse3N0eWxlOntmb250U2l6ZToxMCxjb2xvcjoicmdiYSgyNTUsMjU1LDI1NSwwLjUpIixtYXhXaWR0aDoiMTAwJSIsb3ZlcmZsb3c6ImhpZGRlbiIsdGV4dE92ZXJmbG93OiJlbGxpcHNpcyIsd2hpdGVTcGFjZToibm93cmFwIn0sY2hpbGRyZW46QX0pXX0pfSksUjY9e2Rpc3BsYXk6ImZsZXgiLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjQsZmxleFNocmluazowfTtmdW5jdGlvbiBqNih7c3R5bGU6WCwuLi5afSl7cmV0dXJuIE4oImRpdiIse3N0eWxlOnsuLi5SNiwuLi5YfSwuLi5afSl9dmFyIHY2PXtiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIixwYWRkaW5nOjYsYm9yZGVyUmFkaXVzOjYsY3Vyc29yOiJwb2ludGVyIixkaXNwbGF5OiJpbmxpbmUtZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIixjb2xvcjoicmdiYSgyNTUsMjU1LDI1NSwwLjgpIix0cmFuc2l0aW9uOiJiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzLCBjb2xvciAwLjE1cyJ9LFo0PUQwKGZ1bmN0aW9uKHtmb3JjZURpc2FibGVkOlosc3R5bGU6SixkaXNhYmxlZDpZLG9uTW91c2VFbnRlcjpxLG9uTW91c2VMZWF2ZTpRLGNoaWxkcmVuOkssLi4uV30sRyl7bGV0IHo9UjAoazQpLE89WXx8Wnx8ej8uZGlzYWJsZWQsWyQsX109UyghMSk7cmV0dXJuIE4oImJ1dHRvbiIse3JlZjpHLHR5cGU6ImJ1dHRvbiIsZGlzYWJsZWQ6Tyxvbk1vdXNlRW50ZXI6KEEpPT57XyghMCkscT8uKEEpfSxvbk1vdXNlTGVhdmU6KEEpPT57XyghMSksUT8uKEEpfSxzdHlsZTp7Li4udjYsY29sb3I6Tz8icmdiYSgyNTUsMjU1LDI1NSwwLjI1KSI6InJnYmEoMjU1LDI1NSwyNTUsMC44KSIsYmFja2dyb3VuZDokJiYhTz8icmdiYSgyNTUsMjU1LDI1NSwwLjEpIjoidHJhbnNwYXJlbnQiLGN1cnNvcjpPPyJub3QtYWxsb3dlZCI6InBvaW50ZXIiLC4uLkp9LC4uLlcsY2hpbGRyZW46S30pfSk7ZnVuY3Rpb24geTYoKXtyZXR1cm5bJ3RlbGwgYXBwbGljYXRpb24gIlN5c3RlbSBFdmVudHMiIHRvIHRlbGwgcHJvY2VzcyAiU2ltdWxhdG9yIiB0byBzZXQgZnJvbnRtb3N0IHRvIHRydWUnLCd0ZWxsIGFwcGxpY2F0aW9uICJTeXN0ZW0gRXZlbnRzIiB0byB0ZWxsIHByb2Nlc3MgIlNpbXVsYXRvciIgdG8gcGVyZm9ybSBhY3Rpb24gIkFYUmFpc2UiIG9mIChmaXJzdCB3aW5kb3cgd2hvc2UgbmFtZSBjb250YWlucyAid2F0Y2hPUyIpJywndGVsbCBhcHBsaWNhdGlvbiAiU3lzdGVtIEV2ZW50cyIgdG8gdGVsbCBwcm9jZXNzICJTaW11bGF0b3IiIHRvIGNsaWNrIG1lbnUgaXRlbSAiSG9tZSIgb2YgbWVudSAiRGV2aWNlIiBvZiBtZW51IGJhciBpdGVtICJEZXZpY2UiIG9mIG1lbnUgYmFyIDEnXS5tYXAoKFopPT5gLWUgJyR7Wn0nYCkucmVkdWNlKChaLEopPT5gJHtafSAke0p9YCwib3Nhc2NyaXB0Iil9dmFyIHA2PU4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLGNoaWxkcmVuOk4oInBhdGgiLHtkOiJNMyAxMC41IDEyIDNsOSA3LjVWMjBhMSAxIDAgMCAxLTEgMWgtNXYtN2gtNnY3SDRhMSAxIDAgMCAxLTEtMXoifSl9KSxnNj1OKCJzdmciLHt3aWR0aDoiMTgiLGhlaWdodDoiMTgiLHZpZXdCb3g6IjAgMCAyNCAyNCIsZmlsbDoibm9uZSIsc3Ryb2tlOiJjdXJyZW50Q29sb3IiLHN0cm9rZVdpZHRoOiIyIixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIixjaGlsZHJlbjpbTigicGF0aCIse2Q6Ik0xNC41IDRoLTVMNyA3SDRhMiAyIDAgMCAwLTIgMnY5YTIgMiAwIDAgMCAyIDJoMTZhMiAyIDAgMCAwIDItMlY5YTIgMiAwIDAgMC0yLTJoLTN6In0pLE4oImNpcmNsZSIse2N4OiIxMiIsY3k6IjEzIixyOiI0In0pXX0pLHg2PU4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDEyIDEzIixmaWxsOiJjdXJyZW50Q29sb3IiLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsY2hpbGRyZW46TigicGF0aCIse2Q6Ik0xMC4yMzA1IDEyLjgwNzdINC40MjM4M0MzLjkyMzgzIDEyLjgwNzcgMy41NDY4OCAxMi42ODQ2IDMuMjkyOTcgMTIuNDM4NUMzLjA0Mjk3IDEyLjE5NjMgMi45MTc5NyAxMS44MTk0IDIuOTE3OTcgMTEuMzA3N1Y1LjUxMjc0QzIuOTE3OTcgNC45OTcxMSAzLjA0Mjk3IDQuNjE4MjEgMy4yOTI5NyA0LjM3NjAyQzMuNTQ2ODggNC4xMjk5MyAzLjkyMzgzIDQuMDA2ODggNC40MjM4MyA0LjAwNjg4SDEwLjIzMDVDMTAuNzM0NCA0LjAwNjg4IDExLjExMTMgNC4xMjk5MyAxMS4zNjEzIDQuMzc2MDJDMTEuNjExMyA0LjYxODIxIDExLjczNjMgNC45OTcxMSAxMS43MzYzIDUuNTEyNzRWMTEuMzA3N0MxMS43MzYzIDExLjgxOTQgMTEuNjExMyAxMi4xOTYzIDExLjM2MTMgMTIuNDM4NUMxMS4xMTEzIDEyLjY4NDYgMTAuNzM0NCAxMi44MDc3IDEwLjIzMDUgMTIuODA3N1pNMTAuMjEyOSAxMS44NjQzQzEwLjQxNiAxMS44NjQzIDEwLjU2MjUgMTEuODE5NCAxMC42NTIzIDExLjcyOTVDMTAuNzQ2MSAxMS42NDM2IDEwLjc5MyAxMS40OTcxIDEwLjc5MyAxMS4yOTAxVjUuNTI0NDZDMTAuNzkzIDUuMzE3NDMgMTAuNzQ2MSA1LjE3MDk0IDEwLjY1MjMgNS4wODUwMUMxMC41NjI1IDQuOTk1MTYgMTAuNDE2IDQuOTUwMjQgMTAuMjEyOSA0Ljk1MDI0SDQuNDQxNDFDNC4yNDIxOSA0Ljk1MDI0IDQuMDk1NyA0Ljk5NTE2IDQuMDAxOTUgNS4wODUwMUMzLjkwODIgNS4xNzA5NCAzLjg2MTMzIDUuMzE3NDMgMy44NjEzMyA1LjUyNDQ2VjExLjI5MDFDMy44NjEzMyAxMS40OTcxIDMuOTA4MiAxMS42NDM2IDQuMDAxOTUgMTEuNzI5NUM0LjA5NTcgMTEuODE5NCA0LjI0MjE5IDExLjg2NDMgNC40NDE0MSAxMS44NjQzSDEwLjIxMjlaTTIuOTE3OTcgMi41ODMwNVYwLjQxNTA4M0MyLjkxNzk3IDAuMjAwMjQgMi45ODYzMyAwLjA2OTM4MDMgMy4xMjMwNSAwLjAyMjUwNTNDMy4yNTk3NyAtMC4wMjgyNzU5IDMuNDEwMTYgMC4wMDY4ODAzMyAzLjU3NDIyIDAuMTI3OTc0TDUuMDUwNzggMS4yMTE5NkM1LjE3NTc4IDEuMzA1NzEgNS4yMzgyOCAxLjQwMTQxIDUuMjM4MjggMS40OTkwN0M1LjIzODI4IDEuNTk2NzIgNS4xNzU3OCAxLjY5MjQzIDUuMDUwNzggMS43ODYxOEwzLjU3NDIyIDIuODY0M0MzLjQxMDE2IDIuOTg1NCAzLjI1OTc3IDMuMDIyNTEgMy4xMjMwNSAyLjk3NTYzQzIuOTg2MzMgMi45MjQ4NSAyLjkxNzk3IDIuNzkzOTkgMi45MTc5NyAyLjU4MzA1Wk0zLjUzMzIgMS4xNTMzNkMzLjYyNjk1IDEuMTUzMzYgMy43MDcwMyAxLjE4NjU3IDMuNzczNDQgMS4yNTI5N0MzLjg0Mzc1IDEuMzE5MzggMy44Nzg5MSAxLjM5NzUxIDMuODc4OTEgMS40ODczNUMzLjg3ODkxIDEuNTgxMSAzLjg0Mzc1IDEuNjYzMTMgMy43NzM0NCAxLjczMzQ0QzMuNzA3MDMgMS43OTk4NSAzLjYyNjk1IDEuODMzMDUgMy41MzMyIDEuODMzMDVIMi44MDY2NEMyLjM4MDg2IDEuODMzMDUgMi4wMTE3MiAxLjkyNDg1IDEuNjk5MjIgMi4xMDg0NEMxLjM5MDYyIDIuMjg4MTMgMS4xNTIzNCAyLjUzODEzIDAuOTg0Mzc1IDIuODU4NDRDMC44MTY0MDYgMy4xNzg3NiAwLjczMjQyMiAzLjU0NTk0IDAuNzMyNDIyIDMuOTYwMDFWNC44Mzg5MUMwLjczMjQyMiA0LjkzNjU3IDAuNjk3MjY2IDUuMDIyNTEgMC42MjY5NTMgNS4wOTY3MkMwLjU1MjczNCA1LjE2NzA0IDAuNDY0ODQ0IDUuMjAyMTkgMC4zNjMyODEgNS4yMDIxOUMwLjI2NTYyNSA1LjIwMjE5IDAuMTgxNjQxIDUuMTY3MDQgMC4xMTEzMjggNS4wOTY3MkMwLjAzNzEwOTQgNS4wMjI1MSAwIDQuOTM2NTcgMCA0LjgzODkxVjMuOTYwMDFDMCAzLjQwMTQxIDAuMTE3MTg4IDIuOTExMTggMC4zNTE1NjIgMi40ODkzQzAuNTgyMDMxIDIuMDY3NDMgMC45MDgyMDMgMS43MzkzIDEuMzMwMDggMS41MDQ5M0MxLjc0ODA1IDEuMjcwNTUgMi4yMzgyOCAxLjE1MzM2IDIuODAwNzggMS4xNTMzNkgzLjUzMzJaIn0pfSksaDY9RDAoZnVuY3Rpb24oe29uQ2xpY2s6WiwuLi5KfSxZKXtsZXQgcT1YNCgiSG9tZUJ1dHRvbiIpO3JldHVybiBOKFo0LHtyZWY6WSwiYXJpYS1sYWJlbCI6IkhvbWUiLG9uQ2xpY2s6KFEpPT57aWYoWj8uKFEpLFEuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYocS5kZXZpY2VUeXBlPT09IndhdGNoIilxLmV4ZWMoeTYoKSk7ZWxzZSBxLmV4ZWMoInNlcnZlLXNpbSBidXR0b24gaG9tZSIpfSwuLi5KLGNoaWxkcmVuOnA2fSl9KSxtNj1EMChmdW5jdGlvbih7b25DbGljazpaLC4uLkp9LFkpe2xldCBxPVg0KCJTY3JlZW5zaG90QnV0dG9uIik7cmV0dXJuIE4oWjQse3JlZjpZLCJhcmlhLWxhYmVsIjoiU2NyZWVuc2hvdCIsb25DbGljazooUSk9PntpZihaPy4oUSksUS5kZWZhdWx0UHJldmVudGVkKXJldHVybjtpZihxLmRldmljZVVkaWQpcS5leGVjKGB4Y3J1biBzaW1jdGwgaW8gJHtxLmRldmljZVVkaWR9IHNjcmVlbnNob3Qgfi9EZXNrdG9wL2hhdGNoLXNjcmVlbnNob3QtJChkYXRlICslcykucG5nYCl9LC4uLkosY2hpbGRyZW46ZzZ9KX0pLGY2PUQwKGZ1bmN0aW9uKHtvbkNsaWNrOlosLi4uSn0sWSl7bGV0IHE9WDQoIlJvdGF0ZUJ1dHRvbiIpO3JldHVybiBOKFo0LHtyZWY6WSwiYXJpYS1sYWJlbCI6IlJvdGF0ZSBkZXZpY2UiLG9uQ2xpY2s6KFEpPT57aWYoWj8uKFEpLFEuZGVmYXVsdFByZXZlbnRlZClyZXR1cm47aWYocS5kZXZpY2VVZGlkKXEuZXhlYyhgb3Nhc2NyaXB0IC1lICd0ZWxsIGFwcGxpY2F0aW9uICJTaW11bGF0b3IiIHRvIGFjdGl2YXRlJyAtZSAndGVsbCBhcHBsaWNhdGlvbiAiU3lzdGVtIEV2ZW50cyIgdG8ga2V5IGNvZGUgMTI0IHVzaW5nIHtjb21tYW5kIGRvd259J2ApfSwuLi5KLGNoaWxkcmVuOng2fSl9KSx0PVQ2O3QuVGl0bGU9UzY7dC5BY3Rpb25zPWo2O3QuQnV0dG9uPVo0O3QuSG9tZUJ1dHRvbj1oNjt0LlNjcmVlbnNob3RCdXR0b249bTY7dC5Sb3RhdGVCdXR0b249ZjY7ZnVuY3Rpb24gZDYoWCl7bGV0W1osSl09UyhudWxsKSxZPXcobmV3IFNldCksW3EsUV09UyhudWxsKSxLPWooKFcpPT57cmV0dXJuIFkuY3VycmVudC5hZGQoVyksKCk9PntZLmN1cnJlbnQuZGVsZXRlKFcpfX0sW10pO3JldHVybiBnKCgpPT57aWYoIVgpcmV0dXJuO2xldCBXPW5ldyBBYm9ydENvbnRyb2xsZXIsRz1YLnJlcGxhY2UoL1wvc3RyZWFtXC5tanBlZyQvLCIiKTtyZXR1cm4gZmV0Y2goYCR7R30vY29uZmlnYCx7c2lnbmFsOlcuc2lnbmFsfSkudGhlbigoeik9PnouanNvbigpKS50aGVuKCh6KT0+e2lmKHoud2lkdGg+MCYmei5oZWlnaHQ+MClKKHopfSkuY2F0Y2goKCk9Pnt9KSwoYXN5bmMoKT0+e3RyeXtsZXQgTz0oYXdhaXQgZmV0Y2goWCx7c2lnbmFsOlcuc2lnbmFsfSkpLmJvZHk/LmdldFJlYWRlcigpO2lmKCFPKXJldHVybjtsZXQgJD1uZXcgVWludDhBcnJheSgwKTt3aGlsZSghMCl7bGV0e2RvbmU6Xyx2YWx1ZTpBfT1hd2FpdCBPLnJlYWQoKTtpZihfKWJyZWFrO2xldCBNPW5ldyBVaW50OEFycmF5KCQubGVuZ3RoK0EubGVuZ3RoKTtNLnNldCgkKSxNLnNldChBLCQubGVuZ3RoKSwkPU07d2hpbGUoITApe2xldCBVPS0xO2ZvcihsZXQgRT0wO0U8JC5sZW5ndGgtMTtFKyspaWYoJFtFXT09PTI1NSYmJFtFKzFdPT09MjE2KXtVPUU7YnJlYWt9aWYoVT09PS0xKWJyZWFrO2xldCBrPS0xO2ZvcihsZXQgRT1VKzI7RTwkLmxlbmd0aC0xO0UrKylpZigkW0VdPT09MjU1JiYkW0UrMV09PT0yMTcpe2s9RSsyO2JyZWFrfWlmKGs9PT0tMSlicmVhaztsZXQgST0kLnNsaWNlKFUsayk7JD0kLnNsaWNlKGspO2xldCBDPW5ldyBCbG9iKFtJXSx7dHlwZToiaW1hZ2UvanBlZyJ9KSxoPVVSTC5jcmVhdGVPYmplY3RVUkwoQyk7UShoKTtmb3IobGV0IEUgb2YgWS5jdXJyZW50KUUoaCl9fX1jYXRjaHt9fSkoKSwoKT0+Vy5hYm9ydCgpfSxbWF0pLHtzdWJzY3JpYmVGcmFtZTpLLGZyYW1lOnEsY29uZmlnOlp9fXZhciBhNj17S2V5QTo0LEtleUI6NSxLZXlDOjYsS2V5RDo3LEtleUU6OCxLZXlGOjksS2V5RzoxMCxLZXlIOjExLEtleUk6MTIsS2V5SjoxMyxLZXlLOjE0LEtleUw6MTUsS2V5TToxNixLZXlOOjE3LEtleU86MTgsS2V5UDoxOSxLZXlROjIwLEtleVI6MjEsS2V5UzoyMixLZXlUOjIzLEtleVU6MjQsS2V5VjoyNSxLZXlXOjI2LEtleVg6MjcsS2V5WToyOCxLZXlaOjI5LERpZ2l0MTozMCxEaWdpdDI6MzEsRGlnaXQzOjMyLERpZ2l0NDozMyxEaWdpdDU6MzQsRGlnaXQ2OjM1LERpZ2l0NzozNixEaWdpdDg6MzcsRGlnaXQ5OjM4LERpZ2l0MDozOSxFbnRlcjo0MCxFc2NhcGU6NDEsQmFja3NwYWNlOjQyLFRhYjo0MyxTcGFjZTo0NCxNaW51czo0NSxFcXVhbDo0NixCcmFja2V0TGVmdDo0NyxCcmFja2V0UmlnaHQ6NDgsQmFja3NsYXNoOjQ5LFNlbWljb2xvbjo1MSxRdW90ZTo1MixCYWNrcXVvdGU6NTMsQ29tbWE6NTQsUGVyaW9kOjU1LFNsYXNoOjU2LENhcHNMb2NrOjU3LEYxOjU4LEYyOjU5LEYzOjYwLEY0OjYxLEY1OjYyLEY2OjYzLEY3OjY0LEY4OjY1LEY5OjY2LEYxMDo2NyxGMTE6NjgsRjEyOjY5LFByaW50U2NyZWVuOjcwLFNjcm9sbExvY2s6NzEsUGF1c2U6NzIsSW5zZXJ0OjczLEhvbWU6NzQsUGFnZVVwOjc1LERlbGV0ZTo3NixFbmQ6NzcsUGFnZURvd246NzgsQXJyb3dSaWdodDo3OSxBcnJvd0xlZnQ6ODAsQXJyb3dEb3duOjgxLEFycm93VXA6ODIsTnVtTG9jazo4MyxOdW1wYWREaXZpZGU6ODQsTnVtcGFkTXVsdGlwbHk6ODUsTnVtcGFkU3VidHJhY3Q6ODYsTnVtcGFkQWRkOjg3LE51bXBhZEVudGVyOjg4LE51bXBhZDE6ODksTnVtcGFkMjo5MCxOdW1wYWQzOjkxLE51bXBhZDQ6OTIsTnVtcGFkNTo5MyxOdW1wYWQ2Ojk0LE51bXBhZDc6OTUsTnVtcGFkODo5NixOdW1wYWQ5Ojk3LE51bXBhZDA6OTgsTnVtcGFkRGVjaW1hbDo5OSxDb250cm9sTGVmdDoyMjQsU2hpZnRMZWZ0OjIyNSxBbHRMZWZ0OjIyNixNZXRhTGVmdDoyMjcsQ29udHJvbFJpZ2h0OjIyOCxTaGlmdFJpZ2h0OjIyOSxBbHRSaWdodDoyMzAsTWV0YVJpZ2h0OjIzMX07ZnVuY3Rpb24gbDYoWCl7cmV0dXJuIGE2W1hdPz9udWxsfWFzeW5jIGZ1bmN0aW9uIE8wKFgpe3JldHVybihhd2FpdCBmZXRjaCgiL2V4ZWMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7Y29tbWFuZDpYfSl9KSkuanNvbigpfWZ1bmN0aW9uIGM2KFgpe3RyeXtsZXQgWj1KU09OLnBhcnNlKFgpLEo9W107Zm9yKGxldFtZLHFdb2YgT2JqZWN0LmVudHJpZXMoWi5kZXZpY2VzPz97fSkpe2xldCBRPVkucmVwbGFjZSgvXmNvbVwuYXBwbGVcLkNvcmVTaW11bGF0b3JcLlNpbVJ1bnRpbWVcLi8sIiIpLnJlcGxhY2UoLy0vZywiLiIpO2ZvcihsZXQgSyBvZiBxKWlmKEsuaXNBdmFpbGFibGUpSi5wdXNoKHt1ZGlkOksudWRpZCxuYW1lOksubmFtZSxzdGF0ZTpLLnN0YXRlLHJ1bnRpbWU6UX0pfXJldHVybiBKfWNhdGNoe3JldHVybltdfX1mdW5jdGlvbiB2NShYKXtsZXQgWj1YLnRvTG93ZXJDYXNlKCk7aWYoWi5pbmNsdWRlcygiaXBob25lIikpcmV0dXJuIDA7aWYoWi5pbmNsdWRlcygiaXBhZCIpKXJldHVybiAxO2lmKFouaW5jbHVkZXMoIndhdGNoIikpcmV0dXJuIDI7aWYoWi5pbmNsdWRlcygidmlzaW9uIikpcmV0dXJuIDM7cmV0dXJuIDR9ZnVuY3Rpb24geTUoWCl7bGV0IFo9WC50b0xvd2VyQ2FzZSgpO2lmKFouc3RhcnRzV2l0aCgiaW9zIikpcmV0dXJuIDA7aWYoWi5zdGFydHNXaXRoKCJpcGFkb3MiKSlyZXR1cm4gMTtpZihaLnN0YXJ0c1dpdGgoIndhdGNob3MiKSlyZXR1cm4gMjtpZihaLnN0YXJ0c1dpdGgoInZpc2lvbm9zIil8fFouc3RhcnRzV2l0aCgieHJvcyIpKXJldHVybiAzO3JldHVybiA0fWZ1bmN0aW9uIGk2KHtkZXZpY2VzOlgsc2VsZWN0ZWRVZGlkOlosbG9hZGluZzpKLGVycm9yOlksc3RvcHBpbmdVZGlkczpxLG9uUmVmcmVzaDpRLG9uU2VsZWN0Okssb25TdG9wOlcsdHJpZ2dlcjpHfSl7bGV0W3osT109UyghMSksJD13KG51bGwpO2coKCk9PntpZigheilyZXR1cm47bGV0IFU9KGspPT57aWYoISQuY3VycmVudD8uY29udGFpbnMoay50YXJnZXQpKU8oITEpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsVSksKCk9PndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLFUpfSxbel0pO2xldCBfPW5ldyBNYXA7Zm9yKGxldCBVIG9mIFgpe2lmKFUudWRpZD09PVopY29udGludWU7bGV0IGs9Xy5nZXQoVS5ydW50aW1lKTtpZighaylrPVtdLF8uc2V0KFUucnVudGltZSxrKTtrLnB1c2goVSl9Zm9yKGxldCBVIG9mIF8udmFsdWVzKCkpVS5zb3J0KChrLEkpPT52NShrLm5hbWUpLXY1KEkubmFtZSl8fGsubmFtZS5sb2NhbGVDb21wYXJlKEkubmFtZSkpO2xldCBBPVsuLi5fLmVudHJpZXMoKV0uc29ydCgoW1VdLFtrXSk9Pnk1KFUpLXk1KGspfHxVLmxvY2FsZUNvbXBhcmUoaykpLE09WC5maW5kKChVKT0+VS51ZGlkPT09Wik/P251bGw7cmV0dXJuIE4oImRpdiIse3JlZjokLHN0eWxlOntwb3NpdGlvbjoicmVsYXRpdmUifSxjaGlsZHJlbjpbTigiZGl2Iix7b25DbGljazooKT0+e2lmKCF6KVEoKTtPKChVKT0+IVUpfSxjaGlsZHJlbjpHfSkseiYmTigiZGl2Iix7c3R5bGU6bzYsY2hpbGRyZW46W04oImRpdiIse3N0eWxlOnM2LGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6e2ZvbnRXZWlnaHQ6NjAwfSxjaGlsZHJlbjoiU2ltdWxhdG9ycyJ9KSxOKCJidXR0b24iLHtvbkNsaWNrOihVKT0+e1Uuc3RvcFByb3BhZ2F0aW9uKCksUSgpfSxkaXNhYmxlZDpKLHN0eWxlOnI2LGNoaWxkcmVuOko/Ii4uLiI6IlJlZnJlc2gifSldfSksWSYmTigiZGl2Iix7c3R5bGU6dDYsY2hpbGRyZW46WX0pLE0mJk4oZix7Y2hpbGRyZW46W04oImRpdiIse3N0eWxlOnsuLi5nNSxjb2xvcjoiI2E1YjRmYyJ9LGNoaWxkcmVuOltOKCJzcGFuIix7c3R5bGU6cDUoTS5zdGF0ZT09PSJCb290ZWQiPyIjNGFkZTgwIjoiIzQ0NCIpfSksTigic3BhbiIse3N0eWxlOntmbGV4OjF9LGNoaWxkcmVuOk0ubmFtZX0pXX0pLE4oImRpdiIse3N0eWxlOm42fSldfSksWC5sZW5ndGg9PT0wJiYhSiYmIVkmJk4oImRpdiIse3N0eWxlOmU2LGNoaWxkcmVuOiJObyBhdmFpbGFibGUgc2ltdWxhdG9ycyBmb3VuZCJ9KSxBLm1hcCgoW1Usa10pPT5OKCJkaXYiLHtjaGlsZHJlbjpbTigiZGl2Iix7c3R5bGU6WDcsY2hpbGRyZW46VX0pLGsubWFwKChJKT0+e2xldCBDPXEuaGFzKEkudWRpZCksaD1JLnN0YXRlPT09IkJvb3RlZCI7cmV0dXJuIE4oImRpdiIse3N0eWxlOmc1LG9uTW91c2VFbnRlcjooRSk9PkUuY3VycmVudFRhcmdldC5zdHlsZS5iYWNrZ3JvdW5kPSJyZ2JhKDI1NSwyNTUsMjU1LDAuMDgpIixvbk1vdXNlTGVhdmU6KEUpPT5FLmN1cnJlbnRUYXJnZXQuc3R5bGUuYmFja2dyb3VuZD0idHJhbnNwYXJlbnQiLG9uQ2xpY2s6KCk9PntLKEkpLE8oITEpfSxjaGlsZHJlbjpbTigic3BhbiIse3N0eWxlOnA1KGg/IiM0YWRlODAiOiIjNDQ0Iil9KSxOKCJzcGFuIix7c3R5bGU6e2ZsZXg6MX0sY2hpbGRyZW46SS5uYW1lfSksaCYmTigic3BhbiIse3JvbGU6ImJ1dHRvbiIsb25DbGljazooRSk9PntpZihFLnN0b3BQcm9wYWdhdGlvbigpLCFDKVcoSS51ZGlkKX0sc3R5bGU6e2ZvbnRTaXplOjEwLHBhZGRpbmc6IjFweCA2cHgiLGJvcmRlclJhZGl1czo0LGNvbG9yOkM/IiM4ODgiOiIjZjg3MTcxIixiYWNrZ3JvdW5kOkM/InRyYW5zcGFyZW50IjoicmdiYSgyNDgsMTEzLDExMywwLjEpIixjdXJzb3I6Qz8iZGVmYXVsdCI6InBvaW50ZXIifSxjaGlsZHJlbjpDPyJTdG9wcGluZy4uLiI6IlN0b3AifSldfSxJLnVkaWQpfSldfSxVKSldfSldfSl9ZnVuY3Rpb24gcDUoWCl7cmV0dXJue3dpZHRoOjYsaGVpZ2h0OjYsYm9yZGVyUmFkaXVzOiI1MCUiLGJhY2tncm91bmQ6WCxmbGV4U2hyaW5rOjB9fWZ1bmN0aW9uIHU2KCl7bGV0IFg9d2luZG93Ll9fU0lNX1BSRVZJRVdfXyxbWixKXT1TKCExKSxbWSxxXT1TKFtdKSxbUSxLXT1TKCExKSxbVyxHXT1TKG51bGwpLFt6LE9dPVMobmV3IFNldCksWyQsX109UyghMSksQT1qKGFzeW5jKCk9PntLKCEwKSxHKG51bGwpO3RyeXtsZXQgRj1hd2FpdCBPMCgieGNydW4gc2ltY3RsIGxpc3QgZGV2aWNlcyBhdmFpbGFibGUgLWoiKTtpZihGLmV4aXRDb2RlIT09MCl0aHJvdyBFcnJvcihGLnN0ZGVycnx8InNpbWN0bCBsaXN0IGZhaWxlZCIpO3EoYzYoRi5zdGRvdXQpKX1jYXRjaChGKXtHKEYgaW5zdGFuY2VvZiBFcnJvcj9GLm1lc3NhZ2U6IkZhaWxlZCB0byBsaXN0IGRldmljZXMiKX1maW5hbGx5e0soITEpfX0sW10pO2lmKGcoKCk9PntBKCl9LFtBXSksZygoKT0+e2lmKCFYPy5sb2dzRW5kcG9pbnQpcmV0dXJuO2xldCBGPW5ldyBFdmVudFNvdXJjZShYLmxvZ3NFbmRwb2ludCksUj1uZXcgTWFwLHY9WyIjOGJlOWZkIiwiIzUwZmE3YiIsIiNmZmI4NmMiLCIjZmY3OWM2IiwiI2JkOTNmOSIsIiNmMWZhOGMiLCIjNjI3MmE0IiwiI2ZmNTU1NSIsIiM2OWZmOTQiLCIjZDZhY2ZmIiwiI2ZmZmZhNSIsIiNhNGZmZmYiLCIjZmY2ZTZlIiwiI2NhYTlmYSIsIiM1YWY3OGUiXTtmdW5jdGlvbiBUKEowKXtsZXQgeT1SLmdldChKMCk7aWYoIXkpe2xldCBYMD0wO2ZvcihsZXQgYT0wO2E8SjAubGVuZ3RoO2ErKylYMD0oWDA8PDUpLVgwK0owLmNoYXJDb2RlQXQoYSl8MDt5PXZbTWF0aC5hYnMoWDApJXYubGVuZ3RoXSxSLnNldChKMCx5KX1yZXR1cm4geX1sZXQgdT0iIixtPSExO3JldHVybiBGLm9ubWVzc2FnZT0oSjApPT57dHJ5e2xldCB5PUpTT04ucGFyc2UoSjAuZGF0YSksWDA9eS5wcm9jZXNzSW1hZ2VQYXRoPy5zcGxpdCgiLyIpLnBvcCgpPz95LnNlbmRlckltYWdlUGF0aD8uc3BsaXQoIi8iKS5wb3AoKT8/IiIsYT15LnN1YnN5c3RlbT8/IiIsVjA9eS5jYXRlZ29yeT8/IiIsWTA9eS5ldmVudE1lc3NhZ2U/PyIiO2lmKCFZMClyZXR1cm47aWYoWDAhPT11KXtpZihtKWNvbnNvbGUuZ3JvdXBFbmQoKTtsZXQgTTA9VChYMCk7Y29uc29sZS5ncm91cENvbGxhcHNlZChgJWMke1gwfSR7YT9gICVjJHthfSR7VjA/IjoiK1YwOiIifWA6IiJ9YCxgY29sb3I6JHtNMH07Zm9udC13ZWlnaHQ6Ym9sZGAsLi4uYT9bImNvbG9yOiM4ODg7Zm9udC13ZWlnaHQ6bm9ybWFsIl06W10pLG09ITAsdT1YMH1sZXQgYz0oeS5tZXNzYWdlVHlwZT8/IiIpLnRvTG93ZXJDYXNlKCksbz1hJiZYMD09PXU/YCVjJHtWMHx8YX0lYyBgOiIiLEEwPW8/WyJjb2xvcjojODg4O2ZvbnQtc3R5bGU6aXRhbGljIiwiY29sb3I6aW5oZXJpdCJdOltdO2lmKGM9PT0iZmF1bHQifHxjPT09ImVycm9yIiljb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjojZmY1NTU1Iik7ZWxzZSBpZihjPT09ImRlYnVnIiljb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjojNjI3MmE0Iik7ZWxzZSBjb25zb2xlLmxvZyhgJHtvfSVjJHtZMH1gLC4uLkEwLCJjb2xvcjppbmhlcml0Iil9Y2F0Y2h7fX0sKCk9PntpZihtKWNvbnNvbGUuZ3JvdXBFbmQoKTtGLmNsb3NlKCl9fSxbWD8ubG9nc0VuZHBvaW50XSksIVgpcmV0dXJuIE4oImRpdiIse3N0eWxlOk4wLnBhZ2UsY2hpbGRyZW46TigiZGl2Iix7c3R5bGU6TjAuZW1wdHksY2hpbGRyZW46W04oImgxIix7c3R5bGU6TjAuZW1wdHlUaXRsZSxjaGlsZHJlbjoiTm8gc2VydmUtc2ltIHN0cmVhbSBydW5uaW5nIn0pLE4oInAiLHtzdHlsZTpOMC5lbXB0eUhpbnQsY2hpbGRyZW46WyJCb290IGFuIGlPUyBzaW11bGF0b3IgYW5kIHN0YXJ0IGEgSGF0Y2ggc3RyZWFtIHdpdGgiLCIgIixOKCJjb2RlIix7c3R5bGU6TjAuY29kZSxjaGlsZHJlbjoiYnVueCBzZXJ2ZS1zaW0gLS1kZXRhY2gifSksIiwgdGhlbiByZWxvYWQuIl19KV19KX0pO2xldCBNPVkuZmluZCgoRik9PkYudWRpZD09PVguZGV2aWNlKT8/bnVsbDtnKCgpPT57ZG9jdW1lbnQudGl0bGU9TT8ubmFtZT9gU2ltdWxhdG9yIC0gJHtNLm5hbWV9YDoiU2ltdWxhdG9yIFByZXZpZXcifSxbTT8ubmFtZV0pO2xldCBVPWswKE0/Lm5hbWUpLGs9JDBbVV0sST1rLndpZHRoLTIqay5iZXplbFgsQz1rLmhlaWdodC0yKmsuYmV6ZWxZLGg9ZTAoVSksRT1VPT09InZpc2lvbiI/NTgwOlU9PT0iaXBhZCI/NDAwOlU9PT0id2F0Y2giPzIwMDozMjAsZT1kNihYLnN0cmVhbVVybCksWjA9dyhudWxsKTtnKCgpPT57bGV0IEY9bmV3IFdlYlNvY2tldChYLndzVXJsKTtyZXR1cm4gRi5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsWjAuY3VycmVudD1GLCgpPT57Ri5jbG9zZSgpLFowLmN1cnJlbnQ9bnVsbH19LFtYLndzVXJsXSk7bGV0IHg9aigoRixSKT0+e2xldCB2PVowLmN1cnJlbnQ7aWYoIXZ8fHYucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKXJldHVybjtsZXQgVD1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoUikpLHU9bmV3IFVpbnQ4QXJyYXkoMStULmxlbmd0aCk7dVswXT1GLHUuc2V0KFQsMSksdi5zZW5kKHUpfSxbXSksSzA9aigoRik9PngoMyxGKSxbeF0pLHM9aigoRik9PngoNSxGKSxbeF0pLHI9aigoRik9PngoNCx7YnV0dG9uOkZ9KSxbeF0pLFUwPWooKEYsUik9Pnt4KDYse3R5cGU6Rix1c2FnZTpSfSl9LFt4XSksW2owLHYwXT1TKG51bGwpO2coKCk9PntsZXQgRj1uZXcgRXZlbnRTb3VyY2UoIi9hcHBzdGF0ZSIpLFI9bnVsbDtyZXR1cm4gRi5vbm1lc3NhZ2U9KHYpPT57dHJ5e2xldCBUPUpTT04ucGFyc2Uodi5kYXRhKTtpZihSKWNsZWFyVGltZW91dChSKTtsZXQgdT1UPy5pc1JlYWN0TmF0aXZlPzA6NjAwO1I9c2V0VGltZW91dCgoKT0+djAoVCksdSl9Y2F0Y2h7fX0sKCk9PntpZihSKWNsZWFyVGltZW91dChSKTtGLmNsb3NlKCl9fSxbXSk7bGV0IEcwPWooYXN5bmMoKT0+e1UwKCJkb3duIiwyMjcpLGF3YWl0IG5ldyBQcm9taXNlKCh2KT0+c2V0VGltZW91dCh2LDMwKSksVTAoImRvd24iLDIxKSxhd2FpdCBuZXcgUHJvbWlzZSgodik9PnNldFRpbWVvdXQodiwzMCkpLFUwKCJ1cCIsMjEpLGF3YWl0IG5ldyBQcm9taXNlKCh2KT0+c2V0VGltZW91dCh2LDMwKSksVTAoInVwIiwyMjcpfSxbVTBdKTtnKCgpPT57bGV0IEY9KFQsdSk9PntpZihULmNvZGU9PT0iS2V5SCImJlQubWV0YUtleSYmVC5zaGlmdEtleSl7aWYoVC5wcmV2ZW50RGVmYXVsdCgpLHU9PT0iZG93biImJiFULnJlcGVhdCl4KDQse2J1dHRvbjoiaG9tZSJ9KTtyZXR1cm59aWYoVC5jb2RlPT09IktleUEiJiZULm1ldGFLZXkmJlQuc2hpZnRLZXkpe2lmKFQucHJldmVudERlZmF1bHQoKSx1PT09ImRvd24iJiYhVC5yZXBlYXQpTzAoYHhjcnVuIHNpbWN0bCB1aSAke1guZGV2aWNlfSBhcHBlYXJhbmNlYCkudGhlbigoSjApPT57bGV0IHk9SjAuc3Rkb3V0LnRyaW0oKT09PSJkYXJrIj8ibGlnaHQiOiJkYXJrIjtyZXR1cm4gTzAoYHhjcnVuIHNpbWN0bCB1aSAke1guZGV2aWNlfSBhcHBlYXJhbmNlICR7eX1gKX0pLmNhdGNoKCgpPT57fSk7cmV0dXJufWxldCBtPWw2KFQuY29kZSk7aWYobT09bnVsbClyZXR1cm47VC5wcmV2ZW50RGVmYXVsdCgpLHgoNix7dHlwZTp1LHVzYWdlOm19KX0sUj0oVCk9PkYoVCwiZG93biIpLHY9KFQpPT5GKFQsInVwIik7cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixSKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLHYpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLFIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsdil9fSxbeCxYLmRldmljZV0pO2xldCBKND1qKGFzeW5jKEYpPT57aWYoJHx8Ri51ZGlkPT09WC5kZXZpY2UpcmV0dXJuO18oITApO3RyeXtpZihGLnN0YXRlIT09IkJvb3RlZCIpYXdhaXQgTzAoYHhjcnVuIHNpbWN0bCBib290ICR7Ri51ZGlkfWApO2F3YWl0IE8wKGBidW54IHNlcnZlLXNpbSAtLWtpbGwgJHtYLmRldmljZX1gKSxhd2FpdCBPMChgYnVueCBzZXJ2ZS1zaW0gLS1kZXRhY2ggJHtGLnVkaWR9YCksd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfWNhdGNoe18oITEpfX0sWyQsWC5kZXZpY2VdKSxJMD1qKGFzeW5jKEYpPT57TygoUik9Pm5ldyBTZXQoUikuYWRkKEYpKTt0cnl7YXdhaXQgTzAoYHhjcnVuIHNpbWN0bCBzaHV0ZG93biAke0Z9YCksYXdhaXQgQSgpfWZpbmFsbHl7TygoUik9PntsZXQgdj1uZXcgU2V0KFIpO3JldHVybiB2LmRlbGV0ZShGKSx2fSl9fSxbQV0pO3JldHVybiBOKCJkaXYiLHtzdHlsZTpOMC5wYWdlLGNoaWxkcmVuOltOKHQse2V4ZWM6TzAsZGV2aWNlVWRpZDpYLmRldmljZSxkZXZpY2VOYW1lOk0/Lm5hbWU/P251bGwsZGV2aWNlUnVudGltZTpNPy5ydW50aW1lPz9udWxsLHN0cmVhbWluZzpaLHN0eWxlOnttYXhXaWR0aDpFfSxjaGlsZHJlbjpbTihpNix7ZGV2aWNlczpZLHNlbGVjdGVkVWRpZDpYLmRldmljZSxsb2FkaW5nOlEsZXJyb3I6VyxzdG9wcGluZ1VkaWRzOnosb25SZWZyZXNoOkEsb25TZWxlY3Q6SjQsb25TdG9wOkkwLHRyaWdnZXI6Tih0LlRpdGxlLHt9KX0pLE4odC5BY3Rpb25zLHtjaGlsZHJlbjpbajA/LmlzUmVhY3ROYXRpdmUmJk4odC5CdXR0b24seyJhcmlhLWxhYmVsIjoiUmVsb2FkIFJlYWN0IE5hdGl2ZSBidW5kbGUiLHRpdGxlOiJSZWxvYWQgKENtZCtSKSIsb25DbGljazooKT0+dm9pZCBHMCgpLGNoaWxkcmVuOk4oInN2ZyIse3dpZHRoOiIxOCIsaGVpZ2h0OiIxOCIsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6IjIiLHN0cm9rZUxpbmVjYXA6InJvdW5kIixzdHJva2VMaW5lam9pbjoicm91bmQiLGNoaWxkcmVuOltOKCJwYXRoIix7ZDoiTTMgMTJhOSA5IDAgMSAwIDMuNS03LjEifSksTigicG9seWxpbmUiLHtwb2ludHM6IjMgMyAzIDkgOSA5In0pXX0pfSksTih0LkhvbWVCdXR0b24se29uQ2xpY2s6KEYpPT57Ri5wcmV2ZW50RGVmYXVsdCgpLHIoImhvbWUiKX19KSxOKHQuU2NyZWVuc2hvdEJ1dHRvbix7fSksTih0LlJvdGF0ZUJ1dHRvbix7fSldfSldfSksTigiZGl2Iix7c3R5bGU6e21heFdpZHRoOkUsd2lkdGg6IjEwMCUiLGFzcGVjdFJhdGlvOmAke0l9IC8gJHtDfWB9LGNoaWxkcmVuOk4objAse3VybDpYLnVybCxzdHlsZTp7d2lkdGg6IjEwMCUiLGhlaWdodDoiMTAwJSIsYm9yZGVyOiJub25lIn0saW1hZ2VTdHlsZTp7Ym9yZGVyUmFkaXVzOmgsY29ybmVyU2hhcGU6InN1cGVyZWxsaXBzZSgxLjMpIn0saGlkZUNvbnRyb2xzOiEwLG9uU3RyZWFtaW5nQ2hhbmdlOkosb25TdHJlYW1Ub3VjaDpLMCxvblN0cmVhbU11bHRpVG91Y2g6cyxvblN0cmVhbUJ1dHRvbjpyLHN1YnNjcmliZUZyYW1lOmUuc3Vic2NyaWJlRnJhbWUsc3RyZWFtRnJhbWU6ZS5mcmFtZSxzdHJlYW1Db25maWc6ZS5jb25maWd9KX0pLE4oImRpdiIse3N0eWxlOk4wLmJhcixjaGlsZHJlbjpOKCJzcGFuIix7c3R5bGU6ey4uLk4wLmxpdmUsY29sb3I6Wj8iIzRhZGU4MCI6IiM2NjYifSxjaGlsZHJlbjpbTigic3BhbiIse3N0eWxlOnsuLi5OMC5kb3QsYmFja2dyb3VuZDpaPyIjNGFkZTgwIjoiIzY2NiJ9fSksWj8ibGl2ZSI6ImNvbm5lY3RpbmciXX0pfSldfSl9dmFyIE4wPXtwYWdlOntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsanVzdGlmeUNvbnRlbnQ6ImNlbnRlciIsaGVpZ2h0OiIxMDB2aCIsYmFja2dyb3VuZDoiIzBhMGEwYSIscGFkZGluZzoyNCxnYXA6MTIsZm9udEZhbWlseToiLWFwcGxlLXN5c3RlbSwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmIn0sYmFyOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDoxMCxmb250U2l6ZToxMixmb250RmFtaWx5OiJ1aS1tb25vc3BhY2UsIG1vbm9zcGFjZSIsY29sb3I6IiM2NjYifSxsaXZlOntkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo1LHRyYW5zaXRpb246ImNvbG9yIDAuM3MifSxkb3Q6e3dpZHRoOjYsaGVpZ2h0OjYsYm9yZGVyUmFkaXVzOiI1MCUiLHRyYW5zaXRpb246ImJhY2tncm91bmQgMC4zcyJ9LGVtcHR5OntkaXNwbGF5OiJmbGV4IixmbGV4RGlyZWN0aW9uOiJjb2x1bW4iLGFsaWduSXRlbXM6ImNlbnRlciIsZ2FwOjEyLHRleHRBbGlnbjoiY2VudGVyIn0sZW1wdHlUaXRsZTp7Zm9udFNpemU6MTgsbWFyZ2luOjAsY29sb3I6IiNlZWUifSxlbXB0eUhpbnQ6e2NvbG9yOiIjODg4Iixmb250U2l6ZToxNCxtYXhXaWR0aDo0ODB9LGNvZGU6e2JhY2tncm91bmQ6IiMyMjIiLHBhZGRpbmc6IjJweCA2cHgiLGJvcmRlclJhZGl1czo0LGZvbnRTaXplOjEzfX0sbzY9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdG9wOiJjYWxjKDEwMCUgKyA2cHgpIixsZWZ0OjAsbWluV2lkdGg6MjYwLG1heEhlaWdodDozNjAsb3ZlcmZsb3dZOiJhdXRvIixiYWNrZ3JvdW5kOiIjMWMxYzFlIixib3JkZXI6IjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpIixib3JkZXJSYWRpdXM6MTAscGFkZGluZzo0LGJveFNoYWRvdzoiMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuNSkiLGZvbnRGYW1pbHk6InVpLW1vbm9zcGFjZSwgbW9ub3NwYWNlIixmb250U2l6ZToxMyxjb2xvcjoiI2VlZSIsekluZGV4OjIwfSxzNj17ZGlzcGxheToiZmxleCIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoic3BhY2UtYmV0d2VlbiIscGFkZGluZzoiNnB4IDEwcHgiLGZvbnRTaXplOjExLGNvbG9yOiIjYWFhIn0scjY9e2JhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLGNvbG9yOiIjYTViNGZjIixmb250U2l6ZToxMSxjdXJzb3I6InBvaW50ZXIiLHBhZGRpbmc6MH0sdDY9e3BhZGRpbmc6IjZweCAxMHB4Iixjb2xvcjoiI2Y4NzE3MSIsZm9udFNpemU6MTF9LGc1PXtkaXNwbGF5OiJmbGV4IixhbGlnbkl0ZW1zOiJjZW50ZXIiLGdhcDo4LHBhZGRpbmc6IjZweCAxMHB4Iixib3JkZXJSYWRpdXM6NixjdXJzb3I6InBvaW50ZXIiLHRyYW5zaXRpb246ImJhY2tncm91bmQgMC4xNXMifSxuNj17aGVpZ2h0OjEsYmFja2dyb3VuZDoicmdiYSgyNTUsMjU1LDI1NSwwLjA4KSIsbWFyZ2luOiI0cHggMCJ9LGU2PXtwYWRkaW5nOjEyLGNvbG9yOiJyZ2JhKDI1NSwyNTUsMjU1LDAuNCkiLGZvbnRTaXplOjExLHRleHRBbGlnbjoiY2VudGVyIn0sWDc9e3BhZGRpbmc6IjZweCAxMHB4IDJweCIsZm9udFNpemU6MTAsZm9udFdlaWdodDo2MDAsY29sb3I6InJnYmEoMjU1LDI1NSwyNTUsMC40KSIsdGV4dFRyYW5zZm9ybToidXBwZXJjYXNlIixsZXR0ZXJTcGFjaW5nOiIwLjA4ZW0ifTtPNShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicm9vdCIpKS5yZW5kZXIoTih1Nix7fSkpOwo8L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=","base64").toString("utf-8");return P}function Ie(e){let _=(e?.basePath??"/.sim").replace(/\/+$/,"");return(t,s,r)=>{let S=t.url??"";if(S===_||S===_+"/"){let C=h()[0]??null,$=Me();if(C){let n=`<script>window.__SIM_PREVIEW__=${JSON.stringify({...C,logsEndpoint:_+"/logs"})}</script>`;$=$.replace("<!--__SIM_PREVIEW_CONFIG__-->",n)}s.writeHead(200,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store"}),s.end($);return}if(S===_+"/api"){let o=h();s.writeHead(200,{"Content-Type":"application/json","Cache-Control":"no-store"}),s.end(JSON.stringify(o[0]||null));return}if((S===_+"/exec"||S===_+"/exec/")&&t.method==="POST"){let o="";t.on("data",(C)=>{o+=typeof C==="string"?C:C.toString()}),t.on("end",()=>{let C="";try{C=JSON.parse(o).command??""}catch{}if(!C){s.writeHead(400,{"Content-Type":"application/json"}),s.end(JSON.stringify({stdout:"",stderr:"Missing command",exitCode:1}));return}Oe(C,{maxBuffer:16777216},($,i,n)=>{s.writeHead(200,{"Content-Type":"application/json"}),s.end(JSON.stringify({stdout:i.toString(),stderr:n.toString(),exitCode:$?$.code??1:0}))})});return}if(S===_+"/logs"||S.startsWith(_+"/logs?")){let o=h();if(o.length===0){s.writeHead(404),s.end("No serve-sim device");return}let C=o[0].device;s.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Accel-Buffering":"no"}),s.write(`:
4
4
 
5
5
  `);let $=x("xcrun",["simctl","spawn",C,"log","stream","--style","ndjson","--level","info"],{stdio:["ignore","pipe","ignore"]}),i="";$.stdout.on("data",(n)=>{i+=n.toString();let a;while((a=i.indexOf(`
6
6
  `))!==-1){let y=i.slice(0,a).trim();if(i=i.slice(a+1),y)s.write("data: "+y+`
@@ -10,7 +10,7 @@ var pe=Object.defineProperty;var De=(e)=>e;function Ee(e,_){this[e]=De.bind(null
10
10
  `);let $=x("xcrun",["simctl","spawn",C,"log","stream","--style","ndjson","--level","info","--predicate",'process == "SpringBoard" AND eventMessage CONTAINS "Setting process visibility to: Foreground"'],{stdio:["ignore","pipe","ignore"]}),i=/\[app<([^>]+)>:(\d+)\] Setting process visibility to: Foreground/,n="",a="";$.stdout.on("data",(y)=>{a+=y.toString();let R;while((R=a.indexOf(`
11
11
  `))!==-1){let D=a.slice(0,R).trim();if(a=a.slice(R+1),!D)continue;let A;try{A=JSON.parse(D).eventMessage??""}catch{continue}let c=i.exec(A);if(!c)continue;let B=c[1],W=parseInt(c[2],10);if(!We(B))continue;if(B===n)continue;n=B,Pe(C,B).then((Te)=>{s.write("data: "+JSON.stringify({bundleId:B,pid:W,isReactNative:Te})+`
12
12
 
13
- `)})}}),$.on("close",()=>s.end()),t.on("close",()=>$.kill());return}if(r)r()}}var K,Ne,Ve,Le,b,P=null;var z=Fe(()=>{K=q(He(),"serve-sim"),Ne=new Set(["host.exp.Exponent","dev.expo.Exponent"]),Ve=["Frameworks/React.framework","Frameworks/hermes.framework","Frameworks/Hermes.framework","Frameworks/ExpoModulesCore.framework","main.jsbundle"],Le=/(WidgetRenderer|ExtensionHost|\.extension(\.|$)|Service|PlaceholderApp|InCallService|CallUI|InCallUI|com\.apple\.Preferences\.Cellular|com\.apple\.purplebuddy|com\.apple\.chrono|com\.apple\.shuttle|com\.apple\.usernotificationsui)/i;b={at:0,booted:null}});import{execSync as T,spawn as Z}from"child_process";import{chmodSync as Ue,existsSync as l,mkdirSync as Y,openSync as ee,closeSync as _e,readFileSync as H,unlinkSync as N,writeFileSync as te}from"fs";import{createHash as ke}from"crypto";import{homedir as Xe,networkInterfaces as Ge}from"os";import{join as xe,resolve as M}from"path";import{tmpdir as le}from"os";import{join as g}from"path";import{readdirSync as ue}from"fs";var p=g(le(),"serve-sim"),c_=g(p,"server.json");function w(e){return g(p,`server-${e}.json`)}function v(){try{return ue(p).filter((e)=>e.startsWith("server-")&&e.endsWith(".json")).map((e)=>g(p,e))}catch{return[]}}var d="./serve-sim-bin-jx3xe3v9.";function X(){if(!l(p))Y(p,{recursive:!0})}function E(e){if(e)return I(w(e));for(let _ of v()){let t=I(_);if(t)return t}return null}var O={at:0,booted:null};function Ke(){let e=Date.now();if(O.booted&&e-O.at<1000)return O.booted;try{let _=T("xcrun simctl list devices booted -j",{encoding:"utf-8",stdio:["ignore","pipe","pipe"],timeout:3000}),t=JSON.parse(_),s=new Set;for(let r of Object.values(t.devices))for(let S of r)if(S.state==="Booted")s.add(S.udid);return O={at:e,booted:s},s}catch{return null}}function I(e){try{if(!l(e))return null;let _=JSON.parse(H(e,"utf-8"));try{process.kill(_.pid,0)}catch{return N(e),null}let t=Ke();if(t&&!t.has(_.device)){console.error(`[serve-sim] Helper pid ${_.pid} is bound to device ${_.device} which is no longer booted \u2014 killing stale helper.`);try{process.kill(_.pid,"SIGTERM")}catch{}try{N(e)}catch{}return null}return _}catch{return null}}function V(){let e=[];for(let _ of v()){let t=I(_);if(t)e.push(t)}return e}function Q(e){X(),te(w(e.device),JSON.stringify(e,null,2))}function u(e){if(e)try{N(w(e))}catch{}else for(let _ of v())try{N(_)}catch{}}function je(){let e=d.startsWith("/$bunfs/");if(!e&&l(d))return d;if(!e){let S=M(import.meta.dir,"../bin/serve-sim-bin");if(l(S))return S;throw Error(`serve-sim-bin not found. Run 'bun run build:swift' first.
13
+ `)})}}),$.on("close",()=>s.end()),t.on("close",()=>$.kill());return}if(r)r()}}var K,Ne,Ve,Le,b,P=null;var z=Fe(()=>{K=q(He(),"serve-sim"),Ne=new Set(["host.exp.Exponent","dev.expo.Exponent"]),Ve=["Frameworks/React.framework","Frameworks/hermes.framework","Frameworks/Hermes.framework","Frameworks/ExpoModulesCore.framework","main.jsbundle"],Le=/(WidgetRenderer|ExtensionHost|\.extension(\.|$)|Service|PlaceholderApp|InCallService|CallUI|InCallUI|com\.apple\.Preferences\.Cellular|com\.apple\.purplebuddy|com\.apple\.chrono|com\.apple\.shuttle|com\.apple\.usernotificationsui)/i;b={at:0,booted:null}});import{execSync as T,spawn as Z}from"child_process";import{chmodSync as Ue,existsSync as l,mkdirSync as Y,openSync as ee,closeSync as _e,readFileSync as H,unlinkSync as N,writeFileSync as te}from"fs";import{createHash as ke}from"crypto";import{homedir as Xe,networkInterfaces as Ge}from"os";import{join as xe,resolve as M}from"path";import{tmpdir as le}from"os";import{join as g}from"path";import{readdirSync as ue}from"fs";var p=g(le(),"serve-sim"),c_=g(p,"server.json");function w(e){return g(p,`server-${e}.json`)}function v(){try{return ue(p).filter((e)=>e.startsWith("server-")&&e.endsWith(".json")).map((e)=>g(p,e))}catch{return[]}}var d="./serve-sim-bin-w8c60wyx.";function X(){if(!l(p))Y(p,{recursive:!0})}function E(e){if(e)return I(w(e));for(let _ of v()){let t=I(_);if(t)return t}return null}var O={at:0,booted:null};function Ke(){let e=Date.now();if(O.booted&&e-O.at<1000)return O.booted;try{let _=T("xcrun simctl list devices booted -j",{encoding:"utf-8",stdio:["ignore","pipe","pipe"],timeout:3000}),t=JSON.parse(_),s=new Set;for(let r of Object.values(t.devices))for(let S of r)if(S.state==="Booted")s.add(S.udid);return O={at:e,booted:s},s}catch{return null}}function I(e){try{if(!l(e))return null;let _=JSON.parse(H(e,"utf-8"));try{process.kill(_.pid,0)}catch{return N(e),null}let t=Ke();if(t&&!t.has(_.device)){console.error(`[serve-sim] Helper pid ${_.pid} is bound to device ${_.device} which is no longer booted \u2014 killing stale helper.`);try{process.kill(_.pid,"SIGTERM")}catch{}try{N(e)}catch{}return null}return _}catch{return null}}function V(){let e=[];for(let _ of v()){let t=I(_);if(t)e.push(t)}return e}function Q(e){X(),te(w(e.device),JSON.stringify(e,null,2))}function u(e){if(e)try{N(w(e))}catch{}else for(let _ of v())try{N(_)}catch{}}function je(){let e=d.startsWith("/$bunfs/");if(!e&&l(d))return d;if(!e){let S=M(import.meta.dir,"../bin/serve-sim-bin");if(l(S))return S;throw Error(`serve-sim-bin not found. Run 'bun run build:swift' first.
14
14
  Checked: ${d}, ${S}`)}let _=H(d),t=ke("sha256").update(_).digest("hex").slice(0,16),s=M(Xe(),"Library/Caches/serve-sim");Y(s,{recursive:!0});let r=M(s,`serve-sim-bin-${t}`);if(!l(r)){te(r,_),Ue(r,493);try{T(`codesign -s - -f ${JSON.stringify(r)}`,{stdio:"ignore"})}catch{}}return r}function se(){try{let e=T("xcrun simctl list devices booted -j",{encoding:"utf-8"}),_=JSON.parse(e);for(let t of Object.values(_.devices))for(let s of t)if(s.state==="Booted")return s.udid}catch{}return null}function J(e){try{let _=T("xcrun simctl list devices -j",{encoding:"utf-8"}),t=JSON.parse(_);for(let s of Object.values(t.devices))for(let r of s)if(r.udid===e)return r.name}catch{}return null}function L(e){if(/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i.test(e))return e;try{let _=T("xcrun simctl list devices -j",{encoding:"utf-8"}),t=JSON.parse(_);for(let s of Object.values(t.devices))for(let r of s)if(r.name.toLowerCase()===e.toLowerCase())return r.udid}catch{}console.error(`Could not resolve device: ${e}`),process.exit(1)}function Se(e){try{let _=T("xcrun simctl list devices -j",{encoding:"utf-8"}),t=JSON.parse(_);for(let s of Object.values(t.devices))for(let r of s)if(r.udid===e)return r.state==="Booted"}catch{}return!1}function U(e){try{return process.kill(e,0),!0}catch{return!1}}function k(e){try{process.kill(e,"SIGTERM")}catch{return}let _=Date.now()+500;while(Date.now()<_)try{process.kill(e,0),Bun.sleepSync(25)}catch{return}try{process.kill(e,"SIGKILL")}catch{}let t=Date.now()+500;while(Date.now()<t)try{process.kill(e,0),Bun.sleepSync(25)}catch{return}}function ze(e){try{let _=T(`lsof -ti tcp:${e}`,{encoding:"utf-8",stdio:"pipe"}).trim();if(!_)return[];let t=process.pid;return _.split(`
15
15
  `).map((s)=>parseInt(s,10)).filter((s)=>Number.isFinite(s)&&s!==t)}catch{return[]}}function Qe(e){let _=ze(e);if(_.length===0)return;console.log(`\x1B[90mPort ${e} busy, killing holder pid(s): ${_.join(", ")}\x1B[0m`);for(let t of _)try{process.kill(t,"SIGKILL")}catch{}Bun.sleepSync(100)}function Je(e){if(!Se(e))try{T(`xcrun simctl boot ${e}`,{encoding:"utf-8",stdio:"pipe"})}catch(_){let t=(_.stderr??_.message??"").toLowerCase();if(!t.includes("booted")&&!t.includes("current state"))throw Error(`Failed to boot device ${e}: ${_.stderr||_.message}`)}try{T("open -ga Simulator",{encoding:"utf-8",stdio:"pipe",timeout:3000})}catch{}}function Ze(){let e=Ge();for(let _ of Object.values(e))for(let t of _??[])if(t.family==="IPv4"&&!t.internal)return t.address;return null}async function ie(e){let _=new Set(V().map((t)=>t.port));for(let t=e;t<e+100;t++){if(_.has(t))continue;try{return Bun.serve({port:t,fetch:()=>new Response("ok")}).stop(!0),t}catch{continue}}throw Error(`No available port found in range ${e}-${e+99}`)}async function Ye(e){Je(e);try{T(`xcrun simctl bootstatus ${e} -b`,{encoding:"utf-8",stdio:"pipe",timeout:60000})}catch(_){if(!Se(e))console.error(`Device ${e} failed to reach booted state: ${_.stderr||_.message}`),process.exit(1)}}async function re(e,_,t,s){let r=!1;for(let o=0;o<30;o++){if(!s())break;try{if((await fetch(`${_}/health`)).ok){r=!0;break}}catch{}await new Promise((C)=>setTimeout(C,100))}if(r){let o=Date.now()+8000;while(Date.now()<o){if(await new Promise((C)=>setTimeout(C,200)),!s()){r=!1;break}try{if(H(t,"utf-8").includes("Capture started"))break}catch{}}}let S="";try{S=H(t,"utf-8").trim()}catch{}return{ready:r,log:S}}async function e_(e){let{helperPath:_,udid:t,port:s,host:r,logFile:S}=e,o=`http://${r}:${s}`;X();let C=ee(S,"w"),$=Z(_,[t,"--port",String(s)],{detached:!0,stdio:["ignore",C,C]});$.unref(),_e(C);let i=$.pid,n=!1;$.once("exit",()=>{n=!0});let{ready:a,log:y}=await re(i,o,S,()=>!n&&U(i));return{ready:a,pid:i,exited:n||!U(i),log:y}}async function __(e){let{helperPath:_,udid:t,port:s,host:r,logFile:S}=e,o=`http://${r}:${s}`;X();let C=ee(S,"w"),$=Z(_,[t,"--port",String(s)],{detached:!1,stdio:["ignore",C,C]});_e(C);let i=$.pid,n=!1;$.once("exit",()=>{n=!0});let{ready:a,log:y}=await re(i,o,S,()=>!n&&U(i));return{ready:a,child:$,log:y}}async function Ce(e,_,t){await Ye(e);let s="127.0.0.1",r=je(),S=xe(p,`server-${e}.log`),o={helperPath:r,udid:e,port:_,host:s,logFile:S},C="",$=2;for(let n=1;n<=$;n++){if(Qe(_),t.detach){let a=await e_(o);if(a.ready){let y={pid:a.pid,port:_,device:e,url:`http://${s}:${_}`,streamUrl:`http://${s}:${_}/stream.mjpeg`,wsUrl:`ws://${s}:${_}/ws`};return Q(y),{pid:a.pid}}k(a.pid),C=a.log}else{let a=await __(o);if(a.ready){let y={pid:a.child.pid,port:_,device:e,url:`http://${s}:${_}`,streamUrl:`http://${s}:${_}/stream.mjpeg`,wsUrl:`ws://${s}:${_}/ws`};return Q(y),{pid:a.child.pid,child:a.child}}k(a.child.pid),C=a.log}if(n<$)await new Promise((a)=>setTimeout(a,500))}let i=C?`Helper failed:
16
16
  ${C}`:"Helper process failed to start";console.error(i),process.exit(1)}async function t_(e,_,t){let s=e.length>0?e.map(L):(()=>{let i=se();if(!i)console.error("No device specified and no booted simulator found."),process.exit(1);return[i]})(),r=new Map,S=[],o=_;for(let i of s){let n=E(i);if(n){if(!t){let A=J(i)??i;if(s.length>1)console.log(`