2014-02-13 08:35:51 +01:00
/ * !
2014-03-01 19:58:31 +01:00
* LESS - Leaner CSS v1 . 7.0
2014-02-13 08:35:51 +01:00
* http : //lesscss.org
*
* Copyright ( c ) 2009 - 2014 , Alexis Sellier < self @ cloudhead . net >
* Licensed under the Apache v2 License .
*
2014-01-14 06:58:27 +01:00
* /
/ * * * @ l i c e n s e A p a c h e v 2
* /
2014-02-04 10:00:57 +01:00
/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
2014-03-01 19:58:31 +01:00
if ( ! function ( a , b ) { function c ( b ) { return a . less [ b . split ( "/" ) [ 1 ] ] } function d ( a , b ) { "undefined" != typeof console && w . logLevel >= b && console . log ( "less: " + a ) } function e ( a ) { return a . replace ( /^[a-z-]+:\/+?[^\/]+/ , "" ) . replace ( /^\// , "" ) . replace ( /\.[a-zA-Z]+$/ , "" ) . replace ( /[^\.\w-]+/g , "-" ) . replace ( /\./g , ":" ) } function f ( a , c ) { var e = "{line} {content}" , f = a . filename || c , g = [ ] , h = ( a . type || "Syntax" ) + "Error: " + ( a . message || "There is an error in your .less file" ) + " in " + f + " " , i = function ( a , c , d ) { a . extract [ c ] !== b && g . push ( e . replace ( /\{line\}/ , ( parseInt ( a . line , 10 ) || 0 ) + ( c - 1 ) ) . replace ( /\{class\}/ , d ) . replace ( /\{content\}/ , a . extract [ c ] ) ) } ; a . extract ? ( i ( a , 0 , "" ) , i ( a , 1 , "line" ) , i ( a , 2 , "" ) , h += "on line " + a . line + ", column " + ( a . column + 1 ) + ":\n" + g . join ( "\n" ) ) : a . stack && ( h += a . stack ) , d ( h , z . errors ) } function g ( a , b , c ) { var f = b . href || "" , g = "less:" + ( b . title || e ( f ) ) , h = document . getElementById ( g ) , i = ! 1 , j = document . createElement ( "style" ) ; if ( j . setAttribute ( "type" , "text/css" ) , b . media && j . setAttribute ( "media" , b . media ) , j . id = g , j . styleSheet ) try { j . styleSheet . cssText = a } catch ( k ) { throw new Error ( "Couldn't reassign styleSheet.cssText." ) } else j . appendChild ( document . createTextNode ( a ) ) , i = null !== h && h . childNodes . length > 0 && j . childNodes . length > 0 && h . firstChild . nodeValue === j . firstChild . nodeValue ; var l = document . getElementsByTagName ( "head" ) [ 0 ] ; if ( null === h || i === ! 1 ) { var m = b && b . nextSibling || null ; m ? m . parentNode . insertBefore ( j , m ) : l . appendChild ( j ) } if ( h && i === ! 1 && h . parentNode . removeChild ( h ) , c && D ) { d ( "saving " + f + " to cache." , z . info ) ; try { D . setItem ( f , a ) , D . setItem ( f + ":timestamp" , c ) } catch ( k ) { d ( "failed to save" , z . errors ) } } } function h ( a ) { return w . postProcessor && "function" == typeof w . postProcessor && ( a = w . postProcessor . call ( a , a ) || a ) , a } function i ( a , c ) { var d , f , h = "less-error-message:" + e ( c || "" ) , i = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>' , j = document . createElement ( "div" ) , k = [ ] , l = a . filename || c , m = l . match ( /([^\/]+(\?.*)?)$/ ) [ 1 ] ; j . id = h , j . className = "less-error-message" , f = "<h3>" + ( a . type || "Syntax" ) + "Error: " + ( a . message || "There is an error in your .less file" ) + '</h3><p>in <a href="' + l + '">' + m + "</a> " ; var n = function ( a , c , d ) { a . extract [ c ] !== b && k . push ( i . replace ( /\{line\}/ , ( parseInt ( a . line , 10 ) || 0 ) + ( c - 1 ) ) . replace ( /\{class\}/ , d ) . replace ( /\{content\}/ , a . extract [ c ] ) ) } ; a . extract ? ( n ( a , 0 , "" ) , n ( a , 1 , "line" ) , n ( a , 2 , "" ) , f += "on line " + a . line + ", column " + ( a . column + 1 ) + ":</p><ul>" + k . join ( "" ) + "</ul>" ) : a . stack && ( f += "<br/>" + a . stack . split ( "\n" ) . slice ( 1 ) . join ( "<br/>" ) ) , j . innerHTML = f , g ( [ ".less-error-message ul, .less-error-message li {" , "list-style-type: none;" , "margin-right: 15px;" , "padding: 4px 0;" , "margin: 0;" , "}" , ".less-error-message label {" , "font-size: 12px;" , "margin-right: 15px;" , "padding: 4px 0;" , "color: #cc7777;" , "}" , ".less-error-message pre {" , "color: #dd6666;" , "padding: 4px 0;" , "margin: 0;" , "display: inline-block;" , "}" , ".less-error-message pre.line {" , "color: #ff0000;" , "}" , ".less-error-message h3 {" , "font-size: 20px;" , "font-weight: bold;" , "padding: 15px 0 5px 0;" , "margin: 0;" , "}" , ".less-error-message a {" , "color: #10a" , "}" , ".less-error-message .error {" , "color: red;" , "font-weight: bold;" , "padding-bottom: 2px;" , "border-bottom: 1px dashed red;" , "}" ] . join ( "\n" ) , { title : "error-message" } ) , j . style . cssText = [ "font-family: Arial, sans-serif" , "border: 1px solid #e00" , "background-color: #eee" , "border-radius: 5px" , "-webkit-border-radius: 5px" , "-moz-border-radius: 5px" , "color: #e00" , "padding: 15px" , "margin-bottom: 15px" ] . join ( ";" ) , "development" == w . env && ( d = setInterval ( function ( ) { document . body && ( document . getElementById ( h ) ? document . body . replaceChild ( j , document . getElementById ( h ) ) : document . body . insertBefore ( j , document . body . firstChild ) , clearInterval ( d ) ) } , 10 ) ) } function j ( a , b ) { w . errorReporting && "html" !== w . errorReporting ? "console" === w . errorReporting ? f ( a , b ) : "function" == typeof w . errorReporting && w . errorReporting ( "add" , a , b ) : i ( a , b ) } function k ( a ) { var b = document . getElementById ( "less-error-message:" + e ( a ) ) ; b && b . parentNode . removeChild ( b ) } function l ( ) { } function m ( a ) { w . errorReporting && "html" !== w . errorReporting ? "console" === w . errorReporting ? l ( a ) : "function" == typeof w . errorReporting && w . errorReporting ( "remove" , a ) : k ( a ) } function n ( a ) { for ( var b , c = document . getElementsByTagName
2014-03-27 07:01:21 +01:00
return b = b ? b instanceof d . Keyword ? b . value : b . toCSS ( ) : "" , new d . Dimension ( a . value , b ) } , convert : function ( a , b ) { return a . convertTo ( b . value ) } , round : function ( a , b ) { var c = "undefined" == typeof b ? 0 : b . value ; return e ( function ( a ) { return a . toFixed ( c ) } , null , a ) } , pi : function ( ) { return new d . Dimension ( Math . PI ) } , mod : function ( a , b ) { return new d . Dimension ( a . value % b . value , a . unit ) } , pow : function ( a , b ) { if ( "number" == typeof a && "number" == typeof b ) a = new d . Dimension ( a ) , b = new d . Dimension ( b ) ; else if ( ! ( a instanceof d . Dimension && b instanceof d . Dimension ) ) throw { type : "Argument" , message : "arguments must be numbers" } ; return new d . Dimension ( Math . pow ( a . value , b . value ) , a . unit ) } , _minmax : function ( a , c ) { switch ( c = Array . prototype . slice . call ( c ) , c . length ) { case 0 : throw { type : "Argument" , message : "one or more arguments required" } } var e , f , g , h , i , j , k , l , m = [ ] , n = { } ; for ( e = 0 ; e < c . length ; e ++ ) if ( g = c [ e ] , g instanceof d . Dimension ) if ( h = "" === g . unit . toString ( ) && l !== b ? new d . Dimension ( g . value , l ) . unify ( ) : g . unify ( ) , j = "" === h . unit . toString ( ) && k !== b ? k : h . unit . toString ( ) , k = "" !== j && k === b || "" !== j && "" === m [ 0 ] . unify ( ) . unit . toString ( ) ? j : k , l = "" !== j && l === b ? g . unit . toString ( ) : l , f = n [ "" ] !== b && "" !== j && j === k ? n [ "" ] : n [ j ] , f !== b ) i = "" === m [ f ] . unit . toString ( ) && l !== b ? new d . Dimension ( m [ f ] . value , l ) . unify ( ) : m [ f ] . unify ( ) , ( a && h . value < i . value || ! a && h . value > i . value ) && ( m [ f ] = g ) ; else { if ( k !== b && j !== k ) throw { type : "Argument" , message : "incompatible types" } ; n [ j ] = m . length , m . push ( g ) } else Array . isArray ( c [ e ] . value ) && Array . prototype . push . apply ( c , Array . prototype . slice . call ( c [ e ] . value ) ) ; return 1 == m . length ? m [ 0 ] : ( c = m . map ( function ( a ) { return a . toCSS ( this . env ) } ) . join ( this . env . compress ? "," : ", " ) , new d . Anonymous ( ( a ? "min" : "max" ) + "(" + c + ")" ) ) } , min : function ( ) { return this . _minmax ( ! 0 , arguments ) } , max : function ( ) { return this . _minmax ( ! 1 , arguments ) } , "get-unit" : function ( a ) { return new d . Anonymous ( a . unit ) } , argb : function ( a ) { return new d . Anonymous ( a . toARGB ( ) ) } , percentage : function ( a ) { return new d . Dimension ( 100 * a . value , "%" ) } , color : function ( a ) { if ( a instanceof d . Quoted ) { var b , c = a . value ; if ( b = d . Color . fromKeyword ( c ) ) return b ; if ( /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/ . test ( c ) ) return new d . Color ( c . slice ( 1 ) ) ; throw { type : "Argument" , message : "argument must be a color keyword or 3/6 digit hex e.g. #FFF" } } throw { type : "Argument" , message : "argument must be a string" } } , iscolor : function ( a ) { return this . _isa ( a , d . Color ) } , isnumber : function ( a ) { return this . _isa ( a , d . Dimension ) } , isstring : function ( a ) { return this . _isa ( a , d . Quoted ) } , iskeyword : function ( a ) { return this . _isa ( a , d . Keyword ) } , isurl : function ( a ) { return this . _isa ( a , d . URL ) } , ispixel : function ( a ) { return this . isunit ( a , "px" ) } , ispercentage : function ( a ) { return this . isunit ( a , "%" ) } , isem : function ( a ) { return this . isunit ( a , "em" ) } , isunit : function ( a , b ) { return a instanceof d . Dimension && a . unit . is ( b . value || b ) ? d . True : d . False } , _isa : function ( a , b ) { return a instanceof b ? d . True : d . False } , tint : function ( a , b ) { return this . mix ( this . rgb ( 255 , 255 , 255 ) , a , b ) } , shade : function ( a , b ) { return this . mix ( this . rgb ( 0 , 0 , 0 ) , a , b ) } , extract : function ( a , b ) { return b = b . value - 1 , Array . isArray ( a . value ) ? a . value [ b ] : Array ( a ) [ b ] } , length : function ( a ) { var b = Array . isArray ( a . value ) ? a . value . length : 1 ; return new d . Dimension ( b ) } , "data-uri" : function ( b , e ) { if ( "undefined" != typeof a ) return new d . URL ( e || b , this . currentFileInfo ) . eval ( this . env ) ; var f = b . value , g = e && e . value , h = c ( "fs" ) , i = c ( "path" ) , j = ! 1 ; if ( arguments . length < 2 && ( g = f ) , this . env . isPathRelative ( g ) && ( g = this . currentFileInfo . relativeUrls ? i . join ( this . currentFileInfo . currentDirectory , g ) : i . join ( this . currentFileInfo . entryPath , g ) ) , arguments . length < 2 ) { var k ; try { k = c ( "mime" ) } catch ( l ) { k = d . _mime } f = k . lookup ( g ) ; var m = k . charsets . lookup ( f ) ; j = [ "US-ASCII" , "UTF-8" ] . indexOf ( m ) < 0 , j && ( f += ";base64" ) } else j = /;base64$/ . test ( f ) ; var n = h . readFileSync ( g ) , o = 32 , p = parseInt ( n . length / 1024 , 10 ) ; if ( p >= o && this . env . ieCompat !== ! 1 ) return this . env . silent || console . warn ( "Skipped data-uri embedding of %s because its size (%dKB) exceeds IE8-safe %dKB!" , g , p , o ) , new d . URL ( e || b , this . currentFileInfo ) . eval ( this . env ) ; n = j ? n . toString ( "base64" ) : encodeURIComponent ( n ) ; var q = '"data:' + f + "," + n + '"' ; return new d . URL ( new d . Anonymous ( q ) ) } , "svg-gradient" : function ( a ) { function e ( ) { throw { type : "Argument" , message : " svg - gradient expects direction , start _co
2014-03-01 19:58:31 +01:00
} ) , f = 0 ; f < b . frames . length ; f ++ ) if ( ( c = b . frames [ f ] . find ( this . selector ) ) . length > 0 ) { for ( j = ! 0 , g = 0 ; g < c . length ; g ++ ) { for ( d = c [ g ] , i = ! 1 , h = 0 ; h < b . frames . length ; h ++ ) if ( ! ( d instanceof a . mixin . Definition ) && d === ( b . frames [ h ] . originalRuleset || b . frames [ h ] ) ) { i = ! 0 ; break } if ( ! i && d . matchArgs ( e , b ) ) { if ( l = { mixin : d , group : t } , d . matchCondition ) { for ( h = 0 ; 2 > h ; h ++ ) s . value ( h ) , r [ h ] = d . matchCondition ( e , b ) ; ( r [ 0 ] || r [ 1 ] ) && ( r [ 0 ] != r [ 1 ] && ( l . group = r [ 1 ] ? u : v ) , q . push ( l ) ) } else q . push ( l ) ; p = ! 0 } } for ( s . reset ( ) , n = [ 0 , 0 , 0 ] , g = 0 ; g < q . length ; g ++ ) n [ q [ g ] . group ] ++ ; if ( n [ t ] > 0 ) m = v ; else if ( m = u , n [ u ] + n [ v ] > 1 ) throw { type : "Runtime" , message : "Ambiguous use of `default()` found when matching for `" + this . format ( e ) + "`" , index : this . index , filename : this . currentFileInfo . filename } ; for ( g = 0 ; g < q . length ; g ++ ) if ( l = q [ g ] . group , l === t || l === m ) try { d = q [ g ] . mixin , d instanceof a . mixin . Definition || ( d = new a . mixin . Definition ( "" , [ ] , d . rules , null , ! 1 ) , d . originalRuleset = c [ g ] . originalRuleset || c [ g ] ) , Array . prototype . push . apply ( o , d . evalCall ( b , e , this . important ) . rules ) } catch ( w ) { throw { message : w . message , index : this . index , filename : this . currentFileInfo . filename , stack : w . stack } } if ( p ) { if ( ! this . currentFileInfo || ! this . currentFileInfo . reference ) for ( f = 0 ; f < o . length ; f ++ ) k = o [ f ] , k . markReferenced && k . markReferenced ( ) ; return o } } throw j ? { type : "Runtime" , message : "No matching definition was found for `" + this . format ( e ) + "`" , index : this . index , filename : this . currentFileInfo . filename } : { type : "Name" , message : this . selector . toCSS ( ) . trim ( ) + " is undefined" , index : this . index , filename : this . currentFileInfo . filename } } , format : function ( a ) { return this . selector . toCSS ( ) . trim ( ) + "(" + ( a ? a . map ( function ( a ) { var b = "" ; return a . name && ( b += a . name + ":" ) , b += a . value . toCSS ? a . value . toCSS ( ) : "???" } ) . join ( ", " ) : "" ) + ")" } } , a . mixin . Definition = function ( b , c , d , e , f , g ) { this . name = b , this . selectors = [ new a . Selector ( [ new a . Element ( null , b , this . index , this . currentFileInfo ) ] ) ] , this . params = c , this . condition = e , this . variadic = f , this . arity = c . length , this . rules = d , this . _lookups = { } , this . required = c . reduce ( function ( a , b ) { return ! b . name || b . name && ! b . value ? a + 1 : a } , 0 ) , this . parent = a . Ruleset . prototype , this . frames = g } , a . mixin . Definition . prototype = { type : "MixinDefinition" , accept : function ( a ) { this . params && this . params . length && ( this . params = a . visitArray ( this . params ) ) , this . rules = a . visitArray ( this . rules ) , this . condition && ( this . condition = a . visit ( this . condition ) ) } , variable : function ( a ) { return this . parent . variable . call ( this , a ) } , variables : function ( ) { return this . parent . variables . call ( this ) } , find : function ( ) { return this . parent . find . apply ( this , arguments ) } , rulesets : function ( ) { return this . parent . rulesets . apply ( this ) } , evalParams : function ( b , c , d , e ) { var f , g , h , i , j , k , l , m , n = new a . Ruleset ( null , null ) , o = this . params . slice ( 0 ) , p = 0 ; if ( c = new a . evalEnv ( c , [ n ] . concat ( c . frames ) ) , d ) for ( d = d . slice ( 0 ) , p = d . length , h = 0 ; p > h ; h ++ ) if ( g = d [ h ] , k = g && g . name ) { for ( l = ! 1 , i = 0 ; i < o . length ; i ++ ) if ( ! e [ i ] && k === o [ i ] . name ) { e [ i ] = g . value . eval ( b ) , n . prependRule ( new a . Rule ( k , g . value . eval ( b ) ) ) , l = ! 0 ; break } if ( l ) { d . splice ( h , 1 ) , h -- ; continue } throw { type : "Runtime" , message : "Named argument for " + this . name + " " + d [ h ] . name + " not found" } } for ( m = 0 , h = 0 ; h < o . length ; h ++ ) if ( ! e [ h ] ) { if ( g = d && d [ m ] , k = o [ h ] . name ) if ( o [ h ] . variadic ) { for ( f = [ ] , i = m ; p > i ; i ++ ) f . push ( d [ i ] . value . eval ( b ) ) ; n . prependRule ( new a . Rule ( k , new a . Expression ( f ) . eval ( b ) ) ) } else { if ( j = g && g . value ) j = j . eval ( b ) ; else { if ( ! o [ h ] . value ) throw { type : "Runtime" , message : "wrong number of arguments for " + this . name + " (" + p + " for " + this . arity + ")" } ; j = o [ h ] . value . eval ( c ) , n . resetCache ( ) } n . prependRule ( new a . Rule ( k , j ) ) , e [ h ] = j } if ( o [ h ] . variadic && d ) for ( i = m ; p > i ; i ++ ) e [ i ] = d [ i ] . value . eval ( b ) ; m ++ } return n } , eval : function ( b ) { return new a . mixin . Definition ( this . name , this . params , this . rules , this . condition , this . variadic , this . frames || b . frames . slice ( 0 ) ) } , evalCall : function ( b , c , d ) { var e , f , g = [ ] , h = this . frames ? this . frames . concat ( b . frames ) : b . frames , i = this . evalParams ( b , new a . evalEnv ( b , h ) , c , g ) ; return i . prependRule ( new a . Rule ( "@arguments" , new a . Expression ( g ) . eval ( b ) ) ) , e = this . rules . slice ( 0 ) , f = new a . Ruleset ( null , e ) , f . originalRuleset = this , f = f . eval ( new a . evalEnv ( b , [ this , i ] . concat ( h ) ) ) , d && ( f = this . parent . makeImportant . apply ( f ) ) , f } , matchCondition : function ( b , c ) { return this . condition && ! this . condition . eval ( new a . evalEnv ( c , [ this . evalParams ( c , new
} , visitRulesetOut : function ( ) { } , visitMedia : function ( a ) { var b = a . allExtends . concat ( this . allExtendsStack [ this . allExtendsStack . length - 1 ] ) ; b = b . concat ( this . doExtendChaining ( b , a . allExtends ) ) , this . allExtendsStack . push ( b ) } , visitMediaOut : function ( ) { this . allExtendsStack . length = this . allExtendsStack . length - 1 } , visitDirective : function ( a ) { var b = a . allExtends . concat ( this . allExtendsStack [ this . allExtendsStack . length - 1 ] ) ; b = b . concat ( this . doExtendChaining ( b , a . allExtends ) ) , this . allExtendsStack . push ( b ) } , visitDirectiveOut : function ( ) { this . allExtendsStack . length = this . allExtendsStack . length - 1 } } } ( c ( "./tree" ) ) , function ( a ) { a . sourceMapOutput = function ( a ) { this . _css = [ ] , this . _rootNode = a . rootNode , this . _writeSourceMap = a . writeSourceMap , this . _contentsMap = a . contentsMap , this . _contentsIgnoredCharsMap = a . contentsIgnoredCharsMap , this . _sourceMapFilename = a . sourceMapFilename , this . _outputFilename = a . outputFilename , this . _sourceMapURL = a . sourceMapURL , a . sourceMapBasepath && ( this . _sourceMapBasepath = a . sourceMapBasepath . replace ( /\\/g , "/" ) ) , this . _sourceMapRootpath = a . sourceMapRootpath , this . _outputSourceFiles = a . outputSourceFiles , this . _sourceMapGeneratorConstructor = a . sourceMapGenerator || c ( "source-map" ) . SourceMapGenerator , this . _sourceMapRootpath && "/" !== this . _sourceMapRootpath . charAt ( this . _sourceMapRootpath . length - 1 ) && ( this . _sourceMapRootpath += "/" ) , this . _lineNumber = 0 , this . _column = 0 } , a . sourceMapOutput . prototype . normalizeFilename = function ( a ) { return a = a . replace ( /\\/g , "/" ) , this . _sourceMapBasepath && 0 === a . indexOf ( this . _sourceMapBasepath ) && ( a = a . substring ( this . _sourceMapBasepath . length ) , ( "\\" === a . charAt ( 0 ) || "/" === a . charAt ( 0 ) ) && ( a = a . substring ( 1 ) ) ) , ( this . _sourceMapRootpath || "" ) + a } , a . sourceMapOutput . prototype . add = function ( a , b , c , d ) { if ( a ) { var e , f , g , h , i ; if ( b ) { var j = this . _contentsMap [ b . filename ] ; this . _contentsIgnoredCharsMap [ b . filename ] && ( c -= this . _contentsIgnoredCharsMap [ b . filename ] , 0 > c && ( c = 0 ) , j = j . slice ( this . _contentsIgnoredCharsMap [ b . filename ] ) ) , j = j . substring ( 0 , c ) , f = j . split ( "\n" ) , h = f [ f . length - 1 ] } if ( e = a . split ( "\n" ) , g = e [ e . length - 1 ] , b ) if ( d ) for ( i = 0 ; i < e . length ; i ++ ) this . _sourceMapGenerator . addMapping ( { generated : { line : this . _lineNumber + i + 1 , column : 0 === i ? this . _column : 0 } , original : { line : f . length + i , column : 0 === i ? h . length : 0 } , source : this . normalizeFilename ( b . filename ) } ) ; else this . _sourceMapGenerator . addMapping ( { generated : { line : this . _lineNumber + 1 , column : this . _column } , original : { line : f . length , column : h . length } , source : this . normalizeFilename ( b . filename ) } ) ; 1 === e . length ? this . _column += g . length : ( this . _lineNumber += e . length - 1 , this . _column = g . length ) , this . _css . push ( a ) } } , a . sourceMapOutput . prototype . isEmpty = function ( ) { return 0 === this . _css . length } , a . sourceMapOutput . prototype . toCSS = function ( a ) { if ( this . _sourceMapGenerator = new this . _sourceMapGeneratorConstructor ( { file : this . _outputFilename , sourceRoot : null } ) , this . _outputSourceFiles ) for ( var b in this . _contentsMap ) if ( this . _contentsMap . hasOwnProperty ( b ) ) { var c = this . _contentsMap [ b ] ; this . _contentsIgnoredCharsMap [ b ] && ( c = c . slice ( this . _contentsIgnoredCharsMap [ b ] ) ) , this . _sourceMapGenerator . setSourceContent ( this . normalizeFilename ( b ) , c ) } if ( this . _rootNode . genCSS ( a , this ) , this . _css . length > 0 ) { var d , e = JSON . stringify ( this . _sourceMapGenerator . toJSON ( ) ) ; this . _sourceMapURL ? d = this . _sourceMapURL : this . _sourceMapFilename && ( d = this . normalizeFilename ( this . _sourceMapFilename ) ) , this . _writeSourceMap ? this . _writeSourceMap ( e ) : d = "data:application/json," + encodeURIComponent ( e ) , d && this . _css . push ( "/*# sourceMappingURL=" + d + " */" ) } return this . _css . join ( "" ) } } ( c ( "./tree" ) ) ; var y = /^(file|chrome(-extension)?|resource|qrc|app):/ . test ( location . protocol ) ; w . env = w . env || ( "127.0.0.1" == location . hostname || "0.0.0.0" == location . hostname || "localhost" == location . hostname || location . port && location . port . length > 0 || y ? "development" : "production" ) ; var z = { debug : 3 , info : 2 , errors : 1 , none : 0 } ; if ( w . logLevel = "undefined" != typeof w . logLevel ? w . logLevel : "development" === w . env ? z . debug : z . errors , w . async = w . async || ! 1 , w . fileAsync = w . fileAsync || ! 1 , w . poll = w . poll || ( y ? 1e3 : 1500 ) , w . functions ) for ( var A in w . functions ) w . functions . hasOwnProperty ( A ) && ( w . tree . functions [ A ] = w . functions [ A ] ) ; var B = /!dumpLineNumbers:(comments|mediaquery|all)/ . exec ( location . hash ) ; B && ( w . dumpLineNumbers = B [ 1 ] )
2014-02-06 22:10:37 +01:00
2014-01-14 06:58:27 +01:00
JSZip - A Javascript class for generating and reading zip files
< http : //stuartk.com/jszip>
2014-03-23 07:10:00 +01:00
( c ) 2009 - 2014 Stuart Knightley < stuart [ at ] stuartk . com >
2014-02-06 22:10:37 +01:00
Dual licenced under the MIT license or GPLv3 . See https : //raw.github.com/Stuk/jszip/master/LICENSE.markdown.
2014-04-25 07:32:24 +02:00
JSZip uses the library pako released under the MIT license :
https : //github.com/nodeca/pako/blob/master/LICENSE
2014-01-14 06:58:27 +01:00
* /
2014-05-02 08:17:46 +02:00
! function ( a ) { "object" == typeof exports ? module . exports = a ( ) : "function" == typeof define && define . amd ? define ( a ) : "undefined" != typeof window ? window . JSZip = a ( ) : "undefined" != typeof global ? global . JSZip = a ( ) : "undefined" != typeof self && ( self . JSZip = a ( ) ) } ( function ( ) { return function a ( b , c , d ) { function e ( g , h ) { if ( ! c [ g ] ) { if ( ! b [ g ] ) { var i = "function" == typeof require && require ; if ( ! h && i ) return i ( g , ! 0 ) ; if ( f ) return f ( g , ! 0 ) ; throw new Error ( "Cannot find module '" + g + "'" ) } var j = c [ g ] = { exports : { } } ; b [ g ] [ 0 ] . call ( j . exports , function ( a ) { var c = b [ g ] [ 1 ] [ a ] ; return e ( c ? c : a ) } , j , j . exports , a , b , c , d ) } return c [ g ] . exports } for ( var f = "function" == typeof require && require , g = 0 ; g < d . length ; g ++ ) e ( d [ g ] ) ; return e } ( { 1 : [ function ( a , b , c ) { "use strict" ; var d = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ; c . encode = function ( a ) { for ( var b , c , e , f , g , h , i , j = "" , k = 0 ; k < a . length ; ) b = a . charCodeAt ( k ++ ) , c = a . charCodeAt ( k ++ ) , e = a . charCodeAt ( k ++ ) , f = b >> 2 , g = ( 3 & b ) << 4 | c >> 4 , h = ( 15 & c ) << 2 | e >> 6 , i = 63 & e , isNaN ( c ) ? h = i = 64 : isNaN ( e ) && ( i = 64 ) , j = j + d . charAt ( f ) + d . charAt ( g ) + d . charAt ( h ) + d . charAt ( i ) ; return j } , c . decode = function ( a ) { var b , c , e , f , g , h , i , j = "" , k = 0 ; for ( a = a . replace ( /[^A-Za-z0-9\+\/\=]/g , "" ) ; k < a . length ; ) f = d . indexOf ( a . charAt ( k ++ ) ) , g = d . indexOf ( a . charAt ( k ++ ) ) , h = d . indexOf ( a . charAt ( k ++ ) ) , i = d . indexOf ( a . charAt ( k ++ ) ) , b = f << 2 | g >> 4 , c = ( 15 & g ) << 4 | h >> 2 , e = ( 3 & h ) << 6 | i , j += String . fromCharCode ( b ) , 64 != h && ( j += String . fromCharCode ( c ) ) , 64 != i && ( j += String . fromCharCode ( e ) ) ; return j } } , { } ] , 2 : [ function ( a , b ) { "use strict" ; function c ( ) { this . compressedSize = 0 , this . uncompressedSize = 0 , this . crc32 = 0 , this . compressionMethod = null , this . compressedContent = null } c . prototype = { getContent : function ( ) { return null } , getCompressedContent : function ( ) { return null } } , b . exports = c } , { } ] , 3 : [ function ( a , b , c ) { "use strict" ; c . STORE = { magic : "\x00\x00" , compress : function ( a ) { return a } , uncompress : function ( a ) { return a } , compressInputType : null , uncompressInputType : null } , c . DEFLATE = a ( "./flate" ) } , { "./flate" : 6 } ] , 4 : [ function ( a , b ) { "use strict" ; function c ( ) { this . data = null , this . length = 0 , this . index = 0 } var d = a ( "./utils" ) ; c . prototype = { checkOffset : function ( a ) { this . checkIndex ( this . index + a ) } , checkIndex : function ( a ) { if ( this . length < a || 0 > a ) throw new Error ( "End of data reached (data length = " + this . length + ", asked index = " + a + "). Corrupted zip ?" ) } , setIndex : function ( a ) { this . checkIndex ( a ) , this . index = a } , skip : function ( a ) { this . setIndex ( this . index + a ) } , byteAt : function ( ) { } , readInt : function ( a ) { var b , c = 0 ; for ( this . checkOffset ( a ) , b = this . index + a - 1 ; b >= this . index ; b -- ) c = ( c << 8 ) + this . byteAt ( b ) ; return this . index += a , c } , readString : function ( a ) { return d . transformTo ( "string" , this . readData ( a ) ) } , readData : function ( ) { } , lastIndexOfSignature : function ( ) { } , readDate : function ( ) { var a = this . readInt ( 4 ) ; return new Date ( ( a >> 25 & 127 ) + 1980 , ( a >> 21 & 15 ) - 1 , a >> 16 & 31 , a >> 11 & 31 , a >> 5 & 63 , ( 31 & a ) << 1 ) } } , b . exports = c } , { "./utils" : 14 } ] , 5 : [ function ( a , b , c ) { "use strict" ; c . base64 = ! 1 , c . binary = ! 1 , c . dir = ! 1 , c . date = null , c . compression = null } , { } ] , 6 : [ function ( a , b , c ) { "use strict" ; var d = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Uint32Array , e = a ( "pako" ) ; c . uncompressInputType = d ? "uint8array" : "array" , c . compressInputType = d ? "uint8array" : "array" , c . magic = "\b\x00" , c . compress = function ( a ) { return e . deflateRaw ( a ) } , c . uncompress = function ( a ) { return e . inflateRaw ( a ) } } , { pako : 19 } ] , 7 : [ function ( a , b ) { "use strict" ; function c ( a , b ) { return this instanceof c ? ( this . files = { } , this . root = "" , a && this . load ( a , b ) , void ( this . clone = function ( ) { var a = new c ; for ( var b in this ) "function" != typeof this [ b ] && ( a [ b ] = this [ b ] ) ; return a } ) ) : new c ( a , b ) } c . prototype = a ( "./object" ) , c . prototype . load = a ( "./load" ) , c . support = a ( "./support" ) , c . defaults = a ( "./defaults" ) , c . utils = a ( "./utils" ) , c . base64 = a ( "./base64" ) , c . compressions = a ( "./compressions" ) , b . exports = c } , { "./base64" : 1 , "./compressions" : 3 , "./defaults" : 5 , "./load" : 8 , "./object" : 9 , "./support" : 12 , "./utils" : 14 } ] , 8 : [ function ( a , b ) { "use strict" ; var c = a ( "./base64" ) , d = a ( "./zipEntries" ) ; b . exports = function ( a , b ) { var e , f , g , h ; for ( b = b || { } , b . base64 && ( a = c . decode ( a ) ) , f = new d ( a , b ) , e = f . files , g = 0 ; g < e . length ; g ++ ) h = e [ g ] , this . file ( h . fileName , h . decompressed , { binary : ! 0 , optimizedBinaryString : ! 0 , date : h . date , dir : h . dir } ) ; return this } } , { "./base64" : 1 , "./zipEntries" : 15 } ] , 9 : [ function ( a , b
} while ( ( l . avail _in > 0 || 0 === l . avail _out ) && c !== i . Z _STREAM _END ) ; return c === i . Z _STREAM _END && ( d = i . Z _FINISH ) , d === i . Z _FINISH ? ( c = f . inflateEnd ( this . strm ) , this . onEnd ( c ) , this . ended = ! 0 , c === i . Z _OK ) : ! 0 } , m . prototype . onData = function ( a ) { this . chunks . push ( a ) } , m . prototype . onEnd = function ( a ) { a === i . Z _OK && ( this . result = "string" === this . options . to ? this . chunks . join ( "" ) : g . flattenChunks ( this . chunks ) ) , this . chunks = [ ] , this . err = a , this . msg = this . strm . msg } , c . Inflate = m , c . inflate = d , c . inflateRaw = e , c . ungzip = d } , { "./utils/common" : 22 , "./utils/strings" : 23 , "./zlib/constants" : 25 , "./zlib/gzheader" : 28 , "./zlib/inflate.js" : 30 , "./zlib/messages" : 32 , "./zlib/zstream" : 34 } ] , 22 : [ function ( a , b , c ) { "use strict" ; var d = "undefined" != typeof Uint8Array && "undefined" != typeof Uint16Array && "undefined" != typeof Int32Array ; c . assign = function ( a ) { for ( var b = Array . prototype . slice . call ( arguments , 1 ) ; b . length ; ) { var c = b . shift ( ) ; if ( c ) { if ( "object" != typeof c ) throw new TypeError ( c + "must be non-object" ) ; for ( var d in c ) c . hasOwnProperty ( d ) && ( a [ d ] = c [ d ] ) } } return a } , c . shrinkBuf = function ( a , b ) { return a . length === b ? a : a . subarray ? a . subarray ( 0 , b ) : ( a . length = b , a ) } ; var e = { arraySet : function ( a , b , c , d , e ) { if ( b . subarray && a . subarray ) return void a . set ( b . subarray ( c , c + d ) , e ) ; for ( var f = 0 ; d > f ; f ++ ) a [ e + f ] = b [ c + f ] } , flattenChunks : function ( a ) { var b , c , d , e , f , g ; for ( d = 0 , b = 0 , c = a . length ; c > b ; b ++ ) d += a [ b ] . length ; for ( g = new Uint8Array ( d ) , e = 0 , b = 0 , c = a . length ; c > b ; b ++ ) f = a [ b ] , g . set ( f , e ) , e += f . length ; return g } } , f = { arraySet : function ( a , b , c , d , e ) { for ( var f = 0 ; d > f ; f ++ ) a [ e + f ] = b [ c + f ] } , flattenChunks : function ( a ) { return [ ] . concat . apply ( [ ] , a ) } } ; c . setTyped = function ( a ) { a ? ( c . Buf8 = Uint8Array , c . Buf16 = Uint16Array , c . Buf32 = Int32Array , c . assign ( c , e ) ) : ( c . Buf8 = Array , c . Buf16 = Array , c . Buf32 = Array , c . assign ( c , f ) ) } , c . setTyped ( d ) } , { } ] , 23 : [ function ( a , b , c ) { "use strict" ; var d = a ( "./common" ) , e = ! 0 ; try { String . fromCharCode . apply ( null , [ 0 ] ) } catch ( f ) { e = ! 1 } for ( var g = new d . Buf8 ( 256 ) , h = 0 ; 256 > h ; h ++ ) g [ h ] = h >= 252 ? 6 : h >= 248 ? 5 : h >= 240 ? 4 : h >= 224 ? 3 : h >= 192 ? 2 : 1 ; g [ 254 ] = g [ 254 ] = 1 , c . string2buf = function ( a ) { var b , c , e , f , g , h = a . length , i = 0 ; for ( f = 0 ; h > f ; f ++ ) c = a . charCodeAt ( f ) , 55296 === ( 64512 & c ) && h > f + 1 && ( e = a . charCodeAt ( f + 1 ) , 56320 === ( 64512 & e ) && ( c = 65536 + ( c - 55296 << 10 ) + ( e - 56320 ) , f ++ ) ) , i += 128 > c ? 1 : 2048 > c ? 2 : 65536 > c ? 3 : 4 ; for ( b = new d . Buf8 ( i ) , g = 0 , f = 0 ; i > g ; f ++ ) c = a . charCodeAt ( f ) , 55296 === ( 64512 & c ) && h > f + 1 && ( e = a . charCodeAt ( f + 1 ) , 56320 === ( 64512 & e ) && ( c = 65536 + ( c - 55296 << 10 ) + ( e - 56320 ) , f ++ ) ) , 128 > c ? b [ g ++ ] = c : 2048 > c ? ( b [ g ++ ] = 192 | c >>> 6 , b [ g ++ ] = 128 | 63 & c ) : 65536 > c ? ( b [ g ++ ] = 224 | c >>> 12 , b [ g ++ ] = 128 | c >>> 6 & 63 , b [ g ++ ] = 128 | 63 & c ) : ( b [ g ++ ] = 240 | c >>> 18 , b [ g ++ ] = 128 | c >>> 12 & 63 , b [ g ++ ] = 128 | c >>> 6 & 63 , b [ g ++ ] = 128 | 63 & c ) ; return b } , c . buf2binstring = function ( a ) { if ( e && a . length < 65537 ) return String . fromCharCode . apply ( null , a ) ; for ( var b = "" , c = 0 , d = a . length ; d > c ; c ++ ) b += String . fromCharCode ( a [ c ] ) ; return b } , c . binstring2buf = function ( a ) { for ( var b = new d . Buf8 ( a . length ) , c = 0 , e = b . length ; e > c ; c ++ ) b [ c ] = a . charCodeAt ( c ) ; return b } , c . buf2string = function ( a , b ) { var c , f , h , i , j , k = b || a . length , l = new Array ( 2 * k ) ; for ( h = 0 , f = 0 ; k > f ; ) if ( i = a [ f ++ ] , 128 > i ) l [ h ++ ] = i ; else if ( j = g [ i ] , j > 4 ) l [ h ++ ] = 65533 , f += j - 1 ; else { for ( i &= 2 === j ? 31 : 3 === j ? 15 : 7 ; j > 1 && k > f ; ) i = i << 6 | 63 & a [ f ++ ] , j -- ; j > 1 ? l [ h ++ ] = 65533 : 65536 > i ? l [ h ++ ] = i : ( i -= 65536 , l [ h ++ ] = 55296 | i >> 10 & 1023 , l [ h ++ ] = 56320 | 1023 & i ) } if ( e ) return String . fromCharCode . apply ( null , d . shrinkBuf ( l , h ) ) ; for ( c = "" , f = 0 , k = h ; k > f ; f ++ ) c += String . fromCharCode ( l [ f ] ) ; return c } , c . utf8border = function ( a , b ) { var c ; for ( b = b || a . length , b > a . length && ( b = a . length ) , c = b - 1 ; c >= 0 && 128 === ( 192 & a [ c ] ) ; ) c -- ; return 0 > c ? b : 0 === c ? b : c + g [ a [ c ] ] > b ? c : b } } , { "./common" : 22 } ] , 24 : [ function ( a , b ) { "use strict" ; function c ( a , b , c , d ) { for ( var e = 65535 & a | 0 , f = a >>> 16 & 65535 | 0 , g = 0 ; 0 !== c ; ) { g = c > 2e3 ? 2e3 : c , c -= g ; do e = e + b [ d ++ ] | 0 , f = f + e | 0 ; while ( -- g ) ; e %= 65521 , f %= 65521 } return e | f << 16 | 0 } b . exports = c } , { } ] , 25 : [ function ( a , b ) { b . exports = { Z _NO _FLUSH : 0 , Z _PARTIAL _FLUSH : 1 , Z _SYNC _FLUSH : 2 , Z _FULL _FLUSH : 3 , Z _FINISH : 4 , Z _BLOCK : 5 , Z _TREES : 6 , Z _OK : 0 , Z _STREAM _END : 1 , Z _NEED _DICT : 2 , Z _ERRNO : - 1 , Z _STREAM _ERROR : - 2 , Z _DATA _ERROR : - 3 , Z _BUF _ERROR : - 5 , Z _NO _COMPRESSION : 0 , Z _BEST _SPEED : 1 , Z _BEST _COMPRESSION : 9 , Z _DEFAULT _COMPRESSION : - 1 , Z _FILTERED : 1 , Z _HUFFMAN _ONLY : 2 , Z _RLE : 3 , Z _FIXED : 4 , Z _DEFAULT _STRATEGY : 0 , Z _BINARY : 0 , Z _TEXT : 1 , Z _UNKNOWN : 2 , Z _DEFLATED : 8 } } , { } ] , 26 : [ function ( a , b ) { "use strict" ; function c ( ) { for ( var a , b = [ ] , c = 0 ; 256 > c ; c ++ ) { a = c ; for ( var d = 0 ;
b . exports = function ( a , b , n , o , p , q , r , s ) { var t , u , v , w , x , y , z , A , B , C = s . bits , D = 0 , E = 0 , F = 0 , G = 0 , H = 0 , I = 0 , J = 0 , K = 0 , L = 0 , M = 0 , N = null , O = 0 , P = new c . Buf16 ( d + 1 ) , Q = new c . Buf16 ( d + 1 ) , R = null , S = 0 ; for ( D = 0 ; d >= D ; D ++ ) P [ D ] = 0 ; for ( E = 0 ; o > E ; E ++ ) P [ b [ n + E ] ] ++ ; for ( H = C , G = d ; G >= 1 && 0 === P [ G ] ; G -- ) ; if ( H > G && ( H = G ) , 0 === G ) return p [ q ++ ] = 20971520 , p [ q ++ ] = 20971520 , s . bits = 1 , 0 ; for ( F = 1 ; G > F && 0 === P [ F ] ; F ++ ) ; for ( F > H && ( H = F ) , K = 1 , D = 1 ; d >= D ; D ++ ) if ( K <<= 1 , K -= P [ D ] , 0 > K ) return - 1 ; if ( K > 0 && ( a === g || 1 !== G ) ) return - 1 ; for ( Q [ 1 ] = 0 , D = 1 ; d > D ; D ++ ) Q [ D + 1 ] = Q [ D ] + P [ D ] ; for ( E = 0 ; o > E ; E ++ ) 0 !== b [ n + E ] && ( r [ Q [ b [ n + E ] ] ++ ] = E ) ; switch ( a ) { case g : N = R = r , y = 19 ; break ; case h : N = j , O -= 257 , R = k , S -= 257 , y = 256 ; break ; default : N = l , R = m , y = - 1 } if ( M = 0 , E = 0 , D = F , x = q , I = H , J = 0 , v = - 1 , L = 1 << H , w = L - 1 , a === h && L > e || a === i && L > f ) return 1 ; for ( var T = 0 ; ; ) { T ++ , z = D - J , r [ E ] < y ? ( A = 0 , B = r [ E ] ) : r [ E ] > y ? ( A = R [ S + r [ E ] ] , B = N [ O + r [ E ] ] ) : ( A = 96 , B = 0 ) , t = 1 << D - J , u = 1 << I , F = u ; do u -= t , p [ x + ( M >> J ) + u ] = z << 24 | A << 16 | B | 0 ; while ( 0 !== u ) ; for ( t = 1 << D - 1 ; M & t ; ) t >>= 1 ; if ( 0 !== t ? ( M &= t - 1 , M += t ) : M = 0 , E ++ , 0 === -- P [ D ] ) { if ( D === G ) break ; D = b [ n + r [ E ] ] } if ( D > H && ( M & w ) !== v ) { for ( 0 === J && ( J = H ) , x += F , I = D - J , K = 1 << I ; G > I + J && ( K -= P [ I + J ] , ! ( 0 >= K ) ) ; ) I ++ , K <<= 1 ; if ( L += 1 << I , a === h && L > e || a === i && L > f ) return 1 ; v = M & w , p [ v ] = H << 24 | I << 16 | x - q | 0 } } return 0 !== M && ( p [ x + M ] = D - J << 24 | 64 << 16 | 0 ) , s . bits = H , 0 } } , { "../utils/common" : 22 } ] , 32 : [ function ( a , b ) { "use strict" ; b . exports = { 2 : "need dictionary" , 1 : "stream end" , 0 : "" , "-1" : "file error" , "-2" : "stream error" , "-3" : "data error" , "-4" : "insufficient memory" , "-5" : "buffer error" , "-6" : "incompatible version" } } , { } ] , 33 : [ function ( a , b , c ) { "use strict" ; function d ( a ) { for ( var b = a . length ; -- b >= 0 ; ) a [ b ] = 0 } function e ( a ) { return 256 > a ? gb [ a ] : gb [ 256 + ( a >>> 7 ) ] } function f ( a , b ) { a . pending _buf [ a . pending ++ ] = 255 & b , a . pending _buf [ a . pending ++ ] = b >>> 8 & 255 } function g ( a , b , c ) { a . bi _valid > V - c ? ( a . bi _buf |= b << a . bi _valid & 65535 , f ( a , a . bi _buf ) , a . bi _buf = b >> V - a . bi _valid , a . bi _valid += c - V ) : ( a . bi _buf |= b << a . bi _valid & 65535 , a . bi _valid += c ) } function h ( a , b , c ) { g ( a , c [ 2 * b ] , c [ 2 * b + 1 ] ) } function i ( a , b ) { var c = 0 ; do c |= 1 & a , a >>>= 1 , c <<= 1 ; while ( -- b > 0 ) ; return c >>> 1 } function j ( a ) { 16 === a . bi _valid ? ( f ( a , a . bi _buf ) , a . bi _buf = 0 , a . bi _valid = 0 ) : a . bi _valid >= 8 && ( a . pending _buf [ a . pending ++ ] = 255 & a . bi _buf , a . bi _buf >>= 8 , a . bi _valid -= 8 ) } function k ( a , b ) { var c , d , e , f , g , h , i = b . dyn _tree , j = b . max _code , k = b . stat _desc . static _tree , l = b . stat _desc . has _stree , m = b . stat _desc . extra _bits , n = b . stat _desc . extra _base , o = b . stat _desc . max _length , p = 0 ; for ( f = 0 ; U >= f ; f ++ ) a . bl _count [ f ] = 0 ; for ( i [ 2 * a . heap [ a . heap _max ] + 1 ] = 0 , c = a . heap _max + 1 ; T > c ; c ++ ) d = a . heap [ c ] , f = i [ 2 * i [ 2 * d + 1 ] + 1 ] + 1 , f > o && ( f = o , p ++ ) , i [ 2 * d + 1 ] = f , d > j || ( a . bl _count [ f ] ++ , g = 0 , d >= n && ( g = m [ d - n ] ) , h = i [ 2 * d ] , a . opt _len += h * ( f + g ) , l && ( a . static _len += h * ( k [ 2 * d + 1 ] + g ) ) ) ; if ( 0 !== p ) { do { for ( f = o - 1 ; 0 === a . bl _count [ f ] ; ) f -- ; a . bl _count [ f ] -- , a . bl _count [ f + 1 ] += 2 , a . bl _count [ o ] -- , p -= 2 } while ( p > 0 ) ; for ( f = o ; 0 !== f ; f -- ) for ( d = a . bl _count [ f ] ; 0 !== d ; ) e = a . heap [ -- c ] , e > j || ( i [ 2 * e + 1 ] !== f && ( a . opt _len += ( f - i [ 2 * e + 1 ] ) * i [ 2 * e ] , i [ 2 * e + 1 ] = f ) , d -- ) } } function l ( a , b , c ) { var d , e , f = new Array ( U + 1 ) , g = 0 ; for ( d = 1 ; U >= d ; d ++ ) f [ d ] = g = g + c [ d - 1 ] << 1 ; for ( e = 0 ; b >= e ; e ++ ) { var h = a [ 2 * e + 1 ] ; 0 !== h && ( a [ 2 * e ] = i ( f [ h ] ++ , h ) ) } } function m ( ) { var a , b , c , d , e , f = new Array ( U + 1 ) ; for ( c = 0 , d = 0 ; O - 1 > d ; d ++ ) for ( ib [ d ] = c , a = 0 ; a < 1 << _ [ d ] ; a ++ ) hb [ c ++ ] = d ; for ( hb [ c - 1 ] = d , e = 0 , d = 0 ; 16 > d ; d ++ ) for ( jb [ d ] = e , a = 0 ; a < 1 << ab [ d ] ; a ++ ) gb [ e ++ ] = d ; for ( e >>= 7 ; R > d ; d ++ ) for ( jb [ d ] = e << 7 , a = 0 ; a < 1 << ab [ d ] - 7 ; a ++ ) gb [ 256 + e ++ ] = d ; for ( b = 0 ; U >= b ; b ++ ) f [ b ] = 0 ; for ( a = 0 ; 143 >= a ; ) eb [ 2 * a + 1 ] = 8 , a ++ , f [ 8 ] ++ ; for ( ; 255 >= a ; ) eb [ 2 * a + 1 ] = 9 , a ++ , f [ 9 ] ++ ; for ( ; 279 >= a ; ) eb [ 2 * a + 1 ] = 7 , a ++ , f [ 7 ] ++ ; for ( ; 287 >= a ; ) eb [ 2 * a + 1 ] = 8 , a ++ , f [ 8 ] ++ ; for ( l ( eb , Q + 1 , f ) , a = 0 ; R > a ; a ++ ) fb [ 2 * a + 1 ] = 5 , fb [ 2 * a ] = i ( a , 5 ) ; kb = new nb ( eb , _ , P + 1 , Q , U ) , lb = new nb ( fb , ab , 0 , R , U ) , mb = new nb ( new Array ( 0 ) , bb , 0 , S , W ) } function n ( a ) { var b ; for ( b = 0 ; Q > b ; b ++ ) a . dyn _ltree [ 2 * b ] = 0 ; for ( b = 0 ; R > b ; b ++ ) a . dyn _dtree [ 2 * b ] = 0 ; for ( b = 0 ; S > b ; b ++ ) a . bl _tree [ 2 * b ] = 0 ; a . dyn _ltree [ 2 * X ] = 1 , a . opt _len = a . static _len = 0 , a . last _lit = a . matches = 0 } function o ( a ) { a . bi _valid > 8 ? f ( a , a . bi _buf ) : a . bi _valid > 0 && ( a . pending _buf [ a . pending ++ ] = a . bi _buf ) , a . bi _buf = 0 , a . bi _valid = 0 } function p ( a , b , c , d ) { o ( a ) , d && ( f ( a , c ) , f ( a , ~ c ) ) , E . arraySet ( a . pending _buf , a . window , b , c , a . pending ) , a . pending += c } function q ( a , b , c , d ) { var e = 2 * b , f = 2 * c ; return a [ e ] < a [ f ] || a [ e ] === a [ f ] && d [ b ] <= d [ c ] } function r ( a , b , c ) { for ( var d = a . heap [ c ] , e = c << 1 ; e <= a . heap _len && ( e < a . heap _len && q ( b , a . heap [ e + 1 ] , a . heap [ e ] , a . depth ) && e ++ , ! q ( b , d , a . heap [ e ] , a . depth ) ) ; ) a . heap [ c ] = a . heap [
} , walk : function ( a ) { return this . _walk ( a ) } } , null ) ; U . warn _function = null , U . warn = function ( a , b ) { U . warn _function && U . warn _function ( n ( a , b ) ) } ; var V = v ( "Statement" , null , { $documentation : "Base class of all statements" } ) , W = v ( "Debugger" , null , { $documentation : "Represents a debugger statement" } , V ) , X = v ( "Directive" , "value scope" , { $documentation : 'Represents a directive, like "use strict";' , $propdoc : { value : "[string] The value of this directive as a plain string (it's not an AST_String!)" , scope : "[AST_Scope/S] The scope that this directive affects" } } , V ) , Y = v ( "SimpleStatement" , "body" , { $documentation : "A statement consisting of an expression, i.e. a = 1 + 2" , $propdoc : { body : "[AST_Node] an expression node (should not be instanceof AST_Statement)" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . body . _walk ( a ) } ) } } , V ) , Z = v ( "Block" , "body" , { $documentation : "A body of statements (usually bracketed)" , $propdoc : { body : "[AST_Statement*] an array of statements" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { w ( this , a ) } ) } } , V ) , $ = v ( "BlockStatement" , null , { $documentation : "A block statement" } , Z ) , _ = v ( "EmptyStatement" , null , { $documentation : "The empty statement (empty block or simply a semicolon)" , _walk : function ( a ) { return a . _visit ( this ) } } , V ) , ab = v ( "StatementWithBody" , "body" , { $documentation : "Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`" , $propdoc : { body : "[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . body . _walk ( a ) } ) } } , V ) , bb = v ( "LabeledStatement" , "label" , { $documentation : "Statement with a label" , $propdoc : { label : "[AST_Label] a label definition" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . label . _walk ( a ) , this . body . _walk ( a ) } ) } } , ab ) , cb = v ( "IterationStatement" , null , { $documentation : "Internal class. All loops inherit from it." } , ab ) , db = v ( "DWLoop" , "condition" , { $documentation : "Base class for do/while statements" , $propdoc : { condition : "[AST_Node] the loop condition. Should not be instanceof AST_Statement" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . condition . _walk ( a ) , this . body . _walk ( a ) } ) } } , cb ) , eb = v ( "Do" , null , { $documentation : "A `do` statement" } , db ) , fb = v ( "While" , null , { $documentation : "A `while` statement" } , db ) , gb = v ( "For" , "init condition step" , { $documentation : "A `for` statement" , $propdoc : { init : "[AST_Node?] the `for` initialization code, or null if empty" , condition : "[AST_Node?] the `for` termination clause, or null if empty" , step : "[AST_Node?] the `for` update clause, or null if empty" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . init && this . init . _walk ( a ) , this . condition && this . condition . _walk ( a ) , this . step && this . step . _walk ( a ) , this . body . _walk ( a ) } ) } } , cb ) , hb = v ( "ForIn" , "init name object" , { $documentation : "A `for ... in` statement" , $propdoc : { init : "[AST_Node] the `for/in` initialization code" , name : "[AST_SymbolRef?] the loop variable, only if `init` is AST_Var" , object : "[AST_Node] the object that we're looping through" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . init . _walk ( a ) , this . object . _walk ( a ) , this . body . _walk ( a ) } ) } } , cb ) , ib = v ( "With" , "expression" , { $documentation : "A `with` statement" , $propdoc : { expression : "[AST_Node] the `with` expression" } , _walk : function ( a ) { return a . _visit ( this , function ( ) { this . expression . _walk ( a ) , this . body . _walk ( a ) } ) } } , ab ) , jb = v ( "Scope" , "directives variables functions uses_with uses_eval parent_scope enclosed cname" , { $documentation : "Base class for all statements introducing a lexical scope" , $propdoc : { directives : "[string*/S] an array of directives declared in this scope" , variables : "[Object/S] a map of name -> SymbolDef for all variables/functions defined in this scope" , functions : "[Object/S] like `variables`, but only lists function declarations" , uses _with : "[boolean/S] tells whether this scope uses the `with` statement" , uses _eval : "[boolean/S] tells whether this scope contains a direct call to the global `eval`" , parent _scope : "[AST_Scope?/S] link to the parent scope" , enclosed : "[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes" , cname : " [ integer /
} ) , jb . DEFMETHOD ( "next_mangled" , function ( a ) { var b = this . enclosed ; a : for ( ; ; ) { var c = Tc ( ++ this . cname ) ; if ( D ( c ) && ! ( a . except . indexOf ( c ) >= 0 ) ) { for ( var d = b . length ; -- d >= 0 ; ) { var e = b [ d ] , f = e . mangled _name || e . unmangleable ( a ) && e . name ; if ( c == f ) continue a } return c } } } ) , nb . DEFMETHOD ( "next_mangled" , function ( a , b ) { for ( var c = b . orig [ 0 ] instanceof dc && this . name && this . name . definition ( ) ; ; ) { var d = lb . prototype . next _mangled . call ( this , a , b ) ; if ( ! c || c . mangled _name != d ) return d } } ) , jb . DEFMETHOD ( "references" , function ( a ) { return a instanceof $b && ( a = a . definition ( ) ) , this . enclosed . indexOf ( a ) < 0 ? null : a } ) , $b . DEFMETHOD ( "unmangleable" , function ( a ) { return this . definition ( ) . unmangleable ( a ) } ) , _b . DEFMETHOD ( "unmangleable" , function ( ) { return ! 0 } ) , hc . DEFMETHOD ( "unmangleable" , function ( ) { return ! 1 } ) , $b . DEFMETHOD ( "unreferenced" , function ( ) { return 0 == this . definition ( ) . references . length && ! ( this . scope . uses _eval || this . scope . uses _with ) } ) , $b . DEFMETHOD ( "undeclared" , function ( ) { return this . definition ( ) . undeclared } ) , jc . DEFMETHOD ( "undeclared" , function ( ) { return ! 1 } ) , hc . DEFMETHOD ( "undeclared" , function ( ) { return ! 1 } ) , $b . DEFMETHOD ( "definition" , function ( ) { return this . thedef } ) , $b . DEFMETHOD ( "global" , function ( ) { return this . definition ( ) . global } ) , kb . DEFMETHOD ( "_default_mangler_options" , function ( a ) { return j ( a , { except : [ ] , eval : ! 1 , sort : ! 1 , toplevel : ! 1 , screw _ie8 : ! 1 } ) } ) , kb . DEFMETHOD ( "mangle_names" , function ( a ) { a = this . _default _mangler _options ( a ) ; var b = - 1 , c = [ ] , d = new x ( function ( e , f ) { if ( e instanceof bb ) { var g = b ; return f ( ) , b = g , ! 0 } if ( e instanceof jb ) { var h = ( d . parent ( ) , [ ] ) ; return e . variables . each ( function ( b ) { a . except . indexOf ( b . name ) < 0 && h . push ( b ) } ) , a . sort && h . sort ( function ( a , b ) { return b . references . length - a . references . length } ) , void c . push . apply ( c , h ) } if ( e instanceof hc ) { var i ; do i = Tc ( ++ b ) ; while ( ! D ( i ) ) ; return e . mangled _name = i , ! 0 } return a . screw _ie8 && e instanceof gc ? void c . push ( e . definition ( ) ) : void 0 } ) ; this . walk ( d ) , c . forEach ( function ( b ) { b . mangle ( a ) } ) } ) , kb . DEFMETHOD ( "compute_char_frequency" , function ( a ) { a = this . _default _mangler _options ( a ) ; var b = new x ( function ( b ) { b instanceof lc ? Tc . consider ( b . print _to _string ( ) ) : b instanceof rb ? Tc . consider ( "return" ) : b instanceof sb ? Tc . consider ( "throw" ) : b instanceof vb ? Tc . consider ( "continue" ) : b instanceof ub ? Tc . consider ( "break" ) : b instanceof W ? Tc . consider ( "debugger" ) : b instanceof X ? Tc . consider ( b . value ) : b instanceof fb ? Tc . consider ( "while" ) : b instanceof eb ? Tc . consider ( "do while" ) : b instanceof wb ? ( Tc . consider ( "if" ) , b . alternative && Tc . consider ( "else" ) ) : b instanceof Fb ? Tc . consider ( "var" ) : b instanceof Gb ? Tc . consider ( "const" ) : b instanceof lb ? Tc . consider ( "function" ) : b instanceof gb ? Tc . consider ( "for" ) : b instanceof hb ? Tc . consider ( "for in" ) : b instanceof xb ? Tc . consider ( "switch" ) : b instanceof Ab ? Tc . consider ( "case" ) : b instanceof zb ? Tc . consider ( "default" ) : b instanceof ib ? Tc . consider ( "with" ) : b instanceof Yb ? Tc . consider ( "set" + b . key ) : b instanceof Zb ? Tc . consider ( "get" + b . key ) : b instanceof Xb ? Tc . consider ( b . key ) : b instanceof Jb ? Tc . consider ( "new" ) : b instanceof kc ? Tc . consider ( "this" ) : b instanceof Bb ? Tc . consider ( "try" ) : b instanceof Cb ? Tc . consider ( "catch" ) : b instanceof Db ? Tc . consider ( "finally" ) : b instanceof $b && b . unmangleable ( a ) ? Tc . consider ( b . name ) : b instanceof Ob || b instanceof Rb ? Tc . consider ( b . operator ) : b instanceof Mb && Tc . consider ( b . property ) } ) ; this . walk ( b ) , Tc . sort ( ) } ) ; var Tc = function ( ) { function a ( ) { d = Object . create ( null ) , c = e . split ( "" ) . map ( function ( a ) { return a . charCodeAt ( 0 ) } ) , c . forEach ( function ( a ) { d [ a ] = 0 } ) } function b ( a ) { var b = "" , d = 54 ; do b += String . fromCharCode ( c [ a % d ] ) , a = Math . floor ( a / d ) , d = 64 ; while ( a > 0 ) ; return b } var c , d , e = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_0123456789" ; return b . consider = function ( a ) { for ( var b = a . length ; -- b >= 0 ; ) { var c = a . charCodeAt ( b ) ; c in d && ++ d [ c ] } } , b . sort = function ( ) { c = p ( c , function ( a , b ) { return z ( a ) && ! z ( b ) ? 1 : z ( b ) && ! z ( a ) ? - 1 : d [ b ] - d [ a ] } ) } , b . reset = a , a ( ) , b . get = function ( ) { return c } , b . freq = function ( ) { return d } , b } ( ) ; kb . DEFMETHOD ( "scope_warnings" , function ( a ) { a = j ( a , { undeclared : ! 1 , unreferenced : ! 0 , assign _to _global : ! 0 , func _arguments : ! 0 , nested _defuns : ! 0 , eval : ! 0 } ) ; var b = new x ( function ( c ) { if ( a . undeclared && c instanceof ic && c . undeclared ( ) && U . warn ( "Undeclared symbol: {name} [{file}:{line},{col}]" , { name : c . name , file : c . sta
if ( e instanceof Eb && ! ( j . parent ( ) instanceof hb ) ) { var m = e . definitions . filter ( function ( b ) { if ( f ( b . name . definition ( ) , d ) ) return ! 0 ; var c = { name : b . name . name , file : b . name . start . file , line : b . name . start . line , col : b . name . start . col } ; return b . value && b . value . has _side _effects ( a ) ? ( b . _unused _side _effects = ! 0 , a . warn ( "Side effects in initialization of unused variable {name} [{file}:{line},{col}]" , c ) , ! 0 ) : ( a . warn ( "Dropping unused variable {name} [{file}:{line},{col}]" , c ) , ! 1 ) } ) ; m = p ( m , function ( a , b ) { return ! a . value && b . value ? - 1 : ! b . value && a . value ? 1 : 0 } ) ; for ( var n = [ ] , k = 0 ; k < m . length ; ) { var o = m [ k ] ; o . _unused _side _effects ? ( n . push ( o . value ) , m . splice ( k , 1 ) ) : ( n . length > 0 && ( n . push ( o . value ) , o . value = Kb . from _array ( n ) , n = [ ] ) , ++ k ) } return n = n . length > 0 ? b ( $ , e , { body : [ b ( Y , e , { body : Kb . from _array ( n ) } ) ] } ) : null , 0 != m . length || n ? 0 == m . length ? n : ( e . definitions = m , n && ( n . body . unshift ( e ) , e = n ) , e ) : b ( _ , e ) } if ( e instanceof gb && ( g ( e , this ) , e . init instanceof $ ) ) { var q = e . init . body . slice ( 0 , - 1 ) ; return e . init = e . init . body . slice ( - 1 ) [ 0 ] . body , q . push ( e ) , h ? S . splice ( q ) : b ( $ , e , { body : q } ) } return e instanceof jb && e !== c ? e : void 0 } ) ; c . transform ( j ) } } ) , jb . DEFMETHOD ( "hoist_declarations" , function ( a ) { var c = a . option ( "hoist_funs" ) , d = a . option ( "hoist_vars" ) , e = this ; if ( c || d ) { var f = [ ] , h = [ ] , i = new u , j = 0 , k = 0 ; e . walk ( new x ( function ( a ) { return a instanceof jb && a !== e ? ! 0 : a instanceof Fb ? ( ++ k , ! 0 ) : void 0 } ) ) , d = d && k > 1 ; var l = new N ( function ( a ) { if ( a !== e ) { if ( a instanceof X ) return f . push ( a ) , b ( _ , a ) ; if ( a instanceof ob && c ) return h . push ( a ) , b ( _ , a ) ; if ( a instanceof Fb && d ) { a . definitions . forEach ( function ( a ) { i . set ( a . name . name , a ) , ++ j } ) ; var g = a . to _assignments ( ) , k = l . parent ( ) ; return k instanceof hb && k . init === a ? null == g ? a . definitions [ 0 ] . name : g : k instanceof gb && k . init === a ? g : g ? b ( Y , a , { body : g } ) : b ( _ , a ) } if ( a instanceof jb ) return a } } ) ; if ( e = e . transform ( l ) , j > 0 ) { var m = [ ] ; if ( i . each ( function ( a , b ) { e instanceof lb && g ( function ( b ) { return b . name == a . name . name } , e . argnames ) ? i . del ( b ) : ( a = a . clone ( ) , a . value = null , m . push ( a ) , i . set ( b , a ) ) } ) , m . length > 0 ) { for ( var n = 0 ; n < e . body . length ; ) { if ( e . body [ n ] instanceof Y ) { var p , q , r = e . body [ n ] . body ; if ( r instanceof Tb && "=" == r . operator && ( p = r . left ) instanceof $b && i . has ( p . name ) ) { var s = i . get ( p . name ) ; if ( s . value ) break ; s . value = r . right , o ( m , s ) , m . push ( s ) , e . body . splice ( n , 1 ) ; continue } if ( r instanceof Kb && ( q = r . car ) instanceof Tb && "=" == q . operator && ( p = q . left ) instanceof $b && i . has ( p . name ) ) { var s = i . get ( p . name ) ; if ( s . value ) break ; s . value = q . right , o ( m , s ) , m . push ( s ) , e . body [ n ] . body = r . cdr ; continue } } if ( e . body [ n ] instanceof _ ) e . body . splice ( n , 1 ) ; else { if ( ! ( e . body [ n ] instanceof $ ) ) break ; var t = [ n , 1 ] . concat ( e . body [ n ] . body ) ; e . body . splice . apply ( e . body , t ) } } m = b ( Fb , e , { definitions : m } ) , h . push ( m ) } } e . body = f . concat ( h , e . body ) } return e } ) , a ( Y , function ( a , c ) { return c . option ( "side_effects" ) && ! a . body . has _side _effects ( c ) ? ( c . warn ( "Dropping side-effect-free statement [{file}:{line},{col}]" , a . start ) , b ( _ , a ) ) : a } ) , a ( db , function ( a , c ) { var d = a . condition . evaluate ( c ) ; if ( a . condition = d [ 0 ] , ! c . option ( "loops" ) ) return a ; if ( d . length > 1 ) { if ( d [ 1 ] ) return b ( gb , a , { body : a . body } ) ; if ( a instanceof fb && c . option ( "dead_code" ) ) { var e = [ ] ; return j ( c , a . body , e ) , b ( $ , a , { body : e } ) } } return a } ) , a ( fb , function ( a , c ) { return c . option ( "loops" ) ? ( a = db . prototype . optimize . call ( a , c ) , a instanceof fb && ( r ( a , c ) , a = b ( gb , a , a ) . transform ( c ) ) , a ) : a } ) , a ( gb , function ( a , c ) { var d = a . condition ; if ( d && ( d = d . evaluate ( c ) , a . condition = d [ 0 ] ) , ! c . option ( "loops" ) ) return a ; if ( d && d . length > 1 && ! d [ 1 ] && c . option ( "dead_code" ) ) { var e = [ ] ; return a . init instanceof V ? e . push ( a . init ) : a . init && e . push ( b ( Y , a . init , { body : a . init } ) ) , j ( c , a . body , e ) , b ( $ , a , { body : e } ) } return r ( a , c ) , a } ) , a ( wb , function ( a , c ) { if ( ! c . option ( "conditionals" ) ) return a ; var d = a . condition . evaluate ( c ) ; if ( a . condition = d [ 0 ] , d . length > 1 ) if ( d [ 1 ] ) { if ( c . warn ( "Condition always true [{file}:{line},{col}]" , a . condition . start ) , c . option ( "dead_code" ) ) { var f = [ ] ; return a . alternative && j ( c , a . alternative , f ) , f . push ( a . body ) , b ( $ , a , { body : f } ) . transform ( c ) } } else if ( c . warn ( "Condition always false [{file}:{line},{col}]" , a . condition . start ) , c . option ( "dead_code" ) ) { var f = [ ] ; return j ( c , a . body , f ) , a . alternative && f . push ( a . alternative ) , b ( $ , a , { body : f } ) . transform ( c ) } e ( a . alternative ) && ( a . alternative = null ) ; var g = a . condition . negate ( c ) , h = k ( a . condition , g ) === g ; if ( a . alternative && h ) { h = ! 1 , a . condition =
2014-02-11 23:20:01 +01:00
var saveAs = saveAs || navigator . msSaveOrOpenBlob && navigator . msSaveOrOpenBlob . bind ( navigator ) || function ( a ) { "use strict" ; if ( ! /MSIE [1-9]\./ . test ( navigator . userAgent ) ) { var b = a . document , c = function ( ) { return a . URL || a . webkitURL || a } , d = a . URL || a . webkitURL || a , e = b . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) , f = ! a . externalHost && "download" in e , g = a . webkitRequestFileSystem , h = a . requestFileSystem || g || a . mozRequestFileSystem , i = function ( b ) { ( a . setImmediate || a . setTimeout ) ( function ( ) { throw b } , 0 ) } , j = "application/octet-stream" , k = 0 , l = [ ] , m = function ( ) { for ( var a = l . length ; a -- ; ) { var b = l [ a ] ; "string" == typeof b ? d . revokeObjectURL ( b ) : b . remove ( ) } l . length = 0 } , n = function ( a , b , c ) { b = [ ] . concat ( b ) ; for ( var d = b . length ; d -- ; ) { var e = a [ "on" + b [ d ] ] ; if ( "function" == typeof e ) try { e . call ( a , c || a ) } catch ( f ) { i ( f ) } } } , o = function ( d , i ) { var m , o , p , q = this , r = d . type , s = ! 1 , t = function ( ) { var a = c ( ) . createObjectURL ( d ) ; return l . push ( a ) , a } , u = function ( ) { n ( q , "writestart progress write writeend" . split ( " " ) ) } , v = function ( ) { ( s || ! m ) && ( m = t ( d ) ) , o ? o . location . href = m : window . open ( m , "_blank" ) , q . readyState = q . DONE , u ( ) } , w = function ( a ) { return function ( ) { return q . readyState !== q . DONE ? a . apply ( this , arguments ) : void 0 } } , x = { create : ! 0 , exclusive : ! 1 } ; if ( q . readyState = q . INIT , i || ( i = "download" ) , f ) { m = t ( d ) , b = a . document , e = b . createElementNS ( "http://www.w3.org/1999/xhtml" , "a" ) , e . href = m , e . download = i ; var y = b . createEvent ( "MouseEvents" ) ; return y . initMouseEvent ( "click" , ! 0 , ! 1 , a , 0 , 0 , 0 , 0 , 0 , ! 1 , ! 1 , ! 1 , ! 1 , 0 , null ) , e . dispatchEvent ( y ) , q . readyState = q . DONE , void u ( ) } return a . chrome && r && r !== j && ( p = d . slice || d . webkitSlice , d = p . call ( d , 0 , d . size , j ) , s = ! 0 ) , g && "download" !== i && ( i += ".download" ) , ( r === j || g ) && ( o = a ) , h ? ( k += d . size , void h ( a . TEMPORARY , k , w ( function ( a ) { a . root . getDirectory ( "saved" , x , w ( function ( a ) { var b = function ( ) { a . getFile ( i , x , w ( function ( a ) { a . createWriter ( w ( function ( b ) { b . onwriteend = function ( b ) { o . location . href = a . toURL ( ) , l . push ( a ) , q . readyState = q . DONE , n ( q , "writeend" , b ) } , b . onerror = function ( ) { var a = b . error ; a . code !== a . ABORT _ERR && v ( ) } , "writestart progress write abort" . split ( " " ) . forEach ( function ( a ) { b [ "on" + a ] = q [ "on" + a ] } ) , b . write ( d ) , q . abort = function ( ) { b . abort ( ) , q . readyState = q . DONE } , q . readyState = q . WRITING } ) , v ) } ) , v ) } ; a . getFile ( i , { create : ! 1 } , w ( function ( a ) { a . remove ( ) , b ( ) } ) , w ( function ( a ) { a . code === a . NOT _FOUND _ERR ? b ( ) : v ( ) } ) ) } ) , v ) } ) , v ) ) : void v ( ) } , p = o . prototype , q = function ( a , b ) { return new o ( a , b ) } ; return p . abort = function ( ) { var a = this ; a . readyState = a . DONE , n ( a , "abort" ) } , p . readyState = p . INIT = 0 , p . WRITING = 1 , p . DONE = 2 , p . error = p . onwritestart = p . onprogress = p . onwrite = p . onabort = p . onerror = p . onwriteend = null , a . addEventListener ( "unload" , m , ! 1 ) , q } } ( "undefined" != typeof self && self || "undefined" != typeof window && window || this . content ) ; "undefined" != typeof module && ( module . exports = saveAs ) ; / * !
2014-02-13 10:12:26 +01:00
* Bootstrap v3 . 1.1 ( http : //getbootstrap.com)
2014-02-11 23:20:01 +01:00
* Copyright 2011 - 2014 Twitter , Inc .
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* /
2014-05-13 04:53:12 +02:00
var _ _js = { "affix.js" : "/* ========================================================================\n * Bootstrap: affix.js v3.1.1\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2014 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n this.$window = $(window)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed =\n this.unpin =\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$window.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var scrollHeight = $(document).height()\n var scrollTop = this.$window.scrollTop()\n var position = this.$element.offset()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :\n offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :\n offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false\n\n if (this.affixed === affix) return\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger($.Event(affixType.replace('affix', 'affixed')))\n\n if (affix == 'bottom') {\n this.$element.offset({ top: scrollHeight - this.$element.height() - offsetBottom })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\" ] ' ) . each ( function ( ) { \ n var $spy = $ ( this ) \ n var data = $spy . data ( ) \ n \ n data . offset = data . offset || { } \ n \ n if ( data . offsetBottom ) data . offset . bottom = data . offsetBottom \ n if ( data . offsetTop ) data . offse
2014-02-11 23:20:01 +01:00
/ * !
2014-01-14 06:58:27 +01:00
* Bootstrap Customizer ( http : //getbootstrap.com/customize/)
2014-01-07 01:05:24 +01:00
* Copyright 2011 - 2014 Twitter , Inc .
2014-01-14 06:58:27 +01:00
*
2013-12-27 04:08:19 +01:00
* Licensed under the Creative Commons Attribution 3.0 Unported License . For
* details , see http : //creativecommons.org/licenses/by/3.0/.
2013-12-06 20:35:46 +01:00
* /
2014-03-28 19:11:30 +01:00
window . onload = function ( ) { function a ( a , b ) { throw $ ( '<div id="bsCustomizerAlert" class="bs-customizer-alert"><div class="container"><a href="#bsCustomizerAlert" data-dismiss="alert" class="close pull-right">×</a><p class="bs-customizer-alert-text"><span class="glyphicon glyphicon-warning-sign"></span>' + a + "</p>" + ( b . extract ? '<pre class="bs-customizer-alert-extract">' + b . extract . join ( "\n" ) + "</pre>" : "" ) + "</div></div>" ) . appendTo ( "body" ) . alert ( ) , b } function b ( a , b ) { var c = $ ( '<div class="bs-callout bs-callout-danger"><h4>Attention!</h4><p>' + a + "</p></div>" ) ; b ? c . appendTo ( ".bs-docs-container" ) : c . insertAfter ( ".bs-customize-download" ) } function c ( a ) { a = a . replace ( /[*+?^$.\[\]{}()|\\\/]/g , "\\$&" ) ; var b = location . search . match ( new RegExp ( "[?&]" + a + "=([^&]+)(&|$)" ) ) ; return b && decodeURIComponent ( b [ 1 ] . replace ( /\+/g , " " ) ) } function d ( b , c ) { var d = { description : "Bootstrap Customizer Config" , "public" : ! 0 , files : { "config.json" : { content : b } } } ; $ . ajax ( { url : "https://api.github.com/gists" , type : "POST" , dataType : "json" , data : JSON . stringify ( d ) } ) . success ( function ( a ) { var b = window . location . protocol + "//" + window . location . host , d = b + window . location . pathname + "?id=" + a . id ; history . replaceState ( ! 1 , document . title , d ) , c ( a . html _url , d ) } ) . error ( function ( b ) { try { a ( "<strong>Ruh roh!</strong> Could not save gist file, configuration not saved." , b ) } catch ( d ) { } c ( "<none>" , "<none>" ) } ) } function e ( ) { var a = { } ; $ ( "#less-variables-section input" ) . each ( function ( ) { $ ( this ) . val ( ) && ( a [ $ ( this ) . prev ( ) . text ( ) ] = $ ( this ) . val ( ) ) } ) ; var b = { vars : a , css : $ ( "#less-section input:checked" ) . map ( function ( ) { return this . value } ) . toArray ( ) , js : $ ( "#plugin-section input:checked" ) . map ( function ( ) { return this . value } ) . toArray ( ) } ; if ( ! $ . isEmptyObject ( b . vars ) || b . css . length || b . js . length ) return b } function f ( ) { var b = c ( "id" ) ; b && $ . ajax ( { url : "https://api.github.com/gists/" + b , type : "GET" , dataType : "json" } ) . success ( function ( a ) { var b = JSON . parse ( a . files [ "config.json" ] . content ) ; if ( b . js && $ ( "#plugin-section input" ) . each ( function ( ) { $ ( this ) . prop ( "checked" , ~ $ . inArray ( this . value , b . js ) ) } ) , b . css && $ ( "#less-section input" ) . each ( function ( ) { $ ( this ) . prop ( "checked" , ~ $ . inArray ( this . value , b . css ) ) } ) , b . vars ) for ( var c in b . vars ) $ ( 'input[data-var="' + c + '"]' ) . val ( b . vars [ c ] ) } ) . error ( function ( b ) { a ( "Error fetching bootstrap config file" , b ) } ) } function g ( b , c , d , e , f ) { if ( ! b && ! c ) return a ( "<strong>Ruh roh!</strong> No Bootstrap files selected." , new Error ( "no Bootstrap" ) ) ; var g = new JSZip ; if ( b ) { var h = g . folder ( "css" ) ; for ( var i in b ) h . file ( i , b [ i ] ) } if ( c ) { var j = g . folder ( "js" ) ; for ( var k in c ) j . file ( k , c [ k ] ) } if ( d ) { var l = g . folder ( "fonts" ) ; for ( var m in d ) l . file ( m , d [ m ] , { base64 : ! 0 } ) } e && g . file ( "config.json" , e ) ; var n = g . generate ( { type : "blob" } ) ; f ( n ) } function h ( a ) { var b = "" ; for ( var c in a ) b += c + ": " + a [ c ] + ";\n" ; return b + "\n\n" } function i ( ) { var a = $ ( '#less-section [value="glyphicons.less"]:checked' ) ; return a . length ? _ _fonts : void 0 } function j ( a ) { var b = /^@import \"(.*?)\";$/ , c = _ _less [ a ] . split ( "\n" ) , d = [ ] ; return $ . each ( c , function ( a , c ) { var e = b . exec ( c ) ; if ( e ) { var f = e [ 1 ] , g = j ( f ) ; $ . each ( g , function ( a , b ) { - 1 === $ . inArray ( b , d ) && d . push ( b ) } ) , d . push ( f ) } } ) , d } function k ( a , b , c ) { var d = _ _less [ a ] , e = j ( a ) ; return $ . each ( e , function ( a , e ) { var f = b [ e ] ; ( f || null == f ) && ( d += _ _less [ e ] ) , "variables.less" === e && c && ( d += h ( c ) ) } ) , d = d . replace ( /@import[^\n]*/gi , "" ) } function l ( b , c , d ) { var e = new less . Parser ( { paths : [ "variables.less" , "mixins.less" ] , optimization : 0 , filename : c + ".css" } ) ; e . parse ( b , function ( b , e ) { return b ? a ( "<strong>Ruh roh!</strong> Could not parse less files." , b ) : ( d [ c + ".css" ] = p + e . toCSS ( ) , void ( d [ c + ".min.css" ] = p + e . toCSS ( { compress : ! 0 } ) ) ) } ) } function m ( b ) { var c = ! 1 , d = { } ; if ( $ ( "#less-section input" ) . each ( function ( ) { var a = $ ( this ) , b = a . is ( ":checked" ) ; d [ a . val ( ) ] = b , c = c || b } ) , ! c ) return ! 1 ; var e = { } , f = { } ; $ ( "#less-variables-section input" ) . each ( function ( ) { $ ( this ) . val ( ) && ( f [ $ ( this ) . prev ( ) . text ( ) ] = $ ( this ) . val ( ) ) } ) ; var g = b + k ( "bootstrap.less" , d , f ) , h = b + k ( "theme.less" , d , f ) ; try { l ( g , "bootstrap" , e ) , l ( h , "bootstrap-theme" , e ) } catch ( i ) { return a ( "<strong>Ruh roh!</strong> Could not parse less files." , i ) } return e } function n ( a ) { var b = UglifyJS . parse ( a ) ; b . figure _out _scope ( ) ; var c = UglifyJS . Compressor ( ) , d = b . transform ( c ) ; d . figure _out _scope ( ) , d . compute _char _frequency ( ) , d . mangle _name