(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new error("cannot find module '"+o+"'");throw f.code="module_not_found",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 2 ? $$[2] : undefined , count = math.min((end === undefined ? len : toindex(end, len)) - from, len - to) , inc = 1; if(from < to && to < from + count){ inc = -1; from += count - 1; to += count - 1; } while(count-- > 0){ if(from in o)o[to] = o[from]; else delete o[to]; to += inc; from += inc; } return o; }; },{"76":76,"79":79,"80":80}],6:[function(_dereq_,module,exports){ // 22.1.3.6 array.prototype.fill(value, start = 0, end = this.length) 'use strict'; var toobject = _dereq_(80) , toindex = _dereq_(76) , tolength = _dereq_(79); module.exports = [].fill || function fill(value /*, start = 0, end = @length */){ var o = toobject(this) , length = tolength(o.length) , $$ = arguments , $$len = $$.length , index = toindex($$len > 1 ? $$[1] : undefined, length) , end = $$len > 2 ? $$[2] : undefined , endpos = end === undefined ? length : toindex(end, length); while(endpos > index)o[index++] = value; return o; }; },{"76":76,"79":79,"80":80}],7:[function(_dereq_,module,exports){ // false -> array#indexof // true -> array#includes var toiobject = _dereq_(78) , tolength = _dereq_(79) , toindex = _dereq_(76); module.exports = function(is_includes){ return function($this, el, fromindex){ var o = toiobject($this) , length = tolength(o.length) , index = toindex(fromindex, length) , value; // array#includes uses samevaluezero equality algorithm if(is_includes && el != el)while(length > index){ value = o[index++]; if(value != value)return true; // array#toindex ignores holes, array#includes - not } else for(;length > index; index++)if(is_includes || index in o){ if(o[index] === el)return is_includes || index; } return !is_includes && -1; }; }; },{"76":76,"78":78,"79":79}],8:[function(_dereq_,module,exports){ // 0 -> array#foreach // 1 -> array#map // 2 -> array#filter // 3 -> array#some // 4 -> array#every // 5 -> array#find // 6 -> array#findindex var ctx = _dereq_(17) , iobject = _dereq_(34) , toobject = _dereq_(80) , tolength = _dereq_(79) , asc = _dereq_(9); module.exports = function(type){ var is_map = type == 1 , is_filter = type == 2 , is_some = type == 3 , is_every = type == 4 , is_find_index = type == 6 , no_holes = type == 5 || is_find_index; return function($this, callbackfn, that){ var o = toobject($this) , self = iobject(o) , f = ctx(callbackfn, that, 3) , length = tolength(self.length) , index = 0 , result = is_map ? asc($this, length) : is_filter ? asc($this, 0) : undefined , val, res; for(;length > index; index++)if(no_holes || index in self){ val = self[index]; res = f(val, index, o); if(type){ if(is_map)result[index] = res; // map else if(res)switch(type){ case 3: return true; // some case 5: return val; // find case 6: return index; // findindex case 2: result.push(val); // filter } else if(is_every)return false; // every } } return is_find_index ? -1 : is_some || is_every ? is_every : result; }; }; },{"17":17,"34":34,"79":79,"80":80,"9":9}],9:[function(_dereq_,module,exports){ // 9.4.2.3 arrayspeciescreate(originalarray, length) var isobject = _dereq_(38) , isarray = _dereq_(36) , species = _dereq_(83)('species'); module.exports = function(original, length){ var c; if(isarray(original)){ c = original.constructor; // cross-realm fallback if(typeof c == 'function' && (c === array || isarray(c.prototype)))c = undefined; if(isobject(c)){ c = c[species]; if(c === null)c = undefined; } } return new (c === undefined ? array : c)(length); }; },{"36":36,"38":38,"83":83}],10:[function(_dereq_,module,exports){ // getting tag from 19.1.3.6 object.prototype.tostring() var cof = _dereq_(11) , tag = _dereq_(83)('tostringtag') // es3 wrong here , arg = cof(function(){ return arguments; }()) == 'arguments'; module.exports = function(it){ var o, t, b; return it === undefined ? 'undefined' : it === null ? 'null' // @@tostringtag case : typeof (t = (o = object(it))[tag]) == 'string' ? t // builtintag case : arg ? cof(o) // es3 arguments fallback : (b = cof(o)) == 'object' && typeof o.callee == 'function' ? 'arguments' : b; }; },{"11":11,"83":83}],11:[function(_dereq_,module,exports){ var tostring = {}.tostring; module.exports = function(it){ return tostring.call(it).slice(8, -1); }; },{}],12:[function(_dereq_,module,exports){ 'use strict'; var $ = _dereq_(46) , hide = _dereq_(31) , redefineall = _dereq_(60) , ctx = _dereq_(17) , strictnew = _dereq_(69) , defined = _dereq_(18) , forof = _dereq_(27) , $iterdefine = _dereq_(42) , step = _dereq_(44) , id = _dereq_(82)('id') , $has = _dereq_(30) , isobject = _dereq_(38) , setspecies = _dereq_(65) , descriptors = _dereq_(19) , isextensible = object.isextensible || isobject , size = descriptors ? '_s' : 'size' , id = 0; var fastkey = function(it, create){ // return primitive with prefix if(!isobject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 's' : 'p') + it; if(!$has(it, id)){ // can't set id to frozen object if(!isextensible(it))return 'f'; // not necessary to add id if(!create)return 'e'; // add missing object id hide(it, id, ++id); // return object id with prefix } return 'o' + it[id]; }; var getentry = function(that, key){ // fast case var index = fastkey(key), entry; if(index !== 'f')return that._i[index]; // frozen object case for(entry = that._f; entry; entry = entry.n){ if(entry.k == key)return entry; } }; module.exports = { getconstructor: function(wrapper, name, is_map, adder){ var c = wrapper(function(that, iterable){ strictnew(that, c, name); that._i = $.create(null); // index that._f = undefined; // first entry that._l = undefined; // last entry that[size] = 0; // size if(iterable != undefined)forof(iterable, is_map, that[adder], that); }); redefineall(c.prototype, { // 23.1.3.1 map.prototype.clear() // 23.2.3.2 set.prototype.clear() clear: function clear(){ for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){ entry.r = true; if(entry.p)entry.p = entry.p.n = undefined; delete data[entry.i]; } that._f = that._l = undefined; that[size] = 0; }, // 23.1.3.3 map.prototype.delete(key) // 23.2.3.4 set.prototype.delete(value) 'delete': function(key){ var that = this , entry = getentry(that, key); if(entry){ var next = entry.n , prev = entry.p; delete that._i[entry.i]; entry.r = true; if(prev)prev.n = next; if(next)next.p = prev; if(that._f == entry)that._f = next; if(that._l == entry)that._l = prev; that[size]--; } return !!entry; }, // 23.2.3.6 set.prototype.foreach(callbackfn, thisarg = undefined) // 23.1.3.5 map.prototype.foreach(callbackfn, thisarg = undefined) foreach: function foreach(callbackfn /*, that = undefined */){ var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3) , entry; while(entry = entry ? entry.n : this._f){ f(entry.v, entry.k, this); // revert to the last existing entry while(entry && entry.r)entry = entry.p; } }, // 23.1.3.7 map.prototype.has(key) // 23.2.3.7 set.prototype.has(value) has: function has(key){ return !!getentry(this, key); } }); if(descriptors)$.setdesc(c.prototype, 'size', { get: function(){ return defined(this[size]); } }); return c; }, def: function(that, key, value){ var entry = getentry(that, key) , prev, index; // change existing entry if(entry){ entry.v = value; // create new entry } else { that._l = entry = { i: index = fastkey(key, true), // <- index k: key, // <- key v: value, // <- value p: prev = that._l, // <- previous entry n: undefined, // <- next entry r: false // <- removed }; if(!that._f)that._f = entry; if(prev)prev.n = entry; that[size]++; // add to index if(index !== 'f')that._i[index] = entry; } return that; }, getentry: getentry, setstrong: function(c, name, is_map){ // add .keys, .values, .entries, [@@iterator] // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 $iterdefine(c, name, function(iterated, kind){ this._t = iterated; // target this._k = kind; // kind this._l = undefined; // previous }, function(){ var that = this , kind = that._k , entry = that._l; // revert to the last existing entry while(entry && entry.r)entry = entry.p; // get next entry if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){ // or finish the iteration that._t = undefined; return step(1); } // return step by kind if(kind == 'keys' )return step(0, entry.k); if(kind == 'values')return step(0, entry.v); return step(0, [entry.k, entry.v]); }, is_map ? 'entries' : 'values' , !is_map, true); // add [@@species], 23.1.2.2, 23.2.2.2 setspecies(name); } }; },{"17":17,"18":18,"19":19,"27":27,"30":30,"31":31,"38":38,"42":42,"44":44,"46":46,"60":60,"65":65,"69":69,"82":82}],13:[function(_dereq_,module,exports){ // https://github.com/davidbruant/map-set.prototype.tojson var forof = _dereq_(27) , classof = _dereq_(10); module.exports = function(name){ return function tojson(){ if(classof(this) != name)throw typeerror(name + "#tojson isn't generic"); var arr = []; forof(this, false, arr.push, arr); return arr; }; }; },{"10":10,"27":27}],14:[function(_dereq_,module,exports){ 'use strict'; var hide = _dereq_(31) , redefineall = _dereq_(60) , anobject = _dereq_(4) , isobject = _dereq_(38) , strictnew = _dereq_(69) , forof = _dereq_(27) , createarraymethod = _dereq_(8) , $has = _dereq_(30) , weak = _dereq_(82)('weak') , isextensible = object.isextensible || isobject , arrayfind = createarraymethod(5) , arrayfindindex = createarraymethod(6) , id = 0; // fallback for frozen keys var frozenstore = function(that){ return that._l || (that._l = new frozenstore); }; var frozenstore = function(){ this.a = []; }; var findfrozen = function(store, key){ return arrayfind(store.a, function(it){ return it[0] === key; }); }; frozenstore.prototype = { get: function(key){ var entry = findfrozen(this, key); if(entry)return entry[1]; }, has: function(key){ return !!findfrozen(this, key); }, set: function(key, value){ var entry = findfrozen(this, key); if(entry)entry[1] = value; else this.a.push([key, value]); }, 'delete': function(key){ var index = arrayfindindex(this.a, function(it){ return it[0] === key; }); if(~index)this.a.splice(index, 1); return !!~index; } }; module.exports = { getconstructor: function(wrapper, name, is_map, adder){ var c = wrapper(function(that, iterable){ strictnew(that, c, name); that._i = id++; // collection id that._l = undefined; // leak store for frozen objects if(iterable != undefined)forof(iterable, is_map, that[adder], that); }); redefineall(c.prototype, { // 23.3.3.2 weakmap.prototype.delete(key) // 23.4.3.3 weakset.prototype.delete(value) 'delete': function(key){ if(!isobject(key))return false; if(!isextensible(key))return frozenstore(this)['delete'](key); return $has(key, weak) && $has(key[weak], this._i) && delete key[weak][this._i]; }, // 23.3.3.4 weakmap.prototype.has(key) // 23.4.3.4 weakset.prototype.has(value) has: function has(key){ if(!isobject(key))return false; if(!isextensible(key))return frozenstore(this).has(key); return $has(key, weak) && $has(key[weak], this._i); } }); return c; }, def: function(that, key, value){ if(!isextensible(anobject(key))){ frozenstore(that).set(key, value); } else { $has(key, weak) || hide(key, weak, {}); key[weak][that._i] = value; } return that; }, frozenstore: frozenstore, weak: weak }; },{"27":27,"30":30,"31":31,"38":38,"4":4,"60":60,"69":69,"8":8,"82":82}],15:[function(_dereq_,module,exports){ 'use strict'; var global = _dereq_(29) , $export = _dereq_(22) , redefine = _dereq_(61) , redefineall = _dereq_(60) , forof = _dereq_(27) , strictnew = _dereq_(69) , isobject = _dereq_(38) , fails = _dereq_(24) , $iterdetect = _dereq_(43) , settostringtag = _dereq_(66); module.exports = function(name, wrapper, methods, common, is_map, is_weak){ var base = global[name] , c = base , adder = is_map ? 'set' : 'add' , proto = c && c.prototype , o = {}; var fixmethod = function(key){ var fn = proto[key]; redefine(proto, key, key == 'delete' ? function(a){ return is_weak && !isobject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : key == 'has' ? function has(a){ return is_weak && !isobject(a) ? false : fn.call(this, a === 0 ? 0 : a); } : key == 'get' ? function get(a){ return is_weak && !isobject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); } : key == 'add' ? function add(a){ fn.call(this, a === 0 ? 0 : a); return this; } : function set(a, b){ fn.call(this, a === 0 ? 0 : a, b); return this; } ); }; if(typeof c != 'function' || !(is_weak || proto.foreach && !fails(function(){ new c().entries().next(); }))){ // create collection constructor c = common.getconstructor(wrapper, name, is_map, adder); redefineall(c.prototype, methods); } else { var instance = new c // early implementations not supports chaining , hasnt_chaining = instance[adder](is_weak ? {} : -0, 1) != instance // v8 ~ chromium 40- weak-collections throws on primitives, but should return false , throws_on_primitives = fails(function(){ instance.has(1); }) // most early implementations doesn't supports iterables, most modern - not close it correctly , accept_iterables = $iterdetect(function(iter){ new c(iter); }) // eslint-disable-line no-new // for early implementations -0 and +0 not the same , buggy_zero; if(!accept_iterables){ c = wrapper(function(target, iterable){ strictnew(target, c, name); var that = new base; if(iterable != undefined)forof(iterable, is_map, that[adder], that); return that; }); c.prototype = proto; proto.constructor = c; } is_weak || instance.foreach(function(val, key){ buggy_zero = 1 / key === -infinity; }); if(throws_on_primitives || buggy_zero){ fixmethod('delete'); fixmethod('has'); is_map && fixmethod('get'); } if(buggy_zero || hasnt_chaining)fixmethod(adder); // weak collections should not contains .clear method if(is_weak && proto.clear)delete proto.clear; } settostringtag(c, name); o[name] = c; $export($export.g + $export.w + $export.f * (c != base), o); if(!is_weak)common.setstrong(c, name, is_map); return c; }; },{"22":22,"24":24,"27":27,"29":29,"38":38,"43":43,"60":60,"61":61,"66":66,"69":69}],16:[function(_dereq_,module,exports){ var core = module.exports = {version: '1.2.6'}; if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef },{}],17:[function(_dereq_,module,exports){ // optional / simple context binding var afunction = _dereq_(2); module.exports = function(fn, that, length){ afunction(fn); if(that === undefined)return fn; switch(length){ case 1: return function(a){ return fn.call(that, a); }; case 2: return function(a, b){ return fn.call(that, a, b); }; case 3: return function(a, b, c){ return fn.call(that, a, b, c); }; } return function(/* ...args */){ return fn.apply(that, arguments); }; }; },{"2":2}],18:[function(_dereq_,module,exports){ // 7.2.1 requireobjectcoercible(argument) module.exports = function(it){ if(it == undefined)throw typeerror("can't call method on " + it); return it; }; },{}],19:[function(_dereq_,module,exports){ // thank's ie8 for his funny defineproperty module.exports = !_dereq_(24)(function(){ return object.defineproperty({}, 'a', {get: function(){ return 7; }}).a != 7; }); },{"24":24}],20:[function(_dereq_,module,exports){ var isobject = _dereq_(38) , document = _dereq_(29).document // in old ie typeof document.createelement is 'object' , is = isobject(document) && isobject(document.createelement); module.exports = function(it){ return is ? document.createelement(it) : {}; }; },{"29":29,"38":38}],21:[function(_dereq_,module,exports){ // all enumerable object keys, includes symbols var $ = _dereq_(46); module.exports = function(it){ var keys = $.getkeys(it) , getsymbols = $.getsymbols; if(getsymbols){ var symbols = getsymbols(it) , isenum = $.isenum , i = 0 , key; while(symbols.length > i)if(isenum.call(it, key = symbols[i++]))keys.push(key); } return keys; }; },{"46":46}],22:[function(_dereq_,module,exports){ var global = _dereq_(29) , core = _dereq_(16) , hide = _dereq_(31) , redefine = _dereq_(61) , ctx = _dereq_(17) , prototype = 'prototype'; var $export = function(type, name, source){ var is_forced = type & $export.f , is_global = type & $export.g , is_static = type & $export.s , is_proto = type & $export.p , is_bind = type & $export.b , target = is_global ? global : is_static ? global[name] || (global[name] = {}) : (global[name] || {})[prototype] , exports = is_global ? core : core[name] || (core[name] = {}) , expproto = exports[prototype] || (exports[prototype] = {}) , key, own, out, exp; if(is_global)source = name; for(key in source){ // contains in native own = !is_forced && target && key in target; // export native or passed out = (own ? target : source)[key]; // bind timers to global for call from export context exp = is_bind && own ? ctx(out, global) : is_proto && typeof out == 'function' ? ctx(function.call, out) : out; // extend global if(target && !own)redefine(target, key, out); // export if(exports[key] != out)hide(exports, key, exp); if(is_proto && expproto[key] != out)expproto[key] = out; } }; global.core = core; // type bitmap $export.f = 1; // forced $export.g = 2; // global $export.s = 4; // static $export.p = 8; // proto $export.b = 16; // bind $export.w = 32; // wrap module.exports = $export; },{"16":16,"17":17,"29":29,"31":31,"61":61}],23:[function(_dereq_,module,exports){ var match = _dereq_(83)('match'); module.exports = function(key){ var re = /./; try { '/./'[key](re); } catch(e){ try { re[match] = false; return !'/./'[key](re); } catch(f){ /* empty */ } } return true; }; },{"83":83}],24:[function(_dereq_,module,exports){ module.exports = function(exec){ try { return !!exec(); } catch(e){ return true; } }; },{}],25:[function(_dereq_,module,exports){ 'use strict'; var hide = _dereq_(31) , redefine = _dereq_(61) , fails = _dereq_(24) , defined = _dereq_(18) , wks = _dereq_(83); module.exports = function(key, length, exec){ var symbol = wks(key) , original = ''[key]; if(fails(function(){ var o = {}; o[symbol] = function(){ return 7; }; return ''[key](o) != 7; })){ redefine(string.prototype, key, exec(defined, symbol, original)); hide(regexp.prototype, symbol, length == 2 // 21.2.5.8 regexp.prototype[@@replace](string, replacevalue) // 21.2.5.11 regexp.prototype[@@split](string, limit) ? function(string, arg){ return original.call(string, this, arg); } // 21.2.5.6 regexp.prototype[@@match](string) // 21.2.5.9 regexp.prototype[@@search](string) : function(string){ return original.call(string, this); } ); } }; },{"18":18,"24":24,"31":31,"61":61,"83":83}],26:[function(_dereq_,module,exports){ 'use strict'; // 21.2.5.3 get regexp.prototype.flags var anobject = _dereq_(4); module.exports = function(){ var that = anobject(this) , result = ''; if(that.global) result += 'g'; if(that.ignorecase) result += 'i'; if(that.multiline) result += 'm'; if(that.unicode) result += 'u'; if(that.sticky) result += 'y'; return result; }; },{"4":4}],27:[function(_dereq_,module,exports){ var ctx = _dereq_(17) , call = _dereq_(40) , isarrayiter = _dereq_(35) , anobject = _dereq_(4) , tolength = _dereq_(79) , getiterfn = _dereq_(84); module.exports = function(iterable, entries, fn, that){ var iterfn = getiterfn(iterable) , f = ctx(fn, that, entries ? 2 : 1) , index = 0 , length, step, iterator; if(typeof iterfn != 'function')throw typeerror(iterable + ' is not iterable!'); // fast case for arrays with default iterator if(isarrayiter(iterfn))for(length = tolength(iterable.length); length > index; index++){ entries ? f(anobject(step = iterable[index])[0], step[1]) : f(iterable[index]); } else for(iterator = iterfn.call(iterable); !(step = iterator.next()).done; ){ call(iterator, f, step.value, entries); } }; },{"17":17,"35":35,"4":4,"40":40,"79":79,"84":84}],28:[function(_dereq_,module,exports){ // fallback for ie11 buggy object.getownpropertynames with iframe and window var toiobject = _dereq_(78) , getnames = _dereq_(46).getnames , tostring = {}.tostring; var windownames = typeof window == 'object' && object.getownpropertynames ? object.getownpropertynames(window) : []; var getwindownames = function(it){ try { return getnames(it); } catch(e){ return windownames.slice(); } }; module.exports.get = function getownpropertynames(it){ if(windownames && tostring.call(it) == '[object window]')return getwindownames(it); return getnames(toiobject(it)); }; },{"46":46,"78":78}],29:[function(_dereq_,module,exports){ // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.math == math ? window : typeof self != 'undefined' && self.math == math ? self : function('return this')(); if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef },{}],30:[function(_dereq_,module,exports){ var hasownproperty = {}.hasownproperty; module.exports = function(it, key){ return hasownproperty.call(it, key); }; },{}],31:[function(_dereq_,module,exports){ var $ = _dereq_(46) , createdesc = _dereq_(59); module.exports = _dereq_(19) ? function(object, key, value){ return $.setdesc(object, key, createdesc(1, value)); } : function(object, key, value){ object[key] = value; return object; }; },{"19":19,"46":46,"59":59}],32:[function(_dereq_,module,exports){ module.exports = _dereq_(29).document && document.documentelement; },{"29":29}],33:[function(_dereq_,module,exports){ // fast apply, http://jsperf.lnkit.com/fast-apply/5 module.exports = function(fn, args, that){ var un = that === undefined; switch(args.length){ case 0: return un ? fn() : fn.call(that); case 1: return un ? fn(args[0]) : fn.call(that, args[0]); case 2: return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); case 3: return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); case 4: return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); } return fn.apply(that, args); }; },{}],34:[function(_dereq_,module,exports){ // fallback for non-array-like es3 and non-enumerable old v8 strings var cof = _dereq_(11); module.exports = object('z').propertyisenumerable(0) ? object : function(it){ return cof(it) == 'string' ? it.split('') : object(it); }; },{"11":11}],35:[function(_dereq_,module,exports){ // check on default array iterator var iterators = _dereq_(45) , iterator = _dereq_(83)('iterator') , arrayproto = array.prototype; module.exports = function(it){ return it !== undefined && (iterators.array === it || arrayproto[iterator] === it); }; },{"45":45,"83":83}],36:[function(_dereq_,module,exports){ // 7.2.2 isarray(argument) var cof = _dereq_(11); module.exports = array.isarray || function(arg){ return cof(arg) == 'array'; }; },{"11":11}],37:[function(_dereq_,module,exports){ // 20.1.2.3 number.isinteger(number) var isobject = _dereq_(38) , floor = math.floor; module.exports = function isinteger(it){ return !isobject(it) && isfinite(it) && floor(it) === it; }; },{"38":38}],38:[function(_dereq_,module,exports){ module.exports = function(it){ return typeof it === 'object' ? it !== null : typeof it === 'function'; }; },{}],39:[function(_dereq_,module,exports){ // 7.2.8 isregexp(argument) var isobject = _dereq_(38) , cof = _dereq_(11) , match = _dereq_(83)('match'); module.exports = function(it){ var isregexp; return isobject(it) && ((isregexp = it[match]) !== undefined ? !!isregexp : cof(it) == 'regexp'); }; },{"11":11,"38":38,"83":83}],40:[function(_dereq_,module,exports){ // call something on iterator step with safe closing on error var anobject = _dereq_(4); module.exports = function(iterator, fn, value, entries){ try { return entries ? fn(anobject(value)[0], value[1]) : fn(value); // 7.4.6 iteratorclose(iterator, completion) } catch(e){ var ret = iterator['return']; if(ret !== undefined)anobject(ret.call(iterator)); throw e; } }; },{"4":4}],41:[function(_dereq_,module,exports){ 'use strict'; var $ = _dereq_(46) , descriptor = _dereq_(59) , settostringtag = _dereq_(66) , iteratorprototype = {}; // 25.1.2.1.1 %iteratorprototype%[@@iterator]() _dereq_(31)(iteratorprototype, _dereq_(83)('iterator'), function(){ return this; }); module.exports = function(constructor, name, next){ constructor.prototype = $.create(iteratorprototype, {next: descriptor(1, next)}); settostringtag(constructor, name + ' iterator'); }; },{"31":31,"46":46,"59":59,"66":66,"83":83}],42:[function(_dereq_,module,exports){ 'use strict'; var library = _dereq_(48) , $export = _dereq_(22) , redefine = _dereq_(61) , hide = _dereq_(31) , has = _dereq_(30) , iterators = _dereq_(45) , $itercreate = _dereq_(41) , settostringtag = _dereq_(66) , getproto = _dereq_(46).getproto , iterator = _dereq_(83)('iterator') , buggy = !([].keys && 'next' in [].keys()) // safari has buggy iterators w/o `next` , ff_iterator = '@@iterator' , keys = 'keys' , values = 'values'; var returnthis = function(){ return this; }; module.exports = function(base, name, constructor, next, default, is_set, forced){ $itercreate(constructor, name, next); var getmethod = function(kind){ if(!buggy && kind in proto)return proto[kind]; switch(kind){ case keys: return function keys(){ return new constructor(this, kind); }; case values: return function values(){ return new constructor(this, kind); }; } return function entries(){ return new constructor(this, kind); }; }; var tag = name + ' iterator' , def_values = default == values , values_bug = false , proto = base.prototype , $native = proto[iterator] || proto[ff_iterator] || default && proto[default] , $default = $native || getmethod(default) , methods, key; // fix native if($native){ var iteratorprototype = getproto($default.call(new base)); // set @@tostringtag to native iterators settostringtag(iteratorprototype, tag, true); // ff fix if(!library && has(proto, ff_iterator))hide(iteratorprototype, iterator, returnthis); // fix array#{values, @@iterator}.name in v8 / ff if(def_values && $native.name !== values){ values_bug = true; $default = function values(){ return $native.call(this); }; } } // define iterator if((!library || forced) && (buggy || values_bug || !proto[iterator])){ hide(proto, iterator, $default); } // plug for library iterators[name] = $default; iterators[tag] = returnthis; if(default){ methods = { values: def_values ? $default : getmethod(values), keys: is_set ? $default : getmethod(keys), entries: !def_values ? $default : getmethod('entries') }; if(forced)for(key in methods){ if(!(key in proto))redefine(proto, key, methods[key]); } else $export($export.p + $export.f * (buggy || values_bug), name, methods); } return methods; }; },{"22":22,"30":30,"31":31,"41":41,"45":45,"46":46,"48":48,"61":61,"66":66,"83":83}],43:[function(_dereq_,module,exports){ var iterator = _dereq_(83)('iterator') , safe_closing = false; try { var riter = [7][iterator](); riter['return'] = function(){ safe_closing = true; }; array.from(riter, function(){ throw 2; }); } catch(e){ /* empty */ } module.exports = function(exec, skipclosing){ if(!skipclosing && !safe_closing)return false; var safe = false; try { var arr = [7] , iter = arr[iterator](); iter.next = function(){ safe = true; }; arr[iterator] = function(){ return iter; }; exec(arr); } catch(e){ /* empty */ } return safe; }; },{"83":83}],44:[function(_dereq_,module,exports){ module.exports = function(done, value){ return {value: value, done: !!done}; }; },{}],45:[function(_dereq_,module,exports){ module.exports = {}; },{}],46:[function(_dereq_,module,exports){ var $object = object; module.exports = { create: $object.create, getproto: $object.getprototypeof, isenum: {}.propertyisenumerable, getdesc: $object.getownpropertydescriptor, setdesc: $object.defineproperty, setdescs: $object.defineproperties, getkeys: $object.keys, getnames: $object.getownpropertynames, getsymbols: $object.getownpropertysymbols, each: [].foreach }; },{}],47:[function(_dereq_,module,exports){ var $ = _dereq_(46) , toiobject = _dereq_(78); module.exports = function(object, el){ var o = toiobject(object) , keys = $.getkeys(o) , length = keys.length , index = 0 , key; while(length > index)if(o[key = keys[index++]] === el)return key; }; },{"46":46,"78":78}],48:[function(_dereq_,module,exports){ module.exports = false; },{}],49:[function(_dereq_,module,exports){ // 20.2.2.14 math.expm1(x) module.exports = math.expm1 || function expm1(x){ return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : math.exp(x) - 1; }; },{}],50:[function(_dereq_,module,exports){ // 20.2.2.20 math.log1p(x) module.exports = math.log1p || function log1p(x){ return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : math.log(1 + x); }; },{}],51:[function(_dereq_,module,exports){ // 20.2.2.28 math.sign(x) module.exports = math.sign || function sign(x){ return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; }; },{}],52:[function(_dereq_,module,exports){ var global = _dereq_(29) , macrotask = _dereq_(75).set , observer = global.mutationobserver || global.webkitmutationobserver , process = global.process , promise = global.promise , isnode = _dereq_(11)(process) == 'process' , head, last, notify; var flush = function(){ var parent, domain, fn; if(isnode && (parent = process.domain)){ process.domain = null; parent.exit(); } while(head){ domain = head.domain; fn = head.fn; if(domain)domain.enter(); fn(); // <- currently we use it only for promise - try / catch not required if(domain)domain.exit(); head = head.next; } last = undefined; if(parent)parent.enter(); }; // node.js if(isnode){ notify = function(){ process.nexttick(flush); }; // browsers with mutationobserver } else if(observer){ var toggle = 1 , node = document.createtextnode(''); new observer(flush).observe(node, {characterdata: true}); // eslint-disable-line no-new notify = function(){ node.data = toggle = -toggle; }; // environments with maybe non-completely correct, but existent promise } else if(promise && promise.resolve){ notify = function(){ promise.resolve().then(flush); }; // for other environments - macrotask based on: // - setimmediate // - messagechannel // - window.postmessag // - onreadystatechange // - settimeout } else { notify = function(){ // strange ie + webpack dev server bug - use .call(global) macrotask.call(global, flush); }; } module.exports = function asap(fn){ var task = {fn: fn, next: undefined, domain: isnode && process.domain}; if(last)last.next = task; if(!head){ head = task; notify(); } last = task; }; },{"11":11,"29":29,"75":75}],53:[function(_dereq_,module,exports){ // 19.1.2.1 object.assign(target, source, ...) var $ = _dereq_(46) , toobject = _dereq_(80) , iobject = _dereq_(34); // should work with symbols and should have deterministic property order (v8 bug) module.exports = _dereq_(24)(function(){ var a = object.assign , a = {} , b = {} , s = symbol() , k = 'abcdefghijklmnopqrst'; a[s] = 7; k.split('').foreach(function(k){ b[k] = k; }); return a({}, a)[s] != 7 || object.keys(a({}, b)).join('') != k; }) ? function assign(target, source){ // eslint-disable-line no-unused-vars var t = toobject(target) , $$ = arguments , $$len = $$.length , index = 1 , getkeys = $.getkeys , getsymbols = $.getsymbols , isenum = $.isenum; while($$len > index){ var s = iobject($$[index++]) , keys = getsymbols ? getkeys(s).concat(getsymbols(s)) : getkeys(s) , length = keys.length , j = 0 , key; while(length > j)if(isenum.call(s, key = keys[j++]))t[key] = s[key]; } return t; } : object.assign; },{"24":24,"34":34,"46":46,"80":80}],54:[function(_dereq_,module,exports){ // most object methods by es6 should accept primitives var $export = _dereq_(22) , core = _dereq_(16) , fails = _dereq_(24); module.exports = function(key, exec){ var fn = (core.object || {})[key] || object[key] , exp = {}; exp[key] = exec(fn); $export($export.s + $export.f * fails(function(){ fn(1); }), 'object', exp); }; },{"16":16,"22":22,"24":24}],55:[function(_dereq_,module,exports){ var $ = _dereq_(46) , toiobject = _dereq_(78) , isenum = $.isenum; module.exports = function(isentries){ return function(it){ var o = toiobject(it) , keys = $.getkeys(o) , length = keys.length , i = 0 , result = [] , key; while(length > i)if(isenum.call(o, key = keys[i++])){ result.push(isentries ? [key, o[key]] : o[key]); } return result; }; }; },{"46":46,"78":78}],56:[function(_dereq_,module,exports){ // all object keys, includes non-enumerable and symbols var $ = _dereq_(46) , anobject = _dereq_(4) , reflect = _dereq_(29).reflect; module.exports = reflect && reflect.ownkeys || function ownkeys(it){ var keys = $.getnames(anobject(it)) , getsymbols = $.getsymbols; return getsymbols ? keys.concat(getsymbols(it)) : keys; }; },{"29":29,"4":4,"46":46}],57:[function(_dereq_,module,exports){ 'use strict'; var path = _dereq_(58) , invoke = _dereq_(33) , afunction = _dereq_(2); module.exports = function(/* ...pargs */){ var fn = afunction(this) , length = arguments.length , pargs = array(length) , i = 0 , _ = path._ , holder = false; while(length > i)if((pargs[i] = arguments[i++]) === _)holder = true; return function(/* ...args */){ var that = this , $$ = arguments , $$len = $$.length , j = 0, k = 0, args; if(!holder && !$$len)return invoke(fn, pargs, that); args = pargs.slice(); if(holder)for(;length > j; j++)if(args[j] === _)args[j] = $$[k++]; while($$len > k)args.push($$[k++]); return invoke(fn, args, that); }; }; },{"2":2,"33":33,"58":58}],58:[function(_dereq_,module,exports){ module.exports = _dereq_(29); },{"29":29}],59:[function(_dereq_,module,exports){ module.exports = function(bitmap, value){ return { enumerable : !(bitmap & 1), configurable: !(bitmap & 2), writable : !(bitmap & 4), value : value }; }; },{}],60:[function(_dereq_,module,exports){ var redefine = _dereq_(61); module.exports = function(target, src){ for(var key in src)redefine(target, key, src[key]); return target; }; },{"61":61}],61:[function(_dereq_,module,exports){ // add fake function#tostring // for correct work wrapped methods / constructors with methods like lodash isnative var global = _dereq_(29) , hide = _dereq_(31) , src = _dereq_(82)('src') , to_string = 'tostring' , $tostring = function[to_string] , tpl = ('' + $tostring).split(to_string); _dereq_(16).inspectsource = function(it){ return $tostring.call(it); }; (module.exports = function(o, key, val, safe){ if(typeof val == 'function'){ val.hasownproperty(src) || hide(val, src, o[key] ? '' + o[key] : tpl.join(string(key))); val.hasownproperty('name') || hide(val, 'name', key); } if(o === global){ o[key] = val; } else { if(!safe)delete o[key]; hide(o, key, val); } })(function.prototype, to_string, function tostring(){ return typeof this == 'function' && this[src] || $tostring.call(this); }); },{"16":16,"29":29,"31":31,"82":82}],62:[function(_dereq_,module,exports){ module.exports = function(regexp, replace){ var replacer = replace === object(replace) ? function(part){ return replace[part]; } : replace; return function(it){ return string(it).replace(regexp, replacer); }; }; },{}],63:[function(_dereq_,module,exports){ // 7.2.9 samevalue(x, y) module.exports = object.is || function is(x, y){ return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; }; },{}],64:[function(_dereq_,module,exports){ // works with __proto__ only. old v8 can't work with null proto objects. /* eslint-disable no-proto */ var getdesc = _dereq_(46).getdesc , isobject = _dereq_(38) , anobject = _dereq_(4); var check = function(o, proto){ anobject(o); if(!isobject(proto) && proto !== null)throw typeerror(proto + ": can't set as prototype!"); }; module.exports = { set: object.setprototypeof || ('__proto__' in {} ? // eslint-disable-line function(test, buggy, set){ try { set = _dereq_(17)(function.call, getdesc(object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof array); } catch(e){ buggy = true; } return function setprototypeof(o, proto){ check(o, proto); if(buggy)o.__proto__ = proto; else set(o, proto); return o; }; }({}, false) : undefined), check: check }; },{"17":17,"38":38,"4":4,"46":46}],65:[function(_dereq_,module,exports){ 'use strict'; var global = _dereq_(29) , $ = _dereq_(46) , descriptors = _dereq_(19) , species = _dereq_(83)('species'); module.exports = function(key){ var c = global[key]; if(descriptors && c && !c[species])$.setdesc(c, species, { configurable: true, get: function(){ return this; } }); }; },{"19":19,"29":29,"46":46,"83":83}],66:[function(_dereq_,module,exports){ var def = _dereq_(46).setdesc , has = _dereq_(30) , tag = _dereq_(83)('tostringtag'); module.exports = function(it, tag, stat){ if(it && !has(it = stat ? it : it.prototype, tag))def(it, tag, {configurable: true, value: tag}); }; },{"30":30,"46":46,"83":83}],67:[function(_dereq_,module,exports){ var global = _dereq_(29) , shared = '__core-js_shared__' , store = global[shared] || (global[shared] = {}); module.exports = function(key){ return store[key] || (store[key] = {}); }; },{"29":29}],68:[function(_dereq_,module,exports){ // 7.3.20 speciesconstructor(o, defaultconstructor) var anobject = _dereq_(4) , afunction = _dereq_(2) , species = _dereq_(83)('species'); module.exports = function(o, d){ var c = anobject(o).constructor, s; return c === undefined || (s = anobject(c)[species]) == undefined ? d : afunction(s); }; },{"2":2,"4":4,"83":83}],69:[function(_dereq_,module,exports){ module.exports = function(it, constructor, name){ if(!(it instanceof constructor))throw typeerror(name + ": use the 'new' operator!"); return it; }; },{}],70:[function(_dereq_,module,exports){ var tointeger = _dereq_(77) , defined = _dereq_(18); // true -> string#at // false -> string#codepointat module.exports = function(to_string){ return function(that, pos){ var s = string(defined(that)) , i = tointeger(pos) , l = s.length , a, b; if(i < 0 || i >= l)return to_string ? '' : undefined; a = s.charcodeat(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charcodeat(i + 1)) < 0xdc00 || b > 0xdfff ? to_string ? s.charat(i) : a : to_string ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; },{"18":18,"77":77}],71:[function(_dereq_,module,exports){ // helper for string#{startswith, endswith, includes} var isregexp = _dereq_(39) , defined = _dereq_(18); module.exports = function(that, searchstring, name){ if(isregexp(searchstring))throw typeerror('string#' + name + " doesn't accept regex!"); return string(defined(that)); }; },{"18":18,"39":39}],72:[function(_dereq_,module,exports){ // https://github.com/ljharb/proposal-string-pad-left-right var tolength = _dereq_(79) , repeat = _dereq_(73) , defined = _dereq_(18); module.exports = function(that, maxlength, fillstring, left){ var s = string(defined(that)) , stringlength = s.length , fillstr = fillstring === undefined ? ' ' : string(fillstring) , intmaxlength = tolength(maxlength); if(intmaxlength <= stringlength)return s; if(fillstr == '')fillstr = ' '; var filllen = intmaxlength - stringlength , stringfiller = repeat.call(fillstr, math.ceil(filllen / fillstr.length)); if(stringfiller.length > filllen)stringfiller = stringfiller.slice(0, filllen); return left ? stringfiller + s : s + stringfiller; }; },{"18":18,"73":73,"79":79}],73:[function(_dereq_,module,exports){ 'use strict'; var tointeger = _dereq_(77) , defined = _dereq_(18); module.exports = function repeat(count){ var str = string(defined(this)) , res = '' , n = tointeger(count); if(n < 0 || n == infinity)throw rangeerror("count can't be negative"); for(;n > 0; (n >>>= 1) && (str += str))if(n & 1)res += str; return res; }; },{"18":18,"77":77}],74:[function(_dereq_,module,exports){ var $export = _dereq_(22) , defined = _dereq_(18) , fails = _dereq_(24) , spaces = '\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003' + '\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff' , space = '[' + spaces + ']' , non = '\u200b\u0085' , ltrim = regexp('^' + space + space + '*') , rtrim = regexp(space + space + '*$'); var exporter = function(key, exec){ var exp = {}; exp[key] = exec(trim); $export($export.p + $export.f * fails(function(){ return !!spaces[key]() || non[key]() != non; }), 'string', exp); }; // 1 -> string#trimleft // 2 -> string#trimright // 3 -> string#trim var trim = exporter.trim = function(string, type){ string = string(defined(string)); if(type & 1)string = string.replace(ltrim, ''); if(type & 2)string = string.replace(rtrim, ''); return string; }; module.exports = exporter; },{"18":18,"22":22,"24":24}],75:[function(_dereq_,module,exports){ var ctx = _dereq_(17) , invoke = _dereq_(33) , html = _dereq_(32) , cel = _dereq_(20) , global = _dereq_(29) , process = global.process , settask = global.setimmediate , cleartask = global.clearimmediate , messagechannel = global.messagechannel , counter = 0 , queue = {} , onreadystatechange = 'onreadystatechange' , defer, channel, port; var run = function(){ var id = +this; if(queue.hasownproperty(id)){ var fn = queue[id]; delete queue[id]; fn(); } }; var listner = function(event){ run.call(event.data); }; // node.js 0.9+ & ie10+ has setimmediate, otherwise: if(!settask || !cleartask){ settask = function setimmediate(fn){ var args = [], i = 1; while(arguments.length > i)args.push(arguments[i++]); queue[++counter] = function(){ invoke(typeof fn == 'function' ? fn : function(fn), args); }; defer(counter); return counter; }; cleartask = function clearimmediate(id){ delete queue[id]; }; // node.js 0.8- if(_dereq_(11)(process) == 'process'){ defer = function(id){ process.nexttick(ctx(run, id, 1)); }; // browsers with messagechannel, includes webworkers } else if(messagechannel){ channel = new messagechannel; port = channel.port2; channel.port1.onmessage = listner; defer = ctx(port.postmessage, port, 1); // browsers with postmessage, skip webworkers // ie8 has postmessage, but it's sync & typeof its postmessage is 'object' } else if(global.addeventlistener && typeof postmessage == 'function' && !global.importscripts){ defer = function(id){ global.postmessage(id + '', '*'); }; global.addeventlistener('message', listner, false); // ie8- } else if(onreadystatechange in cel('script')){ defer = function(id){ html.appendchild(cel('script'))[onreadystatechange] = function(){ html.removechild(this); run.call(id); }; }; // rest old browsers } else { defer = function(id){ settimeout(ctx(run, id, 1), 0); }; } } module.exports = { set: settask, clear: cleartask }; },{"11":11,"17":17,"20":20,"29":29,"32":32,"33":33}],76:[function(_dereq_,module,exports){ var tointeger = _dereq_(77) , max = math.max , min = math.min; module.exports = function(index, length){ index = tointeger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; },{"77":77}],77:[function(_dereq_,module,exports){ // 7.1.4 tointeger var ceil = math.ceil , floor = math.floor; module.exports = function(it){ return isnan(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; },{}],78:[function(_dereq_,module,exports){ // to indexed object, toobject with fallback for non-array-like es3 strings var iobject = _dereq_(34) , defined = _dereq_(18); module.exports = function(it){ return iobject(defined(it)); }; },{"18":18,"34":34}],79:[function(_dereq_,module,exports){ // 7.1.15 tolength var tointeger = _dereq_(77) , min = math.min; module.exports = function(it){ return it > 0 ? min(tointeger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; },{"77":77}],80:[function(_dereq_,module,exports){ // 7.1.13 toobject(argument) var defined = _dereq_(18); module.exports = function(it){ return object(defined(it)); }; },{"18":18}],81:[function(_dereq_,module,exports){ // 7.1.1 toprimitive(input [, preferredtype]) var isobject = _dereq_(38); // instead of the es6 spec version, we didn't implement @@toprimitive case // and the second argument - flag - preferred type is a string module.exports = function(it, s){ if(!isobject(it))return it; var fn, val; if(s && typeof (fn = it.tostring) == 'function' && !isobject(val = fn.call(it)))return val; if(typeof (fn = it.valueof) == 'function' && !isobject(val = fn.call(it)))return val; if(!s && typeof (fn = it.tostring) == 'function' && !isobject(val = fn.call(it)))return val; throw typeerror("can't convert object to primitive value"); }; },{"38":38}],82:[function(_dereq_,module,exports){ var id = 0 , px = math.random(); module.exports = function(key){ return 'symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).tostring(36)); }; },{}],83:[function(_dereq_,module,exports){ var store = _dereq_(67)('wks') , uid = _dereq_(82) , symbol = _dereq_(29).symbol; module.exports = function(name){ return store[name] || (store[name] = symbol && symbol[name] || (symbol || uid)('symbol.' + name)); }; },{"29":29,"67":67,"82":82}],84:[function(_dereq_,module,exports){ var classof = _dereq_(10) , iterator = _dereq_(83)('iterator') , iterators = _dereq_(45); module.exports = _dereq_(16).getiteratormethod = function(it){ if(it != undefined)return it[iterator] || it['@@iterator'] || iterators[classof(it)]; }; },{"10":10,"16":16,"45":45,"83":83}],85:[function(_dereq_,module,exports){ 'use strict'; var $ = _dereq_(46) , $export = _dereq_(22) , descriptors = _dereq_(19) , createdesc = _dereq_(59) , html = _dereq_(32) , cel = _dereq_(20) , has = _dereq_(30) , cof = _dereq_(11) , invoke = _dereq_(33) , fails = _dereq_(24) , anobject = _dereq_(4) , afunction = _dereq_(2) , isobject = _dereq_(38) , toobject = _dereq_(80) , toiobject = _dereq_(78) , tointeger = _dereq_(77) , toindex = _dereq_(76) , tolength = _dereq_(79) , iobject = _dereq_(34) , ie_proto = _dereq_(82)('__proto__') , createarraymethod = _dereq_(8) , arrayindexof = _dereq_(7)(false) , objectproto = object.prototype , arrayproto = array.prototype , arrayslice = arrayproto.slice , arrayjoin = arrayproto.join , defineproperty = $.setdesc , getowndescriptor = $.getdesc , defineproperties = $.setdescs , factories = {} , ie8_dom_define; if(!descriptors){ ie8_dom_define = !fails(function(){ return defineproperty(cel('div'), 'a', {get: function(){ return 7; }}).a != 7; }); $.setdesc = function(o, p, attributes){ if(ie8_dom_define)try { return defineproperty(o, p, attributes); } catch(e){ /* empty */ } if('get' in attributes || 'set' in attributes)throw typeerror('accessors not supported!'); if('value' in attributes)anobject(o)[p] = attributes.value; return o; }; $.getdesc = function(o, p){ if(ie8_dom_define)try { return getowndescriptor(o, p); } catch(e){ /* empty */ } if(has(o, p))return createdesc(!objectproto.propertyisenumerable.call(o, p), o[p]); }; $.setdescs = defineproperties = function(o, properties){ anobject(o); var keys = $.getkeys(properties) , length = keys.length , i = 0 , p; while(length > i)$.setdesc(o, p = keys[i++], properties[p]); return o; }; } $export($export.s + $export.f * !descriptors, 'object', { // 19.1.2.6 / 15.2.3.3 object.getownpropertydescriptor(o, p) getownpropertydescriptor: $.getdesc, // 19.1.2.4 / 15.2.3.6 object.defineproperty(o, p, attributes) defineproperty: $.setdesc, // 19.1.2.3 / 15.2.3.7 object.defineproperties(o, properties) defineproperties: defineproperties }); // ie 8- don't enum bug keys var keys1 = ('constructor,hasownproperty,isprototypeof,propertyisenumerable,' + 'tolocalestring,tostring,valueof').split(',') // additional keys for getownpropertynames , keys2 = keys1.concat('length', 'prototype') , keyslen1 = keys1.length; // create object with `null` prototype: use iframe object with cleared prototype var createdict = function(){ // thrash, waste and sodomy: ie gc bug var iframe = cel('iframe') , i = keyslen1 , gt = '>' , iframedocument; iframe.style.display = 'none'; html.appendchild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createdict = iframe.contentwindow.object; // html.removechild(iframe); iframedocument = iframe.contentwindow.document; iframedocument.open(); iframedocument.write('