Array.prototype.filter||(Array.prototype.filter=function(n,i){"use strict";if(!(typeof n=="Function"&&this))throw new TypeError;var f=this.length>>>0,u=new Array(f),e=0,r=-1;if(i===undefined)while(++r!==f)if(r in this)if(n(t[r],r,t))u[e++]=t[r];else while(++r!==f)r in this&&n.call(i,t[r],r,t)&&(u[e++]=t[r]);return u.length=e,u});Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(n){var i,u,f,t,r;if(this===null||this===undefined)throw new TypeError('"this" is null or not defined');if(i=Object(this),u=i.length>>>0,typeof n!="function")throw new TypeError("predicate must be a function");for(f=arguments[1],t=0;t<u;){if(r=i[t],n.call(f,r,t,i))return r;t++}return undefined}});Array.prototype.forEach||(Array.prototype.forEach=function(n){var r,t,i,u,f;if(this==null)throw new TypeError("this is null or not defined");if(i=Object(this),u=i.length>>>0,typeof n!="function")throw new TypeError(n+" is not a function");for(arguments.length>1&&(r=arguments[1]),t=0;t<u;)t in i&&(f=i[t],n.call(r,f,t,i)),t++});Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(n,t){function e(n,t){return n===t||typeof n=="number"&&typeof t=="number"&&isNaN(n)&&isNaN(t)}var f,i,r,u;if(this==null)throw new TypeError('"this" is null or not defined');if(f=Object(this),i=f.length>>>0,i===0)return!1;for(r=t|0,u=Math.max(r>=0?r:i-Math.abs(r),0);u<i;){if(e(f[u],n))return!0;u++}return!1}});String.prototype.includes||(String.prototype.includes=function(n,t){"use strict";return typeof t!="number"&&(t=0),t+n.length>this.length?!1:this.indexOf(n,t)!==-1});typeof Object.assign!="function"&&(Object.assign=function(n){"use strict";var u,i,t,r;if(n==null)throw new TypeError("Cannot convert undefined or null to object");for(u=Object(n),i=1;i<arguments.length;i++)if(t=arguments[i],t!=null)for(r in t)Object.prototype.hasOwnProperty.call(t,r)&&(u[r]=t[r]);return u})