text: var von=von||{};von.utils={PI:Math.PI,TAU:2*Math.PI,DEG_TO_RAD:.0174532925,RAD_TO_DEG:57.2957795,clamp:function(t,n,r){return Math.max(n,Math.min(r,t))},sign:function(t){return t&&t/Math.abs(t)},random:function(t,n){return 1===arguments.length?Math.random()*t-.5*t:Math.random()*(n-t)+t},randomInt:function(t,n){return 1===arguments.length?Math.random()*t-.5*t|0:Math.random()*(n-t+1)+t|0},normalize:function(t,n,r){return(t-n)/(r-n)},getShortRotation:function(t){return t%=this.TAU,t>this.PI?t-=this.TAU:t<-this.PI&&(t+=this.TAU),t},generateID:function(){return Math.random().toString(36).slice(2)+Date.now()},isPlainObject:function(t){if("object"!=typeof t||t.nodeType||t===t.window)return!1;try{if(t.constructor&&!Object.prototype.hasOwnProperty.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}return!0},merge:function(){var t,n,r,e,o,a,i=arguments[0]||{},s=1,u=arguments.length,c=!1;for("boolean"==typeof i&&(c=i,i=arguments[1]||{},s=2);u>s;s++)if(null!==(t=arguments[s]))for(n in t)r=i[n],e=t[n],i!==e&&(c&&e&&(this.isPlainObject(e)||(o=Array.isArray(e)))?(o?(o=!1,a=r&&Array.isArray(r)?r:[]):a=r&&this.isPlainObject(r)?r:{},i[n]=this.merge(c,a,e)):void 0!==e&&(i[n]=e));return i},now:function(){return window.nwf?window.nwf.system.Performance.elapsedTime:window.performance.now()},empty:function(t){for(;t.lastChild;)t.removeChild(t.lastChild)},getJSON:function(t,n,r){var e;if("undefined"!=typeof XMLHttpRequest)e=new XMLHttpRequest;else for(var o=["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.2.0","Microsoft.XmlHttp"],a=0,i=o.length;i>a;a++)try{e=new ActiveXObject(o[a]);break}catch(s){}e.onreadystatechange=function(){return this.readyState<4||200!==this.status?void console.warn("[Tools] Error - "+this.statusText+" - loading "+t):void n.call(r||this,JSON.parse(this.responseText))},e.open("GET",t,!0),e.send("")}};