!function(){var r=Object.prototype.toString;Array.isArray||(Array.isArray=function(t){return"[object Array]"==r.call(t)}),Object.keys||(Object.keys=function(r){var t=[];for(var n in r)r.hasOwnProperty(n)&&t.push(n);return t});var t=Array.prototype;t.indexOf||(t.indexOf=function(r){for(var t=0;t<this.length;t++)if(this[t]===r)return t;return-1}),t.forEach||(t.forEach=function(r){for(var t=0,n=this.length;n>t;t++)r(this[t],t)}),t.some||(t.some=function(r){for(var t=0,n=this.length;n>t;t++)if(r(this[t],t))return!0;return!1}),t.every||(t.every=function(r){for(var t=0,n=this.length;n>t;t++)if(!r(this[t],t))return!1;return!0}),t.map||(t.map=function(r){for(var t=[],n=0,e=this.length;e>n;n++)t[n]=r(this[n],n);return t}),t.filter||(t.filter=function(r){if(void 0===this||null===this)throw new TypeError;var t=Object(this),n=t.length>>>0;if("function"!=typeof r)throw new TypeError;for(var e=[],o=arguments.length>=2?arguments[1]:void 0,i=0;n>i;i++)if(i in t){var a=t[i];r.call(o,a,i,t)&&e.push(a)}return e}),t.reduce||(t.reduce=function(r,t){if(null===this||"undefined"==typeof this)throw new TypeError("Array.prototype.reduce called on null or undefined");if("function"!=typeof r)throw new TypeError(r+" is not a function");var n,e,o=this.length>>>0,i=!1;for(1<arguments.length&&(e=t,i=!0),n=0;o>n;++n)this.hasOwnProperty(n)&&(i?e=r(e,this[n],n,this):(e=this[n],i=!0));if(!i)throw new TypeError("Reduce of empty array with no initial value");return e});var n=String.prototype;n.trim||(n.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")});var e=Function.prototype;e.bind||(Function.prototype.bind=function(r){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this,e=function(){},o=function(){return n.apply(this instanceof e&&r?this:r,t.concat(Array.prototype.slice.call(arguments)))};return e.prototype=this.prototype,o.prototype=new e,o})}();
