2016-05-16 13:33:49 +02:00
/ * *
* @ license
2016-06-11 17:57:30 +02:00
* lodash ( Custom Build ) / license | Underscore . js 1.8 . 3 underscorejs . org / LICENSE
* Build : ` lodash core -o ./dist/lodash.core.js `
2016-05-16 13:33:49 +02:00
* /
2016-06-11 17:57:30 +02:00
; ( function ( ) { function n ( n ) { n = null == n ? n : Object ( n ) ; var t , r = [ ] ; for ( t in n ) r . push ( t ) ; return r } function t ( n ) { return mn ( Object ( n ) ) } function r ( n , t ) { return n . push . apply ( n , t ) , n } function e ( n , t , r , e , u ) { return u ( n , function ( n , u , o ) { r = e ? ( e = false , n ) : t ( r , n , u , o ) } ) , r } function u ( n , t ) { return x ( t , function ( t ) { return n [ t ] } ) } function o ( n ) { return n && n . Object === Object ? n : null } function i ( n ) { return cn [ n ] } function c ( n ) { return n instanceof f ? n : new f ( n ) } function f ( n , t ) { this . _ _wrapped _ _ = n , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! t } function a ( n , t , r , e ) {
var u ; return ( u = n === rn ) || ( u = hn [ r ] , u = ( n === u || n !== n && u !== u ) && ! vn . call ( e , r ) ) , u ? t : n } function l ( n ) { return L ( n ) ? _n ( n ) : { } } function p ( n , t , r ) { if ( typeof n != "function" ) throw new TypeError ( "Expected a function" ) ; return setTimeout ( function ( ) { n . apply ( rn , r ) } , t ) } function s ( n , t ) { var r = true ; return xn ( n , function ( n , e , u ) { return r = ! ! t ( n , e , u ) } ) , r } function h ( n , t , r ) { for ( var e = - 1 , u = n . length ; ++ e < u ; ) { var o = n [ e ] , i = t ( o ) ; if ( null != i && ( c === rn ? i === i : r ( i , c ) ) ) var c = i , f = o } return f } function v ( n , t ) { var r = [ ] ; return xn ( n , function ( n , e , u ) { t ( n , e , u ) && r . push ( n ) ;
} ) , r } function y ( n , t , e , u , o ) { var i = - 1 , c = n . length ; for ( e || ( e = z ) , o || ( o = [ ] ) ; ++ i < c ; ) { var f = n [ i ] ; t > 0 && e ( f ) ? t > 1 ? y ( f , t - 1 , e , u , o ) : r ( o , f ) : u || ( o [ o . length ] = f ) } return o } function b ( n , r ) { return n && En ( n , r , t ) } function g ( n , t ) { return v ( t , function ( t ) { return K ( n [ t ] ) } ) } function _ ( n , t ) { return n > t } function j ( n , t , r , e , u ) { return n === t ? true : null == n || null == t || ! L ( n ) && ! Q ( t ) ? n !== n && t !== t : d ( n , t , j , r , e , u ) } function d ( n , t , r , e , u , o ) { var i = Tn ( n ) , c = Tn ( t ) , f = "[object Array]" , a = "[object Array]" ; i || ( f = bn . call ( n ) , f = "[object Arguments]" == f ? "[object Object]" : f ) ,
c || ( a = bn . call ( t ) , a = "[object Arguments]" == a ? "[object Object]" : a ) ; var l = "[object Object]" == f && true , c = "[object Object]" == a && true , a = f == a ; o || ( o = [ ] ) ; var p = kn ( o , function ( t ) { return t [ 0 ] === n } ) ; return p && p [ 1 ] ? p [ 1 ] == t : ( o . push ( [ n , t ] ) , a && ! l ? ( r = i ? I ( n , t , r , e , u , o ) : q ( n , t , f ) , o . pop ( ) , r ) : 2 & u || ( i = l && vn . call ( n , "__wrapped__" ) , f = c && vn . call ( t , "__wrapped__" ) , ! i && ! f ) ? a ? ( r = $ ( n , t , r , e , u , o ) , o . pop ( ) , r ) : false : ( i = i ? n . value ( ) : n , t = f ? t . value ( ) : t , r = r ( i , t , e , u , o ) , o . pop ( ) , r ) ) } function m ( n ) { return typeof n == "function" ? n : null == n ? nn : ( typeof n == "object" ? E : w ) ( n ) ;
} function O ( n , t ) { return t > n } function x ( n , t ) { var r = - 1 , e = H ( n ) ? Array ( n . length ) : [ ] ; return xn ( n , function ( n , u , o ) { e [ ++ r ] = t ( n , u , o ) } ) , e } function E ( n ) { var r = t ( n ) ; return function ( t ) { var e = r . length ; if ( null == t ) return ! e ; for ( t = Object ( t ) ; e -- ; ) { var u = r [ e ] ; if ( ! ( u in t && j ( n [ u ] , t [ u ] , rn , 3 ) ) ) return false } return true } } function A ( n , t ) { return n = Object ( n ) , M ( t , function ( t , r ) { return r in n && ( t [ r ] = n [ r ] ) , t } , { } ) } function w ( n ) { return function ( t ) { return null == t ? rn : t [ n ] } } function k ( n , t , r ) { var e = - 1 , u = n . length ; for ( 0 > t && ( t = - t > u ? 0 : u + t ) , r = r > u ? u : r ,
0 > r && ( r += u ) , u = t > r ? 0 : r - t >>> 0 , t >>>= 0 , r = Array ( u ) ; ++ e < u ; ) r [ e ] = n [ e + t ] ; return r } function N ( n ) { return k ( n , 0 , n . length ) } function S ( n , t ) { var r ; return xn ( n , function ( n , e , u ) { return r = t ( n , e , u ) , ! r } ) , ! ! r } function F ( n , t ) { return M ( t , function ( n , t ) { return t . func . apply ( t . thisArg , r ( [ n ] , t . args ) ) } , n ) } function T ( n , t , r , e ) { r || ( r = { } ) ; for ( var u = - 1 , o = t . length ; ++ u < o ; ) { var i = t [ u ] , c = e ? e ( r [ i ] , n [ i ] , i , r , n ) : n [ i ] , f = r , a = f [ i ] ; vn . call ( f , i ) && ( a === c || a !== a && c !== c ) && ( c !== rn || i in f ) || ( f [ i ] = c ) } return r } function B ( n ) { return U ( function ( t , r ) { var e = - 1 , u = r . length , o = u > 1 ? r [ u - 1 ] : rn , o = n . length > 3 && typeof o == "function" ? ( u -- ,
o ) : rn ; for ( t = Object ( t ) ; ++ e < u ; ) { var i = r [ e ] ; i && n ( t , i , e , o ) } return t } ) } function R ( n ) { return function ( ) { var t = arguments , r = l ( n . prototype ) , t = n . apply ( r , t ) ; return L ( t ) ? t : r } } function D ( n , t , r ) { function e ( ) { for ( var o = - 1 , i = arguments . length , c = - 1 , f = r . length , a = Array ( f + i ) , l = this && this !== pn && this instanceof e ? u : n ; ++ c < f ; ) a [ c ] = r [ c ] ; for ( ; i -- ; ) a [ c ++ ] = arguments [ ++ o ] ; return l . apply ( t , a ) } if ( typeof n != "function" ) throw new TypeError ( "Expected a function" ) ; var u = R ( n ) ; return e } function I ( n , t , r , e , u , o ) { var i = n . length , c = t . length ;
if ( i != c && ! ( 2 & u && c > i ) ) return false ; for ( var c = - 1 , f = true , a = 1 & u ? [ ] : rn ; ++ c < i ; ) { var l = n [ c ] , p = t [ c ] ; if ( void 0 !== rn ) { f = false ; break } if ( a ) { if ( ! S ( t , function ( n , t ) { return G ( a , t ) || l !== n && ! r ( l , n , e , u , o ) ? void 0 : a . push ( t ) } ) ) { f = false ; break } } else if ( l !== p && ! r ( l , p , e , u , o ) ) { f = false ; break } } return f } function q ( n , t , r ) { switch ( r ) { case "[object Boolean]" : case "[object Date]" : return + n == + t ; case "[object Error]" : return n . name == t . name && n . message == t . message ; case "[object Number]" : return n != + n ? t != + t : n == + t ; case "[object RegExp]" : case "[object String]" : return n == t + "" ;
} return false } function $ ( n , r , e , u , o , i ) { var c = 2 & o , f = t ( n ) , a = f . length , l = t ( r ) . length ; if ( a != l && ! c ) return false ; for ( var p = a ; p -- ; ) { var s = f [ p ] ; if ( ! ( c ? s in r : vn . call ( r , s ) ) ) return false } for ( l = true ; ++ p < a ; ) { var s = f [ p ] , h = n [ s ] , v = r [ s ] ; if ( void 0 !== rn || h !== v && ! e ( h , v , u , o , i ) ) { l = false ; break } c || ( c = "constructor" == s ) } return l && ! c && ( e = n . constructor , u = r . constructor , e != u && "constructor" in n && "constructor" in r && ! ( typeof e == "function" && e instanceof e && typeof u == "function" && u instanceof u ) && ( l = false ) ) , l } function z ( n ) { return Tn ( n ) || V ( n ) } function C ( n ) {
return n && n . length ? n [ 0 ] : rn } function G ( n , t , r ) { var e = n ? n . length : 0 ; r = typeof r == "number" ? 0 > r ? On ( e + r , 0 ) : r : 0 , r = ( r || 0 ) - 1 ; for ( var u = t === t ; ++ r < e ; ) { var o = n [ r ] ; if ( u ? o === t : o !== o ) return r } return - 1 } function J ( n , t ) { return xn ( n , m ( t ) ) } function M ( n , t , r ) { return e ( n , m ( t ) , r , 3 > arguments . length , xn ) } function P ( n , t ) { var r ; if ( typeof t != "function" ) throw new TypeError ( "Expected a function" ) ; return n = Bn ( n ) , function ( ) { return 0 < -- n && ( r = t . apply ( this , arguments ) ) , 1 >= n && ( t = rn ) , r } } function U ( n ) { var t ; if ( typeof n != "function" ) throw new TypeError ( "Expected a function" ) ;
return t = On ( t === rn ? n . length - 1 : Bn ( t ) , 0 ) , function ( ) { for ( var r = arguments , e = - 1 , u = On ( r . length - t , 0 ) , o = Array ( u ) ; ++ e < u ; ) o [ e ] = r [ t + e ] ; for ( u = Array ( t + 1 ) , e = - 1 ; ++ e < t ; ) u [ e ] = r [ e ] ; return u [ t ] = o , n . apply ( this , u ) } } function V ( n ) { return Q ( n ) && H ( n ) && vn . call ( n , "callee" ) && ( ! jn . call ( n , "callee" ) || "[object Arguments]" == bn . call ( n ) ) } function H ( n ) { var t ; return ( t = null != n ) && ( t = An ( n ) , t = typeof t == "number" && t > - 1 && 0 == t % 1 && 9007199254740991 >= t ) , t && ! K ( n ) } function K ( n ) { return n = L ( n ) ? bn . call ( n ) : "" , "[object Function]" == n || "[object GeneratorFunction]" == n ;
} function L ( n ) { var t = typeof n ; return ! ! n && ( "object" == t || "function" == t ) } function Q ( n ) { return ! ! n && typeof n == "object" } function W ( n ) { return typeof n == "number" || Q ( n ) && "[object Number]" == bn . call ( n ) } function X ( n ) { return typeof n == "string" || ! Tn ( n ) && Q ( n ) && "[object String]" == bn . call ( n ) } function Y ( n ) { return typeof n == "string" ? n : null == n ? "" : n + "" } function Z ( n ) { return n ? u ( n , t ( n ) ) : [ ] } function nn ( n ) { return n } function tn ( n , e , u ) { var o = t ( e ) , i = g ( e , o ) ; null != u || L ( e ) && ( i . length || ! o . length ) || ( u = e , e = n , n = this , i = g ( e , t ( e ) ) ) ; var c = ! ( L ( u ) && "chain" in u && ! u . chain ) , f = K ( n ) ;
return xn ( i , function ( t ) { var u = e [ t ] ; n [ t ] = u , f && ( n . prototype [ t ] = function ( ) { var t = this . _ _chain _ _ ; if ( c || t ) { var e = n ( this . _ _wrapped _ _ ) ; return ( e . _ _actions _ _ = N ( this . _ _actions _ _ ) ) . push ( { func : u , args : arguments , thisArg : n } ) , e . _ _chain _ _ = t , e } return u . apply ( n , r ( [ this . value ( ) ] , arguments ) ) } ) } ) , n } var rn , en = 1 / 0 , un = /[&<>"'`]/g , on = RegExp ( un . source ) , cn = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "`" : "`" } , fn = typeof exports == "object" && exports , an = fn && typeof module == "object" && module , ln = o ( typeof self == "object" && self ) , pn = o ( typeof global == "object" && global ) || ln || o ( typeof this == "object" && this ) || Function ( "return this" ) ( ) , sn = Array . prototype , hn = Object . prototype , vn = hn . hasOwnProperty , yn = 0 , bn = hn . toString , gn = pn . _ , _n = Object . create , jn = hn . propertyIsEnumerable , dn = pn . isFinite , mn = Object . keys , On = Math . max ;
f . prototype = l ( c . prototype ) , f . prototype . constructor = f ; var xn = function ( n , t ) { return function ( r , e ) { if ( null == r ) return r ; if ( ! H ( r ) ) return n ( r , e ) ; for ( var u = r . length , o = t ? u : - 1 , i = Object ( r ) ; ( t ? o -- : ++ o < u ) && false !== e ( i [ o ] , o , i ) ; ) ; return r } } ( b ) , En = function ( n ) { return function ( t , r , e ) { var u = - 1 , o = Object ( t ) ; e = e ( t ) ; for ( var i = e . length ; i -- ; ) { var c = e [ n ? i : ++ u ] ; if ( false === r ( o [ c ] , c , o ) ) break } return t } } ( ) , An = w ( "length" ) , wn = String , kn = function ( n ) { return function ( r , e , u ) { var o = Object ( r ) ; if ( e = m ( e ) , ! H ( r ) ) var i = t ( r ) ; return u = n ( i || r , function ( n , t ) {
return i && ( t = n , n = o [ t ] ) , e ( n , t , o ) } , u ) , u > - 1 ? r [ i ? i [ u ] : u ] : rn } } ( function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return - 1 ; r = null == r ? 0 : Bn ( r ) , 0 > r && ( r = On ( e + r , 0 ) ) ; n : { for ( t = m ( t ) , e = n . length , r += - 1 ; ++ r < e ; ) if ( t ( n [ r ] , r , n ) ) { n = r ; break n } n = - 1 } return n } ) , Nn = U ( function ( n , t , r ) { return D ( n , t , r ) } ) , Sn = U ( function ( n , t ) { return p ( n , 1 , t ) } ) , Fn = U ( function ( n , t , r ) { return p ( n , Rn ( t ) || 0 , r ) } ) , Tn = Array . isArray , Bn = Number , Rn = Number , Dn = B ( function ( n , r ) { T ( r , t ( r ) , n ) } ) , In = B ( function ( t , r ) { T ( r , n ( r ) , t ) } ) , qn = B ( function ( t , r , e , u ) { T ( r , n ( r ) , t , u ) } ) , $n = U ( function ( n ) {
return n . push ( rn , a ) , qn . apply ( rn , n ) } ) , zn = U ( function ( n , t ) { return null == n ? { } : A ( n , x ( y ( t , 1 ) , wn ) ) } ) ; c . assignIn = In , c . before = P , c . bind = Nn , c . chain = function ( n ) { return n = c ( n ) , n . _ _chain _ _ = true , n } , c . compact = function ( n ) { return v ( n , Boolean ) } , c . concat = function ( ) { for ( var n = arguments . length , t = Array ( n ? n - 1 : 0 ) , e = arguments [ 0 ] , u = n ; u -- ; ) t [ u - 1 ] = arguments [ u ] ; return n ? r ( Tn ( e ) ? N ( e ) : [ e ] , y ( t , 1 ) ) : [ ] } , c . create = function ( n , t ) { var r = l ( n ) ; return t ? Dn ( r , t ) : r } , c . defaults = $n , c . defer = Sn , c . delay = Fn , c . filter = function ( n , t ) { return v ( n , m ( t ) ) } ,
c . flatten = function ( n ) { return n && n . length ? y ( n , 1 ) : [ ] } , c . flattenDeep = function ( n ) { return n && n . length ? y ( n , en ) : [ ] } , c . iteratee = m , c . keys = t , c . map = function ( n , t ) { return x ( n , m ( t ) ) } , c . matches = function ( n ) { return E ( Dn ( { } , n ) ) } , c . mixin = tn , c . negate = function ( n ) { if ( typeof n != "function" ) throw new TypeError ( "Expected a function" ) ; return function ( ) { return ! n . apply ( this , arguments ) } } , c . once = function ( n ) { return P ( 2 , n ) } , c . pick = zn , c . slice = function ( n , t , r ) { var e = n ? n . length : 0 ; return r = r === rn ? e : + r , e ? k ( n , null == t ? 0 : + t , r ) : [ ] } , c . sortBy = function ( n , t ) {
var r = 0 ; return t = m ( t ) , x ( x ( n , function ( n , e , u ) { return { value : n , index : r ++ , criteria : t ( n , e , u ) } } ) . sort ( function ( n , t ) { var r ; n : { r = n . criteria ; var e = t . criteria ; if ( r !== e ) { var u = r !== rn , o = null === r , i = r === r , c = e !== rn , f = null === e , a = e === e ; if ( ! f && r > e || o && c && a || ! u && a || ! i ) { r = 1 ; break n } if ( ! o && e > r || f && u && i || ! c && i || ! a ) { r = - 1 ; break n } } r = 0 } return r || n . index - t . index } ) , w ( "value" ) ) } , c . tap = function ( n , t ) { return t ( n ) , n } , c . thru = function ( n , t ) { return t ( n ) } , c . toArray = function ( n ) { return H ( n ) ? n . length ? N ( n ) : [ ] : Z ( n ) } , c . values = Z , c . extend = In ,
tn ( c , c ) , c . clone = function ( n ) { return L ( n ) ? Tn ( n ) ? N ( n ) : T ( n , t ( n ) ) : n } , c . escape = function ( n ) { return ( n = Y ( n ) ) && on . test ( n ) ? n . replace ( un , i ) : n } , c . every = function ( n , t , r ) { return t = r ? rn : t , s ( n , m ( t ) ) } , c . find = kn , c . forEach = J , c . has = function ( n , t ) { return null != n && vn . call ( n , t ) } , c . head = C , c . identity = nn , c . indexOf = G , c . isArguments = V , c . isArray = Tn , c . isBoolean = function ( n ) { return true === n || false === n || Q ( n ) && "[object Boolean]" == bn . call ( n ) } , c . isDate = function ( n ) { return Q ( n ) && "[object Date]" == bn . call ( n ) } , c . isEmpty = function ( n ) { return H ( n ) && ( Tn ( n ) || X ( n ) || K ( n . splice ) || V ( n ) ) ? ! n . length : ! t ( n ) . length ;
} , c . isEqual = function ( n , t ) { return j ( n , t ) } , c . isFinite = function ( n ) { return typeof n == "number" && dn ( n ) } , c . isFunction = K , c . isNaN = function ( n ) { return W ( n ) && n != + n } , c . isNull = function ( n ) { return null === n } , c . isNumber = W , c . isObject = L , c . isRegExp = function ( n ) { return L ( n ) && "[object RegExp]" == bn . call ( n ) } , c . isString = X , c . isUndefined = function ( n ) { return n === rn } , c . last = function ( n ) { var t = n ? n . length : 0 ; return t ? n [ t - 1 ] : rn } , c . max = function ( n ) { return n && n . length ? h ( n , nn , _ ) : rn } , c . min = function ( n ) { return n && n . length ? h ( n , nn , O ) : rn } , c . noConflict = function ( ) {
return pn . _ === this && ( pn . _ = gn ) , this } , c . noop = function ( ) { } , c . reduce = M , c . result = function ( n , t , r ) { return t = null == n ? rn : n [ t ] , t === rn && ( t = r ) , K ( t ) ? t . call ( n ) : t } , c . size = function ( n ) { return null == n ? 0 : ( n = H ( n ) ? n : t ( n ) , n . length ) } , c . some = function ( n , t , r ) { return t = r ? rn : t , S ( n , m ( t ) ) } , c . uniqueId = function ( n ) { var t = ++ yn ; return Y ( n ) + t } , c . each = J , c . first = C , tn ( c , function ( ) { var n = { } ; return b ( c , function ( t , r ) { vn . call ( c . prototype , r ) || ( n [ r ] = t ) } ) , n } ( ) , { chain : false } ) , c . VERSION = "4.13.1" , xn ( "pop join replace reverse split push shift sort splice unshift" . split ( " " ) , function ( n ) {
var t = ( /^(?:replace|split)$/ . test ( n ) ? String . prototype : sn ) [ n ] , r = /^(?:push|sort|unshift)$/ . test ( n ) ? "tap" : "thru" , e = /^(?:pop|join|replace|shift)$/ . test ( n ) ; c . prototype [ n ] = function ( ) { var n = arguments ; if ( e && ! this . _ _chain _ _ ) { var u = this . value ( ) ; return t . apply ( Tn ( u ) ? u : [ ] , n ) } return this [ r ] ( function ( r ) { return t . apply ( Tn ( r ) ? r : [ ] , n ) } ) } } ) , c . prototype . toJSON = c . prototype . valueOf = c . prototype . value = function ( ) { return F ( this . _ _wrapped _ _ , this . _ _actions _ _ ) } , ( ln || { } ) . _ = c , typeof define == "function" && typeof define . amd == "object" && define . amd ? define ( function ( ) {
return c } ) : an ? ( ( an . exports = c ) . _ = c , fn . _ = c ) : pn . _ = c } ) . call ( this ) ;