!function(a){"use strict";!function(a){var b="0.1.1",c=[].slice,d={Number:[],Boolean:[],Array:["indexOf","every","concat","reverse","pop"],String:[],Function:[]},e=function(a){var b,d;return"string"==typeof a?(b=a,d=c.call(arguments,1),function(a){return a[b].apply(a,d.concat(c.call(arguments,1)))}):function(){return this}},f=function(a,b){return"string"==typeof a?function(b){return b[a].apply(b,c.call(arguments,1))}:function(){var d=c.call(arguments);return d[0]instanceof a?b.apply(d[0],d.slice(1)):null}};e.version=function(){return b},e.version.major=function(){return+b.split(".")[0]},e.version.minor=function(){return+b.split(".")[1]},e.version.revision=function(){return+b.split(".")[2]},e.define=function(a,b,c){2===arguments.length&&(c=b,b=null),"function"==typeof c&&(c=c(e)),g(a,c)};var g=function(b,c){var h,i,j;if(Array.isArray(b))return b.forEach(function(a){g(a,c)});e[b]=f(b);for(h in c)i=a[h],j=c[h],"function"==typeof i&&(/^\*\w+$/.test(b)?(b=b.substr(1),i[b]?console.warn("conflict: "+h+"."+b):i[b]=j):(i.prototype[b]?-1===d[h].indexOf(b)&&console.warn("conflict: "+h+"#"+b):i.prototype[b]=j,i[b]||(i[b]=f(i,j))))};e.func=function(a){return"function"==typeof a?a:"string"==typeof a?e(a):function(){return a}},e.use=function(b){return"global"===b&&Object.keys(e).forEach(function(b){a[b]||(a[b]=e[b])}),e},Number.prototype.sc=Array.prototype.sc=String.prototype.sc=Function.prototype.sc=function(a){return this[a].bind.apply(this[a],[this].concat(c.call(arguments,1)))},e.isArrayArgs=function(a,b){for(var c=0,d=Math.max(a.length,0|b);d>c;++c)if(Array.isArray(a[c]))return!0;return!1},e.Range=e.R=function(){var a=/^\s*(?:([-+]?(?:\d+|\d+\.\d+))\s*,\s*)?([-+]?(?:\d+|\d+\.\d+))(?:\s*\.\.(\.?)\s*([-+]?(?:\d+|\d+\.\d+)))?\s*$/;return function(){var b,c,d,e,f,g,h=[];if("string"==typeof arguments[0]){if(null!==(b=a.exec(arguments[0])))if(void 0===b[4]?(e=0,f=+b[2],g=f>0?1:-1):void 0===b[1]?(e=+b[2],f=+b[4],g=f>e?1:-1):(e=+b[1],f=+b[4],g=+b[2]-e),c=0,d=e,b[3])if(g>0)for(;f>d;)h[c++]=d,d+=g;else for(;d>f;)h[c++]=d,d+=g;else if(g>0)for(;f>=d;)h[c++]=d,d+=g;else for(;d>=f;)h[c++]=d,d+=g}else if("number"==typeof arguments[0])for(e=0,f=arguments[0],g=f>e?1:-1,c=0,d=e;f>=d;)h[c++]=d,d+=g;return h}}();var h=e;"undefined"!=typeof module&&module.exports?module.exports=a.sc=h:(e.noConflict=function(){var a=window.sc;return function(){return window.sc===h&&(window.sc=a),h}}(),window.sc=h)}(a),sc.define("abs",{Number:function(){return Math.abs(this)},Array:function(){return this.map(function(a){return a.abs()})}}),sc.define("absdif",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.absdif(a)},this):Math.abs(this-a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.absdif(a.wrapAt(c))}:function(b){return b.absdif(a)})}}),sc.define("acos",{Number:function(){return Math.acos(this)},Array:function(){return this.map(function(a){return a.acos()})}}),sc.define("add",{Array:function(a){var b=this.slice();return b.push(a),b}}),sc.define(["addAll","concat","++"],{Array:function(a){return this.concat(a)}}),sc.define("addFirst",{Array:function(a){return[a].concat(this)}}),sc.define("addIfNotNil",{Array:function(a){return null!==a?this.concat([a]):this}}),sc.define("amclip",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.amclip(a)},this):.5*this*(a+Math.abs(a))},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.amclip(a.wrapAt(c))}:function(b){return b.amclip(a)})}}),sc.define("ampdb",{Number:function(){return Math.log(this)*Math.LOG10E*20},Array:function(){return this.map(function(a){return a.ampdb()})}}),sc.define("any",{Array:function(a){a=sc.func(a);for(var b=0,c=this.length;c>b;++b)if(a(this[b],b))return!0;return!1}}),sc.define("asArray",function(){var a=function(){return[this]};return{Number:a,Boolean:a,Array:function(){return this.slice()},String:a,Function:a}}),sc.define("asBoolean",{Number:function(){return 0!==this},Boolean:function(){return this},Array:function(){return this.length>0},String:function(){return"true"===this},Function:function(){return!0}}),sc.define("asFloat",{Number:function(){return this},Array:function(){return this.map(function(a){return a.asFloat()})},String:function(){return+this}}),sc.define("asFloat32Array",{Array:function(){return new Float32Array(this)}}),sc.define("asFloat64Array",{Array:function(){return new Float64Array(this)}}),sc.define("asFunction",function(){var a=function(){var a=this;return function(){return a}};return{Number:a,Array:a,String:a,Function:function(){return this}}}),sc.define("asInt16Array",{Array:function(){return new Int16Array(this)}}),sc.define("asInt32Array",{Array:function(){return new Int32Array(this)}}),sc.define("asInt8Array",{Array:function(){return new Int8Array(this)}}),sc.define("asInteger",{Number:function(){return 0|this},Array:function(){return this.map(function(a){return a.asInteger()})},String:function(){return 0|this}}),sc.define("asJSON",function(){var a=function(){return JSON.stringify(this)};return{Number:a,Boolean:a,Array:a,String:a}}),sc.define("asNumber",{Number:function(){return this},Boolean:function(){return this?1:0},Array:function(){for(var a=0,b=this.length;b>a;++a)if("number"==typeof this[a])return this[a];return 0},String:function(){return isNaN(+this)?0:+this},Function:function(){return 0}}),sc.define("asString",function(){var a=function(){return this.toString()};return{Number:a,Boolean:a,Array:a,String:a,Function:a}}),sc.define("asUint16Array",{Array:function(){return new Uint16Array(this)}}),sc.define("asUint32Array",{Array:function(){return new Uint32Array(this)}}),sc.define("asUint8Array",{Array:function(){return new Uint8Array(this)}}),sc.define("asin",{Number:function(){return Math.asin(this)},Array:function(){return this.map(function(a){return a.asin()})}}),sc.define(["at","@"],{Array:function(a){return Array.isArray(a)?a.map(function(a){return this.at(a)},this):this[0|a]}}),sc.define("atDec",{Array:function(a,b){return b=void 0===b?1:b,this.put(a,this.at(a).opSub(b))}}),sc.define("atInc",{Array:function(a,b){return b=void 0===b?1:b,this.put(a,this.at(a).opAdd(b))}}),sc.define("atModify",{Array:function(a,b){return this.put(a,sc.func(b)(this.at(a),a))}}),sc.define("atan",{Number:function(){return Math.atan(this)},Array:function(){return this.map(function(a){return a.atan()})}}),sc.define("atan2",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.atan2(a)},this):Math.atan2(this,a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.atan2(a.wrapAt(c))}:function(b){return b.atan2(a)})}}),sc.define("biexp",{Number:function(a,b,c,d,e,f,g){if(sc.isArrayArgs(arguments,6))return[this,a,b,c,d,e,f].flop().map(function(a){return a[0].biexp(a[1],a[2],a[3],a[4],a[5],a[6],g)});switch(g){case"min":if(b>=this)return e;break;case"max":if(this>=c)return f;break;case"minmax":default:if(b>=this)return e;if(this>=c)return f}return this>=a?this.explin(a,c,d,f):this.explin(b,a,e,d)},Array:function(a,b,c,d,e,f,g){return this.map(function(h){return h.biexp(a,b,c,d,e,f,g)})}}),sc.define("bilin",{Number:function(a,b,c,d,e,f,g){if(sc.isArrayArgs(arguments,6))return[this,a,b,c,d,e,f].flop().map(function(a){return a[0].bilin(a[1],a[2],a[3],a[4],a[5],a[6],g)});switch(g){case"min":if(b>=this)return e;break;case"max":if(this>=c)return f;break;case"minmax":default:if(b>=this)return e;if(this>=c)return f}return this>=a?this.linlin(a,c,d,f):this.linlin(b,a,e,d)},Array:function(a,b,c,d,e,f,g){return this.map(function(h){return h.bilin(a,b,c,d,e,f,g)})}}),sc.define("bilinrand",{Number:function(){return(Math.random()-Math.random())*this},Array:function(){return this.map(function(a){return a.bilinrand()})}}),sc.define("binaryValue",{Number:function(){return this>0?1:0},Array:function(){return this.map(function(a){return a.binaryValue()})},Boolean:function(){return this?1:0}}),sc.define(["bitAnd","&"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.bitAnd(a)},this):this&a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.bitAnd(a.wrapAt(c))}:function(b){return b.bitAnd(a)})}}),sc.define(["bitNot","~"],{Number:function(){return~this},Array:function(){return this.map(function(a){return a.bitNot()})}}),sc.define(["bitOr","|"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.bitOr(a)},this):this|a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.bitOr(a.wrapAt(c))}:function(b){return b.bitOr(a)})}}),sc.define("bitTest",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.bitTest(a)},this):!!(this&1<=a?1>=b?[this]:[this.bubble(a,b-1)]:this.map(function(c){return c.bubble(a-1,b)})},Number:function(a,b){return a=void 0===a?0:a,b=void 0===b?1:b,1>=b?[this]:[this.bubble(a,b-1)]}}),sc.define("ceil",{Number:function(){return Math.ceil(this)},Array:function(){return this.map(function(a){return a.ceil()})}}),sc.define("choose",{Array:function(){return this[Math.random()*this.length|0]}}),sc.define("clip",{Number:function(a,b){return sc.isArrayArgs(arguments)?[this,a,b].flop().map(function(a){return a[0].clip(a[1],a[2])}):(a=void 0===a?-1:a,b=void 0===b?1:b,Math.max(a,Math.min(this,b)))},Array:function(a,b){return this.map(function(c){return c.clip(a,b)})}}),sc.define("clip2",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.clip2(a)},this):(a=void 0===a?1:a,this.clip(-a,+a))},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.clip2(a.wrapAt(c))}:function(b){return b.clip2(a)})}}),sc.define(["clipAt","|@|"],{Array:function(a){return Array.isArray(a)?a.map(function(a){return this.clipAt(a)},this):this[(0|a).clip(0,this.length-1)]}}),sc.define("clipExtend",{Array:function(a){if(a=Math.max(0,0|a),this.lengthc;++c)b[c]=this[c];for(var e=b[c-1];a>c;++c)b[c]=e;return b}return this.slice(0,a)}}),sc.define("clipPut",{Array:function(a,b){return"number"==typeof a?this[a.clip(0,this.length-1)]=b:Array.isArray(a)&&a.forEach(function(a){this.clipPut(a,b)},this),this}}),sc.define("clipSwap",{Array:function(a,b){a=(0|a).clip(0,this.length-1),b=(0|b).clip(0,this.length-1);var c=this[a];return this[a]=this[b],this[b]=c,this}}),sc.define("clump",{Array:function(a){var b,c,d,e;for(b=[],c=[],d=0,e=this.length;e>d;++d)c.push(this[d]),c.length>=a&&(b.push(c),c=[]);return c.length>0&&b.push(c),b}}),sc.define("clumps",{Array:function(a){var b,c,d,e,f,g;for(b=0,c=[],e=a[0],d=[],f=0,g=this.length;g>f;++f)d.push(this[f]),d.length>=e&&(b+=1,c.push(d),e=a[b%a.length],d=[]);return d.length>0&&c.push(d),c}}),sc.define("coin",{Number:function(){return Math.random()c;++c)b[c]=a(c,c);return b},Array:function(a){return this.map(sc.func(a))}}),sc.define("copy",{Number:function(){return this},Boolean:function(){return this},Array:function(){return this.slice()},String:function(){return this},Function:function(){return this}}),sc.define("copyFromStart",function(){var a=function(a){return Array.isArray(a)?a.map(function(a){return this.copyFromStart(a)},this):(a=Math.max(0,0|a),this.slice(0,a+1))};return{Array:a,String:a}}),sc.define("copyRange",function(){var a=function(a,b){return sc.isArrayArgs(arguments)?[a,b].flop().map(function(a){return this.copyRange(a[0],a[1])},this):(a=Math.max(0,0|a),b=Math.max(0,0|b),this.slice(a,b+1))};return{Array:a,String:a}}),sc.define("copySeries",{Array:function(a,b,c){return this.at(a.series(b,c))}}),sc.define("copyToEnd",function(){var a=function(a){return Array.isArray(a)?a.map(function(a){return this.copyToEnd(a)},this):(a=Math.max(0,0|a),this.slice(a))};return{Array:a,String:a}}),sc.define("cos",{Number:function(){return Math.cos(this)},Array:function(){return this.map(function(a){return a.cos()})}}),sc.define("cosh",{Number:function(){return.5*(Math.pow(Math.E,this)+Math.pow(Math.E,-this))},Array:function(){return this.map(function(a){return a.cosh()})}}),sc.define("count",{Array:function(a){a=sc.func(a);for(var b=0,c=0,d=this.length;d>c;++c)a(this[c],c)&&++b;return b}}),sc.define("cpsmidi",{Number:function(){return Math.log(1*Math.abs(this)/440)*Math.LOG2E*12+69},Array:function(){return this.map(function(a){return a.cpsmidi()})}}),sc.define("cpsoct",{Number:function(){return Math.log(1*Math.abs(this)/440)*Math.LOG2E+4.75},Array:function(){return this.map(function(a){return a.cpsoct()})}}),sc.define("cubed",{Number:function(){return this*this*this},Array:function(){return this.map(function(a){return a.cubed()})}}),sc.define("curdle",{Array:function(a){return a=void 0===a?.5:a,this.separate(function(){return a.coin()})}}),sc.define("curvelin",{Number:function(a,b,c,d,e,f){if(sc.isArrayArgs(arguments,4))return[this,a,b,c,d].flop().map(function(a){return a[0].curvelin(a[1],a[2],a[3],a[4],e,f)});switch(a=void 0===a?0:a,b=void 0===b?1:b,c=void 0===c?0:c,d=void 0===d?1:d,e=void 0===e?-4:e,f){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}if(Math.abs(e)<.001)return this.linlin(a,b,c,d);var g=Math.exp(e),h=(d-c)/(1-g),i=c+h,j=(this-a)/(b-a);return Math.log((i-j)/h)/e},Array:function(a,b,c,d,e,f){return this.map(function(g){return g.curvelin(a,b,c,d,e,f)})}}),sc.define("dbamp",{Number:function(){return Math.pow(10,.05*this)},Array:function(){return this.map(function(a){return a.dbamp()})}}),sc.define("degrad",{Number:function(){return this*Math.PI/180},Array:function(){return this.map(function(a){return a.degrad()})}}),sc.define("degreeToKey",{Number:function(a,b){b=void 0===b?12:b;var c=0|this.round(),d=10*(this-c);return a.performDegreeToKey(c,b,d)},Array:function(a,b){return b=void 0===b?12:b,this.map(function(c){return c.degreeToKey(a,b)})}}),sc.define("delimit",{Array:function(a){var b,c,d,e;for(a=sc.func(void 0===a?!0:a),b=[],c=[],d=0,e=this.length;e>d;++d)a(this[d],d)?(b.push(c),c=[]):c.push(this[d]);return b.push(c),b}}),sc.define("detect",{Array:function(a){a=sc.func(a);for(var b=0,c=this.length;c>b;++b)if(a(this[b],b))return this[b];return null}}),sc.define("detectIndex",{Array:function(a){a=sc.func(a);for(var b=0,c=this.length;c>b;++b)if(a(this[b],b))return b;return-1}}),sc.define("difference",{Array:function(a){return this.slice().removeAll(a)}}),sc.define("differentiate",{Array:function(){var a=0;return this.map(function(b){var c=b-a;return a=b,c})}}),sc.define("difsqr",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.difsqr(a)},this):this*this-a*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.difsqr(a.wrapAt(c))}:function(b){return b.difsqr(a)})}}),sc.define("distort",{Number:function(){return this/(1+Math.abs(this))},Array:function(){return this.map(function(a){return a.distort()})}}),sc.define("div",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.div(a)},this):Math.floor(this/a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.div(a.wrapAt(c))}:function(b){return b.div(a)})}}),sc.define("do",{Number:function(a){a=sc.func(a);var b,c=0|this;for(b=0;c>b;++b)a(b,b);return this},Array:function(a){return this.forEach(sc.func(a)),this}}),sc.define("doAdjacentPairs",{Array:function(a){a=sc.func(a);for(var b=0,c=this.length-1;c>b;++b)a(this[b],this[b+1],b);return this}}),sc.define("drop",{Array:function(a){return a|=0,0>a?this.slice(0,this.length+a):this.slice(a)}}),sc.define("dup",function(){var a=function(a){a=void 0===a?2:a;for(var b=new Array(0|a),c=0,d=b.length;d>c;++c)b[c]=this;return b};return{Number:a,Boolean:a,Array:function(a){a=void 0===a?2:a;for(var b=new Array(0|a),c=0,d=b.length;d>c;++c)b[c]=this.slice();return b},String:a,Function:function(a){return a=void 0===a?2:a,Array.fill(0|a,this)}}}),sc.define("equalWithPrecision",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].equalWithPrecision(a[1],a[2])}):(b=void 0===b?1e-4:b,Math.abs(this-a)b;++b)if(!this[b].equals(a[b]))return!1;return!0},String:a,Function:a}}),sc.define("even",{Number:function(){return 0===(1&this)},Array:function(){return this.map(function(a){return a.even()})}}),sc.define(["every","sc_every"],{Array:function(a){a=sc.func(a);for(var b=0,c=this.length;c>b;++b)if(!a(this[b],b))return!1;return!0}}),sc.define("excess",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.excess(a)},this):this-this.clip(-a,+a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.excess(a.wrapAt(c))}:function(b){return b.excess(a)})}}),sc.define("exclusivelyBetween",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].exclusivelyBetween(a[1],a[2])}):this>=a&&b>this},Array:function(a,b){return this.map(function(c){return c.exclusivelyBetween(a,b)})}}),sc.define("exp",{Number:function(){return Math.exp(this)},Array:function(){return this.map(function(a){return a.exp()})}}),sc.define("expexp",{Number:function(a,b,c,d,e){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c)||Array.isArray(d))return[this,a,b,c,d].flop().map(function(a){return a[0].expexp(a[1],a[2],a[3],a[4],e)});switch(e){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}return Math.pow(d/c,Math.log(this/a)/Math.log(b/a))*c},Array:function(a,b,c,d,e){return this.map(function(f){return f.expexp(a,b,c,d,e)})}}),sc.define("explin",{Number:function(a,b,c,d,e){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c)||Array.isArray(d))return[this,a,b,c,d].flop().map(function(a){return a[0].explin(a[1],a[2],a[3],a[4],e)});switch(e){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}return Math.log(this/a)/Math.log(b/a)*(d-c)+c},Array:function(a,b,c,d,e){return this.map(function(f){return f.explin(a,b,c,d,e)})}}),sc.define("*exprand",{Array:function(a,b,c){b=void 0===b?0:b,c=void 0===c?1:c,b=Math.max(1e-6,b),c=Math.max(1e-6,c);for(var d=new Array(0|a),e=0,f=d.length;f>e;e++)d[e]=b.exprand(c);return d}}),sc.define("exprand",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.exprand(a)},this):this>a?a*Math.exp(Math.log(this/a)*Math.random()):this*Math.exp(Math.log(a/this)*Math.random())},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.exprand(a.wrapAt(c))}:function(b){return b.exprand(a)})}}),sc.define("extend",{Array:function(a,b){a=Math.max(0,0|a);for(var c=new Array(a),d=0;a>d;++d)c[d]=dthis?1:[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600][0|this]},Array:function(){return this.map(function(a){return a.factorial()})}}),sc.define("*fib",{Array:function(a,b,c){b=void 0===b?0:b,c=void 0===c?1:c;for(var d,e=new Array(0|a),f=0,g=e.length;g>f;f++)e[f]=c,d=c,c=b+c,b=d;return e}}),sc.define("fib",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].geom(a[1],a[2])}):Array.fib(this,a,b)}}),sc.define("*fill",{Array:function(a,b){a|=0,b=sc.func(b);for(var c=new Array(a),d=0;a>d;d++)c[d]=b(d);return c}}),sc.define("fill",{Array:function(a){for(var b=0,c=this.length;c>b;b++)this[b]=a;return this}}),sc.define("*fill2D",{Array:function(a,b,c){a|=0,b|=0,c=sc.func(c);var d,e,f,g;for(d=new Array(a),f=0;a>f;++f)for(e=d[f]=new Array(b),g=0;b>g;++g)e[g]=c(f,g);return d}}),sc.define("*fill3D",{Array:function(a,b,c,d){a|=0,b|=0,c|=0,d=sc.func(d);var e,f,g,h,i,j;for(e=new Array(a),h=0;a>h;++h)for(f=e[h]=new Array(b),i=0;b>i;++i)for(g=f[i]=new Array(c),j=0;c>j;++j)g[j]=d(h,i,j);return e}}),sc.define("*fillND",function(){var a=function(b,c,d){var e,f,g,h;if(e=b[0],f=[],g=d.length,d=d.concat(0),b.length<=1)for(h=0;e>h;++h)d[g]=h,f.push(c.apply(null,d));else for(b=b.slice(1),h=0;e>h;++h)d[g]=h,f.push(a(b,c,d));return f};return{Array:function(b,c){return a(b,sc.func(c),[])}}}),sc.define("find",{Array:function(a,b){if(!Array.isArray(a))return-1;b=Math.max(0,0|b);for(var c=b,d=this.length;d>c;++c){for(var e=!0,f=0,g=a.length;g>f;f++)if(this[c+f]!==a[f]){e=!1;break}if(e)return c}return-1}}),sc.define("findAll",{Array:function(a,b){if(!Array.isArray(a))return[];b=Math.max(0,0|b);for(var c=[],d=b,e=this.length;e>d;++d){for(var f=!0,g=0,h=a.length;h>g;++g)if(this[d+g]!==a[g]){f=!1;break}f&&c.push(d)}return c}}),sc.define("first",{Array:function(){return this[0]}}),sc.define("flat",function(){var a=function(b,c){var d,e;for(d=0,e=b.length;e>d;++d)Array.isArray(b[d])?c=a(b[d],c):c.push(b[d]);return c};return{Array:function(){return a(this,[])}}}),sc.define("flatIf",{Array:function(a){a=sc.func(a);var b,c,d;for(b=[],c=0,d=this.length;d>c;++c)Array.isArray(this[c])&&a(this[c],c)?b=b.concat(this[c].flatIf(a)):b.push(this[c]);return b}}),sc.define("flatSize",function(){var a=function(b){if(!Array.isArray(b))return 1;for(var c=0,d=0,e=b.length;e>d;++d)c+=a(b[d]);return c};return{Array:function(){return a(this)}}}),sc.define("flatten",{Array:function(a){var b,c,d;if(a=void 0===a?1:0|a,0>=a)return this;for(a-=1,b=[],c=0,d=this.length;d>c;++c)Array.isArray(this[c])?b=b.addAll(this[c].flatten(a)):b.push(this[c]);return b}}),sc.define("floor",{Number:function(){return Math.floor(this)},Array:function(){return this.map(function(a){return a.floor()})}}),sc.define("flop",{Array:function(){var a=this.reduce(function(a,b){return Math.max(a,Array.isArray(b)?b.length:1)},0),b=new Array(a),c=this.length;if(0===c)b[0]=[];else for(var d=0;a>d;++d)for(var e=b[d]=new Array(c),f=0;c>f;++f)e[f]=Array.isArray(this[f])?this[f].wrapAt(d):this[f];return b}}),sc.define("fold",{Number:function(a,b){if(Array.isArray(a)||Array.isArray(b))return[this,a,b].flop().map(function(a){return a[0].fold(a[1],a[2])});var c,d,e,f,g=this;if(c=g-a,g>=b){if(g=b+b-g,g>=a)return g}else{if(!(a>g))return g;if(g=a+a-g,b>g)return g}return b===a?a:(e=b-a,f=e+e,d=c-f*Math.floor(c/f),d>=e&&(d=f-d),d+a)},Array:function(a,b){return this.map(function(c){return c.fold(a,b)})}}),sc.define("fold2",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.fold(a)},this):this.fold(-a,+a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.fold2(a.wrapAt(c))}:function(b){return b.fold2(a)})}}),sc.define(["foldAt","@|@"],{Array:function(a){return Array.isArray(a)?a.map(function(a){return this.foldAt(a)},this):this[(0|a).fold(0,this.length-1)]}}),sc.define("foldExtend",{Array:function(a){a=Math.max(0,0|a);for(var b=new Array(a),c=0;a>c;++c)b[c]=this.foldAt(c);return b}}),sc.define("foldPut",{Array:function(a,b){return"number"==typeof a?this[a.fold(0,this.length-1)]=b:Array.isArray(a)&&a.forEach(function(a){this.foldPut(a,b)},this),this}}),sc.define("foldSwap",{Array:function(a,b){a=(0|a).fold(0,this.length-1),b=(0|b).fold(0,this.length-1);var c=this[a];return this[a]=this[b],this[b]=c,this}}),sc.define("for",{Number:function(a,b){b=sc.func(b);for(var c=this,d=0;a>=c;)b(c++,d++);return this}}),sc.define("forBy",{Number:function(a,b,c){var d=this,e=0;if(b>0)for(;a>=d;)c(d,e++),d+=b;else for(;d>=a;)c(d,e++),d+=b;return this}}),sc.define("forSeries",{Number:function(a,b,c){return this.forBy(b,a-this,c)}}),sc.define("frac",{Number:function(){var a=this-Math.floor(this);return 0>a?1+a:a},Array:function(){return this.map(function(a){return a.frac()})}}),sc.define("gauss",{Number:function(a){return Math.sqrt(-2*Math.log(Math.random()))*Math.sin(2*Math.random()*Math.PI)*a+this},Array:function(a){return this.map(function(b){return b.gauss(a)})}}),sc.define("gaussCurve",{Number:function(a,b,c){a=void 0===a?1:a,b=void 0===b?0:b,c=void 0===c?1:c;var d=this-b;return a*Math.exp(d*d/(-2*c*c))},Array:function(a,b,c){return this.map(function(d){return d.gaussCurve(a,b,c)})}}),sc.define("gcd",{Number:function(a){if(Array.isArray(a))return a.map(function(a){return this.gcd(a)},this);for(var b,c=0|this,d=0|a;0!==d;)b=c%d,c=d,d=b;return c},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.gcd(a.wrapAt(c))}:function(b){return b.gcd(a)})}}),sc.define("*geom",{Array:function(a,b,c){b=void 0===b?1:b,c=void 0===c?2:c;for(var d=new Array(0|a),e=0,f=d.length;f>e;e++)d[e]=b,b*=c;return d}}),sc.define("geom",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].geom(a[1],a[2])}):Array.geom(this,a,b)}}),sc.define(["greater",">"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.greater(a)},this):this>a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.greater(a.wrapAt(c))}:function(b){return b.greater(a)})}}),sc.define(["greaterThan",">="],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.greaterThan(a)},this):this>=a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.greaterThan(a.wrapAt(c))}:function(b){return b.greaterThan(a)})}}),sc.define("half",{Number:function(){return.5*this},Array:function(){return this.map(function(a){return a.half()})}}),sc.define("hanWindow",{Number:function(){return 0>this||this>1?0:.5-.5*Math.cos(2*this*Math.PI)},Array:function(){return this.map(function(a){return a.hanWindow()})}}),sc.define("histo",{Array:function(a,b,c){var d,e,f,g,h,i,j=0;for(a=void 0===a?100:a,b=void 0===b?this.minItem():b,c=void 0===c?this.maxItem():c,d=Array.fill(a,0),f=a-1,g=a/(c-b)|0,h=0,i=this.length;i>h;++h)e=(this[h]-b)*g|0,e.inclusivelyBetween(0,f)?d[e]=d[e]+1:this[h]===c?d[a-1]+=1:j+=1,j>0&&console.log("histogram :"+j+"out of (histogram) range values in collection.");return d}}),sc.define("hypot",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.hypot(a)},this):Math.sqrt(this*this+a*a)},Array:function(a){if(Array.isArray(a))return a.map(function(a){return this.hypotApx(a)},this);var b=Math.abs(this),c=Math.abs(a),d=Math.min(b,c);return b+c-(Math.sqrt(2)-1)*d}}),sc.define("hypotApx",{Number:function(a){if(Array.isArray(a))return a.map(function(a){return this.hypotApx(a)},this);var b=Math.abs(this),c=Math.abs(a),d=Math.min(b,c);return b+c-(Math.sqrt(2)-1)*d},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.hypotApx(a.wrapAt(c))}:function(b){return b.hypotApx(a)})}}),sc.define("includes",{Array:function(a){return-1!==this.indexOf(a)}}),sc.define("includesAll",{Array:function(a){for(var b=0,c=a.length;c>b;++b)if(-1===this.indexOf(a[b]))return!1;return!0}}),sc.define("includesAny",{Array:function(a){for(var b=0,c=a.length;c>b;++b)if(-1!==this.indexOf(a[b]))return!0;return!1}}),sc.define("inclusivelyBetween",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].inclusivelyBetween(a[1],a[2])}):this>=a&&b>=this},Array:function(a,b){return this.map(function(c){return c.inclusivelyBetween(a,b)})}}),sc.define("indexIn",{Array:function(a){var b,c=this.indexOfGreaterThan(a);return-1===c?this.length-1:0===c?c:(b=c-1,a-this[b]c;c++)if(this[c].equals(a))return c;return-1}}),sc.define("indexOfGreaterThan",{Array:function(a){for(var b=0,c=this.length;c>b;++b)if(this[b]>a)return b;return-1}}),sc.define("indicesOf",{Array:function(a,b){b=void 0===b?0:0|b;for(var c=[],d=b,e=this.length;e>d;d++)this[d]===a&&c.push(d);return c}}),sc.define("indicesOfEqual",{Array:function(a,b){b=void 0===b?0:0|b;for(var c=[],d=b,e=this.length;e>d;d++)this[d].equals(a)&&c.push(d);return c}}),sc.define("inject",{Array:function(a,b){return this.reduce(sc.func(b),a)}}),sc.define("injectr",{Array:function(a,b){return this.reduceRight(sc.func(b),a)}}),sc.define("insert",{Array:function(a,b){a=Math.max(0,0|a);var c=this.slice();return c.splice(a,0,b),c}}),sc.define("instill",{Array:function(a,b,c){var d;return a=Math.max(0,0|a),d=a>=this.length?this.extend(a+1,c):this.slice(),d[a]=b,d}}),sc.define("*interpolation",{Array:function(a,b,c){if(b=void 0===b?0:b,c=void 0===c?1:c,1===a)return[b];for(var d=new Array(0|a),e=(c-b)/(a-1),f=0,g=d.length;g>f;f++)d[f]=b+f*e;return d}}),sc.define("invert",{Array:function(a){var b;return 0===this.length?[]:(b="number"==typeof a?2*a:this.minItem()+this.maxItem(),b.opSub(this))}}),sc.define("isArray",{Number:function(){return!1},Boolean:function(){return!1},Array:function(){return!0},String:function(){return!1},Function:function(){return!1}}),sc.define("isBoolean",{Number:function(){return!1},Boolean:function(){return!0},Array:function(){return!1},String:function(){return!1},Function:function(){return!1}}),sc.define("isEmpty",{Array:function(){return 0===this.length}}),sc.define("isFunction",{Number:function(){return!1},Boolean:function(){return!1},Array:function(){return!1},String:function(){return!1},Function:function(){return!0}}),sc.define("isNaN",{Number:function(){return isNaN(this)},Array:function(){return this.map(function(a){return a.isNaN()})}}),sc.define("isNegative",{Number:function(){return 0>this},Array:function(){return this.map(function(a){return a.isNegative()})}}),sc.define("isNumber",{Number:function(){return!0},Boolean:function(){return!1},Array:function(){return!1},String:function(){return!1},Function:function(){return!1}}),sc.define("isPositive",{Number:function(){return this>=0},Array:function(){return this.map(function(a){return a.isPositive()})}}),sc.define("isPowerOfTwo",{Number:function(){var a=Math.log(this)/Math.log(2),b=0|a;return a===b},Array:function(){return this.map(function(a){return a.isPowerOfTwo()})}}),sc.define("isStrictlyPositive",{Number:function(){return this>0},Array:function(){return this.map(function(a){return a.isStrictlyPositive()})}}),sc.define("isString",{Number:function(){return!1},Boolean:function(){return!1},Array:function(){return!1},String:function(){return!0},Function:function(){return!1}}),sc.define("isSubsetOf",{Array:function(a){return a.includesAll(this)}}),sc.define("iwrap",{Number:function(a,b){if(Array.isArray(a)||Array.isArray(b))return[this,a,b].flop().map(function(a){return a[0].iwrap(a[1],a[2])});var c,d,e=0|this;return a|=0,b|=0,b>=a?e>=a&&b>=e?e:(c=b-a+1,d=(e-a)%c,0>d&&(d+=c),d+a):void 0},Array:function(a,b){return this.map(function(c){return c.iwrap(a,b)})}}),sc.define("keep",{Array:function(a){return a|=0,0>a?this.slice(this.length+a):this.slice(0,a)}}),sc.define("keyToDegree",{Number:function(a,b){return b=void 0===b?12:b,a.performKeyToDegree(this,b) },Array:function(a,b){return b=void 0===b?12:b,this.map(function(c){return c.keyToDegree(a,b)})}}),sc.define("lace",{Array:function(a){a=Math.max(1,0|a);for(var b,c=new Array(a),d=this.length,e=0;a>e;++e)b=this[e%d],c[e]=Array.isArray(b)?b[(e/d|0)%b.length]:b;return c}}),sc.define("last",{Array:function(){return this[this.length-1]}}),sc.define("lastForWhich",{Array:function(a){a=sc.func(a);for(var b=null,c=0,d=this.length;d>c;++c){if(!a(this[c],c))return b;b=this[c]}return b}}),sc.define("lastIndex",{Array:function(){return this.length-1}}),sc.define("lastIndexForWhich",{Array:function(a){a=sc.func(a);for(var b=-1,c=0,d=this.length;d>c;++c){if(!a(this[c],c))return b;b=c}return b}}),sc.define("lcm",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.lcm(a)},this):Math.abs(this*a)/this.gcd(a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.lcm(a.wrapAt(c))}:function(b){return b.lcm(a)})}}),sc.define("lcurve",{Number:function(a,b,c,d){a=void 0===a?1:a,b=void 0===b?0:b,c=void 0===c?1:c,d=void 0===d?1:d;var e,f=-this;return 1===d?a*(b*Math.exp(f)+1)/(c*Math.exp(f)+1):(e=1/d,a*(b*Math.exp(f)*e+1)/(c*Math.exp(f)*e+1))},Array:function(a,b,c,d){return this.map(function(e){return e.lcurve(a,b,c,d)})}}),sc.define(["leftShift","<<"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.leftShift(a)},this):this<this},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.less(a.wrapAt(c))}:function(b){return b.less(a)})}}),sc.define(["lessThan","<="],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.lessThan(a)},this):a>=this},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.lessThan(a.wrapAt(c))}:function(b){return b.lessThan(a)})}}),sc.define("lincurve",{Number:function(a,b,c,d,e,f){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c)||Array.isArray(d))return[this,a,b,c,d].flop().map(function(a){return a[0].lincurve(a[1],a[2],a[3],a[4],e,f)});switch(a=void 0===a?0:a,b=void 0===b?1:b,c=void 0===c?0:c,d=void 0===d?1:d,e=void 0===e?-4:e,f){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}if(Math.abs(e)<.001)return this.linlin(a,b,c,d);var g=Math.exp(e),h=(d-c)/(1-g),i=c+h,j=(this-a)/(b-a);return i-h*Math.pow(g,j)},Array:function(a,b,c,d,e,f){return this.map(function(g){return g.lincurve(a,b,c,d,e,f)})}}),sc.define("linexp",{Number:function(a,b,c,d,e){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c)||Array.isArray(d))return[this,a,b,c,d].flop().map(function(a){return a[0].linexp(a[1],a[2],a[3],a[4],e)});switch(e){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}return Math.pow(d/c,(this-a)/(b-a))*c},Array:function(a,b,c,d,e){return this.map(function(f){return f.linexp(a,b,c,d,e)})}}),sc.define("linlin",{Number:function(a,b,c,d,e){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c)||Array.isArray(d))return[this,a,b,c,d].flop().map(function(a){return a[0].linlin(a[1],a[2],a[3],a[4],e)});switch(e){case"min":if(a>=this)return c;break;case"max":if(this>=b)return d;break;case"minmax":default:if(a>=this)return c;if(this>=b)return d}return(this-a)/(b-a)*(d-c)+c},Array:function(a,b,c,d,e){return this.map(function(f){return f.linlin(a,b,c,d,e)})}}),sc.define("*linrand",{Array:function(a,b,c){b=void 0===b?0:b,c=void 0===c?1:c;for(var d=new Array(0|a),e=c-b,f=0,g=d.length;g>f;f++)d[f]=b+e.linrand();return d}}),sc.define("linrand",{Number:function(){return Math.min(Math.random(),Math.random())*this},Array:function(){return this.map(function(a){return a.linrand()})}}),sc.define("log",{Number:function(){return Math.log(this)},Array:function(){return this.map(function(a){return a.log()})}}),sc.define("log10",{Number:function(){return Math.log(this)*Math.LOG10E},Array:function(){return this.map(function(a){return a.log10()})}}),sc.define("log2",{Number:function(){return Math.log(Math.abs(this))*Math.LOG2E},Array:function(){return this.map(function(a){return a.log2()})}}),sc.define("log2Ceil",{Number:function(){return 0>=this?Math.ceil(Math.log(4294967296+(0|this))/Math.log(2)):this>0?Math.ceil(Math.log(0|this)/Math.log(2)):void 0},Array:function(){return this.map(function(a){return a.log2Ceil()})}}),sc.define("madd",{Number:function(a,b){return Array.isArray(a)||Array.isArray(b)?[this,a,b].flop().map(function(a){return a[0].madd(a[1],a[2])}):this*a+b},Array:function(a,b){return this.map(function(c){return c.madd(a,b)})}}),sc.define("max",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.max(a)},this):Math.max(this,a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.max(a.wrapAt(c))}:function(b){return b.max(a)})}}),sc.define("maxDepth",function(){var a=function(b,c){var d,e,f;for(d=c,e=0,f=b.length;f>e;++e)Array.isArray(b[e])&&(d=Math.max(d,a(b[e],c+1)));return d};return{Array:function(){return a(this,1)}}}),sc.define("maxIndex",{Array:function(a){var b,c,d,e,f;if(e=-1,a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)f=a(this[b],b),0===b?(d=f,e=0):f>d&&(d=f,e=b);else for(f=this[0],d=f,e=0,b=1,c=this.length;c>b;++b)f=this[b],f>d&&(d=f,e=b);return e}}),sc.define("maxSizeAtDepth",{Array:function(a){var b,c,d,e=0;if(0===a||void 0===a)return this.length;for(c=0,d=this.length;d>c;++c)b=Array.isArray(this[c])?this[c].maxSizeAtDepth(a-1):1,b>e&&(e=b);return e}}),sc.define(["maxValue","maxItem"],{Array:function(a){var b,c,d,e,f;if(a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)f=a(this[b],b),0===b?(d=f,e=this[b]):f>d&&(d=f,e=this[b]);else for(f=this[0],d=f,e=this[0],b=1,c=this.length;c>b;++b)f=this[b],f>d&&(d=f,e=this[b]);return e}}),sc.define("mean",{Array:function(a){return a&&(a=sc.func(a)),this.sum(a)/this.length}}),sc.define("middle",{Array:function(){return this[this.length-1>>1]}}),sc.define("middleIndex",{Array:function(){return this.length-1>>1}}),sc.define("midicps",{Number:function(){return 440*Math.pow(2,1*(this-69)/12)},Array:function(){return this.map(function(a){return a.midicps()})}}),sc.define("midiratio",{Number:function(){return Math.pow(2,1*this/12)},Array:function(){return this.map(function(a){return a.midiratio()})}}),sc.define("min",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.min(a)},this):Math.min(this,a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.min(a.wrapAt(c))}:function(b){return b.min(a)})}}),sc.define("minIndex",{Array:function(a){var b,c,d,e,f;if(e=-1,a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)f=a(this[b],b),0===b?(d=f,e=0):d>f&&(d=f,e=b);else for(f=this[0],d=f,e=0,b=1,c=this.length;c>b;++b)f=this[b],d>f&&(d=f,e=b);return e}}),sc.define(["minValue","minItem"],{Array:function(a){var b,c,d,e,f;if(a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)f=a(this[b],b),0===b?(d=f,e=this[b]):d>f&&(d=f,e=this[b]);else for(e=this[0],b=1,c=this.length;c>b;++b)this[b]a)return this.slice(0);var b,c,d,e=new Array(a);for(b=0,d=this.length;d>b;++b)e[b]=this[b];for(c=d-2,d=a;d>b;++b,--c)e[b]=this[c];return e}}),sc.define("mirror1",{Array:function(){var a=2*this.length-2;if(2>a)return this.slice(0);var b,c,d,e=new Array(a);for(b=0,d=this.length;d>b;++b)e[b]=this[b];for(c=d-2,d=a;d>b;++b,--c)e[b]=this[c];return e}}),sc.define("mirror2",{Array:function(){var a=2*this.length;if(2>a)return this.slice(0);var b,c,d,e=new Array(a);for(b=0,d=this.length;d>b;++b)e[b]=this[b];for(c=d-1,d=a;d>b;++b,--c)e[b]=this[c];return e}}),sc.define("mod",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.mod(a)},this):0>=this?a+Math.floor(this%a):Math.floor(this%a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.mod(a.wrapAt(c))}:function(b){return b.mod(a)})}}),sc.define("mode",{Array:function(a,b){return b=void 0===b?12:b,this.rotate(a.neg()).opSub(this.wrapAt(a)).opMod(b)}}),sc.define("nearestInList",{Number:function(a){return a.performNearestInList(this)},Array:function(a){return this.map(function(b){return a.at(a.indexIn(b))})}}),sc.define("nearestInScale",{Number:function(a,b){return b=void 0===b?12:b,a.performNearestInScale(this,b)},Array:function(a,b){b=void 0===b?12:b;var c=this.trunc(b),d=this.opMod(b);return d.nearestInScale(a).opAdd(c)}}),sc.define("neg",{Number:function(){return-this},Array:function(){return this.map(function(a){return a.neg()})}}),sc.define("nextPowerOf",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.nextPowerOf(a)},this):Math.pow(a,Math.ceil(Math.log(this)/Math.log(a)))},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.nextPowerOf(a.wrapAt(c))}:function(b){return b.nextPowerOf(a)})}}),sc.define("nextPowerOfThree",{Number:function(){return Math.pow(3,Math.ceil(Math.log(this)/Math.log(3)))},Array:function(){return this.map(function(a){return a.nextPowerOfThree()})}}),sc.define("nextPowerOfTwo",{Number:function(){return 0>=this?1:Math.pow(2,Math.ceil(Math.log(this)/Math.log(2)))},Array:function(){return this.map(function(a){return a.nextPowerOfTwo()})}}),sc.define("normalize",{Array:function(a,b){a=void 0===a?0:a,b=void 0===b?1:b;var c=this.minItem(),d=this.maxItem();return this.map(function(e){return e.linlin(c,d,a,b)})}}),sc.define("normalizeSum",{Array:function(){return this.opDiv(this.sum())}}),sc.define("notEmpty",{Array:function(){return 0!==this.length}}),sc.define(["notEquals","!="],{Number:function(a){return this!==a},Array:function(a){return!this.equals(a)},String:function(a){return this!==a},Function:function(a){return this!==a}}),sc.define("numBits",{Number:function(){return 0>=this?Math.floor(Math.log(4294967296+(0|this))/Math.log(2))+1:this>0?Math.floor(Math.log(0|this)/Math.log(2))+1:void 0},Array:function(){return this.map(function(a){return a.numBits()})}}),sc.define("obtain",{Array:function(a,b){return Array.isArray(a)?a.map(function(a){return this.obtain(a,b)},this):(a=Math.max(0,0|a),ac;++c)(this[c]===a||this[c].equals(a))&&++b;return b}}),sc.define("octcps",{Number:function(){return 440*Math.pow(2,this-4.75)},Array:function(){return this.map(function(a){return a.octcps()})}}),sc.define("odd",{Number:function(){return 1===(1&this)},Array:function(){return this.map(function(a){return a.odd()})}}),sc.define(["opAdd","+"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.opAdd(a)},this):this+a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.opAdd(a.wrapAt(c))}:function(b){return b.opAdd(a)})}}),sc.define(["opDiv","/"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.opDiv(a)},this):this/a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.opDiv(a.wrapAt(c))}:function(b){return b.opDiv(a)})}}),sc.define(["opMod","%"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.opMod(a)},this):this%a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.opMod(a.wrapAt(c))}:function(b){return b.opMod(a)})}}),sc.define(["opMul","*"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.opMul(a)},this):this*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.opMul(a.wrapAt(c))}:function(b){return b.opMul(a)})}}),sc.define(["opSub","-"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.opSub(a)},this):this-a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.opSub(a.wrapAt(c))}:function(b){return b.opSub(a)})}}),sc.define(["pairsDo","keyValuesDo"],{Array:function(a){a=sc.func(a);for(var b=0,c=this.length;c>b;b+=2)a(this[b],this[b+1],b);return this}}),sc.define("partition",{Number:function(a,b){a="undefined"==typeof a?2:a,b="undefined"==typeof b?1:b;for(var c=this-(b-1)*a,d=new Array(c-1),e=1;c-1>=e;++e)d[e-1]=e;return d.scramble().keep(a-1).sort(function(a,b){return a-b}).add(c).differentiate().opAdd(b-1)}}),sc.define("performDegreeToKey",{Array:function(a,b,c){b=void 0===b?12:b,c=void 0===c?0:c;var d=b*(a/this.length|0)+this.wrapAt(a);return 0===c?d:d+c*(b/12)}}),sc.define("performKeyToDegree",{Array:function(a,b){b=void 0===b?12:b;var c=(a/b|0)*this.length,d=a%b;return this.indexInBetween(d)+c}}),sc.define("performNearestInList",{Array:function(a){return this[this.indexIn(a)]}}),sc.define("performNearestInScale",{Array:function(a,b){b=void 0===b?12:b;var c=a.trunc(b),d=a%b;return this.performNearestInList(d)+c}}),sc.define("permute",{Array:function(a){var b,c,d,e,f,g,h;if(Array.isArray(a))return a.map(function(a){return this.permute(a)},this);for(b=this,c=this.slice(),g=this.length,f=0|a,d=0;g-1>d;++d)e=d+f%(g-d),f=f/(g-d)|0,h=c[d],c[d]=c[e],c[e]=h;return c}}),sc.define("pop",{Array:function(){return this.pop()}}),sc.define("postln",{Number:function(){return console.log(this),this},Boolean:function(){return console.log(this),this},Array:function(){return console.log(JSON.stringify(this)),this},String:function(){return console.log(this),this},Function:function(){return console.log(this),this}}),sc.define(["pow","**"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.pow(a)},this):Math.pow(this,a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.pow(a.wrapAt(c))}:function(b){return b.pow(a)})}}),sc.define("previousPowerOf",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.previousPowerOf(a)},this):Math.pow(a,Math.ceil(Math.log(this)/Math.log(a))-1)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.previousPowerOf(a.wrapAt(c))}:function(b){return b.previousPowerOf(a)})}}),function(a){var b=65521,c=new Uint8Array(b),d=[2];!function(){var a,e,f;for(e=3;b>=e;){if(a=e-1>>1,!c[a])for(d.push(e),f=e+e+e;b>f;)c[f-1>>1]=1,f+=e+e;e+=2}}(),a.define("nthPrime",{Number:function(){return d[0|this]},Array:function(){return this.map(function(a){return a.nthPrime()})}}),a.define("prevPrime",{Number:function(){for(var a,b,c=0,e=d.length,f=0|this;e>=c;){if(a=c+e>>1,b=d[a],f===b)return d[a];b>f?e=a-1:c=a+1}return d[Math.max(0,Math.min(e,d.length-1))]},Array:function(){return this.map(function(a){return a.prevPrime()})}}),a.define("nextPrime",{Number:function(){for(var a,b,c=0,e=d.length,f=0|this;e>=c;){if(a=c+e>>1,b=d[a],f===b)return d[a];b>f?e=a-1:c=a+1}return d[Math.max(0,Math.min(c,d.length-1))]},Array:function(){return this.map(function(a){return a.nextPrime()})}}),a.define("isPrime",{Number:function(){return-1!==d.indexOf(0|this)},Array:function(){return this.map(function(a){return a.isPrime()})}}),a.define("indexOfPrime",{Number:function(){return d.indexOf(0|this)},Array:function(){return this.map(function(a){return a.indexOfPrime()})}}),a.define("factors",{Number:function(){if(1>=this)return[];for(var a,b=[],c=0|this,e=0,f=d.length;f>e;++e){for(a=d[e];c%a===0;)if(b.push(a),c/=a,1===c)return b;if(Math.sqrt(a)>c)return b.push(c),b}return b.push(c),b},Array:function(){return this.map(function(a){return a.factors()})}})}(sc),sc.define("product",{Array:function(a){var b,c,d=1;if(a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)d=d.opMul(a(this[b],b));else for(b=0,c=this.length;c>b;++b)d=d.opMul(this[b]);return d}}),sc.define("put",{Array:function(a,b){return"number"==typeof a?a>=0&&a0&&(this[0]=a),this}}),sc.define("putLast",{Array:function(a){return this.length>0&&(this[this.length-1]=a),this}}),sc.define("pyramid",{Array:function(a){a=void 0===a?1:a;var b,c,d,e,f,g,h,i,j;switch(b=this,c=[],h=0|Math.max(1,Math.min(a,10)),j=i=this.length,a){case 1:for(g=g=j*j+j>>1,d=0,f=0;i>d;++d)for(e=0;d>=e;++e,++f)c[f]=b[e];break;case 2:for(g=j*j+j>>1,d=0,f=0;i>d;++d)for(e=i-1-d;i-1>=e;++e,++f)c[f]=b[e];break;case 3:for(g=j*j+j>>1,d=0,f=0;i>d;++d)for(e=0;i-1-d>=e;++e,++f)c[f]=b[e];break;case 4:for(g=j*j+j>>1,d=0,f=0;i>d;++d)for(e=d;i-1>=e;++e,++f)c[f]=b[e];break;case 5:for(g=j*j,d=f=0;i>d;++d)for(e=0;d>=e;++e,++f)c[f]=b[e];for(d=0;i-1>d;++d)for(e=0;i-2-d>=e;++e,++f)c[f]=b[e];break;case 6:for(g=j*j,d=0,f=0;i>d;++d)for(e=i-1-d;i-1>=e;++e,++f)c[f]=b[e];for(d=0;i-1>d;++d)for(e=d+1;i-1>=e;++e,++f)c[f]=b[e];break;case 7:for(g=j*j+j-1,d=0,f=0;i>d;++d)for(e=0;i-1-d>=e;++e,++f)c[f]=b[e];for(d=1;i>d;++d)for(e=0;d>=e;++e,++f)c[f]=b[e];break;case 8:for(g=j*j+j-1,d=0,f=0;i>d;++d)for(e=d;i-1>=e;++e,++f)c[f]=b[e];for(d=1;i>d;++d)for(e=i-1-d;i-1>=e;++e,++f)c[f]=b[e];break;case 9:for(g=j*j,d=0,f=0;i>d;++d)for(e=0;d>=e;++e,++f)c[f]=b[e];for(d=0;i-1>d;++d)for(e=d+1;i-1>=e;++e,++f)c[f]=b[e];break;case 10:for(g=j*j,d=0,f=0;i>d;++d)for(e=i-1-d;i-1>=e;++e,++f)c[f]=b[e];for(d=0;i-1>d;++d)for(e=0;i-2-d>=e;++e,++f)c[f]=b[e]}return c}}),sc.define("pyramidg",{Array:function(a){var b,c,d=[];switch(a=void 0===a?1:a,a=0|Math.max(1,Math.min(a,10)),b=this.length-1,a){case 1:for(c=0;b>=c;++c)d.push(this.slice(0,c+1));break;case 2:for(c=0;b>=c;++c)d.push(this.slice(b-c,b+1));break;case 3:for(c=b;c>=0;--c)d.push(this.slice(0,c+1));break;case 4:for(c=0;b>=c;++c)d.push(this.slice(c,b+1));break;case 5:for(c=0;b>=c;++c)d.push(this.slice(0,c+1));for(c=b-1;c>=0;--c)d.push(this.slice(0,c+1));break;case 6:for(c=0;b>=c;++c)d.push(this.slice(b-c,b+1));for(c=b-1;c>=0;--c)d.push(this.slice(b-c,b+1));break;case 7:for(c=b;c>=0;--c)d.push(this.slice(0,c+1));for(c=1;b>=c;++c)d.push(this.slice(0,c+1));break;case 8:for(c=0;b>=c;++c)d.push(this.slice(c,b+1));for(c=b-1;c>=0;--c)d.push(this.slice(c,b+1));break;case 9:for(c=0;b>=c;++c)d.push(this.slice(0,c+1));for(c=1;b>=c;++c)d.push(this.slice(c,b+1));break;case 10:for(c=0;b>=c;++c)d.push(this.slice(b-c,b+1));for(c=b-1;c>=0;--c)d.push(this.slice(0,c+1))}return d}}),sc.define("quantize",{Number:function(a,b,c){if(Array.isArray(a)||Array.isArray(b)||Array.isArray(c))return[this,a,b,c].flop().map(function(a){return a[0].quantize(a[1],a[2],a[3])});a="undefined"==typeof a?1:a,b="undefined"==typeof b?.05:b,c="undefined"==typeof c?1:c;var d=this.round(a),e=d-this;return Math.abs(e)=this?0:this>=1?1:this},Array:function(){return this.map(function(a){return a.ramp()})}}),sc.define("*rand",{Array:function(a,b,c){b=void 0===b?0:b,c=void 0===c?1:c;for(var d=new Array(0|a),e=0,f=d.length;f>e;e++)d[e]=b.rrand(c);return d}}),sc.define("rand",{Number:function(){return Math.random()*this},Array:function(){return this.map(function(a){return a.rand()})}}),sc.define("*rand2",{Array:function(a,b){b=void 0===b?1:b;for(var c=new Array(0|a),d=0,e=c.length;e>d;d++)c[d]=b.rand2(b);return c}}),sc.define("rand2",{Number:function(){return(2*Math.random()-1)*this},Array:function(){return this.map(function(a){return a.rand2()})}}),sc.define("ratiomidi",{Number:function(){return Math.log(Math.abs(this))*Math.LOG2E*12},Array:function(){return this.map(function(a){return a.ratiomidi()})}}),sc.define("reciprocal",{Number:function(){return 1/this},Array:function(){return this.map(function(a){return a.reciprocal()})}}),sc.define("rectWindow",{Number:function(){return 0>this||this>1?0:1},Array:function(){return this.map(function(a){return a.rectWindow()})}}),sc.define("reject",{Array:function(a){return a=sc.func(a),this.filter(function(b,c){return!a(b,c)})}}),sc.define("remove",{Array:function(a){var b=this.indexOf(a);return-1!==b?this.splice(b,1)[0]:null}}),sc.define("removeAll",{Array:function(a){for(var b=0,c=a.length;c>b;++b){var d=this.indexOf(a[b]);-1!==d&&this.splice(d,1)}return this}}),sc.define("removeAllSuchThat",{Array:function(a){a=sc.func(a);var b,c,d=[],e=[];for(b=0,c=this.length;c>b;++b)a(this[b],b)&&(d.push(b),e.push(this[b]));for(b=d.length;b--;)this.splice(d[b],1);return e}}),sc.define("removeAt",{Array:function(a){return a>=0?this.splice(0|a,1)[0]:void 0}}),sc.define("removeEvery",{Array:function(a){for(var b,c=0,d=a.length;d>c;++c)do b=this.indexOf(a[c]),-1!==b&&this.splice(b,1);while(-1!==b);return this}}),sc.define("removing",{Array:function(a){var b=this.slice();return b.remove(a),b}}),sc.define("replace",{Array:function(a,b){var c,d=[],e=this;for(a=a.asArray(),b=b.asArray();-1!==(c=e.find(a));)d=d.concat(e.keep(c),b),e=e.drop(c+a.length);return d.concat(e)}}),sc.define("resamp0",{Array:function(a){for(var b=(this.length-1)/(a-1),c=new Array(a),d=0;a>d;++d)c[d]=this[Math.round(d*b)];return c}}),sc.define("resamp1",{Array:function(a){for(var b=(this.length-1)/(a-1),c=new Array(a),d=0;a>d;++d)c[d]=this.blendAt(d*b);return c}}),sc.define(["reverse","sc_reverse"],{Array:function(){return this.slice().reverse()}}),sc.define("reverseDo",{Number:function(a){a=sc.func(a);for(var b=0|this,c=0;--b>=0;)a(b,c++);return this}}),sc.define(["rightShift",">>"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.rightShift(a)},this):this>>a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.rightShift(a.wrapAt(c))}:function(b){return b.rightShift(a)})}}),sc.define("ring1",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.ring1(a)},this):this*a+this},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.ring1(a.wrapAt(c))}:function(b){return b.ring1(a)})}}),sc.define("ring2",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.ring2(a)},this):this*a+this+a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.ring2(a.wrapAt(c))}:function(b){return b.ring2(a)})}}),sc.define("ring3",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.ring3(a)},this):this*this*+a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.ring3(a.wrapAt(c))}:function(b){return b.ring3(a)})}}),sc.define("ring4",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.ring4(a)},this):this*this*a-this*a*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.ring4(a.wrapAt(c))}:function(b){return b.ring4(a)})}}),sc.define("rotate",{Array:function(a){a=void 0===a?1:0|a;var b=new Array(this.length),c=b.length;a%=c,0>a&&(a=c+a);for(var d=0,e=a;c>d;++d)b[e]=this[d],++e>=c&&(e=0);return b}}),sc.define("round",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.round(a)},this):0===a?0:Math.round(this/a)*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.round(a.wrapAt(c))}:function(b){return b.round(a)})}}),sc.define("roundUp",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.roundUp(a)},this):0===a?0:Math.ceil(this/a)*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.roundUp(a.wrapAt(c))}:function(b){return b.roundUp(a)})}}),sc.define("rrand",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.rrand(a)},this):this>a?Math.random()*(a-this)+this:Math.random()*(this-a)+a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.rrand(a.wrapAt(c))}:function(b){return b.rrand(a)})}}),sc.define("scaleneg",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.scaleneg(a)},this):(a=.5*a+.5,(Math.abs(this)-this)*a+this)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.scaleneg(a.wrapAt(c))}:function(b){return b.scaleneg(a)})}}),sc.define(["scramble","shuffle"],{Array:function(){var a,b,c,d,e=this.slice(0),f=e.length;for(a=0,d=f;f-1>a;a++,d--)b=a+(Math.random()*d|0),c=e[a],e[a]=e[b],e[b]=c;return e}}),sc.define("scurve",{Number:function(){return 0>=this?0:this>=1?1:this*this*(3-2*this)},Array:function(){return this.map(function(a){return a.scurve()})}}),sc.define("sect",{Array:function(a){var b,c,d=[];for(b=0,c=this.length;c>b;++b)-1!==a.indexOf(this[b])&&d.push(this[b]);return d}}),sc.define("select",{Array:function(a){return this.filter(sc.func(a))}}),sc.define("separate",{Array:function(a){var b,c;return a=sc.func(void 0===a?!0:a),b=[],c=[],this.doAdjacentPairs(function(d,e,f){c.push(d),a(d,e,f)&&(b.push(c),c=[])}),this.length>0&&c.push(this[this.length-1]),b.push(c),b}}),sc.define("*series",{Array:function(a,b,c){b=void 0===b?0:b,c=void 0===c?1:c;for(var d=new Array(0|a),e=0,f=d.length;f>e;e++)d[e]=b+c*e;return d}}),sc.define("series",{Number:function(a,b){var c=a-this,d=(0|Math.floor((b-this)/c+.001))+1;return Array.series(d,this,c)}}),sc.define("setBit",{Number:function(a,b){if(Array.isArray(a)){for(var c=this,d=0,e=a.length;e>d;++d)c=c.setBit(a[d],b);return c}return b=void 0===b?!0:!!b,b?this|1<0?1:0===this?0:-1},Array:function(){return this.map(function(a){return a.sign()})}}),sc.define("sin",{Number:function(){return Math.sin(this)},Array:function(){return this.map(function(a){return a.sin()})}}),sc.define("sinh",{Number:function(){return.5*(Math.pow(Math.E,this)-Math.pow(Math.E,-this))},Array:function(){return this.map(function(a){return a.sinh()})}}),sc.define("size",{Number:function(){return 0},Boolean:function(){return 0},Array:function(){return this.length},String:function(){return this.length},Function:function(){return 0}}),sc.define("slide",{Array:function(a,b){var c,d,e,f,g,h,i,j,k,l;for(a=void 0===a?3:a,b=void 0===b?1:b,c=this,d=[],k=a,l=b,f=(this.length+l-k)/l|0,e=f*k,h=g=j=0;f>h;++h,g+=l)for(i=g;k+g>i;++i)d[j++]=c[i];return d}}),sc.define("softclip",{Number:function(){var a=Math.abs(this);return.5>=a?this:(a-.25)/this},Array:function(){return this.map(function(a){return a.softclip()})}}),sc.define("sputter",{Array:function(a,b){a=void 0===a?.25:a,b=void 0===b?100:0|b;for(var c=[],d=0,e=0,f=this.length;f>d&&b>e;)c[e++]=this[d],ac;++c)for(var f=0;a>f;++f,++d)b[d]=this[c];return b}}),sc.define("sum",{Array:function(a){var b,c,d=0;if(a)for(a=sc.func(a),b=0,c=this.length;c>b;++b)d=d.opAdd(a(this[b]));else for(b=0,c=this.length;c>b;++b)d=d.opAdd(this[b]);return d}}),sc.define("sum3rand",{Number:function(){return.666666667*(Math.random()+Math.random()+Math.random()-1.5)*this},Array:function(){return this.map(function(a){return a.sum3rand()})}}),sc.define("sumabs",{Array:function(){for(var a,b=0,c=0,d=this.length;d>c;++c)a=Array.isArray(this[c])?this[c][0]:this[c],b+=Math.abs(a);return b}}),sc.define("sumsqr",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.sumsqr(a)},this):this*this+a*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.sumsqr(a.wrapAt(c))}:function(b){return b.sumsqr(a)})}}),sc.define("swap",{Array:function(a,b){if(a>=0&&a=0&&bb;++b)-1===a.indexOf(this[b])&&d.push(this[b]);for(b=0,c=a.length;c>b;++b)-1===this.indexOf(a[b])&&d.push(a[b]);return d}}),sc.define("take",{Array:function(a){var b=this.indexOf(a);return-1!==b?this.takeAt(b):void 0}}),sc.define("takeAt",{Array:function(a){if(a|=0,a>=0&&athis?0:this},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.thresh(a.wrapAt(c))}:function(b){return b.thresh(a)})}}),sc.define("transposeKey",{Array:function(a,b){return b=void 0===b?12:b,this.opAdd(a).opMod(b).sort()}}),sc.define("triWindow",{Number:function(){return 0>this||this>1?0:.5>this?2*this:-2*this+2},Array:function(){return this.map(function(a){return a.triWindow()})}}),sc.define("trunc",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.trunc(a)},this):0===a?this:Math.floor(this/a)*a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.trunc(a.wrapAt(c))}:function(b){return b.trunc(a)})}}),sc.define("twice",{Number:function(){return 2*this},Array:function(){return this.map(function(a){return a.twice()})}}),sc.define("unbubble",{Array:function(a,b){return a=void 0===a?0:a,b=void 0===b?1:b,0>=a?this.length>1?this:1>=b?this[0]:this.unbubble(a,b-1):this.map(function(b){return b.unbubble(a-1)})}}),sc.define("union",{Array:function(a){var b,c,d=this.slice();for(b=0,c=a.length;c>b;++b)-1===d.indexOf(a[b])&&d.push(a[b]);return d}}),sc.define("uniq",{Array:function(){var a,b,c=[];for(a=0,b=this.length;b>a;++a)-1===c.indexOf(this[a])&&c.push(this[a]);return c}}),sc.define(["unsignedRightShift",">>>"],{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.unsignedRightShift(a)},this):this>>>a},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.unsignedRightShift(a.wrapAt(c))}:function(b){return b.unsignedRightShift(a)})}}),sc.define("value",{Number:function(){return this},Boolean:function(){return this},Array:function(){return this},String:function(){return this},Function:function(){return this.apply(this,arguments)}}),sc.define("valueArray",function(){var a=[].slice;return{Number:function(){return this},Boolean:function(){return this},Array:function(){return this},String:function(){return this},Function:function(){return 0===arguments.length?this.call(this):1===arguments.length?Array.isArray(arguments[0])?this.apply(this,arguments[0]):this.call(this,arguments[0]):a.call(arguments).flop().map(function(a){return this.valueArray(a)},this)}}}),sc.define("wchoose",{Array:function(a){for(var b=0,c=0,d=a.length;d>c;++c)if(b+=a[c],b>=Math.random())return this[c];return this[a.length-1]}}),sc.define("welWindow",{Number:function(){return 0>this||this>1?0:Math.sin(this*Math.PI)},Array:function(){return this.map(function(a){return a.welWindow()})}}),sc.define("*with",{Array:function(){return Array.apply(null,arguments)}}),sc.define("wrap",{Number:function(a,b){if(Array.isArray(a)||Array.isArray(b))return[this,a,b].flop().map(function(a){return a[0].wrap(a[1],a[2]) });if(a>b)return this.wrap(b,a);var c,d=this;if(d>=b){if(c=b-a,d-=c,b>d)return d}else{if(!(a>d))return d;if(c=b-a,d+=c,d>=a)return d}return b===a?a:d-c*Math.floor((d-a)/c)},Array:function(a,b){return this.map(function(c){return c.wrap(a,b)})}}),sc.define("wrap2",{Number:function(a){return Array.isArray(a)?a.map(function(a){return this.wrap2(a)},this):this.wrap(-a,+a)},Array:function(a){return this.map(Array.isArray(a)?function(b,c){return b.wrap2(a.wrapAt(c))}:function(b){return b.wrap2(a)})}}),sc.define(["wrapAt","@@"],{Array:function(a){return Array.isArray(a)?a.map(function(a){return this.wrapAt(a)},this):this[(0|a).iwrap(0,this.length-1)]}}),sc.define("wrapExtend",{Array:function(a){a=Math.max(0,0|a);for(var b=new Array(a),c=0;a>c;++c)b[c]=this[c%this.length];return b}}),sc.define("wrapPut",{Array:function(a,b){return"number"==typeof a?this[a.iwrap(0,this.length-1)]=b:Array.isArray(a)&&a.forEach(function(a){this.wrapPut(a,b)},this),this}}),sc.define("wrapSwap",{Array:function(a,b){a=(0|a).iwrap(0,this.length-1),b=(0|b).iwrap(0,this.length-1);var c=this[a];return this[a]=this[b],this[b]=c,this}}),sc.define("xrand",{Number:function(a){return a=void 0===a?0:a,(a+(this-1).rand()+1)%this}}),sc.define("xrand2",{Number:function(a){a=void 0===a?0:a;var b=(2*this).rand()-this;return b===a?this:b}}),function(a){function b(a,c,d){return this instanceof b?(Array.isArray(a)||(a=[0,1,2,3,4,5,6,7,8,9,10,11]),"number"!=typeof c&&(c=2),"string"!=typeof d&&(d="Unknown Tuning"),this._tuning=a,this._octaveRatio=c,void(this.name=d)):new b(a,c,d)}b.choose=function(a){return Array.isArray(a)?a.map(function(a){return b.choose(a)}):("number"!=typeof a&&(a=12),c.choose(function(b){return b.size()===a}))},b.et=function(a){return"number"!=typeof a&&(a=12),b(b.calcET(a),2,b.etName(a))},b["default"]=function(a){return b.et(a)},b.calcET=function(a){for(var b=new Array(a),c=b.length;c--;)b[c]=c*(12/a);return b},b.etName=function(a){return"ET"+a},b.prototype.semitones=function(){return this._tuning.slice()},b.prototype.cents=function(){return this._tuning.slice().map(function(a){return 100*a})},b.prototype.ratios=function(){return this._tuning.midiratio()},b.prototype.at=function(a){return this._tuning.at(a)},b.prototype.wrapAt=function(a){return this._tuning.wrapAt(a)},b.prototype.octaveRatio=function(){return this._octaveRatio},b.prototype.size=function(){return this._tuning.length},b.prototype.stepsPerOctave=function(){return Math.log(this._octaveRatio)*Math.LOG2E*12},b.prototype.tuning=function(){return this._tuning},b.prototype.equals=function(a){return this._octaveRatio===a._octaveRatio&&this._tuning.equals(a._tuning)},b.prototype.deepCopy=function(){return b(this._tuning.slice(0),this._octaveRatio,this.name)};var c=a.TuningInfo={},d={};c.choose=function(a){for(var b,c=[],e=Object.keys(d),f=e.length;f--;)b=d[e[f]],("function"!=typeof a||a(b))&&c.push(b);return b=c[Math.random()*c.length|0],b?b.deepCopy():void 0},c.at=function(a){var b=d[a];return b?b.deepCopy():void 0},c.names=function(){var a=Object.keys(d);return a.sort(),a},c.register=function(a,e){"string"==typeof a&&e instanceof b&&(d[a]=e,b[a]=function(a){return function(){return c.at(a).deepCopy()}}(a))},c.register("et12",b([0,1,2,3,4,5,6,7,8,9,10,11],2,"ET12")),c.register("just",b([1,16/15,9/8,1.2,5/4,4/3,45/32,1.5,1.6,5/3,1.8,15/8].ratiomidi(),2,"Limit Just Intonation")),a.TuningInfo.register("pythagorean",b([1,256/243,9/8,32/27,81/64,4/3,729/512,1.5,128/81,27/16,16/9,243/128].ratiomidi(),2,"Pythagorean")),a.TuningInfo.register("sept1",b([1,16/15,9/8,1.2,5/4,4/3,1.4,1.5,1.6,5/3,1.8,15/8].ratiomidi(),2,"Septimal Tritone Just Intonation")),a.TuningInfo.register("sept2",b([1,16/15,9/8,1.2,5/4,4/3,1.4,1.5,1.6,5/3,7/4,15/8].ratiomidi(),2,"7-Limit Just Intonation")),a.TuningInfo.register("mean4",b([0,.755,1.93,3.105,3.86,5.035,5.79,6.965,7.72,8.895,10.07,10.82],2,"Meantone, 1/4 Syntonic Comma")),a.TuningInfo.register("mean5",b([0,.804,1.944,3.084,3.888,5.028,5.832,6.972,7.776,8.916,10.056,10.86],2,"Meantone, 1/5 Pythagorean Comma")),a.TuningInfo.register("mean6",b([0,.86,1.96,3.06,3.92,5.02,5.88,6.98,7.84,8.94,10.04,10.9],2,"Meantone, 1/6 Pythagorean Comma")),a.TuningInfo.register("kirnberger",b([1,256/243,Math.sqrt(5)/2,32/27,5/4,4/3,45/32,Math.pow(5,.25),128/81,Math.pow(5,.75)/2,16/9,15/8].ratiomidi(),2,"Kirnberger III")),a.TuningInfo.register("werckmeister",b([0,.92,1.93,2.94,3.915,4.98,5.9,6.965,7.93,8.895,9.96,10.935],2,"Werckmeister III")),a.TuningInfo.register("vallotti",b([0,.94135,1.9609,2.98045,3.9218,5.01955,5.9218,6.98045,7.9609,8.94135,10,10.90225],2,"Vallotti")),a.TuningInfo.register("young",b([0,.9,1.96,2.94,3.92,4.98,5.88,6.98,7.92,8.94,9.96,10.9],2,"Young")),a.TuningInfo.register("reinhard",b([1,14/13,13/12,16/13,1.3,18/13,13/9,20/13,13/8,22/13,13/7,208/105].ratiomidi(),2,"Mayumi Reinhard")),a.TuningInfo.register("wcHarm",b([1,17/16,9/8,19/16,5/4,21/16,11/8,1.5,13/8,27/16,7/4,15/8].ratiomidi(),2,"Wendy Carlos Harmonic")),a.TuningInfo.register("wcSJ",b([1,17/16,9/8,1.2,5/4,4/3,11/8,1.5,13/8,5/3,7/4,15/8].ratiomidi(),2,"Wendy Carlos Super Just")),a.TuningInfo.register("et19",b(a.Range("0..18").opMul(12/19),2,"ET19")),a.TuningInfo.register("et22",b(a.Range("0..21").opMul(12/22),2,"ET22")),a.TuningInfo.register("et24",b(a.Range("0..23").opMul(.5),2,"ET24")),a.TuningInfo.register("et31",b(a.Range("0..30").opMul(12/31),2,"ET31")),a.TuningInfo.register("et41",b(a.Range("0..40").opMul(12/41),2,"ET41")),a.TuningInfo.register("et53",b(a.Range("0..53").opMul(12/53),2,"ET53")),a.TuningInfo.register("johnston",b([1,25/24,135/128,16/15,10/9,9/8,75/64,1.2,5/4,81/64,1.28,4/3,1.35,45/32,1.44,1.5,25/16,1.6,5/3,27/16,225/128,16/9,1.8,15/8,1.92].ratiomidi(),2,"Ben Johnston")),a.TuningInfo.register("partch",b([1,81/80,33/32,1.05,16/15,12/11,1.1,10/9,9/8,8/7,7/6,32/27,1.2,11/9,5/4,14/11,9/7,21/16,4/3,1.35,11/8,1.4,10/7,16/11,40/27,1.5,32/21,14/9,11/7,1.6,18/11,5/3,27/16,12/7,7/4,16/9,1.8,20/11,11/6,15/8,40/21,64/33,160/81].ratiomidi(),2,"Harry Partch")),a.TuningInfo.register("catler",b([1,33/32,16/15,9/8,8/7,7/6,1.2,128/105,16/13,5/4,21/16,4/3,11/8,45/32,16/11,1.5,1.6,13/8,5/3,27/16,7/4,16/9,24/13,15/8].ratiomidi(),2,"Jon Catler")),a.TuningInfo.register("chalmers",b([1,1.05,16/15,9/8,7/6,1.2,5/4,21/16,4/3,1.4,35/24,1.5,1.575,1.6,5/3,7/4,1.8,28/15,63/32].ratiomidi(),2,"John Chalmers")),a.TuningInfo.register("harrison",b([1,16/15,10/9,8/7,7/6,1.2,5/4,4/3,17/12,1.5,1.6,5/3,12/7,7/4,1.8,15/8].ratiomidi(),2,"Lou Harrison")),a.TuningInfo.register("sruti",b([1,256/243,16/15,10/9,9/8,32/27,1.2,5/4,81/64,4/3,1.35,45/32,729/512,1.5,128/81,1.6,5/3,27/16,16/9,1.8,15/8,243/128].ratiomidi(),2,"Sruti")),a.TuningInfo.register("harmonic",b(a.Range("1..24").ratiomidi(),2,"Harmonic Series 24")),a.TuningInfo.register("bp",b(a.Range("0..12").opMul(3..ratiomidi()/13),3,"Bohlen-Pierce")),a.TuningInfo.register("wcAlpha",b(a.Range("0..14").opMul(.78),(15*.78).midiratio(),"Wendy Carlos Alpha")),a.TuningInfo.register("wcBeta",b(a.Range("0..18").opMul(.638),12.122.midiratio(),"Wendy Carlos Beta")),a.TuningInfo.register("wcGamma",b(a.Range("0..33").opMul(.351),11.934.midiratio(),"Wendy Carlos Gamma")),a.Tuning=b}(sc),function(a){function b(c,d,e,f){if(!(this instanceof b))return new b(c,d,e,f);Array.isArray(c)||(c=[0,2,4,5,7,9,11]),"number"!=typeof d&&(d=b.guessPPO(c));var g;"string"==typeof e&&(g=e,e=a.TuningInfo.at(e)),e instanceof a.Tuning||(e=a.Tuning["default"](d)),void 0===f&&(f=g),"string"!=typeof f&&(f="Unknown Scale"),this.name=f,this._degrees=c,this._pitchesPerOctave=d,this.tuning(e)}b.choose=function(d,e){return a.isArrayArgs(arguments)?[d,e].flop().map(function(a){return b.choose(a[0],a[1])}):("number"!=typeof d&&(d=7),"number"!=typeof e&&(e=12),c.choose(function(a){return a._degrees.length===d&&a._pitchesPerOctave===e}))},b.guessPPO=function(a){if(!Array.isArray(a))return 128;var b,c=a[0]||0;for(b=a.length;b--;)a[b]>c&&(c=a[b]);var d=[53,24,19,12];for(b=d.length;b--;)if(c>>10,c+=c<<3,c^=c>>>6,c+=~(c<<11),c^=c>>>16,this.s1=1243598713^a,this.s2=3093459404^a,this.s3=1821928721^a,this.s1<2&&(this.s1=1243598713),this.s2<8&&(this.s2=3093459404),this.s3<16&&(this.s3=1821928721)}b.prototype.trand=function(){return this.s1=(4294967294&this.s1)<<12^(this.s1<<13^this.s1)>>>19,this.s2=(4294967288&this.s2)<<4^(this.s2<<2^this.s2)>>>25,this.s3=(4294967280&this.s3)<<17^(this.s3<<3^this.s3)>>>11,this.s1^this.s2^this.s3};var c=new Uint32Array(1),d=new Float32Array(c.buffer);b.prototype.next=function(){return c[0]=1065353216|this.trand()>>>9,d[0]-1},a.RGen=b}(sc),function(a){function b(a,b){function c(){this.constructor=a}for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a}function c(){return this instanceof c?void(this.count=0):new c}function d(a,b,e){return this instanceof d?(c.call(this),b="number"==typeof b?b:1,e="number"==typeof e?e:0,this.list=a,this.repeats=1/0!==b?0|Math.max(0,b):1/0,void(this.offset=0|Math.max(0,e))):new d(a,b,e)}function e(a,b,c){return this instanceof e?(d.call(this,a,b,c),void(this.repeats*=a.length)):new e(a,b,c)}function f(b,c,e){if(!(this instanceof f))return new f(b,c,e);d.call(this,b,c,0);var g=new a.RGen(e);this.list.sort(function(){return g.next()-.5})}function g(b,c,e){if(!(this instanceof g))return new g(b,c,e);d.call(this,b,c,0);var f=new a.RGen(e);this._rand=f.next.bind(f)}function h(a,b,d){return this instanceof h?(c.call(this),a="number"==typeof a?a:0,d="number"==typeof d?d:1/0,this.start=a,this.value=this.start,this.step=b||1,void(this.length=1/0!==d?0|Math.max(0,d):1/0)):new h(a,b,d)}function i(a,b,d){return this instanceof i?(c.call(this),a="number"==typeof a?a:0,d="number"==typeof d?d:1/0,this.start=a,this.value=this.start,this.grow=b||1,void(this.length=1/0!==d?0|Math.max(0,d):1/0)):new i(a,b,d)}c.prototype.next=function(){return null},c.prototype.valueOf=function(a){return"function"==typeof a.next?a.next():a},c.prototype.reset=function(){this.count=0},a.Pattern=c,b(d,c),d.prototype.next=function(){if(this.count>=this.repeats)return null;var a=(this.count+this.offset)%this.list.length,b=this.list[a],c=this.valueOf(b);return null!==c?("function"!=typeof b.next&&(this.count+=1),c):("function"==typeof b.reset&&b.reset(),this.count+=1,this.next())},a.Pser=d,b(e,d),a.Pseq=e,b(f,d),a.Pshuf=f,b(g,d),g.prototype.next=function(){if(this.count>=this.repeats)return null;var a=this._rand()*this.list.length|0,b=this.list[a],c=this.valueOf(b);return null!==c?("function"!=typeof b.next&&(this.count+=1),c):("function"==typeof b.reset&&b.reset(),this.count+=1,this.next())},a.Prand=g,b(h,c),h.prototype.next=function(){if(this.count