! function ( f ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = f ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , f ) ; else { var g ; g = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , g . io = f ( ) } } ( function ( ) { var define ; return function e ( t , n , r ) { function s ( o , u ) { if ( ! n [ o ] ) { if ( ! t [ o ] ) { var a = "function" == typeof require && 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 } for ( var i = "function" == typeof require && require , o = 0 ; o < r . length ; o ++ ) s ( r [ o ] ) ; return s } ( { 1 : [ function ( _dereq _ , module , exports ) { function lookup ( uri , opts ) { "object" == typeof uri && ( opts = uri , uri = void 0 ) , opts = opts || { } ; var io , parsed = url ( uri ) , source = parsed . source , id = parsed . id , path = parsed . path , sameNamespace = cache [ id ] && path in cache [ id ] . nsps , newConnection = opts . forceNew || opts [ "force new connection" ] || ! 1 === opts . multiplex || sameNamespace ; return newConnection ? ( debug ( "ignoring socket cache for %s" , source ) , io = Manager ( source , opts ) ) : ( cache [ id ] || ( debug ( "new io instance for %s" , source ) , cache [ id ] = Manager ( source , opts ) ) , io = cache [ id ] ) , io . socket ( parsed . path ) } var url = _dereq _ ( "./url" ) , parser = _dereq _ ( "socket.io-parser" ) , Manager = _dereq _ ( "./manager" ) , debug = _dereq _ ( "debug" ) ( "socket.io-client" ) ; module . exports = exports = lookup ; var cache = exports . managers = { } ; exports . protocol = parser . protocol , exports . connect = lookup , exports . Manager = _dereq _ ( "./manager" ) , exports . Socket = _dereq _ ( "./socket" ) } , { "./manager" : 2 , "./socket" : 4 , "./url" : 5 , debug : 14 , "socket.io-parser" : 40 } ] , 2 : [ function ( _dereq _ , module , exports ) { function Manager ( uri , opts ) { return this instanceof Manager ? ( uri && "object" == typeof uri && ( opts = uri , uri = void 0 ) , opts = opts || { } , opts . path = opts . path || "/socket.io" , this . nsps = { } , this . subs = [ ] , this . opts = opts , this . reconnection ( opts . reconnection !== ! 1 ) , this . reconnectionAttempts ( opts . reconnectionAttempts || 1 / 0 ) , this . reconnectionDelay ( opts . reconnectionDelay || 1e3 ) , this . reconnectionDelayMax ( opts . reconnectionDelayMax || 5e3 ) , this . randomizationFactor ( opts . randomizationFactor || . 5 ) , this . backoff = new Backoff ( { min : this . reconnectionDelay ( ) , max : this . reconnectionDelayMax ( ) , jitter : this . randomizationFactor ( ) } ) , this . timeout ( null == opts . timeout ? 2e4 : opts . timeout ) , this . readyState = "closed" , this . uri = uri , this . connecting = [ ] , this . lastPing = null , this . encoding = ! 1 , this . packetBuffer = [ ] , this . encoder = new parser . Encoder , this . decoder = new parser . Decoder , this . autoConnect = opts . autoConnect !== ! 1 , void ( this . autoConnect && this . open ( ) ) ) : new Manager ( uri , opts ) } var eio = _dereq _ ( "engine.io-client" ) , Socket = _dereq _ ( "./socket" ) , Emitter = _dereq _ ( "component-emitter" ) , parser = _dereq _ ( "socket.io-parser" ) , on = _dereq _ ( "./on" ) , bind = _dereq _ ( "component-bind" ) , debug = _dereq _ ( "debug" ) ( "socket.io-client:manager" ) , indexOf = _dereq _ ( "indexof" ) , Backoff = _dereq _ ( "backo2" ) , has = Object . prototype . hasOwnProperty ; module . exports = Manager , Manager . prototype . emitAll = function ( ) { this . emit . apply ( this , arguments ) ; for ( var nsp in this . nsps ) has . call ( this . nsps , nsp ) && this . nsps [ nsp ] . emit . apply ( this . nsps [ nsp ] , arguments ) } , Manager . prototype . updateSocketIds = function ( ) { for ( var nsp in this . nsps ) has . call ( this . nsps , nsp ) && ( this . nsps [ nsp ] . id = this . engine . id ) } , Emitter ( Manager . prototype ) , Manager . prototype . reconnection = function ( v ) { return arguments . length ? ( this . _reconnection = ! ! v , this ) : this . _reconnection } , Manager . prototype . reconnectionAttempts = function ( v ) { return arguments . length ? ( this . _reconnectionAttempts = v , this ) : this . _reconnectionAttempts } , Manager . prototype . reconnectionDelay = function ( v ) { return arguments . length ? ( this . _reconnectionDelay = v , this . backoff && this . backoff . setMin ( v ) , this ) : this . _reconnectionDelay } , Manager . prototype . randomizationFactor = function ( v ) { return arguments . length ? ( this . _randomizationFactor = v , this . backoff && this . backoff . setJitter ( v ) , this ) : this . _randomizationFactor } , Manager . prototype . reconnectionDelayMax = function ( v ) { return arguments . length ? ( this . _reconnectionDelayMax = v , this . backoff && this . backoff . setMax ( v ) , this ) : this . _reconnectionDelayMax } , Manager . proto
this . onError ( err ) ; break ; case "message" : this . emit ( "data" , packet . data ) , this . emit ( "message" , packet . data ) } else debug ( 'packet received with socket readyState "%s"' , this . readyState ) } , Socket . prototype . onHandshake = function ( data ) { this . emit ( "handshake" , data ) , this . id = data . sid , this . transport . query . sid = data . sid , this . upgrades = this . filterUpgrades ( data . upgrades ) , this . pingInterval = data . pingInterval , this . pingTimeout = data . pingTimeout , this . onOpen ( ) , "closed" != this . readyState && ( this . setPing ( ) , this . removeListener ( "heartbeat" , this . onHeartbeat ) , this . on ( "heartbeat" , this . onHeartbeat ) ) } , Socket . prototype . onHeartbeat = function ( timeout ) { clearTimeout ( this . pingTimeoutTimer ) ; var self = this ; self . pingTimeoutTimer = setTimeout ( function ( ) { "closed" != self . readyState && self . onClose ( "ping timeout" ) } , timeout || self . pingInterval + self . pingTimeout ) } , Socket . prototype . setPing = function ( ) { var self = this ; clearTimeout ( self . pingIntervalTimer ) , self . pingIntervalTimer = setTimeout ( function ( ) { debug ( "writing ping packet - expecting pong within %sms" , self . pingTimeout ) , self . ping ( ) , self . onHeartbeat ( self . pingTimeout ) } , self . pingInterval ) } , Socket . prototype . ping = function ( ) { var self = this ; this . sendPacket ( "ping" , function ( ) { self . emit ( "ping" ) } ) } , Socket . prototype . onDrain = function ( ) { this . writeBuffer . splice ( 0 , this . prevBufferLen ) , this . prevBufferLen = 0 , 0 === this . writeBuffer . length ? this . emit ( "drain" ) : this . flush ( ) } , Socket . prototype . flush = function ( ) { "closed" != this . readyState && this . transport . writable && ! this . upgrading && this . writeBuffer . length && ( debug ( "flushing %d packets in socket" , this . writeBuffer . length ) , this . transport . send ( this . writeBuffer ) , this . prevBufferLen = this . writeBuffer . length , this . emit ( "flush" ) ) } , Socket . prototype . write = Socket . prototype . send = function ( msg , options , fn ) { return this . sendPacket ( "message" , msg , options , fn ) , this } , Socket . prototype . sendPacket = function ( type , data , options , fn ) { if ( "function" == typeof data && ( fn = data , data = void 0 ) , "function" == typeof options && ( fn = options , options = null ) , "closing" != this . readyState && "closed" != this . readyState ) { options = options || { } , options . compress = ! 1 !== options . compress ; var packet = { type : type , data : data , options : options } ; this . emit ( "packetCreate" , packet ) , this . writeBuffer . push ( packet ) , fn && this . once ( "flush" , fn ) , this . flush ( ) } } , Socket . prototype . close = function ( ) { function close ( ) { self . onClose ( "forced close" ) , debug ( "socket closing - telling transport to close" ) , self . transport . close ( ) } function cleanupAndClose ( ) { self . removeListener ( "upgrade" , cleanupAndClose ) , self . removeListener ( "upgradeError" , cleanupAndClose ) , close ( ) } function waitForUpgrade ( ) { self . once ( "upgrade" , cleanupAndClose ) , self . once ( "upgradeError" , cleanupAndClose ) } if ( "opening" == this . readyState || "open" == this . readyState ) { this . readyState = "closing" ; var self = this ; this . writeBuffer . length ? this . once ( "drain" , function ( ) { this . upgrading ? waitForUpgrade ( ) : close ( ) } ) : this . upgrading ? waitForUpgrade ( ) : close ( ) } return this } , Socket . prototype . onError = function ( err ) { debug ( "socket error %j" , err ) , Socket . priorWebsocketSuccess = ! 1 , this . emit ( "error" , err ) , this . onClose ( "transport error" , err ) } , Socket . prototype . onClose = function ( reason , desc ) { if ( "opening" == this . readyState || "open" == this . readyState || "closing" == this . readyState ) { debug ( 'socket close with reason: "%s"' , reason ) ; var self = this ; clearTimeout ( this . pingIntervalTimer ) , clearTimeout ( this . pingTimeoutTimer ) , this . transport . removeAllListeners ( "close" ) , this . transport . close ( ) , this . transport . removeAllListeners ( ) , this . readyState = "closed" , this . id = null , this . emit ( "close" , reason , desc ) , self . writeBuffer = [ ] , self . prevBufferLen = 0 } } , Socket . prototype . filterUpgrades = function ( upgrades ) { for ( var filteredUpgrades = [ ] , i = 0 , j = upgrades . length ; i < j ; i ++ ) ~ index ( this . transports , upgrades [ i ] ) && filteredUpgrades . push ( upgrades [ i ] ) ; return filteredUpgrades } } ) . call ( this , "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : { } ) } , { "./transport" : 19 , "./transports" : 20 , "component-emitter" : 26 , debug : 14 , "engine.io-parser" : 27 , indexof : 32 , parsejson : 36 , parseqs : 37 , parseuri : 38 } ] , 19 : [ function ( _dereq _ , module , exports ) { function Transport ( opts ) { this . path = opts . path , this . hostname = opts . hostname , this . port = opts . port , this . secure = opts . secure , this
function _hasBinary ( obj ) { if ( ! obj ) return ! 1 ; if ( global . Buffer && global . Buffer . isBuffer ( obj ) || global . ArrayBuffer && obj instanceof ArrayBuffer || global . Blob && obj instanceof Blob || global . File && obj instanceof File ) return ! 0 ; if ( isArray ( obj ) ) { for ( var i = 0 ; i < obj . length ; i ++ ) if ( _hasBinary ( obj [ i ] ) ) return ! 0 } else if ( obj && "object" == typeof obj ) { obj . toJSON && ( obj = obj . toJSON ( ) ) ; for ( var key in obj ) if ( Object . prototype . hasOwnProperty . call ( obj , key ) && _hasBinary ( obj [ key ] ) ) return ! 0 } return ! 1 } return _hasBinary ( data ) } var isArray = _dereq _ ( "isarray" ) ; module . exports = hasBinary } ) . call ( this , "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : { } ) } , { isarray : 33 } ] , 30 : [ function ( _dereq _ , module , exports ) { ( function ( global ) { function hasBinary ( data ) { function _hasBinary ( obj ) { if ( ! obj ) return ! 1 ; if ( global . Buffer && global . Buffer . isBuffer && global . Buffer . isBuffer ( obj ) || global . ArrayBuffer && obj instanceof ArrayBuffer || global . Blob && obj instanceof Blob || global . File && obj instanceof File ) return ! 0 ; if ( isArray ( obj ) ) { for ( var i = 0 ; i < obj . length ; i ++ ) if ( _hasBinary ( obj [ i ] ) ) return ! 0 } else if ( obj && "object" == typeof obj ) { obj . toJSON && "function" == typeof obj . toJSON && ( obj = obj . toJSON ( ) ) ; for ( var key in obj ) if ( Object . prototype . hasOwnProperty . call ( obj , key ) && _hasBinary ( obj [ key ] ) ) return ! 0 } return ! 1 } return _hasBinary ( data ) } var isArray = _dereq _ ( "isarray" ) ; module . exports = hasBinary } ) . call ( this , "undefined" != typeof self ? self : "undefined" != typeof window ? window : "undefined" != typeof global ? global : { } ) } , { isarray : 33 } ] , 31 : [ function ( _dereq _ , module , exports ) { try { module . exports = "undefined" != typeof XMLHttpRequest && "withCredentials" in new XMLHttpRequest } catch ( err ) { module . exports = ! 1 } } , { } ] , 32 : [ function ( _dereq _ , module , exports ) { var indexOf = [ ] . indexOf ; module . exports = function ( arr , obj ) { if ( indexOf ) return arr . indexOf ( obj ) ; for ( var i = 0 ; i < arr . length ; ++ i ) if ( arr [ i ] === obj ) return i ; return - 1 } } , { } ] , 33 : [ function ( _dereq _ , module , exports ) { module . exports = Array . isArray || function ( arr ) { return "[object Array]" == Object . prototype . toString . call ( arr ) } } , { } ] , 34 : [ function ( _dereq _ , module , exports ) { ( function ( global ) { ( function ( ) { function runInContext ( context , exports ) { function has ( name ) { if ( has [ name ] !== undef ) return has [ name ] ; var isSupported ; if ( "bug-string-char-index" == name ) isSupported = "a" != "a" [ 0 ] ; else if ( "json" == name ) isSupported = has ( "json-stringify" ) && has ( "json-parse" ) ; else { var value , serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}' ; if ( "json-stringify" == name ) { var stringify = exports . stringify , stringifySupported = "function" == typeof stringify && isExtended ; if ( stringifySupported ) { ( value = function ( ) { return 1 } ) . toJSON = value ; try { stringifySupported = "0" === stringify ( 0 ) && "0" === stringify ( new Number ) && '""' == stringify ( new String ) && stringify ( getClass ) === undef && stringify ( undef ) === undef && stringify ( ) === undef && "1" === stringify ( value ) && "[1]" == stringify ( [ value ] ) && "[null]" == stringify ( [ undef ] ) && "null" == stringify ( null ) && "[null,null,null]" == stringify ( [ undef , getClass , null ] ) && stringify ( { a : [ value , ! 0 , ! 1 , null , "\0\b\n\f\r\t" ] } ) == serialized && "1" === stringify ( null , value ) && "[\n 1,\n 2\n]" == stringify ( [ 1 , 2 ] , null , 1 ) && '"-271821-04-20T00:00:00.000Z"' == stringify ( new Date ( ( - 864e13 ) ) ) && '"+275760-09-13T00:00:00.000Z"' == stringify ( new Date ( 864e13 ) ) && '"-000001-01-01T00:00:00.000Z"' == stringify ( new Date ( ( - 621987552e5 ) ) ) && '"1969-12-31T23:59:59.999Z"' == stringify ( new Date ( ( - 1 ) ) ) } catch ( exception ) { stringifySupported = ! 1 } } isSupported = stringifySupported } if ( "json-parse" == name ) { var parse = exports . parse ; if ( "function" == typeof parse ) try { if ( 0 === parse ( "0" ) && ! parse ( ! 1 ) ) { value = parse ( serialized ) ; var parseSupported = 5 == value . a . length && 1 === value . a [ 0 ] ; if ( parseSupported ) { try { parseSupported = ! parse ( '"\t"' ) } catch ( exception ) { } if ( parseSupported ) try { parseSupported = 1 !== parse ( "01" ) } catch ( exception ) { } if ( parseSupported ) try { parseSupported = 1 !== parse ( "1." ) } catch ( exception ) { } } } } catch ( exception ) { parseSupported = ! 1 } isSupported = parseSupported } } return has [ name ] = ! ! isSupported } context || ( context = root . Object ( ) ) , exports || ( exports = root . Object ( ) ) ; var Number = context . Number || root . Number , String = context . String || root . String , Object = context . Object || root . Object , Date = context . Date || root . Date , SyntaxError = context . SyntaxError || roo
k /= f , r . style ( a , b , k + j ) ; while ( f !== ( f = h ( ) / i ) && 1 !== f && -- g ) } return c && ( k = + k || + i || 0 , e = c [ 1 ] ? k + ( c [ 1 ] + 1 ) * c [ 2 ] : + c [ 2 ] , d && ( d . unit = j , d . start = k , d . end = e ) ) , e } function fa ( a ) { var b , c = a . ownerDocument , d = a . nodeName , e = ea [ d ] ; return e ? e : ( b = c . body . appendChild ( c . createElement ( d ) ) , e = r . css ( b , "display" ) , b . parentNode . removeChild ( b ) , "none" === e && ( e = "block" ) , ea [ d ] = e , e ) } function ga ( a , b ) { for ( var c , d , e = [ ] , f = 0 , g = a . length ; f < g ; f ++ ) d = a [ f ] , d . style && ( c = d . style . display , b ? ( "none" === c && ( e [ f ] = V . get ( d , "display" ) || null , e [ f ] || ( d . style . display = "" ) ) , "" === d . style . display && ba ( d ) && ( e [ f ] = fa ( d ) ) ) : "none" !== c && ( e [ f ] = "none" , V . set ( d , "display" , c ) ) ) ; for ( f = 0 ; f < g ; f ++ ) null != e [ f ] && ( a [ f ] . style . display = e [ f ] ) ; return a } function la ( a , b ) { var c = "undefined" != typeof a . getElementsByTagName ? a . getElementsByTagName ( b || "*" ) : "undefined" != typeof a . querySelectorAll ? a . querySelectorAll ( b || "*" ) : [ ] ; return void 0 === b || b && r . nodeName ( a , b ) ? r . merge ( [ a ] , c ) : c } function ma ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) V . set ( a [ c ] , "globalEval" , ! b || V . get ( b [ c ] , "globalEval" ) ) } function oa ( a , b , c , d , e ) { for ( var f , g , h , i , j , k , l = b . createDocumentFragment ( ) , m = [ ] , n = 0 , o = a . length ; n < o ; n ++ ) if ( f = a [ n ] , f || 0 === f ) if ( "object" === r . type ( f ) ) r . merge ( m , f . nodeType ? [ f ] : f ) ; else if ( na . test ( f ) ) { for ( g = g || l . appendChild ( b . createElement ( "div" ) ) , h = ( ia . exec ( f ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , i = ka [ h ] || ka . _default , g . innerHTML = i [ 1 ] + r . htmlPrefilter ( f ) + i [ 2 ] , k = i [ 0 ] ; k -- ; ) g = g . lastChild ; r . merge ( m , g . childNodes ) , g = l . firstChild , g . textContent = "" } else m . push ( b . createTextNode ( f ) ) ; for ( l . textContent = "" , n = 0 ; f = m [ n ++ ] ; ) if ( d && r . inArray ( f , d ) > - 1 ) e && e . push ( f ) ; else if ( j = r . contains ( f . ownerDocument , f ) , g = la ( l . appendChild ( f ) , "script" ) , j && ma ( g ) , c ) for ( k = 0 ; f = g [ k ++ ] ; ) ja . test ( f . type || "" ) && c . push ( f ) ; return l } function ta ( ) { return ! 0 } function ua ( ) { return ! 1 } function va ( ) { try { return d . activeElement } catch ( a ) { } } function wa ( a , b , c , d , e , f ) { var g , h ; if ( "object" == typeof b ) { "string" != typeof c && ( d = d || c , c = void 0 ) ; for ( h in b ) wa ( a , h , c , d , b [ h ] , f ) ; return a } if ( null == d && null == e ? ( e = c , d = c = void 0 ) : null == e && ( "string" == typeof c ? ( e = d , d = void 0 ) : ( e = d , d = c , c = void 0 ) ) , e === ! 1 ) e = ua ; else if ( ! e ) return a ; return 1 === f && ( g = e , e = function ( a ) { return r ( ) . off ( a ) , g . apply ( this , arguments ) } , e . guid = g . guid || ( g . guid = r . guid ++ ) ) , a . each ( function ( ) { r . event . add ( this , b , e , d , c ) } ) } function Ca ( a , b ) { return r . nodeName ( a , "table" ) && r . nodeName ( 11 !== b . nodeType ? b : b . firstChild , "tr" ) ? a . getElementsByTagName ( "tbody" ) [ 0 ] || a : a } function Da ( a ) { return a . type = ( null !== a . getAttribute ( "type" ) ) + "/" + a . type , a } function Ea ( a ) { var b = Aa . exec ( a . type ) ; return b ? a . type = b [ 1 ] : a . removeAttribute ( "type" ) , a } function Fa ( a , b ) { var c , d , e , f , g , h , i , j ; if ( 1 === b . nodeType ) { if ( V . hasData ( a ) && ( f = V . access ( a ) , g = V . set ( b , f ) , j = f . events ) ) { delete g . handle , g . events = { } ; for ( e in j ) for ( c = 0 , d = j [ e ] . length ; c < d ; c ++ ) r . event . add ( b , e , j [ e ] [ c ] ) } W . hasData ( a ) && ( h = W . access ( a ) , i = r . extend ( { } , h ) , W . set ( b , i ) ) } } function Ga ( a , b ) { var c = b . nodeName . toLowerCase ( ) ; "input" === c && ha . test ( a . type ) ? b . checked = a . checked : "input" !== c && "textarea" !== c || ( b . defaultValue = a . defaultValue ) } function Ha ( a , b , c , d ) { b = g . apply ( [ ] , b ) ; var e , f , h , i , j , k , l = 0 , m = a . length , n = m - 1 , q = b [ 0 ] , s = r . isFunction ( q ) ; if ( s || m > 1 && "string" == typeof q && ! o . checkClone && za . test ( q ) ) return a . each ( function ( e ) { var f = a . eq ( e ) ; s && ( b [ 0 ] = q . call ( this , e , f . html ( ) ) ) , Ha ( f , b , c , d ) } ) ; if ( m && ( e = oa ( b , a [ 0 ] . ownerDocument , ! 1 , a , d ) , f = e . firstChild , 1 === e . childNodes . length && ( e = f ) , f || d ) ) { for ( h = r . map ( la ( e , "script" ) , Da ) , i = h . length ; l < m ; l ++ ) j = e , l !== n && ( j = r . clone ( j , ! 0 , ! 0 ) , i && r . merge ( h , la ( j , "script" ) ) ) , c . call ( a [ l ] , j , l ) ; if ( i ) for ( k = h [ h . length - 1 ] . ownerDocument , r . map ( h , Ea ) , l = 0 ; l < i ; l ++ ) j = h [ l ] , ja . test ( j . type || "" ) && ! V . access ( j , "globalEval" ) && r . contains ( k , j ) && ( j . src ? r . _evalUrl && r . _evalUrl ( j . src ) : p ( j . textContent . replace ( Ba , "" ) , k ) ) } return a } function Ia ( a , b , c ) { for ( var d , e = b ? r . filter ( b , a ) : a , f = 0 ; null != ( d = e [ f ] ) ; f ++ ) c || 1 !== d . nodeType || r . cleanData ( la ( d ) ) , d . parentNode && ( c && r . contains ( d . ownerDocument , d ) && ma ( la ( d , "script" ) ) , d . parentNode . removeChild ( d ) ) ; return a } function Ma ( a , b , c ) { var d , e , f , g , h = a . style ; return c = c || La ( a ) , c && ( g = c . getPropertyValue ( b ) || c [ b ] , "" !== g || r . contains ( a . ownerDocument , a ) || ( g = r . style ( a , b ) ) , ! o . pixelMarginRight ( ) && Ka . test ( g ) && Ja . test ( b ) && ( d = h . width , e = h . minWidth , f = h . maxWidth , h . minWidth = h . maxWidth = h . width = g , g = c . width , h . width = d , h . minWidth = e , h . maxWid
a = a . slice ( j . shift ( ) . value . length ) } for ( i = V . needsContext . test ( a ) ? 0 : j . length ; i -- && ( k = j [ i ] , ! d . relative [ l = k . type ] ) ; ) if ( ( m = d . find [ l ] ) && ( f = m ( k . matches [ 0 ] . replace ( _ , aa ) , $ . test ( j [ 0 ] . type ) && qa ( b . parentNode ) || b ) ) ) { if ( j . splice ( i , 1 ) , a = f . length && sa ( j ) , ! a ) return G . apply ( e , f ) , e ; break } } return ( n || h ( a , o ) ) ( f , b , ! p , e , ! b || $ . test ( a ) && qa ( b . parentNode ) || b ) , e } , c . sortStable = u . split ( "" ) . sort ( B ) . join ( "" ) === u , c . detectDuplicates = ! ! l , m ( ) , c . sortDetached = ja ( function ( a ) { return 1 & a . compareDocumentPosition ( n . createElement ( "fieldset" ) ) } ) , ja ( function ( a ) { return a . innerHTML = "<a href='#'></a>" , "#" === a . firstChild . getAttribute ( "href" ) } ) || ka ( "type|href|height|width" , function ( a , b , c ) { if ( ! c ) return a . getAttribute ( b , "type" === b . toLowerCase ( ) ? 1 : 2 ) } ) , c . attributes && ja ( function ( a ) { return a . innerHTML = "<input/>" , a . firstChild . setAttribute ( "value" , "" ) , "" === a . firstChild . getAttribute ( "value" ) } ) || ka ( "value" , function ( a , b , c ) { if ( ! c && "input" === a . nodeName . toLowerCase ( ) ) return a . defaultValue } ) , ja ( function ( a ) { return null == a . getAttribute ( "disabled" ) } ) || ka ( J , function ( a , b , c ) { var d ; if ( ! c ) return a [ b ] === ! 0 ? b . toLowerCase ( ) : ( d = a . getAttributeNode ( b ) ) && d . specified ? d . value : null } ) , ga } ( a ) ; r . find = x , r . expr = x . selectors , r . expr [ ":" ] = r . expr . pseudos , r . uniqueSort = r . unique = x . uniqueSort , r . text = x . getText , r . isXMLDoc = x . isXML , r . contains = x . contains , r . escapeSelector = x . escape ; var y = function ( a , b , c ) { for ( var d = [ ] , e = void 0 !== c ; ( a = a [ b ] ) && 9 !== a . nodeType ; ) if ( 1 === a . nodeType ) { if ( e && r ( a ) . is ( c ) ) break ; d . push ( a ) } return d } , z = function ( a , b ) { for ( var c = [ ] ; a ; a = a . nextSibling ) 1 === a . nodeType && a !== b && c . push ( a ) ; return c } , A = r . expr . match . needsContext , B = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i , C = /^.[^:#\[\.,]*$/ ; r . filter = function ( a , b , c ) { var d = b [ 0 ] ; return c && ( a = ":not(" + a + ")" ) , 1 === b . length && 1 === d . nodeType ? r . find . matchesSelector ( d , a ) ? [ d ] : [ ] : r . find . matches ( a , r . grep ( b , function ( a ) { return 1 === a . nodeType } ) ) } , r . fn . extend ( { find : function ( a ) { var b , c , d = this . length , e = this ; if ( "string" != typeof a ) return this . pushStack ( r ( a ) . filter ( function ( ) { for ( b = 0 ; b < d ; b ++ ) if ( r . contains ( e [ b ] , this ) ) return ! 0 } ) ) ; for ( c = this . pushStack ( [ ] ) , b = 0 ; b < d ; b ++ ) r . find ( a , e [ b ] , c ) ; return d > 1 ? r . uniqueSort ( c ) : c } , filter : function ( a ) { return this . pushStack ( D ( this , a || [ ] , ! 1 ) ) } , not : function ( a ) { return this . pushStack ( D ( this , a || [ ] , ! 0 ) ) } , is : function ( a ) { return ! ! D ( this , "string" == typeof a && A . test ( a ) ? r ( a ) : a || [ ] , ! 1 ) . length } } ) ; var E , F = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/ , G = r . fn . init = function ( a , b , c ) { var e , f ; if ( ! a ) return this ; if ( c = c || E , "string" == typeof a ) { if ( e = "<" === a [ 0 ] && ">" === a [ a . length - 1 ] && a . length >= 3 ? [ null , a , null ] : F . exec ( a ) , ! e || ! e [ 1 ] && b ) return ! b || b . jquery ? ( b || c ) . find ( a ) : this . constructor ( b ) . find ( a ) ; if ( e [ 1 ] ) { if ( b = b instanceof r ? b [ 0 ] : b , r . merge ( this , r . parseHTML ( e [ 1 ] , b && b . nodeType ? b . ownerDocument || b : d , ! 0 ) ) , B . test ( e [ 1 ] ) && r . isPlainObject ( b ) ) for ( e in b ) r . isFunction ( this [ e ] ) ? this [ e ] ( b [ e ] ) : this . attr ( e , b [ e ] ) ; return this } return f = d . getElementById ( e [ 2 ] ) , f && ( this [ 0 ] = f , this . length = 1 ) , this } return a . nodeType ? ( this [ 0 ] = a , this . length = 1 , this ) : r . isFunction ( a ) ? void 0 !== c . ready ? c . ready ( a ) : a ( r ) : r . makeArray ( a , this ) } ; G . prototype = r . fn , E = r ( d ) ; var H = /^(?:parents|prev(?:Until|All))/ , I = { children : ! 0 , contents : ! 0 , next : ! 0 , prev : ! 0 } ; r . fn . extend ( { has : function ( a ) { var b = r ( a , this ) , c = b . length ; return this . filter ( function ( ) { for ( var a = 0 ; a < c ; a ++ ) if ( r . contains ( this , b [ a ] ) ) return ! 0 } ) } , closest : function ( a , b ) { var c , d = 0 , e = this . length , f = [ ] , g = "string" != typeof a && r ( a ) ; if ( ! A . test ( a ) ) for ( ; d < e ; d ++ ) for ( c = this [ d ] ; c && c !== b ; c = c . parentNode ) if ( c . nodeType < 11 && ( g ? g . index ( c ) > - 1 : 1 === c . nodeType && r . find . matchesSelector ( c , a ) ) ) { f . push ( c ) ; break } return this . pushStack ( f . length > 1 ? r . uniqueSort ( f ) : f ) } , index : function ( a ) { return a ? "string" == typeof a ? i . call ( r ( a ) , this [ 0 ] ) : i . call ( this , a . jquery ? a [ 0 ] : a ) : this [ 0 ] && this [ 0 ] . parentNode ? this . first ( ) . prevAll ( ) . length : - 1 } , add : function ( a , b ) { return this . pushStack ( r . uniqueSort ( r . merge ( this . get ( ) , r ( a , b ) ) ) ) } , addBack : function ( a ) { return this . add ( null == a ? this . prevObject : this . prevObject . filter ( a ) ) } } ) , r . each ( { parent : function ( a ) { var b = a . parentNode ; return b && 11 !== b . nodeType ? b : null } , parents : function ( a ) { return y ( a , "parentNode" ) } , parentsUntil : function ( a , b , c ) { return y ( a , "parentNode" , c ) } , next : function ( a ) { return J ( a , "nextSibling" ) } , prev : function ( a ) {
} } ) , hb = { set : function ( a , b , c ) { return b === ! 1 ? r . removeAttr ( a , c ) : a . setAttribute ( c , c ) , c } } , r . each ( r . expr . match . bool . source . match ( /\w+/g ) , function ( a , b ) { var c = ib [ b ] || r . find . attr ; ib [ b ] = function ( a , b , d ) { var e , f , g = b . toLowerCase ( ) ; return d || ( f = ib [ g ] , ib [ g ] = e , e = null != c ( a , b , d ) ? g : null , ib [ g ] = f ) , e } } ) ; var jb = /^(?:input|select|textarea|button)$/i , kb = /^(?:a|area)$/i ; r . fn . extend ( { prop : function ( a , b ) { return S ( this , r . prop , a , b , arguments . length > 1 ) } , removeProp : function ( a ) { return this . each ( function ( ) { delete this [ r . propFix [ a ] || a ] } ) } } ) , r . extend ( { prop : function ( a , b , c ) { var d , e , f = a . nodeType ; if ( 3 !== f && 8 !== f && 2 !== f ) return 1 === f && r . isXMLDoc ( a ) || ( b = r . propFix [ b ] || b , e = r . propHooks [ b ] ) , void 0 !== c ? e && "set" in e && void 0 !== ( d = e . set ( a , c , b ) ) ? d : a [ b ] = c : e && "get" in e && null !== ( d = e . get ( a , b ) ) ? d : a [ b ] } , propHooks : { tabIndex : { get : function ( a ) { var b = r . find . attr ( a , "tabindex" ) ; return b ? parseInt ( b , 10 ) : jb . test ( a . nodeName ) || kb . test ( a . nodeName ) && a . href ? 0 : - 1 } } } , propFix : { for : "htmlFor" , class : "className" } } ) , o . optSelected || ( r . propHooks . selected = { get : function ( a ) { var b = a . parentNode ; return b && b . parentNode && b . parentNode . selectedIndex , null } , set : function ( a ) { var b = a . parentNode ; b && ( b . selectedIndex , b . parentNode && b . parentNode . selectedIndex ) } } ) , r . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { r . propFix [ this . toLowerCase ( ) ] = this } ) ; var lb = /[\t\r\n\f]/g ; r . fn . extend ( { addClass : function ( a ) { var b , c , d , e , f , g , h , i = 0 ; if ( r . isFunction ( a ) ) return this . each ( function ( b ) { r ( this ) . addClass ( a . call ( this , b , mb ( this ) ) ) } ) ; if ( "string" == typeof a && a ) for ( b = a . match ( K ) || [ ] ; c = this [ i ++ ] ; ) if ( e = mb ( c ) , d = 1 === c . nodeType && ( " " + e + " " ) . replace ( lb , " " ) ) { for ( g = 0 ; f = b [ g ++ ] ; ) d . indexOf ( " " + f + " " ) < 0 && ( d += f + " " ) ; h = r . trim ( d ) , e !== h && c . setAttribute ( "class" , h ) } return this } , removeClass : function ( a ) { var b , c , d , e , f , g , h , i = 0 ; if ( r . isFunction ( a ) ) return this . each ( function ( b ) { r ( this ) . removeClass ( a . call ( this , b , mb ( this ) ) ) } ) ; if ( ! arguments . length ) return this . attr ( "class" , "" ) ; if ( "string" == typeof a && a ) for ( b = a . match ( K ) || [ ] ; c = this [ i ++ ] ; ) if ( e = mb ( c ) , d = 1 === c . nodeType && ( " " + e + " " ) . replace ( lb , " " ) ) { for ( g = 0 ; f = b [ g ++ ] ; ) for ( ; d . indexOf ( " " + f + " " ) > - 1 ; ) d = d . replace ( " " + f + " " , " " ) ; h = r . trim ( d ) , e !== h && c . setAttribute ( "class" , h ) } return this } , toggleClass : function ( a , b ) { var c = typeof a ; return "boolean" == typeof b && "string" === c ? b ? this . addClass ( a ) : this . removeClass ( a ) : r . isFunction ( a ) ? this . each ( function ( c ) { r ( this ) . toggleClass ( a . call ( this , c , mb ( this ) , b ) , b ) } ) : this . each ( function ( ) { var b , d , e , f ; if ( "string" === c ) for ( d = 0 , e = r ( this ) , f = a . match ( K ) || [ ] ; b = f [ d ++ ] ; ) e . hasClass ( b ) ? e . removeClass ( b ) : e . addClass ( b ) ; else void 0 !== a && "boolean" !== c || ( b = mb ( this ) , b && V . set ( this , "__className__" , b ) , this . setAttribute && this . setAttribute ( "class" , b || a === ! 1 ? "" : V . get ( this , "__className__" ) || "" ) ) } ) } , hasClass : function ( a ) { var b , c , d = 0 ; for ( b = " " + a + " " ; c = this [ d ++ ] ; ) if ( 1 === c . nodeType && ( " " + mb ( c ) + " " ) . replace ( lb , " " ) . indexOf ( b ) > - 1 ) return ! 0 ; return ! 1 } } ) ; var nb = /\r/g , ob = /[\x20\t\r\n\f]+/g ; r . fn . extend ( { val : function ( a ) { var b , c , d , e = this [ 0 ] ; return arguments . length ? ( d = r . isFunction ( a ) , this . each ( function ( c ) { var e ; 1 === this . nodeType && ( e = d ? a . call ( this , c , r ( this ) . val ( ) ) : a , null == e ? e = "" : "number" == typeof e ? e += "" : r . isArray ( e ) && ( e = r . map ( e , function ( a ) { return null == a ? "" : a + "" } ) ) , b = r . valHooks [ this . type ] || r . valHooks [ this . nodeName . toLowerCase ( ) ] , b && "set" in b && void 0 !== b . set ( this , e , "value" ) || ( this . value = e ) ) } ) ) : e ? ( b = r . valHooks [ e . type ] || r . valHooks [ e . nodeName . toLowerCase ( ) ] , b && "get" in b && void 0 !== ( c = b . get ( e , "value" ) ) ? c : ( c = e . value , "string" == typeof c ? c . replace ( nb , "" ) : null == c ? "" : c ) ) : void 0 } } ) , r . extend ( { valHooks : { option : { get : function ( a ) { var b = r . find . attr ( a , "value" ) ; return null != b ? b : r . trim ( r . text ( a ) ) . replace ( ob , " " ) } } , select : { get : function ( a ) { for ( var b , c , d = a . options , e = a . selectedIndex , f = "select-one" === a . type , g = f ? null : [ ] , h = f ? e + 1 : d . length , i = e < 0 ? h : f ? e : 0 ; i < h ; i ++ ) if ( c = d [ i ] , ( c . selected || i === e ) && ! c . disabled && ( ! c . parentNode . disabled || ! r . nodeName ( c . parentNode , "optgroup" ) ) ) { if ( b = r ( c ) . val ( ) , f ) return b ; g . push ( b ) } return g } , set : function ( a , b ) { for ( var c , d , e = a . options , f = r . makeArray ( b ) , g = e . length ; g -- ; ) d = e [ g ] , ( d . selected = r . inArray ( r . valHooks . option . get ( d ) , f ) > - 1 ) && ( c = ! 0 ) ; return c || ( a . selectedIndex = - 1 ) , f } } } } ) , r . each
'"' + i + '"' } function Dt ( t ) { var e = t . charAt ( 0 ) , i = t . slice ( 1 ) ; return sr . test ( i ) ? t : ( i = i . indexOf ( '"' ) > - 1 ? i . replace ( ur , Pt ) : i , e + "scope." + i ) } function Pt ( t , e ) { return vr [ e ] } function Rt ( t ) { ar . test ( t ) , vr . length = 0 ; var e = t . replace ( cr , Ft ) . replace ( hr , "" ) ; return e = ( " " + e ) . replace ( pr , Dt ) . replace ( ur , Pt ) , Lt ( e ) } function Lt ( t ) { try { return new Function ( "scope" , "return " + t + ";" ) } catch ( e ) { return St } } function Ht ( t ) { var e = Nt ( t ) ; return e ? function ( t , i ) { Et ( t , e , i ) } : void 0 } function It ( t , e ) { t = t . trim ( ) ; var i = nr . get ( t ) ; if ( i ) return e && ! i . set && ( i . set = Ht ( i . exp ) ) , i ; var n = { exp : t } ; return n . get = Mt ( t ) && t . indexOf ( "[" ) < 0 ? Lt ( "scope." + t ) : Rt ( t ) , e && ( n . set = Ht ( t ) ) , nr . put ( t , n ) , n } function Mt ( t ) { return fr . test ( t ) && ! dr . test ( t ) && "Math." !== t . slice ( 0 , 5 ) } function Vt ( ) { gr . length = 0 , _r . length = 0 , yr = { } , br = { } , wr = ! 1 } function Bt ( ) { for ( var t = ! 0 ; t ; ) t = ! 1 , Wt ( gr ) , Wt ( _r ) , gr . length ? t = ! 0 : ( Li && An . devtools && Li . emit ( "flush" ) , Vt ( ) ) } function Wt ( t ) { for ( var e = 0 ; e < t . length ; e ++ ) { var i = t [ e ] , n = i . id ; yr [ n ] = null , i . run ( ) } t . length = 0 } function zt ( t ) { var e = t . id ; if ( null == yr [ e ] ) { var i = t . user ? _r : gr ; yr [ e ] = i . length , i . push ( t ) , wr || ( wr = ! 0 , Yi ( Bt ) ) } } function Ut ( t , e , i , n ) { n && v ( this , n ) ; var r = "function" == typeof e ; if ( this . vm = t , t . _watchers . push ( this ) , this . expression = e , this . cb = i , this . id = ++ Cr , this . active = ! 0 , this . dirty = this . lazy , this . deps = [ ] , this . newDeps = [ ] , this . depIds = new Ki , this . newDepIds = new Ki , this . prevError = null , r ) this . getter = e , this . setter = void 0 ; else { var s = It ( e , this . twoWay ) ; this . getter = s . get , this . setter = s . set } this . value = this . lazy ? void 0 : this . get ( ) , this . queued = this . shallow = ! 1 } function Jt ( t , e ) { var i = void 0 , n = void 0 ; e || ( e = $r , e . clear ( ) ) ; var r = Di ( t ) , s = m ( t ) ; if ( ( r || s ) && Object . isExtensible ( t ) ) { if ( t . _ _ob _ _ ) { var o = t . _ _ob _ _ . dep . id ; if ( e . has ( o ) ) return ; e . add ( o ) } if ( r ) for ( i = t . length ; i -- ; ) Jt ( t [ i ] , e ) ; else if ( s ) for ( n = Object . keys ( t ) , i = n . length ; i -- ; ) Jt ( t [ n [ i ] ] , e ) } } function qt ( t ) { return it ( t ) && at ( t . content ) } function Qt ( t , e ) { var i = e ? t : t . trim ( ) , n = xr . get ( i ) ; if ( n ) return n ; var r = document . createDocumentFragment ( ) , s = t . match ( Tr ) , o = Nr . test ( t ) , a = jr . test ( t ) ; if ( s || o || a ) { var h = s && s [ 1 ] , l = Or [ h ] || Or . efault , c = l [ 0 ] , u = l [ 1 ] , f = l [ 2 ] , p = document . createElement ( "div" ) ; for ( p . innerHTML = u + t + f ; c -- ; ) p = p . lastChild ; for ( var d ; d = p . firstChild ; ) r . appendChild ( d ) } else r . appendChild ( document . createTextNode ( t ) ) ; return e || tt ( r ) , xr . put ( i , r ) , r } function Gt ( t ) { if ( qt ( t ) ) return Qt ( t . innerHTML ) ; if ( "SCRIPT" === t . tagName ) return Qt ( t . textContent ) ; for ( var e , i = Zt ( t ) , n = document . createDocumentFragment ( ) ; e = i . firstChild ; ) n . appendChild ( e ) ; return tt ( n ) , n } function Zt ( t ) { if ( ! t . querySelectorAll ) return t . cloneNode ( ) ; var e , i , n , r = t . cloneNode ( ! 0 ) ; if ( Er ) { var s = r ; if ( qt ( t ) && ( t = t . content , s = r . content ) , i = t . querySelectorAll ( "template" ) , i . length ) for ( n = s . querySelectorAll ( "template" ) , e = n . length ; e -- ; ) n [ e ] . parentNode . replaceChild ( Zt ( i [ e ] ) , n [ e ] ) } if ( Sr ) if ( "TEXTAREA" === t . tagName ) r . value = t . value ; else if ( i = t . querySelectorAll ( "textarea" ) , i . length ) for ( n = r . querySelectorAll ( "textarea" ) , e = n . length ; e -- ; ) n [ e ] . value = i [ e ] . value ; return r } function Xt ( t , e , i ) { var n , r ; return at ( t ) ? ( tt ( t ) , e ? Zt ( t ) : t ) : ( "string" == typeof t ? i || "#" !== t . charAt ( 0 ) ? r = Qt ( t , i ) : ( r = Ar . get ( t ) , r || ( n = document . getElementById ( t . slice ( 1 ) ) , n && ( r = Gt ( n ) , Ar . put ( t , r ) ) ) ) : t . nodeType && ( r = Gt ( t ) ) , r && e ? Zt ( r ) : r ) } function Yt ( t , e , i , n , r , s ) { this . children = [ ] , this . childFrags = [ ] , this . vm = e , this . scope = r , this . inserted = ! 1 , this . parentFrag = s , s && s . childFrags . push ( this ) , this . unlink = t ( e , i , n , r , this ) ; var o = this . single = 1 === i . childNodes . length && ! i . childNodes [ 0 ] . _ _v _anchor ; o ? ( this . node = i . childNodes [ 0 ] , this . before = Kt , this . remove = te ) : ( this . node = nt ( "fragment-start" ) , this . end = nt ( "fragment-end" ) , this . frag = i , U ( this . node , i ) , i . appendChild ( this . end ) , this . before = ee , this . remove = ie ) , this . node . _ _v _frag = this } function Kt ( t , e ) { this . inserted = ! 0 ; var i = e !== ! 1 ? D : B ; i ( this . node , t , this . vm ) , H ( this . node ) && this . callHook ( ne ) } function te ( ) { this . inserted = ! 1 ; var t = H ( this . node ) , e = this ; this . beforeRemove ( ) , P ( this . node , this . vm , function ( ) { t && e . callHook ( re ) , e . destroy ( ) } ) } function ee ( t , e ) { this . inserted = ! 0 ; var i = this . vm , n = e !== ! 1 ? D : B ; st ( this . node , this . end , function ( e ) { n ( e , t , i ) } ) , H ( this . node ) && this . callHook ( ne ) } function ie ( ) { this . inserted = ! 1 ; var t = this , e = H ( this . node ) ; this . beforeRemove ( ) , ot ( this . node , this . end , this . vm , this . frag , function ( ) { e && t . callHook ( re ) , t .
Sn . data = function ( t , e , i ) { return i ? t || e ? function ( ) { var n = "function" == typeof e ? e . call ( i ) : e , r = "function" == typeof t ? t . call ( i ) : void 0 ; return n ? ut ( n , r ) : r } : void 0 : e ? "function" != typeof e ? t : t ? function ( ) { return ut ( e . call ( this ) , t . call ( this ) ) } : e : t } , Sn . el = function ( t , e , i ) { if ( i || ! e || "function" == typeof e ) { var n = e || t ; return i && "function" == typeof n ? n . call ( i ) : n } } , Sn . init = Sn . created = Sn . ready = Sn . attached = Sn . detached = Sn . beforeCompile = Sn . compiled = Sn . beforeDestroy = Sn . destroyed = Sn . activate = function ( t , e ) { return e ? t ? t . concat ( e ) : Di ( e ) ? e : [ e ] : t } , An . _assetTypes . forEach ( function ( t ) { Sn [ t + "s" ] = ft } ) , Sn . watch = Sn . events = function ( t , e ) { if ( ! e ) return t ; if ( ! t ) return e ; var i = { } ; v ( i , t ) ; for ( var n in e ) { var r = i [ n ] , s = e [ n ] ; r && ! Di ( r ) && ( r = [ r ] ) , i [ n ] = r ? r . concat ( s ) : [ s ] } return i } , Sn . props = Sn . methods = Sn . computed = function ( t , e ) { if ( ! e ) return t ; if ( ! t ) return e ; var i = Object . create ( null ) ; return v ( i , t ) , v ( i , e ) , i } ; var Fn = function ( t , e ) { return void 0 === e ? t : e } , Dn = 0 ; _t . target = null , _t . prototype . addSub = function ( t ) { this . subs . push ( t ) } , _t . prototype . removeSub = function ( t ) { this . subs . $remove ( t ) } , _t . prototype . depend = function ( ) { _t . target . addDep ( this ) } , _t . prototype . notify = function ( ) { for ( var t = d ( this . subs ) , e = 0 , i = t . length ; i > e ; e ++ ) t [ e ] . update ( ) } ; var Pn = Array . prototype , Rn = Object . create ( Pn ) ; [ "push" , "pop" , "shift" , "unshift" , "splice" , "sort" , "reverse" ] . forEach ( function ( t ) { var e = Pn [ t ] ; _ ( Rn , t , function ( ) { for ( var i = arguments . length , n = new Array ( i ) ; i -- ; ) n [ i ] = arguments [ i ] ; var r , s = e . apply ( this , n ) , o = this . _ _ob _ _ ; switch ( t ) { case "push" : r = n ; break ; case "unshift" : r = n ; break ; case "splice" : r = n . slice ( 2 ) } return r && o . observeArray ( r ) , o . dep . notify ( ) , s } ) } ) , _ ( Pn , "$set" , function ( t , e ) { return t >= this . length && ( this . length = Number ( t ) + 1 ) , this . splice ( t , 1 , e ) [ 0 ] } ) , _ ( Pn , "$remove" , function ( t ) { if ( this . length ) { var e = b ( this , t ) ; return e > - 1 ? this . splice ( e , 1 ) : void 0 } } ) ; var Ln = Object . getOwnPropertyNames ( Rn ) , Hn = ! 0 ; bt . prototype . walk = function ( t ) { for ( var e = Object . keys ( t ) , i = 0 , n = e . length ; n > i ; i ++ ) this . convert ( e [ i ] , t [ e [ i ] ] ) } , bt . prototype . observeArray = function ( t ) { for ( var e = 0 , i = t . length ; i > e ; e ++ ) $t ( t [ e ] ) } , bt . prototype . convert = function ( t , e ) { kt ( this . value , t , e ) } , bt . prototype . addVm = function ( t ) { ( this . vms || ( this . vms = [ ] ) ) . push ( t ) } , bt . prototype . removeVm = function ( t ) { this . vms . $remove ( t ) } ; var In = Object . freeze ( { defineReactive : kt , set : t , del : e , hasOwn : i , isLiteral : n , isReserved : r , _toString : s , toNumber : o , toBoolean : a , stripQuotes : h , camelize : l , hyphenate : u , classify : f , bind : p , toArray : d , extend : v , isObject : m , isPlainObject : g , def : _ , debounce : y , indexOf : b , cancellable : w , looseEqual : C , isArray : Di , hasProto : Pi , inBrowser : Ri , devtools : Li , isIE : Ii , isIE9 : Mi , isAndroid : Vi , isIos : Bi , iosVersionMatch : Wi , iosVersion : zi , hasMutationObserverBug : Ui , get transitionProp ( ) { return Ji } , get transitionEndEvent ( ) { return qi } , get animationProp ( ) { return Qi } , get animationEndEvent ( ) { return Gi } , nextTick : Yi , get _Set ( ) { return Ki } , query : L , inDoc : H , getAttr : I , getBindAttr : M , hasBindAttr : V , before : B , after : W , remove : z , prepend : U , replace : J , on : q , off : Q , setClass : Z , addClass : X , removeClass : Y , extractContent : K , trimNode : tt , isTemplate : it , createAnchor : nt , findRef : rt , mapNodeRange : st , removeNodeRange : ot , isFragment : at , getOuterHTML : ht , mergeOptions : mt , resolveAsset : gt , checkComponentAttr : lt , commonTagRE : jn , reservedTagRE : En , warn : On } ) , Mn = 0 , Vn = new $ ( 1e3 ) , Bn = 0 , Wn = 1 , zn = 2 , Un = 3 , Jn = 0 , qn = 1 , Qn = 2 , Gn = 3 , Zn = 4 , Xn = 5 , Yn = 6 , Kn = 7 , tr = 8 , er = [ ] ; er [ Jn ] = { ws : [ Jn ] , ident : [ Gn , Bn ] , "[" : [ Zn ] , eof : [ Kn ] } , er [ qn ] = { ws : [ qn ] , "." : [ Qn ] , "[" : [ Zn ] , eof : [ Kn ] } , er [ Qn ] = { ws : [ Qn ] , ident : [ Gn , Bn ] } , er [ Gn ] = { ident : [ Gn , Bn ] , 0 : [ Gn , Bn ] , number : [ Gn , Bn ] , ws : [ qn , Wn ] , "." : [ Qn , Wn ] , "[" : [ Zn , Wn ] , eof : [ Kn , Wn ] } , er [ Zn ] = { "'" : [ Xn , Bn ] , '"' : [ Yn , Bn ] , "[" : [ Zn , zn ] , "]" : [ qn , Un ] , eof : tr , else : [ Zn , Bn ] } , er [ Xn ] = { "'" : [ Zn , Bn ] , eof : tr , else : [ Xn , Bn ] } , er [ Yn ] = { '"' : [ Zn , Bn ] , eof : tr , else : [ Yn , Bn ] } ; var ir = Object . freeze ( { parsePath : Nt , getPath : jt , setPath : Et } ) , nr = new $ ( 1e3 ) , rr = "Math,Date,this,true,false,null,undefined,Infinity,NaN,isNaN,isFinite,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,parseInt,parseFloat" , sr = new RegExp ( "^(" + rr . replace ( /,/g , "\\b|" ) + "\\b)" ) , or = " break , case , class , catch , const , continue , debugger , default , delete , do , else , export , extends , finally , for , function , if , import , in , instanceof , let , return , super , switch , throw , try , var , while , with , yield , enum , await , implements , pac
t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) ) : "" } , uppercase : function ( t ) { return t || 0 === t ? t . toString ( ) . toUpperCase ( ) : "" } , lowercase : function ( t ) { return t || 0 === t ? t . toString ( ) . toLowerCase ( ) : "" } , currency : function ( t , e , i ) { if ( t = parseFloat ( t ) , ! isFinite ( t ) || ! t && 0 !== t ) return "" ; e = null != e ? e : "$" , i = null != i ? i : 2 ; var n = Math . abs ( t ) . toFixed ( i ) , r = i ? n . slice ( 0 , - 1 - i ) : n , s = r . length % 3 , o = s > 0 ? r . slice ( 0 , s ) + ( r . length > 3 ? "," : "" ) : "" , a = i ? n . slice ( - 1 - i ) : "" , h = 0 > t ? "-" : "" ; return h + e + o + r . slice ( s ) . replace ( to , "$1," ) + a } , pluralize : function ( t ) { var e = d ( arguments , 1 ) , i = e . length ; if ( i > 1 ) { var n = t % 10 - 1 ; return n in e ? e [ n ] : e [ i - 1 ] } return e [ 0 ] + ( 1 === t ? "" : "s" ) } , debounce : function ( t , e ) { return t ? ( e || ( e = 300 ) , y ( t , e ) ) : void 0 } } ; return Ai ( wi ) , wi . version = "1.0.26" , setTimeout ( function ( ) { An . devtools && Li && Li . emit ( "init" , wi ) } , 0 ) , wi } ) , ! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : a ( "object" == typeof module && module . exports ? require ( "jquery" ) : jQuery ) } ( function ( a ) { var b = "2.0.0" , c = { } , d = { exclude : [ ] , excludeWithin : [ ] , offset : 0 , direction : "top" , delegateSelector : null , scrollElement : null , scrollTarget : null , beforeScroll : function ( ) { } , afterScroll : function ( ) { } , easing : "swing" , speed : 400 , autoCoefficient : 2 , preventDefault : ! 0 } , e = function ( b ) { var c = [ ] , d = ! 1 , e = b . dir && "left" === b . dir ? "scrollLeft" : "scrollTop" ; return this . each ( function ( ) { var b = a ( this ) ; if ( this !== document && this !== window ) return ! document . scrollingElement || this !== document . documentElement && this !== document . body ? void ( b [ e ] ( ) > 0 ? c . push ( this ) : ( b [ e ] ( 1 ) , d = b [ e ] ( ) > 0 , d && c . push ( this ) , b [ e ] ( 0 ) ) ) : ( c . push ( document . scrollingElement ) , ! 1 ) } ) , c . length || this . each ( function ( ) { this === document . documentElement && "smooth" === a ( this ) . css ( "scrollBehavior" ) && ( c = [ this ] ) , c . length || "BODY" !== this . nodeName || ( c = [ this ] ) } ) , "first" === b . el && c . length > 1 && ( c = [ c [ 0 ] ] ) , c } ; a . fn . extend ( { scrollable : function ( a ) { var b = e . call ( this , { dir : a } ) ; return this . pushStack ( b ) } , firstScrollable : function ( a ) { var b = e . call ( this , { el : "first" , dir : a } ) ; return this . pushStack ( b ) } , smoothScroll : function ( b , c ) { if ( b = b || { } , "options" === b ) return c ? this . each ( function ( ) { var b = a ( this ) , d = a . extend ( b . data ( "ssOpts" ) || { } , c ) ; a ( this ) . data ( "ssOpts" , d ) } ) : this . first ( ) . data ( "ssOpts" ) ; var d = a . extend ( { } , a . fn . smoothScroll . defaults , b ) , e = function ( b ) { var c = function ( a ) { return a . replace ( /(:|\.|\/)/g , "\\$1" ) } , e = this , f = a ( this ) , g = a . extend ( { } , d , f . data ( "ssOpts" ) || { } ) , h = d . exclude , i = g . excludeWithin , j = 0 , k = 0 , l = ! 0 , m = { } , n = a . smoothScroll . filterPath ( location . pathname ) , o = a . smoothScroll . filterPath ( e . pathname ) , p = location . hostname === e . hostname || ! e . hostname , q = g . scrollTarget || o === n , r = c ( e . hash ) ; if ( r && ! a ( r ) . length && ( l = ! 1 ) , g . scrollTarget || p && q && r ) { for ( ; l && j < h . length ; ) f . is ( c ( h [ j ++ ] ) ) && ( l = ! 1 ) ; for ( ; l && k < i . length ; ) f . closest ( i [ k ++ ] ) . length && ( l = ! 1 ) } else l = ! 1 ; l && ( g . preventDefault && b . preventDefault ( ) , a . extend ( m , g , { scrollTarget : g . scrollTarget || r , link : e } ) , a . smoothScroll ( m ) ) } ; return null !== b . delegateSelector ? this . off ( "click.smoothscroll" , b . delegateSelector ) . on ( "click.smoothscroll" , b . delegateSelector , e ) : this . off ( "click.smoothscroll" ) . on ( "click.smoothscroll" , e ) , this } } ) , a . smoothScroll = function ( b , d ) { if ( "options" === b && "object" == typeof d ) return a . extend ( c , d ) ; var e , f , g , h , i , j = 0 , k = "offset" , l = "scrollTop" , m = { } , n = { } ; "number" == typeof b ? ( e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , c ) , g = b ) : ( e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , b || { } , c ) , e . scrollElement && ( k = "position" , "static" === e . scrollElement . css ( "position" ) && e . scrollElement . css ( "position" , "relative" ) ) ) , l = "left" === e . direction ? "scrollLeft" : l , e . scrollElement ? ( f = e . scrollElement , /^(?:HTML|BODY)$/ . test ( f [ 0 ] . nodeName ) || ( j = f [ l ] ( ) ) ) : f = a ( "html, body" ) . firstScrollable ( e . direction ) , e . beforeScroll . call ( f , e ) , g = "number" == typeof b ? b : d || a ( e . scrollTarget ) [ k ] ( ) && a ( e . scrollTarget ) [ k ] ( ) [ e . direction ] || 0 , m [ l ] = g + j + e . offset , h = e . speed , "auto" === h && ( i = Math . abs ( m [ l ] - f [ l ] ( ) ) , h = i / e . autoCoefficient ) , n = { duration : h , easing : e . easing , complete : function ( ) { e . afterScroll . call ( e . link , e ) } } , e . step && ( n . step = e . step ) , f . length ? f . stop ( ) . animate ( m , n ) : e . afterScroll . call ( e . link , e ) } , a . smoothScroll . version = b , a . smoothScroll . filterPath = function ( a ) { return a = a || "" , a . replace ( /^\// , "" ) . replace ( /(?:index|default).[a-zA-Z]{3,4}$/ , "" ) . replace ( /\/$/ , "" ) } , a . fn . smoothScroll . defaults = d } ) ; var _typeof =
i ? n ( e ) : t ( e ) } function o ( e ) { return 1 === e . lineCount ( ) && "" === e . getLine ( 0 ) } e . defineOption ( "placeholder" , "" , function ( n , o , a ) { var l = a && a != e . Init ; if ( o && ! l ) n . on ( "blur" , r ) , n . on ( "change" , i ) , n . on ( "swapDoc" , i ) , i ( n ) ; else if ( ! o && l ) { n . off ( "blur" , r ) , n . off ( "change" , i ) , n . off ( "swapDoc" , i ) , t ( n ) ; var s = n . getWrapperElement ( ) ; s . className = s . className . replace ( " CodeMirror-empty" , "" ) } o && ! n . hasFocus ( ) && r ( n ) } ) } ) } , { "../../lib/codemirror" : 10 } ] , 7 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/ , n = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/ , r = /[*+-]\s/ ; e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , a = [ ] , l = 0 ; l < o . length ; l ++ ) { var s = o [ l ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , f = 0 !== c . quote , h = i . getLine ( s . line ) , d = t . exec ( h ) ; if ( ! o [ l ] . empty ( ) || ! u && ! f || ! d ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( h ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } ) , a [ l ] = "\n" ; else { var p = d [ 1 ] , m = d [ 5 ] , g = r . test ( d [ 2 ] ) || d [ 2 ] . indexOf ( ">" ) >= 0 ? d [ 2 ] : parseInt ( d [ 3 ] , 10 ) + 1 + d [ 4 ] ; a [ l ] = "\n" + p + g + m } } i . replaceSelections ( a ) } } ) } , { "../../lib/codemirror" : 10 } ] , 8 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . overlayMode = function ( t , n , r ) { return { startState : function ( ) { return { base : e . startState ( t ) , overlay : e . startState ( n ) , basePos : 0 , baseCur : null , overlayPos : 0 , overlayCur : null , streamSeen : null } } , copyState : function ( r ) { return { base : e . copyState ( t , r . base ) , overlay : e . copyState ( n , r . overlay ) , basePos : r . basePos , baseCur : null , overlayPos : r . overlayPos , overlayCur : null } } , token : function ( e , i ) { return ( e != i . streamSeen || Math . min ( i . basePos , i . overlayPos ) < e . start ) && ( i . streamSeen = e , i . basePos = i . overlayPos = e . start ) , e . start == i . basePos && ( i . baseCur = t . token ( e , i . base ) , i . basePos = e . pos ) , e . start == i . overlayPos && ( e . pos = e . start , i . overlayCur = n . token ( e , i . overlay ) , i . overlayPos = e . pos ) , e . pos = Math . min ( i . basePos , i . overlayPos ) , null == i . overlayCur ? i . baseCur : null != i . baseCur && i . overlay . combineTokens || r && null == i . overlay . combineTokens ? i . baseCur + " " + i . overlayCur : i . overlayCur } , indent : t . indent && function ( e , n ) { return t . indent ( e . base , n ) } , electricChars : t . electricChars , innerMode : function ( e ) { return { state : e . base , mode : t } } , blankLine : function ( e ) { t . blankLine && t . blankLine ( e . base ) , n . blankLine && n . blankLine ( e . overlay ) } } } } ) } , { "../../lib/codemirror" : 10 } ] , 9 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { e . operation ( function ( ) { a ( e ) } ) } function n ( e ) { e . state . markedSelection . length && e . operation ( function ( ) { i ( e ) } ) } function r ( e , t , n , r ) { if ( 0 != c ( t , n ) ) for ( var i = e . state . markedSelection , o = e . state . markedSelectionStyle , a = t . line ; ; ) { var u = a == t . line ? t : s ( a , 0 ) , f = a + l , h = f >= n . line , d = h ? n : s ( f , 0 ) , p = e . markText ( u , d , { className : o } ) ; if ( null == r ? i . push ( p ) : i . splice ( r ++ , 0 , p ) , h ) break ; a = f } } function i ( e ) { for ( var t = e . state . markedSelection , n = 0 ; n < t . length ; ++ n ) t [ n ] . clear ( ) ; t . length = 0 } function o ( e ) { i ( e ) ; for ( var t = e . listSelections ( ) , n = 0 ; n < t . length ; n ++ ) r ( e , t [ n ] . from ( ) , t [ n ] . to ( ) ) } function a ( e ) { if ( ! e . somethingSelected ( ) ) return i ( e ) ; if ( e . listSelections ( ) . length > 1 ) return o ( e ) ; var t = e . getCursor ( "start" ) , n = e . getCursor ( "end" ) , a = e . state . markedSelection ; if ( ! a . length ) return r ( e , t , n ) ; var s = a [ 0 ] . find ( ) , u = a [ a . length - 1 ] . find ( ) ; if ( ! s || ! u || n . line - t . line < l || c ( t , u . to ) >= 0 || c ( n , s . from ) <= 0 ) return o ( e ) ; for ( ; c ( t , s . from ) > 0 ; ) a . shift ( ) . clear ( ) , s = a [ 0 ] . find ( ) ; for ( c ( t , s . from ) < 0 && ( s . to . line - t . line < l ? ( a . shift ( ) . clear ( ) , r ( e , t , s . to , 0 ) ) : r ( e , t , s . from , 0 ) ) ; c ( n , u . to ) < 0 ; ) a . pop ( ) . clear ( ) , u = a [ a . length - 1 ] . find ( ) ; c ( n , u . to ) > 0 && ( n . line - u . from . line < l ? ( a . pop ( ) . clear ( ) , r ( e , u . from , n ) ) : r ( e , u . to , n ) ) } e . defineOption ( "styleSelectedText" , ! 1 , function ( r , a , l ) { var s = l && l != e . Init ; a && ! s ? ( r . state . markedSelection = [ ] , r . state . markedSelectionStyle = "string" == typeof a ? a : " CodeMirror - selectedte
g . bottom < v . top && r ( c , g . bottom , null , v . top ) } n . appendChild ( l ) } function Be ( e ) { if ( e . state . focused ) { var t = e . display ; clearInterval ( t . blinker ) ; var n = ! 0 ; t . cursorDiv . style . visibility = "" , e . options . cursorBlinkRate > 0 ? t . blinker = setInterval ( function ( ) { t . cursorDiv . style . visibility = ( n = ! n ) ? "" : "hidden" } , e . options . cursorBlinkRate ) : e . options . cursorBlinkRate < 0 && ( t . cursorDiv . style . visibility = "hidden" ) } } function _e ( e , t ) { e . doc . mode . startState && e . doc . frontier < e . display . viewTo && e . state . highlight . set ( t , Bi ( Fe , e ) ) } function Fe ( e ) { var t = e . doc ; if ( t . frontier < t . first && ( t . frontier = t . first ) , ! ( t . frontier >= e . display . viewTo ) ) { var n = + new Date + e . options . workTime , r = sa ( t . mode , je ( e , t . frontier ) ) , i = [ ] ; t . iter ( t . frontier , Math . min ( t . first + t . size , e . display . viewTo + 500 ) , function ( o ) { if ( t . frontier >= e . display . viewFrom ) { var a = o . styles , l = o . text . length > e . options . maxHighlightLength , s = Rr ( e , o , l ? sa ( t . mode , r ) : r , ! 0 ) ; o . styles = s . styles ; var c = o . styleClasses , u = s . classes ; u ? o . styleClasses = u : c && ( o . styleClasses = null ) ; for ( var f = ! a || a . length != o . styles . length || c != u && ( ! c || ! u || c . bgClass != u . bgClass || c . textClass != u . textClass ) , h = 0 ; ! f && h < a . length ; ++ h ) f = a [ h ] != o . styles [ h ] ; f && i . push ( t . frontier ) , o . stateAfter = l ? r : sa ( t . mode , r ) } else o . text . length <= e . options . maxHighlightLength && Hr ( e , o . text , r ) , o . stateAfter = t . frontier % 5 == 0 ? sa ( t . mode , r ) : null ; return ++ t . frontier , + new Date > n ? ( _e ( e , e . options . workDelay ) , ! 0 ) : void 0 } ) , i . length && At ( e , function ( ) { for ( var t = 0 ; t < i . length ; t ++ ) Ht ( e , i [ t ] , "text" ) } ) } } function ze ( e , t , n ) { for ( var r , i , o = e . doc , a = n ? - 1 : t - ( e . doc . mode . innerMode ? 1e3 : 100 ) , l = t ; l > a ; -- l ) { if ( l <= o . first ) return o . first ; var s = Zr ( o , l - 1 ) ; if ( s . stateAfter && ( ! n || l <= o . frontier ) ) return l ; var c = Fa ( s . text , null , e . options . tabSize ) ; ( null == i || r > c ) && ( i = l - 1 , r = c ) } return i } function je ( e , t , n ) { var r = e . doc , i = e . display ; if ( ! r . mode . startState ) return ! 0 ; var o = ze ( e , t , n ) , a = o > r . first && Zr ( r , o - 1 ) . stateAfter ; return a = a ? sa ( r . mode , a ) : ca ( r . mode ) , r . iter ( o , t , function ( n ) { Hr ( e , n . text , a ) ; var l = o == t - 1 || o % 5 == 0 || o >= i . viewFrom && o < i . viewTo ; n . stateAfter = l ? sa ( r . mode , a ) : null , ++ o } ) , n && ( r . frontier = o ) , a } function Ue ( e ) { return e . lineSpace . offsetTop } function qe ( e ) { return e . mover . offsetHeight - e . lineSpace . offsetHeight } function Ge ( e ) { if ( e . cachedPaddingH ) return e . cachedPaddingH ; var t = qi ( e . measure , ji ( "pre" , "x" ) ) , n = window . getComputedStyle ? window . getComputedStyle ( t ) : t . currentStyle , r = { left : parseInt ( n . paddingLeft ) , right : parseInt ( n . paddingRight ) } ; return isNaN ( r . left ) || isNaN ( r . right ) || ( e . cachedPaddingH = r ) , r } function Ye ( e ) { return Da - e . display . nativeBarWidth } function $e ( e ) { return e . display . scroller . clientWidth - Ye ( e ) - e . display . barWidth } function Ve ( e ) { return e . display . scroller . clientHeight - Ye ( e ) - e . display . barHeight } function Ke ( e , t , n ) { var r = e . options . lineWrapping , i = r && $e ( e ) ; if ( ! t . measure . heights || r && t . measure . width != i ) { var o = t . measure . heights = [ ] ; if ( r ) { t . measure . width = i ; for ( var a = t . text . firstChild . getClientRects ( ) , l = 0 ; l < a . length - 1 ; l ++ ) { var s = a [ l ] , c = a [ l + 1 ] ; Math . abs ( s . bottom - c . bottom ) > 2 && o . push ( ( s . bottom + c . top ) / 2 - n . top ) } } o . push ( n . bottom - n . top ) } } function Xe ( e , t , n ) { if ( e . line == t ) return { map : e . measure . map , cache : e . measure . cache } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( e . rest [ r ] == t ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( ti ( e . rest [ r ] ) > n ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] , before : ! 0 } } function Ze ( e , t ) { t = yr ( t ) ; var n = ti ( t ) , r = e . display . externalMeasured = new Pt ( e . doc , t , n ) ; r . lineN = n ; var i = r . built = Br ( e , r ) ; return r . text = i . pre , qi ( e . display . lineMeasure , i . pre ) , r } function Je ( e , t , n , r ) { return tt ( e , et ( e , t ) , n , r ) } function Qe ( e , t ) { if ( t >= e . display . viewFrom && t < e . display . viewTo ) return e . display . view [ Bt ( e , t ) ] ; var n = e . display . externalMeasured ; return n && t >= n . lineN && t < n . lineN + n . size ? n : void 0 } function et ( e , t ) { var n = ti ( t ) , r = Qe ( e , n ) ; r && ! r . text ? r = null : r && r . changes && ( D ( e , r , n , P ( e ) ) , e . curOp . forceUpdate = ! 0 ) , r || ( r = Ze ( e , t ) ) ; var i = Xe ( r , t , n ) ; return { line : t , view : r , rect : null , map : i . map , cache : i . cache , before : i . before , hasHeights : ! 1 } } function tt ( e , t , n , r , i ) { t . before && ( n = - 1 ) ; var o , a = n + ( r || "" ) ; return t . cache . hasOwnProperty ( a ) ? o = t . cache [ a ] : ( t . rect || ( t . rect = t . view . text . getBoundingClientRect ( ) ) , t . hasHeights || ( Ke ( e , t . view , t . rect ) , t . hasHeights = ! 0 ) , o = rt ( e , t , n , r ) , o . bogus || ( t . cache [ a ] = o ) ) , { left : o . lef
if ( s != a . length ) { for ( i . lastOrigin = i . lastSelOrigin = null ; r = a . pop ( ) , r . ranges ; ) { if ( hi ( r , l ) , n && ! r . equals ( e . sel ) ) return void Te ( e , r , { clearRedo : ! 1 } ) ; o = r } var c = [ ] ; hi ( o , l ) , l . push ( { changes : c , generation : i . generation } ) , i . generation = r . generation || ++ i . maxGeneration ; for ( var u = Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) , s = r . changes . length - 1 ; s >= 0 ; -- s ) { var f = r . changes [ s ] ; if ( f . origin = t , u && ! Ln ( e , f , ! 1 ) ) return void ( a . length = 0 ) ; c . push ( ai ( e , f ) ) ; var h = s ? kn ( e , f ) : Ii ( a ) ; En ( e , f , h , lr ( e , f ) ) , ! s && e . cm && e . cm . scrollIntoView ( { from : f . from , to : Qo ( f ) } ) ; var d = [ ] ; Kr ( e , function ( e , t ) { t || - 1 != Pi ( d , e . history ) || ( xi ( e . history , f ) , d . push ( e . history ) ) , En ( e , f , null , lr ( e , f ) ) } ) } } } } function An ( e , t ) { if ( 0 != t && ( e . first += t , e . sel = new ue ( Ri ( e . sel . ranges , function ( e ) { return new fe ( Bo ( e . anchor . line + t , e . anchor . ch ) , Bo ( e . head . line + t , e . head . ch ) ) } ) , e . sel . primIndex ) , e . cm ) ) { Dt ( e . cm , e . first , e . first - t , t ) ; for ( var n = e . cm . display , r = n . viewFrom ; r < n . viewTo ; r ++ ) Ht ( e . cm , r , "gutter" ) } } function En ( e , t , n , r ) { if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , En ) ( e , t , n , r ) ; if ( t . to . line < e . first ) return void An ( e , t . text . length - 1 - ( t . to . line - t . from . line ) ) ; if ( ! ( t . from . line > e . lastLine ( ) ) ) { if ( t . from . line < e . first ) { var i = t . text . length - 1 - ( e . first - t . from . line ) ; An ( e , i ) , t = { from : Bo ( e . first , 0 ) , to : Bo ( t . to . line + i , t . to . ch ) , text : [ Ii ( t . text ) ] , origin : t . origin } } var o = e . lastLine ( ) ; t . to . line > o && ( t = { from : t . from , to : Bo ( o , Zr ( e , o ) . text . length ) , text : [ t . text [ 0 ] ] , origin : t . origin } ) , t . removed = Jr ( e , t . from , t . to ) , n || ( n = kn ( e , t ) ) , e . cm ? On ( e . cm , t , r ) : Yr ( e , t , r ) , Me ( e , n , Wa ) } } function On ( e , t , n ) { var r = e . doc , i = e . display , a = t . from , l = t . to , s = ! 1 , c = a . line ; e . options . lineWrapping || ( c = ti ( yr ( Zr ( r , a . line ) ) ) , r . iter ( c , l . line + 1 , function ( e ) { return e == i . maxLine ? ( s = ! 0 , ! 0 ) : void 0 } ) ) , r . sel . contains ( t . from , t . to ) > - 1 && Mi ( e ) , Yr ( r , t , n , o ( e ) ) , e . options . lineWrapping || ( r . iter ( c , a . line + t . text . length , function ( e ) { var t = f ( e ) ; t > i . maxLineLength && ( i . maxLine = e , i . maxLineLength = t , i . maxLineChanged = ! 0 , s = ! 1 ) } ) , s && ( e . curOp . updateMaxLine = ! 0 ) ) , r . frontier = Math . min ( r . frontier , a . line ) , _e ( e , 400 ) ; var u = t . text . length - ( l . line - a . line ) - 1 ; t . full ? Dt ( e ) : a . line != l . line || 1 != t . text . length || Gr ( e . doc , t ) ? Dt ( e , a . line , l . line + 1 , u ) : Ht ( e , a . line , "text" ) ; var h = Ni ( e , "changes" ) , d = Ni ( e , "change" ) ; if ( d || h ) { var p = { from : a , to : l , text : t . text , removed : t . removed , origin : t . origin } ; d && Ci ( e , "change" , e , p ) , h && ( e . curOp . changeObjs || ( e . curOp . changeObjs = [ ] ) ) . push ( p ) } e . display . selForContextMenu = null } function In ( e , t , n , r , i ) { if ( r || ( r = n ) , _o ( r , n ) < 0 ) { var o = r ; r = n , n = o } "string" == typeof t && ( t = e . splitLines ( t ) ) , Tn ( e , { from : n , to : r , text : t , origin : i } ) } function Pn ( e , t ) { if ( ! Ti ( e , "scrollCursorIntoView" ) ) { var n = e . display , r = n . sizer . getBoundingClientRect ( ) , i = null ; if ( t . top + r . top < 0 ? i = ! 0 : t . bottom + r . top > ( window . innerHeight || document . documentElement . clientHeight ) && ( i = ! 1 ) , null != i && ! Mo ) { var o = ji ( "div" , " " , null , "position: absolute; top: " + ( t . top - n . viewOffset - Ue ( e . display ) ) + "px; height: " + ( t . bottom - t . top + Ye ( e ) + n . barHeight ) + "px; left: " + t . left + "px; width: 2px;" ) ; e . display . lineSpace . appendChild ( o ) , o . scrollIntoView ( i ) , e . display . lineSpace . removeChild ( o ) } } } function Rn ( e , t , n , r ) { null == r && ( r = 0 ) ; for ( var i = 0 ; 5 > i ; i ++ ) { var o = ! 1 , a = dt ( e , t ) , l = n && n != t ? dt ( e , n ) : a , s = Hn ( e , Math . min ( a . left , l . left ) , Math . min ( a . top , l . top ) - r , Math . max ( a . left , l . left ) , Math . max ( a . bottom , l . bottom ) + r ) , c = e . doc . scrollTop , u = e . doc . scrollLeft ; if ( null != s . scrollTop && ( rn ( e , s . scrollTop ) , Math . abs ( e . doc . scrollTop - c ) > 1 && ( o = ! 0 ) ) , null != s . scrollLeft && ( on ( e , s . scrollLeft ) , Math . abs ( e . doc . scrollLeft - u ) > 1 && ( o = ! 0 ) ) , ! o ) break } return a } function Dn ( e , t , n , r , i ) { var o = Hn ( e , t , n , r , i ) ; null != o . scrollTop && rn ( e , o . scrollTop ) , null != o . scrollLeft && on ( e , o . scrollLeft ) } function Hn ( e , t , n , r , i ) { var o = e . display , a = yt ( e . display ) ; 0 > n && ( n = 0 ) ; var l = e . curOp && null != e . curOp . scrollTop ? e . curOp . scrollTop : o . scroller . scrollTop , s = Ve ( e ) , c = { } ; i - n > s && ( i = n + s ) ; var u = e . doc . height + qe ( o ) , f = a > n , h = i > u - a ; if ( l > n ) c . scrollTop = f ? 0 : n ; else if ( i > l + s ) { var d = Math . min ( n , ( h ? u : i ) - s ) ; d != l && ( c . scrollTop = d ) } var p = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . scroller . scrollLeft , m = $e ( e ) - ( e . options . fixedGutter ? o . gutters . offsetWidth : 0 ) , g = r - t > m ; return g && ( r = t + m ) , 10 > t ? c . scrollLeft = 0 : p > t ? c . scrollLeft = Math . max ( 0 , t - ( g ? 0 : 10 ) ) : r > m + p - 3 && ( c . scrollLeft = r + ( g ? 0 : 10 ) - m ) , c } function Wn ( e , t , n ) { null == t && null == n || _n ( e ) , null != t && (
return Xa = r . right - n . right < 3 } function Qi ( e ) { if ( null != il ) return il ; var t = qi ( e , ji ( "span" , "x" ) ) , n = t . getBoundingClientRect ( ) , r = qa ( t , 0 , 1 ) . getBoundingClientRect ( ) ; return il = Math . abs ( n . left - r . left ) > 1 } function eo ( e , t , n , r ) { if ( ! e ) return r ( t , n , "ltr" ) ; for ( var i = ! 1 , o = 0 ; o < e . length ; ++ o ) { var a = e [ o ] ; ( a . from < n && a . to > t || t == n && a . to == t ) && ( r ( Math . max ( a . from , t ) , Math . min ( a . to , n ) , 1 == a . level ? "rtl" : "ltr" ) , i = ! 0 ) } i || r ( t , n , "ltr" ) } function to ( e ) { return e . level % 2 ? e . to : e . from } function no ( e ) { return e . level % 2 ? e . from : e . to } function ro ( e ) { var t = ii ( e ) ; return t ? to ( t [ 0 ] ) : 0 } function io ( e ) { var t = ii ( e ) ; return t ? no ( Ii ( t ) ) : e . text . length } function oo ( e , t ) { var n = Zr ( e . doc , t ) , r = yr ( n ) ; r != n && ( t = ti ( r ) ) ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? io ( r ) : ro ( r ) : 0 ; return Bo ( t , o ) } function ao ( e , t ) { for ( var n , r = Zr ( e . doc , t ) ; n = gr ( r ) ; ) r = n . find ( 1 , ! 0 ) . line , t = null ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? ro ( r ) : io ( r ) : r . text . length ; return Bo ( null == t ? ti ( r ) : t , o ) } function lo ( e , t ) { var n = oo ( e , t . line ) , r = Zr ( e . doc , n . line ) , i = ii ( r ) ; if ( ! i || 0 == i [ 0 ] . level ) { var o = Math . max ( 0 , r . text . search ( /\S/ ) ) , a = t . line == n . line && t . ch <= o && t . ch ; return Bo ( n . line , a ? 0 : o ) } return n } function so ( e , t , n ) { var r = e [ 0 ] . level ; return t == r || n != r && n > t } function co ( e , t ) { al = null ; for ( var n , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; if ( i . from < t && i . to > t ) return r ; if ( i . from == t || i . to == t ) { if ( null != n ) return so ( e , i . level , e [ n ] . level ) ? ( i . from != i . to && ( al = n ) , r ) : ( i . from != i . to && ( al = r ) , n ) ; n = r } } return n } function uo ( e , t , n , r ) { if ( ! r ) return t + n ; do t += n ; while ( t > 0 && zi ( e . text . charAt ( t ) ) ) ; return t } function fo ( e , t , n , r ) { var i = ii ( e ) ; if ( ! i ) return ho ( e , t , n , r ) ; for ( var o = co ( i , t ) , a = i [ o ] , l = uo ( e , t , a . level % 2 ? - n : n , r ) ; ; ) { if ( l > a . from && l < a . to ) return l ; if ( l == a . from || l == a . to ) return co ( i , l ) == o ? l : ( a = i [ o += n ] , n > 0 == a . level % 2 ? a . to : a . from ) ; if ( a = i [ o += n ] , ! a ) return null ; l = n > 0 == a . level % 2 ? uo ( e , a . to , - 1 , r ) : uo ( e , a . from , 1 , r ) } } function ho ( e , t , n , r ) { var i = t + n ; if ( r ) for ( ; i > 0 && zi ( e . text . charAt ( i ) ) ; ) i += n ; return 0 > i || i > e . text . length ? null : i } var po = navigator . userAgent , mo = navigator . platform , go = /gecko\/\d/i . test ( po ) , vo = /MSIE \d/ . test ( po ) , yo = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/ . exec ( po ) , xo = vo || yo , bo = xo && ( vo ? document . documentMode || 6 : yo [ 1 ] ) , wo = /WebKit\// . test ( po ) , ko = wo && /Qt\/\d+\.\d+/ . test ( po ) , So = /Chrome\// . test ( po ) , Co = /Opera\// . test ( po ) , Lo = /Apple Computer/ . test ( navigator . vendor ) , To = /Mac OS X 1\d\D([8-9]|\d\d)\D/ . test ( po ) , Mo = /PhantomJS/ . test ( po ) , No = /AppleWebKit/ . test ( po ) && /Mobile\/\w+/ . test ( po ) , Ao = No || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i . test ( po ) , Eo = No || /Mac/ . test ( mo ) , Oo = /\bCrOS\b/ . test ( po ) , Io = /win/i . test ( mo ) , Po = Co && po . match ( /Version\/(\d*\.\d*)/ ) ; Po && ( Po = Number ( Po [ 1 ] ) ) , Po && Po >= 15 && ( Co = ! 1 , wo = ! 0 ) ; var Ro = Eo && ( ko || Co && ( null == Po || 12.11 > Po ) ) , Do = go || xo && bo >= 9 , Ho = ! 1 , Wo = ! 1 ; m . prototype = Wi ( { update : function ( e ) { var t = e . scrollWidth > e . clientWidth + 1 , n = e . scrollHeight > e . clientHeight + 1 , r = e . nativeBarWidth ; if ( n ) { this . vert . style . display = "block" , this . vert . style . bottom = t ? r + "px" : "0" ; var i = e . viewHeight - ( t ? r : 0 ) ; this . vert . firstChild . style . height = Math . max ( 0 , e . scrollHeight - e . clientHeight + i ) + "px" } else this . vert . style . display = "" , this . vert . firstChild . style . height = "0" ; if ( t ) { this . horiz . style . display = "block" , this . horiz . style . right = n ? r + "px" : "0" , this . horiz . style . left = e . barLeft + "px" ; var o = e . viewWidth - e . barLeft - ( n ? r : 0 ) ; this . horiz . firstChild . style . width = e . scrollWidth - e . clientWidth + o + "px" } else this . horiz . style . display = "" , this . horiz . firstChild . style . width = "0" ; return ! this . checkedZeroWidth && e . clientHeight > 0 && ( 0 == r && this . zeroWidthHack ( ) , this . checkedZeroWidth = ! 0 ) , { right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Eo && ! To ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , this . disableHoriz = new Ei , this . disableVert = new Ei } , enableZeroWidthBar : function ( e , t ) { function n ( ) { var r = e . getBoundingClientRect ( ) , i = document . elementFromPoint ( r . left + 1 , r . bottom - 1 ) ; i != e ? e . style . pointerEvents = "none" : t . set ( 1e3 , n ) } e . styl
t = n . state , e = n . mode } return n || { mode : e , state : t } } ; var ua = e . commands = { selectAll : function ( e ) { e . setSelection ( Bo ( e . firstLine ( ) , 0 ) , Bo ( e . lastLine ( ) ) , Wa ) } , singleSelection : function ( e ) { e . setSelection ( e . getCursor ( "anchor" ) , e . getCursor ( "head" ) , Wa ) } , killLine : function ( e ) { jn ( e , function ( t ) { if ( t . empty ( ) ) { var n = Zr ( e . doc , t . head . line ) . text . length ; return t . head . ch == n && t . head . line < e . lastLine ( ) ? { from : t . head , to : Bo ( t . head . line + 1 , 0 ) } : { from : t . head , to : Bo ( t . head . line , n ) } } return { from : t . from ( ) , to : t . to ( ) } } ) } , deleteLine : function ( e ) { jn ( e , function ( t ) { return { from : Bo ( t . from ( ) . line , 0 ) , to : me ( e . doc , Bo ( t . to ( ) . line + 1 , 0 ) ) } } ) } , delLineLeft : function ( e ) { jn ( e , function ( e ) { return { from : Bo ( e . from ( ) . line , 0 ) , to : e . from ( ) } } ) } , delWrappedLineLeft : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return { from : r , to : t . from ( ) } } ) } , delWrappedLineRight : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) ; return { from : t . from ( ) , to : r } } ) } , undo : function ( e ) { e . undo ( ) } , redo : function ( e ) { e . redo ( ) } , undoSelection : function ( e ) { e . undoSelection ( ) } , redoSelection : function ( e ) { e . redoSelection ( ) } , goDocStart : function ( e ) { e . extendSelection ( Bo ( e . firstLine ( ) , 0 ) ) } , goDocEnd : function ( e ) { e . extendSelection ( Bo ( e . lastLine ( ) ) ) } , goLineStart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return oo ( e , t . head . line ) } , { origin : "+move" , bias : 1 } ) } , goLineStartSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return lo ( e , t . head ) } , { origin : "+move" , bias : 1 } ) } , goLineEnd : function ( e ) { e . extendSelectionsBy ( function ( t ) { return ao ( e , t . head . line ) } , { origin : "+move" , bias : - 1 } ) } , goLineRight : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) } , _a ) } , goLineLeft : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : 0 , top : n } , "div" ) } , _a ) } , goLineLeftSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return r . ch < e . getLine ( r . line ) . search ( /\S/ ) ? lo ( e , t . head ) : r } , _a ) } , goLineUp : function ( e ) { e . moveV ( - 1 , "line" ) } , goLineDown : function ( e ) { e . moveV ( 1 , "line" ) } , goPageUp : function ( e ) { e . moveV ( - 1 , "page" ) } , goPageDown : function ( e ) { e . moveV ( 1 , "page" ) } , goCharLeft : function ( e ) { e . moveH ( - 1 , "char" ) } , goCharRight : function ( e ) { e . moveH ( 1 , "char" ) } , goColumnLeft : function ( e ) { e . moveH ( - 1 , "column" ) } , goColumnRight : function ( e ) { e . moveH ( 1 , "column" ) } , goWordLeft : function ( e ) { e . moveH ( - 1 , "word" ) } , goGroupRight : function ( e ) { e . moveH ( 1 , "group" ) } , goGroupLeft : function ( e ) { e . moveH ( - 1 , "group" ) } , goWordRight : function ( e ) { e . moveH ( 1 , "word" ) } , delCharBefore : function ( e ) { e . deleteH ( - 1 , "char" ) } , delCharAfter : function ( e ) { e . deleteH ( 1 , "char" ) } , delWordBefore : function ( e ) { e . deleteH ( - 1 , "word" ) } , delWordAfter : function ( e ) { e . deleteH ( 1 , "word" ) } , delGroupBefore : function ( e ) { e . deleteH ( - 1 , "group" ) } , delGroupAfter : function ( e ) { e . deleteH ( 1 , "group" ) } , indentAuto : function ( e ) { e . indentSelection ( "smart" ) } , indentMore : function ( e ) { e . indentSelection ( "add" ) } , indentLess : function ( e ) { e . indentSelection ( "subtract" ) } , insertTab : function ( e ) { e . replaceSelection ( "\t" ) } , insertSoftTab : function ( e ) { for ( var t = [ ] , n = e . listSelections ( ) , r = e . options . tabSize , i = 0 ; i < n . length ; i ++ ) { var o = n [ i ] . from ( ) , a = Fa ( e . getLine ( o . line ) , o . ch , r ) ; t . push ( Oi ( r - a % r ) ) } e . replaceSelections ( t ) } , defaultTab : function ( e ) { e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Zr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new Bo ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new Bo ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , Bo ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var a = Zr ( e . doc , i . line - 1 ) . text ; a && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + a . charAt ( a . length - 1 ) , Bo ( i . line - 1 , a . length - 1 ) , Bo ( i . line , 1 ) , "+transpose" ) } n . push ( new fe ( i , i ) ) } e . setSelections ( n ) } ) } , newlineAndIndent : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) . length , n = 0 ; t > n ; n ++ ) { var r = e . listSelections ( ) [ n ] ; e . replaceRange ( e . do
w } } ( ) ; return e . version = "5.15.2" , e } ) } , { } ] , 11 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../markdown/markdown" ) , t ( "../../addon/mode/overlay" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i ; e . defineMode ( "gfm" , function ( n , r ) { function i ( e ) { return e . code = ! 1 , null } var o = 0 , a = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , n ) { if ( n . combineTokens = null , n . codeBlock ) return e . match ( /^```+/ ) ? ( n . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( n . code = ! 1 ) , e . sol ( ) && e . match ( /^```+/ ) ) return e . skipToEnd ( ) , n . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var i = e . pos ; e . eatWhile ( "`" ) ; var a = 1 + e . pos - i ; return n . code ? a === o && ( n . code = ! 1 ) : ( o = a , n . code = ! 0 ) , null } if ( n . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return n . ateSpace = ! 0 , null ; if ( ( e . sol ( ) || n . ateSpace ) && ( n . ateSpace = ! 1 , r . gitHubSpice !== ! 1 ) ) { if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return n . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return n . combineTokens = ! 0 , "link" } return e . match ( t ) && "](" != e . string . slice ( e . start - 2 , e . start ) && ( 0 == e . start || /\W/ . test ( e . string . charAt ( e . start - 1 ) ) ) ? ( n . combineTokens = ! 0 , "link" ) : ( e . next ( ) , null ) } , blankLine : i } , l = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : "```" , strikethrough : ! 0 } ; for ( var s in r ) l [ s ] = r [ s ] ; return l . name = "markdown" , e . overlayMode ( e . getMode ( n , l ) , a ) } , "markdown" ) , e . defineMIME ( "text/x-gfm" , "gfm" ) } ) } , { "../../addon/mode/overlay" : 8 , "../../lib/codemirror" : 10 , "../markdown/markdown" : 12 } ] , 12 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../xml/xml" ) , t ( "../meta" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../xml/xml" , "../meta" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "markdown" , function ( t , n ) { function r ( n ) { if ( e . findModeByName ) { var r = e . findModeByName ( n ) ; r && ( n = r . mime || r . mimes [ 0 ] ) } var i = e . getMode ( t , n ) ; return "null" == i . name ? null : i } function i ( e , t , n ) { return t . f = t . inline = n , n ( e , t ) } function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function l ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , k && e . f == c && ( e . f = p , e . block = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( t , o ) { var l = t . sol ( ) , s = o . list !== ! 1 , c = o . indentedCode ; o . indentedCode = ! 1 , s && ( o . indentationDiff >= 0 ? ( o . indentationDiff < 4 && ( o . indentation -= o . indentationDiff ) , o . list = null ) : o . indentation > 0 ? o . list = null : o . list = ! 1 ) ; var f = null ; if ( o . indentationDiff >= 4 ) return t . skipToEnd ( ) , c || a ( o . prevLine ) ? ( o . indentation -= 4 , o . indentedCode = ! 0 , S . code ) : null ; if ( t . eatSpace ( ) ) return null ; if ( ( f = t . match ( A ) ) && f [ 1 ] . length <= 6 ) return o . header = f [ 1 ] . length , n . highl
s *= 2 ) , t += a + f >= 1 ? h / s : h * Math . pow ( 2 , 1 - f ) , t * s >= 2 && ( a ++ , s /= 2 ) , a + f >= u ? ( l = 0 , a = u ) : a + f >= 1 ? ( l = ( t * s - 1 ) * Math . pow ( 2 , i ) , a += f ) : ( l = t * Math . pow ( 2 , f - 1 ) * Math . pow ( 2 , i ) , a = 0 ) ) ; i >= 8 ; e [ n + d ] = 255 & l , d += p , l /= 256 , i -= 8 ) ; for ( a = a << i | l , c += i ; c > 0 ; e [ n + d ] = 255 & a , d += p , a /= 256 , c -= 8 ) ; e [ n + d - p ] |= 128 * m } } , { } ] , 16 : [ function ( e , t , n ) { var r = { } . toString ; t . exports = Array . isArray || function ( e ) { return "[object Array]" == r . call ( e ) } } , { } ] , 17 : [ function ( t , n , r ) { ( function ( t ) { ( function ( ) { function t ( e ) { this . tokens = [ ] , this . tokens . links = { } , this . options = e || h . defaults , this . rules = d . normal , this . options . gfm && ( this . options . tables ? this . rules = d . tables : this . rules = d . gfm ) } function i ( e , t ) { if ( this . options = t || h . defaults , this . links = e , this . rules = p . normal , this . renderer = this . options . renderer || new o , this . renderer . options = this . options , ! this . links ) throw new Error ( "Tokens array requires a `links` property." ) ; this . options . gfm ? this . options . breaks ? this . rules = p . breaks : this . rules = p . gfm : this . options . pedantic && ( this . rules = p . pedantic ) } function o ( e ) { this . options = e || { } } function a ( e ) { this . tokens = [ ] , this . token = null , this . options = e || h . defaults , this . options . renderer = this . options . renderer || new o , this . renderer = this . options . renderer , this . renderer . options = this . options } function l ( e , t ) { return e . replace ( t ? /&/g : /&(?!#?\w+;)/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) . replace ( /"/g , """ ) . replace ( /'/g , "'" ) } function s ( e ) { return e . replace ( /&([#\w]+);/g , function ( e , t ) { return t = t . toLowerCase ( ) , "colon" === t ? ":" : "#" === t . charAt ( 0 ) ? "x" === t . charAt ( 1 ) ? String . fromCharCode ( parseInt ( t . substring ( 2 ) , 16 ) ) : String . fromCharCode ( + t . substring ( 1 ) ) : "" } ) } function c ( e , t ) { return e = e . source , t = t || "" , function n ( r , i ) { return r ? ( i = i . source || i , i = i . replace ( /(^|[^\[])\^/g , "$1" ) , e = e . replace ( r , i ) , n ) : new RegExp ( e , t ) } } function u ( ) { } function f ( e ) { for ( var t , n , r = 1 ; r < arguments . length ; r ++ ) { t = arguments [ r ] ; for ( n in t ) Object . prototype . hasOwnProperty . call ( t , n ) && ( e [ n ] = t [ n ] ) } return e } function h ( e , n , r ) { if ( r || "function" == typeof n ) { r || ( r = n , n = null ) , n = f ( { } , h . defaults , n || { } ) ; var i , o , s = n . highlight , c = 0 ; try { i = t . lex ( e , n ) } catch ( u ) { return r ( u ) } o = i . length ; var d = function ( e ) { if ( e ) return n . highlight = s , r ( e ) ; var t ; try { t = a . parse ( i , n ) } catch ( o ) { e = o } return n . highlight = s , e ? r ( e ) : r ( null , t ) } ; if ( ! s || s . length < 3 ) return d ( ) ; if ( delete n . highlight , ! o ) return d ( ) ; for ( ; c < i . length ; c ++ ) ! function ( e ) { return "code" !== e . type ? -- o || d ( ) : s ( e . text , e . lang , function ( t , n ) { return t ? d ( t ) : null == n || n === e . text ? -- o || d ( ) : ( e . text = n , e . escaped = ! 0 , void ( -- o || d ( ) ) ) } ) } ( i [ c ] ) } else try { return n && ( n = f ( { } , h . defaults , n ) ) , a . parse ( t . lex ( e , n ) , n ) } catch ( u ) { if ( u . message += "\nPlease report this to https://github.com/chjj/marked." , ( n || h . defaults ) . silent ) return "<p>An error occured:</p><pre>" + l ( u . message + "" , ! 0 ) + "</pre>" ; throw u } } var d = { newline : /^\n+/ , code : /^( {4}[^\n]+\n*)+/ , fences : u , hr : /^( *[-*_]){3,} *(?:\n+|$)/ , heading : /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/ , nptable : u , lheading : /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/ , blockquote : /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/ , list : /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/ , html : /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/ , def : /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/ , table : u , paragraph : /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/ , text : /^[^\n]+/ } ; d . bullet = /(?:[*+-]|\d+\.)/ , d . item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/ , d . item = c ( d . item , "gm" ) ( /bull/g , d . bullet ) ( ) , d . list = c ( d . list ) ( /bull/g , d . bullet ) ( "hr" , "\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))" ) ( "def" , "\\n+(?=" + d . def . source + ")" ) ( ) , d . blockquote = c ( d . blockquote ) ( "def" , d . def ) ( ) , d . _tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b" , d . html = c ( d . html ) ( "comment" , /<!--[\s\S]*?-->/ ) ( "closed" , /<(tag)[\s\S]+?<\/\1>/ ) ( "closing" , /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/ ) ( /tag/g , d . _tag ) ( ) , d . paragraph = c ( d . paragraph ) ( "hr" , d . hr ) ( "heading" , d . heading ) ( "lheading" , d . lheading ) ( "blockquote" , d . blockquote ) ( "tag" , "<" + d . _tag ) ( "def" , d . def ) ( ) , d . normal = f ( { } , d ) , d . gfm = f ( { } , d . normal , { fences : /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/ , paragraph : /^/ , heading : / ^ * ( # { 1 , 6 } ) + ( [ ^ \ n ] +
for ( var r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = r . line ; o <= i . line ; o ++ ) ! function ( r ) { var i = e . getLine ( r ) , o = i . search ( /[^#]/ ) ; i = void 0 !== t ? 0 >= o ? "bigger" == t ? "###### " + i : "# " + i : 6 == o && "smaller" == t ? i . substr ( 7 ) : 1 == o && "bigger" == t ? i . substr ( 2 ) : "bigger" == t ? i . substr ( 1 ) : "#" + i : 1 == n ? 0 >= o ? "# " + i : o == n ? i . substr ( o + 1 ) : "# " + i . substr ( o + 1 ) : 2 == n ? 0 >= o ? "## " + i : o == n ? i . substr ( o + 1 ) : "## " + i . substr ( o + 1 ) : 0 >= o ? "### " + i : o == n ? i . substr ( o + 1 ) : "### " + i . substr ( o + 1 ) , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( o ) ; e . focus ( ) } } function I ( e , t ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { for ( var n = l ( e ) , r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = { quote : /^(\s*)\>\s+/ , "unordered-list" : /^(\s*)(\*|\-|\+)\s+/ , "ordered-list" : /^(\s*)\d+\.\s+/ } , a = { quote : "> " , "unordered-list" : "* " , "ordered-list" : "1. " } , s = r . line ; s <= i . line ; s ++ ) ! function ( r ) { var i = e . getLine ( r ) ; i = n [ t ] ? i . replace ( o [ t ] , "$1" ) : a [ t ] + i , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( s ) ; e . focus ( ) } } function P ( e , t , n , r ) { if ( ! /editor-preview-active/ . test ( e . codemirror . getWrapperElement ( ) . lastChild . className ) ) { r = "undefined" == typeof r ? n : r ; var i , o = e . codemirror , a = l ( o ) , s = n , c = r , u = o . getCursor ( "start" ) , f = o . getCursor ( "end" ) ; a [ t ] ? ( i = o . getLine ( u . line ) , s = i . slice ( 0 , u . ch ) , c = i . slice ( u . ch ) , "bold" == t ? ( s = s . replace ( /(\*\*|__)(?![\s\S]*(\*\*|__))/ , "" ) , c = c . replace ( /(\*\*|__)/ , "" ) ) : "italic" == t ? ( s = s . replace ( /(\*|_)(?![\s\S]*(\*|_))/ , "" ) , c = c . replace ( /(\*|_)/ , "" ) ) : "strikethrough" == t && ( s = s . replace ( /(\*\*|~~)(?![\s\S]*(\*\*|~~))/ , "" ) , c = c . replace ( /(\*\*|~~)/ , "" ) ) , o . replaceRange ( s + c , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , "bold" == t || "strikethrough" == t ? ( u . ch -= 2 , u !== f && ( f . ch -= 2 ) ) : "italic" == t && ( u . ch -= 1 , u !== f && ( f . ch -= 1 ) ) ) : ( i = o . getSelection ( ) , "bold" == t ? ( i = i . split ( "**" ) . join ( "" ) , i = i . split ( "__" ) . join ( "" ) ) : "italic" == t ? ( i = i . split ( "*" ) . join ( "" ) , i = i . split ( "_" ) . join ( "" ) ) : "strikethrough" == t && ( i = i . split ( "~~" ) . join ( "" ) ) , o . replaceSelection ( s + i + c ) , u . ch += n . length , f . ch = u . ch + i . length ) , o . setSelection ( u , f ) , o . focus ( ) } } function R ( e ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) for ( var t , n = e . getCursor ( "start" ) , r = e . getCursor ( "end" ) , i = n . line ; i <= r . line ; i ++ ) t = e . getLine ( i ) , t = t . replace ( /^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/ , "" ) , e . replaceRange ( t , { line : i , ch : 0 } , { line : i , ch : 99999999999999 } ) } function D ( e , t ) { for ( var n in t ) t . hasOwnProperty ( n ) && ( t [ n ] instanceof Array ? e [ n ] = t [ n ] . concat ( e [ n ] instanceof Array ? e [ n ] : [ ] ) : null !== t [ n ] && "object" == typeof t [ n ] && t [ n ] . constructor === Object ? e [ n ] = D ( e [ n ] || { } , t [ n ] ) : e [ n ] = t [ n ] ) ; return e } function H ( e ) { for ( var t = 1 ; t < arguments . length ; t ++ ) e = D ( e , arguments [ t ] ) ; return e } function W ( e ) { var t = /[a-zA-Z0-9_\u0392-\u03c9\u0410-\u04F9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g , n = e . match ( t ) , r = 0 ; if ( null === n ) return r ; for ( var i = 0 ; i < n . length ; i ++ ) r += n [ i ] . charCodeAt ( 0 ) >= 19968 ? n [ i ] . length : 1 ; return r } function B ( e ) { e = e || { } , e . parent = this ; var t = ! 0 ; if ( e . autoDownloadFontAwesome === ! 1 && ( t = ! 1 ) , e . autoDownloadFontAwesome !== ! 0 ) for ( var n = document . styleSheets , r = 0 ; r < n . length ; r ++ ) n [ r ] . href && n [ r ] . href . indexOf ( "//maxcdn.bootstrapcdn.com/font-awesome/" ) > - 1 && ( t = ! 1 ) ; if ( t ) { var i = document . createElement ( "link" ) ; i . rel = "stylesheet" , i . href = "https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" , document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( i ) } if ( e . element ) this . element = e . element ; else if ( null === e . element ) return void console . log ( "SimpleMDE: Error. No element was found." ) ; if ( void 0 === e . toolbar ) { e . toolbar = [ ] ; for ( var o in K ) K . hasOwnProperty ( o ) && ( - 1 != o . indexOf ( "separator-" ) && e . toolbar . push ( "|" ) , ( K [ o ] . default === ! 0 || e . showIcons && e . showIcons . constructor === Array && - 1 != e . showIcons . indexOf ( o ) ) && e . toolbar . push ( o ) ) } e . hasOwnProperty ( "status" ) || ( e . status = [ "autosave" , "lines" , "words" , "cursor" ] ) , e . previewRender || ( e . previewRender = function ( e ) { return this . parent . markdown ( e ) } ) , e . parsingConfig = H ( { highlightFormatting : ! 0 } , e . parsingConfig || { } ) , e . insertTexts = H ( { } , X , e . insertTexts || { } ) , e . promptTexts = Z , e . blockStyles = H ( { } , J , e . blockStyles || { } ) , e . shortcuts = H ( { } , G , e . shortcuts || { } ) , void 0 != e . autosave && void 0 != e . autosave . unique _id && "" != e . autosave . unique _id && ( e . autosave . uniqueId = e . au
return e || ( e = document ) , e . head || e . getElementsByTagName ( "head" ) [ 0 ] || e . documentElement } , t . createElement = function ( e , t ) { return document . createElementNS ? document . createElementNS ( t || r , e ) : document . createElement ( e ) } , t . hasCssClass = function ( e , t ) { var n = ( e . className + "" ) . split ( /\s+/g ) ; return n . indexOf ( t ) !== - 1 } , t . addCssClass = function ( e , n ) { t . hasCssClass ( e , n ) || ( e . className += " " + n ) } , t . removeCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) ; ; ) { var r = n . indexOf ( t ) ; if ( r == - 1 ) break ; n . splice ( r , 1 ) } e . className = n . join ( " " ) } , t . toggleCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) , r = ! 0 ; ; ) { var i = n . indexOf ( t ) ; if ( i == - 1 ) break ; r = ! 1 , n . splice ( i , 1 ) } return r && n . push ( t ) , e . className = n . join ( " " ) , r } , t . setCssClass = function ( e , n , r ) { r ? t . addCssClass ( e , n ) : t . removeCssClass ( e , n ) } , t . hasCssString = function ( e , t ) { var r , n = 0 ; if ( t = t || document , t . createStyleSheet && ( r = t . styleSheets ) ) { for ( ; n < r . length ; ) if ( r [ n ++ ] . owningElement . id === e ) return ! 0 } else if ( r = t . getElementsByTagName ( "style" ) ) for ( ; n < r . length ; ) if ( r [ n ++ ] . id === e ) return ! 0 ; return ! 1 } , t . importCssString = function ( n , r , i ) { if ( i = i || document , r && t . hasCssString ( r , i ) ) return null ; var s ; r && ( n += "\n/*# sourceURL=ace/css/" + r + " */" ) , i . createStyleSheet ? ( s = i . createStyleSheet ( ) , s . cssText = n , r && ( s . owningElement . id = r ) ) : ( s = t . createElement ( "style" ) , s . appendChild ( i . createTextNode ( n ) ) , r && ( s . id = r ) , t . getDocumentHead ( i ) . appendChild ( s ) ) } , t . importCssStylsheet = function ( e , n ) { if ( n . createStyleSheet ) n . createStyleSheet ( e ) ; else { var r = t . createElement ( "link" ) ; r . rel = "stylesheet" , r . href = e , t . getDocumentHead ( n ) . appendChild ( r ) } } , t . getInnerWidth = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingLeft" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingRight" ) , 10 ) + e . clientWidth } , t . getInnerHeight = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingTop" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingBottom" ) , 10 ) + e . clientHeight } , t . scrollbarWidth = function ( e ) { var n = t . createElement ( "ace_inner" ) ; n . style . width = "100%" , n . style . minWidth = "0px" , n . style . height = "200px" , n . style . display = "block" ; var r = t . createElement ( "ace_outer" ) , i = r . style ; i . position = "absolute" , i . left = "-10000px" , i . overflow = "hidden" , i . width = "200px" , i . minWidth = "0px" , i . height = "150px" , i . display = "block" , r . appendChild ( n ) ; var s = e . documentElement ; s . appendChild ( r ) ; var o = n . offsetWidth ; i . overflow = "scroll" ; var u = n . offsetWidth ; return o == u && ( u = r . clientWidth ) , s . removeChild ( r ) , o - u } , "undefined" == typeof document ? void ( t . importCssString = function ( ) { } ) : ( void 0 !== window . pageYOffset ? ( t . getPageScrollTop = function ( ) { return window . pageYOffset } , t . getPageScrollLeft = function ( ) { return window . pageXOffset } ) : ( t . getPageScrollTop = function ( ) { return document . body . scrollTop } , t . getPageScrollLeft = function ( ) { return document . body . scrollLeft } ) , window . getComputedStyle ? t . computedStyle = function ( e , t ) { return t ? ( window . getComputedStyle ( e , "" ) || { } ) [ t ] || "" : window . getComputedStyle ( e , "" ) || { } } : t . computedStyle = function ( e , t ) { return t ? e . currentStyle [ t ] : e . currentStyle } , t . setInnerHtml = function ( e , t ) { var n = e . cloneNode ( ! 1 ) ; return n . innerHTML = t , e . parentNode . replaceChild ( n , e ) , n } , "textContent" in document . documentElement ? ( t . setInnerText = function ( e , t ) { e . textContent = t } , t . getInnerText = function ( e ) { return e . textContent } ) : ( t . setInnerText = function ( e , t ) { e . innerText = t } , t . getInnerText = function ( e ) { return e . innerText } ) , t . getParentWindow = function ( e ) { return e . defaultView || e . parentWindow } , void 0 ) } ) , ace . define ( "ace/lib/oop" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; t . inherits = function ( e , t ) { e . super _ = t , e . prototype = Object . create ( t . prototype , { constructor : { value : e , enumerable : ! 1 , writable : ! 0 , configurable : ! 0 } } ) } , t . mixin = function ( e , t ) { for ( var n in t ) e [ n ] = t [ n ] ; return e } , t . implement = function ( e , n ) { t . mixin ( e , n ) } } ) , ace . define ( "ace/lib/keys" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; e ( "./fixoldbrowsers" ) ; var r = e ( "./oop" ) , i = function ( ) { var t , n , e = { MODIFIER _KEYS : { 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 224 : "Meta" } , KEY _MODS : { ctrl : 1 , alt : 2 , option : 2 , shift : 4 , super : 8 , meta : 8 , command : 8 , cmd : 8 } , FUNCTION _KEYS : { 8 : "Backspace" , 9 : "Tab" , 13 : "Return" , 19 : "Pause" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "Print" , 45 : "
try { i = e . dataTransfer . effectAllowed . toLowerCase ( ) } catch ( e ) { } var o = "none" ; return r && t . indexOf ( i ) >= 0 ? o = "copy" : n . indexOf ( i ) >= 0 ? o = "move" : t . indexOf ( i ) >= 0 && ( o = "copy" ) , o } var t = e . editor , n = r . createElement ( "img" ) ; n . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , s . isOpera && ( n . style . cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;" ) ; var f = [ "dragWait" , "dragWaitEnd" , "startDrag" , "dragReadyEnd" , "onMouseDrag" ] ; f . forEach ( function ( t ) { e [ t ] = this [ t ] } , this ) , t . addEventListener ( "mousedown" , this . onMouseDown . bind ( e ) ) ; var h , p , d , v , m , g , b , w , E , S , x , c = t . container , y = 0 ; this . onDragStart = function ( e ) { if ( this . cancelDrag || ! c . draggable ) { var r = this ; return setTimeout ( function ( ) { r . startSelect ( ) , r . captureMouse ( e ) } , 0 ) , e . preventDefault ( ) } m = t . getSelectionRange ( ) ; var i = e . dataTransfer ; i . effectAllowed = t . getReadOnly ( ) ? "copy" : "copyMove" , s . isOpera && ( t . container . appendChild ( n ) , n . scrollTop = 0 ) , i . setDragImage && i . setDragImage ( n , 0 , 0 ) , s . isOpera && t . container . removeChild ( n ) , i . clearData ( ) , i . setData ( "Text" , t . session . getTextRange ( ) ) , w = ! 0 , this . setState ( "drag" ) } , this . onDragEnd = function ( e ) { if ( c . draggable = ! 1 , w = ! 1 , this . setState ( null ) , ! t . getReadOnly ( ) ) { var n = e . dataTransfer . dropEffect ; ! b && "move" == n && t . session . remove ( t . getSelectionRange ( ) ) , t . renderer . $cursorLayer . setBlinking ( ! 0 ) } this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) } , this . onDragEnter = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || k ( ) , y ++ , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragOver = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || ( k ( ) , y ++ ) , null !== A && ( A = null ) , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragLeave = function ( e ) { if ( y -- , y <= 0 && h ) return L ( ) , b = null , i . preventDefault ( e ) } , this . onDrop = function ( e ) { if ( g ) { var n = e . dataTransfer ; if ( w ) switch ( b ) { case "move" : m = m . contains ( g . row , g . column ) ? { start : g , end : g } : t . moveText ( m , g ) ; break ; case "copy" : m = t . moveText ( m , g , ! 0 ) } else { var r = n . getData ( "Text" ) ; m = { start : g , end : t . session . insert ( g , r ) } , t . focus ( ) , b = null } return L ( ) , i . preventDefault ( e ) } } , i . addListener ( c , "dragstart" , this . onDragStart . bind ( e ) ) , i . addListener ( c , "dragend" , this . onDragEnd . bind ( e ) ) , i . addListener ( c , "dragenter" , this . onDragEnter . bind ( e ) ) , i . addListener ( c , "dragover" , this . onDragOver . bind ( e ) ) , i . addListener ( c , "dragleave" , this . onDragLeave . bind ( e ) ) , i . addListener ( c , "drop" , this . onDrop . bind ( e ) ) ; var A = null } function l ( e , t , n , r ) { return Math . sqrt ( Math . pow ( n - e , 2 ) + Math . pow ( r - t , 2 ) ) } var r = e ( "../lib/dom" ) , i = e ( "../lib/event" ) , s = e ( "../lib/useragent" ) , o = 200 , u = 200 , a = 5 ; ( function ( ) { this . dragWait = function ( ) { var e = Date . now ( ) - this . mousedownEvent . time ; e > this . editor . getDragDelay ( ) && this . startDrag ( ) } , this . dragWaitEnd = function ( ) { var e = this . editor . container ; e . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) , this . selectEnd ( ) } , this . dragReadyEnd = function ( e ) { this . editor . renderer . $cursorLayer . setBlinking ( ! this . editor . getReadOnly ( ) ) , this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) , this . dragWaitEnd ( ) } , this . startDrag = function ( ) { this . cancelDrag = ! 1 ; var e = this . editor , t = e . container ; t . draggable = ! 0 , e . renderer . $cursorLayer . setBlinking ( ! 1 ) , e . setStyle ( "ace_dragging" ) ; var n = s . isWin ? "default" : "move" ; e . renderer . setCursorStyle ( n ) , this . setState ( "dragReady" ) } , this . onMouseDrag = function ( e ) { var t = this . editor . container ; if ( s . isIE && "dragReady" == this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 3 && t . dragDrop ( ) } if ( "dragWait" === this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 0 && ( t . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) ) } } , this . onMouseDown = function ( e ) { if ( this . $dragEnabled ) { this . mousedownEvent = e ; var t = this . editor , n = e . inSelection ( ) , r = e . getButton ( ) , i = e . domEvent . detail || 1 ; if ( 1 === i && 0 === r && n ) { if ( e . editor . inMultiSelectMode && ( e . getAccelKey ( ) || e . getShiftKey ( ) ) ) return ; this . mousedownEvent . time = Date . now ( ) ; var o = e . domEvent . target || e . domEvent . srcElement ; if ( "unselectable" in o && ( o . unselectable = "on" ) , t . getDragDelay ( ) ) { if ( s . isWebKit ) { this . cancelDrag = ! 0 ; var u = t . container ; u
var t = e . clone ( ) ; return t . isBackwards = e . cursor == e . start , t } ) ; else { var e = this . getRange ( ) ; e . isBackwards = this . isBackwards ( ) } return e } , this . fromJSON = function ( e ) { if ( void 0 == e . start ) { if ( this . rangeList ) { this . toSingleRange ( e [ 0 ] ) ; for ( var t = e . length ; t -- ; ) { var n = o . fromPoints ( e [ t ] . start , e [ t ] . end ) ; e [ t ] . isBackwards && ( n . cursor = n . start ) , this . addRange ( n , ! 0 ) } return } e = e [ 0 ] } this . rangeList && this . toSingleRange ( e ) , this . setSelectionRange ( e , e . isBackwards ) } , this . isEqual = function ( e ) { if ( ( e . length || this . rangeCount ) && e . length != this . rangeCount ) return ! 1 ; if ( ! e . length || ! this . ranges ) return this . getRange ( ) . isEqual ( e ) ; for ( var t = this . ranges . length ; t -- ; ) if ( ! this . ranges [ t ] . isEqual ( e [ t ] ) ) return ! 1 ; return ! 0 } } ) . call ( u . prototype ) , t . Selection = u } ) , ace . define ( "ace/tokenizer" , [ "require" , "exports" , "module" , "ace/config" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./config" ) , i = 2e3 , s = function ( e ) { this . states = e , this . regExps = { } , this . matchMappings = { } ; for ( var t in this . states ) { for ( var n = this . states [ t ] , r = [ ] , i = 0 , s = this . matchMappings [ t ] = { defaultToken : "text" } , o = "g" , u = [ ] , a = 0 ; a < n . length ; a ++ ) { var f = n [ a ] ; if ( f . defaultToken && ( s . defaultToken = f . defaultToken ) , f . caseInsensitive && ( o = "gi" ) , null != f . regex ) { f . regex instanceof RegExp && ( f . regex = f . regex . toString ( ) . slice ( 1 , - 1 ) ) ; var l = f . regex , c = new RegExp ( "(?:(" + l + ")|(.))" ) . exec ( "a" ) . length - 2 ; Array . isArray ( f . token ) ? 1 == f . token . length || 1 == c ? f . token = f . token [ 0 ] : c - 1 != f . token . length ? ( this . reportError ( "number of classes and regexp groups doesn't match" , { rule : f , groupCount : c - 1 } ) , f . token = f . token [ 0 ] ) : ( f . tokenArray = f . token , f . token = null , f . onMatch = this . $arrayTokens ) : "function" == typeof f . token && ! f . onMatch && ( c > 1 ? f . onMatch = this . $applyToken : f . onMatch = f . token ) , c > 1 && ( /\\\d/ . test ( f . regex ) ? l = f . regex . replace ( /\\([0-9]+)/g , function ( e , t ) { return "\\" + ( parseInt ( t , 10 ) + i + 1 ) } ) : ( c = 1 , l = this . removeCapturingGroups ( f . regex ) ) , ! f . splitRegex && "string" != typeof f . token && u . push ( f ) ) , s [ i ] = a , i += c , r . push ( l ) , f . onMatch || ( f . onMatch = null ) } } r . length || ( s [ 0 ] = 0 , r . push ( "$" ) ) , u . forEach ( function ( e ) { e . splitRegex = this . createSplitterRegexp ( e . regex , o ) } , this ) , this . regExps [ t ] = new RegExp ( "(" + r . join ( ")|(" ) + ")|($)" , o ) } } ; ( function ( ) { this . $setMaxTokenCount = function ( e ) { i = 0 | e } , this . $applyToken = function ( e ) { var t = this . splitRegex . exec ( e ) . slice ( 1 ) , n = this . token . apply ( this , t ) ; if ( "string" == typeof n ) return [ { type : n , value : e } ] ; for ( var r = [ ] , i = 0 , s = n . length ; i < s ; i ++ ) t [ i ] && ( r [ r . length ] = { type : n [ i ] , value : t [ i ] } ) ; return r } , this . $arrayTokens = function ( e ) { if ( ! e ) return [ ] ; var t = this . splitRegex . exec ( e ) ; if ( ! t ) return "text" ; for ( var n = [ ] , r = this . tokenArray , i = 0 , s = r . length ; i < s ; i ++ ) t [ i + 1 ] && ( n [ n . length ] = { type : r [ i ] , value : t [ i + 1 ] } ) ; return n } , this . removeCapturingGroups = function ( e ) { var t = e . replace ( /\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g , function ( e , t ) { return t ? "(?:" : e } ) ; return t } , this . createSplitterRegexp = function ( e , t ) { if ( e . indexOf ( "(?=" ) != - 1 ) { var n = 0 , r = ! 1 , i = { } ; e . replace ( /(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g , function ( e , t , s , o , u , a ) { return r ? r = "]" != u : u ? r = ! 0 : o ? ( n == i . stack && ( i . end = a + 1 , i . stack = - 1 ) , n -- ) : s && ( n ++ , 1 != s . length && ( i . stack = n , i . start = a ) ) , e } ) , null != i . end && /^\)*$/ . test ( e . substr ( i . end ) ) && ( e = e . substring ( 0 , i . start ) + e . substr ( i . end ) ) } return "^" != e . charAt ( 0 ) && ( e = "^" + e ) , "$" != e . charAt ( e . length - 1 ) && ( e += "$" ) , new RegExp ( e , ( t || "" ) . replace ( "g" , "" ) ) } , this . getLineTokens = function ( e , t ) { if ( t && "string" != typeof t ) { var n = t . slice ( 0 ) ; t = n [ 0 ] , "#tmp" === t && ( n . shift ( ) , t = n . shift ( ) ) } else var n = [ ] ; var r = t || "start" , s = this . states [ r ] ; s || ( r = "start" , s = this . states [ r ] ) ; var o = this . matchMappings [ r ] , u = this . regExps [ r ] ; u . lastIndex = 0 ; for ( var a , f = [ ] , l = 0 , c = 0 , h = { type : null , value : "" } ; a = u . exec ( e ) ; ) { var p = o . defaultToken , d = null , v = a [ 0 ] , m = u . lastIndex ; if ( m - v . length > l ) { var g = e . substring ( l , m - v . length ) ; h . type == p ? h . value += g : ( h . type && f . push ( h ) , h = { type : p , value : g } ) } for ( var y = 0 ; y < a . length - 2 ; y ++ ) if ( void 0 !== a [ y + 1 ] ) { d = s [ o [ y ] ] , p = d . onMatch ? d . onMatch ( v , r , n ) : d . token , d . next && ( r = "string" == typeof d . next ? d . next : d . next ( r , n ) , s = this . states [ r ] , s || ( this . reportError ( "state doesn't exist" , r ) , r = "start" , s = this . states [ r ] ) , o = this . matchMappings [ r ] , l = m , u = this . regExps [ r ] , u . lastIndex = m ) ; break } if ( v ) if ( "string" == typeof p ) d && d . merge === ! 1 || h . type !== p ? ( h . type && f . push ( h ) , h = { type : p , value : v } ) : h . value += v ; else if ( p ) { h . type && f . push ( h ) , h = { type : null , value : "" } ; for
Pe : "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63" , Pi : "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20" , Pf : "00BB2019201D203A2E032E052E0A2E0D2E1D2E21" , Pc : "005F203F20402054FE33FE34FE4D-FE4FFF3F" , Po : "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65" , S : "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD" , Sm : "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC" , Sc : "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6" , Sk : "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3" , So : "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD" , Z : "002000A01680180E2000-200A20282029202F205F3000" , Zs : "002000A01680180E2000-200A202F205F3000" , Zl : "2028" , Zp : "2029" , C : " 0000 - 001 F007F - 009 F00AD03780379037F - 0383038 B038D03A20526 - 05300557055805600588058 B - 059005 C8 - 05 CF05EB - 05 EF05F5 - 0605061 C061D0620
this . session && this . detach ( ) , this . session = e , this . onChange = this . $onChange . bind ( this ) , this . session . on ( "change" , this . onChange ) } , this . detach = function ( ) { this . session && ( this . session . removeListener ( "change" , this . onChange ) , this . session = null ) } , this . $onChange = function ( e ) { if ( "insert" == e . action ) var t = e . start , n = e . end ; else var n = e . start , t = e . end ; for ( var r = t . row , i = n . row , s = i - r , o = - t . column + n . column , u = this . ranges , a = 0 , f = u . length ; a < f ; a ++ ) { var l = u [ a ] ; if ( ! ( l . end . row < r ) ) { if ( l . start . row > r ) break ; if ( l . start . row == r && l . start . column >= t . column && ( l . start . column != t . column || ! this . $insertRight ) && ( l . start . column += o , l . start . row += s ) , l . end . row == r && l . end . column >= t . column ) { if ( l . end . column == t . column && this . $insertRight ) continue ; l . end . column == t . column && o > 0 && a < f - 1 && l . end . column > l . start . column && l . end . column == u [ a + 1 ] . start . column && ( l . end . column -= o ) , l . end . column += o , l . end . row += s } } } if ( 0 != s && a < f ) for ( ; a < f ; a ++ ) { var l = u [ a ] ; l . start . row += s , l . end . row += s } } } ) . call ( s . prototype ) , t . RangeList = s } ) , ace . define ( "ace/edit_session/fold" , [ "require" , "exports" , "module" , "ace/range" , "ace/range_list" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; function u ( e , t ) { e . row -= t . row , 0 == e . row && ( e . column -= t . column ) } function a ( e , t ) { u ( e . start , t ) , u ( e . end , t ) } function f ( e , t ) { 0 == e . row && ( e . column += t . column ) , e . row += t . row } function l ( e , t ) { f ( e . start , t ) , f ( e . end , t ) } var i = ( e ( "../range" ) . Range , e ( "../range_list" ) . RangeList ) , s = e ( "../lib/oop" ) , o = t . Fold = function ( e , t ) { this . foldLine = null , this . placeholder = t , this . range = e , this . start = e . start , this . end = e . end , this . sameRow = e . start . row == e . end . row , this . subFolds = this . ranges = [ ] } ; s . inherits ( o , i ) , function ( ) { this . toString = function ( ) { return '"' + this . placeholder + '" ' + this . range . toString ( ) } , this . setFoldLine = function ( e ) { this . foldLine = e , this . subFolds . forEach ( function ( t ) { t . setFoldLine ( e ) } ) } , this . clone = function ( ) { var e = this . range . clone ( ) , t = new o ( e , this . placeholder ) ; return this . subFolds . forEach ( function ( e ) { t . subFolds . push ( e . clone ( ) ) } ) , t . collapseChildren = this . collapseChildren , t } , this . addSubFold = function ( e ) { if ( ! this . range . isEqual ( e ) ) { if ( ! this . range . containsRange ( e ) ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; a ( e , this . start ) ; for ( var t = e . start . row , n = e . start . column , r = 0 , i = - 1 ; r < this . subFolds . length && ( i = this . subFolds [ r ] . range . compare ( t , n ) , 1 == i ) ; r ++ ) ; var s = this . subFolds [ r ] ; if ( 0 == i ) return s . addSubFold ( e ) ; for ( var t = e . range . end . row , n = e . range . end . column , o = r , i = - 1 ; o < this . subFolds . length && ( i = this . subFolds [ o ] . range . compare ( t , n ) , 1 == i ) ; o ++ ) ; this . subFolds [ o ] ; if ( 0 == i ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; this . subFolds . splice ( r , o - r , e ) ; return e . setFoldLine ( this . foldLine ) , e } } , this . restoreRange = function ( e ) { return l ( e , this . start ) } } . call ( o . prototype ) } ) , ace . define ( "ace/edit_session/folding" , [ "require" , "exports" , "module" , "ace/range" , "ace/edit_session/fold_line" , "ace/edit_session/fold" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function u ( ) { this . getFoldAt = function ( e , t , n ) { var r = this . getFoldLine ( e ) ; if ( ! r ) return null ; for ( var i = r . folds , s = 0 ; s < i . length ; s ++ ) { var o = i [ s ] ; if ( o . range . contains ( e , t ) ) { if ( 1 == n && o . range . isEnd ( e , t ) ) continue ; if ( n == - 1 && o . range . isStart ( e , t ) ) continue ; return o } } } , this . getFoldsInRange = function ( e ) { var t = e . start , n = e . end , r = this . $foldData , i = [ ] ; t . column += 1 , n . column -= 1 ; for ( var s = 0 ; s < r . length ; s ++ ) { var o = r [ s ] . range . compareRange ( e ) ; if ( 2 != o ) { if ( o == - 2 ) break ; for ( var u = r [ s ] . folds , a = 0 ; a < u . length ; a ++ ) { var f = u [ a ] ; if ( o = f . range . compareRange ( e ) , o == - 2 ) break ; if ( 2 != o ) { if ( 42 == o ) break ; i . push ( f ) } } } } return t . column -= 1 , n . column += 1 , i } , this . getFoldsInRangeList = function ( e ) { if ( Array . isArray ( e ) ) { var t = [ ] ; e . forEach ( function ( e ) { t = t . concat ( this . getFoldsInRange ( e ) ) } , this ) } else var t = this . getFoldsInRange ( e ) ; return t } , this . getAllFolds = function ( ) { for ( var e = [ ] , t = this . $foldData , n = 0 ; n < t . length ; n ++ ) for ( var r = 0 ; r < t [ n ] . folds . length ; r ++ ) e . push ( t [ n ] . folds [ r ] ) ; return e } , this . getFoldStringAt = function ( e , t , n , r ) { if ( r = r || this . getFoldLine ( e ) , ! r ) return null ; for ( var s , o , i = { end : { column : 0 } } , u = 0 ; u < r . folds . length ; u ++ ) { o = r . folds [ u ] ; var a = o . range . compareEnd ( e , t ) ; if ( a == - 1 ) { s = this . getLine ( o . start . row ) . substring ( i . end . column , o . start . column ) ; break } if ( 0 === a ) return null ; i = o } return s || ( s = this . getLi
this . $useWrapMode && ( this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) , this . $resetRowCache ( 0 ) , this . _signal ( "changeWrapLimit" ) ) , ! 0 ) } , this . $constrainWrapLimit = function ( e , t , n ) { return t && ( e = Math . max ( t , e ) ) , n && ( e = Math . min ( n , e ) ) , e } , this . getWrapLimit = function ( ) { return this . $wrapLimit } , this . setWrapLimit = function ( e ) { this . setWrapLimitRange ( e , e ) } , this . getWrapLimitRange = function ( ) { return { min : this . $wrapLimitRange . min , max : this . $wrapLimitRange . max } } , this . $updateInternalDataOnChange = function ( e ) { var t = this . $useWrapMode , n = e . action , r = e . start , i = e . end , s = r . row , o = i . row , u = o - s , a = null ; if ( this . $updating = ! 0 , 0 != u ) if ( "remove" === n ) { this [ t ? "$wrapData" : "$rowLengthCache" ] . splice ( s , u ) ; var f = this . $foldData ; a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) ; var l = this . getFoldLine ( i . row ) , c = 0 ; if ( l ) { l . addRemoveChars ( i . row , i . column , r . column - i . column ) , l . shiftRow ( - u ) ; var h = this . getFoldLine ( s ) ; h && h !== l && ( h . merge ( l ) , l = h ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= i . row && l . shiftRow ( - u ) } o = s } else { var p = Array ( u ) ; p . unshift ( s , 0 ) ; var d = t ? this . $wrapData : this . $rowLengthCache ; d . splice . apply ( d , p ) ; var f = this . $foldData , l = this . getFoldLine ( s ) , c = 0 ; if ( l ) { var v = l . range . compareInside ( r . row , r . column ) ; 0 == v ? ( l = l . split ( r . row , r . column ) , l && ( l . shiftRow ( u ) , l . addRemoveChars ( o , 0 , i . column - r . column ) ) ) : v == - 1 && ( l . addRemoveChars ( s , 0 , i . column - r . column ) , l . shiftRow ( u ) ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= s && l . shiftRow ( u ) } } else { u = Math . abs ( e . start . column - e . end . column ) , "remove" === n && ( a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) , u = - u ) ; var l = this . getFoldLine ( s ) ; l && l . addRemoveChars ( s , r . column , u ) } return t && this . $wrapData . length != this . doc . getLength ( ) && console . error ( "doc.getLength() and $wrapData.length have to be the same!" ) , this . $updating = ! 1 , t ? this . $updateWrapData ( s , o ) : this . $updateRowLengthCache ( s , o ) , a } , this . $updateRowLengthCache = function ( e , t , n ) { this . $rowLengthCache [ e ] = null , this . $rowLengthCache [ t ] = null } , this . $updateWrapData = function ( e , t ) { var a , f , r = this . doc . getAllLines ( ) , i = this . getTabSize ( ) , s = this . $wrapData , o = this . $wrapLimit , l = e ; for ( t = Math . min ( t , r . length - 1 ) ; l <= t ; ) f = this . getFoldLine ( l , f ) , f ? ( a = [ ] , f . walk ( function ( e , t , i , s ) { var o ; if ( null != e ) { o = this . $getDisplayTokens ( e , a . length ) , o [ 0 ] = n ; for ( var f = 1 ; f < o . length ; f ++ ) o [ f ] = u } else o = this . $getDisplayTokens ( r [ t ] . substring ( s , i ) , a . length ) ; a = a . concat ( o ) } . bind ( this ) , f . end . row , r [ f . end . row ] . length + 1 ) , s [ f . start . row ] = this . $computeWrapSplits ( a , o , i ) , l = f . end . row + 1 ) : ( a = this . $getDisplayTokens ( r [ l ] ) , s [ l ] = this . $computeWrapSplits ( a , o , i ) , l ++ ) } ; var e = 1 , t = 2 , n = 3 , u = 4 , l = 9 , p = 10 , d = 11 , v = 12 ; this . $computeWrapSplits = function ( e , r , i ) { function g ( ) { var t = 0 ; if ( 0 === m ) return t ; if ( h ) for ( var n = 0 ; n < e . length ; n ++ ) { var r = e [ n ] ; if ( r == p ) t += 1 ; else { if ( r != d ) { if ( r == v ) continue ; break } t += i } } return c && h !== ! 1 && ( t += i ) , Math . min ( t , m ) } function y ( t ) { var n = e . slice ( a , t ) , r = n . length ; n . join ( "" ) . replace ( /12/g , function ( ) { r -= 1 } ) . replace ( /2/g , function ( ) { r -= 1 } ) , s . length || ( b = g ( ) , s . indent = b ) , f += r , s . push ( f ) , a = t } if ( 0 == e . length ) return [ ] ; for ( var s = [ ] , o = e . length , a = 0 , f = 0 , c = this . $wrapAsCode , h = this . $indentedSoftWrap , m = r <= Math . max ( 2 * i , 8 ) || h === ! 1 ? 0 : Math . floor ( r / 2 ) , b = 0 ; o - a > r - b ; ) { var w = a + r - b ; if ( e [ w - 1 ] >= p && e [ w ] >= p ) y ( w ) ; else if ( e [ w ] != n && e [ w ] != u ) { for ( var E = Math . max ( w - ( r - ( r >> 2 ) ) , a - 1 ) ; w > E && e [ w ] < n ; ) w -- ; if ( c ) { for ( ; w > E && e [ w ] < n ; ) w -- ; for ( ; w > E && e [ w ] == l ; ) w -- } else for ( ; w > E && e [ w ] < p ; ) w -- ; w > E ? y ( ++ w ) : ( w = a + r , e [ w ] == t && w -- , y ( w - b ) ) } else { for ( w ; w != a - 1 && e [ w ] != n ; w -- ) ; if ( w > a ) { y ( w ) ; continue } for ( w = a + r ; w < e . length && e [ w ] == u ; w ++ ) ; if ( w == e . length ) break ; y ( w ) } } return s } , this . $getDisplayTokens = function ( n , r ) { var s , i = [ ] ; r = r || 0 ; for ( var o = 0 ; o < n . length ; o ++ ) { var u = n . charCodeAt ( o ) ; if ( 9 == u ) { s = this . getScreenTabSize ( i . length + r ) , i . push ( d ) ; for ( var a = 1 ; a < s ; a ++ ) i . push ( v ) } else 32 == u ? i . push ( p ) : u > 39 && u < 48 || u > 57 && u < 64 ? i . push ( l ) : u >= 4352 && m ( u ) ? i . push ( e , t ) : i . push ( e ) } return i } , this . $getStringScreenWidth = function ( e , t , n ) { if ( 0 == t ) return [ 0 , 0 ] ; null == t && ( t = 1 / 0 ) , n = n || 0 ; var r , i ; for ( i = 0 ; i < e . length && ( r = e . charCodeAt ( i ) , n += 9 == r ? this . getScreenTabSize ( n ) : r >= 4352 && m ( r ) ? 2 : 1 , ! ( n > t ) ) ; i ++ ) ; return [ n , i ] } , this . lineWidgets = null , this . getRowLength = function ( e ) { if ( this . lineWidgets ) var t = this . lineWidgets [ e ] && this . lineWidgets [ e ] . rowCount || 0 ; else t = 0 ; return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapDat
} , { name : "expandtoline" , bindKey : o ( "Ctrl-Shift-L" , "Command-Shift-L" ) , exec : function ( e ) { var t = e . selection . getRange ( ) ; t . start . column = t . end . column = 0 , t . end . row ++ , e . selection . setRange ( t , ! 1 ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "joinlines" , bindKey : o ( null , null ) , exec : function ( e ) { for ( var t = e . selection . isBackwards ( ) , n = t ? e . selection . getSelectionLead ( ) : e . selection . getSelectionAnchor ( ) , i = t ? e . selection . getSelectionAnchor ( ) : e . selection . getSelectionLead ( ) , o = e . session . doc . getLine ( n . row ) . length , u = e . session . doc . getTextRange ( e . selection . getRange ( ) ) , a = u . replace ( /\n\s*/ , " " ) . length , f = e . session . doc . getLine ( n . row ) , l = n . row + 1 ; l <= i . row + 1 ; l ++ ) { var c = r . stringTrimLeft ( r . stringTrimRight ( e . session . doc . getLine ( l ) ) ) ; 0 !== c . length && ( c = " " + c ) , f += c } i . row + 1 < e . session . doc . getLength ( ) - 1 && ( f += e . session . doc . getNewLineCharacter ( ) ) , e . clearSelection ( ) , e . session . doc . replace ( new s ( n . row , 0 , i . row + 2 , 0 ) , f ) , a > 0 ? ( e . selection . moveCursorTo ( n . row , n . column ) , e . selection . selectTo ( n . row , n . column + a ) ) : ( o = e . session . doc . getLine ( n . row ) . length > o ? o + 1 : o , e . selection . moveCursorTo ( n . row , o ) ) } , multiSelectAction : "forEach" , readOnly : ! 0 } , { name : "invertSelection" , bindKey : o ( null , null ) , exec : function ( e ) { var t = e . session . doc . getLength ( ) - 1 , n = e . session . doc . getLine ( t ) . length , r = e . selection . rangeList . ranges , i = [ ] ; r . length < 1 && ( r = [ e . selection . getRange ( ) ] ) ; for ( var o = 0 ; o < r . length ; o ++ ) o == r . length - 1 && ( r [ o ] . end . row !== t || r [ o ] . end . column !== n ) && i . push ( new s ( r [ o ] . end . row , r [ o ] . end . column , t , n ) ) , 0 === o ? ( 0 !== r [ o ] . start . row || 0 !== r [ o ] . start . column ) && i . push ( new s ( 0 , 0 , r [ o ] . start . row , r [ o ] . start . column ) ) : i . push ( new s ( r [ o - 1 ] . end . row , r [ o - 1 ] . end . column , r [ o ] . start . row , r [ o ] . start . column ) ) ; e . exitMultiSelectMode ( ) , e . clearSelection ( ) ; for ( var o = 0 ; o < i . length ; o ++ ) e . selection . addRange ( i [ o ] , ! 1 ) } , readOnly : ! 0 , scrollIntoView : "none" } ] } ) , ace . define ( "ace/editor" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/keyboard/textinput" , "ace/mouse/mouse_handler" , "ace/mouse/fold_handler" , "ace/keyboard/keybinding" , "ace/edit_session" , "ace/search" , "ace/range" , "ace/lib/event_emitter" , "ace/commands/command_manager" , "ace/commands/default_commands" , "ace/config" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./lib/lang" ) , o = e ( "./lib/useragent" ) , u = e ( "./keyboard/textinput" ) . TextInput , a = e ( "./mouse/mouse_handler" ) . MouseHandler , f = e ( "./mouse/fold_handler" ) . FoldHandler , l = e ( "./keyboard/keybinding" ) . KeyBinding , c = e ( "./edit_session" ) . EditSession , h = e ( "./search" ) . Search , p = e ( "./range" ) . Range , d = e ( "./lib/event_emitter" ) . EventEmitter , v = e ( "./commands/command_manager" ) . CommandManager , m = e ( "./commands/default_commands" ) . commands , g = e ( "./config" ) , y = e ( "./token_iterator" ) . TokenIterator , b = function ( e , t ) { var n = e . getContainerElement ( ) ; this . container = n , this . renderer = e , this . commands = new v ( o . isMac ? "mac" : "win" , m ) , this . textInput = new u ( e . getTextAreaContainer ( ) , this ) , this . renderer . textarea = this . textInput . getElement ( ) , this . keyBinding = new l ( this ) , this . $mouseHandler = new a ( this ) , new f ( this ) , this . $blockScrolling = 0 , this . $search = ( new h ) . set ( { wrap : ! 0 } ) , this . $historyTracker = this . $historyTracker . bind ( this ) , this . commands . on ( "exec" , this . $historyTracker ) , this . $initOperationListeners ( ) , this . _$emitInputEvent = s . delayedCall ( function ( ) { this . _signal ( "input" , { } ) , this . session && this . session . bgTokenizer && this . session . bgTokenizer . scheduleStart ( ) } . bind ( this ) ) , this . on ( "change" , function ( e , t ) { t . _$emitInputEvent . schedule ( 31 ) } ) , this . setSession ( t || new c ( "" ) ) , g . resetOptions ( this ) , g . _signal ( "editor" , this ) } ; ( function ( ) { r . implement ( this , d ) , this . $initOperationListeners = function ( ) { this . selections = [ ] , this . commands . on ( "exec" , this . startOperation . bind ( this ) , ! 0 ) , this . commands . on ( "afterExec" , this . endOperation . bind ( this ) , ! 0 ) , this . $opResetTimer = s . delayedCall ( this . endOperation . bind ( this ) ) , this . on ( "change" , function ( ) { this . curOp || this . startOperation ( ) , this . curOp . docChanged = ! 0 } . bind ( this ) , ! 0 ) , this . on ( "changeSelection" , function ( ) { this . curOp || this . startOperation ( ) , this . curOp . selectionChanged = ! 0 } . bind ( this ) , ! 0 ) } , this . curOp = null , this . prevOp = { } , this . startOperation = function ( e ) { if
if ( this . selection . isEmpty ( ) ) for ( e = e || 1 ; e -- ; ) this . selection . moveCursorRight ( ) ; else { var t = this . getSelectionRange ( ) . end ; this . moveCursorToPosition ( t ) } this . clearSelection ( ) } , this . navigateLineStart = function ( ) { this . selection . moveCursorLineStart ( ) , this . clearSelection ( ) } , this . navigateLineEnd = function ( ) { this . selection . moveCursorLineEnd ( ) , this . clearSelection ( ) } , this . navigateFileEnd = function ( ) { this . selection . moveCursorFileEnd ( ) , this . clearSelection ( ) } , this . navigateFileStart = function ( ) { this . selection . moveCursorFileStart ( ) , this . clearSelection ( ) } , this . navigateWordRight = function ( ) { this . selection . moveCursorWordRight ( ) , this . clearSelection ( ) } , this . navigateWordLeft = function ( ) { this . selection . moveCursorWordLeft ( ) , this . clearSelection ( ) } , this . replace = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . find ( this . session ) , r = 0 ; return n ? ( this . $tryReplace ( n , e ) && ( r = 1 ) , null !== n && ( this . selection . setSelectionRange ( n ) , this . renderer . scrollSelectionIntoView ( n . start , n . end ) ) , r ) : r } , this . replaceAll = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . findAll ( this . session ) , r = 0 ; if ( ! n . length ) return r ; this . $blockScrolling += 1 ; var i = this . getSelectionRange ( ) ; this . selection . moveTo ( 0 , 0 ) ; for ( var s = n . length - 1 ; s >= 0 ; -- s ) this . $tryReplace ( n [ s ] , e ) && r ++ ; return this . selection . setSelectionRange ( i ) , this . $blockScrolling -= 1 , r } , this . $tryReplace = function ( e , t ) { var n = this . session . getTextRange ( e ) ; return t = this . $search . replace ( n , t ) , null !== t ? ( e . end = this . session . replace ( e , t ) , e ) : null } , this . getLastSearchOptions = function ( ) { return this . $search . getOptions ( ) } , this . find = function ( e , t , n ) { t || ( t = { } ) , "string" == typeof e || e instanceof RegExp ? t . needle = e : "object" == typeof e && r . mixin ( t , e ) ; var i = this . selection . getRange ( ) ; null == t . needle && ( e = this . session . getTextRange ( i ) || this . $search . $options . needle , e || ( i = this . session . getWordRange ( i . start . row , i . start . column ) , e = this . session . getTextRange ( i ) ) , this . $search . set ( { needle : e } ) ) , this . $search . set ( t ) , t . start || this . $search . set ( { start : i } ) ; var s = this . $search . find ( this . session ) ; return t . preventScroll ? s : s ? ( this . revealRange ( s , n ) , s ) : ( t . backwards ? i . start = i . end : i . end = i . start , void this . selection . setRange ( i ) ) } , this . findNext = function ( e , t ) { this . find ( { skipCurrent : ! 0 , backwards : ! 1 } , e , t ) } , this . findPrevious = function ( e , t ) { this . find ( e , { skipCurrent : ! 0 , backwards : ! 0 } , t ) } , this . revealRange = function ( e , t ) { this . $blockScrolling += 1 , this . session . unfold ( e ) , this . selection . setSelectionRange ( e ) , this . $blockScrolling -= 1 ; var n = this . renderer . scrollTop ; this . renderer . scrollSelectionIntoView ( e . start , e . end , . 5 ) , t !== ! 1 && this . renderer . animateScrolling ( n ) } , this . undo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . undo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . redo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . redo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . destroy = function ( ) { this . renderer . destroy ( ) , this . _signal ( "destroy" , this ) , this . session && this . session . destroy ( ) } , this . setAutoScrollEditorIntoView = function ( e ) { if ( e ) { var t , n = this , r = ! 1 ; this . $scrollAnchor || ( this . $scrollAnchor = document . createElement ( "div" ) ) ; var i = this . $scrollAnchor ; i . style . cssText = "position:absolute" , this . container . insertBefore ( i , this . container . firstChild ) ; var s = this . on ( "changeSelection" , function ( ) { r = ! 0 } ) , o = this . renderer . on ( "beforeRender" , function ( ) { r && ( t = n . renderer . container . getBoundingClientRect ( ) ) } ) , u = this . renderer . on ( "afterRender" , function ( ) { if ( r && t && ( n . isFocused ( ) || n . searchBox && n . searchBox . isFocused ( ) ) ) { var e = n . renderer , s = e . $cursorLayer . $pixelPos , o = e . layerConfig , u = s . top - o . offset ; r = s . top >= 0 && u + t . top < 0 || ! ( s . top < o . height && s . top + t . top + o . lineHeight > window . innerHeight ) && null , null != r && ( i . style . top = u + "px" , i . style . left = s . left + "px" , i . style . height = o . lineHeight + "px" , i . scrollIntoView ( r ) ) , r = t = null } } ) ; this . setAutoScrollEditorIntoView = function ( e ) { e || ( delete this . setAutoScrollEditorIntoView , this . off ( "changeSelection" , s ) , this . renderer . off ( "afterRender" , u ) , this . renderer . off ( "beforeRender" , o ) ) } } } , this . $resetCursorStyle = function ( ) { var e = this . $cursorStyle || "ace" , t = this . renderer . $cursorLayer ; t && ( t . setSmoothBlinking ( /smooth/ . test ( e ) ) , t . isBlinking = ! this . $readOnly && "wide" !=
height : 0 } , this . $testFractionalRect = function ( ) { var e = i . createElement ( "div" ) ; this . $setMeasureNodeStyles ( e . style ) , e . style . width = "0.2px" , document . documentElement . appendChild ( e ) ; var t = e . getBoundingClientRect ( ) . width ; a = t > 0 && t < 1 ? 50 : 100 , e . parentNode . removeChild ( e ) } , this . $setMeasureNodeStyles = function ( e , t ) { e . width = e . height = "auto" , e . left = e . top = "0px" , e . visibility = "hidden" , e . position = "absolute" , e . whiteSpace = "pre" , o . isIE < 8 ? e [ "font-family" ] = "inherit" : e . font = "inherit" , e . overflow = t ? "hidden" : "visible" } , this . checkForSizeChanges = function ( ) { var e = this . $measureSizes ( ) ; if ( e && ( this . $characterSize . width !== e . width || this . $characterSize . height !== e . height ) ) { this . $measureNode . style . fontWeight = "bold" ; var t = this . $measureSizes ( ) ; this . $measureNode . style . fontWeight = "" , this . $characterSize = e , this . charSizes = Object . create ( null ) , this . allowBoldFonts = t && t . width === e . width && t . height === e . height , this . _emit ( "changeCharacterSize" , { data : e } ) } } , this . $pollSizeChanges = function ( ) { if ( this . $pollSizeChangesTimer ) return this . $pollSizeChangesTimer ; var e = this ; return this . $pollSizeChangesTimer = setInterval ( function ( ) { e . checkForSizeChanges ( ) } , 500 ) } , this . setPolling = function ( e ) { e ? this . $pollSizeChanges ( ) : this . $pollSizeChangesTimer && ( clearInterval ( this . $pollSizeChangesTimer ) , this . $pollSizeChangesTimer = 0 ) } , this . $measureSizes = function ( ) { if ( 50 === a ) { var e = null ; try { e = this . $measureNode . getBoundingClientRect ( ) } catch ( t ) { e = { width : 0 , height : 0 } } var n = { height : e . height , width : e . width / a } } else var n = { height : this . $measureNode . clientHeight , width : this . $measureNode . clientWidth / a } ; return 0 === n . width || 0 === n . height ? null : n } , this . $measureCharWidth = function ( e ) { this . $main . innerHTML = s . stringRepeat ( e , a ) ; var t = this . $main . getBoundingClientRect ( ) ; return t . width / a } , this . getCharacterWidth = function ( e ) { var t = this . charSizes [ e ] ; return void 0 === t && ( t = this . charSizes [ e ] = this . $measureCharWidth ( e ) / this . $characterSize . width ) , t } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . el && this . el . parentNode && this . el . parentNode . removeChild ( this . el ) } } ) . call ( f . prototype ) } ) , ace . define ( "ace/virtual_renderer" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/config" , "ace/lib/useragent" , "ace/layer/gutter" , "ace/layer/marker" , "ace/layer/text" , "ace/layer/cursor" , "ace/scrollbar" , "ace/scrollbar" , "ace/renderloop" , "ace/layer/font_metrics" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./config" ) , o = e ( "./lib/useragent" ) , u = e ( "./layer/gutter" ) . Gutter , a = e ( "./layer/marker" ) . Marker , f = e ( "./layer/text" ) . Text , l = e ( "./layer/cursor" ) . Cursor , c = e ( "./scrollbar" ) . HScrollBar , h = e ( "./scrollbar" ) . VScrollBar , p = e ( "./renderloop" ) . RenderLoop , d = e ( "./layer/font_metrics" ) . FontMetrics , v = e ( "./lib/event_emitter" ) . EventEmitter , m = '.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\' ; background : rgba ( 250 , 250 , 250 , 0.01 ) ; z - index : 1000 ; } . ace _dragging . ace _dark . ace _scroller : before { background : rgba ( 0 , 0 , 0 , 0.01 ) ; } . ace _selecting , . ace _selecting * { cursor : text ! important ; } . ace _gutter { position : absolute ; overflow : hidden ; width : auto ; top : 0 ; bottom : 0 ; left : 0 ; cursor : default ; z - index : 4 ; - ms - user - select : none ; - moz - user - select : none ; - webkit - user - select : none ; user - select : none ; } . ace _gutter - active - line { position : absolute ; left : 0 ; right : 0 ; } . ace _scroller . ace _scroll - left { box - shadow : 17 px 0 16 px - 16 px rgba ( 0 , 0 , 0 , 0.4 ) inset ; } . ace _gutter - cell { padding - left : 19 px ; padding - right : 6 px ; background - repeat : no - repeat ; } . ace _gutter - cell . ace _error { background - image : url ( " data : image / png ; base64 , iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX /////////QRswFAb/Ui4wFAY
this . $loop . schedule ( this . CHANGE _MARKER _BACK ) } , this . addGutterDecoration = function ( e , t ) { this . $gutterLayer . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { this . $gutterLayer . removeGutterDecoration ( e , t ) } , this . updateBreakpoints = function ( e ) { this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . setAnnotations = function ( e ) { this . $gutterLayer . setAnnotations ( e ) , this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . updateCursor = function ( ) { this . $loop . schedule ( this . CHANGE _CURSOR ) } , this . hideCursor = function ( ) { this . $cursorLayer . hideCursor ( ) } , this . showCursor = function ( ) { this . $cursorLayer . showCursor ( ) } , this . scrollSelectionIntoView = function ( e , t , n ) { this . scrollCursorIntoView ( e , n ) , this . scrollCursorIntoView ( t , n ) } , this . scrollCursorIntoView = function ( e , t , n ) { if ( 0 !== this . $size . scrollerHeight ) { var r = this . $cursorLayer . getPixelPosition ( e ) , i = r . left , s = r . top , o = n && n . top || 0 , u = n && n . bottom || 0 , a = this . $scrollAnimation ? this . session . getScrollTop ( ) : this . scrollTop ; a + o > s ? ( t && a + o > s + this . lineHeight && ( s -= t * this . $size . scrollerHeight ) , 0 === s && ( s = - this . scrollMargin . top ) , this . session . setScrollTop ( s ) ) : a + this . $size . scrollerHeight - u < s + this . lineHeight && ( t && a + this . $size . scrollerHeight - u < s - this . lineHeight && ( s += t * this . $size . scrollerHeight ) , this . session . setScrollTop ( s + this . lineHeight - this . $size . scrollerHeight ) ) ; var f = this . scrollLeft ; f > i ? ( i < this . $padding + 2 * this . layerConfig . characterWidth && ( i = - this . scrollMargin . left ) , this . session . setScrollLeft ( i ) ) : f + this . $size . scrollerWidth < i + this . characterWidth ? this . session . setScrollLeft ( Math . round ( i + this . characterWidth - this . $size . scrollerWidth ) ) : f <= this . $padding && i - f < this . characterWidth && this . session . setScrollLeft ( 0 ) } } , this . getScrollTop = function ( ) { return this . session . getScrollTop ( ) } , this . getScrollLeft = function ( ) { return this . session . getScrollLeft ( ) } , this . getScrollTopRow = function ( ) { return this . scrollTop / this . lineHeight } , this . getScrollBottomRow = function ( ) { return Math . max ( 0 , Math . floor ( ( this . scrollTop + this . $size . scrollerHeight ) / this . lineHeight ) - 1 ) } , this . scrollToRow = function ( e ) { this . session . setScrollTop ( e * this . lineHeight ) } , this . alignCursor = function ( e , t ) { "number" == typeof e && ( e = { row : e , column : 0 } ) ; var n = this . $cursorLayer . getPixelPosition ( e ) , r = this . $size . scrollerHeight - this . lineHeight , i = n . top - r * ( t || 0 ) ; return this . session . setScrollTop ( i ) , i } , this . STEPS = 8 , this . $calcSteps = function ( e , t ) { var n = 0 , r = this . STEPS , i = [ ] , s = function ( e , t , n ) { return n * ( Math . pow ( e - 1 , 3 ) + 1 ) + t } ; for ( n = 0 ; n < r ; ++ n ) i . push ( s ( n / this . STEPS , e , t - e ) ) ; return i } , this . scrollToLine = function ( e , t , n , r ) { var i = this . $cursorLayer . getPixelPosition ( { row : e , column : 0 } ) , s = i . top ; t && ( s -= this . $size . scrollerHeight / 2 ) ; var o = this . scrollTop ; this . session . setScrollTop ( s ) , n !== ! 1 && this . animateScrolling ( o , r ) } , this . animateScrolling = function ( e , t ) { var n = this . scrollTop ; if ( this . $animatedScroll ) { var r = this ; if ( e != n ) { if ( this . $scrollAnimation ) { var i = this . $scrollAnimation . steps ; if ( i . length && ( e = i [ 0 ] , e == n ) ) return } var s = r . $calcSteps ( e , n ) ; this . $scrollAnimation = { from : e , to : n , steps : s } , clearInterval ( this . $timer ) , r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n , this . $timer = setInterval ( function ( ) { s . length ? ( r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n ) : null != n ? ( r . session . $scrollTop = - 1 , r . session . setScrollTop ( n ) , n = null ) : ( r . $timer = clearInterval ( r . $timer ) , r . $scrollAnimation = null , t && t ( ) ) } , 10 ) } } } , this . scrollToY = function ( e ) { this . scrollTop !== e && ( this . $loop . schedule ( this . CHANGE _SCROLL ) , this . scrollTop = e ) } , this . scrollToX = function ( e ) { this . scrollLeft !== e && ( this . scrollLeft = e ) , this . $loop . schedule ( this . CHANGE _H _SCROLL ) } , this . scrollTo = function ( e , t ) { this . session . setScrollTop ( t ) , this . session . setScrollLeft ( t ) } , this . scrollBy = function ( e , t ) { t && this . session . setScrollTop ( this . session . getScrollTop ( ) + t ) , e && this . session . setScrollLeft ( this . session . getScrollLeft ( ) + e ) } , this . isScrollableBy = function ( e , t ) { return t < 0 && this . session . getScrollTop ( ) >= 1 - this . scrollMargin . top || ( t > 0 && this . session . getScrollTop ( ) + this . $size . scrollerHeight - this . layerConfig . maxHeight < - 1 + this . scrollMargin . bottom || ( e < 0 && this . session . getScrollLeft ( ) >= 1 - this . scrollMargin . left || ( e > 0 && this . session . getScrollLeft ( ) + this . $size . scrollerWidth - this . layerConfig . width < - 1 + this . scrollMargin . right || void 0 ) ) ) } , this .
if ( r ) { var f = i . fromPoints ( o , a ) ; f . cursor = f . start } else { var f = i . fromPoints ( a , o ) ; f . cursor = f . end } if ( f . desiredColumn = s . column , this . selection . inMultiSelectMode ) { if ( t ) var l = n . cursor } else this . selection . addRange ( n ) ; this . selection . addRange ( f ) , l && this . selection . substractPoint ( l ) } , this . transposeSelections = function ( e ) { for ( var t = this . session , n = t . multiSelect , r = n . ranges , i = r . length ; i -- ; ) { var s = r [ i ] ; if ( s . isEmpty ( ) ) { var o = t . getWordRange ( s . start . row , s . start . column ) ; s . start . row = o . start . row , s . start . column = o . start . column , s . end . row = o . end . row , s . end . column = o . end . column } } n . mergeOverlappingRanges ( ) ; for ( var u = [ ] , i = r . length ; i -- ; ) { var s = r [ i ] ; u . unshift ( t . getTextRange ( s ) ) } e < 0 ? u . unshift ( u . pop ( ) ) : u . push ( u . shift ( ) ) ; for ( var i = r . length ; i -- ; ) { var s = r [ i ] , o = s . clone ( ) ; t . replace ( s , u [ i ] ) , s . start . row = o . start . row , s . start . column = o . start . column } } , this . selectMore = function ( e , t , n ) { var r = this . session , i = r . multiSelect , s = i . toOrientedRange ( ) ; if ( ! s . isEmpty ( ) || ( s = r . getWordRange ( s . start . row , s . start . column ) , s . cursor = e == - 1 ? s . start : s . end , this . multiSelect . addRange ( s ) , ! n ) ) { var o = r . getTextRange ( s ) , u = h ( r , o , e ) ; u && ( u . cursor = e == - 1 ? u . start : u . end , this . $blockScrolling += 1 , this . session . unfold ( u ) , this . multiSelect . addRange ( u ) , this . $blockScrolling -= 1 , this . renderer . scrollCursorIntoView ( null , . 5 ) ) , t && this . multiSelect . substractPoint ( s . cursor ) } } , this . alignCursors = function ( ) { var e = this . session , t = e . multiSelect , n = t . ranges , r = - 1 , s = n . filter ( function ( e ) { return e . cursor . row == r || void ( r = e . cursor . row ) } ) ; if ( n . length && s . length != n . length - 1 ) { s . forEach ( function ( e ) { t . substractPoint ( e . cursor ) } ) ; var d = 0 , v = 1 / 0 , m = n . map ( function ( t ) { var n = t . cursor , r = e . getLine ( n . row ) , i = r . substr ( n . column ) . search ( /\S/g ) ; return i == - 1 && ( i = 0 ) , n . column > d && ( d = n . column ) , i < v && ( v = i ) , i } ) ; n . forEach ( function ( t , n ) { var r = t . cursor , s = d - r . column , o = m [ n ] - v ; s > o ? e . insert ( r , a . stringRepeat ( " " , s - o ) ) : e . remove ( new i ( r . row , r . column , r . row , r . column - s + o ) ) , t . start . column = t . end . column = d , t . start . row = t . end . row = r . row , t . cursor = t . end } ) , t . fromOrientedRange ( n [ 0 ] ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } else { var o = this . selection . getRange ( ) , u = o . start . row , f = o . end . row , l = u == f ; if ( l ) { var h , c = this . session . getLength ( ) ; do h = this . session . getLine ( f ) ; while ( /[=:]/ . test ( h ) && ++ f < c ) ; do h = this . session . getLine ( u ) ; while ( /[=:]/ . test ( h ) && -- u > 0 ) ; u < 0 && ( u = 0 ) , f >= c && ( f = c - 1 ) } var p = this . session . removeFullLines ( u , f ) ; p = this . $reAlignText ( p , l ) , this . session . insert ( { row : u , column : 0 } , p . join ( "\n" ) + "\n" ) , l || ( o . start . column = 0 , o . end . column = p [ p . length - 1 ] . length ) , this . selection . setRange ( o ) } } , this . $reAlignText = function ( e , t ) { function u ( e ) { return a . stringRepeat ( " " , e ) } function f ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( s - e [ 2 ] . length + o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function l ( e ) { return e [ 2 ] ? u ( i + s - e [ 2 ] . length ) + e [ 2 ] + u ( o , " " ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function c ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } var i , s , o , n = ! 0 , r = ! 0 ; return e . map ( function ( e ) { var t = e . match ( /(\s*)(.*?)(\s*)([=:].*)/ ) ; return t ? null == i ? ( i = t [ 1 ] . length , s = t [ 2 ] . length , o = t [ 3 ] . length , t ) : ( i + s + o != t [ 1 ] . length + t [ 2 ] . length + t [ 3 ] . length && ( r = ! 1 ) , i != t [ 1 ] . length && ( n = ! 1 ) , i > t [ 1 ] . length && ( i = t [ 1 ] . length ) , s < t [ 2 ] . length && ( s = t [ 2 ] . length ) , o > t [ 3 ] . length && ( o = t [ 3 ] . length ) , t ) : [ e ] } ) . map ( t ? f : n ? r ? l : f : c ) } } ) . call ( d . prototype ) , t . onSessionChange = function ( e ) { var t = e . session ; t && ! t . multiSelect && ( t . $selectionMarkers = [ ] , t . selection . $initRangeList ( ) , t . multiSelect = t . selection ) , this . multiSelect = t && t . multiSelect ; var n = e . oldSession ; n && ( n . multiSelect . off ( "addRange" , this . $onAddRange ) , n . multiSelect . off ( "removeRange" , this . $onRemoveRange ) , n . multiSelect . off ( "multiSelect" , this . $onMultiSelect ) , n . multiSelect . off ( "singleSelect" , this . $onSingleSelect ) , n . multiSelect . lead . off ( "change" , this . $checkMultiselectChange ) , n . multiSelect . anchor . off ( "change" , this . $checkMultiselectChange ) ) , t && ( t . multiSelect . on ( "addRange" , this . $onAddRange ) , t . multiSelect . on ( "removeRange" , this . $onRemoveRange ) , t . multiSelect . on ( "multiSelect" , this . $onMultiSelect ) , t . multiSelect . on ( "singleSelect" , this . $onSingleSelect ) , t . multiSelect . lead . on ( "change" , this . $checkMultiselectChange ) , t . multiSelect . anchor . on ( "change" , this . $checkMultiselectChange ) ) , t && this . inMultiSelectMode != t . selection . inMultiSelectMode && (
next : "qstring" } , { token : "string" , regex : "'|$" , next : "no_regex" } , { defaultToken : "string" } ] } , e && e . noES6 || ( this . $rules . no _regex . unshift ( { regex : "[{}]" , onMatch : function ( e , t , n ) { if ( this . next = "{" == e ? this . nextState : "" , "{" == e && n . length ) n . unshift ( "start" , t ) ; else if ( "}" == e && n . length && ( n . shift ( ) , this . next = n . shift ( ) , this . next . indexOf ( "string" ) != - 1 || this . next . indexOf ( "jsx" ) != - 1 ) ) return "paren.quasi.end" ; return "{" == e ? "paren.lparen" : "paren.rparen" } , nextState : "start" } , { token : "string.quasi.start" , regex : /`/ , push : [ { token : "constant.language.escape" , regex : r } , { token : "paren.quasi.start" , regex : /\${/ , push : "start" } , { token : "string.quasi.end" , regex : /`/ , next : "pop" } , { defaultToken : "string.quasi" } ] } ) , ( ! e || 0 != e . jsx ) && a . call ( this ) ) , this . embedRules ( i , "doc-" , [ i . getEndRule ( "no_regex" ) ] ) , this . normalizeRules ( ) } ; r . inherits ( u , s ) , t . JavaScriptHighlightRules = u } ) , ace . define ( "ace/mode/matching_brace_outdent" , [ "require" , "exports" , "module" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../range" ) . Range , i = function ( ) { } ; ( function ( ) { this . checkOutdent = function ( e , t ) { return ! ! /^\s+$/ . test ( e ) && /^\s*\}/ . test ( t ) } , this . autoOutdent = function ( e , t ) { var n = e . getLine ( t ) , i = n . match ( /^(\s*\})/ ) ; if ( ! i ) return 0 ; var s = i [ 1 ] . length , o = e . findMatchingBracket ( { row : t , column : s } ) ; if ( ! o || o . row == t ) return 0 ; var u = this . $getIndent ( e . getLine ( o . row ) ) ; e . replace ( new r ( t , 0 , t , s - 1 ) , u ) } , this . $getIndent = function ( e ) { return e . match ( /^\s*/ ) [ 0 ] } } ) . call ( i . prototype ) , t . MatchingBraceOutdent = i } ) , ace . define ( "ace/mode/folding/cstyle" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/range" , "ace/mode/folding/fold_mode" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "../../range" ) . Range , s = e ( "./fold_mode" ) . FoldMode , o = t . FoldMode = function ( e ) { e && ( this . foldingStartMarker = new RegExp ( this . foldingStartMarker . source . replace ( /\|[^|]*?$/ , "|" + e . start ) ) , this . foldingStopMarker = new RegExp ( this . foldingStopMarker . source . replace ( /\|[^|]*?$/ , "|" + e . end ) ) ) } ; r . inherits ( o , s ) , function ( ) { this . foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/ , this . foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/ , this . singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/ , this . tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/ , this . startRegionRe = /^\s*(\/\*|\/\/)#?region\b/ , this . _getFoldWidgetBase = this . getFoldWidget , this . getFoldWidget = function ( e , t , n ) { var r = e . getLine ( n ) ; if ( this . singleLineBlockCommentRe . test ( r ) && ! this . startRegionRe . test ( r ) && ! this . tripleStarBlockCommentRe . test ( r ) ) return "" ; var i = this . _getFoldWidgetBase ( e , t , n ) ; return ! i && this . startRegionRe . test ( r ) ? "start" : i } , this . getFoldWidgetRange = function ( e , t , n , r ) { var i = e . getLine ( n ) ; if ( this . startRegionRe . test ( i ) ) return this . getCommentRegionBlock ( e , i , n ) ; var s = i . match ( this . foldingStartMarker ) ; if ( s ) { var o = s . index ; if ( s [ 1 ] ) return this . openingBracketBlock ( e , s [ 1 ] , n , o ) ; var u = e . getCommentFoldRange ( n , o + s [ 0 ] . length , 1 ) ; return u && ! u . isMultiLine ( ) && ( r ? u = this . getSectionRange ( e , n ) : "all" != t && ( u = null ) ) , u } if ( "markbegin" !== t ) { var s = i . match ( this . foldingStopMarker ) ; if ( s ) { var o = s . index + s [ 0 ] . length ; return s [ 1 ] ? this . closingBracketBlock ( e , s [ 1 ] , n , o ) : e . getCommentFoldRange ( n , o , - 1 ) } } } , this . getSectionRange = function ( e , t ) { var n = e . getLine ( t ) , r = n . search ( /\S/ ) , s = t , o = n . length ; t += 1 ; for ( var u = t , a = e . getLength ( ) ; ++ t < a ; ) { n = e . getLine ( t ) ; var f = n . search ( /\S/ ) ; if ( f !== - 1 ) { if ( r > f ) break ; var l = this . getFoldWidgetRange ( e , "all" , t ) ; if ( l ) { if ( l . start . row <= s ) break ; if ( l . isMultiLine ( ) ) t = l . end . row ; else if ( r == f ) break } u = t } } return new i ( s , o , u , e . getLine ( u ) . length ) } , this . getCommentRegionBlock = function ( e , t , n ) { for ( var r = t . search ( /\s*$/ ) , s = e . getLength ( ) , o = n , u = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/ , a = 1 ; ++ n < s ; ) { t = e . getLine ( n ) ; var f = u . exec ( t ) ; if ( f && ( f [ 1 ] ? a -- : a ++ , ! a ) ) break } var l = n ; if ( l > o ) return new i ( o , r , l , t . length ) } } . call ( o . prototype ) } ) , ace . define ( "ace/mode/javascript" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text" , "ace/mode/javascript_highlight_rules" , "ace/mode/matching_brace_outdent" , "ace/range" , "ace/worker/worker_client" , "ace/mode/behaviour/cstyle" , "ace/mode/folding/cstyle" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "./text" ) . Mode , s = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , o = e ( "./matching_brace_outdent" ) . MatchingBraceOutdent , a = ( e ( "../range" ) . R
return t . attachToDocument ( e . getDocument ( ) ) , t . on ( "annotate" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } , this . $id = "ace/mode/css" } . call ( c . prototype ) , t . Mode = c } ) , ace . define ( "ace/mode/html_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/css_highlight_rules" , "ace/mode/javascript_highlight_rules" , "ace/mode/xml_highlight_rules" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./css_highlight_rules" ) . CssHighlightRules , o = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , u = e ( "./xml_highlight_rules" ) . XmlHighlightRules , a = i . createMap ( { a : "anchor" , button : "form" , form : "form" , img : "image" , input : "form" , label : "form" , option : "form" , script : "script" , select : "form" , textarea : "form" , style : "style" , table : "table" , tbody : "table" , td : "table" , tfoot : "table" , th : "table" , tr : "table" } ) , f = function ( ) { u . call ( this ) , this . addRules ( { attributes : [ { include : "tag_whitespace" } , { token : "entity.other.attribute-name.xml" , regex : "[-_a-zA-Z0-9:.]+" } , { token : "keyword.operator.attribute-equals.xml" , regex : "=" , push : [ { include : "tag_whitespace" } , { token : "string.unquoted.attribute-value.html" , regex : "[^<>='\"`\\s]+" , next : "pop" } , { token : "empty" , regex : "" , next : "pop" } ] } , { include : "attribute_value" } ] , tag : [ { token : function ( e , t ) { var n = a [ t ] ; return [ "meta.tag.punctuation." + ( "<" == e ? "" : "end-" ) + "tag-open.xml" , "meta.tag" + ( n ? "." + n : "" ) + ".tag-name.xml" ] } , regex : "(</?)([-_a-zA-Z0-9:.]+)" , next : "tag_stuff" } ] , tag _stuff : [ { include : "attributes" } , { token : "meta.tag.punctuation.tag-close.xml" , regex : "/?>" , next : "start" } ] } ) , this . embedTagRules ( s , "css-" , "style" ) , this . embedTagRules ( new o ( { jsx : ! 1 } ) . getRules ( ) , "js-" , "script" ) , this . constructor === f && this . normalizeRules ( ) } ; r . inherits ( f , u ) , t . HtmlHighlightRules = f } ) , ace . define ( "ace/mode/folding/mixed" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/folding/fold_mode" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "./fold_mode" ) . FoldMode , s = t . FoldMode = function ( e , t ) { this . defaultMode = e , this . subModes = t } ; r . inherits ( s , i ) , function ( ) { this . $getMode = function ( e ) { "string" != typeof e && ( e = e [ 0 ] ) ; for ( var t in this . subModes ) if ( 0 === e . indexOf ( t ) ) return this . subModes [ t ] ; return null } , this . $tryMode = function ( e , t , n , r ) { var i = this . $getMode ( e ) ; return i ? i . getFoldWidget ( t , n , r ) : "" } , this . getFoldWidget = function ( e , t , n ) { return this . $tryMode ( e . getState ( n - 1 ) , e , t , n ) || this . $tryMode ( e . getState ( n ) , e , t , n ) || this . defaultMode . getFoldWidget ( e , t , n ) } , this . getFoldWidgetRange = function ( e , t , n ) { var r = this . $getMode ( e . getState ( n - 1 ) ) ; return r && r . getFoldWidget ( e , t , n ) || ( r = this . $getMode ( e . getState ( n ) ) ) , r && r . getFoldWidget ( e , t , n ) || ( r = this . defaultMode ) , r . getFoldWidgetRange ( e , t , n ) } } . call ( s . prototype ) } ) , ace . define ( "ace/mode/folding/html" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/folding/mixed" , "ace/mode/folding/xml" , "ace/mode/folding/cstyle" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "./mixed" ) . FoldMode , s = e ( "./xml" ) . FoldMode , o = e ( "./cstyle" ) . FoldMode , u = t . FoldMode = function ( e , t ) { i . call ( this , new s ( e , t ) , { "js-" : new o , "css-" : new o } ) } ; r . inherits ( u , i ) } ) , ace . define ( "ace/mode/html_completions" , [ "require" , "exports" , "module" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function f ( e , t ) { return e . type . lastIndexOf ( t + ".xml" ) > - 1 } function l ( e , t ) { for ( var n = new r ( e , t . row , t . column ) , i = n . getCurrentToken ( ) ; i && ! f ( i , "tag-name" ) ; ) i = n . stepBackward ( ) ; if ( i ) return i . value } function c ( e , t ) { for ( var n = new r ( e , t . row , t . column ) , i = n . getCurrentToken ( ) ; i && ! f ( i , "attribute-name" ) ; ) i = n . stepBackward ( ) ; if ( i ) return i . value } var r = e ( "../token_iterator" ) . TokenIterator , i = [ "accesskey" , "class" , "contenteditable" , "contextmenu" , "dir" , "draggable" , "dropzone" , "hidden" , "id" , "inert" , "itemid" , "itemprop" , "itemref" , "itemscope" , "itemtype" , "lang" , "spellcheck" , "style" , "tabindex" , "title" , "translate" ] , s = [ "onabort" , "onblur" , "oncancel" , "oncanplay" , "oncanplaythrough" , "onchange" , "onclick" , "onclose" , "oncontextmenu" , "oncuechange" , "ondblclick" , "ondrag" , "ondragend" , "ondragenter" , "ondragleave" , "ondragover" , "ondragstart" , "ondrop" , "ondurationchange" , "onemptied" , "onended" , "onerror" , "onfocus" , "oninput" , "oninvalid" , "onkeydown" , "onkeypress" , "onkeyup" , "onload" , " onloa
replace : null , wildcard : null , limiter : null , rateLimitBy : "debounce" , rateLimitWait : 300 , transform : b . identity , transport : null } , c = b . isString ( c ) ? { url : c } : c , c = b . mixin ( d , c ) , ! c . url && a . error ( "remote requires url to be set" ) , c . transform = c . filter || c . transform , c . prepare = f ( c ) , c . limiter = g ( c ) , c . transport = c . transport ? h ( c . transport ) : a . ajax , delete c . replace , delete c . wildcard , delete c . rateLimitBy , delete c . rateLimitWait , c } function f ( a ) { function b ( a , b ) { return b . url = f ( b . url , a ) , b } function c ( a , b ) { return b . url = b . url . replace ( g , encodeURIComponent ( a ) ) , b } function d ( a , b ) { return b } var e , f , g ; return e = a . prepare , f = a . replace , g = a . wildcard , e ? e : e = f ? b : a . wildcard ? c : d } function g ( a ) { function c ( a ) { return function ( c ) { return b . debounce ( c , a ) } } function d ( a ) { return function ( c ) { return b . throttle ( c , a ) } } var e , f , g ; return e = a . limiter , f = a . rateLimitBy , g = a . rateLimitWait , e || ( e = /^throttle$/i . test ( f ) ? d ( g ) : c ( g ) ) , e } function h ( c ) { return function ( d ) { function e ( a ) { b . defer ( function ( ) { g . resolve ( a ) } ) } function f ( a ) { b . defer ( function ( ) { g . reject ( a ) } ) } var g = a . Deferred ( ) ; return c ( d , e , f ) , g } } return function ( c ) { var f , g ; return f = { initialize : ! 0 , identify : b . stringify , datumTokenizer : null , queryTokenizer : null , sufficient : 5 , sorter : null , local : [ ] , prefetch : null , remote : null } , c = b . mixin ( f , c || { } ) , ! c . datumTokenizer && a . error ( "datumTokenizer is required" ) , ! c . queryTokenizer && a . error ( "queryTokenizer is required" ) , g = c . sorter , c . sorter = g ? function ( a ) { return a . sort ( g ) } : b . identity , c . local = b . isFunction ( c . local ) ? c . local ( ) : c . local , c . prefetch = d ( c . prefetch ) , c . remote = e ( c . remote ) , c } } ( ) , l = function ( ) { "use strict" ; function c ( a ) { a = k ( a ) , this . sorter = a . sorter , this . identify = a . identify , this . sufficient = a . sufficient , this . local = a . local , this . remote = a . remote ? new j ( a . remote ) : null , this . prefetch = a . prefetch ? new i ( a . prefetch ) : null , this . index = new h ( { identify : this . identify , datumTokenizer : a . datumTokenizer , queryTokenizer : a . queryTokenizer } ) , a . initialize !== ! 1 && this . initialize ( ) } var e ; return e = window && window . Bloodhound , c . noConflict = function ( ) { return window && ( window . Bloodhound = e ) , c } , c . tokenizers = d , b . mixin ( c . prototype , { _ _ttAdapter : function ( ) { function a ( a , b , d ) { return c . search ( a , b , d ) } function b ( a , b ) { return c . search ( a , b ) } var c = this ; return this . remote ? a : b } , _loadPrefetch : function ( ) { function b ( a , b ) { return a ? c . reject ( ) : ( e . add ( b ) , e . prefetch . store ( e . index . serialize ( ) ) , void c . resolve ( ) ) } var c , d , e = this ; return c = a . Deferred ( ) , this . prefetch ? ( d = this . prefetch . fromCache ( ) ) ? ( this . index . bootstrap ( d ) , c . resolve ( ) ) : this . prefetch . fromNetwork ( b ) : c . resolve ( ) , c . promise ( ) } , _initialize : function ( ) { function a ( ) { b . add ( b . local ) } var b = this ; return this . clear ( ) , ( this . initPromise = this . _loadPrefetch ( ) ) . done ( a ) , this . initPromise } , initialize : function ( a ) { return ! this . initPromise || a ? this . _initialize ( ) : this . initPromise } , add : function ( a ) { return this . index . add ( a ) , this } , get : function ( a ) { return a = b . isArray ( a ) ? a : [ ] . slice . call ( arguments ) , this . index . get ( a ) } , search : function ( a , c , d ) { function e ( a ) { var c = [ ] ; b . each ( a , function ( a ) { ! b . some ( f , function ( b ) { return g . identify ( a ) === g . identify ( b ) } ) && c . push ( a ) } ) , d && d ( c ) } var f , g = this ; return f = this . sorter ( this . index . search ( a ) ) , c ( this . remote ? f . slice ( ) : f ) , this . remote && f . length < this . sufficient ? this . remote . get ( a , e ) : this . remote && this . remote . cancelLastRequest ( ) , this } , all : function ( ) { return this . index . all ( ) } , clear : function ( ) { return this . index . reset ( ) , this } , clearPrefetchCache : function ( ) { return this . prefetch && this . prefetch . clear ( ) , this } , clearRemoteCache : function ( ) { return g . resetCache ( ) , this } , ttAdapter : function ( ) { return this . _ _ttAdapter ( ) } } ) , c } ( ) ; return l } ) , function ( a , b ) { "function" == typeof define && define . amd ? define ( "typeahead.js" , [ "jquery" ] , function ( a ) { return b ( a ) } ) : "object" == typeof exports ? module . exports = b ( require ( "jquery" ) ) : b ( jQuery ) } ( this , function ( a ) { var b = function ( ) { "use strict" ; return { isMsie : function ( ) { return ! ! /(msie|trident)/i . test ( navigator . userAgent ) && navigator . userAgent . match ( /(msie |rv:)(\d+(.\d+)?)/i ) [ 2 ] } , isBlankString : function ( a ) { return ! a || /^\s*$/ . test ( a ) } , escapeRegExChars : function ( a ) { return a . replace ( /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g , "\\$&" ) } , isString : function ( a ) { return "string" == typeof a } , isNumber : function ( a ) { return "number" == typeof a } , isArray : a . isArray , isFunction : a . isFunction ,
} } function m ( t , n , r , e , u ) { return u ( t , function ( t , u , o ) { r = e ? ( e = ! 1 , t ) : n ( r , t , u , o ) } ) , r } function A ( t , n ) { var r = t . length ; for ( t . sort ( n ) ; r -- ; ) t [ r ] = t [ r ] . c ; return t } function k ( t , n ) { for ( var r , e = - 1 , u = t . length ; ++ e < u ; ) { var o = n ( t [ e ] ) ; o !== P && ( r = r === P ? o : r + o ) } return r } function E ( t , n ) { for ( var r = - 1 , e = Array ( t ) ; ++ r < t ; ) e [ r ] = n ( r ) ; return e } function O ( t , n ) { return l ( n , function ( n ) { return [ n , t [ n ] ] } ) } function S ( t ) { return function ( n ) { return t ( n ) } } function I ( t , n ) { return l ( n , function ( n ) { return t [ n ] } ) } function R ( t , n ) { return t . has ( n ) } function W ( t , n ) { for ( var r = - 1 , e = t . length ; ++ r < e && - 1 < d ( n , t [ r ] , 0 ) ; ) ; return r } function B ( t , n ) { for ( var r = t . length ; r -- && - 1 < d ( n , t [ r ] , 0 ) ; ) ; return r } function L ( t ) { return "\\" + Ft [ t ] } function C ( t ) { var n = ! 1 ; if ( null != t && "function" != typeof t . toString ) try { n = ! ! ( t + "" ) } catch ( t ) { } return n } function U ( t ) { var n = - 1 , r = Array ( t . size ) ; return t . forEach ( function ( t , e ) { r [ ++ n ] = [ e , t ] } ) , r } function M ( t , n ) { return function ( r ) { return t ( n ( r ) ) } } function z ( t , n ) { for ( var r = - 1 , e = t . length , u = 0 , o = [ ] ; ++ r < e ; ) { var i = t [ r ] ; i !== n && "__lodash_placeholder__" !== i || ( t [ r ] = "__lodash_placeholder__" , o [ u ++ ] = r ) } return o } function D ( t ) { var n = - 1 , r = Array ( t . size ) ; return t . forEach ( function ( t ) { r [ ++ n ] = t } ) , r } function T ( t ) { var n = - 1 , r = Array ( t . size ) ; return t . forEach ( function ( t ) { r [ ++ n ] = [ t , t ] } ) , r } function $ ( t ) { if ( Ut . test ( t ) ) { for ( var n = Lt . lastIndex = 0 ; Lt . test ( t ) ; ) n ++ ; t = n } else t = en ( t ) ; return t } function F ( t ) { return Ut . test ( t ) ? t . match ( Lt ) || [ ] : t . split ( "" ) } function N ( w ) { function St ( t ) { return Hu . call ( t ) } function It ( t ) { if ( ou ( t ) && ! Fi ( t ) && ! ( t instanceof $t ) ) { if ( t instanceof Lt ) return t ; if ( Gu . call ( t , "__wrapped__" ) ) return Oe ( t ) } return new Lt ( t ) } function Rt ( ) { } function Lt ( t , n ) { this . _ _wrapped _ _ = t , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! n , this . _ _index _ _ = 0 , this . _ _values _ _ = P } function $t ( t ) { this . _ _wrapped _ _ = t , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _iteratees _ _ = [ ] , this . _ _takeCount _ _ = 4294967295 , this . _ _views _ _ = [ ] } function Ft ( t ) { var n = - 1 , r = t ? t . length : 0 ; for ( this . clear ( ) ; ++ n < r ; ) { var e = t [ n ] ; this . set ( e [ 0 ] , e [ 1 ] ) } } function Zt ( t ) { var n = - 1 , r = t ? t . length : 0 ; for ( this . clear ( ) ; ++ n < r ; ) { var e = t [ n ] ; this . set ( e [ 0 ] , e [ 1 ] ) } } function qt ( t ) { var n = - 1 , r = t ? t . length : 0 ; for ( this . clear ( ) ; ++ n < r ; ) { var e = t [ n ] ; this . set ( e [ 0 ] , e [ 1 ] ) } } function Kt ( t ) { var n = - 1 , r = t ? t . length : 0 ; for ( this . _ _data _ _ = new qt ; ++ n < r ; ) this . add ( t [ n ] ) } function Gt ( t ) { this . _ _data _ _ = new Zt ( t ) } function Yt ( t , n ) { var r , e = Fi ( t ) || He ( t ) ? E ( t . length , Fu ) : [ ] , u = e . length , o = ! ! u ; for ( r in t ) ! n && ! Gu . call ( t , r ) || o && ( "length" == r || ge ( r , u ) ) || e . push ( r ) ; return e } function en ( t , n , r , e ) { return t === P || Ye ( t , Zu [ r ] ) && ! Gu . call ( e , r ) ? n : t } function an ( t , n , r ) { ( r === P || Ye ( t [ n ] , r ) ) && ( "number" != typeof n || r !== P || n in t ) || ( t [ n ] = r ) } function ln ( t , n , r ) { var e = t [ n ] ; Gu . call ( t , n ) && Ye ( e , r ) && ( r !== P || n in t ) || ( t [ n ] = r ) } function sn ( t , n ) { for ( var r = t . length ; r -- ; ) if ( Ye ( t [ r ] [ 0 ] , n ) ) return r ; return - 1 } function hn ( t , n , r , e ) { return Po ( t , function ( t , u , o ) { n ( e , t , r ( t ) , o ) } ) , e } function pn ( t , n ) { return t && Br ( n , bu ( n ) , t ) } function _n ( t , n ) { for ( var r = - 1 , e = null == t , u = n . length , o = Cu ( u ) ; ++ r < u ; ) o [ r ] = e ? P : du ( t , n [ r ] ) ; return o } function vn ( t , n , r ) { return t === t && ( r !== P && ( t = t <= r ? t : r ) , n !== P && ( t = t >= n ? t : n ) ) , t } function gn ( t , n , r , e , o , i , f ) { var c ; if ( e && ( c = i ? e ( t , o , i , f ) : e ( t ) ) , c !== P ) return c ; if ( ! uu ( t ) ) return t ; if ( o = Fi ( t ) ) { if ( c = he ( t ) , ! n ) return Wr ( t , c ) } else { var a = St ( t ) , l = "[object Function]" == a || "[object GeneratorFunction]" == a ; if ( Pi ( t ) ) return Er ( t , n ) ; if ( "[object Object]" == a || "[object Arguments]" == a || l && ! i ) { if ( C ( t ) ) return i ? t : { } ; if ( c = pe ( l ? { } : t ) , ! n ) return Lr ( t , pn ( c , t ) ) } else { if ( ! Tt [ a ] ) return i ? t : { } ; c = _e ( t , a , gn , n ) } } if ( f || ( f = new Gt ) , i = f . get ( t ) ) return i ; if ( f . set ( t , c ) , ! o ) var s = r ? Rn ( t , bu , Ho ) : bu ( t ) ; return u ( s || t , function ( u , o ) { s && ( o = u , u = t [ o ] ) , ln ( c , o , gn ( u , n , r , e , o , t , f ) ) } ) , c } function dn ( t ) { var n = bu ( t ) ; return function ( r ) { return yn ( r , t , n ) } } function yn ( t , n , r ) { var e = r . length ; if ( null == t ) return ! e ; for ( t = Tu ( t ) ; e -- ; ) { var u = r [ e ] , o = n [ u ] , i = t [ u ] ; if ( i === P && ! ( u in t ) || ! o ( i ) ) return ! 1 } return ! 0 } function bn ( t ) { return uu ( t ) ? oo ( t ) : { } } function xn ( t , n , r ) { if ( "function" != typeof t ) throw new Nu ( "Expected a function" ) ; return ni ( function ( ) { t . apply ( P , r ) } , n ) } function jn ( t , n , r , e ) { var u = - 1 , o = c , i = ! 0 , f = t . length , s = [ ] , h = n . length ; if ( ! f ) return s ; r && ( n = l ( n , S ( r ) ) ) , e ? ( o = a , i = ! 1 ) : 200 <= n . length && ( o = R , i = ! 1 , n = new Kt ( n ) ) ; t : for ( ; ++ u < f ; ) { var p = t [ u ] , _ = r ?
return this . _ _data _ _ . has ( t ) } , Gt . prototype . clear = function ( ) { this . _ _data _ _ = new Zt } , Gt . prototype . delete = function ( t ) { return this . _ _data _ _ . delete ( t ) } , Gt . prototype . get = function ( t ) { return this . _ _data _ _ . get ( t ) } , Gt . prototype . has = function ( t ) { return this . _ _data _ _ . has ( t ) } , Gt . prototype . set = function ( t , n ) { var r = this . _ _data _ _ ; if ( r instanceof Zt ) { if ( r = r . _ _data _ _ , ! Eo || 199 > r . length ) return r . push ( [ t , n ] ) , this ; r = this . _ _data _ _ = new qt ( r ) } return r . set ( t , n ) , this } ; var Po = Mr ( En ) , Zo = Mr ( On , ! 0 ) , qo = zr ( ) , Vo = zr ( ! 0 ) , Ko = Bo ? function ( t , n ) { return Bo . set ( t , n ) , t } : Ou , Go = ao || function ( t ) { return Vt . clearTimeout ( t ) } , Jo = So && 1 / D ( new So ( [ , - 0 ] ) ) [ 1 ] == Z ? function ( t ) { return new So ( t ) } : Ru , Yo = Bo ? function ( t ) { return Bo . get ( t ) } : Ru , Ho = _o ? M ( _o , Tu ) : Bu , Qo = _o ? function ( t ) { for ( var n = [ ] ; t ; ) s ( n , Ho ( t ) ) , t = eo ( t ) ; return n } : Bu ; ( ko && "[object DataView]" != St ( new ko ( new ArrayBuffer ( 1 ) ) ) || Eo && "[object Map]" != St ( new Eo ) || Oo && "[object Promise]" != St ( Oo . resolve ( ) ) || So && "[object Set]" != St ( new So ) || Io && "[object WeakMap]" != St ( new Io ) ) && ( St = function ( t ) { var n = Hu . call ( t ) ; if ( t = ( t = "[object Object]" == n ? t . constructor : P ) ? ke ( t ) : P ) switch ( t ) { case Uo : return "[object DataView]" ; case Mo : return "[object Map]" ; case zo : return "[object Promise]" ; case Do : return "[object Set]" ; case To : return "[object WeakMap]" } return n } ) ; var Xo = qu ? nu : Lu , ti = function ( ) { var t = 0 , n = 0 ; return function ( r , e ) { var u = Ri ( ) , o = 16 - ( u - n ) ; if ( n = u , 0 < o ) { if ( 150 <= ++ t ) return r } else t = 0 ; return Ko ( r , e ) } } ( ) , ni = so || function ( t , n ) { return Vt . setTimeout ( t , n ) } , ri = Wo ? function ( t , n , r ) { n += "" ; var e ; e = ( e = n . match ( pt ) ) ? e [ 1 ] . split ( _t ) : [ ] , r = Ee ( e , r ) , e = r . length ; var u = e - 1 ; return r [ u ] = ( 1 < e ? "& " : "" ) + r [ u ] , r = r . join ( 2 < e ? ", " : " " ) , n = n . replace ( ht , "{\n/* [wrapped with " + r + "] */\n" ) , Wo ( t , "toString" , { configurable : ! 0 , enumerable : ! 1 , value : Eu ( n ) } ) } : Ou , ei = Ge ( function ( t ) { t = gu ( t ) ; var n = [ ] ; return ot . test ( t ) && n . push ( "" ) , t . replace ( it , function ( t , r , e , u ) { n . push ( e ? u . replace ( gt , "$1" ) : r || t ) } ) , n } ) , ui = ar ( function ( t , n ) { return Xe ( t ) ? jn ( t , kn ( n , 1 , Xe , ! 0 ) ) : [ ] } ) , oi = ar ( function ( t , n ) { var r = We ( n ) ; return Xe ( r ) && ( r = P ) , Xe ( t ) ? jn ( t , kn ( n , 1 , Xe , ! 0 ) , fe ( r , 2 ) ) : [ ] } ) , ii = ar ( function ( t , n ) { var r = We ( n ) ; return Xe ( r ) && ( r = P ) , Xe ( t ) ? jn ( t , kn ( n , 1 , Xe , ! 0 ) , P , r ) : [ ] } ) , fi = ar ( function ( t ) { var n = l ( t , mr ) ; return n . length && n [ 0 ] === t [ 0 ] ? Cn ( n ) : [ ] } ) , ci = ar ( function ( t ) { var n = We ( t ) , r = l ( t , mr ) ; return n === We ( r ) ? n = P : r . pop ( ) , r . length && r [ 0 ] === t [ 0 ] ? Cn ( r , fe ( n , 2 ) ) : [ ] } ) , ai = ar ( function ( t ) { var n = We ( t ) , r = l ( t , mr ) ; return n === We ( r ) ? n = P : r . pop ( ) , r . length && r [ 0 ] === t [ 0 ] ? Cn ( r , P , n ) : [ ] } ) , li = ar ( Be ) , si = ar ( function ( t , n ) { n = kn ( n , 1 ) ; var r = t ? t . length : 0 , e = _n ( t , n ) ; return ir ( t , l ( n , function ( t ) { return ge ( t , r ) ? + t : t } ) . sort ( Sr ) ) , e } ) , hi = ar ( function ( t ) { return yr ( kn ( t , 1 , Xe , ! 0 ) ) } ) , pi = ar ( function ( t ) { var n = We ( t ) ; return Xe ( n ) && ( n = P ) , yr ( kn ( t , 1 , Xe , ! 0 ) , fe ( n , 2 ) ) } ) , _i = ar ( function ( t ) { var n = We ( t ) ; return Xe ( n ) && ( n = P ) , yr ( kn ( t , 1 , Xe , ! 0 ) , P , n ) } ) , vi = ar ( function ( t , n ) { return Xe ( t ) ? jn ( t , n ) : [ ] } ) , gi = ar ( function ( t ) { return jr ( f ( t , Xe ) ) } ) , di = ar ( function ( t ) { var n = We ( t ) ; return Xe ( n ) && ( n = P ) , jr ( f ( t , Xe ) , fe ( n , 2 ) ) } ) , yi = ar ( function ( t ) { var n = We ( t ) ; return Xe ( n ) && ( n = P ) , jr ( f ( t , Xe ) , P , n ) } ) , bi = ar ( Ce ) , xi = ar ( function ( t ) { var n = t . length , n = 1 < n ? t [ n - 1 ] : P , n = "function" == typeof n ? ( t . pop ( ) , n ) : P ; return Ue ( t , n ) } ) , ji = ar ( function ( t ) { function n ( n ) { return _n ( n , t ) } t = kn ( t , 1 ) ; var r = t . length , e = r ? t [ 0 ] : 0 , u = this . _ _wrapped _ _ ; return ! ( 1 < r || this . _ _actions _ _ . length ) && u instanceof $t && ge ( e ) ? ( u = u . slice ( e , + e + ( r ? 1 : 0 ) ) , u . _ _actions _ _ . push ( { func : ze , args : [ n ] , thisArg : P } ) , new Lt ( u , this . _ _chain _ _ ) . thru ( function ( t ) { return r && ! t . length && t . push ( P ) , t } ) ) : this . thru ( n ) } ) , wi = Cr ( function ( t , n , r ) { Gu . call ( t , r ) ? ++ t [ r ] : t [ r ] = 1 } ) , mi = Pr ( Se ) , Ai = Pr ( Ie ) , ki = Cr ( function ( t , n , r ) { Gu . call ( t , r ) ? t [ r ] . push ( n ) : t [ r ] = [ n ] } ) , Ei = ar ( function ( t , n , e ) { var u = - 1 , o = "function" == typeof n , i = ye ( n ) , f = Qe ( t ) ? Cu ( t . length ) : [ ] ; return Po ( t , function ( t ) { var c = o ? n : i && null != t ? t [ n ] : P ; f [ ++ u ] = c ? r ( c , t , e ) : Mn ( t , n , e ) } ) , f } ) , Oi = Cr ( function ( t , n , r ) { t [ r ] = n } ) , Si = Cr ( function ( t , n , r ) { t [ r ? 0 : 1 ] . push ( n ) } , function ( ) { return [ [ ] , [ ] ] } ) , Ii = ar ( function ( t , n ) { if ( null == t ) return [ ] ; var r = n . length ; return 1 < r && de ( t , n [ 0 ] , n [ 1 ] ) ? n = [ ] : 2 < r && de ( n [ 0 ] , n [ 1 ] , n [ 2 ] ) && ( n = [ n [ 0 ] ] ) , nr ( t , kn ( n , 1 ) , [ ] ) } ) , Ri = lo || function ( ) { return Vt . Date . now ( ) } , Wi = ar ( function ( t , n , r ) { var e = 1 ; if ( r . length ) var u = z ( r , ie ( Wi ) ) , e = 32 | e ; return re ( t , e , n , r , u ) } ) , Bi = ar ( function ( t , n , r ) { var e = 3 ; if ( r . length ) var u = z ( r , ie ( Bi ) ) , e = 32 | e ;
var Tt = { } ; Tt [ "[object Arguments]" ] = Tt [ "[object Array]" ] = Tt [ "[object ArrayBuffer]" ] = Tt [ "[object DataView]" ] = Tt [ "[object Boolean]" ] = Tt [ "[object Date]" ] = Tt [ "[object Float32Array]" ] = Tt [ "[object Float64Array]" ] = Tt [ "[object Int8Array]" ] = Tt [ "[object Int16Array]" ] = Tt [ "[object Int32Array]" ] = Tt [ "[object Map]" ] = Tt [ "[object Number]" ] = Tt [ "[object Object]" ] = Tt [ "[object RegExp]" ] = Tt [ "[object Set]" ] = Tt [ "[object String]" ] = Tt [ "[object Symbol]" ] = Tt [ "[object Uint8Array]" ] = Tt [ "[object Uint8ClampedArray]" ] = Tt [ "[object Uint16Array]" ] = Tt [ "[object Uint32Array]" ] = ! 0 , Tt [ "[object Error]" ] = Tt [ "[object Function]" ] = Tt [ "[object WeakMap]" ] = ! 1 ; var $t , Ft = { "\\" : "\\" , "'" : "'" , "\n" : "n" , "\r" : "r" , "\u2028" : "u2028" , "\u2029" : "u2029" } , Nt = parseFloat , Pt = parseInt , Zt = "object" == typeof global && global && global . Object === Object && global , qt = "object" == typeof self && self && self . Object === Object && self , Vt = Zt || qt || Function ( "return this" ) ( ) , Kt = "object" == typeof exports && exports && ! exports . nodeType && exports , Gt = Kt && "object" == typeof module && module && ! module . nodeType && module , Jt = Gt && Gt . exports === Kt , Yt = Jt && Zt . g ; t : { try { $t = Yt && Yt . f ( "util" ) ; break t } catch ( t ) { } $t = void 0 } var Ht = $t && $t . isArrayBuffer , Qt = $t && $t . isDate , Xt = $t && $t . isMap , tn = $t && $t . isRegExp , nn = $t && $t . isSet , rn = $t && $t . isTypedArray , en = j ( "length" ) , un = w ( { "À" : "A" , "Á" : "A" , "Â" : "A" , "Ã" : "A" , "Ä" : "A" , "Å" : "A" , "à" : "a" , "á" : "a" , "â" : "a" , "ã" : "a" , "ä" : "a" , "å" : "a" , "Ç" : "C" , "ç" : "c" , "Ð" : "D" , "ð" : "d" , "È" : "E" , "É" : "E" , "Ê" : "E" , "Ë" : "E" , "è" : "e" , "é" : "e" , "ê" : "e" , "ë" : "e" , "Ì" : "I" , "Í" : "I" , "Î" : "I" , "Ï" : "I" , "ì" : "i" , "í" : "i" , "î" : "i" , "ï" : "i" , "Ñ" : "N" , "ñ" : "n" , "Ò" : "O" , "Ó" : "O" , "Ô" : "O" , "Õ" : "O" , "Ö" : "O" , "Ø" : "O" , "ò" : "o" , "ó" : "o" , "ô" : "o" , "õ" : "o" , "ö" : "o" , "ø" : "o" , "Ù" : "U" , "Ú" : "U" , "Û" : "U" , "Ü" : "U" , "ù" : "u" , "ú" : "u" , "û" : "u" , "ü" : "u" , "Ý" : "Y" , "ý" : "y" , "ÿ" : "y" , "Æ" : "Ae" , "æ" : "ae" , "Þ" : "Th" , "þ" : "th" , "ß" : "ss" , "Ā" : "A" , "Ă" : "A" , "Ą" : "A" , "ā" : "a" , "ă" : "a" , "ą" : "a" , "Ć" : "C" , "Ĉ" : "C" , "Ċ" : "C" , "Č" : "C" , "ć" : "c" , "ĉ" : "c" , "ċ" : "c" , "č" : "c" , "Ď" : "D" , "Đ" : "D" , "ď" : "d" , "đ" : "d" , "Ē" : "E" , "Ĕ" : "E" , "Ė" : "E" , "Ę" : "E" , "Ě" : "E" , "ē" : "e" , "ĕ" : "e" , "ė" : "e" , "ę" : "e" , "ě" : "e" , "Ĝ" : "G" , "Ğ" : "G" , "Ġ" : "G" , "Ģ" : "G" , "ĝ" : "g" , "ğ" : "g" , "ġ" : "g" , "ģ" : "g" , "Ĥ" : "H" , "Ħ" : "H" , "ĥ" : "h" , "ħ" : "h" , "Ĩ" : "I" , "Ī" : "I" , "Ĭ" : "I" , "Į" : "I" , "İ" : "I" , "ĩ" : "i" , "ī" : "i" , "ĭ" : "i" , "į" : "i" , "ı " : "i" , "Ĵ" : "J" , "ĵ" : "j" , "Ķ" : "K" , "ķ" : "k" , "ĸ" : "k" , "Ĺ" : "L" , "Ļ" : "L" , "Ľ" : "L" , "Ŀ" : "L" , "Ł" : "L" , "ĺ" : "l" , "ļ" : "l" , "ľ" : "l" , "ŀ" : "l" , "ł" : "l" , "Ń" : "N" , "Ņ" : "N" , "Ň" : "N" , "Ŋ" : "N" , "ń" : "n" , "ņ" : "n" , "ň" : "n" , "ŋ" : "n" , "Ō" : "O" , "Ŏ" : "O" , "Ő" : "O" , "ō" : "o" , "ŏ" : "o" , "ő" : "o" , "Ŕ" : "R" , "Ŗ" : "R" , "Ř" : "R" , "ŕ" : "r" , "ŗ" : "r" , "ř" : "r" , "Ś" : "S" , "Ŝ" : "S" , "Ş" : "S" , "Š" : "S" , "ś" : "s" , "ŝ" : "s" , "ş" : "s" , "š" : "s" , "Ţ" : "T" , "Ť" : "T" , "Ŧ" : "T" , "ţ" : "t" , "ť" : "t" , "ŧ" : "t" , "Ũ" : "U" , "Ū" : "U" , "Ŭ" : "U" , "Ů" : "U" , "Ű" : "U" , "Ų" : "U" , "ũ" : "u" , "ū" : "u" , "ŭ" : "u" , "ů" : "u" , "ű" : "u" , "ų" : "u" , "Ŵ" : "W" , "ŵ" : "w" , "Ŷ" : "Y" , "ŷ" : "y" , "Ÿ" : "Y" , "Ź" : "Z" , "Ż" : "Z" , "Ž" : "Z" , "ź" : "z" , "ż" : "z" , "ž" : "z" , "IJ" : "IJ" , "ij" : "ij" , "Œ" : "Oe" , "œ" : "oe" , "ʼn" : "'n" , "ſ " : "ss" } ) , on = w ( { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "`" : "`" } ) , fn = w ( { "&" : "&" , "<" : "<" , ">" : ">" , """ : '"' , "'" : "'" , "`" : "`" } ) , cn = N ( ) ; "function" == typeof define && "object" == typeof define . amd && define . amd ? ( Vt . _ = cn , define ( function ( ) { return cn } ) ) : Gt ? ( ( Gt . exports = cn ) . _ = cn , Kt . _ = cn ) : Vt . _ = cn } . call ( this ) ;