@@ -3,27 +3,27 @@ case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:value+=Unesc
self . onError ( xhr . status ) } , 0 ) ) } , debug ( "xhr data %s" , this . data ) , xhr . send ( this . data ) } catch ( e ) { return void setTimeout ( function ( ) { self . onError ( e ) } , 0 ) } global . document && ( this . index = Request . requestsCount ++ , Request . requests [ this . index ] = this ) } , Request . prototype . onSuccess = function ( ) { this . emit ( "success" ) , this . cleanup ( ) } , Request . prototype . onData = function ( data ) { this . emit ( "data" , data ) , this . onSuccess ( ) } , Request . prototype . onError = function ( err ) { this . emit ( "error" , err ) , this . cleanup ( ! 0 ) } , Request . prototype . cleanup = function ( fromError ) { if ( "undefined" != typeof this . xhr && null !== this . xhr ) { if ( this . hasXDR ( ) ? this . xhr . onload = this . xhr . onerror = empty : this . xhr . onreadystatechange = empty , fromError ) try { this . xhr . abort ( ) } catch ( e ) { } global . document && delete Request . requests [ this . index ] , this . xhr = null } } , Request . prototype . onLoad = function ( ) { var data ; try { var contentType ; try { contentType = this . xhr . getResponseHeader ( "Content-Type" ) . split ( ";" ) [ 0 ] } catch ( e ) { } if ( "application/octet-stream" === contentType ) data = this . xhr . response ; else if ( this . supportsBinary ) try { data = String . fromCharCode . apply ( null , new Uint8Array ( this . xhr . response ) ) } catch ( e ) { for ( var ui8Arr = new Uint8Array ( this . xhr . response ) , dataArray = [ ] , idx = 0 , length = ui8Arr . length ; idx < length ; idx ++ ) dataArray . push ( ui8Arr [ idx ] ) ; data = String . fromCharCode . apply ( null , dataArray ) } else data = this . xhr . responseText } catch ( e ) { this . onError ( e ) } null != data && this . onData ( data ) } , Request . prototype . hasXDR = function ( ) { return "undefined" != typeof global . XDomainRequest && ! this . xs && this . enablesXDR } , Request . prototype . abort = function ( ) { this . cleanup ( ) } , global . document && ( Request . requestsCount = 0 , Request . requests = { } , global . attachEvent ? global . attachEvent ( "onunload" , unloadHandler ) : global . addEventListener && global . addEventListener ( "beforeunload" , unloadHandler , ! 1 ) ) } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { function Polling ( opts ) { var forceBase64 = opts && opts . forceBase64 ; hasXHR2 && ! forceBase64 || ( this . supportsBinary = ! 1 ) , Transport . call ( this , opts ) } var Transport = _ _webpack _require _ _ ( 23 ) , parseqs = _ _webpack _require _ _ ( 34 ) , parser = _ _webpack _require _ _ ( 24 ) , inherit = _ _webpack _require _ _ ( 35 ) , yeast = _ _webpack _require _ _ ( 36 ) , debug = _ _webpack _require _ _ ( 3 ) ( "engine.io-client:polling" ) ; module . exports = Polling ; var hasXHR2 = function ( ) { var XMLHttpRequest = _ _webpack _require _ _ ( 19 ) , xhr = new XMLHttpRequest ( { xdomain : ! 1 } ) ; return null != xhr . responseType } ( ) ; inherit ( Polling , Transport ) , Polling . prototype . name = "polling" , Polling . prototype . doOpen = function ( ) { this . poll ( ) } , Polling . prototype . pause = function ( onPause ) { function pause ( ) { debug ( "paused" ) , self . readyState = "paused" , onPause ( ) } var self = this ; if ( this . readyState = "pausing" , this . polling || ! this . writable ) { var total = 0 ; this . polling && ( debug ( "we are currently polling - waiting to pause" ) , total ++ , this . once ( "pollComplete" , function ( ) { debug ( "pre-pause polling complete" ) , -- total || pause ( ) } ) ) , this . writable || ( debug ( "we are currently writing - waiting to pause" ) , total ++ , this . once ( "drain" , function ( ) { debug ( "pre-pause writing complete" ) , -- total || pause ( ) } ) ) } else pause ( ) } , Polling . prototype . poll = function ( ) { debug ( "polling" ) , this . polling = ! 0 , this . doPoll ( ) , this . emit ( "poll" ) } , Polling . prototype . onData = function ( data ) { var self = this ; debug ( "polling got data %s" , data ) ; var callback = function ( packet , index , total ) { return "opening" == self . readyState && self . onOpen ( ) , "close" == packet . type ? ( self . onClose ( ) , ! 1 ) : void self . onPacket ( packet ) } ; parser . decodePayload ( data , this . socket . binaryType , callback ) , "closed" != this . readyState && ( this . polling = ! 1 , this . emit ( "pollComplete" ) , "open" == this . readyState ? this . poll ( ) : debug ( 'ignoring poll - transport state "%s"' , this . readyState ) ) } , Polling . prototype . doClose = function ( ) { function close ( ) { debug ( "writing close packet" ) , self . write ( [ { type : "close" } ] ) } var self = this ; "open" == this . readyState ? ( debug ( "transport open - closing" ) , close ( ) ) : ( debug ( "transport not open - deferring close" ) , this . once ( "open" , close ) ) } , Polling . prototype . write = function ( packets ) { var self = this ; this . writable = ! 1 ; var callbackfn = function ( ) { self . writable = ! 0 , self . emit ( "drain" ) } , self = this ; parser . encodePayload ( packets , this . supportsBinary , function ( data ) { self . doWrite ( data , callbackfn ) } ) } , Polling . prototype . uri = function ( ) { var query = this . query || { } , schema = this . secure ? "https" : "http" , port = "" ; ! 1 !== this . timestampRequests && ( query [ this . timestampParam ] = yeast ( ) ) , this . supportsBinary || query . sid || ( query . b64 = 1 ) , query = parseqs . encode ( query ) , this . port && ( "https" == schema && 443 != this . port || "http" == schema && 80 != this . port ) && ( port = ":" + this . port ) , query . length && ( query = "?" + query ) ; var ipv6 = this . hostname . indexOf ( ":" ) !== - 1 ; return schema + "://" + ( ipv6 ? "[" + this . hostname + "]" : this . hostname ) + port + this . path + query } } , function ( module , exports , _ _webpack _require _ _ ) { function Transport ( opts ) { this . path = opts . path , this . hostname = opts . hostname , this . port = opts . port , this . secure = opts . secure , this . query = opts . query , this . timestampParam = opts . timestampParam , this . timestampRequests = opts . timestampRequests , this . readyState = "" , this . agent = opts . agent || ! 1 , this . socket = opts . socket , this . enablesXDR = opts . enablesXDR , this . pfx = opts . pfx , this . key = opts . key , this . passphrase = opts . Line truncated
global . JSON && JSON . parse ? JSON . parse ( data ) : rvalidchars . test ( data . replace ( rvalidescape , "@" ) . replace ( rvalidtokens , "]" ) . replace ( rvalidbraces , "" ) ) ? new Function ( "return " + data ) ( ) : void 0 ) : null } } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { "use strict" ; function Socket ( io , nsp , opts ) { this . io = io , this . nsp = nsp , this . json = this , this . ids = 0 , this . acks = { } , this . receiveBuffer = [ ] , this . sendBuffer = [ ] , this . connected = ! 1 , this . disconnected = ! 0 , opts && opts . query && ( this . query = opts . query ) , this . io . autoConnect && this . open ( ) } var parser = _ _webpack _require _ _ ( 6 ) , Emitter = _ _webpack _require _ _ ( 43 ) , toArray = _ _webpack _require _ _ ( 44 ) , on = _ _webpack _require _ _ ( 45 ) , bind = _ _webpack _require _ _ ( 46 ) , debug = _ _webpack _require _ _ ( 3 ) ( "socket.io-client:socket" ) , hasBin = _ _webpack _require _ _ ( 47 ) ; module . exports = exports = Socket ; var events = { connect : 1 , connect _error : 1 , connect _timeout : 1 , connecting : 1 , disconnect : 1 , error : 1 , reconnect : 1 , reconnect _attempt : 1 , reconnect _failed : 1 , reconnect _error : 1 , reconnecting : 1 , ping : 1 , pong : 1 } , emit = Emitter . prototype . emit ; Emitter ( Socket . prototype ) , Socket . prototype . subEvents = function ( ) { if ( ! this . subs ) { var io = this . io ; this . subs = [ on ( io , "open" , bind ( this , "onopen" ) ) , on ( io , "packet" , bind ( this , "onpacket" ) ) , on ( io , "close" , bind ( this , "onclose" ) ) ] } } , Socket . prototype . open = Socket . prototype . connect = function ( ) { return this . connected ? this : ( this . subEvents ( ) , this . io . open ( ) , "open" === this . io . readyState && this . onopen ( ) , this . emit ( "connecting" ) , this ) } , Socket . prototype . send = function ( ) { var args = toArray ( arguments ) ; return args . unshift ( "message" ) , this . emit . apply ( this , args ) , this } , Socket . prototype . emit = function ( ev ) { if ( events . hasOwnProperty ( ev ) ) return emit . apply ( this , arguments ) , this ; var args = toArray ( arguments ) , parserType = parser . EVENT ; hasBin ( args ) && ( parserType = parser . BINARY _EVENT ) ; var packet = { type : parserType , data : args } ; return packet . options = { } , packet . options . compress = ! this . flags || ! 1 !== this . flags . compress , "function" == typeof args [ args . length - 1 ] && ( debug ( "emitting packet with ack id %d" , this . ids ) , this . acks [ this . ids ] = args . pop ( ) , packet . id = this . ids ++ ) , this . connected ? this . packet ( packet ) : this . sendBuffer . push ( packet ) , delete this . flags , this } , Socket . prototype . packet = function ( packet ) { packet . nsp = this . nsp , this . io . packet ( packet ) } , Socket . prototype . onopen = function ( ) { debug ( "transport is open - connecting" ) , "/" !== this . nsp && ( this . query ? this . packet ( { type : parser . CONNECT , query : this . query } ) : this . packet ( { type : parser . CONNECT } ) ) } , Socket . prototype . onclose = function ( reason ) { debug ( "close (%s)" , reason ) , this . connected = ! 1 , this . disconnected = ! 0 , delete this . id , this . emit ( "disconnect" , reason ) } , Socket . prototype . onpacket = function ( packet ) { if ( packet . nsp === this . nsp ) switch ( packet . type ) { case parser . CONNECT : this . onconnect ( ) ; break ; case parser . EVENT : this . onevent ( packet ) ; break ; case parser . BINARY _EVENT : this . onevent ( packet ) ; break ; case parser . ACK : this . onack ( packet ) ; break ; case parser . BINARY _ACK : this . onack ( packet ) ; break ; case parser . DISCONNECT : this . ondisconnect ( ) ; break ; case parser . ERROR : this . emit ( "error" , packet . data ) } } , Socket . prototype . onevent = function ( packet ) { var args = packet . data || [ ] ; debug ( "emitting event %j" , args ) , null != packet . id && ( debug ( "attaching ack callback to event" ) , args . push ( this . ack ( packet . id ) ) ) , this . connected ? emit . apply ( this , args ) : this . receiveBuffer . push ( args ) } , Socket . prototype . ack = function ( id ) { var self = this , sent = ! 1 ; return function ( ) { if ( ! sent ) { sent = ! 0 ; var args = toArray ( arguments ) ; debug ( "sending ack %j" , args ) ; var type = hasBin ( args ) ? parser . BINARY _ACK : parser . ACK ; self . packet ( { type : type , id : id , data : args } ) } } } , Socket . prototype . onack = function ( packet ) { var ack = this . acks [ packet . id ] ; "function" == typeof ack ? ( debug ( "calling ack %s with %j" , packet . id , packet . data ) , ack . apply ( this , packet . data ) , delete this . acks [ packet . id ] ) : debug ( "bad ack %s" , packet . id ) } , Socket . prototype . onconnect = function ( ) { this . connected = ! 0 , this . disconnected = ! 1 , this . emit ( "connect" ) , this . emitBuffered ( ) } , Socket . prototype . emitBuffered = function ( ) { var i ; for ( i = 0 ; i < this . receiveBuffer . length ; i ++ ) emit . apply ( this , this . receiveBuffer [ i ] ) ; for ( this . receiveBuffer = [ ] , i = 0 ; i < this . sendBuffer . length ; i ++ ) this . packet ( this . sendBuffer [ i ] ) ; this . sendBuffer = [ ] } , Socket . prototype . ondisconnect = function ( ) { debug ( "server disconnect (%s)" , this . nsp ) , this . destroy ( ) , this . onclose ( "io server disconnect" ) } , Socket . prototype . destroy = function ( ) { if ( this . subs ) { for ( var i = 0 ; i < this . subs . length ; i ++ ) this . subs [ i ] . destroy ( ) ; this . subs = null } this . io . destroy ( this ) } , Socket . prototype . close = Socket . prototype . disconnect = function ( ) { return this . connected && ( debug ( "performing disconnect (%s)" , this . nsp ) , this . packet ( { type : parser . DISCONNECT } ) ) , this . destroy ( ) , this . connected && this . onclose ( "io client disconnect" ) , this } , Socket . prototype . compress = function ( compress ) { return this . flags = this . flags || { } , this . flags . compress = compress , this } } , function ( module , exports ) { function Emitter ( obj ) { if ( obj ) return mixin ( obj ) } function mixin ( obj ) { for ( var key in Emitter . prototype ) obj [ key ] = Emitter . prototype [ key ] ; return obj } module . exports = Emitter , Emitter . prototype . on = Emitter . prototype . addEventListener = function ( event , fn ) { return this . _callbacks = this . _callbacks Line truncated
return o . appendChild ( a ) . id = u , ! n . getElementsByName || ! n . getElementsByName ( u ) . length } ) , c . getById ? ( d . filter . ID = function ( a ) { var b = a . replace ( _ , aa ) ; return function ( a ) { return a . getAttribute ( "id" ) === b } } , d . find . ID = function ( a , b ) { if ( "undefined" != typeof b . getElementById && p ) { var c = b . getElementById ( a ) ; return c ? [ c ] : [ ] } } ) : ( d . filter . ID = function ( a ) { var b = a . replace ( _ , aa ) ; return function ( a ) { var c = "undefined" != typeof a . getAttributeNode && a . getAttributeNode ( "id" ) ; return c && c . value === b } } , d . find . ID = function ( a , b ) { if ( "undefined" != typeof b . getElementById && p ) { var c , d , e , f = b . getElementById ( a ) ; if ( f ) { if ( c = f . getAttributeNode ( "id" ) , c && c . value === a ) return [ f ] ; for ( e = b . getElementsByName ( a ) , d = 0 ; f = e [ d ++ ] ; ) if ( c = f . getAttributeNode ( "id" ) , c && c . value === a ) return [ f ] } return [ ] } } ) , d . find . TAG = c . getElementsByTagName ? function ( a , b ) { return "undefined" != typeof b . getElementsByTagName ? b . getElementsByTagName ( a ) : c . qsa ? b . querySelectorAll ( a ) : void 0 } : function ( a , b ) { var c , d = [ ] , e = 0 , f = b . getElementsByTagName ( a ) ; if ( "*" === a ) { for ( ; c = f [ e ++ ] ; ) 1 === c . nodeType && d . push ( c ) ; return d } return f } , d . find . CLASS = c . getElementsByClassName && function ( a , b ) { if ( "undefined" != typeof b . getElementsByClassName && p ) return b . getElementsByClassName ( a ) } , r = [ ] , q = [ ] , ( c . qsa = Y . test ( n . querySelectorAll ) ) && ( ja ( function ( a ) { o . appendChild ( a ) . innerHTML = "<a id='" + u + "'></a><select id='" + u + "-\r\\' msallowcapture=''><option selected=''></option></select>" , a . querySelectorAll ( "[msallowcapture^='']" ) . length && q . push ( "[*^$]=" + K + "*(?:''|\"\")" ) , a . querySelectorAll ( "[selected]" ) . length || q . push ( "\\[" + K + "*(?:value|" + J + ")" ) , a . querySelectorAll ( "[id~=" + u + "-]" ) . length || q . push ( "~=" ) , a . querySelectorAll ( ":checked" ) . length || q . push ( ":checked" ) , a . querySelectorAll ( "a#" + u + "+*" ) . length || q . push ( ".#.+[+~]" ) } ) , ja ( function ( a ) { a . innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>" ; var b = n . createElement ( "input" ) ; b . setAttribute ( "type" , "hidden" ) , a . appendChild ( b ) . setAttribute ( "name" , "D" ) , a . querySelectorAll ( "[name=d]" ) . length && q . push ( "name" + K + "*[*^$|!~]?=" ) , 2 !== a . querySelectorAll ( ":enabled" ) . length && q . push ( ":enabled" , ":disabled" ) , o . appendChild ( a ) . disabled = ! 0 , 2 !== a . querySelectorAll ( ":disabled" ) . length && q . push ( ":enabled" , ":disabled" ) , a . querySelectorAll ( "*,:x" ) , q . push ( ",.*:" ) } ) ) , ( c . matchesSelector = Y . test ( s = o . matches || o . webkitMatchesSelector || o . mozMatchesSelector || o . oMatchesSelector || o . msMatchesSelector ) ) && ja ( function ( a ) { c . disconnectedMatch = s . call ( a , "*" ) , s . call ( a , "[s!='']:x" ) , r . push ( "!=" , N ) } ) , q = q . length && new RegExp ( q . join ( "|" ) ) , r = r . length && new RegExp ( r . join ( "|" ) ) , b = Y . test ( o . compareDocumentPosition ) , t = b || Y . test ( o . contains ) ? function ( a , b ) { var c = 9 === a . nodeType ? a . documentElement : a , d = b && b . parentNode ; return a === d || ! ( ! d || 1 !== d . nodeType || ! ( c . contains ? c . contains ( d ) : a . compareDocumentPosition && 16 & a . compareDocumentPosition ( d ) ) ) } : function ( a , b ) { if ( b ) for ( ; b = b . parentNode ; ) if ( b === a ) return ! 0 ; return ! 1 } , B = b ? function ( a , b ) { if ( a === b ) return l = ! 0 , 0 ; var d = ! a . compareDocumentPosition - ! b . compareDocumentPosition ; return d ? d : ( d = ( a . ownerDocument || a ) === ( b . ownerDocument || b ) ? a . compareDocumentPosition ( b ) : 1 , 1 & d || ! c . sortDetached && b . compareDocumentPosition ( a ) === d ? a === n || a . ownerDocument === v && t ( v , a ) ? - 1 : b === n || b . ownerDocument === v && t ( v , b ) ? 1 : k ? I ( k , a ) - I ( k , b ) : 0 : 4 & d ? - 1 : 1 ) } : function ( a , b ) { if ( a === b ) return l = ! 0 , 0 ; var c , d = 0 , e = a . parentNode , f = b . parentNode , g = [ a ] , h = [ b ] ; if ( ! e || ! f ) return a === n ? - 1 : b === n ? 1 : e ? - 1 : f ? 1 : k ? I ( k , a ) - I ( k , b ) : 0 ; if ( e === f ) return la ( a , b ) ; for ( c = a ; c = c . parentNode ; ) g . unshift ( c ) ; for ( c = b ; c = c . parentNode ; ) h . unshift ( c ) ; for ( ; g [ d ] === h [ d ] ; ) d ++ ; return d ? la ( g [ d ] , h [ d ] ) : g [ d ] === v ? - 1 : h [ d ] === v ? 1 : 0 } , n ) : n } , ga . matches = function ( a , b ) { return ga ( a , null , null , b ) } , ga . matchesSelector = function ( a , b ) { if ( ( a . ownerDocument || a ) !== n && m ( a ) , b = b . replace ( S , "='$1']" ) , c . matchesSelector && p && ! A [ b + " " ] && ( ! r || ! r . test ( b ) ) && ( ! q || ! q . test ( b ) ) ) try { var d = s . call ( a , b ) ; if ( d || c . disconnectedMatch || a . document && 11 !== a . document . nodeType ) return d } catch ( e ) { } return ga ( b , n , null , [ a ] ) . length > 0 } , ga . contains = function ( a , b ) { return ( a . ownerDocument || a ) !== n && m ( a ) , t ( a , b ) } , ga . attr = function ( a , b ) { ( a . ownerDocument || a ) !== n && m ( a ) ; var e = d . attrHandle [ b . toLowerCase ( ) ] , f = e && C . call ( d . attrHandle , b . toLowerCase ( ) ) ? e ( a , b , ! p ) : void 0 ; return void 0 !== f ? f : c . attributes || ! p ? a . getAttribute ( b ) : ( f = a . getAttributeNode ( b ) ) && f . specified ? f . value : null } , ga . escape = function ( a ) { return ( a + "" ) . replace ( ba , ca ) } , ga . error = function ( a ) { throw new Error ( "Syntax error, unrecognized expression: " + a ) } , ga . uniqueSort = function ( a ) { var b , d = [ ] , e = 0 , f = 0 ; if ( l = ! c . detectDuplicates , k = ! c . sortStable && a . slice ( 0 ) , a . sort ( B ) , l ) { for ( ; b = a [ f ++ ] ; ) b === a [ f ] && ( e = d . push ( f ) ) ; for ( ; e -- ; ) a . splice ( d [ e ] , 1 ) } return k = null , a } , e = ga . getText = function ( a ) { var b , c = "" , d = 0 , f = a . nodeType ; if ( f ) { if ( 1 === f || 9 === f || 11 === f ) { if ( "string" == typeof a . textContent ) return a . textContent ; for ( a = a . firstChild ; a ; a = a . nextSibling ) c += e ( a ) } else if ( 3 === f || 4 === f ) return a . nodeValue } else for ( ; b = a [ d ++ ] ; ) c += e ( b ) ; return c } , d = ga . selectors = { cacheLength : 50 , createPseudo : ia , match : V , attrHandle : { } , find : { } , relative : { ">" : { dir : "parentNode" , first : ! 0 } , " " : { dir : "parentNode" } , "+" : { dir : "previousSibling" , first : ! 0 } , "~" : { dir : "previousSibling" } } , preFilter : { ATTR : function ( a ) { return Line truncated
1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || ( this . textContent = a ) } ) } , null , a , arguments . length ) } , append : function ( ) { return Ia ( this , arguments , function ( a ) { if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ) { var b = Da ( this , a ) ; b . appendChild ( a ) } } ) } , prepend : function ( ) { return Ia ( this , arguments , function ( a ) { if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ) { var b = Da ( this , a ) ; b . insertBefore ( a , b . firstChild ) } } ) } , before : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this ) } ) } , after : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this . nextSibling ) } ) } , empty : function ( ) { for ( var a , b = 0 ; null != ( a = this [ b ] ) ; b ++ ) 1 === a . nodeType && ( r . cleanData ( ma ( a , ! 1 ) ) , a . textContent = "" ) ; return this } , clone : function ( a , b ) { return a = null != a && a , b = null == b ? a : b , this . map ( function ( ) { return r . clone ( this , a , b ) } ) } , html : function ( a ) { return S ( this , function ( a ) { var b = this [ 0 ] || { } , c = 0 , d = this . length ; if ( void 0 === a && 1 === b . nodeType ) return b . innerHTML ; if ( "string" == typeof a && ! za . test ( a ) && ! la [ ( ja . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = r . htmlPrefilter ( a ) ; try { for ( ; c < d ; c ++ ) b = this [ c ] || { } , 1 === b . nodeType && ( r . cleanData ( ma ( b , ! 1 ) ) , b . innerHTML = a ) ; b = 0 } catch ( e ) { } } b && this . empty ( ) . append ( a ) } , null , a , arguments . length ) } , replaceWith : function ( ) { var a = [ ] ; return Ia ( this , arguments , function ( b ) { var c = this . parentNode ; r . inArray ( this , a ) < 0 && ( r . cleanData ( ma ( this ) ) , c && c . replaceChild ( b , this ) ) } , a ) } } ) , r . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , b ) { r . fn [ a ] = function ( a ) { for ( var c , d = [ ] , e = r ( a ) , f = e . length - 1 , g = 0 ; g <= f ; g ++ ) c = g === f ? this : this . clone ( ! 0 ) , r ( e [ g ] ) [ b ] ( c ) , h . apply ( d , c . get ( ) ) ; return this . pushStack ( d ) } } ) ; var Ka = /^margin/ , La = new RegExp ( "^(" + _ + ")(?!px)[a-z%]+$" , "i" ) , Ma = function ( b ) { var c = b . ownerDocument . defaultView ; return c && c . opener || ( c = a ) , c . getComputedStyle ( b ) } ; ! function ( ) { function b ( ) { if ( i ) { i . style . cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%" , i . innerHTML = "" , qa . appendChild ( h ) ; var b = a . getComputedStyle ( i ) ; c = "1%" !== b . top , g = "2px" === b . marginLeft , e = "4px" === b . width , i . style . marginRight = "50%" , f = "4px" === b . marginRight , qa . removeChild ( h ) , i = null } } var c , e , f , g , h = d . createElement ( "div" ) , i = d . createElement ( "div" ) ; i . style && ( i . style . backgroundClip = "content-box" , i . cloneNode ( ! 0 ) . style . backgroundClip = "" , o . clearCloneStyle = "content-box" === i . style . backgroundClip , h . style . cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute" , h . appendChild ( i ) , r . extend ( o , { pixelPosition : function ( ) { return b ( ) , c } , boxSizingReliable : function ( ) { return b ( ) , e } , pixelMarginRight : function ( ) { return b ( ) , f } , reliableMarginLeft : function ( ) { return b ( ) , g } } ) ) } ( ) ; var Pa = /^(none|table(?!-c[ea]).+)/ , Qa = { position : "absolute" , visibility : "hidden" , display : "block" } , Ra = { letterSpacing : "0" , fontWeight : "400" } , Sa = [ "Webkit" , "Moz" , "ms" ] , Ta = d . createElement ( "div" ) . style ; r . extend ( { cssHooks : { opacity : { get : function ( a , b ) { if ( b ) { var c = Na ( a , "opacity" ) ; return "" === c ? "1" : c } } } } , cssNumber : { animationIterationCount : ! 0 , columnCount : ! 0 , fillOpacity : ! 0 , flexGrow : ! 0 , flexShrink : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , order : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { float : "cssFloat" } , style : function ( a , b , c , d ) { if ( a && 3 !== a . nodeType && 8 !== a . nodeType && a . style ) { var e , f , g , h = r . camelCase ( b ) , i = a . style ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , void 0 === c ? g && "get" in g && void 0 !== ( e = g . get ( a , ! 1 , d ) ) ? e : i [ b ] : ( f = typeof c , "string" === f && ( e = aa . exec ( c ) ) && e [ 1 ] && ( c = ea ( a , b , e ) , f = "number" ) , void ( null != c && c === c && ( "number" === f && ( c += e && e [ 3 ] || ( r . cssNumber [ h ] ? "" : "px" ) ) , o . clearCloneStyle || "" !== c || 0 !== b . indexOf ( "background" ) || ( i [ b ] = "inherit" ) , g && "set" in g && void 0 === ( c = g . set ( a , c , d ) ) || ( i [ b ] = c ) ) ) ) } } , css : function ( a , b , c , d ) { var e , f , g , h = r . camelCase ( b ) ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , g && "get" in g && ( e = g . get ( a , ! 0 , c ) ) , void 0 === e && ( e = Na ( a , b , d ) ) , "normal" === e && b in Ra && ( e = Ra [ b ] ) , "" === c || c ? ( f = parseFloat ( e ) , c === ! 0 || isFinite ( f ) ? f || 0 : e ) : e } } ) , r . each ( [ "height" , "width" ] , function ( a , b ) { r . cssHooks [ b ] = { get : function ( a , c , d ) { if ( c ) return ! Pa . test ( r . css ( a , "display" ) ) || a . getClientRects ( ) . length && a . getBoundingClientRect ( ) . width ? Xa ( a , b , d ) : da ( a , Qa , function ( ) { return Xa ( a , b , d ) } ) } , set : function ( a , c , d ) { var e , f = d && Ma ( a ) , g = d && Wa ( a , b , d , "border-box" === r . css ( a , "boxSizing" , ! 1 , f ) , f ) ; return g && ( e = aa . exec ( c ) ) && "px" !== ( e [ 3 ] || "px" ) && ( a . style [ b ] = c , c = r . css ( a , b ) ) , Va ( a , c , g ) } } } ) , r . cssHooks . marginLeft = Oa ( o . reliableMarginLeft , function ( a , b ) { if ( b ) return ( parseFloat ( Na ( a , "marginLeft" ) ) || a . getBoundingClientRect ( ) . left - da ( a , { marginLeft : 0 } , function ( ) { return a . getBoundingClientRect ( ) . left } ) ) + "px" } ) , r . each ( { margin : "" , padding : "" , border : "Width" } , function ( a , b ) { r . cssHooks [ a + b ] = { expand : function ( c ) { for ( var d = 0 , e = { } , f = "string" == typeof c ? c . split ( " " ) : [ c ] ; d < 4 ; d ++ ) e [ a + ba [ d ] + b ] = f [ d ] || f [ d - 2 ] || f [ 0 ] ; return e } } , Ka . test ( a ) || ( r . cssHooks [ a + b ] . set = Va ) } ) , r . fn . extend ( { css : function ( a , b ) { return S ( this , function ( a , b , c ) { var d , e , f = { } , g = 0 ; if ( Line truncated
} function d ( e ) { for ( var t = { } , n = 0 ; n < e . length ; n ++ ) e [ n ] && u ( t , e [ n ] ) ; return t } function p ( ) { } function v ( e ) { return e . reduce ( function ( e , t ) { return e . concat ( t . staticKeys || [ ] ) } , [ ] ) . join ( "," ) } function h ( e , t ) { return e == t || ! ( ! l ( e ) || ! l ( t ) ) && JSON . stringify ( e ) === JSON . stringify ( t ) } function m ( e , t ) { for ( var n = 0 ; n < e . length ; n ++ ) if ( h ( e [ n ] , t ) ) return n ; return - 1 } function g ( e ) { var t = ( e + "" ) . charCodeAt ( 0 ) ; return 36 === t || 95 === t } function y ( e , t , n , r ) { Object . defineProperty ( e , t , { value : n , enumerable : ! ! r , writable : ! 0 , configurable : ! 0 } ) } function _ ( e ) { if ( ! kr . test ( e ) ) { var t = e . split ( "." ) ; return function ( e ) { for ( var n = 0 ; n < t . length ; n ++ ) { if ( ! e ) return ; e = e [ t [ n ] ] } return e } } } function b ( e ) { return /native code/ . test ( e . toString ( ) ) } function $ ( e ) { Rr . target && Ir . push ( Rr . target ) , Rr . target = e } function w ( ) { Rr . target = Ir . pop ( ) } function C ( ) { Fr . length = 0 , Br = { } , Hr = Ur = ! 1 } function x ( ) { for ( Ur = ! 0 , Fr . sort ( function ( e , t ) { return e . id - t . id } ) , zr = 0 ; zr < Fr . length ; zr ++ ) { var e = Fr [ zr ] , t = e . id ; Br [ t ] = null , e . run ( ) } Nr && xr . devtools && Nr . emit ( "flush" ) , C ( ) } function k ( e ) { var t = e . id ; if ( null == Br [ t ] ) { if ( Br [ t ] = ! 0 , Ur ) { for ( var n = Fr . length - 1 ; n >= 0 && Fr [ n ] . id > e . id ; ) n -- ; Fr . splice ( Math . max ( n , zr ) + 1 , 0 , e ) } else Fr . push ( e ) ; Hr || ( Hr = ! 0 , Mr ( x ) ) } } function A ( e , t ) { var n , r ; t || ( t = qr , t . clear ( ) ) ; var i = Array . isArray ( e ) , o = l ( e ) ; if ( ( i || o ) && Object . isExtensible ( e ) ) { if ( e . _ _ob _ _ ) { var a = e . _ _ob _ _ . dep . id ; if ( t . has ( a ) ) return ; t . add ( a ) } if ( i ) for ( n = e . length ; n -- ; ) A ( e [ n ] , t ) ; else if ( o ) for ( r = Object . keys ( e ) , n = r . length ; n -- ; ) A ( e [ r [ n ] ] , t ) } } function O ( e , t ) { e . _ _proto _ _ = t } function T ( e , t , n ) { for ( var r = 0 , i = n . length ; r < i ; r ++ ) { var o = n [ r ] ; y ( e , o , t [ o ] ) } } function S ( e ) { if ( l ( e ) ) { var t ; return i ( e , "__ob__" ) && e . _ _ob _ _ instanceof Yr ? t = e . _ _ob _ _ : Gr . shouldConvert && ! xr . _isServer && ( Array . isArray ( e ) || f ( e ) ) && Object . isExtensible ( e ) && ! e . _isVue && ( t = new Yr ( e ) ) , t } } function E ( e , t , n , r ) { var i = new Rr , o = Object . getOwnPropertyDescriptor ( e , t ) ; if ( ! o || o . configurable !== ! 1 ) { var a = o && o . get , s = o && o . set , c = S ( n ) ; Object . defineProperty ( e , t , { enumerable : ! 0 , configurable : ! 0 , get : function ( ) { var t = a ? a . call ( e ) : n ; if ( Rr . target && ( i . depend ( ) , c && c . dep . depend ( ) , Array . isArray ( t ) ) ) for ( var r = void 0 , o = 0 , s = t . length ; o < s ; o ++ ) r = t [ o ] , r && r . _ _ob _ _ && r . _ _ob _ _ . dep . depend ( ) ; return t } , set : function ( t ) { var r = a ? a . call ( e ) : n ; t !== r && ( s ? s . call ( e , t ) : n = t , c = S ( t ) , i . notify ( ) ) } } ) } } function j ( e , t , n ) { if ( Array . isArray ( e ) ) return e . splice ( t , 1 , n ) , n ; if ( i ( e , t ) ) return void ( e [ t ] = n ) ; var r = e . _ _ob _ _ ; return e . _isVue || r && r . vmCount ? void 0 : r ? ( E ( r . value , t , n ) , r . dep . notify ( ) , n ) : void ( e [ t ] = n ) } function L ( e , t ) { var n = e . _ _ob _ _ ; e . _isVue || n && n . vmCount || i ( e , t ) && ( delete e [ t ] , n && n . dep . notify ( ) ) } function D ( e ) { e . _watchers = [ ] , N ( e ) , M ( e ) , P ( e ) , I ( e ) , F ( e ) } function N ( e ) { var t = e . $options . props ; if ( t ) { var n = e . $options . propsData || { } , r = e . $options . _propKeys = Object . keys ( t ) , i = ! e . $parent ; Gr . shouldConvert = i ; for ( var o = function ( i ) { var o = r [ i ] ; E ( e , o , je ( o , t , n , e ) ) } , a = 0 ; a < r . length ; a ++ ) o ( a ) ; Gr . shouldConvert = ! 0 } } function M ( e ) { var t = e . $options . data ; t = e . _data = "function" == typeof t ? t . call ( e ) : t || { } , f ( t ) || ( t = { } ) ; for ( var n = Object . keys ( t ) , r = e . $options . props , o = n . length ; o -- ; ) r && i ( r , n [ o ] ) || U ( e , n [ o ] ) ; S ( t ) , t . _ _ob _ _ && t . _ _ob _ _ . vmCount ++ } function P ( e ) { var t = e . $options . computed ; if ( t ) for ( var n in t ) { var r = t [ n ] ; "function" == typeof r ? ( Qr . get = R ( r , e ) , Qr . set = p ) : ( Qr . get = r . get ? r . cache !== ! 1 ? R ( r . get , e ) : s ( r . get , e ) : p , Qr . set = r . set ? s ( r . set , e ) : p ) , Object . defineProperty ( e , n , Qr ) } } function R ( e , t ) { var n = new Jr ( t , e , p , { lazy : ! 0 } ) ; return function ( ) { return n . dirty && n . evaluate ( ) , Rr . target && n . depend ( ) , n . value } } function I ( e ) { var t = e . $options . methods ; if ( t ) for ( var n in t ) null != t [ n ] && ( e [ n ] = s ( t [ n ] , e ) ) } function F ( e ) { var t = e . $options . watch ; if ( t ) for ( var n in t ) { var r = t [ n ] ; if ( Array . isArray ( r ) ) for ( var i = 0 ; i < r . length ; i ++ ) B ( e , n , r [ i ] ) ; else B ( e , n , r ) } } function B ( e , t , n ) { var r ; f ( n ) && ( r = n , n = n . handler ) , "string" == typeof n && ( n = e [ n ] ) , e . $watch ( t , n , r ) } function H ( e ) { var t = { } ; t . get = function ( ) { return this . _data } , Object . defineProperty ( e . prototype , "$data" , t ) , e . prototype . $set = j , e . prototype . $delete = L , e . prototype . $watch = function ( e , t , n ) { var r = this ; n = n || { } , n . user = ! 0 ; var i = new Jr ( r , e , t , n ) ; return n . immediate && t . call ( r , i . value ) , function ( ) { i . teardown ( ) } } } function U ( e , t ) { g ( t ) || Object . defineProperty ( e , t , { configurable : ! 0 , enumerable : ! 0 , get : function ( ) { return e . _data [ t ] } , set : function ( n ) { e . _data [ t ] = n } } ) } function z ( e ) { var t = new Xr ( e . tag , e . data , e . children , e . text , e . elm , e . ns , e . context , e . componentOptions ) ; return t . isStatic = e . isStatic , t . key = e . key , t . isCloned = ! 0 , t } function V ( e ) { for ( var t = new Array ( e . length ) , n = 0 ; n < e . length ; n ++ ) t [ n ] = z ( e [ n ] ) ; return t } function J ( e , t , n ) { if ( o ( e ) ) return [ q ( e ) ] ; if ( Array . isArray ( e ) ) { for ( var r = [ ] , i = 0 , a = e . length ; i < a ; i ++ ) { var s = e [ i ] , c = r [ r . length - 1 ] ; Array . isArray ( s ) ? r . push . apply ( r , J ( s , t , i ) ) : o ( s ) ? c && c . text ? c . text += String ( s ) : "" !== s && r . push ( q ( s ) ) : s instanceof Xr && ( s . text && c && c . text ? c . text += s . text : ( t && K ( s , t ) , s . tag && null == s . key && null != n && ( s . key = "__vlist_" + n + "_" + i + "__" ) , r . push ( s ) ) ) } return r } } function q ( e ) { return new Xr ( ( void 0 ) , ( void 0 ) , ( void 0 ) , String ( e ) ) } function K ( e , t ) { if ( e . tag && ! e . ns && ( e . ns = t , e . children ) ) for ( var n = 0 , r = e . children . length ; n < r ; n ++ ) K ( e . children [ n ] , t ) } function W ( e ) { return e && e . filter ( function ( e ) { return e && e . componentOptions } ) [ 0 ] } function Z ( e , t , n ) { var r = e [ t ] ; if ( r ) { var i = e . Line truncated
if ( y >= 0 ) { n ( y + 3 ) ; continue } } if ( /^<!\[/ . test ( e ) ) { var _ = e . indexOf ( "]>" ) ; if ( _ >= 0 ) { n ( _ + 2 ) ; continue } } var b = e . match ( ko ) ; if ( b ) { n ( b [ 0 ] . length ) ; continue } var $ = e . match ( xo ) ; if ( $ ) { var w = d ; n ( $ [ 0 ] . length ) , o ( $ [ 0 ] , $ [ 1 ] , w , d ) ; continue } var C = r ( ) ; if ( C ) { i ( C ) ; continue } } var x = void 0 ; g >= 0 ? ( x = e . substring ( 0 , g ) , n ( g ) ) : ( x = e , e = "" ) , t . chars && t . chars ( x ) } if ( e === a ) throw new Error ( "Error parsing template:\n\n" + e ) } o ( ) } function Qt ( e ) { function t ( ) { ( a || ( a = [ ] ) ) . push ( e . slice ( d , i ) . trim ( ) ) , d = i + 1 } var n , r , i , o , a , s = ! 1 , c = ! 1 , u = 0 , l = 0 , f = 0 , d = 0 ; for ( i = 0 ; i < e . length ; i ++ ) if ( r = n , n = e . charCodeAt ( i ) , s ) 39 === n && 92 !== r && ( s = ! s ) ; else if ( c ) 34 === n && 92 !== r && ( c = ! c ) ; else if ( 124 !== n || 124 === e . charCodeAt ( i + 1 ) || 124 === e . charCodeAt ( i - 1 ) || u || l || f ) switch ( n ) { case 34 : c = ! 0 ; break ; case 39 : s = ! 0 ; break ; case 40 : f ++ ; break ; case 41 : f -- ; break ; case 91 : l ++ ; break ; case 93 : l -- ; break ; case 123 : u ++ ; break ; case 125 : u -- } else void 0 === o ? ( d = i + 1 , o = e . slice ( 0 , i ) . trim ( ) ) : t ( ) ; if ( void 0 === o ? o = e . slice ( 0 , i ) . trim ( ) : 0 !== d && t ( ) , a ) for ( i = 0 ; i < a . length ; i ++ ) o = Xt ( o , a [ i ] ) ; return o } function Xt ( e , t ) { var n = t . indexOf ( "(" ) ; if ( n < 0 ) return '_f("' + t + '")(' + e + ")" ; var r = t . slice ( 0 , n ) , i = t . slice ( n + 1 ) ; return '_f("' + r + '")(' + e + "," + i } function en ( e , t ) { var n = t ? Xo ( t ) : Yo ; if ( n . test ( e ) ) { for ( var r , i , o = [ ] , a = n . lastIndex = 0 ; r = n . exec ( e ) ; ) { i = r . index , i > a && o . push ( JSON . stringify ( e . slice ( a , i ) ) ) ; var s = Qt ( r [ 1 ] . trim ( ) ) ; o . push ( "_s(" + s + ")" ) , a = i + r [ 0 ] . length } return a < e . length && o . push ( JSON . stringify ( e . slice ( a ) ) ) , o . join ( "+" ) } } function tn ( e ) { console . error ( "[Vue parser]: " + e ) } function nn ( e , t ) { return e ? e . map ( function ( e ) { return e [ t ] } ) . filter ( function ( e ) { return e } ) : [ ] } function rn ( e , t , n ) { ( e . props || ( e . props = [ ] ) ) . push ( { name : t , value : n } ) } function on ( e , t , n ) { ( e . attrs || ( e . attrs = [ ] ) ) . push ( { name : t , value : n } ) } function an ( e , t , n , r , i ) { ( e . directives || ( e . directives = [ ] ) ) . push ( { name : t , value : n , arg : r , modifiers : i } ) } function sn ( e , t , n , r , i ) { r && r . capture && ( delete r . capture , t = "!" + t ) ; var o ; r && r . native ? ( delete r . native , o = e . nativeEvents || ( e . nativeEvents = { } ) ) : o = e . events || ( e . events = { } ) ; var a = { value : n , modifiers : r } , s = o [ t ] ; Array . isArray ( s ) ? i ? s . unshift ( a ) : s . push ( a ) : s ? o [ t ] = i ? [ a , s ] : [ s , a ] : o [ t ] = a } function cn ( e , t , n ) { var r = un ( e , ":" + t ) || un ( e , "v-bind:" + t ) ; if ( null != r ) return r ; if ( n !== ! 1 ) { var i = un ( e , t ) ; if ( null != i ) return JSON . stringify ( i ) } } function un ( e , t ) { var n ; if ( null != ( n = e . attrsMap [ t ] ) ) for ( var r = e . attrsList , i = 0 , o = r . length ; i < o ; i ++ ) if ( r [ i ] . name === t ) { r . splice ( i , 1 ) ; break } return n } function ln ( e , t ) { Oo = t . warn || tn , To = t . getTagNamespace || Cr , So = t . mustUseProp || Cr , Eo = t . isPreTag || Cr , jo = nn ( t . modules , "preTransformNode" ) , Lo = nn ( t . modules , "transformNode" ) , Do = nn ( t . modules , "postTransformNode" ) , No = t . delimiters ; var n , r , i = [ ] , o = t . preserveWhitespace !== ! 1 , a = ! 1 , s = ! 1 ; return Yt ( e , { expectHTML : t . expectHTML , isUnaryTag : t . isUnaryTag , isFromDOM : t . isFromDOM , shouldDecodeTags : t . shouldDecodeTags , shouldDecodeNewlines : t . shouldDecodeNewlines , start : function ( e , o , c ) { function u ( e ) { } var l = r && r . ns || To ( e ) ; t . isIE && "svg" === l && ( o = On ( o ) ) ; var f = { type : 1 , tag : e , attrsList : o , attrsMap : xn ( o ) , parent : r , children : [ ] } ; l && ( f . ns = l ) , An ( f ) && ( f . forbidden = ! 0 ) ; for ( var d = 0 ; d < jo . length ; d ++ ) jo [ d ] ( f , t ) ; if ( a || ( fn ( f ) , f . pre && ( a = ! 0 ) ) , Eo ( f . tag ) && ( s = ! 0 ) , a ) dn ( f ) ; else { hn ( f ) , mn ( f ) , yn ( f ) , pn ( f ) , f . plain = ! f . key && ! o . length , vn ( f ) , _n ( f ) , bn ( f ) ; for ( var p = 0 ; p < Lo . length ; p ++ ) Lo [ p ] ( f , t ) ; $n ( f ) } n || ( n = f , u ( n ) ) , r && ! f . forbidden && ( f . else ? gn ( f , r ) : ( r . children . push ( f ) , f . parent = r ) ) , c || ( r = f , i . push ( f ) ) ; for ( var v = 0 ; v < Do . length ; v ++ ) Do [ v ] ( f , t ) } , end : function ( ) { var e = i [ i . length - 1 ] , t = e . children [ e . children . length - 1 ] ; t && 3 === t . type && " " === t . text && e . children . pop ( ) , i . length -= 1 , r = i [ i . length - 1 ] , e . pre && ( a = ! 1 ) , Eo ( e . tag ) && ( s = ! 1 ) } , chars : function ( e ) { if ( r && ( e = s || e . trim ( ) ? sa ( e ) : o && r . children . length ? " " : "" ) ) { var t ; ! a && " " !== e && ( t = en ( e , No ) ) ? r . children . push ( { type : 2 , expression : t , text : e } ) : r . children . push ( { type : 3 , text : e } ) } } } ) , n } function fn ( e ) { null != un ( e , "v-pre" ) && ( e . pre = ! 0 ) } function dn ( e ) { var t = e . attrsList . length ; if ( t ) for ( var n = e . attrs = new Array ( t ) , r = 0 ; r < t ; r ++ ) n [ r ] = { name : e . attrsList [ r ] . name , value : JSON . stringify ( e . attrsList [ r ] . value ) } ; else e . pre || ( e . plain = ! 0 ) } function pn ( e ) { var t = cn ( e , "key" ) ; t && ( e . key = t ) } function vn ( e ) { var t = cn ( e , "ref" ) ; t && ( e . ref = t , e . refInFor = wn ( e ) ) } function hn ( e ) { var t ; if ( t = un ( e , "v-for" ) ) { var n = t . match ( ta ) ; if ( ! n ) return ; e . for = n [ 2 ] . trim ( ) ; var r = n [ 1 ] . trim ( ) , i = r . match ( na ) ; i ? ( e . alias = i [ 1 ] . trim ( ) , e . iterator1 = i [ 2 ] . trim ( ) , i [ 3 ] && ( e . iterator2 = i [ 3 ] . trim ( ) ) ) : e . alias = r } } function mn ( e ) { var t = un ( e , "v-if" ) ; t && ( e . if = t ) , null != un ( e , "v-else" ) && ( e . else = ! 0 ) } function gn ( e , t ) { var n = kn ( t . children ) ; n && n . if && ( n . elseBlock = e ) } function yn ( e ) { var t = un ( e , "v-once" ) ; null != t && ( e . once = ! 0 ) } function _n ( e ) { if ( "slot" === e . tag ) e . slotName = cn ( e , "name" ) ; else { var t = cn ( e , "slot" ) ; t && ( e . slotTarget = t ) } } function bn ( e ) { var t ; ( t = cn ( e , "is" ) ) && ( e . component = t ) , null != un ( e , "inline-template" ) && ( e . inlineTemplate = ! 0 ) } function $n ( e ) { var t , n , r , i , o , a , s , c = e . attrsList ; for ( t = 0 , n = c . length ; t < n ; t ++ ) if ( r = c [ t ] . name , i = c [ t ] . value , ea . test ( r ) ) if ( e . hasBindings = ! 0 , a = Cn ( r ) , a && ( r = r . replace ( aa , "" ) ) , ra . test ( r ) ) r = r . replace ( ra , "" ) , a && a . prop && ( s = ! 0 , r = gr ( r ) , "innerHtml" === r && ( r = "innerHTML" ) ) , s || So ( r ) ? rn ( e , r , i ) : on ( e , r , i ) ; else if ( ia . test ( r ) ) r = r . replace ( ia , "" ) , sn ( e , r , i , a ) ; else { r = r . replace ( ea , "" ) ; var u = r . match ( oa ) ; u && ( o = u [ 1 ] ) && ( r = r . sl Line truncated
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 } ) , simpleUpload . maxUploads = 10 , simpleUpload . activeUploads = 0 , simpleUpload . uploads = [ ] , simpleUpload . iframes = { } , simpleUpload . iframeCount = 0 , simpleUpload . queueUpload = function ( e , l ) { simpleUpload . uploads [ simpleUpload . uploads . length ] = { uploads : e , callback : l } } , simpleUpload . uploadNext = function ( ) { if ( simpleUpload . uploads . length > 0 && simpleUpload . activeUploads < simpleUpload . maxUploads ) { var e = simpleUpload . uploads [ 0 ] , l = e . callback , n = e . uploads . splice ( 0 , 1 ) [ 0 ] ; 0 == e . uploads . length && simpleUpload . uploads . splice ( 0 , 1 ) , simpleUpload . activeUploads ++ , l ( n ) , simpleUpload . uploadNext ( ) } } , simpleUpload . queueIframe = function ( e ) { for ( var l = 0 ; 0 == l || l in simpleUpload . iframes ; ) l = Math . floor ( 999999999 * Math . random ( ) + 1 ) ; return simpleUpload . iframes [ l ] = e , simpleUpload . iframeCount ++ , $ ( "body" ) . append ( '<iframe name="simpleUpload_iframe_' + l + '" style="display: none;"></iframe>' ) , l } , simpleUpload . dequeueIframe = function ( e ) { e in simpleUpload . iframes && ( $ ( "iframe[name=simpleUpload_iframe_" + e + "]" ) . remove ( ) , delete simpleUpload . iframes [ e ] , simpleUpload . iframeCount -- ) } , simpleUpload . convertDataType = function ( e , l , n ) { var t = "auto" ; if ( "auto" == e ) { if ( "string" == typeof l && "" != l ) { var a = l . toLowerCase ( ) , o = [ "json" , "xml" , "html" , "script" , "text" ] ; for ( var r in o ) if ( o [ r ] == a ) { t = a ; break } } } else t = e ; if ( "auto" == t ) return "undefined" == typeof n ? "" : "object" == typeof n ? n : String ( n ) ; if ( "json" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "object" == typeof n ) return n ; if ( "string" == typeof n ) try { return $ . parseJSON ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "xml" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "string" == typeof n ) try { return $ . parseXML ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "script" == t ) { if ( "undefined" == typeof n ) return "" ; if ( "string" == typeof n ) try { return $ . globalEval ( n ) , n } catch ( i ) { return ! 1 } return ! 1 } return "undefined" == typeof n ? "" : String ( n ) } , simpleUpload . iframeCallback = function ( e ) { if ( "object" == typeof e && null !== e ) { var l = e . id ; if ( l in simpleUpload . iframes ) { var n = simpleUpload . convertDataType ( simpleUpload . iframes [ l ] . expect , e . type , e . data ) ; n !== ! 1 ? simpleUpload . iframes [ l ] . complete ( n ) : simpleUpload . iframes [ l ] . error ( "Could not get response from server" ) } } } , simpleUpload . postMessageCallback = function ( e ) { try { var l = e . message ? "message" : "data" , n = e [ l ] ; if ( "string" == typeof n && "" != n && ( n = $ . parseJSON ( n ) , "object" == typeof n && null !== n && "string" == typeof n . namespace && "simpleUpload" == n . namespace ) ) { var t = n . id ; if ( t in simpleUpload . iframes && e . origin === simpleUpload . iframes [ t ] . origin ) { var a = simpleUpload . convertDataType ( simpleUpload . iframes [ t ] . expect , n . type , n . data ) ; a !== ! 1 ? simpleUpload . iframes [ t ] . complete ( a ) : simpleUpload . iframes [ t ] . error ( "Could not get response from server" ) } } } catch ( e ) { } } , window . addEventListener ? window . addEventListener ( "message" , simpleUpload . postMessageCallback , ! 1 ) : window . attachEvent ( "onmessage" , simpleUpload . postMessageCallback ) , function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : "object" == typeof exports ? module . exports = e ( require ( "jquery" ) ) : e ( jQuery ) } ( function ( e ) { e . fn . simpleUpload = function ( l , n ) { return 0 == e ( this ) . length && "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? ( new simpleUpload ( l , null , n ) , this ) : this . each ( function ( ) { new simpleUpload ( l , this , n ) } ) } , e . fn . simpleUpload . maxSimultaneousUploads = function ( e ) { return "undefined" == typeof e ? simpleUpload . maxUploads : "number" == typeof e && e > 0 ? ( simpleUpload . maxUploads = e , this ) : void 0 } } ) , ! function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : e ( "object" == typeof exports ? require ( "jquery" ) : jQuery ) } ( function ( e ) { "use strict" ; function t ( e ) { for ( var t , n = e . split ( /\s+/ ) , a = [ ] , o = 0 ; t = n [ o ] ; o ++ ) t = t . charAt ( 0 ) . toUpperCase ( ) , a . push ( t ) ; return a } function n ( t ) { return t . id && e ( 'label[for="' + t . id + '"]' ) . val ( ) || t . name } function a ( t , o , s ) { return s || ( s = 0 ) , o . each ( function ( ) { var o , i , c = e ( this ) , r = this , l = this . nodeName . toLowerCase ( ) ; switch ( "label" === l && c . find ( "input, textarea, select" ) . length && ( o = c . text ( ) , c = c . children ( ) . first ( ) , r = c . get ( 0 ) , l = r . nodeName . toLowerCa Line truncated
t . prototype . initScrollEvents = function ( t ) { var i = this ; t . sticky . scrollListener = function ( ) { return i . onScrollEvents ( t ) } , window . addEventListener ( "scroll" , t . sticky . scrollListener ) } , t . prototype . onScrollEvents = function ( t ) { this . scrollTop = this . getScrollTopPosition ( ) , t . sticky . active && this . setPosition ( t ) } , t . prototype . setPosition = function ( t ) { this . removeStyle ( t , [ "position" , "width" , "top" , "left" ] ) , this . vp . height < t . sticky . rect . height || ! t . sticky . active || ( t . sticky . rect . width || ( t . sticky . rect = this . getRectangle ( t ) ) , this . scrollTop > t . sticky . rect . top - t . sticky . marginTop ? ( this . addStyle ( t , { position : "fixed" , width : t . sticky . rect . width + "px" , left : t . sticky . rect . left + "px" } ) , this . scrollTop + t . sticky . rect . height + t . sticky . marginTop > t . sticky . container . rect . top + t . sticky . container . rect . height ? ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . addStyle ( t , { top : t . sticky . container . rect . top + t . sticky . container . rect . height - ( this . scrollTop + t . sticky . rect . height ) + "px" } ) ) : ( t . sticky . stickyClass && t . classList . add ( t . sticky . stickyClass ) , this . addStyle ( t , { top : t . sticky . marginTop + "px" } ) ) ) : ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . removeStyle ( t , [ "position" , "width" , "top" , "left" ] ) ) ) } , t . prototype . update = function ( ) { var t = this ; this . forEach ( this . elements , function ( i ) { i . sticky . rect = t . getRectangle ( i ) , i . sticky . container . rect = t . getRectangle ( i . sticky . container ) , t . setPosition ( i ) } ) } , t . prototype . getStickyContainer = function ( t ) { for ( var i = t ; ! i . hasAttribute ( "data-sticky-container" ) && i !== document . querySelector ( "body" ) ; ) i = i . parentNode ; return i } , t . prototype . getRectangle = function ( t ) { this . removeStyle ( t , [ "position" , "width" , "top" , "left" ] ) ; var i = 0 , e = 0 , s = 0 , o = 0 ; s = t . offsetWidth , o = t . offsetHeight ; do i += t . offsetTop || 0 , e += t . offsetLeft || 0 , t = t . offsetParent ; while ( t ) ; return { top : i , left : e , width : s , height : o } } , t . prototype . getViewportSize = function ( ) { return { width : Math . max ( document . documentElement . clientWidth , window . innerWidth || 0 ) , height : Math . max ( document . documentElement . clientHeight , window . innerHeight || 0 ) } } , t . prototype . getScrollTopPosition = function ( ) { return ( window . pageYOffset || document . scrollTop ) - ( document . clientTop || 0 ) || 0 } , t . prototype . forEach = function ( t , i ) { for ( var e = 0 , s = t . length ; e < s ; e ++ ) i ( t [ e ] ) } , t . prototype . addStyle = function ( t , i ) { for ( var e in i ) i . hasOwnProperty ( e ) && ( t . style [ e ] = i [ e ] ) } , t . prototype . removeStyle = function ( t , i ) { this . forEach ( i , function ( i ) { t . style [ i ] = "" } ) } , t } ( ) ; ! function ( t , i ) { "undefined" != typeof exports ? module . exports = i : "function" == typeof define && define . amd ? define ( [ ] , i ) : t . Sticky = i } ( this , Sticky ) , ! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var t ; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , t . SimpleMDE = e ( ) } } ( function ( ) { var e ; return function t ( e , n , r ) { function i ( a , l ) { if ( ! n [ a ] ) { if ( ! e [ a ] ) { var s = "function" == typeof require && require ; if ( ! l && s ) return s ( a , ! 0 ) ; if ( o ) return o ( a , ! 0 ) ; var c = new Error ( "Cannot find module '" + a + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var u = n [ a ] = { exports : { } } ; e [ a ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ a ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ a ] . exports } for ( var o = "function" == typeof require && require , a = 0 ; a < r . length ; a ++ ) i ( r [ a ] ) ; return i } ( { 1 : [ function ( e , t , n ) { "use strict" ; function r ( ) { for ( var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , t = 0 , n = e . length ; n > t ; ++ t ) s [ t ] = e [ t ] , c [ e . charCodeAt ( t ) ] = t ; c [ "-" . charCodeAt ( 0 ) ] = 62 , c [ "_" . charCodeAt ( 0 ) ] = 63 } function i ( e ) { var t , n , r , i , o , a , l = e . length ; if ( l % 4 > 0 ) throw new Error ( "Invalid string. Length must be a multiple of 4" ) ; o = "=" === e [ l - 2 ] ? 2 : "=" === e [ l - 1 ] ? 1 : 0 , a = new u ( 3 * l / 4 - o ) , r = o > 0 ? l - 4 : l ; var s = 0 ; for ( t = 0 , n = 0 ; r > t ; t += 4 , n += 3 ) i = c [ e . charCodeAt ( t ) ] << 18 | c [ e . charCodeAt ( t + 1 ) ] << 12 | c [ e . charCodeAt ( t + 2 ) ] << 6 | c [ e . charCodeAt ( t + 3 ) ] , a [ s ++ ] = i >> 16 & 255 , a [ s ++ ] = i >> 8 & 255 , a [ s ++ ] = 255 & i ; return 2 === o ? ( i = c [ e . charCodeAt ( t ) ] << 2 | c [ e . charCodeAt ( t + 1 ) ] >> 4 , a [ s ++ ] = 255 & i ) : 1 === o && ( i = c [ e . charCodeAt ( t ) ] << 10 | c [ e . charCodeAt ( t + 1 ) ] << 4 | c [ e . charCodeAt ( t + 2 ) ] >> 2 , a [ s ++ ] = i >> 8 & 255 , a [ s ++ ] = 255 & i ) , a } function o ( e ) { return s [ e >> 18 & 63 ] + s [ e >> 12 & 63 ] + s [ e >> 6 & 63 ] + s [ 63 & e ] } function a ( e , t , n ) { for ( var r , i = [ ] , a = t ; n > a ; a += 3 ) r = ( e [ a ] << 16 ) + ( e [ a + 1 ] << 8 ) + e [ a + 2 ] , i . push ( o ( r ) ) ; return i . join ( "" ) } function l ( e ) { for ( var t , n = e . length , r = n % 3 , i = "" , o = [ ] , l = 16383 , c = 0 , u = n - r ; u > c ; c += l ) o . push ( a ( e , c , c + l > u ? u : c + l ) ) ; return 1 === r ? ( t = e [ n - 1 ] , i += s [ t >> 2 ] , i += s [ t << 4 & 63 ] , i += "==" ) : 2 === r && ( t = ( e [ n - 2 ] << 8 ) + e [ n - 1 ] , i += s [ t >> 10 ] , i += s [ t >> 4 & 63 ] , i += s [ t << 2 & 63 ] , i += "=" ) , o . push ( i ) , o . join ( "" ) } n . toByteArray = i , n . fromByteArray = l ; var s = [ ] , c = [ ] , u = "undefined" != typeof Uint8Array ? Uint8Array : Array ; r ( ) } , { } ] , 2 : [ function ( e , t , n ) { } , { } ] , 3 : [ function ( e , t , n ) { ( function ( t ) { "use strict" ; function r ( ) { try { var e = new Uint8Array ( 1 ) ; return e . foo = function ( ) { return 42 } , 42 === e . foo ( ) && "function" == typeof e . subarray && 0 === e . subarray ( 1 , 1 ) . byteLength } catch ( t ) { return ! 1 } } function i ( ) { return a . TYPED _ARRAY _SUPPORT ? 2147483647 : 1073741823 } function o ( e , t ) { if ( i ( ) < t ) throw new RangeError ( "Invalid typed array length" ) ; return a . TYPED _ARRAY _SUPPORT ? ( e = new Uint8Array ( t ) , e . _ _proto _ _ = a . prototype ) : ( null === Line truncated
l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! Ao && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , selectingText : ! 1 , draggingText : ! 1 , highlight : new Ei , keySeq : null , specialChars : null } ; var s = this ; xo && 11 > bo && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , jt ( this ) , Ki ( ) , bt ( this ) , this . curOp . forceUpdate = ! 0 , Xr ( this , i ) , r . autofocus && ! Ao || s . hasFocus ( ) ? setTimeout ( Bi ( vn , this ) , 20 ) : yn ( this ) ; for ( var u in ta ) ta . hasOwnProperty ( u ) && ta [ u ] ( this , r [ u ] , na ) ; k ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < aa . length ; ++ f ) aa [ f ] ( this ) ; kt ( this ) , wo && r . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , n ) { var r = this ; this . input = n , r . scrollbarFiller = ji ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = ji ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = ji ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = ji ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = ji ( "div" , null , "CodeMirror-cursors" ) , r . measure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = ji ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = ji ( "div" , [ ji ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = ji ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = ji ( "div" , null , null , "position: absolute; height: " + Da + "px; width: 1px;" ) , r . gutters = ji ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = ji ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = ji ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , xo && 8 > bo && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , wo || go && Ao || ( r . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( r . wrapper ) : e ( r . wrapper ) ) , r . viewFrom = r . viewTo = t . first , r . reportedViewFrom = r . reportedViewTo = t . first , r . view = [ ] , r . renderedView = null , r . externalMeasured = null , r . viewOffset = 0 , r . lastWrapHeight = r . lastWrapWidth = 0 , r . updateLineNumbers = null , r . nativeBarWidth = r . barHeight = r . barWidth = 0 , r . scrollbarsClipped = ! 1 , r . lineNumWidth = r . lineNumInnerWidth = r . lineNumChars = null , r . alignWidgets = ! 1 , r . cachedCharWidth = r . cachedTextHeight = r . cachedPaddingH = null , r . maxLine = null , r . maxLineLength = 0 , r . maxLineChanged = ! 1 , r . wheelDX = r . wheelDY = r . wheelStartX = r . wheelStartY = null , r . shift = ! 1 , r . selForContextMenu = null , r . activeTouch = null , n . init ( r ) } function n ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , r ( t ) } function r ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , _e ( e , 100 ) , e . state . modeGen ++ , e . curOp && Dt ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ja ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Za ( e . display . wrapper , "CodeMirror-wrap" ) , h ( e ) ) , a ( e ) , Dt ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = yt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / xt ( e . display ) - 3 ) ; return function ( i ) { if ( kr ( e . doc , i ) ) return 0 ; var o = 0 ; if ( i . widgets ) for ( var a = 0 ; a < i . widgets . length ; a ++ ) i . widgets [ a ] . height && ( o += i . widgets [ a ] . height ) ; return n ? o + ( Math . ceil ( i . text . length / r ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , n = o ( e ) ; t . iter ( function ( e ) { var t = n ( e ) ; t != e . height && ei ( e , t ) } ) } function l ( e ) { e . display . wrapper . className = e . display . wrapper . className . replace ( /\s*cm-s-\S+/g , "" ) + e . options . theme . replace ( /(^|\s)\s*/g , " cm-s-" ) , lt ( e ) } function s ( e ) { c ( e ) , Dt ( e ) , setTimeout ( function ( ) { w ( e ) } , 20 ) } function c ( e ) { var t = e . display . gutters , n = e . options . gutters ; Ui ( t ) ; for ( var r = 0 ; r < n . length ; ++ r ) { var i = n [ r ] , o = t . appendChild ( ji ( "div" , null , "CodeMirror-gutter " + i ) ) ; "CodeMirror-linenumbers" == i && ( e . display . lineGutter = o , o . style . width = ( e . display . lineNumWidth || 1 ) + "px" ) } t . style . display = r ? "" : "none" , u ( e ) } function u ( e ) { var t = e . display . gutters . offsetWidth ; e . display . sizer . style . marginLeft = t + "px" } function f ( e ) { if ( 0 == e . height ) return 0 ; for ( var t , n = e . text . length , r = e ; t = mr ( r ) ; ) { var i = t . find ( 0 , ! 0 ) ; r = i . from . line , n += i . from . ch - i . to . ch } for ( r = e ; t = gr ( r ) ; ) { var i = t . find ( 0 , ! 0 ) ; n -= r . text . length - i . from . ch , r = i . to . line , n += r . text . length - i . to . ch } return n } function h ( e ) { var t = e . display , n = e . doc ; t . maxLine = Zr ( n , n . first ) , t . maxLineLength = f ( t . maxLine ) , t . maxLineChanged = ! 0 , n . iter ( function ( e ) { var n = f ( e ) ; n > t . maxLineLength && ( t . maxLineLength = n , t . maxLine = e ) } ) } function d ( e ) { var t = Pi ( e . gutters , "CodeMirror-linenumbers" ) ; - 1 == t && e . lineNumbers ? e . gutters = e . gutters . concat ( [ "CodeMirror-linenumbers" ] ) : t > - 1 && ! e . lineNumbers && ( e . gutters = e . gutters . slice ( 0 ) , e . gutters . splice ( t , 1 ) ) } function p ( e ) { var t = e . display , n = t . gutters . offsetWidth , r = Math . round ( e . doc . height + qe ( e . display ) ) ; return { clientHeight : t . scroller . clientHeight , viewHeight : t . wrapper . clientHeight , scrollWidth : t . Line truncated
for ( ; l && zi ( t . line . text . charAt ( o . coverStart + l ) ) ; ) -- l ; for ( ; o . coverStart + s < o . coverEnd && zi ( t . line . text . charAt ( o . coverStart + s ) ) ; ) ++ s ; if ( xo && 9 > bo && 0 == l && s == o . coverEnd - o . coverStart ) i = a . parentNode . getBoundingClientRect ( ) ; else if ( xo && e . options . lineWrapping ) { var f = qa ( a , l , s ) . getClientRects ( ) ; i = f . length ? f [ "right" == r ? f . length - 1 : 0 ] : qo } else i = qa ( a , l , s ) . getBoundingClientRect ( ) || qo ; if ( i . left || i . right || 0 == l ) break ; s = l , l -= 1 , c = "right" } xo && 11 > bo && ( i = it ( e . display . measure , i ) ) } else { l > 0 && ( c = r = "right" ) ; var f ; i = e . options . lineWrapping && ( f = a . getClientRects ( ) ) . length > 1 ? f [ "right" == r ? f . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( xo && 9 > bo && ! l && ( ! i || ! i . left && ! i . right ) ) { var h = a . parentNode . getClientRects ( ) [ 0 ] ; i = h ? { left : h . left , right : h . left + xt ( e . display ) , top : h . top , bottom : h . bottom } : qo } for ( var d = i . top - t . rect . top , p = i . bottom - t . rect . top , m = ( d + p ) / 2 , g = t . view . measure . heights , u = 0 ; u < g . length - 1 && ! ( m < g [ u ] ) ; u ++ ) ; var v = u ? g [ u - 1 ] : 0 , y = g [ u ] , x = { left : ( "right" == c ? i . right : i . left ) - t . rect . left , right : ( "left" == c ? i . left : i . right ) - t . rect . left , top : v , bottom : y } ; return i . left || i . right || ( x . bogus = ! 0 ) , e . options . singleCursorHeightPerLine || ( x . rtop = d , x . rbottom = p ) , x } function it ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Qi ( e ) ) return t ; var n = screen . logicalXDPI / screen . deviceXDPI , r = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * n , right : t . right * n , top : t . top * r , bottom : t . bottom * r } } function ot ( e ) { if ( e . measure && ( e . measure . cache = { } , e . measure . heights = null , e . rest ) ) for ( var t = 0 ; t < e . rest . length ; t ++ ) e . measure . caches [ t ] = { } } function at ( e ) { e . display . externalMeasure = null , Ui ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) ot ( e . display . view [ t ] ) } function lt ( e ) { at ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function st ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ct ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function ut ( e , t , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = Lr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ri ( t ) ; if ( "local" == r ? a += Ue ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ct ( ) ) ; var s = l . left + ( "window" == r ? 0 : st ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= st ( ) , i -= ct ( ) ; else if ( "local" == n || ! n ) { var o = e . display . sizer . getBoundingClientRect ( ) ; r += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : r - a . left , top : i - a . top } } function ht ( e , t , n , r , i ) { return r || ( r = Zr ( e . doc , t . line ) ) , ut ( e , r , Je ( e , r , t . ch , i ) , n ) } function dt ( e , t , n , r , i , o ) { function a ( t , a ) { var l = tt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , ut ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == to ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = no ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == no ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = to ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Zr ( e . doc , t . line ) , i || ( i = et ( e , r ) ) ; var s = ii ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = co ( s , c ) , f = l ( c , u ) ; return null != al && ( f . other = l ( c , al ) ) , f } function pt ( e , t ) { var n = 0 , t = me ( e . doc , t ) ; e . options . lineWrapping || ( n = xt ( e . display ) * t . ch ) ; var r = Zr ( e . doc , t . line ) , i = ri ( r ) + Ue ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function mt ( e , t , n , r ) { var i = Bo ( e , t ) ; return i . xRel = r , n && ( i . outside = ! 0 ) , i } function gt ( e , t , n ) { var r = e . doc ; if ( n += e . display . viewOffset , 0 > n ) return mt ( r . first , 0 , ! 0 , - 1 ) ; var i = ni ( r , n ) , o = r . first + r . size - 1 ; if ( i > o ) return mt ( r . first + r . size - 1 , Zr ( r , o ) . text . length , ! 0 , 1 ) ; 0 > t && ( t = 0 ) ; for ( var a = Zr ( r , i ) ; ; ) { var l = vt ( e , a , i , t , n ) , s = gr ( a ) , c = s && s . find ( 0 , ! 0 ) ; if ( ! s || ! ( l . ch > c . from . ch || l . ch == c . from . ch && l . xRel > 0 ) ) return l ; i = ti ( a = c . to . line ) } } function vt ( e , t , n , r , i ) { function o ( r ) { var i = dt ( e , Bo ( n , r ) , "line" , t , c ) ; return l = ! 0 , a > i . bottom ? i . left - s : a < i . top ? i . left + s : ( l = ! 1 , i . left ) } var a = i - ri ( t ) , l = ! 1 , s = 2 * e . display . wrapper . clientWidth , c = et ( e , t ) , u = ii ( t ) , f = t . text . length , h = ro ( t ) , d = io ( t ) , p = o ( h ) , m = l , g = o ( d ) , v = l ; if ( r > g ) return mt ( n , d , v , 1 ) ; for ( ; ; ) { if ( u ? d == h || d == fo ( t , h , 1 ) : 1 >= d - h ) { for ( var y = p > r || g - r >= r - p ? h : d , x = r - ( y == h ? p : g ) ; zi ( t . text . charAt ( y ) ) ; ) ++ y ; var b = mt ( n , y , y == h ? m : v , - 1 > x ? - 1 : x > 1 ? 1 : 0 ) ; return b } var w = Math . ceil ( f / 2 ) , k = h + w ; if ( u ) { k = h ; for ( var S = 0 ; w > S ; ++ S ) k = fo ( t , k , 1 ) } var C = o ( k ) ; C > r ? ( d = k , g = C , ( v = l ) && ( g += 1e3 ) , f = w ) : ( h = k , p = C , m = l , f -= w ) } } function yt ( e ) { if ( null != e . cachedTextHeight ) return e . cachedTextHeight ; if ( null == zo ) { zo = ji ( "pre" ) ; for ( var t = 0 ; 49 > t ; ++ t ) zo . appendChild ( document . createTextNode ( "x" ) ) , zo . appendChild ( ji ( "br" ) ) ; zo . appendChild ( document . createTextNode ( "x" ) ) } qi ( e . measure , zo ) ; var n = zo . offsetHeight / 50 ; return n > 3 && ( e . cachedTextHeight = n ) , Ui ( e . measure ) , n || 1 } function xt ( e ) { if ( null != e . cachedCharWidth ) return e . cachedCharWidth ; var t = ji ( "span" , "xxxxxxxxxx" ) , n = ji ( "pre" , [ t ] ) ; qi ( e . measure , n ) ; var r = t . getBoundingClientRect ( ) , i = ( r . right - r . left ) / 10 ; return i > 2 && ( e . cachedCharWidth = i ) , i || 10 } function
Line truncated
var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = je ( e , t ) : n = "prev" ) ; var a = e . options . tabSize , l = Zr ( o , t ) , s = Fa ( l . text , null , a ) ; l . stateAfter && ( l . stateAfter = null ) ; var c , u = l . text . match ( /^\s*/ ) [ 0 ] ; if ( r || /\S/ . test ( l . text ) ) { if ( "smart" == n && ( c = o . mode . indent ( i , l . text . slice ( u . length ) , l . text ) , c == Ha || c > 150 ) ) { if ( ! r ) return ; n = "prev" } } else c = 0 , n = "not" ; "prev" == n ? c = t > o . first ? Fa ( Zr ( o , t - 1 ) . text , null , a ) : 0 : "add" == n ? c = s + e . options . indentUnit : "subtract" == n ? c = s - e . options . indentUnit : "number" == typeof n && ( c = s + n ) , c = Math . max ( 0 , c ) ; var f = "" , h = 0 ; if ( e . options . indentWithTabs ) for ( var d = Math . floor ( c / a ) ; d ; -- d ) h += a , f += "\t" ; if ( c > h && ( f += Oi ( c - h ) ) , f != u ) return In ( o , f , Bo ( t , 0 ) , Bo ( t , u . length ) , "+input" ) , l . stateAfter = null , ! 0 ; for ( var d = 0 ; d < o . sel . ranges . length ; d ++ ) { var p = o . sel . ranges [ d ] ; if ( p . head . line == t && p . head . ch < u . length ) { var h = Bo ( t , u . length ) ; ke ( o , d , new fe ( h , h ) ) ; break } } } function zn ( e , t , n , r ) { var i = t , o = t ; return "number" == typeof t ? o = Zr ( e , pe ( e , t ) ) : i = ti ( t ) , null == i ? null : ( r ( o , i ) && e . cm && Ht ( e . cm , i , n ) , o ) } function jn ( e , t ) { for ( var n = e . doc . sel . ranges , r = [ ] , i = 0 ; i < n . length ; i ++ ) { for ( var o = t ( n [ i ] ) ; r . length && _o ( o . from , Ii ( r ) . to ) <= 0 ; ) { var a = r . pop ( ) ; if ( _o ( a . from , o . from ) < 0 ) { o . from = a . from ; break } } r . push ( o ) } At ( e , function ( ) { for ( var t = r . length - 1 ; t >= 0 ; t -- ) In ( e . doc , "" , r [ t ] . from , r [ t ] . to , "+delete" ) ; Bn ( e ) } ) } function Un ( e , t , n , r , i ) { function o ( ) { var t = l + n ; return ! ( t < e . first || t >= e . first + e . size ) && ( l = t , u = Zr ( e , t ) ) } function a ( e ) { var t = ( i ? fo : ho ) ( u , s , n , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; s = i ? ( 0 > n ? io : ro ) ( u ) : 0 > n ? u . text . length : 0 } else s = t ; return ! 0 } var l = t . line , s = t . ch , c = n , u = Zr ( e , l ) ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var f = null , h = "group" == r , d = e . cm && e . cm . getHelper ( t , "wordChars" ) , p = ! 0 ; ! ( 0 > n ) || a ( ! p ) ; p = ! 1 ) { var m = u . text . charAt ( s ) || "\n" , g = _i ( m , d ) ? "w" : h && "\n" == m ? "n" : ! h || /\s/ . test ( m ) ? null : "p" ; if ( ! h || p || g || ( g = "s" ) , f && f != g ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( g && ( f = g ) , n > 0 && ! a ( ! p ) ) break } var v = Ie ( e , Bo ( l , s ) , t , c , ! 0 ) ; return _o ( t , v ) || ( v . hitSide = ! 0 ) , v } function qn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * yt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = gt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function Gn ( t , n , r , i ) { e . defaults [ t ] = n , r && ( ta [ t ] = i ? function ( e , t , n ) { n != na && r ( e , t , n ) } : r ) } function Yn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function $n ( e ) { return "string" == typeof e ? fa [ e ] : e } function Vn ( e , t , n , r , i ) { if ( r && r . shared ) return Kn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , Vn ) ( e , t , n , r , i ) ; var o = new va ( e , i ) , a = _o ( t , n ) ; if ( r && Wi ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = ji ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( vr ( e , t . line , t , n , o ) || t . line != n . line && vr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; Wo = ! 0 } o . addToHistory && ci ( e , { from : t , to : n , origin : "markText" } , e . sel , NaN ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && yr ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed && s != t . line && ei ( e , 0 ) , nr ( e , new Qn ( o , s == t . line ? t . ch : null , s == n . line ? n . ch : null ) ) , ++ s } ) , o . collapsed && e . iter ( t . line , n . line + 1 , function ( t ) { kr ( e , t ) && ei ( t , 0 ) } ) , o . clearOnEnter && Ea ( o , "beforeCursorEnter" , function ( ) { o . clear ( ) } ) , o . readOnly && ( Ho = ! 0 , ( e . history . done . length || e . history . undone . length ) && e . clearHistory ( ) ) , o . collapsed && ( o . id = ++ ga , o . atomic = ! 0 ) , c ) { if ( l && ( c . curOp . updateMaxLine = ! 0 ) , o . collapsed ) Dt ( c , t . line , n . line + 1 ) ; else if ( o . className || o . title || o . startStyle || o . endStyle || o . css ) for ( var u = t . line ; u <= n . line ; u ++ ) Ht ( c , u , "text" ) ; o . atomic && Ae ( c . doc ) , Ci ( c , "markerAdded" , c , o ) } return o } function Kn ( e , t , n , r , i ) { r = Wi ( r ) , r . shared = ! 1 ; var o = [ Vn ( e , t , n , r , i ) ] , a = o [ 0 ] , l = r . widgetNode ; return Kr ( e , function ( e ) { l && ( r . widgetNode = l . cloneNode ( ! 0 ) ) , o . push ( Vn ( e , me ( e , t ) , me ( e , n ) , r , i ) ) ; for ( var s = 0 ; s < e . linked . length ; ++ s ) if ( e . linked [ s ] . isParent ) return ; a = Ii ( o ) } ) , new ya ( o , a ) } function Xn ( e ) { return e . findMarks ( Bo ( e . first , 0 ) , e . clipPos ( Bo ( e . lastLine ( ) ) ) , function ( e ) { return e . parent } ) } function Zn ( e , t ) { for ( var n = 0 ; n < t . length ; n ++ ) { var r = t [ n ] , i = r . find ( ) , o = e . clipPos ( i . from ) , a = e . clipPos ( i . to ) ; if ( _o ( o , a ) ) { var l = Vn ( e , o , a , r . primary , r . primary . type ) ; r . markers . push ( l ) , l . parent = r } } } function Jn ( e ) { for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = [ n . primary . doc ] ; Kr ( n . primary . doc , function ( e ) { r . push ( e ) } ) ; for ( var i = 0 ; i < n . markers . length ; i ++ ) { var o = n . markers [ i ] ; - 1 == Pi ( r , o . doc ) && ( o . parent = null , n . markers . splice ( i -- , 1 ) ) } } } function Qn ( e , t , n ) { this . marker = e , this . from = t , this . to = n } function er ( e , t ) { if ( e ) for ( var n = 0 ; n < e . length ; ++ n ) { Line truncated
init : function ( e ) { function t ( e ) { if ( ! Ti ( r , e ) ) { if ( r . somethingSelected ( ) ) Fo = { lineWise : ! 1 , text : r . getSelections ( ) } , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Fo . text . join ( "\n" ) , Ua ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ee ( r ) ; Fo = { lineWise : ! 0 , text : t . text } , "cut" == e . type ? r . setSelections ( t . ranges , null , Wa ) : ( n . prevInput = "" , o . value = t . text . join ( "\n" ) , Ua ( o ) ) } "cut" == e . type && ( r . state . cutIncoming = ! 0 ) } } var n = this , r = this . cm , i = this . wrapper = re ( ) , o = this . textarea = i . firstChild ; e . wrapper . insertBefore ( i , e . wrapper . firstChild ) , No && ( o . style . width = "0px" ) , Ea ( o , "input" , function ( ) { xo && bo >= 9 && n . hasSelection && ( n . hasSelection = null ) , n . poll ( ) } ) , Ea ( o , "paste" , function ( e ) { Ti ( r , e ) || J ( e , r ) || ( r . state . pasteIncoming = ! 0 , n . fastPoll ( ) ) } ) , Ea ( o , "cut" , t ) , Ea ( o , "copy" , t ) , Ea ( e . scroller , "paste" , function ( t ) { Gt ( e , t ) || Ti ( r , t ) || ( r . state . pasteIncoming = ! 0 , n . focus ( ) ) } ) , Ea ( e . lineSpace , "selectstart" , function ( t ) { Gt ( e , t ) || Ma ( t ) } ) , Ea ( o , "compositionstart" , function ( ) { var e = r . getCursor ( "from" ) ; n . composing && n . composing . range . clear ( ) , n . composing = { start : e , range : r . markText ( e , r . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) } } ) , Ea ( o , "compositionend" , function ( ) { n . composing && ( n . poll ( ) , n . composing . range . clear ( ) , n . composing = null ) } ) } , prepareSelection : function ( ) { var e = this . cm , t = e . display , n = e . doc , r = De ( e ) ; if ( e . options . moveInputWithCursor ) { var i = dt ( e , n . sel . primary ( ) . head , "div" ) , o = t . wrapper . getBoundingClientRect ( ) , a = t . lineDiv . getBoundingClientRect ( ) ; r . teTop = Math . max ( 0 , Math . min ( t . wrapper . clientHeight - 10 , i . top + a . top - o . top ) ) , r . teLeft = Math . max ( 0 , Math . min ( t . wrapper . clientWidth - 10 , i . left + a . left - o . left ) ) } return r } , showSelection : function ( e ) { var t = this . cm , n = t . display ; qi ( n . cursorDiv , e . cursors ) , qi ( n . selectionDiv , e . selection ) , null != e . teTop && ( this . wrapper . style . top = e . teTop + "px" , this . wrapper . style . left = e . teLeft + "px" ) } , reset : function ( e ) { if ( ! this . contextMenuPending ) { var t , n , r = this . cm , i = r . doc ; if ( r . somethingSelected ( ) ) { this . prevInput = "" ; var o = i . sel . primary ( ) ; t = rl && ( o . to ( ) . line - o . from ( ) . line > 100 || ( n = r . getSelection ( ) ) . length > 1e3 ) ; var a = t ? "-" : n || r . getSelection ( ) ; this . textarea . value = a , r . state . focused && Ua ( this . textarea ) , xo && bo >= 9 && ( this . hasSelection = a ) } else e || ( this . prevInput = this . textarea . value = "" , xo && bo >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! Ao || Gi ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || nl ( t ) && ! n && ! this . composing || e . isReadOnly ( ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( xo && bo >= 9 && this . hasSelection === r || Eo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return At ( e , function ( ) { Z ( e , r . slice ( o ) , n . length - o , null , l . composing ? "*compose" : null ) , r . length > 1e3 || r . indexOf ( "\n" ) > - 1 ? t . value = l . prevInput = "" : l . prevInput = r , l . composing && ( l . composing . range . clear ( ) , l . composing . range = e . markText ( l . composing . start , e . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) ) } ) , ! 0 } , ensurePolled : function ( ) { this . pollingFast && this . poll ( ) && ( this . pollingFast = ! 1 ) } , onKeyPress : function ( ) { xo && bo >= 9 && ( this . hasSelection = null ) , this . fastPoll ( ) } , onContextMenu : function ( e ) { function t ( ) { if ( null != a . selectionStart ) { var e = i . somethingSelected ( ) , t = " " + ( e ? a . value : "" ) ; a . value = "⇚" , a . value = t , r . prevInput = e ? "" : " " , a . selectionStart = 1 , a . selectionEnd = t . length , o . selForContextMenu = i . doc . sel } } function n ( ) { if ( r . contextMenuPending = ! 1 , r . wrapper . style . cssText = f , a . style . cssText = u , xo && 9 > bo && o . scrollbars . setScrollTop ( o . scroller . scrollTop = s ) , null != a . selectionStart ) { ( ! xo || xo && 9 > bo ) && t ( ) ; var e = 0 , n = function ( ) { o . selForContextMenu == i . doc . sel && 0 == a . selectionStart && a . selectionEnd > 0 && " " == r . prevInput ? Et ( i , ua . selectAll ) ( i ) : e ++ < 10 ? o . detectingSelectAll = setTimeout ( n , 500 ) : o . input . reset ( ) } ; o . detectingSelectAll = setTimeout ( n , 200 ) } } var r = this , i = r . cm , o = i . display , a = r . textarea , l = Yt ( i , e ) , s = o . scroller . scrollTop ; if ( l && ! Co ) { var c = i . options . resetSelectionOnContextMenu ; c && - 1 == i . doc . sel . contains ( l ) && Et ( i , Te ) ( i . doc , de ( l ) , Wa ) ; var u = a . style . cssText , f = r . wrapper . style . cssText ; r . wrapper . style . cssText = "position: absolute" ; var h = r . wrapper . getBoundingClientRect ( ) ; if ( a . style . cssText = " position : absolute ; width : 30 px ; height Line truncated
"Ctrl-Home" : "goDocStart" , "Ctrl-End" : "goDocEnd" , "Ctrl-Up" : "goLineUp" , "Ctrl-Down" : "goLineDown" , "Ctrl-Left" : "goGroupLeft" , "Ctrl-Right" : "goGroupRight" , "Alt-Left" : "goLineStart" , "Alt-Right" : "goLineEnd" , "Ctrl-Backspace" : "delGroupBefore" , "Ctrl-Delete" : "delGroupAfter" , "Ctrl-S" : "save" , "Ctrl-F" : "find" , "Ctrl-G" : "findNext" , "Shift-Ctrl-G" : "findPrev" , "Shift-Ctrl-F" : "replace" , "Shift-Ctrl-R" : "replaceAll" , "Ctrl-[" : "indentLess" , "Ctrl-]" : "indentMore" , "Ctrl-U" : "undoSelection" , "Shift-Ctrl-U" : "redoSelection" , "Alt-U" : "redoSelection" , fallthrough : "basic" } , fa . emacsy = { "Ctrl-F" : "goCharRight" , "Ctrl-B" : "goCharLeft" , "Ctrl-P" : "goLineUp" , "Ctrl-N" : "goLineDown" , "Alt-F" : "goWordRight" , "Alt-B" : "goWordLeft" , "Ctrl-A" : "goLineStart" , "Ctrl-E" : "goLineEnd" , "Ctrl-V" : "goPageDown" , "Shift-Ctrl-V" : "goPageUp" , "Ctrl-D" : "delCharAfter" , "Ctrl-H" : "delCharBefore" , "Alt-D" : "delWordAfter" , "Alt-Backspace" : "delWordBefore" , "Ctrl-K" : "killLine" , "Ctrl-T" : "transposeChars" , "Ctrl-O" : "openLine" } , fa . macDefault = { "Cmd-A" : "selectAll" , "Cmd-D" : "deleteLine" , "Cmd-Z" : "undo" , "Shift-Cmd-Z" : "redo" , "Cmd-Y" : "redo" , "Cmd-Home" : "goDocStart" , "Cmd-Up" : "goDocStart" , "Cmd-End" : "goDocEnd" , "Cmd-Down" : "goDocEnd" , "Alt-Left" : "goGroupLeft" , "Alt-Right" : "goGroupRight" , "Cmd-Left" : "goLineLeft" , "Cmd-Right" : "goLineRight" , "Alt-Backspace" : "delGroupBefore" , "Ctrl-Alt-Backspace" : "delGroupAfter" , "Alt-Delete" : "delGroupAfter" , "Cmd-S" : "save" , "Cmd-F" : "find" , "Cmd-G" : "findNext" , "Shift-Cmd-G" : "findPrev" , "Cmd-Alt-F" : "replace" , "Shift-Cmd-Alt-F" : "replaceAll" , "Cmd-[" : "indentLess" , "Cmd-]" : "indentMore" , "Cmd-Backspace" : "delWrappedLineLeft" , "Cmd-Delete" : "delWrappedLineRight" , "Cmd-U" : "undoSelection" , "Shift-Cmd-U" : "redoSelection" , "Ctrl-Up" : "goDocStart" , "Ctrl-Down" : "goDocEnd" , fallthrough : [ "basic" , "emacsy" ] } , fa . default = Eo ? fa . macDefault : fa . pcDefault , e . normalizeKeyMap = function ( e ) { var t = { } ; for ( var n in e ) if ( e . hasOwnProperty ( n ) ) { var r = e [ n ] ; if ( /^(name|fallthrough|(de|at)tach)$/ . test ( n ) ) continue ; if ( "..." == r ) { delete e [ n ] ; continue } for ( var i = Ri ( n . split ( " " ) , Yn ) , o = 0 ; o < i . length ; o ++ ) { var a , l ; o == i . length - 1 ? ( l = i . join ( " " ) , a = r ) : ( l = i . slice ( 0 , o + 1 ) . join ( " " ) , a = "..." ) ; var s = t [ l ] ; if ( s ) { if ( s != a ) throw new Error ( "Inconsistent bindings for " + l ) } else t [ l ] = a } delete e [ n ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var ha = e . lookupKey = function ( e , t , n , r ) { t = $n ( t ) ; var i = t . call ? t . call ( e , r ) : t [ e ] ; if ( i === ! 1 ) return "nothing" ; if ( "..." === i ) return "multi" ; if ( null != i && n ( i ) ) return "handled" ; if ( t . fallthrough ) { if ( "[object Array]" != Object . prototype . toString . call ( t . fallthrough ) ) return ha ( e , t . fallthrough , n , r ) ; for ( var o = 0 ; o < t . fallthrough . length ; o ++ ) { var a = ha ( e , t . fallthrough [ o ] , n , r ) ; if ( a ) return a } } } , da = e . isModifierKey = function ( e ) { var t = "string" == typeof e ? e : ol [ e . keyCode ] ; return "Ctrl" == t || "Alt" == t || "Shift" == t || "Mod" == t } , pa = e . keyName = function ( e , t ) { if ( Co && 34 == e . keyCode && e . char ) return ! 1 ; var n = ol [ e . keyCode ] , r = n ; return null != r && ! e . altGraphKey && ( e . altKey && "Alt" != n && ( r = "Alt-" + r ) , ( Ro ? e . metaKey : e . ctrlKey ) && "Ctrl" != n && ( r = "Ctrl-" + r ) , ( Ro ? e . ctrlKey : e . metaKey ) && "Cmd" != n && ( r = "Cmd-" + r ) , ! t && e . shiftKey && "Shift" != n && ( r = "Shift-" + r ) , r ) } ; e . fromTextArea = function ( t , n ) { function r ( ) { t . value = c . getValue ( ) } if ( n = n ? Wi ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = Gi ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Ea ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . removeChild ( e . getWrapperElement ( ) ) , t . style . display = "" , t . form && ( Ia ( t . form , "submit" , r ) , "function" == typeof t . form . submit && ( t . form . submit = a ) ) } } , t . style . display = "none" ; var c = e ( function ( e ) { t . parentNode . insertBefore ( e , t . nextSibling ) } , n ) ; return c } ; var ma = e . StringStream = function ( e , t ) { this . pos = this . start = 0 , this . string = e , this . tabSize = t || 8 , this . lastColumnPos = this . lastColumnValue = 0 , this . lineStart = 0 } ; ma . prototype = { eol : function ( ) { return this . pos >= this . string . length } , sol : function ( ) { return this . pos == this . lineStart } , peek : function ( ) { return this . string . charAt ( this . pos ) || void 0 } , next : function ( ) { return this . pos < this . string . length ? this . string . charAt ( this . pos ++ ) : void 0 } , eat : function ( e ) { var t = this . string . charAt ( this . pos ) ; if ( "string" == typeof e ) var n = t == e ; else var n = t && ( e . test ? e . test ( t ) : e ( t ) ) ; return n ? ( ++ this . pos , t ) : void 0 } , eatWhile : function ( e ) { for ( var t = this . pos ; this . eat ( e ) ; ) ; return this . pos > t } , eatSpace : function ( ) { for ( var e = this . pos ; /[\s\u00a0]/ . test ( this . string . charAt ( this . pos ) ) ; ) ++ this . pos ; return this . pos > e } , skipToEnd : function ( ) { this . pos = this . string . length } , skipTo : function ( e ) { var t = this . string . indexOf ( e , this . pos ) ; return t > - 1 ? ( this . pos = t , ! 0 ) : void 0 } , backUp : function ( e ) { this . pos -= e } , column : function ( ) { return this . lastColumnPos < this . start && ( this . lastColumnValue = Fa ( this . string , this . start , this . tabSize , this . lastColumnPos , this . lastColumnValue ) , this . lastColumnPos = this . start ) , this . lastColumnValue - ( this . lineStart ? Fa ( this . string , this Line truncated
o . f = o . inline , n . highlightFormatting && ( o . formatting = [ "list" , "list-" + d ] ) , h ( o ) } return n . fencedCodeBlocks && ( f = t . match ( I , ! 0 ) ) ? ( o . fencedChars = f [ 1 ] , o . localMode = r ( f [ 2 ] ) , o . localMode && ( o . localState = e . startState ( o . localMode ) ) , o . f = o . block = u , n . highlightFormatting && ( o . formatting = "code-block" ) , o . code = - 1 , h ( o ) ) : i ( t , o , o . inline ) } function c ( t , n ) { var r = w . token ( t , n . htmlState ) ; if ( ! k ) { var i = e . innerMode ( w , n . htmlState ) ; ( "xml" == i . mode . name && null === i . state . tagStart && ! i . state . context && i . state . tokenize . isInText || n . md _inside && t . current ( ) . indexOf ( ">" ) > - 1 ) && ( n . f = p , n . block = s , n . htmlState = null ) } return r } function u ( e , t ) { return t . fencedChars && e . match ( t . fencedChars , ! 1 ) ? ( t . localMode = t . localState = null , t . f = t . block = f , null ) : t . localMode ? t . localMode . token ( e , t . localState ) : ( e . skipToEnd ( ) , S . code ) } function f ( e , t ) { e . match ( t . fencedChars ) , t . block = s , t . f = p , t . fencedChars = null , n . highlightFormatting && ( t . formatting = "code-block" ) , t . code = 1 ; var r = h ( t ) ; return t . code = 0 , r } function h ( e ) { var t = [ ] ; if ( e . formatting ) { t . push ( S . formatting ) , "string" == typeof e . formatting && ( e . formatting = [ e . formatting ] ) ; for ( var r = 0 ; r < e . formatting . length ; r ++ ) t . push ( S . formatting + "-" + e . formatting [ r ] ) , "header" === e . formatting [ r ] && t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . header ) , "quote" === e . formatting [ r ] && ( ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . quote ) : t . push ( "error" ) ) } if ( e . taskOpen ) return t . push ( "meta" ) , t . length ? t . join ( " " ) : null ; if ( e . taskClosed ) return t . push ( "property" ) , t . length ? t . join ( " " ) : null ; if ( e . linkHref ? t . push ( S . linkHref , "url" ) : ( e . strong && t . push ( S . strong ) , e . em && t . push ( S . em ) , e . strikethrough && t . push ( S . strikethrough ) , e . linkText && t . push ( S . linkText ) , e . code && t . push ( S . code ) ) , e . header && t . push ( S . header , S . header + "-" + e . header ) , e . quote && ( t . push ( S . quote ) , ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . quote + "-" + e . quote ) : t . push ( S . quote + "-" + n . maxBlockquoteDepth ) ) , e . list !== ! 1 ) { var i = ( e . listStack . length - 1 ) % 3 ; i ? 1 === i ? t . push ( S . list2 ) : t . push ( S . list3 ) : t . push ( S . list1 ) } return e . trailingSpaceNewLine ? t . push ( "trailing-space-new-line" ) : e . trailingSpace && t . push ( "trailing-space-" + ( e . trailingSpace % 2 ? "a" : "b" ) ) , t . length ? t . join ( " " ) : null } function d ( e , t ) { return e . match ( O , ! 0 ) ? h ( t ) : void 0 } function p ( t , r ) { var i = r . text ( t , r ) ; if ( "undefined" != typeof i ) return i ; if ( r . list ) return r . list = null , h ( r ) ; if ( r . taskList ) { var a = "x" !== t . match ( N , ! 0 ) [ 1 ] ; return a ? r . taskOpen = ! 0 : r . taskClosed = ! 0 , n . highlightFormatting && ( r . formatting = "task" ) , r . taskList = ! 1 , h ( r ) } if ( r . taskOpen = ! 1 , r . taskClosed = ! 1 , r . header && t . match ( /^#+$/ , ! 0 ) ) return n . highlightFormatting && ( r . formatting = "header" ) , h ( r ) ; var l = t . sol ( ) , s = t . next ( ) ; if ( r . linkTitle ) { r . linkTitle = ! 1 ; var u = s ; "(" === s && ( u = ")" ) , u = ( u + "" ) . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) ; var f = "^\\s*(?:[^" + u + "\\\\]+|\\\\\\\\|\\\\.)" + u ; if ( t . match ( new RegExp ( f ) , ! 0 ) ) return S . linkHref } if ( "`" === s ) { var d = r . formatting ; n . highlightFormatting && ( r . formatting = "code" ) , t . eatWhile ( "`" ) ; var p = t . current ( ) . length ; if ( 0 == r . code ) return r . code = p , h ( r ) ; if ( p == r . code ) { var v = h ( r ) ; return r . code = 0 , v } return r . formatting = d , h ( r ) } if ( r . code ) return h ( r ) ; if ( "\\" === s && ( t . next ( ) , n . highlightFormatting ) ) { var y = h ( r ) , x = S . formatting + "-escape" ; return y ? y + " " + x : x } if ( "!" === s && t . match ( /\[[^\]]*\] ?(?:\(|\[)/ , ! 1 ) ) return t . match ( /\[[^\]]*\]/ ) , r . inline = r . f = g , S . image ; if ( "[" === s && t . match ( /[^\]]*\](\(.*\)| ?\[.*?\])/ , ! 1 ) ) return r . linkText = ! 0 , n . highlightFormatting && ( r . formatting = "link" ) , h ( r ) ; if ( "]" === s && r . linkText && t . match ( /\(.*?\)| ?\[.*?\]/ , ! 1 ) ) { n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return r . linkText = ! 1 , r . inline = r . f = g , y } if ( "<" === s && t . match ( /^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/ , ! 1 ) ) { r . f = r . inline = m , n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return y ? y += " " : y = "" , y + S . linkInline } if ( "<" === s && t . match ( /^[^> \\]+@(?:[^\\>]|\\.)+>/ , ! 1 ) ) { r . f = r . inline = m , n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return y ? y += " " : y = "" , y + S . linkEmail } if ( "<" === s && t . match ( /^(!--|\w)/ , ! 1 ) ) { var b = t . string . indexOf ( ">" , t . pos ) ; if ( - 1 != b ) { var k = t . string . substring ( t . start , b ) ; /markdown\s*=\s*('|"){0,1}1('|"){0,1}/ . test ( k ) && ( r . md _inside = ! 0 ) } return t . backUp ( 1 ) , r . htmlState = e . startState ( w ) , o ( t , r , c ) } if ( "<" === s && t . match ( /^\/\w*?>/ ) ) return r . md _inside = ! 1 , "tag" ; var C = ! 1 ; if ( ! n . underscoresBreakWords && "_" === s && "_" !== t . peek ( ) && t . match ( /(\w)/ , ! 1 ) ) { var L = t . pos - 2 ; if ( L >= 0 ) { var T = t . string . charAt ( L ) ; "_" !== T && T . match ( /(\w)/ , ! 1 ) && ( C = ! 0 ) } } if ( "*" === s || "_" === s && ! C ) if ( l && " " === t . peek ( ) ) ; else { if ( r . strong === s && t . eat ( s ) ) { n . highlightFormatting && ( r . formatting = "strong" ) ; var v = h ( r ) ; return r . strong = ! 1 , v } if ( ! r . strong && t . eat ( s ) ) return r . strong = s , n . highlightFormatting && ( r . formatting = "strong" ) , h ( r ) ; if ( r . em === s ) { n . highlightFormatting && ( r . formatting = "em" ) ; var v = h ( r ) ; return r . em = ! 1 , v } if ( ! r . em ) return r . em = s , n . highlightFormatting && ( r . formatting = "em" ) , h ( r ) } else if ( " " === s && ( t . eat ( "*" ) || t . eat ( "_" ) ) ) { if ( " " === t . peek ( ) ) return h ( r ) ; t . backUp ( 1 ) } if ( n . strikethrough ) if ( "~" === s && t . eatWhile ( s ) ) { if ( r . strikethrough ) { n . highlightFormatting && ( r . formatting = "strikethrough" ) ; var v = h ( r ) ; return r . strikethrough = ! 1 , v } if ( t . match ( /^[^\s]/ , ! 1 ) ) return r . strikethrough = ! 0 , n . highlightF Line truncated
type : "space" } ) ) , o = this . rules . code . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , o = o [ 0 ] . replace ( /^ {4}/gm , "" ) , this . tokens . push ( { type : "code" , text : this . options . pedantic ? o : o . replace ( /\n+$/ , "" ) } ) ; else if ( o = this . rules . fences . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "code" , lang : o [ 2 ] , text : o [ 3 ] || "" } ) ; else if ( o = this . rules . heading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : o [ 1 ] . length , text : o [ 2 ] } ) ; else if ( t && ( o = this . rules . nptable . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( o = this . rules . lheading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : "=" === o [ 2 ] ? 1 : 2 , text : o [ 1 ] } ) ; else if ( o = this . rules . hr . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "hr" } ) ; else if ( o = this . rules . blockquote . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "blockquote_start" } ) , o = o [ 0 ] . replace ( /^ *> ?/gm , "" ) , this . token ( o , t , ! 0 ) , this . tokens . push ( { type : "blockquote_end" } ) ; else if ( o = this . rules . list . exec ( e ) ) { for ( e = e . substring ( o [ 0 ] . length ) , a = o [ 2 ] , this . tokens . push ( { type : "list_start" , ordered : a . length > 1 } ) , o = o [ 0 ] . match ( this . rules . item ) , r = ! 1 , f = o . length , u = 0 ; f > u ; u ++ ) s = o [ u ] , c = s . length , s = s . replace ( /^ *([*+-]|\d+\.) +/ , "" ) , ~ s . indexOf ( "\n " ) && ( c -= s . length , s = this . options . pedantic ? s . replace ( /^ {1,4}/gm , "" ) : s . replace ( new RegExp ( "^ {1," + c + "}" , "gm" ) , "" ) ) , this . options . smartLists && u !== f - 1 && ( l = d . bullet . exec ( o [ u + 1 ] ) [ 0 ] , a === l || a . length > 1 && l . length > 1 || ( e = o . slice ( u + 1 ) . join ( "\n" ) + e , u = f - 1 ) ) , i = r || /\n\n(?!\s*$)/ . test ( s ) , u !== f - 1 && ( r = "\n" === s . charAt ( s . length - 1 ) , i || ( i = r ) ) , this . tokens . push ( { type : i ? "loose_item_start" : "list_item_start" } ) , this . token ( s , ! 1 , n ) , this . tokens . push ( { type : "list_item_end" } ) ; this . tokens . push ( { type : "list_end" } ) } else if ( o = this . rules . html . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : this . options . sanitize ? "paragraph" : "html" , pre : ! this . options . sanitizer && ( "pre" === o [ 1 ] || "script" === o [ 1 ] || "style" === o [ 1 ] ) , text : o [ 0 ] } ) ; else if ( ! n && t && ( o = this . rules . def . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . links [ o [ 1 ] . toLowerCase ( ) ] = { href : o [ 2 ] , title : o [ 3 ] } ; else if ( t && ( o = this . rules . table . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /(?: *\| *)?\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . replace ( /^ *\| *| *\| *$/g , "" ) . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( t && ( o = this . rules . paragraph . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "paragraph" , text : "\n" === o [ 1 ] . charAt ( o [ 1 ] . length - 1 ) ? o [ 1 ] . slice ( 0 , - 1 ) : o [ 1 ] } ) ; else if ( o = this . rules . text . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "text" , text : o [ 0 ] } ) ; else if ( e ) throw new Error ( "Infinite loop on byte: " + e . charCodeAt ( 0 ) ) ; return this . tokens } ; var p = { escape : /^\\([\\`*{}\[\]()#+\-.!_>])/ , autolink : /^<([^ >]+(@|:\/)[^ >]+)>/ , url : u , tag : /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/ , link : /^!?\[(inside)\]\(href\)/ , reflink : /^!?\[(inside)\]\s*\[([^\]]*)\]/ , nolink : /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/ , strong : /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/ , em : /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/ , code : /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/ , br : /^ {2,}\n(?!\s*$)/ , del : u , text : /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/ } ; p . _inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/ , p . _href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/ , p . link = c ( p . link ) ( "inside" , p . _inside ) ( "href" , p . _href ) ( ) , p . reflink = c ( p . reflink ) ( "inside" , p . _inside ) ( ) , p . normal = f ( { } , p ) , p . pedantic = f ( { } , p . normal , { strong : /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/ , em : /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/ } ) , p . gfm = f ( { } , p . normal , { escape : c ( p . escape ) ( "])" , "~|])" ) ( ) , url : /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/ , del : /^~~(?=\S)([\s\S]*?\S)~~/ , text : c ( p . text ) ( "]|" , "~]|" ) ( "|" , "|https?://|" ) ( ) } ) , p . breaks = f ( { } , p . gfm , { br : c ( p . br ) ( "{2,}" , "*" ) ( ) , text : c ( p . gfm . text ) ( "{2,}" , "*" ) ( ) } ) , i . rules = p , i . output = function ( e , t , n ) { var r = new i ( t , n ) ; return r . output ( e ) } , i . prototype . output = function ( e ) { for ( var t , n , r , i , o = "" ; e ; ) if ( i = this . rules . escape . exec ( e ) ) e = e . substring ( i [ 0 ] . length ) , o += i [ 1 ] ; else if ( i = this . rules . autolink . exec ( e ) ) e = e . substring ( i [ 0 ] . length ) , "@" === i [ 2 ] ? ( n = ":" === i [ 1 ] . charAt ( 6 ) ? this . mangle ( i [ 1 ] . substring ( 7 ) ) : this . mangle ( i [ 1 ] ) , r = this . mangle ( "mailto:" ) + n ) : ( n = l ( i [ 1 ] ) , r = n ) , o += this . renderer . link ( r , null , n ) ; else if ( this . inLink || ! ( i = this . rules . url . exec ( e ) ) ) { if ( i = this . rules . tag . exec ( e ) ) ! this . inLink && Line truncated
e ( "codemirror/mode/xml/xml.js" ) ; var z = e ( "codemirror-spell-checker" ) , j = e ( "marked" ) , U = /Mac/ . test ( navigator . platform ) , q = { toggleBold : c , toggleItalic : u , drawLink : k , toggleHeadingSmaller : p , toggleHeadingBigger : m , drawImage : S , toggleBlockquote : d , toggleOrderedList : b , toggleUnorderedList : x , toggleCodeBlock : h , togglePreview : A , toggleStrikethrough : f , toggleHeading1 : g , toggleHeading2 : v , toggleHeading3 : y , cleanBlock : w , drawTable : C , drawHorizontalRule : L , undo : T , redo : M , toggleSideBySide : N , toggleFullScreen : s } , G = { toggleBold : "Cmd-B" , toggleItalic : "Cmd-I" , drawLink : "Cmd-K" , toggleHeadingSmaller : "Cmd-H" , toggleHeadingBigger : "Shift-Cmd-H" , cleanBlock : "Cmd-E" , drawImage : "Cmd-Alt-I" , toggleBlockquote : "Cmd-'" , toggleOrderedList : "Cmd-Alt-L" , toggleUnorderedList : "Cmd-L" , toggleCodeBlock : "Cmd-Alt-C" , togglePreview : "Cmd-P" , toggleSideBySide : "F9" , toggleFullScreen : "F11" } , Y = function ( e ) { for ( var t in q ) if ( q [ t ] === e ) return t ; return null } , $ = function ( ) { var e = ! 1 ; return function ( t ) { ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i . test ( t ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i . test ( t . substr ( 0 , 4 ) ) ) && ( e = ! 0 ) } ( navigator . userAgent || navigator . vendor || window . opera ) , e } , V = "" , K = { bold : { name : "bold" , action : c , className : "fa fa-bold" , title : "Bold" , default : ! 0 } , italic : { name : "italic" , action : u , className : "fa fa-italic" , title : "Italic" , default : ! 0 } , strikethrough : { name : "strikethrough" , action : f , className : "fa fa-strikethrough" , title : "Strikethrough" } , heading : { name : "heading" , action : p , className : "fa fa-header" , title : "Heading" , default : ! 0 } , "heading-smaller" : { name : "heading-smaller" , action : p , className : "fa fa-header fa-header-x fa-header-smaller" , title : "Smaller Heading" } , "heading-bigger" : { name : "heading-bigger" , action : m , className : "fa fa-header fa-header-x fa-header-bigger" , title : "Bigger Heading" } , "heading-1" : { name : "heading-1" , action : g , className : "fa fa-header fa-header-x fa-header-1" , title : "Big Heading" } , "heading-2" : { name : "heading-2" , action : v , className : "fa fa-header fa-header-x fa-header-2" , title : "Medium Heading" } , "heading-3" : { name : "heading-3" , action : y , className : "fa fa-header fa-header-x fa-header-3" , title : "Small Heading" } , "separator-1" : { name : "separator-1" } , code : { name : "code" , action : h , className : "fa fa-code" , title : "Code" } , quote : { name : "quote" , action : d , className : "fa fa-quote-left" , title : "Quote" , default : ! 0 } , "unordered-list" : { name : "unordered-list" , action : x , className : "fa fa-list-ul" , title : "Generic List" , default : ! 0 } , "ordered-list" : { name : "ordered-list" , action : b , className : "fa fa-list-ol" , title : "Numbered List" , default : ! 0 } , "clean-block" : { name : "clean-block" , action : w , className : "fa fa-eraser fa-clean-block" , title : "Clean block" } , "separator-2" : { name : "separator-2" } , link : { name : "link" , action : k , className : "fa fa-link" , title : "Create Link" , default : ! 0 } , image : { name : "image" , action : S , className : "fa fa-picture-o" , title : "Insert Image" , default : ! 0 } , table : { name : "table" , action : C , className : "fa fa-table" , title : "Insert Table" } , "horizontal-rule" : { name : "horizontal-rule" , action : L , className : "fa fa-minus" , title : "Insert Horizontal Line" } , "separator-3" : { name : "separator-3" } , preview : { name : "preview" , action : A , className : "fa fa-eye no-disable" , title : "Toggle Preview" , default : ! 0 } , "side-by-side" : { name : "side-by-side" , action : N , className : " Line truncated
188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 111 : "/" , 106 : "*" } } ; for ( n in e . FUNCTION _KEYS ) t = e . FUNCTION _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; for ( n in e . PRINTABLE _KEYS ) t = e . PRINTABLE _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; return r . mixin ( e , e . MODIFIER _KEYS ) , r . mixin ( e , e . PRINTABLE _KEYS ) , r . mixin ( e , e . FUNCTION _KEYS ) , e . enter = e . return , e . escape = e . esc , e . del = e . delete , e [ 173 ] = "-" , function ( ) { for ( var t = [ "cmd" , "ctrl" , "alt" , "shift" ] , n = Math . pow ( 2 , t . length ) ; n -- ; ) e . KEY _MODS [ n ] = t . filter ( function ( t ) { return n & e . KEY _MODS [ t ] } ) . join ( "-" ) + "-" } ( ) , e . KEY _MODS [ 0 ] = "" , e . KEY _MODS [ - 1 ] = "input-" , e } ( ) ; r . mixin ( t , i ) , t . keyCodeToString = function ( e ) { var t = i [ e ] ; return "string" != typeof t && ( t = String . fromCharCode ( e ) ) , t . toLowerCase ( ) } } ) , ace . define ( "ace/lib/useragent" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; if ( t . OS = { LINUX : "LINUX" , MAC : "MAC" , WINDOWS : "WINDOWS" } , t . getOS = function ( ) { return t . isMac ? t . OS . MAC : t . isLinux ? t . OS . LINUX : t . OS . WINDOWS } , "object" == typeof navigator ) { var r = ( navigator . platform . match ( /mac|win|linux/i ) || [ "other" ] ) [ 0 ] . toLowerCase ( ) , i = navigator . userAgent ; t . isWin = "win" == r , t . isMac = "mac" == r , t . isLinux = "linux" == r , t . isIE = "Microsoft Internet Explorer" == navigator . appName || navigator . appName . indexOf ( "MSAppHost" ) >= 0 ? parseFloat ( ( i . match ( /(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) : parseFloat ( ( i . match ( /(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) , t . isOldIE = t . isIE && t . isIE < 9 , t . isGecko = t . isMozilla = ( window . Controllers || window . controllers ) && "Gecko" === window . navigator . product , t . isOldGecko = t . isGecko && parseInt ( ( i . match ( /rv:(\d+)/ ) || [ ] ) [ 1 ] , 10 ) < 4 , t . isOpera = window . opera && "[object Opera]" == Object . prototype . toString . call ( window . opera ) , t . isWebKit = parseFloat ( i . split ( "WebKit/" ) [ 1 ] ) || void 0 , t . isChrome = parseFloat ( i . split ( " Chrome/" ) [ 1 ] ) || void 0 , t . isAIR = i . indexOf ( "AdobeAIR" ) >= 0 , t . isIPad = i . indexOf ( "iPad" ) >= 0 , t . isTouchPad = i . indexOf ( "TouchPad" ) >= 0 , t . isChromeOS = i . indexOf ( " CrOS " ) >= 0 } } ) , ace . define ( "ace/lib/event" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/useragent" ] , function ( e , t , n ) { "use strict" ; function a ( e , t , n ) { var a = u ( t ) ; if ( ! i . isMac && s ) { if ( t . getModifierState && ( t . getModifierState ( "OS" ) || t . getModifierState ( "Win" ) ) && ( a |= 8 ) , s . altGr ) { if ( 3 == ( 3 & a ) ) return ; s . altGr = 0 } if ( 18 === n || 17 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 17 === n && 1 === f ) 1 == s [ n ] && ( o = t . timeStamp ) ; else if ( 18 === n && 3 === a && 2 === f ) { var l = t . timeStamp - o ; l < 50 && ( s . altGr = ! 0 ) } } } if ( n in r . MODIFIER _KEYS && ( n = - 1 ) , 8 & a && n >= 91 && n <= 93 && ( n = - 1 ) , ! a && 13 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 3 === f && ( e ( t , a , - n ) , t . defaultPrevented ) ) return } if ( i . isChromeOS && 8 & a ) { if ( e ( t , a , n ) , t . defaultPrevented ) return ; a &= - 9 } return ! ! ( a || n in r . FUNCTION _KEYS || n in r . PRINTABLE _KEYS ) && e ( t , a , n ) } function f ( ) { s = Object . create ( null ) } var r = e ( "./keys" ) , i = e ( "./useragent" ) , s = null , o = 0 ; t . addListener = function ( e , t , n ) { if ( e . addEventListener ) return e . addEventListener ( t , n , ! 1 ) ; if ( e . attachEvent ) { var r = function ( ) { n . call ( e , window . event ) } ; n . _wrapper = r , e . attachEvent ( "on" + t , r ) } } , t . removeListener = function ( e , t , n ) { return e . removeEventListener ? e . removeEventListener ( t , n , ! 1 ) : void ( e . detachEvent && e . detachEvent ( "on" + t , n . _wrapper || n ) ) } , t . stopEvent = function ( e ) { return t . stopPropagation ( e ) , t . preventDefault ( e ) , ! 1 } , t . stopPropagation = function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , t . preventDefault = function ( e ) { e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , t . getButton = function ( e ) { return "dblclick" == e . type ? 0 : "contextmenu" == e . type || i . isMac && e . ctrlKey && ! e . altKey && ! e . shiftKey ? 2 : e . preventDefault ? e . button : { 1 : 0 , 2 : 2 , 4 : 1 } [ e . button ] } , t . capture = function ( e , n , r ) { function i ( e ) { n && n ( e ) , r && r ( e ) , t . removeListener ( document , "mousemove" , n , ! 0 ) , t . removeListener ( document , "mouseup" , i , ! 0 ) , t . removeListener ( document , "dragstart" , i , ! 0 ) } return t . addListener ( document , "mousemove" , n , ! 0 ) , t . addListener ( document , "mouseup" , i , ! 0 ) , t . addListener ( document , "dragstart" , i , ! 0 ) , i } , t . addTouchMoveListener = function ( e , n ) { if ( "ontouchmove" in e ) { var r , i ; t . addListener ( e , "touchstart" , function ( e ) { var t = e . changedTouches [ 0 ] ; r = t . clientX , i = t . clientY } ) , t . addListener ( e , "touchmove" , function ( e ) { var t = 1 , s = e . changedTouches [ 0 ] ; e . wheelX = - ( s . clientX - r ) / t , e . wheelY = - ( s . clientY - i ) / t , r = s . clientX , i = s . clientY , n ( e ) } ) } } , t . addMouseWheelListener = function ( e , n ) { "onmousewheel" in e ? t . addListener ( e , "mousewheel" , function ( e ) { var t = 8 ; void 0 !== e . wheelDeltaX ? ( e . wheelX = - e . wheelDeltaX / t , e . wheelY = - e . wheelDeltaY / t ) : ( e . wheelX = 0 , e . wheelY = - e . wheelDelta / t ) , n ( e ) } ) : "onwheel" in e ? t . addListener ( e , "wheel" , function ( e ) { var t = . 35 ; switch ( e . deltaMode ) { case e . DOM _DELTA _PIXEL : e . wheelX = e . deltaX * t || 0 , e . wheelY = e . deltaY * t || 0 ; break ; case e . DOM _DELTA _LINE : case e . DOM _DELTA _PAGE : e . wheelX = 5 * ( e . deltaX || 0 ) , e . wheelY = 5 * ( e . deltaY || 0 ) } n ( e ) } ) : t . addListener ( e , "DOMMouseScroll" , function ( e ) { e . axis && e . axis == e . HORIZONTAL _AXIS ? ( e . wheelX = 5 * ( e . detail || 0 ) , e . wheelY = 0 ) : ( e . wheelX = 0 , e . wheelY = 5 * ( e . detail || 0 ) ) , n ( e ) } ) } , t . addMultiMouseDownListener = function ( e , n , r , s ) { function c ( e ) { if ( 0 !== t . getButton ( e ) ? o = 0 : e . detail > 1 ? ( o ++ , o > 4 && ( o = 1 ) ) : o = 1 , i . isIE ) { var c = Math . abs ( e . clientX - u ) > 5 || Math . abs ( e . clientY - a ) > 5 ; f && ! c || ( o = 1 ) Line truncated
n . appendChild ( i ) , i . onload = i . onreadystatechange = function ( e , n ) { ! n && i . readyState && "loaded" != i . readyState && "complete" != i . readyState || ( i = i . onload = i . onreadystatechange = null , n || t ( ) ) } } , t . qualifyURL = function ( e ) { var t = document . createElement ( "a" ) ; return t . href = e , t . href } } ) , ace . define ( "ace/lib/event_emitter" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = { } , i = function ( ) { this . propagationStopped = ! 0 } , s = function ( ) { this . defaultPrevented = ! 0 } ; r . _emit = r . _dispatchEvent = function ( e , t ) { this . _eventRegistry || ( this . _eventRegistry = { } ) , this . _defaultHandlers || ( this . _defaultHandlers = { } ) ; var n = this . _eventRegistry [ e ] || [ ] , r = this . _defaultHandlers [ e ] ; if ( n . length || r ) { "object" == typeof t && t || ( t = { } ) , t . type || ( t . type = e ) , t . stopPropagation || ( t . stopPropagation = i ) , t . preventDefault || ( t . preventDefault = s ) , n = n . slice ( ) ; for ( var o = 0 ; o < n . length && ( n [ o ] ( t , this ) , ! t . propagationStopped ) ; o ++ ) ; return r && ! t . defaultPrevented ? r ( t , this ) : void 0 } } , r . _signal = function ( e , t ) { var n = ( this . _eventRegistry || { } ) [ e ] ; if ( n ) { n = n . slice ( ) ; for ( var r = 0 ; r < n . length ; r ++ ) n [ r ] ( t , this ) } } , r . once = function ( e , t ) { var n = this ; t && this . addEventListener ( e , function r ( ) { n . removeEventListener ( e , r ) , t . apply ( null , arguments ) } ) } , r . setDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n || ( n = this . _defaultHandlers = { _disabled _ : { } } ) , n [ e ] ) { var r = n [ e ] , i = n . _disabled _ [ e ] ; i || ( n . _disabled _ [ e ] = i = [ ] ) , i . push ( r ) ; var s = i . indexOf ( t ) ; s != - 1 && i . splice ( s , 1 ) } n [ e ] = t } , r . removeDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n ) { var r = n . _disabled _ [ e ] ; if ( n [ e ] == t ) { n [ e ] ; r && this . setDefaultHandler ( e , r . pop ( ) ) } else if ( r ) { var s = r . indexOf ( t ) ; s != - 1 && r . splice ( s , 1 ) } } } , r . on = r . addEventListener = function ( e , t , n ) { this . _eventRegistry = this . _eventRegistry || { } ; var r = this . _eventRegistry [ e ] ; return r || ( r = this . _eventRegistry [ e ] = [ ] ) , r . indexOf ( t ) == - 1 && r [ n ? "unshift" : "push" ] ( t ) , t } , r . off = r . removeListener = r . removeEventListener = function ( e , t ) { this . _eventRegistry = this . _eventRegistry || { } ; var n = this . _eventRegistry [ e ] ; if ( n ) { var r = n . indexOf ( t ) ; r !== - 1 && n . splice ( r , 1 ) } } , r . removeAllListeners = function ( e ) { this . _eventRegistry && ( this . _eventRegistry [ e ] = [ ] ) } , t . EventEmitter = r } ) , ace . define ( "ace/lib/app_config" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "no use strict" ; function o ( e ) { "undefined" != typeof console && console . warn && console . warn . apply ( console , arguments ) } function u ( e , t ) { var n = new Error ( e ) ; n . data = t , "object" == typeof console && console . error && console . error ( n ) , setTimeout ( function ( ) { throw n } ) } var r = e ( "./oop" ) , i = e ( "./event_emitter" ) . EventEmitter , s = { setOptions : function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . setOption ( t , e [ t ] ) } , this ) } , getOptions : function ( e ) { var t = { } ; return e ? Array . isArray ( e ) || ( t = e , e = Object . keys ( t ) ) : e = Object . keys ( this . $options ) , e . forEach ( function ( e ) { t [ e ] = this . getOption ( e ) } , this ) , t } , setOption : function ( e , t ) { if ( this [ "$" + e ] !== t ) { var n = this . $options [ e ] ; return n ? n . forwardTo ? this [ n . forwardTo ] && this [ n . forwardTo ] . setOption ( e , t ) : ( n . handlesSet || ( this [ "$" + e ] = t ) , void ( n && n . set && n . set . call ( this , t ) ) ) : o ( 'misspelled option "' + e + '"' ) } } , getOption : function ( e ) { var t = this . $options [ e ] ; return t ? t . forwardTo ? this [ t . forwardTo ] && this [ t . forwardTo ] . getOption ( e ) : t && t . get ? t . get . call ( this ) : this [ "$" + e ] : o ( 'misspelled option "' + e + '"' ) } } , a = function ( ) { this . $defaultOptions = { } } ; ( function ( ) { r . implement ( this , i ) , this . defineOptions = function ( e , t , n ) { return e . $options || ( this . $defaultOptions [ t ] = e . $options = { } ) , Object . keys ( n ) . forEach ( function ( t ) { var r = n [ t ] ; "string" == typeof r && ( r = { forwardTo : r } ) , r . name || ( r . name = t ) , e . $options [ r . name ] = r , "initialValue" in r && ( e [ "$" + r . name ] = r . initialValue ) } ) , r . implement ( e , s ) , this } , this . resetOptions = function ( e ) { Object . keys ( e . $options ) . forEach ( function ( t ) { var n = e . $options [ t ] ; "value" in n && e . setOption ( t , n . value ) } ) } , this . setDefaultValue = function ( e , t , n ) { var r = this . $defaultOptions [ e ] || ( this . $defaultOptions [ e ] = { } ) ; r [ t ] && ( r . forwardTo ? this . setDefaultValue ( r . forwardTo , t , n ) : r [ t ] . value = n ) } , this . setDefaultValues = function ( e , t ) { Object . keys ( t ) . forEach ( function ( n ) { this . setDefaultValue ( e , n , t [ n ] ) } , this ) } , this . warn = o , this . reportError = u } ) . call ( a . prototype ) , t . AppConfig = a } ) , ace . define ( "ace/config" , [ "require" , "exports" , "module" , "ace/lib/lang" , "ace/lib/oop" , "ace/lib/net" , "ace/lib/app_config" ] , function ( e , t , n ) { "no use strict" ; function f ( r ) { if ( u && u . document ) { a . packaged = r || e . packaged || n . packaged || u . define && define . packaged ; for ( var i = { } , s = "" , o = document . currentScript || document . _currentScript , f = o && o . ownerDocument || document , c = f . getElementsByTagName ( "script" ) , h = 0 ; h < c . length ; h ++ ) { var p = c [ h ] , d = p . src || p . getAttribute ( "src" ) ; if ( d ) { for ( var v = p . attributes , m = 0 , g = v . length ; m < g ; m ++ ) { var y = v [ m ] ; 0 === y . name . indexOf ( "data-ace-" ) && ( i [ l ( y . name . replace ( /^data-ace-/ , "" ) ) ] = y . value ) } var b = d . match ( /^(.*)\/ace(\-\w+)?\.js(\?|$)/ ) ; b && ( s = b [ 1 ] ) } } s && ( i . base = i . base || s , i . packaged = ! 0 ) , i . basePath = i . base , i . workerPath = i . workerPath || i . base , i . modePath = i . modePath || i . base , i . themePath = i . themePath || i . base , delete i . base ; for ( var w in i ) "undefined" != typeof i [ w ] && t . set ( w , i [ w ] ) } } function l ( e ) { return e . replace ( /-(.)/g , function ( e , t ) { return t . toUpperCase ( ) } ) } var r = e ( "./lib/lang" ) , s = ( e ( "./lib/oop" ) , e Line truncated
"use strict" ; var r = e ( "../lib/lang" ) , i = function ( ) { this . $rules = { start : [ { token : "empty_line" , regex : "^$" } , { defaultToken : "text" } ] } } ; ( function ( ) { this . addRules = function ( e , t ) { if ( t ) for ( var n in e ) { for ( var r = e [ n ] , i = 0 ; i < r . length ; i ++ ) { var s = r [ i ] ; ( s . next || s . onMatch ) && ( "string" == typeof s . next && 0 !== s . next . indexOf ( t ) && ( s . next = t + s . next ) , s . nextState && 0 !== s . nextState . indexOf ( t ) && ( s . nextState = t + s . nextState ) ) } this . $rules [ t + n ] = r } else for ( var n in e ) this . $rules [ n ] = e [ n ] } , this . getRules = function ( ) { return this . $rules } , this . embedRules = function ( e , t , n , i , s ) { var o = "function" == typeof e ? ( new e ) . getRules ( ) : e ; if ( i ) for ( var u = 0 ; u < i . length ; u ++ ) i [ u ] = t + i [ u ] ; else { i = [ ] ; for ( var a in o ) i . push ( t + a ) } if ( this . addRules ( o , t ) , n ) for ( var f = Array . prototype [ s ? "push" : "unshift" ] , u = 0 ; u < i . length ; u ++ ) f . apply ( this . $rules [ i [ u ] ] , r . deepCopy ( n ) ) ; this . $embeds || ( this . $embeds = [ ] ) , this . $embeds . push ( t ) } , this . getEmbeds = function ( ) { return this . $embeds } ; var e = function ( e , t ) { return ( "start" != e || t . length ) && t . unshift ( this . nextState , e ) , this . nextState } , t = function ( e , t ) { return t . shift ( ) , t . shift ( ) || "start" } ; this . normalizeRules = function ( ) { function i ( s ) { var o = r [ s ] ; o . processed = ! 0 ; for ( var u = 0 ; u < o . length ; u ++ ) { var a = o [ u ] , f = null ; Array . isArray ( a ) && ( f = a , a = { } ) , ! a . regex && a . start && ( a . regex = a . start , a . next || ( a . next = [ ] ) , a . next . push ( { defaultToken : a . token } , { token : a . token + ".end" , regex : a . end || a . start , next : "pop" } ) , a . token = a . token + ".start" , a . push = ! 0 ) ; var l = a . next || a . push ; if ( l && Array . isArray ( l ) ) { var c = a . stateName ; c || ( c = a . token , "string" != typeof c && ( c = c [ 0 ] || "" ) , r [ c ] && ( c += n ++ ) ) , r [ c ] = l , a . next = c , i ( c ) } else "pop" == l && ( a . next = t ) ; if ( a . push && ( a . nextState = a . next || a . push , a . next = e , delete a . push ) , a . rules ) for ( var h in a . rules ) r [ h ] ? r [ h ] . push && r [ h ] . push . apply ( r [ h ] , a . rules [ h ] ) : r [ h ] = a . rules [ h ] ; var p = "string" == typeof a ? a : "string" == typeof a . include ? a . include : "" ; if ( p && ( f = r [ p ] ) , f ) { var d = [ u , 1 ] . concat ( f ) ; a . noEscape && ( d = d . filter ( function ( e ) { return ! e . next } ) ) , o . splice . apply ( o , d ) , u -- } a . keywordMap && ( a . token = this . createKeywordMapper ( a . keywordMap , a . defaultToken || "text" , a . caseInsensitive ) , delete a . defaultToken ) } } var n = 0 , r = this . $rules ; Object . keys ( r ) . forEach ( i , this ) } , this . createKeywordMapper = function ( e , t , n , r ) { var i = Object . create ( null ) ; return Object . keys ( e ) . forEach ( function ( t ) { var s = e [ t ] ; n && ( s = s . toLowerCase ( ) ) ; for ( var o = s . split ( r || "|" ) , u = o . length ; u -- ; ) i [ o [ u ] ] = t } ) , Object . getPrototypeOf ( i ) && ( i . _ _proto _ _ = null ) , this . $keywordList = Object . keys ( i ) , e = null , n ? function ( e ) { return i [ e . toLowerCase ( ) ] || t } : function ( e ) { return i [ e ] || t } } , this . getKeywords = function ( ) { return this . $keywords } } ) . call ( i . prototype ) , t . TextHighlightRules = i } ) , ace . define ( "ace/mode/behaviour" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( ) { this . $behaviours = { } } ; ( function ( ) { this . add = function ( e , t , n ) { switch ( void 0 ) { case this . $behaviours : this . $behaviours = { } ; case this . $behaviours [ e ] : this . $behaviours [ e ] = { } } this . $behaviours [ e ] [ t ] = n } , this . addBehaviours = function ( e ) { for ( var t in e ) for ( var n in e [ t ] ) this . add ( t , n , e [ t ] [ n ] ) } , this . remove = function ( e ) { this . $behaviours && this . $behaviours [ e ] && delete this . $behaviours [ e ] } , this . inherit = function ( e , t ) { if ( "function" == typeof e ) var n = ( new e ) . getBehaviours ( t ) ; else var n = e . getBehaviours ( t ) ; this . addBehaviours ( n ) } , this . getBehaviours = function ( e ) { if ( ! e ) return this . $behaviours ; for ( var t = { } , n = 0 ; n < e . length ; n ++ ) this . $behaviours [ e [ n ] ] && ( t [ e [ n ] ] = this . $behaviours [ e [ n ] ] ) ; return t } } ) . call ( r . prototype ) , t . Behaviour = r } ) , ace . define ( "ace/token_iterator" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( e , t , n ) { this . $session = e , this . $row = t , this . $rowTokens = e . getTokens ( t ) ; var r = e . getTokenAt ( t , n ) ; this . $tokenIndex = r ? r . index : - 1 } ; ( function ( ) { this . stepBackward = function ( ) { for ( this . $tokenIndex -= 1 ; this . $tokenIndex < 0 ; ) { if ( this . $row -= 1 , this . $row < 0 ) return this . $row = 0 , null ; this . $rowTokens = this . $session . getTokens ( this . $row ) , this . $tokenIndex = this . $rowTokens . length - 1 } return this . $rowTokens [ this . $tokenIndex ] } , this . stepForward = function ( ) { this . $tokenIndex += 1 ; for ( var e ; this . $tokenIndex >= this . $rowTokens . length ; ) { if ( this . $row += 1 , e || ( e = this . $session . getLength ( ) ) , this . $row >= e ) return this . $row = e - 1 , null ; this . $rowTokens = this . $session . getTokens ( this . $row ) , this . $tokenIndex = 0 } return this . $rowTokens [ this . $tokenIndex ] } , this . getCurrentToken = function ( ) { return this . $rowTokens [ this . $tokenIndex ] } , this . getCurrentTokenRow = function ( ) { return this . $row } , this . getCurrentTokenColumn = function ( ) { var e = this . $rowTokens , t = this . $tokenIndex , n = e [ t ] . start ; if ( void 0 !== n ) return n ; for ( n = 0 ; t > 0 ; ) t -= 1 , n += e [ t ] . value . length ; return n } , this . getCurrentTokenPosition = function ( ) { return { row : this . $row , column : this . getCurrentTokenColumn ( ) } } } ) . call ( r . prototype ) , t . TokenIterator = r } ) , ace . define ( "ace/mode/behaviour/cstyle" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/behaviour" , "ace/token_iterator" , "ace/lib/lang" ] , function ( e , t , n ) { "use strict" ; var f , r = e ( "../../lib/oop" ) , i = e ( "../behaviour" ) . Behaviour , s = e ( "../../token_iterator" ) . TokenIterator , o = e ( "../../lib/lang" ) , u = [ "text" , "paren.rparen" , "punctuation.operator" ] , a = [ "text" , "paren.rparen" , "punctuation.operator" , "comment" ] , l = { } , c = function ( e ) { var t = - 1 ; return e . multiSele Line truncated
Cc : "0000-001F007F-009F" , Cf : "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB" , Co : "E000-F8FF" , Cs : "D800-DFFF" , Cn : "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF" } ) } ) , ace . define ( "ace/mode/text" , [ "require" , "exports" , "module" , "ace/tokenizer" , "ace/mode/text_highlight_rules" , "ace/mode/behaviour/cstyle" , "ace/unicode" , "ace/lib/lang" , "ace/token_iterator" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../tokenizer" ) . Tokenizer , i = e ( "./text_highlight_rules" ) . TextHighlightRules , s = e ( "./behaviour/cstyle" ) . CstyleBehaviour , o = e ( "../unicode" ) , u = e ( "../lib/lang" ) , a = e ( "../token_iterator" ) . TokenIterator , f = e ( "../range" ) . Range , l = function ( ) { this . HighlightRules = i } ; ( function ( ) { this . $behaviour = new s , this . tokenRe = new RegExp ( "^[" + o . packages . L + o . packages . Mn + o . packages . Mc + o . packages . Nd + o . packages . Pc + "\\$_]+" , "g" ) , this . nonTokenRe = new RegExp ( "^(?:[^" + o . packages . L + o . packages . Mn + o . packages . Mc + o . packages . Nd + o . packages . Pc + "\\$_]|\\s])+" , "g" ) , this . getTokenizer = function ( ) { return this . $tokenizer || ( this . $highlightRules = this . $highlightRules || new this . HighlightRules ( this . $highlightRuleConfig ) , this . $tokenizer = new r ( this . $highlightRules . getRules ( ) ) ) , this . $tokenizer } , this . lineCommentStart = "" , this . blockComment = "" , this . toggleCommentLines = function ( e , t , n , r ) { function w ( e ) { for ( var t = n ; t <= r ; t ++ ) e ( i . getLine ( t ) , t ) } var i = t . doc , s = ! 0 , o = ! 0 , a = 1 / 0 , f = t . getTabSize ( ) , l = ! 1 ; if ( this . lineCommentStart ) { if ( Array . isArray ( this . lineCommentStart ) ) var p = this . lineCommentStart . map ( u . escapeRegExp ) . join ( "|" ) , c = this . lineCommentStart [ 0 ] ; else var p = u . escapeRegExp ( this . lineCommentStart ) , c = this . lineCommentStart ; p = new RegExp ( "^(\\s*)(?:" + p + ") ?" ) , l = t . getUseSoftTabs ( ) ; var m = function ( e , t ) { var n = e . match ( p ) ; if ( n ) { var r = n [ 1 ] . length , s = n [ 0 ] . length ; ! b ( e , r , s ) && " " == n [ 0 ] [ s - 1 ] && s -- , i . removeInLine ( t , r , s ) } } , y = c + " " , v = function ( e , t ) { s && ! /\S/ . test ( e ) || ( b ( e , a , a ) ? i . insertInLine ( { row : t , column : a } , y ) : i . insertInLine ( { row : t , column : a } , c ) ) } , g = function ( e , t ) { return p . test ( e ) } , b = function ( e , t , n ) { for ( var r = 0 ; t -- && " " == e . charAt ( t ) ; ) r ++ ; if ( r % f != 0 ) return ! 1 ; for ( var r = 0 ; " " == e . charAt ( n ++ ) ; ) r ++ ; return f > 2 ? r % f != f - 1 : r % f == 0 } } else { if ( ! this . blockComment ) return ! 1 ; var c = this . blockComment . start , h = this . blockComment . end , p = new RegExp ( "^(\\s*)(?:" + u . escapeRegExp ( c ) + ")" ) , d = new RegExp ( "(?:" + u . escapeRegExp ( h ) + ")\\s*$" ) , v = function ( e , t ) { g ( e , t ) || s && ! /\S/ . test ( e ) || ( i . insertInLine ( { row : t , column : e . length } , h ) , i . insertInLine ( { row : t , column : a } , c ) ) } , m = function ( e , t ) { var n ; ( n = e . match ( d ) ) && i . removeInLi Line truncated
this . $modified = ! 0 , this . _signal ( "changeFold" , { data : e , action : "remove" } ) } , this . removeFolds = function ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) t . push ( e [ n ] ) ; t . forEach ( function ( e ) { this . removeFold ( e ) } , this ) , this . $modified = ! 0 } , this . expandFold = function ( e ) { this . removeFold ( e ) , e . subFolds . forEach ( function ( t ) { e . restoreRange ( t ) , this . addFold ( t ) } , this ) , e . collapseChildren > 0 && this . foldAll ( e . start . row + 1 , e . end . row , e . collapseChildren - 1 ) , e . subFolds = [ ] } , this . expandFolds = function ( e ) { e . forEach ( function ( e ) { this . expandFold ( e ) } , this ) } , this . unfold = function ( e , t ) { var n , i ; if ( null == e ? ( n = new r ( 0 , 0 , this . getLength ( ) , 0 ) , t = ! 0 ) : n = "number" == typeof e ? new r ( e , 0 , e , this . getLine ( e ) . length ) : "row" in e ? r . fromPoints ( e , e ) : e , i = this . getFoldsInRangeList ( n ) , t ) this . removeFolds ( i ) ; else for ( var s = i ; s . length ; ) this . expandFolds ( s ) , s = this . getFoldsInRangeList ( n ) ; if ( i . length ) return i } , this . isRowFolded = function ( e , t ) { return ! ! this . getFoldLine ( e , t ) } , this . getRowFoldEnd = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . end . row : e } , this . getRowFoldStart = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . start . row : e } , this . getFoldDisplayLine = function ( e , t , n , r , i ) { null == r && ( r = e . start . row ) , null == i && ( i = 0 ) , null == t && ( t = e . end . row ) , null == n && ( n = this . getLine ( t ) . length ) ; var s = this . doc , o = "" ; return e . walk ( function ( e , t , n , u ) { if ( ! ( t < r ) ) { if ( t == r ) { if ( n < i ) return ; u = Math . max ( i , u ) } o += null != e ? e : s . getLine ( t ) . substring ( u , n ) } } , t , n ) , o } , this . getDisplayLine = function ( e , t , n , r ) { var i = this . getFoldLine ( e ) ; if ( ! i ) { var s ; return s = this . doc . getLine ( e ) , s . substring ( r || 0 , t || s . length ) } return this . getFoldDisplayLine ( i , e , t , n , r ) } , this . $cloneFoldData = function ( ) { var e = [ ] ; return e = this . $foldData . map ( function ( t ) { var n = t . folds . map ( function ( e ) { return e . clone ( ) } ) ; return new i ( e , n ) } ) } , this . toggleFold = function ( e ) { var r , i , t = this . selection , n = t . getRange ( ) ; if ( n . isEmpty ( ) ) { var s = n . start ; if ( r = this . getFoldAt ( s . row , s . column ) ) return void this . expandFold ( r ) ; ( i = this . findMatchingBracket ( s ) ) ? 1 == n . comparePoint ( i ) ? n . end = i : ( n . start = i , n . start . column ++ , n . end . column -- ) : ( i = this . findMatchingBracket ( { row : s . row , column : s . column + 1 } ) ) ? ( 1 == n . comparePoint ( i ) ? n . end = i : n . start = i , n . start . column ++ ) : n = this . getCommentFoldRange ( s . row , s . column ) || n } else { var o = this . getFoldsInRange ( n ) ; if ( e && o . length ) return void this . expandFolds ( o ) ; 1 == o . length && ( r = o [ 0 ] ) } if ( r || ( r = this . getFoldAt ( n . start . row , n . start . column ) ) , r && r . range . toString ( ) == n . toString ( ) ) return void this . expandFold ( r ) ; var u = "..." ; if ( ! n . isMultiLine ( ) ) { if ( u = this . getTextRange ( n ) , u . length < 4 ) return ; u = u . trim ( ) . substring ( 0 , 2 ) + ".." } this . addFold ( u , n ) } , this . getCommentFoldRange = function ( e , t , n ) { var i = new o ( this , e , t ) , s = i . getCurrentToken ( ) ; if ( s && /^comment|string/ . test ( s . type ) ) { var u = new r , a = new RegExp ( s . type . replace ( /\..*/ , "\\." ) ) ; if ( 1 != n ) { do s = i . stepBackward ( ) ; while ( s && a . test ( s . type ) ) ; i . stepForward ( ) } if ( u . start . row = i . getCurrentTokenRow ( ) , u . start . column = i . getCurrentTokenColumn ( ) + 2 , i = new o ( this , e , t ) , n != - 1 ) { do s = i . stepForward ( ) ; while ( s && a . test ( s . type ) ) ; s = i . stepBackward ( ) } else s = i . getCurrentToken ( ) ; return u . end . row = i . getCurrentTokenRow ( ) , u . end . column = i . getCurrentTokenColumn ( ) + s . value . length - 2 , u } } , this . foldAll = function ( e , t , n ) { void 0 == n && ( n = 1e5 ) ; var r = this . foldWidgets ; if ( r ) { t = t || this . getLength ( ) , e = e || 0 ; for ( var i = e ; i < t ; i ++ ) if ( null == r [ i ] && ( r [ i ] = this . getFoldWidget ( i ) ) , "start" == r [ i ] ) { var s = this . getFoldWidgetRange ( i ) ; if ( s && s . isMultiLine ( ) && s . end . row <= t && s . start . row >= e ) { i = s . end . row ; try { var o = this . addFold ( "..." , s ) ; o && ( o . collapseChildren = n ) } catch ( u ) { } } } } } , this . $foldStyles = { manual : 1 , markbegin : 1 , markbeginend : 1 } , this . $foldStyle = "markbegin" , this . setFoldStyle = function ( e ) { if ( ! this . $foldStyles [ e ] ) throw new Error ( "invalid fold style: " + e + "[" + Object . keys ( this . $foldStyles ) . join ( ", " ) + "]" ) ; if ( this . $foldStyle != e ) { this . $foldStyle = e , "manual" == e && this . unfold ( ) ; var t = this . $foldMode ; this . $setFolding ( null ) , this . $setFolding ( t ) } } , this . $setFolding = function ( e ) { if ( this . $foldMode != e ) return this . $foldMode = e , this . off ( "change" , this . $updateFoldWidgets ) , this . off ( "tokenizerUpdate" , this . $tokenizerUpdateFoldWidgets ) , this . _signal ( "changeAnnotation" ) , e && "manual" != this . $foldStyle ? ( this . foldWidgets = [ ] , this . getFoldWidget = e . getFoldWidget . bind ( e , this , this . $foldStyle ) , this . getFoldWidgetRange = e . getFoldWidgetRange . bind ( e , this , this . $foldStyle ) , this . $updateFoldWidgets = this . updateFoldWidgets . bind ( this ) , this . $tokenizerUpdateFoldWidgets = this . tokenizerUpdateFoldWidgets . bind ( this ) , this . on ( "change" , this . $updateFoldWidgets ) , this . on ( "tokenizerUpdate" , this . $tokenizerUpdateFoldWidgets ) , void 0 ) : void ( this . foldWidgets = null ) } , this . getParentFoldRangeData = function ( e , t ) { var n = this . foldWidgets ; if ( ! n || t && n [ e ] ) return { } ; for ( var i , r = e - 1 ; r >= 0 ; ) { var s = n [ r ] ; if ( null == s && ( s = n [ r ] = this . getFoldWidget ( r ) ) , "start" == s ) { var o = this . getFoldWidgetRange ( r ) ; if ( i || ( i = o ) , o && o . end . row >= e ) break } r -- } return { range : r !== - 1 && o , firstRange : i } } , this . onFoldWidgetClick = function ( e , t ) { t = t . domEvent ; var n = { children : t . shiftKey , all : t . ctrlKey || t . metaKey , siblings : t . altKey } , r = this . $toggleFoldWidget ( e , n ) ; if ( ! r ) { var i = t . target || t . srcElement ; i && /ace_fold-widget/ . test ( i . className ) && ( i . className += " ace_invalid" ) } } , this . $toggleFoldWidget = function ( e , t ) { if ( this . g Line truncated
this . $screenRowCache . push ( r ) ) } var d = "" ; h && u >= p ? ( d = this . getFoldDisplayLine ( h , e , t ) , i = h . start . row ) : ( d = this . getLine ( e ) . substring ( 0 , t ) , i = e ) ; var v = 0 ; if ( this . $useWrapMode ) { var m = this . $wrapData [ i ] ; if ( m ) { for ( var g = 0 ; d . length >= m [ g ] ; ) r ++ , g ++ ; d = d . substring ( m [ g - 1 ] || 0 , d . length ) , v = g > 0 ? m . indent : 0 } } return { row : r , column : v + this . $getStringScreenWidth ( d ) [ 0 ] } } , this . documentToScreenColumn = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . column } , this . documentToScreenRow = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . row } , this . getScreenLength = function ( ) { var e = 0 , t = null ; if ( this . $useWrapMode ) for ( var i = this . $wrapData . length , s = 0 , r = 0 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ; s < i ; ) { var u = this . $wrapData [ s ] ; e += u ? u . length + 1 : 1 , s ++ , s > o && ( s = t . end . row + 1 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ) } else { e = this . getLength ( ) ; for ( var n = this . $foldData , r = 0 ; r < n . length ; r ++ ) t = n [ r ] , e -= t . end . row - t . start . row } return this . lineWidgets && ( e += this . $getWidgetScreenLength ( ) ) , e } , this . $setFontMetrics = function ( e ) { this . $enableVarChar && ( this . $getStringScreenWidth = function ( t , n , r ) { if ( 0 === n ) return [ 0 , 0 ] ; n || ( n = 1 / 0 ) , r = r || 0 ; var i , s ; for ( s = 0 ; s < t . length && ( i = t . charAt ( s ) , r += "\t" === i ? this . getScreenTabSize ( r ) : e . getCharacterWidth ( i ) , ! ( r > n ) ) ; s ++ ) ; return [ r , s ] } ) } , this . destroy = function ( ) { this . bgTokenizer && ( this . bgTokenizer . setDocument ( null ) , this . bgTokenizer = null ) , this . $stopWorker ( ) } } ) . call ( p . prototype ) , e ( "./edit_session/folding" ) . Folding . call ( p . prototype ) , e ( "./edit_session/bracket_match" ) . BracketMatch . call ( p . prototype ) , s . defineOptions ( p . prototype , "session" , { wrap : { set : function ( e ) { if ( e && "off" != e ? "free" == e ? e = ! 0 : "printMargin" == e ? e = - 1 : "string" == typeof e && ( e = parseInt ( e , 10 ) || ! 1 ) : e = ! 1 , this . $wrap != e ) if ( this . $wrap = e , e ) { var t = "number" == typeof e ? e : null ; this . setWrapLimitRange ( t , t ) , this . setUseWrapMode ( ! 0 ) } else this . setUseWrapMode ( ! 1 ) } , get : function ( ) { return this . getUseWrapMode ( ) ? this . $wrap == - 1 ? "printMargin" : this . getWrapLimitRange ( ) . min ? this . $wrap : "free" : "off" } , handlesSet : ! 0 } , wrapMethod : { set : function ( e ) { e = "auto" == e ? "text" != this . $mode . type : "text" != e , e != this . $wrapAsCode && ( this . $wrapAsCode = e , this . $useWrapMode && ( this . $modified = ! 0 , this . $resetRowCache ( 0 ) , this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) ) ) } , initialValue : "auto" } , indentedSoftWrap : { initialValue : ! 0 } , firstLineNumber : { set : function ( ) { this . _signal ( "changeBreakpoint" ) } , initialValue : 1 } , useWorker : { set : function ( e ) { this . $useWorker = e , this . $stopWorker ( ) , e && this . $startWorker ( ) } , initialValue : ! 0 } , useSoftTabs : { initialValue : ! 0 } , tabSize : { set : function ( e ) { isNaN ( e ) || this . $tabSize === e || ( this . $modified = ! 0 , this . $rowLengthCache = [ ] , this . $tabSize = e , this . _signal ( "changeTabSize" ) ) } , initialValue : 4 , handlesSet : ! 0 } , overwrite : { set : function ( e ) { this . _signal ( "changeOverwrite" ) } , initialValue : ! 1 } , newLineMode : { set : function ( e ) { this . doc . setNewLineMode ( e ) } , get : function ( ) { return this . doc . getNewLineMode ( ) } , handlesSet : ! 0 } , mode : { set : function ( e ) { this . setMode ( e ) } , get : function ( ) { return this . $modeId } } } ) , t . EditSession = p } ) , ace . define ( "ace/search" , [ "require" , "exports" , "module" , "ace/lib/lang" , "ace/lib/oop" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/lang" ) , i = e ( "./lib/oop" ) , s = e ( "./range" ) . Range , o = function ( ) { this . $options = { } } ; ( function ( ) { this . set = function ( e ) { return i . mixin ( this . $options , e ) , this } , this . getOptions = function ( ) { return r . copyObject ( this . $options ) } , this . setOptions = function ( e ) { this . $options = e } , this . find = function ( e ) { var t = this . $options , n = this . $matchIterator ( e , t ) ; if ( ! n ) return ! 1 ; var r = null ; return n . forEach ( function ( e , n , i ) { if ( e . start ) r = e ; else { var o = e . offset + ( i || 0 ) ; if ( r = new s ( n , o , n , o + e . length ) , ! e . length && t . start && t . start . start && 0 != t . skipCurrent && r . isEqual ( t . start ) ) return r = null , ! 1 } return ! 0 } ) , r } , this . findAll = function ( e ) { var t = this . $options ; if ( ! t . needle ) return [ ] ; this . $assembleRegExp ( t ) ; var n = t . range , i = n ? e . getLines ( n . start . row , n . end . row ) : e . doc . getAllLines ( ) , o = [ ] , u = t . re ; if ( t . $isMultiLine ) { var l , a = u . length , f = i . length - a ; e : for ( var c = u . offset || 0 ; c <= f ; c ++ ) { for ( var h = 0 ; h < a ; h ++ ) if ( i [ c + h ] . search ( u [ h ] ) == - 1 ) continue e ; var p = i [ c ] , d = i [ c + a - 1 ] , v = p . length - p . match ( u [ 0 ] ) [ 0 ] . length , m = d . match ( u [ a - 1 ] ) [ 0 ] . length ; l && l . end . row === c && l . end . column > v || ( o . push ( l = new s ( c , v , c + a - 1 , m ) ) , a > 2 && ( c = c + a - 2 ) ) } } else for ( var g = 0 ; g < i . length ; g ++ ) for ( var y = r . getMatchOffsets ( i [ g ] , u ) , h = 0 ; h < y . length ; h ++ ) { var b = y [ h ] ; o . push ( new s ( g , b . offset , g , b . offset + b . length ) ) } if ( n ) { for ( var w = n . start . column , E = n . start . column , g = 0 , h = o . length - 1 ; g < h && o [ g ] . start . column < w && o [ g ] . start . row == n . start . row ; ) g ++ ; for ( ; g < h && o [ h ] . end . column > E && o [ h ] . end . row == n . end . row ; ) h -- ; for ( o = o . slice ( g , h + 1 ) , g = 0 , h = o . length ; g < h ; g ++ ) o [ g ] . start . row += n . start . row , o [ g ] . end . row += n . start . row } return o } , this . replace = function ( e , t ) { var n = this . $options , r = this . $assembleRegExp ( n ) ; if ( n . $isMultiLine ) return t ; if ( r ) { var i = r . exec ( e ) ; if ( ! i || i [ 0 ] . length != e . length ) return null ; if ( t = e . replace ( r , t ) , n . preserveCase ) { t = t . split ( "" ) ; for ( var s = Math . min ( e . length , e . length ) ; s -- ; ) { var o = e [ s ] ; o && o . toLowerCase ( ) != o ? t [ s ] = t [ s ] . toUpperCase ( ) : t [ s ] = t [ s ] . toLowerCase ( ) } t = t . join ( "" ) } return t } } , this . $matchIterator = function ( e , t ) { var n = this . $assembleRegExp ( t ) ; if ( ! n ) return ! 1 ; var i ; if ( t . $isMultiLine ) var o = n . length , u = function ( t , r , u ) Line truncated
this . session . off ( "changeBackMarker" , this . $onChangeBackMarker ) , this . session . off ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . session . off ( "changeAnnotation" , this . $onChangeAnnotation ) , this . session . off ( "changeOverwrite" , this . $onCursorChange ) , this . session . off ( "changeScrollTop" , this . $onScrollTopChange ) , this . session . off ( "changeScrollLeft" , this . $onScrollLeftChange ) ; var n = this . session . getSelection ( ) ; n . off ( "changeCursor" , this . $onCursorChange ) , n . off ( "changeSelection" , this . $onSelectionChange ) } this . session = e , e ? ( this . $onDocumentChange = this . onDocumentChange . bind ( this ) , e . on ( "change" , this . $onDocumentChange ) , this . renderer . setSession ( e ) , this . $onChangeMode = this . onChangeMode . bind ( this ) , e . on ( "changeMode" , this . $onChangeMode ) , this . $onTokenizerUpdate = this . onTokenizerUpdate . bind ( this ) , e . on ( "tokenizerUpdate" , this . $onTokenizerUpdate ) , this . $onChangeTabSize = this . renderer . onChangeTabSize . bind ( this . renderer ) , e . on ( "changeTabSize" , this . $onChangeTabSize ) , this . $onChangeWrapLimit = this . onChangeWrapLimit . bind ( this ) , e . on ( "changeWrapLimit" , this . $onChangeWrapLimit ) , this . $onChangeWrapMode = this . onChangeWrapMode . bind ( this ) , e . on ( "changeWrapMode" , this . $onChangeWrapMode ) , this . $onChangeFold = this . onChangeFold . bind ( this ) , e . on ( "changeFold" , this . $onChangeFold ) , this . $onChangeFrontMarker = this . onChangeFrontMarker . bind ( this ) , this . session . on ( "changeFrontMarker" , this . $onChangeFrontMarker ) , this . $onChangeBackMarker = this . onChangeBackMarker . bind ( this ) , this . session . on ( "changeBackMarker" , this . $onChangeBackMarker ) , this . $onChangeBreakpoint = this . onChangeBreakpoint . bind ( this ) , this . session . on ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . $onChangeAnnotation = this . onChangeAnnotation . bind ( this ) , this . session . on ( "changeAnnotation" , this . $onChangeAnnotation ) , this . $onCursorChange = this . onCursorChange . bind ( this ) , this . session . on ( "changeOverwrite" , this . $onCursorChange ) , this . $onScrollTopChange = this . onScrollTopChange . bind ( this ) , this . session . on ( "changeScrollTop" , this . $onScrollTopChange ) , this . $onScrollLeftChange = this . onScrollLeftChange . bind ( this ) , this . session . on ( "changeScrollLeft" , this . $onScrollLeftChange ) , this . selection = e . getSelection ( ) , this . selection . on ( "changeCursor" , this . $onCursorChange ) , this . $onSelectionChange = this . onSelectionChange . bind ( this ) , this . selection . on ( "changeSelection" , this . $onSelectionChange ) , this . onChangeMode ( ) , this . $blockScrolling += 1 , this . onCursorChange ( ) , this . $blockScrolling -= 1 , this . onScrollTopChange ( ) , this . onScrollLeftChange ( ) , this . onSelectionChange ( ) , this . onChangeFrontMarker ( ) , this . onChangeBackMarker ( ) , this . onChangeBreakpoint ( ) , this . onChangeAnnotation ( ) , this . session . getUseWrapMode ( ) && this . renderer . adjustWrapLimit ( ) , this . renderer . updateFull ( ) ) : ( this . selection = null , this . renderer . setSession ( e ) ) , this . _signal ( "changeSession" , { session : e , oldSession : t } ) , this . curOp = null , t && t . _signal ( "changeEditor" , { oldEditor : this } ) , e && e . _signal ( "changeEditor" , { editor : this } ) } } , this . getSession = function ( ) { return this . session } , this . setValue = function ( e , t ) { return this . session . doc . setValue ( e ) , t ? 1 == t ? this . navigateFileEnd ( ) : t == - 1 && this . navigateFileStart ( ) : this . selectAll ( ) , e } , this . getValue = function ( ) { return this . session . getValue ( ) } , this . getSelection = function ( ) { return this . selection } , this . resize = function ( e ) { this . renderer . onResize ( e ) } , this . setTheme = function ( e , t ) { this . renderer . setTheme ( e , t ) } , this . getTheme = function ( ) { return this . renderer . getTheme ( ) } , this . setStyle = function ( e ) { this . renderer . setStyle ( e ) } , this . unsetStyle = function ( e ) { this . renderer . unsetStyle ( e ) } , this . getFontSize = function ( ) { return this . getOption ( "fontSize" ) || i . computedStyle ( this . container , "fontSize" ) } , this . setFontSize = function ( e ) { this . setOption ( "fontSize" , e ) } , this . $highlightBrackets = function ( ) { if ( this . session . $bracketHighlight && ( this . session . removeMarker ( this . session . $bracketHighlight ) , this . session . $bracketHighlight = null ) , ! this . $highlightPending ) { var e = this ; this . $highlightPending = ! 0 , setTimeout ( function ( ) { e . $highlightPending = ! 1 ; var t = e . session ; if ( t && t . bgTokenizer ) { var n = t . findMatchingBracket ( e . getCursorPosition ( ) ) ; if ( n ) var r = new p ( n . row , n . column , n . row , n . column + 1 ) ; else if ( t . $mode . getMatching ) var r = t . $mode . getMatching ( e . session ) ; r && ( t . $bracketHighlight = t . addMarker ( r , "ace_bracket" , "text" ) ) } } , 50 ) } } , this . $highlightTags = function ( ) { if ( ! this . $highlightTagPending ) { var e = this ; this . $highlightTagPending = ! 0 , setTimeout ( function ( ) { e . $highlightTagPending = ! 1 ; var t = e . session ; if ( t && t . bgTokenizer ) { var n = e . getCursorPosition ( ) , r = new y ( e . session , n . row , n . column ) , i = r . getCurrentToken ( ) ; if ( ! i || ! /\b(?:tag-open|tag-name)/ . test ( i . type ) ) return t . removeMarker ( t . $tagHighlight ) , void ( t . $tagHighlight = null ) ; if ( i . type . indexOf ( "tag-open" ) == - 1 || ( i = r . stepForward ( ) ) ) { var s = i . value , o = 0 , u = r . stepBackward ( ) ; if ( "<" == u . value ) { do u = i , i = r . stepForward ( ) , i && i . value === s && i . type . indexOf ( "tag-name" ) !== - 1 && ( "<" === u . value ? o ++ : "</" === u . value && o -- ) ; while ( i && o >= 0 ) } else { do i = u , u = r . stepBackward ( ) , i && i . value === s && i . type . indexOf ( "tag-name" ) !== - 1 && ( "<" === u . value ? o ++ : "</" === u . value && o -- ) ; while ( u && o <= 0 ) ; r . stepForward ( ) } if ( ! i ) return t . removeMarker ( t . $tagHighlight ) , void ( t . $tagHighlight = null ) ; var a = r . getCurre Line truncated
this . dirtyCounter ++ } , this . undo = function ( e ) { var t = this . $undoStack . pop ( ) , n = null ; return t && ( n = this . $doc . undoChanges ( t , e ) , this . $redoStack . push ( t ) , this . dirtyCounter -- ) , n } , this . redo = function ( e ) { var t = this . $redoStack . pop ( ) , n = null ; return t && ( n = this . $doc . redoChanges ( this . $deserializeDeltas ( t ) , e ) , this . $undoStack . push ( t ) , this . dirtyCounter ++ ) , n } , this . reset = function ( ) { this . $undoStack = [ ] , this . $redoStack = [ ] , this . dirtyCounter = 0 } , this . hasUndo = function ( ) { return this . $undoStack . length > 0 } , this . hasRedo = function ( ) { return this . $redoStack . length > 0 } , this . markClean = function ( ) { this . dirtyCounter = 0 } , this . isClean = function ( ) { return 0 === this . dirtyCounter } , this . $serializeDeltas = function ( t ) { return n ( t , e ) } , this . $deserializeDeltas = function ( e ) { return n ( e , t ) } } ) . call ( r . prototype ) , t . UndoManager = r } ) , ace . define ( "ace/layer/gutter" , [ "require" , "exports" , "module" , "ace/lib/dom" , "ace/lib/oop" , "ace/lib/lang" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/dom" ) , i = e ( "../lib/oop" ) , s = e ( "../lib/lang" ) , o = e ( "../lib/event_emitter" ) . EventEmitter , u = function ( e ) { this . element = r . createElement ( "div" ) , this . element . className = "ace_layer ace_gutter-layer" , e . appendChild ( this . element ) , this . setShowFoldWidgets ( this . $showFoldWidgets ) , this . gutterWidth = 0 , this . $annotations = [ ] , this . $updateAnnotations = this . $updateAnnotations . bind ( this ) , this . $cells = [ ] } ; ( function ( ) { i . implement ( this , o ) , this . setSession = function ( e ) { this . session && this . session . removeEventListener ( "change" , this . $updateAnnotations ) , this . session = e , e && e . on ( "change" , this . $updateAnnotations ) } , this . addGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.addGutterDecoration" ) , this . session . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.removeGutterDecoration" ) , this . session . removeGutterDecoration ( e , t ) } , this . setAnnotations = function ( e ) { this . $annotations = [ ] ; for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = n . row , i = this . $annotations [ r ] ; i || ( i = this . $annotations [ r ] = { text : [ ] } ) ; var o = n . text ; o = o ? s . escapeHTML ( o ) : n . html || "" , i . text . indexOf ( o ) === - 1 && i . text . push ( o ) ; var u = n . type ; "error" == u ? i . className = " ace_error" : "warning" == u && " ace_error" != i . className ? i . className = " ace_warning" : "info" == u && ! i . className && ( i . className = " ace_info" ) } } , this . $updateAnnotations = function ( e ) { if ( this . $annotations . length ) { var t = e . start . row , n = e . end . row - t ; if ( 0 !== n ) if ( "remove" == e . action ) this . $annotations . splice ( t , n + 1 , null ) ; else { var r = new Array ( n + 1 ) ; r . unshift ( t , 1 ) , this . $annotations . splice . apply ( this . $annotations , r ) } } } , this . update = function ( e ) { for ( var t = this . session , n = e . firstRow , i = Math . min ( e . lastRow + e . gutterOffset , t . getLength ( ) - 1 ) , s = t . getNextFoldLine ( n ) , o = s ? s . start . row : 1 / 0 , u = this . $showFoldWidgets && t . foldWidgets , a = t . $breakpoints , f = t . $decorations , l = t . $firstLineNumber , c = 0 , h = t . gutterRenderer || this . $renderer , p = null , d = - 1 , v = n ; ; ) { if ( v > o && ( v = s . end . row + 1 , s = t . getNextFoldLine ( v , s ) , o = s ? s . start . row : 1 / 0 ) , v > i ) { for ( ; this . $cells . length > d + 1 ; ) p = this . $cells . pop ( ) , this . element . removeChild ( p . element ) ; break } p = this . $cells [ ++ d ] , p || ( p = { element : null , textNode : null , foldWidget : null } , p . element = r . createElement ( "div" ) , p . textNode = document . createTextNode ( "" ) , p . element . appendChild ( p . textNode ) , this . element . appendChild ( p . element ) , this . $cells [ d ] = p ) ; var m = "ace_gutter-cell " ; a [ v ] && ( m += a [ v ] ) , f [ v ] && ( m += f [ v ] ) , this . $annotations [ v ] && ( m += this . $annotations [ v ] . className ) , p . element . className != m && ( p . element . className = m ) ; var g = t . getRowLength ( v ) * e . lineHeight + "px" ; if ( g != p . element . style . height && ( p . element . style . height = g ) , u ) { var y = u [ v ] ; null == y && ( y = u [ v ] = t . getFoldWidget ( v ) ) } if ( y ) { p . foldWidget || ( p . foldWidget = r . createElement ( "span" ) , p . element . appendChild ( p . foldWidget ) ) ; var m = "ace_fold-widget ace_" + y ; m += "start" == y && v == o && v < s . end . row ? " ace_closed" : " ace_open" , p . foldWidget . className != m && ( p . foldWidget . className = m ) ; var g = e . lineHeight + "px" ; p . foldWidget . style . height != g && ( p . foldWidget . style . height = g ) } else p . foldWidget && ( p . element . removeChild ( p . foldWidget ) , p . foldWidget = null ) ; var b = c = h ? h . getText ( t , v ) : v + l ; b != p . textNode . data && ( p . textNode . data = b ) , v ++ } this . element . style . height = e . minHeight + "px" , ( this . $fixedWidth || t . $useWrapMode ) && ( c = t . getLength ( ) + l ) ; var w = h ? h . getWidth ( t , c , e ) : c . toString ( ) . length * e . characterWidth , E = this . $padding || this . $computePadding ( ) ; w += E . left + E . right , w !== this . gutterWidth && ! isNaN ( w ) && ( this . gutterWidth = w , this . element . style . width = Math . ceil ( this . gutterWidth ) + "px" , this . _emit ( "changeGutterWidth" , w ) ) } , this . $fixedWidth = ! 1 , this . $showLineNumbers = ! 0 , this . $renderer = "" , this . setShowLineNumbers = function ( e ) { this . $renderer = ! e && { getWidth : function ( ) { return "" } , getText : function ( ) { return "" } } } , this . getShowLineNumbers = function ( ) { return this . $showLineNumbers } , this . $showFoldWidgets = ! 0 , this . setShowFoldWidgets = function ( e ) { e ? r . addCssClass ( this . element , "ace_folding-enabled" ) : r . removeCssClass ( this . element , "ace_folding-enabled" ) , this . $showFoldWidgets = e , this . $padding = null } , this . getShowFoldWidgets = function ( ) { return this . $showFoldWidgets } , this . $computePadding = function ( ) { if ( ! this . element . firstChild ) return { left : 0 , right : 0 } ; var e = r Line truncated
1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || ( this . textContent = a ) } ) } , null , a , arguments . length ) } , append : function ( ) { return Ia ( this , arguments , function ( a ) { if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ) { var b = Da ( this , a ) ; b . appendChild ( a ) } } ) } , prepend : function ( ) { return Ia ( this , arguments , function ( a ) { if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ) { var b = Da ( this , a ) ; b . insertBefore ( a , b . firstChild ) } } ) } , before : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this ) } ) } , after : function ( ) { return Ia ( this , arguments , function ( a ) { this . parentNode && this . parentNode . insertBefore ( a , this . nextSibling ) } ) } , empty : function ( ) { for ( var a , b = 0 ; null != ( a = this [ b ] ) ; b ++ ) 1 === a . nodeType && ( r . cleanData ( ma ( a , ! 1 ) ) , a . textContent = "" ) ; return this } , clone : function ( a , b ) { return a = null != a && a , b = null == b ? a : b , this . map ( function ( ) { return r . clone ( this , a , b ) } ) } , html : function ( a ) { return S ( this , function ( a ) { var b = this [ 0 ] || { } , c = 0 , d = this . length ; if ( void 0 === a && 1 === b . nodeType ) return b . innerHTML ; if ( "string" == typeof a && ! za . test ( a ) && ! la [ ( ja . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { a = r . htmlPrefilter ( a ) ; try { for ( ; c < d ; c ++ ) b = this [ c ] || { } , 1 === b . nodeType && ( r . cleanData ( ma ( b , ! 1 ) ) , b . innerHTML = a ) ; b = 0 } catch ( e ) { } } b && this . empty ( ) . append ( a ) } , null , a , arguments . length ) } , replaceWith : function ( ) { var a = [ ] ; return Ia ( this , arguments , function ( b ) { var c = this . parentNode ; r . inArray ( this , a ) < 0 && ( r . cleanData ( ma ( this ) ) , c && c . replaceChild ( b , this ) ) } , a ) } } ) , r . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , b ) { r . fn [ a ] = function ( a ) { for ( var c , d = [ ] , e = r ( a ) , f = e . length - 1 , g = 0 ; g <= f ; g ++ ) c = g === f ? this : this . clone ( ! 0 ) , r ( e [ g ] ) [ b ] ( c ) , h . apply ( d , c . get ( ) ) ; return this . pushStack ( d ) } } ) ; var Ka = /^margin/ , La = new RegExp ( "^(" + _ + ")(?!px)[a-z%]+$" , "i" ) , Ma = function ( b ) { var c = b . ownerDocument . defaultView ; return c && c . opener || ( c = a ) , c . getComputedStyle ( b ) } ; ! function ( ) { function b ( ) { if ( i ) { i . style . cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%" , i . innerHTML = "" , qa . appendChild ( h ) ; var b = a . getComputedStyle ( i ) ; c = "1%" !== b . top , g = "2px" === b . marginLeft , e = "4px" === b . width , i . style . marginRight = "50%" , f = "4px" === b . marginRight , qa . removeChild ( h ) , i = null } } var c , e , f , g , h = d . createElement ( "div" ) , i = d . createElement ( "div" ) ; i . style && ( i . style . backgroundClip = "content-box" , i . cloneNode ( ! 0 ) . style . backgroundClip = "" , o . clearCloneStyle = "content-box" === i . style . backgroundClip , h . style . cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute" , h . appendChild ( i ) , r . extend ( o , { pixelPosition : function ( ) { return b ( ) , c } , boxSizingReliable : function ( ) { return b ( ) , e } , pixelMarginRight : function ( ) { return b ( ) , f } , reliableMarginLeft : function ( ) { return b ( ) , g } } ) ) } ( ) ; var Pa = /^(none|table(?!-c[ea]).+)/ , Qa = { position : "absolute" , visibility : "hidden" , display : "block" } , Ra = { letterSpacing : "0" , fontWeight : "400" } , Sa = [ "Webkit" , "Moz" , "ms" ] , Ta = d . createElement ( "div" ) . style ; r . extend ( { cssHooks : { opacity : { get : function ( a , b ) { if ( b ) { var c = Na ( a , "opacity" ) ; return "" === c ? "1" : c } } } } , cssNumber : { animationIterationCount : ! 0 , columnCount : ! 0 , fillOpacity : ! 0 , flexGrow : ! 0 , flexShrink : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , order : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { float : "cssFloat" } , style : function ( a , b , c , d ) { if ( a && 3 !== a . nodeType && 8 !== a . nodeType && a . style ) { var e , f , g , h = r . camelCase ( b ) , i = a . style ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , void 0 === c ? g && "get" in g && void 0 !== ( e = g . get ( a , ! 1 , d ) ) ? e : i [ b ] : ( f = typeof c , "string" === f && ( e = aa . exec ( c ) ) && e [ 1 ] && ( c = ea ( a , b , e ) , f = "number" ) , void ( null != c && c === c && ( "number" === f && ( c += e && e [ 3 ] || ( r . cssNumber [ h ] ? "" : "px" ) ) , o . clearCloneStyle || "" !== c || 0 !== b . indexOf ( "background" ) || ( i [ b ] = "inherit" ) , g && "set" in g && void 0 === ( c = g . set ( a , c , d ) ) || ( i [ b ] = c ) ) ) ) } } , css : function ( a , b , c , d ) { var e , f , g , h = r . camelCase ( b ) ; return b = r . cssProps [ h ] || ( r . cssProps [ h ] = Ua ( h ) || h ) , g = r . cssHooks [ b ] || r . cssHooks [ h ] , g && "get" in g && ( e = g . get ( a , ! 0 , c ) ) , void 0 === e && ( e = Na ( a , b , d ) ) , "normal" === e && b in Ra && ( e = Ra [ b ] ) , "" === c || c ? ( f = parseFloat ( e ) , c === ! 0 || isFinite ( f ) ? f || 0 : e ) : e } } ) , r . each ( [ "height" , "width" ] , function ( a , b ) { r . cssHooks [ b ] = { get : function ( a , c , d ) { if ( c ) return ! Pa . test ( r . css ( a , "display" ) ) || a . getClientRects ( ) . length && a . getBoundingClientRect ( ) . width ? Xa ( a , b , d ) : da ( a , Qa , function ( ) { return Xa ( a , b , d ) } ) } , set : function ( a , c , d ) { var e , f = d && Ma ( a ) , g = d && Wa ( a , b , d , "border-box" === r . css ( a , "boxSizing" , ! 1 , f ) , f ) ; return g && ( e = aa . exec ( c ) ) && "px" !== ( e [ 3 ] || "px" ) && ( a . style [ b ] = c , c = r . css ( a , b ) ) , Va ( a , c , g ) } } } ) , r . cssHooks . marginLeft = Oa ( o . reliableMarginLeft , function ( a , b ) { if ( b ) return ( parseFloat ( Na ( a , "marginLeft" ) ) || a . getBoundingClientRect ( ) . left - da ( a , { marginLeft : 0 } , function ( ) { return a . getBoundingClientRect ( ) . left } ) ) + "px" } ) , r . each ( { margin : "" , padding : "" , border : "Width" } , function ( a , b ) { r . cssHooks [ a + b ] = { expand : function ( c ) { for ( var d = 0 , e = { } , f = "string" == typeof c ? c . split ( " " ) : [ c ] ; d < 4 ; d ++ ) e [ a + ba [ d ] + b ] = f [ d ] || f [ d - 2 ] || f [ 0 ] ; return e } } , Ka . test ( a ) || ( r . cssHooks [ a + b ] . set = Va ) } ) , r . fn . extend ( { css : function ( a , b ) { return S ( this , function ( a , b , c ) { var d , e , f = { } , g = 0 ; if ( Line truncated
} function d ( e ) { for ( var t = { } , n = 0 ; n < e . length ; n ++ ) e [ n ] && u ( t , e [ n ] ) ; return t } function p ( ) { } function v ( e ) { return e . reduce ( function ( e , t ) { return e . concat ( t . staticKeys || [ ] ) } , [ ] ) . join ( "," ) } function h ( e , t ) { return e == t || ! ( ! l ( e ) || ! l ( t ) ) && JSON . stringify ( e ) === JSON . stringify ( t ) } function m ( e , t ) { for ( var n = 0 ; n < e . length ; n ++ ) if ( h ( e [ n ] , t ) ) return n ; return - 1 } function g ( e ) { var t = ( e + "" ) . charCodeAt ( 0 ) ; return 36 === t || 95 === t } function y ( e , t , n , r ) { Object . defineProperty ( e , t , { value : n , enumerable : ! ! r , writable : ! 0 , configurable : ! 0 } ) } function _ ( e ) { if ( ! Sr . test ( e ) ) { var t = e . split ( "." ) ; return function ( e ) { for ( var n = 0 ; n < t . length ; n ++ ) { if ( ! e ) return ; e = e [ t [ n ] ] } return e } } } function b ( e ) { return /native code/ . test ( e . toString ( ) ) } function $ ( e ) { Hr . target && Ur . push ( Hr . target ) , Hr . target = e } function w ( ) { Hr . target = Ur . pop ( ) } function C ( ) { zr . length = 0 , Vr = { } , Jr = qr = ! 1 } function x ( ) { for ( qr = ! 0 , zr . sort ( function ( e , t ) { return e . id - t . id } ) , Kr = 0 ; Kr < zr . length ; Kr ++ ) { var e = zr [ Kr ] , t = e . id ; Vr [ t ] = null , e . run ( ) } Ir && Tr . devtools && Ir . emit ( "flush" ) , C ( ) } function k ( e ) { var t = e . id ; if ( null == Vr [ t ] ) { if ( Vr [ t ] = ! 0 , qr ) { for ( var n = zr . length - 1 ; n >= 0 && zr [ n ] . id > e . id ; ) n -- ; zr . splice ( Math . max ( n , Kr ) + 1 , 0 , e ) } else zr . push ( e ) ; Jr || ( Jr = ! 0 , Br ( x ) ) } } function A ( e , t ) { var n , r ; t || ( t = Gr , t . clear ( ) ) ; var i = Array . isArray ( e ) , a = l ( e ) ; if ( ( i || a ) && Object . isExtensible ( e ) ) { if ( e . _ _ob _ _ ) { var o = e . _ _ob _ _ . dep . id ; if ( t . has ( o ) ) return ; t . add ( o ) } if ( i ) for ( n = e . length ; n -- ; ) A ( e [ n ] , t ) ; else if ( a ) for ( r = Object . keys ( e ) , n = r . length ; n -- ; ) A ( e [ r [ n ] ] , t ) } } function O ( e , t ) { e . _ _proto _ _ = t } function T ( e , t , n ) { for ( var r = 0 , i = n . length ; r < i ; r ++ ) { var a = n [ r ] ; y ( e , a , t [ a ] ) } } function S ( e ) { if ( l ( e ) ) { var t ; return i ( e , "__ob__" ) && e . _ _ob _ _ instanceof ti ? t = e . _ _ob _ _ : ei . shouldConvert && ! Tr . _isServer && ( Array . isArray ( e ) || f ( e ) ) && Object . isExtensible ( e ) && ! e . _isVue && ( t = new ti ( e ) ) , t } } function E ( e , t , n , r ) { var i = new Hr , a = Object . getOwnPropertyDescriptor ( e , t ) ; if ( ! a || a . configurable !== ! 1 ) { var o = a && a . get , s = a && a . set , c = S ( n ) ; Object . defineProperty ( e , t , { enumerable : ! 0 , configurable : ! 0 , get : function ( ) { var t = o ? o . call ( e ) : n ; return Hr . target && ( i . depend ( ) , c && c . dep . depend ( ) , Array . isArray ( t ) && N ( t ) ) , t } , set : function ( t ) { var r = o ? o . call ( e ) : n ; t !== r && ( s ? s . call ( e , t ) : n = t , c = S ( t ) , i . notify ( ) ) } } ) } } function j ( e , t , n ) { if ( Array . isArray ( e ) ) return e . splice ( t , 1 , n ) , n ; if ( i ( e , t ) ) return void ( e [ t ] = n ) ; var r = e . _ _ob _ _ ; return e . _isVue || r && r . vmCount ? void 0 : r ? ( E ( r . value , t , n ) , r . dep . notify ( ) , n ) : void ( e [ t ] = n ) } function L ( e , t ) { var n = e . _ _ob _ _ ; e . _isVue || n && n . vmCount || i ( e , t ) && ( delete e [ t ] , n && n . dep . notify ( ) ) } function N ( e ) { for ( var t = void 0 , n = 0 , r = e . length ; n < r ; n ++ ) t = e [ n ] , t && t . _ _ob _ _ && t . _ _ob _ _ . dep . depend ( ) , Array . isArray ( t ) && N ( t ) } function D ( e ) { e . _watchers = [ ] , M ( e ) , P ( e ) , R ( e ) , B ( e ) , F ( e ) } function M ( e ) { var t = e . $options . props ; if ( t ) { var n = e . $options . propsData || { } , r = e . $options . _propKeys = Object . keys ( t ) , i = ! e . $parent ; ei . shouldConvert = i ; for ( var a = function ( i ) { var a = r [ i ] ; E ( e , a , Le ( a , t , n , e ) ) } , o = 0 ; o < r . length ; o ++ ) a ( o ) ; ei . shouldConvert = ! 0 } } function P ( e ) { var t = e . $options . data ; t = e . _data = "function" == typeof t ? t . call ( e ) : t || { } , f ( t ) || ( t = { } ) ; for ( var n = Object . keys ( t ) , r = e . $options . props , a = n . length ; a -- ; ) r && i ( r , n [ a ] ) || z ( e , n [ a ] ) ; S ( t ) , t . _ _ob _ _ && t . _ _ob _ _ . vmCount ++ } function R ( e ) { var t = e . $options . computed ; if ( t ) for ( var n in t ) { var r = t [ n ] ; "function" == typeof r ? ( ni . get = I ( r , e ) , ni . set = p ) : ( ni . get = r . get ? r . cache !== ! 1 ? I ( r . get , e ) : s ( r . get , e ) : p , ni . set = r . set ? s ( r . set , e ) : p ) , Object . defineProperty ( e , n , ni ) } } function I ( e , t ) { var n = new Zr ( t , e , p , { lazy : ! 0 } ) ; return function ( ) { return n . dirty && n . evaluate ( ) , Hr . target && n . depend ( ) , n . value } } function B ( e ) { var t = e . $options . methods ; if ( t ) for ( var n in t ) e [ n ] = null == t [ n ] ? p : s ( t [ n ] , e ) } function F ( e ) { var t = e . $options . watch ; if ( t ) for ( var n in t ) { var r = t [ n ] ; if ( Array . isArray ( r ) ) for ( var i = 0 ; i < r . length ; i ++ ) H ( e , n , r [ i ] ) ; else H ( e , n , r ) } } function H ( e , t , n ) { var r ; f ( n ) && ( r = n , n = n . handler ) , "string" == typeof n && ( n = e [ n ] ) , e . $watch ( t , n , r ) } function U ( e ) { var t = { } ; t . get = function ( ) { return this . _data } , Object . defineProperty ( e . prototype , "$data" , t ) , e . prototype . $set = j , e . prototype . $delete = L , e . prototype . $watch = function ( e , t , n ) { var r = this ; n = n || { } , n . user = ! 0 ; var i = new Zr ( r , e , t , n ) ; return n . immediate && t . call ( r , i . value ) , function ( ) { i . teardown ( ) } } } function z ( e , t ) { g ( t ) || Object . defineProperty ( e , t , { configurable : ! 0 , enumerable : ! 0 , get : function ( ) { return e . _data [ t ] } , set : function ( n ) { e . _data [ t ] = n } } ) } function V ( e ) { var t = new ri ( e . tag , e . data , e . children , e . text , e . elm , e . ns , e . context , e . componentOptions ) ; return t . isStatic = e . isStatic , t . key = e . key , t . isCloned = ! 0 , t } function J ( e ) { for ( var t = new Array ( e . length ) , n = 0 ; n < e . length ; n ++ ) t [ n ] = V ( e [ n ] ) ; return t } function q ( e , t , n , r ) { r += t ; var i = e . _ _injected || ( e . _ _injected = { } ) ; if ( ! i [ r ] ) { i [ r ] = ! 0 ; var a = e [ t ] ; a ? e [ t ] = function ( ) { a . apply ( this , arguments ) , n . apply ( this , arguments ) } : e [ t ] = n } } function K ( e , t , n , r , i ) { var a , o , s , c , u , l ; for ( a in e ) if ( o = e [ a ] , s = t [ a ] , o ) if ( s ) { if ( o !== s ) if ( Array . isArray ( s ) ) { s . length = o . length ; for ( var f = 0 ; f < s . length ; f ++ ) s [ f ] = o [ f ] ; e [ a ] = s } else s . fn = o , e [ a ] = s } else l = "!" === a . charAt ( 0 ) , u = l ? a . slice ( 1 ) : a , Array . isArray ( o ) ? n ( u , o . invoker = W ( o ) , l ) : ( o . invoker || ( c = o , o = e [ a ] = { } , o . fn = c , o . invoker = Z ( o ) ) , n ( u , o . invoker , l ) ) ; for ( a in t ) e [ a ] || ( u = "!" === a . charAt ( 0 ) ? a . slice ( 1 ) : a , r ( u , t [ a ] . invoker ) ) } function W ( e ) { return function ( t ) { for ( var n = arguments , r = Line truncated
"" === p [ 5 ] && delete p [ 5 ] ) ; var v = p [ 3 ] || p [ 4 ] || p [ 5 ] || "" ; f [ d ] = { name : p [ 1 ] , value : Xt ( v , t . shouldDecodeNewlines ) } } i || ( c . push ( { tag : n , attrs : f } ) , s = n , r = "" ) , t . start && t . start ( n , f , i , e . start , e . end ) } function a ( e , n , r , i ) { var a ; if ( null == r && ( r = f ) , null == i && ( i = f ) , n ) { var o = n . toLowerCase ( ) ; for ( a = c . length - 1 ; a >= 0 && c [ a ] . tag . toLowerCase ( ) !== o ; a -- ) ; } else a = 0 ; if ( a >= 0 ) { for ( var u = c . length - 1 ; u >= a ; u -- ) t . end && t . end ( c [ u ] . tag , r , i ) ; c . length = a , s = a && c [ a - 1 ] . tag } else "br" === n . toLowerCase ( ) ? t . start && t . start ( n , [ ] , ! 0 , r , i ) : "p" === n . toLowerCase ( ) && ( t . start && t . start ( n , [ ] , ! 1 , r , i ) , t . end && t . end ( n , r , i ) ) } for ( var o , s , c = [ ] , u = t . expectHTML , l = t . isUnaryTag || Or , f = 0 ; e ; ) { if ( o = e , s && Ja ( s ) ) { var d = s . toLowerCase ( ) , p = qa [ d ] || ( qa [ d ] = new RegExp ( "([\\s\\S]*?)(</" + d + "[^>]*>)" , "i" ) ) , v = 0 , h = e . replace ( p , function ( e , n , r ) { return v = r . length , "script" !== d && "style" !== d && "noscript" !== d && ( n = n . replace ( /<!--([\s\S]*?)-->/g , "$1" ) . replace ( /<!\[CDATA\[([\s\S]*?)\]\]>/g , "$1" ) ) , t . chars && t . chars ( n ) , "" } ) ; f += e . length - h . length , e = h , a ( "</" + d + ">" , d , f - v , f ) } else { var m = e . indexOf ( "<" ) ; if ( 0 === m ) { if ( /^<!--/ . test ( e ) ) { var g = e . indexOf ( "-->" ) ; if ( g >= 0 ) { n ( g + 3 ) ; continue } } if ( /^<!\[/ . test ( e ) ) { var y = e . indexOf ( "]>" ) ; if ( y >= 0 ) { n ( y + 2 ) ; continue } } var _ = e . match ( Aa ) ; if ( _ ) { n ( _ [ 0 ] . length ) ; continue } var b = e . match ( ka ) ; if ( b ) { var $ = f ; n ( b [ 0 ] . length ) , a ( b [ 0 ] , b [ 1 ] , $ , f ) ; continue } var w = r ( ) ; if ( w ) { i ( w ) ; continue } } var C = void 0 ; m >= 0 ? ( C = e . substring ( 0 , m ) , n ( m ) ) : ( C = e , e = "" ) , t . chars && t . chars ( C ) } if ( e === o ) throw new Error ( "Error parsing template:\n\n" + e ) } a ( ) } function tn ( e ) { function t ( ) { ( o || ( o = [ ] ) ) . push ( e . slice ( d , i ) . trim ( ) ) , d = i + 1 } var n , r , i , a , o , s = ! 1 , c = ! 1 , u = 0 , l = 0 , f = 0 , d = 0 ; for ( i = 0 ; i < e . length ; i ++ ) if ( r = n , n = e . charCodeAt ( i ) , s ) 39 === n && 92 !== r && ( s = ! s ) ; else if ( c ) 34 === n && 92 !== r && ( c = ! c ) ; else if ( 124 !== n || 124 === e . charCodeAt ( i + 1 ) || 124 === e . charCodeAt ( i - 1 ) || u || l || f ) switch ( n ) { case 34 : c = ! 0 ; break ; case 39 : s = ! 0 ; break ; case 40 : f ++ ; break ; case 41 : f -- ; break ; case 91 : l ++ ; break ; case 93 : l -- ; break ; case 123 : u ++ ; break ; case 125 : u -- } else void 0 === a ? ( d = i + 1 , a = e . slice ( 0 , i ) . trim ( ) ) : t ( ) ; if ( void 0 === a ? a = e . slice ( 0 , i ) . trim ( ) : 0 !== d && t ( ) , o ) for ( i = 0 ; i < o . length ; i ++ ) a = nn ( a , o [ i ] ) ; return a } function nn ( e , t ) { var n = t . indexOf ( "(" ) ; if ( n < 0 ) return '_f("' + t + '")(' + e + ")" ; var r = t . slice ( 0 , n ) , i = t . slice ( n + 1 ) ; return '_f("' + r + '")(' + e + "," + i } function rn ( e , t ) { var n = t ? eo ( t ) : Qa ; if ( n . test ( e ) ) { for ( var r , i , a = [ ] , o = n . lastIndex = 0 ; r = n . exec ( e ) ; ) { i = r . index , i > o && a . push ( JSON . stringify ( e . slice ( o , i ) ) ) ; var s = tn ( r [ 1 ] . trim ( ) ) ; a . push ( "_s(" + s + ")" ) , o = i + r [ 0 ] . length } return o < e . length && a . push ( JSON . stringify ( e . slice ( o ) ) ) , a . join ( "+" ) } } function an ( e ) { console . error ( "[Vue parser]: " + e ) } function on ( e , t ) { return e ? e . map ( function ( e ) { return e [ t ] } ) . filter ( function ( e ) { return e } ) : [ ] } function sn ( e , t , n ) { ( e . props || ( e . props = [ ] ) ) . push ( { name : t , value : n } ) } function cn ( e , t , n ) { ( e . attrs || ( e . attrs = [ ] ) ) . push ( { name : t , value : n } ) } function un ( e , t , n , r , i , a ) { ( e . directives || ( e . directives = [ ] ) ) . push ( { name : t , rawName : n , value : r , arg : i , modifiers : a } ) } function ln ( e , t , n , r , i ) { r && r . capture && ( delete r . capture , t = "!" + t ) ; var a ; r && r . native ? ( delete r . native , a = e . nativeEvents || ( e . nativeEvents = { } ) ) : a = e . events || ( e . events = { } ) ; var o = { value : n , modifiers : r } , s = a [ t ] ; Array . isArray ( s ) ? i ? s . unshift ( o ) : s . push ( o ) : s ? a [ t ] = i ? [ o , s ] : [ s , o ] : a [ t ] = o } function fn ( e , t , n ) { var r = dn ( e , ":" + t ) || dn ( e , "v-bind:" + t ) ; if ( null != r ) return r ; if ( n !== ! 1 ) { var i = dn ( e , t ) ; if ( null != i ) return JSON . stringify ( i ) } } function dn ( e , t ) { var n ; if ( null != ( n = e . attrsMap [ t ] ) ) for ( var r = e . attrsList , i = 0 , a = r . length ; i < a ; i ++ ) if ( r [ i ] . name === t ) { r . splice ( i , 1 ) ; break } return n } function pn ( e , t ) { Ta = t . warn || an , Sa = t . getTagNamespace || Or , Ea = t . mustUseProp || Or , ja = t . isPreTag || Or , La = on ( t . modules , "preTransformNode" ) , Na = on ( t . modules , "transformNode" ) , Da = on ( t . modules , "postTransformNode" ) , Ma = t . delimiters ; var n , r , i = [ ] , a = t . preserveWhitespace !== ! 1 , o = ! 1 , s = ! 1 ; return en ( e , { expectHTML : t . expectHTML , isUnaryTag : t . isUnaryTag , shouldDecodeNewlines : t . shouldDecodeNewlines , start : function ( e , a , c ) { function u ( e ) { } var l = r && r . ns || Sa ( e ) ; t . isIE && "svg" === l && ( a = En ( a ) ) ; var f = { type : 1 , tag : e , attrsList : a , attrsMap : On ( a , t . isIE ) , parent : r , children : [ ] } ; l && ( f . ns = l ) , Sn ( f ) && ( f . forbidden = ! 0 ) ; for ( var d = 0 ; d < La . length ; d ++ ) La [ d ] ( f , t ) ; if ( o || ( vn ( f ) , f . pre && ( o = ! 0 ) ) , ja ( f . tag ) && ( s = ! 0 ) , o ) hn ( f ) ; else { yn ( f ) , _n ( f ) , $n ( f ) , mn ( f ) , f . plain = ! f . key && ! a . length , gn ( f ) , wn ( f ) , Cn ( f ) ; for ( var p = 0 ; p < Na . length ; p ++ ) Na [ p ] ( f , t ) ; xn ( f ) } n || ( n = f , u ( n ) ) , r && ! f . forbidden && ( f . else ? bn ( f , r ) : ( r . children . push ( f ) , f . parent = r ) ) , c || ( r = f , i . push ( f ) ) ; for ( var v = 0 ; v < Da . length ; v ++ ) Da [ v ] ( f , t ) } , end : function ( ) { var e = i [ i . length - 1 ] , t = e . children [ e . children . length - 1 ] ; t && 3 === t . type && " " === t . text && e . children . pop ( ) , i . length -= 1 , r = i [ i . length - 1 ] , e . pre && ( o = ! 1 ) , ja ( e . tag ) && ( s = ! 1 ) } , chars : function ( e ) { if ( r && ( e = s || e . trim ( ) ? uo ( e ) : a && r . children . length ? " " : "" ) ) { var t ; ! o && " " !== e && ( t = rn ( e , Ma ) ) ? r . children . push ( { type : 2 , expression : t , text : e } ) : ( e = e . replace ( co , "" ) , r . children . push ( { type : 3 , text : e } ) ) } } } ) , n } function vn ( e ) { null != dn ( e , "v-pre" ) && ( e . pre = ! 0 ) } function hn ( e ) { var t = e . attrsList . length ; if ( t ) for ( var n = e . attrs = new Array ( t ) , r = 0 ; r < t ; r ++ ) n [ r ] = { name : e . attrsList [ r ] . name , value : JSON . stringify ( e . attrsList [ r ] . value ) } ; else e . pre || ( e . plain = ! 0 ) } function mn ( e ) { var t = fn ( e , "key" ) ; t && ( e . key = t ) } function gn ( e ) { var t = fn ( e , "ref" ) ; t && ( e . ref = t , e . refIn Line truncated
"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 } ) , simpleUpload . maxUploads = 10 , simpleUpload . activeUploads = 0 , simpleUpload . uploads = [ ] , simpleUpload . iframes = { } , simpleUpload . iframeCount = 0 , simpleUpload . queueUpload = function ( e , l ) { simpleUpload . uploads [ simpleUpload . uploads . length ] = { uploads : e , callback : l } } , simpleUpload . uploadNext = function ( ) { if ( simpleUpload . uploads . length > 0 && simpleUpload . activeUploads < simpleUpload . maxUploads ) { var e = simpleUpload . uploads [ 0 ] , l = e . callback , n = e . uploads . splice ( 0 , 1 ) [ 0 ] ; 0 == e . uploads . length && simpleUpload . uploads . splice ( 0 , 1 ) , simpleUpload . activeUploads ++ , l ( n ) , simpleUpload . uploadNext ( ) } } , simpleUpload . queueIframe = function ( e ) { for ( var l = 0 ; 0 == l || l in simpleUpload . iframes ; ) l = Math . floor ( 999999999 * Math . random ( ) + 1 ) ; return simpleUpload . iframes [ l ] = e , simpleUpload . iframeCount ++ , $ ( "body" ) . append ( '<iframe name="simpleUpload_iframe_' + l + '" style="display: none;"></iframe>' ) , l } , simpleUpload . dequeueIframe = function ( e ) { e in simpleUpload . iframes && ( $ ( "iframe[name=simpleUpload_iframe_" + e + "]" ) . remove ( ) , delete simpleUpload . iframes [ e ] , simpleUpload . iframeCount -- ) } , simpleUpload . convertDataType = function ( e , l , n ) { var t = "auto" ; if ( "auto" == e ) { if ( "string" == typeof l && "" != l ) { var a = l . toLowerCase ( ) , o = [ "json" , "xml" , "html" , "script" , "text" ] ; for ( var r in o ) if ( o [ r ] == a ) { t = a ; break } } } else t = e ; if ( "auto" == t ) return "undefined" == typeof n ? "" : "object" == typeof n ? n : String ( n ) ; if ( "json" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "object" == typeof n ) return n ; if ( "string" == typeof n ) try { return $ . parseJSON ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "xml" == t ) { if ( "undefined" == typeof n || null === n ) return null ; if ( "string" == typeof n ) try { return $ . parseXML ( n ) } catch ( i ) { return ! 1 } return ! 1 } if ( "script" == t ) { if ( "undefined" == typeof n ) return "" ; if ( "string" == typeof n ) try { return $ . globalEval ( n ) , n } catch ( i ) { return ! 1 } return ! 1 } return "undefined" == typeof n ? "" : String ( n ) } , simpleUpload . iframeCallback = function ( e ) { if ( "object" == typeof e && null !== e ) { var l = e . id ; if ( l in simpleUpload . iframes ) { var n = simpleUpload . convertDataType ( simpleUpload . iframes [ l ] . expect , e . type , e . data ) ; n !== ! 1 ? simpleUpload . iframes [ l ] . complete ( n ) : simpleUpload . iframes [ l ] . error ( "Could not get response from server" ) } } } , simpleUpload . postMessageCallback = function ( e ) { try { var l = e . message ? "message" : "data" , n = e [ l ] ; if ( "string" == typeof n && "" != n && ( n = $ . parseJSON ( n ) , "object" == typeof n && null !== n && "string" == typeof n . namespace && "simpleUpload" == n . namespace ) ) { var t = n . id ; if ( t in simpleUpload . iframes && e . origin === simpleUpload . iframes [ t ] . origin ) { var a = simpleUpload . convertDataType ( simpleUpload . iframes [ t ] . expect , n . type , n . data ) ; a !== ! 1 ? simpleUpload . iframes [ t ] . complete ( a ) : simpleUpload . iframes [ t ] . error ( "Could not get response from server" ) } } } catch ( e ) { } } , window . addEventListener ? window . addEventListener ( "message" , simpleUpload . postMessageCallback , ! 1 ) : window . attachEvent ( "onmessage" , simpleUpload . postMessageCallback ) , function ( e ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , e ) : "object" == typeof exports ? module . ex Line truncated
t . sticky . container = this . getStickyContainer ( t ) , t . sticky . container . rect = this . getRectangle ( t . sticky . container ) , t . sticky . rect = this . getRectangle ( t ) , "img" === t . tagName . toLowerCase && ( t . onload = function ( ) { return t . sticky . rect = i . getRectangle ( t ) } ) , this . activate ( t ) } , t . prototype . activate = function ( t ) { var i = t . sticky . container . offsetHeight ; this . css ( t , { position : "fixed" } ) ; var e = t . sticky . container . offsetHeight ; this . css ( t , { position : "" } ) , e >= i && t . sticky . stickyFor < this . vp . width && ! t . sticky . active && ( t . sticky . active = ! 0 ) , this . elements . indexOf ( t ) < 0 && this . elements . push ( t ) , t . sticky . resizeEvent || ( this . initResizeEvents ( t ) , t . sticky . resizeEvent = ! 0 ) , t . sticky . scrollEvent || ( this . initScrollEvents ( t ) , t . sticky . scrollEvent = ! 0 ) } , t . prototype . initResizeEvents = function ( t ) { var i = this ; t . sticky . resizeListener = function ( ) { return i . onResizeEvents ( t ) } , window . addEventListener ( "resize" , t . sticky . resizeListener ) } , t . prototype . onResizeEvents = function ( t ) { this . vp = this . getViewportSize ( ) , t . sticky . rect = this . getRectangle ( t ) , t . sticky . container . rect = this . getRectangle ( t . sticky . container ) , t . sticky . stickyFor < this . vp . width && ! t . sticky . active ? t . sticky . active = ! 0 : t . sticky . stickyFor >= this . vp . width && t . sticky . active && ( t . sticky . active = ! 1 ) , this . setPosition ( t ) } , t . prototype . initScrollEvents = function ( t ) { var i = this ; t . sticky . scrollListener = function ( ) { return i . onScrollEvents ( t ) } , window . addEventListener ( "scroll" , t . sticky . scrollListener ) } , t . prototype . onScrollEvents = function ( t ) { this . scrollTop = this . getScrollTopPosition ( ) , t . sticky . active && this . setPosition ( t ) } , t . prototype . setPosition = function ( t ) { this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) , this . vp . height < t . sticky . rect . height || ! t . sticky . active || ( t . sticky . rect . width || ( t . sticky . rect = this . getRectangle ( t ) ) , this . scrollTop > t . sticky . rect . top - t . sticky . marginTop ? ( this . css ( t , { position : "fixed" , width : t . sticky . rect . width + "px" , left : t . sticky . rect . left + "px" } ) , this . scrollTop + t . sticky . rect . height + t . sticky . marginTop > t . sticky . container . rect . top + t . sticky . container . offsetHeight ? ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . css ( t , { top : t . sticky . container . rect . top + t . sticky . container . offsetHeight - ( this . scrollTop + t . sticky . rect . height ) + "px" } ) ) : ( t . sticky . stickyClass && t . classList . add ( t . sticky . stickyClass ) , this . css ( t , { top : t . sticky . marginTop + "px" } ) ) ) : ( t . sticky . stickyClass && t . classList . remove ( t . sticky . stickyClass ) , this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) ) ) } , t . prototype . update = function ( ) { var t = this ; this . forEach ( this . elements , function ( i ) { i . sticky . rect = t . getRectangle ( i ) , i . sticky . container . rect = t . getRectangle ( i . sticky . container ) , t . activate ( i ) , t . setPosition ( i ) } ) } , t . prototype . getStickyContainer = function ( t ) { for ( var i = t ; ! i . hasAttribute ( "data-sticky-container" ) && i !== document . querySelector ( "body" ) ; ) i = i . parentNode ; return i } , t . prototype . getRectangle = function ( t ) { this . css ( t , { position : "" , width : "" , top : "" , left : "" } ) ; var i = Math . max ( t . offsetWidth , t . clientWidth , t . scrollWidth ) , e = Math . max ( t . offsetHeight , t . clientHeight , t . scrollHeight ) , s = 0 , o = 0 ; do s += t . offsetTop || 0 , o += t . offsetLeft || 0 , t = t . offsetParent ; while ( t ) ; return { top : s , left : o , width : i , height : e } } , t . prototype . getViewportSize = function ( ) { return { width : Math . max ( document . documentElement . clientWidth , window . innerWidth || 0 ) , height : Math . max ( document . documentElement . clientHeight , window . innerHeight || 0 ) } } , t . prototype . getScrollTopPosition = function ( ) { return ( window . pageYOffset || document . scrollTop ) - ( document . clientTop || 0 ) || 0 } , t . prototype . forEach = function ( t , i ) { for ( var e = 0 , s = t . length ; e < s ; e ++ ) i ( t [ e ] ) } , t . prototype . css = function ( t , i ) { for ( var e in i ) i . hasOwnProperty ( e ) && ( t . style [ e ] = i [ e ] ) } , t } ( ) ; ! function ( t , i ) { "undefined" != typeof exports ? module . exports = i : "function" == typeof define && define . amd ? define ( [ ] , i ) : t . Sticky = i } ( this , Sticky ) , ! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var t ; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , t . SimpleMDE = e ( ) } } ( function ( ) { var e ; return function t ( e , n , r ) { function i ( a , l ) { if ( ! n [ a ] ) { if ( ! e [ a ] ) { var s = "function" == typeof require && require ; if ( ! l && s ) return s ( a , ! 0 ) ; if ( o ) return o ( a , ! 0 ) ; var c = new Error ( "Cannot find module '" + a + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var u = n [ a ] = { exports : { } } ; e [ a ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ a ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ a ] . exports } for ( var o = "function" == typeof require && require , a = 0 ; a < r . length ; a ++ ) i ( r [ a ] ) ; return i } ( { 1 : [ function ( e , t , n ) { "use strict" ; function r ( ) { for ( var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , t = 0 , n = e . length ; n > t ; ++ t ) s [ t ] = e [ t ] , c [ e . charCodeAt ( t ) ] = t ; c [ "-" . charCodeAt ( 0 ) ] = 62 , c [ "_" . charCodeAt ( 0 ) ] = 63 } function i ( e ) { var t , n , r , i , o , a , l = e . length ; if ( l % 4 > 0 ) throw new Error ( "Invalid string. Length must be a multiple of 4" ) ; o = "=" === e [ l - 2 ] ? 2 : "=" === e [ l - 1 ] ? 1 : 0 , a = new u ( 3 * l / 4 - o ) , r = o > 0 ? l - 4 : l ; var s = 0 ; for ( t = 0 , n = 0 ; r > t ; t += 4 , n += 3 ) i = c [ e . charCodeAt ( t ) ] << 18 | c [ e . charCodeAt ( t + 1 ) ] << 12 | c [ e . charCodeAt ( t + 2 ) ] << 6 | c [ e . charCodeAt ( t + 3 ) ] , a [ s ++ ] = i >> 16 & 255 , a [ s ++ ] = i >> 8 & 255 , a [ s ++ ] = 255 & i ; return 2 === o ? ( i = c [ e . Line truncated
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-selectedtext" , o ( r ) , r . on ( "cursorActivity" , t ) , r . on ( "change" , n ) ) : ! a && s && ( r . off ( "cursorActivity" , t ) , r . off ( "change" , n ) , i ( r ) , r . state . markedSelection = r . state . markedSelectionStyle = null ) } ) ; var l = 8 , s = e . Pos , c = e . cmpPos } ) } , { "../../lib/codemirror" : 10 } ] , 10 : [ function ( t , n , r ) { ! function ( t ) { if ( "object" == typeof r && "object" == typeof n ) n . exports = t ( ) ; else { if ( "function" == typeof e && e . amd ) return e ( [ ] , t ) ; ( this || window ) . CodeMirror = t ( ) } } ( function ( ) { "use strict" ; function e ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? Wi ( r ) : { } , Wi ( ea , r , ! 1 ) , d ( r ) ; var i = r . value ; "string" == typeof i && ( i = new Ca ( i , r . mode , null , r . lineSeparator ) ) , this . doc = i ; var o = new e . inputStyles [ r . inputStyle ] ( this ) , a = this . display = new t ( n , i , o ) ; a . wrapper . CodeMirror = this , c ( this ) , l ( this ) , r . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , r . autofocus && ! Ao && a . input . focus ( ) , v ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , selectingText : ! 1 , draggingText : ! 1 , highlight : new Ei , keySeq : null , specialChars : null } ; var s = this ; xo && 11 > bo && setTimeout ( function ( ) { s . display . input . reset ( ! 0 ) } , 20 ) , jt ( this ) , Ki ( ) , bt ( this ) , this . curOp . forceUpdate = ! 0 , Xr ( this , i ) , r . autofocus && ! Ao || s . hasFocus ( ) ? setTimeout ( Bi ( vn , this ) , 20 ) : yn ( this ) ; for ( var u in ta ) ta . hasOwnProperty ( u ) && ta [ u ] ( this , r [ u ] , na ) ; k ( this ) , r . finishInit && r . finishInit ( this ) ; for ( var f = 0 ; f < aa . length ; ++ f ) aa [ f ] ( this ) ; kt ( this ) , wo && r . lineWrapping && "optimizelegibility" == getComputedStyle ( a . lineDiv ) . textRendering && ( a . lineDiv . style . textRendering = "auto" ) } function t ( e , t , n ) { var r = this ; this . input = n , r . scrollbarFiller = ji ( "div" , null , "CodeMirror-scrollbar-filler" ) , r . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , r . gutterFiller = ji ( "div" , null , "CodeMirror-gutter-filler" ) , r . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , r . lineDiv = ji ( "div" , null , "CodeMirror-code" ) , r . selectionDiv = ji ( "div" , null , null , "position: relative; z-index: 1" ) , r . cursorDiv = ji ( "div" , null , "CodeMirror-cursors" ) , r . measure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineMeasure = ji ( "div" , null , "CodeMirror-measure" ) , r . lineSpace = ji ( "div" , [ r . measure , r . lineMeasure , r . selectionDiv , r . cursorDiv , r . lineDiv ] , null , "position: relative; outline: none" ) , r . mover = ji ( "div" , [ ji ( "div" , [ r . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , r . sizer = ji ( "div" , [ r . mover ] , "CodeMirror-sizer" ) , r . sizerWidth = null , r . heightForcer = ji ( "div" , null , null , "position: absolute; height: " + Da + "px; width: 1px;" ) , r . gutters = ji ( "div" , null , "CodeMirror-gutters" ) , r . lineGutter = null , r . scroller = ji ( "div" , [ r . sizer , r . heightForcer , r . gutters ] , "CodeMirror-scroll" ) , r . scroller . setAttribute ( "tabIndex" , "-1" ) , r . wrapper = ji ( "div" , [ r . scrollbarFiller , r . gutterFiller , r . scroller ] , "CodeMirror" ) , xo && 8 > bo && ( r . gutters . style . zIndex = - 1 , r . scroller . style . paddingRight = 0 ) , wo || go && Ao || ( r . scroller . draggable = ! 0 ) , e && ( e . appendChild ? e . appendChild ( r . wrapper ) : e ( r . wrapper ) ) , r . viewFrom = r . viewTo = t . first , r . reportedViewFrom = r . reportedViewTo = t . first , r . view = [ ] , r . renderedView = null , r . externalMeasured = null , r . viewOffset = 0 , r . lastWrapHeight = r . lastWrapWidth = 0 , r . updateLineNumbers = null , r . nativeBarWidth = r . barHeight = r . barWidth = 0 , r . scrollbarsClipped = ! 1 , r . lineNumWidth = r . lineNumInnerWidth = r . lineNumChars = null , r . alignWidgets = ! 1 , r . cachedCharWidth = r . cachedTextHeight = r . cachedPaddingH = null , r . maxLine = null , r . maxLineLength = 0 , r . maxLineChanged = ! 1 , r . wheelDX = r . wheelDY = r . wheelStartX = r . wheelStartY = null , r . shift = ! 1 , r . selForContextMenu = null , r . activeTouch = null , n . init ( r ) } function n ( t ) { t . doc . mode = e . getMode ( t . options , t . doc . modeOption ) , r ( t ) } function r ( e ) { e . doc . iter ( function ( e ) { e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) } ) , e . doc . frontier = e . doc . first , _e ( e , 100 ) , e . state . modeGen ++ , e . curOp && Dt ( e ) } function i ( e ) { e . options . lineWrapping ? ( Ja ( e . display . wrapper , "CodeMirror-wrap" ) , e . display . sizer . style . minWidth = "" , e . display . sizerWidth = null ) : ( Za ( e . display . wrapper , "CodeMirror-wrap" ) , h ( e ) ) , a ( e ) , Dt ( e ) , lt ( e ) , setTimeout ( function ( ) { y ( e ) } , 100 ) } function o ( e ) { var t = yt ( e . display ) , n = e . options . lineWrapping , r = n && Math . max ( 5 , e . display . scroller . clientWidth / xt ( e . display ) - 3 ) ; return function ( i ) { if ( kr ( e . doc , i ) ) return 0 ; var o = 0 ; if ( i . widgets ) for ( var a = 0 ; a < i . widgets . length ; a ++ ) i . widgets [ a ] . height && ( o += i . widgets [ a ] . height ) ; return n ? o + ( Math . ceil ( i . text . length / r ) || 1 ) * t : o + t } } function a ( e ) { var t = e . doc , n = o ( e ) ; t . iter ( function ( e ) { var t = n ( e ) ; t != e . height && ei ( e , t ) } ) } function l ( e ) { e . display . wrapper . className = e . display . wrapper . className . replace ( /\s*cm-s-\S+/g , "" ) + e . options . theme . replace ( /(^|\s)\s*/g , " cm-s-" ) , lt ( e ) } function s ( e ) { c ( e ) , Dt ( e ) , setTimeout ( function ( ) { w ( e ) } , 20 ) } function c ( e ) { var t = e . display . gutters , n = e . o Line truncated
} 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 . left , right : o . right , top : i ? o . rtop : o . top , bottom : i ? o . rbottom : o . bottom } } function nt ( e , t , n ) { for ( var r , i , o , a , l = 0 ; l < e . length ; l += 3 ) { var s = e [ l ] , c = e [ l + 1 ] ; if ( s > t ? ( i = 0 , o = 1 , a = "left" ) : c > t ? ( i = t - s , o = i + 1 ) : ( l == e . length - 3 || t == c && e [ l + 3 ] > t ) && ( o = c - s , i = o - 1 , t >= c && ( a = "right" ) ) , null != i ) { if ( r = e [ l + 2 ] , s == c && n == ( r . insertLeft ? "left" : "right" ) && ( a = n ) , "left" == n && 0 == i ) for ( ; l && e [ l - 2 ] == e [ l - 3 ] && e [ l - 1 ] . insertLeft ; ) r = e [ ( l -= 3 ) + 2 ] , a = "left" ; if ( "right" == n && i == c - s ) for ( ; l < e . length - 3 && e [ l + 3 ] == e [ l + 4 ] && ! e [ l + 5 ] . insertLeft ; ) r = e [ ( l += 3 ) + 2 ] , a = "right" ; break } } return { node : r , start : i , end : o , collapse : a , coverStart : s , coverEnd : c } } function rt ( e , t , n , r ) { var i , o = nt ( t . map , n , r ) , a = o . node , l = o . start , s = o . end , c = o . collapse ; if ( 3 == a . nodeType ) { for ( var u = 0 ; 4 > u ; u ++ ) { for ( ; l && zi ( t . line . text . charAt ( o . coverStart + l ) ) ; ) -- l ; for ( ; o . coverStart + s < o . coverEnd && zi ( t . line . text . charAt ( o . coverStart + s ) ) ; ) ++ s ; if ( xo && 9 > bo && 0 == l && s == o . coverEnd - o . coverStart ) i = a . parentNode . getBoundingClientRect ( ) ; else if ( xo && e . options . lineWrapping ) { var f = qa ( a , l , s ) . getClientRects ( ) ; i = f . length ? f [ "right" == r ? f . length - 1 : 0 ] : qo } else i = qa ( a , l , s ) . getBoundingClientRect ( ) || qo ; if ( i . left || i . right || 0 == l ) break ; s = l , l -= 1 , c = "right" } xo && 11 > bo && ( i = it ( e . display . measure , i ) ) } else { l > 0 && ( c = r = "right" ) ; var f ; i = e . options . lineWrapping && ( f = a . getClientRects ( ) ) . length > 1 ? f [ "right" == r ? f . length - 1 : 0 ] : a . getBoundingClientRect ( ) } if ( xo && 9 > bo && ! l && ( ! i || ! i . left && ! i . right ) ) { var h = a . parentNode . getClientRects ( ) [ 0 ] ; i = h ? { left : h . left , right : h . left + xt ( e . display ) , top : h . top , bottom : h . bottom } : qo } for ( var d = i . top - t . rect . top , p = i . bottom - t . rect . top , m = ( d + p ) / 2 , g = t . view . measure . heights , u = 0 ; u < g . length - 1 && ! ( m < g [ u ] ) ; u ++ ) ; var v = u ? g [ u - 1 ] : 0 , y = g [ u ] , x = { left : ( "right" == c ? i . right : i . left ) - t . rect . left , right : ( "left" == c ? i . left : i . right ) - t . rect . left , top : v , bottom : y } ; return i . left || i . right || ( x . bogus = ! 0 ) , e . options . singleCursorHeightPerLine || ( x . rtop = d , x . rbottom = p ) , x } function it ( e , t ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Qi ( e ) ) return t ; var n = screen . logicalXDPI / screen . deviceXDPI , r = screen . logicalYDPI / screen . deviceYDPI ; return { left : t . left * n , right : t . right * n , top : t . top * r , bottom : t . bottom * r } } function ot ( e ) { if ( e . measure && ( e . measure . cache = { } , e . measure . heights = null , e . rest ) ) for ( var t = 0 ; t < e . rest . length ; t ++ ) e . measure . caches [ t ] = { } } function at ( e ) { e . display . externalMeasure = null , Ui ( e . display . lineMeasure ) ; for ( var t = 0 ; t < e . display . view . length ; t ++ ) ot ( e . display . view [ t ] ) } function lt ( e ) { at ( e ) , e . display . cachedCharWidth = e . display . cachedTextHeight = e . display . cachedPaddingH = null , e . options . lineWrapping || ( e . display . maxLineChanged = ! 0 ) , e . display . lineNumChars = null } function st ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function ct ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function ut ( e , t , n , r ) { if ( t . widgets ) for ( var i = 0 ; i < t . widgets . length ; ++ i ) if ( t . widgets [ i ] . above ) { var o = Lr ( t . widgets [ i ] ) ; n . top += o , n . bottom += o } if ( "line" == r ) return n ; r || ( r = "local" ) ; var a = ri ( t ) ; if ( "local" == r ? a += Ue ( e . display ) : a -= e . display . viewOffset , "page" == r || "window" == r ) { var l = e . display . lineSpace . getBoundingClientRect ( ) ; a += l . top + ( "window" == r ? 0 : ct ( ) ) ; var s = l . left + ( "window" == r ? 0 : st ( ) ) ; n . left += s , n . right += s } return n . top += a , n . bottom += a , n } function ft ( e , t , n ) { if ( "div" == n ) return t ; var r = t . left , i = t . top ; if ( "page" == n ) r -= st ( ) , i -= ct ( ) ; else if ( "local" == n || ! n ) { var o = e . display . sizer . getBoundingClientRect ( ) ; r += o . left , i += o . top } var a = e . display . lineSpace . getBoundingClientRect ( ) ; return { left : r - a . left , top : i - a . top } } function ht ( e , t , n , r , i ) { return r || ( r = Zr ( e . doc , t . line ) ) , ut ( e , r , Je ( e , r , t . ch , i ) , n ) } function dt ( e , t , n , r , i , o ) { function a ( t , a ) { var l = tt ( e , i , t , a ? "right" : "left" , o ) ; return a ? l . left = l . right : l . right = l . left , ut ( e , r , l , n ) } function l ( e , t ) { var n = s [ t ] , r = n . level % 2 ; return e == to ( n ) && t && n . level < s [ t - 1 ] . level ? ( n = s [ -- t ] , e = no ( n ) - ( n . level % 2 ? 0 : 1 ) , r = ! 0 ) : e == no ( n ) && t < s . length - 1 && n . level < s [ t + 1 ] . level && ( n = s [ ++ t ] , e = to ( n ) - n . level % 2 , r = ! 1 ) , r && e == n . to && e > n . from ? a ( e - 1 ) : a ( e , r ) } r = r || Zr ( e . doc , t . line ) , i || ( i = et ( e , r ) ) ; var s = ii ( r ) , c = t . ch ; if ( ! s ) return a ( c ) ; var u = co ( s , c ) , f = l ( c , u ) ; return null != al && ( f . other = l ( c , al ) ) , f } function pt ( e , t ) { var n = 0 , t = me ( e . doc , t ) ; e . options . lineWrapping || ( n = xt ( e . display ) * t . ch ) ; var r = Zr ( e . doc , t . line ) , i = ri ( r ) + Ue ( e . display ) ; return { left : n , right : n , top : i , bottom : i + r . height } } function mt ( e , t , n , r ) { var i = Bo ( e , t ) ; return i . xRel = r , n && ( i . outside = ! 0 ) , i } function gt ( e , t , n ) { var r = e . doc ; if ( n += e . display . viewOffset , 0 > n ) return mt ( r . first , 0 , ! 0 , - 1 ) ; var i = ni ( r , n ) , o = r . first + r . size - 1 ; if ( i > o ) return mt ( r . first + r . size - 1 , Zr ( r , o ) . text . length , ! 0 , 1 ) ; 0 > t && ( t = 0 ) ; for ( var a = Zr ( r , i ) ; ; ) { var l = vt ( e , a , i , t , n ) , s = gr ( a ) , c = s && s . find ( 0 , ! 0 ) ; if ( ! s || ! ( l . ch > c . from . ch || l . ch == c Line truncated
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 && ( e . curOp . scrollLeft = ( null == e . curOp . scrollLeft ? e . doc . scrollLeft : e . curOp . scrollLeft ) + t ) , null != n && ( e . curOp . scrollTop = ( null == e . curOp . scrollTop ? e . doc . scrollTop : e . curOp . scrollTop ) + n ) } function Bn ( e ) { _n ( e ) ; var t = e . getCursor ( ) , n = t , r = t ; e . options . lineWrapping || ( n = t . ch ? Bo ( t . line , t . ch - 1 ) : t , r = Bo ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : n , to : r , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function _n ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var n = pt ( e , t . from ) , r = pt ( e , t . to ) , i = Hn ( e , Math . min ( n . left , r . left ) , Math . min ( n . top , r . top ) - t . margin , Math . max ( n . right , r . right ) , Math . max ( n . bottom , r . bottom ) + t . margin ) ; e . scrollTo ( i . scrollLeft , i . scrollTop ) } } function Fn ( e , t , n , r ) { var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = je ( e , t ) : n = "prev" ) ; var a = e . options . tabSize , l = Zr ( o , t ) , s = Fa ( l . text , null , a ) ; l . stateAfter && ( l . stateAfter = null ) ; var c , u = l . text . match ( /^\s*/ ) [ 0 ] ; if ( r || /\S/ . test ( l . text ) ) { if ( "smart" == n && ( c = o . mode . indent ( i , l . text . slice ( u . length ) , l . text ) , c == Ha || c > 150 ) ) { if ( ! r ) return ; n = "prev" } } else c = 0 , n = "not" ; "prev" == n ? c = t > o . first ? Fa ( Zr ( o , t - 1 ) . text , null , a ) : 0 : "add" == n ? c = s + e . options . indentUnit : "subtract" == n ? c = s - e . options . indentUnit : "number" == typeof n && ( c = s + n ) , c = Math . max ( 0 , c ) ; var f = "" , h = 0 ; if ( e . options . indentWithTabs ) for ( var d = Math . floor ( c / a ) ; d ; -- d ) h += a , f += "\t" ; if ( c > h && ( f += Oi ( c - h ) ) , f != u ) return In ( o , f , Bo ( t , 0 ) , Bo ( t , u . length ) , "+input" ) , l . stateAfter = null , ! 0 ; for ( var d = 0 ; d < o . sel . ranges . length ; d ++ ) { var p = o . sel . ranges [ d ] ; if ( p . head . line == t && p . head . ch < u . length ) { var h = Bo ( t , u . length ) ; ke ( o , d , new fe ( h , h ) ) ; break } } } function zn ( e , t , n , r ) { var i = t , o = t ; return "number" == typeof t ? o = Zr ( e , pe ( e , t ) ) : i = ti ( t ) , null == i ? null : ( r ( o , i ) && e . cm && Ht ( e . cm , i , n ) , o ) } function jn ( e , t ) { for ( var n = e . doc . sel . ranges , r = [ ] , i = 0 ; i < n . length ; i ++ ) { for ( var o = t ( n [ i ] ) ; r . length && _o ( o . from , Ii ( r ) . to ) <= 0 ; ) { var a = r . pop ( ) ; if ( _o ( a . from , o . from ) < 0 ) { o . from = a . from ; break } } r . push ( o ) } At ( e , function ( ) { for ( var t = r . length - 1 ; t >= 0 ; t -- ) In ( e . doc , "" , r [ t ] . from , r [ t ] . to , "+delete" ) ; Bn ( e ) } ) } function Un ( e , t , n , r , i ) { function o ( ) { var t = l + n ; return ! ( t < e . first || t >= e . first + e . size ) && ( l = t , u = Zr ( e , t ) ) } function a ( e ) { var t = ( i ? fo : ho ) ( u , s , n , ! 0 ) ; if ( null == t ) { if ( e || ! o ( ) ) return ! 1 ; s = i ? ( 0 > n ? io : ro ) ( u ) : 0 > n ? u . text . length : 0 } else s = t ; return ! 0 } var l = t . line , s = t . ch , c = n , u = Zr ( e , l ) ; if ( "char" == r ) a ( ) ; else if ( "column" == r ) a ( ! 0 ) ; else if ( "word" == r || "group" == r ) for ( var f = null , h = "group" == r , d = e . cm && e . cm . getHelper ( t , "wordChars" ) , p = ! 0 ; ! ( 0 > n ) || a ( ! p ) ; p = ! 1 ) { var m = u . text . charAt ( s ) || "\n" , g = _i ( m , d ) ? "w" : h && "\n" == m ? "n" : ! h || /\s/ . test ( m ) ? null : "p" ; if ( ! h || p || g || ( g = "s" ) , f && f != g ) { 0 > n && ( n = 1 , a ( ) ) ; break } if ( g && ( f = g ) , n > 0 && ! a ( ! p ) ) break } var v = Ie ( e , Bo ( l , s ) , t , c , ! 0 ) ; return _o ( t , v ) || ( v . hitSide = ! 0 ) , v } function qn ( e , t , n , r ) { var i , o = e . doc , a = t . left ; if ( "page" == r ) { var l = Math . min ( e . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; i = t . top + n * ( l - ( 0 > n ? 1.5 : . 5 ) * yt ( e . display ) ) } else "line" == r && ( i = n > 0 ? t . bottom + 3 : t . top - 3 ) ; for ( ; ; ) { var s = gt ( e , a , i ) ; if ( ! s . outside ) break ; if ( 0 > n ? 0 >= i : i >= o . height ) { s . hitSide = ! 0 ; break } i += 5 * n } return s } function Gn ( t , n , r , i ) { e . defaults [ t ] = n , r && ( ta [ t ] = i ? function ( e , t , n ) { n != na && r ( e , t , n ) } : r ) } function Yn ( e ) { for ( var t , n , r , i , o = e . split ( /-(?!$)/ ) , e = o [ o . length - 1 ] , a = 0 ; a < o . length - 1 ; a ++ ) { var l = o [ a ] ; if ( /^(cmd|meta|m)$/i . test ( l ) ) i = ! 0 ; else if ( /^a(lt)?$/i . test ( l ) ) t = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( l ) ) n = ! 0 ; else { if ( ! /^s(hift)$/i . test ( l ) ) throw new Error ( "Unrecognized modifier name: " + l ) ; r = ! 0 } } return t && ( e = "Alt-" + e ) , n && ( e = "Ctrl-" + e ) , i && ( e = "Cmd-" + e ) , r && ( e = "Shift-" + e ) , e } function $n ( e ) { return "string" == typeof e ? fa [ e ] : e } function Vn ( e , t , n , r , i ) { if ( r && r . shared ) return Kn ( e , t , n , r , i ) ; if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , Vn ) ( e , t , n , r , i ) ; var o = new va ( e , i ) , a = _o ( t , n ) ; if ( r && Wi ( r , o , ! 1 ) , a > 0 || 0 == a && o . clearWhenEmpty !== ! 1 ) return o ; if ( o . replacedWith && ( o . collapsed = ! 0 , o . widgetNode = ji ( "span" , [ o . replacedWith ] , "CodeMirror-widget" ) , r . handleMouseEvents || o . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , r . insertLeft && ( o . widgetNode . insertLeft = ! 0 ) ) , o . collapsed ) { if ( vr ( e , t . line , t , n , o ) || t . line != n . line && vr ( e , n . line , t , n , o ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; Wo = ! 0 } o . addToHistory && ci ( e , { from : t , to : n , origin : "markText" } , e . sel , NaN ) ; var l , s = t . line , c = e . cm ; if ( e . iter ( s , n . line + 1 , function ( e ) { c && o . collapsed && ! c . options . lineWrapping && yr ( e ) == c . display . maxLine && ( l = ! 0 ) , o . collapsed && s != t . line && ei ( e , 0 ) , nr ( e , new Qn ( o , s == t . line ? t . ch : null , s == n . line ? n . ch : null ) ) , ++ s } ) , o . collapsed && e . iter ( t . line , n . line + 1 , function ( t ) { kr ( e , t ) && ei ( t , 0 ) } ) , o . clearOnEnter && Ea ( o , "beforeCursorEnter" , function ( ) { o . clear ( ) } ) , o . readOnly && ( Ho = ! 0 , ( e . history . done . length || e . history . undone . length ) && e . clearHistory ( ) ) , o . collapsed && ( o . id = ++ ga , o . atomic = Line truncated
} , 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 . style . pointerEvents = "auto" , t . set ( 1e3 , n ) } , clear : function ( ) { var e = this . horiz . parentNode ; e . removeChild ( this . horiz ) , e . removeChild ( this . vert ) } } , m . prototype ) , g . prototype = Wi ( { update : function ( ) { return { bottom : 0 , right : 0 } } , setScrollLeft : function ( ) { } , setScrollTop : function ( ) { } , clear : function ( ) { } } , g . prototype ) , e . scrollbarModel = { native : m , null : g } , L . prototype . signal = function ( e , t ) { Ni ( e , t ) && this . events . push ( arguments ) } , L . prototype . finish = function ( ) { for ( var e = 0 ; e < this . events . length ; e ++ ) Pa . apply ( null , this . events [ e ] ) } ; var Bo = e . Pos = function ( e , t ) { return this instanceof Bo ? ( this . line = e , void ( this . ch = t ) ) : new Bo ( e , t ) } , _o = e . cmpPos = function ( e , t ) { return e . line - t . line || e . ch - t . ch } , Fo = null ; ne . prototype = Wi ( { init : function ( e ) { function t ( e ) { if ( ! Ti ( r , e ) ) { if ( r . somethingSelected ( ) ) Fo = { lineWise : ! 1 , text : r . getSelections ( ) } , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Fo . text . join ( "\n" ) , Ua ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ee ( r ) ; Fo = { lineWise : ! 0 , text : t . text } , "cut" == e . type ? r . setSelections ( t . ranges , null , Wa ) : ( n . prevInput = "" , o . value = t . text . join ( "\n" ) , Ua ( o ) ) } "cut" == e . type && ( r . state . cutIncoming = ! 0 ) } } var n = this , r = this . cm , i = this . wrapper = re ( ) , o = this . textarea = i . firstChild ; e . wrapper . insertBefore ( i , e . wrapper . firstChild ) , No && ( o . style . width = "0px" ) , Ea ( o , "input" , function ( ) { xo && bo >= 9 && n . hasSelection && ( n . hasSelection = null ) , n . poll ( ) } ) , Ea ( o , "paste" , function ( e ) { Ti ( r , e ) || J ( e , r ) || ( r . state . pasteIncoming = ! 0 , n . fastPoll ( ) ) } ) , Ea ( o , "cut" , t ) , Ea ( o , "copy" , t ) , Ea ( e . scroller , "paste" , function ( t ) { Gt ( e , t ) || Ti ( r , t ) || ( r . state . pasteIncoming = ! 0 , n . focus ( ) ) } ) , Ea ( e . lineSpace , "selectstart" , function ( t ) { Gt ( e , t ) || Ma ( t ) } ) , Ea ( o , "compositionstart" , function ( ) { var e = r . getCursor ( "from" ) ; n . composing && n . composing . range . clear ( ) , n . composing = { start : e , range : r . markText ( e , r . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) } } ) , Ea ( o , "compositionend" , function ( ) { n . composing && ( n . poll ( ) , n . composing . range . clear ( ) , n . composing = null ) } ) } , prepareSelection : function ( ) { var e = this . cm , t = e . display , n = e . doc , r = De ( e ) ; if ( e . options . moveInputWithCursor ) { var i = dt ( e , n . sel . primary ( ) . head , "div" ) , o = t . wrapper . getBoundingClientRect ( ) , a = t . lineDiv . getBoundingClientRect ( ) ; r . teTop = Math . max ( 0 , Math . min ( t . wrapper . clientHeight - 10 , i . top + a . top - o . top ) ) , r . teLeft = Math . max ( 0 , Math . min ( t . wrapper . clientWidth - 10 , i . left + a . left - o . left ) ) } return r } , showSelection : function ( e ) { var t = this . cm , n = t . display ; qi ( n . cursorDiv , e . cursors ) , qi ( n . selectionDiv , e . selection ) , null != e . teTop && ( this . wrapper . style . top = e . teTop + "px" , this . wrapper . style . left = e . teLeft + "px" ) } , reset : function ( e ) { if ( ! this . contextMenuPending ) { var t , n , r = this . cm , i = r . doc ; if ( r . somethingSelected ( ) ) { this . prevInput = "" ; var o = i . sel . primary ( ) ; t = rl && ( o . to ( ) . line - o . from ( ) . line > 100 || ( n = r . getSelection ( ) ) . length > 1e3 ) ; var a = t ? "-" : n || r . getSelection ( ) ; this . textarea . value = a , r . state . focused && Ua ( this . textarea ) , xo && bo >= 9 && ( this . hasSelection = a ) } else e || ( this . prevInput = this . textarea . value = "" , xo && bo >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = t } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! Ao || Gi ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( e ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var e = this ; e . pollingFast || e . polling . set ( this . cm . options . pollInterval , function ( ) { e . poll ( ) , e . cm . state . focused && e . slowPoll ( ) } ) } , fastPoll : function ( ) { function e ( ) { var r = n . poll ( ) ; r || t ? ( n . pollingFast = ! 1 , n . slowPoll ( ) ) : ( t = ! 0 , n . polling . set ( 60 , e ) ) } var t = ! 1 , n = this ; n . pollingFast = ! 0 , n . polling . set ( 20 , e ) } , poll : function ( ) { var e = this . cm , t = this . textarea , n = this . prevInput ; if ( this . contextMenuPending || ! e . state . focused || nl ( t ) && ! n && ! this . composing || e . isReadOnly ( ) || e . options . disableInput || e . state . keySeq ) return ! 1 ; var r = t . value ; if ( r == n && ! e . somethingSelected ( ) ) return ! 1 ; if ( xo && bo >= 9 && this . hasSelection === r || Eo && /[\uf700-\uf7ff]/ . test ( r ) ) return e . display . input . reset ( ) , ! 1 ; if ( e . doc . sel == e . display . selForContextMenu ) { var i = r . charCodeAt ( 0 ) ; if ( 8203 != i || n || ( n = " " ) , 8666 == i ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var o = 0 , a = Math . min ( n . length , r . length ) ; a > o && n . charCodeAt ( o ) == r . charCodeAt ( o ) ; ) ++ o ; var l = this ; return At ( e , function ( ) { Z ( e , r . slice ( o ) , n . length - o , null , l . composing ? "*compose" : null ) , r . length > 1e3 || r . indexOf ( "\n" ) > - 1 ? t . value = l . prevInput = "" : l . prevInput = r , l . composing && ( l . composing . range . clear ( ) , l . composing . range = e . markText ( l . composing . start , e . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) ) } ) , ! 0 } , ensurePolled : function ( ) { this . pollingFast && this . poll ( ) && ( this . pollingFast = ! 1 ) } , onKeyPress : function ( ) { xo && bo >= 9 && ( thi Line truncated
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 . doc . lineSeparator ( ) , r . anchor , r . head , "+input" ) , e . indentLine ( r . from ( ) . line + 1 , null , ! 0 ) } Bn ( e ) } ) } , openLine : function ( e ) { e . replaceSelection ( "\n" , "start" ) } , toggleOverwrite : function ( e ) { e . toggleOverwrite ( ) } } , fa = e . keyMap = { } ; fa . basic = { Left : "goCharLeft" , Right : "goCharRight" , Up : "goLineUp" , Down : "goLineDown" , End : "goLineEnd" , Home : "goLineStartSmart" , PageUp : "goPageUp" , PageDown : "goPageDown" , Delete : "delCharAfter" , Backspace : "delCharBefore" , "Shift-Backspace" : "delCharBefore" , Tab : "defaultTab" , "Shift-Tab" : "indentAuto" , Enter : "newlineAndIndent" , Insert : "toggleOverwrite" , Esc : "singleSelection" } , fa . pcDefault = { "Ctrl-A" : "selectAll" , "Ctrl-D" : "deleteLine" , "Ctrl-Z" : "undo" , "Shift-Ctrl-Z" : "redo" , "Ctrl-Y" : "redo" , "Ctrl-Home" : "goDocStart" , "Ctrl-End" : "goDocEnd" , "Ctrl-Up" : "goLineUp" , "Ctrl-Down" : "goLineDown" , "Ctrl-Left" : "goGroupLeft" , "Ctrl-Right" : "goGroupRight" , "Alt-Left" : "goLineStart" , "Alt-Right" : "goLineEnd" , "Ctrl-Backspace" : "delGroupBefore" , "Ctrl-Delete" : "delGroupAfter" , "Ctrl-S" : "save" , "Ctrl-F" : "find" , "Ctrl-G" : "findNext" , "Shift-Ctrl-G" : "findPrev" , "Shift-Ctrl-F" : "replace" , "Shift-Ctrl-R" : "replaceAll" , "Ctrl-[" : "indentLess" , "Ctrl-]" : "indentMore" , "Ctrl-U" : "undoSelection" , "Shift-Ctrl-U" : "redoSelection" , "Alt-U" : "redoSelection" , fallthrough : "basic" } , fa . emacsy = { "Ctrl-F" : "goCharRight" , "Ctrl-B" : "goCharLeft" , "Ctrl-P" : "goLineUp" , "Ctrl-N" : "goLineDown" , "Alt-F" : "goWordRight" , "Alt-B" : "goWordLeft" , "Ctrl-A" : "goLineStart" , "Ctrl-E" : "goLineEnd" , "Ctrl-V" : "goPageDown" , "Shift-Ctrl-V" : "goPageUp" , "Ctrl-D" : "delCharAfter" , "Ctrl-H" : "delCharBefore" , "Alt-D" : "delWordAfter" , "Alt-Backspace" : "delWordBefore" , "Ctrl-K" : "killLine" , "Ctrl-T" : "transposeChars" , "Ctrl-O" : "openLine" } , fa . macDefault = { "Cmd-A" : "selectAll" , "Cmd-D" : "deleteLine" , "Cmd-Z" : "undo" , "Shift-Cmd-Z" : "redo" , "Cmd-Y" : "redo" , "Cmd-Home" : "goDocStart" , "Cmd-Up" : "goDocStart" , "Cmd-End" : "goDocEnd" , "Cmd-Down" : "goDocEnd" , "Alt-Left" : "goGroupLeft" , "Alt-Right" : "goGroupRight" , "Cmd-Left" : "goLineLeft" , "Cmd-Right" : "goLineRight" , "Alt-Backspace" : "delGroupBefore" , "Ctrl-Alt-Backspace" : "delGroupAfter" , "Alt-Delete" : "delGroupAfter" , "Cmd-S" : "save" , "Cmd-F" : "find" , "Cmd-G" : "findNext" , "Shift-Cmd-G" : "findPrev" , "Cmd-Alt-F" : "replace" , "Shift-Cmd-Alt-F" : "replaceAll" , "Cmd-[" : "indentLess" , "Cmd-]" : "indentMore" , "Cmd-Backspace" : "delWrappedLineLeft" , "Cmd-Delete" : "delWrappedLineRight" , "Cmd-U" : "undoSelection" , "Shift-Cmd-U" : "redoSelection" , "Ctrl-Up" : "goDocStart" , "Ctrl-Down" : "goDocEnd" , fallthrough : [ "basic" , "emacsy" ] } , fa . default = Eo ? fa . macDefault : fa . pcDefault , e . normalizeKeyMap = function ( e ) { var t = { } ; for ( var n in e ) if ( e . hasOwnProperty ( n ) ) { var r = e [ n ] ; if ( /^(name|fallthrough|(de|at)tach)$/ . test ( n ) ) continue ; if ( "..." == r ) { delete e [ n ] ; continue } for ( var i = Ri ( n . split ( " " ) , Yn ) , o = 0 ; o < i . length ; o ++ ) { var a , l ; o == i . length - 1 ? ( l = i . join ( " " ) , a = r ) : ( l = i . slice ( 0 , o + 1 ) . join ( " " ) , a = "..." ) ; var s = t [ l ] ; if ( s ) { if ( s != a ) throw new Error ( "Inconsistent bindings for " + l ) } else t [ l ] = a } delete e [ n ] } for ( var c in t ) e [ c ] = t [ c ] ; return e } ; var ha = e . lookupKey = function ( e , t , n , r ) { t = $n ( t ) ; var i = t . call ? t . call ( e , r ) : t [ e ] ; if ( i === ! 1 ) return "nothing" ; if ( "..." === i ) return "multi" ; if ( null != i && n ( i ) ) return "handled" ; if ( t . fallthrough ) { if ( "[object Array]" != Object . prototype . toString . call ( t . fallthrough ) ) return ha ( e , t . fallthrough , n , r ) ; for ( var o = 0 ; o < t . fallthrough . length ; o ++ ) { var a = ha ( e , t . fallthrough [ o ] , n , r ) ; if ( a ) return a } } } , da = e . isModifierKey = function ( e ) { var t = "string" == typeof e ? e : ol [ e . keyCode ] ; return "Ctrl" == t || "Alt" == t || "Shift" == t || "Mod" == t } , pa = e . keyName = function ( e , t ) { if ( Co && 34 == e . keyCode && e . char ) return ! 1 ; var n = ol [ e . keyCode ] , r = n ; return null != r && ! e . altGraphKey && ( e . altKey && "Alt" != n && ( r = "Alt-" + r ) , ( Ro ? e . metaKey : e . ctrlKey ) && "Ctrl" != n && ( r = "Ctrl-" + r ) , ( Ro ? e . ctrlKey : e . metaKey ) && "Cmd" != n && ( r = "Cmd-" + r ) , ! t && e . shiftKey && "Shift" != n && ( r = "Shift-" + r ) , r ) } ; e . fromTextArea = function ( t , n ) { function r ( ) { t . value = c . getValue ( ) } if ( n = n ? Wi ( n ) : { } , n . value = t . value , ! n . tabindex && t . tabIndex && ( n . tabindex = t . tabIndex ) , ! n . placeholder && t . placeholder && ( n . placeholder = t . placeholder ) , null == n . autofocus ) { var i = Gi ( ) ; n . autofocus = i == t || null != t . getAttribute ( "autofocus" ) && i == document . body } if ( t . form && ( Ea ( t . form , "submit" , r ) , ! n . leaveSubmitMethodAlone ) ) { var o = t . form , a = o . submit ; try { var l = o . submit = function ( ) { r ( ) , o . submit = a , o . submit ( ) , o . submit = l } } catch ( s ) { } } n . finishInit = function ( e ) { e . save = r , e . getTextArea = function ( ) { return t } , e . toTextArea = function ( ) { e . toTextArea = isNaN , r ( ) , t . parentNode . removeChild ( e . getWrapperElement ( ) ) , t . style . display = "" , t . form && ( Ia ( t . form , "submit" , r ) , "function" == typeof t . form . submit && ( t . form . submit = a ) ) } } , t . style . display = "none" ; var c = e ( function ( e ) { t . parentNode . insertBefore ( e , t . nextSibling ) } , n ) ; return c } ; var ma = e . StringStream = function ( e , t ) { this . pos = this . start = 0 , this . string = e , this . tabSize = t || 8 , this . lastColumnPos = this . lastColumnValue = 0 , this . lineStart = 0 } ; ma . prototype = { Line truncated
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 . highlightFormatting && ( o . formatting = "header" ) , o . f = o . inline , h ( o ) ; if ( ! ( a ( o . prevLine ) || o . quote || s || c ) && ( f = t . match ( E ) ) ) return o . header = "=" == f [ 0 ] . charAt ( 0 ) ? 1 : 2 , n . highlightFormatting && ( o . formatting = "header" ) , o . f = o . inline , h ( o ) ; if ( t . eat ( ">" ) ) return o . quote = l ? 1 : o . quote + 1 , n . highlightFormatting && ( o . formatting = "quote" ) , t . eatSpace ( ) , h ( o ) ; if ( "[" === t . peek ( ) ) return i ( t , o , y ) ; if ( t . match ( L , ! 0 ) ) return o . hr = ! 0 , S . hr ; if ( ( a ( o . prevLine ) || s ) && ( t . match ( T , ! 1 ) || t . match ( M , ! 1 ) ) ) { var d = null ; for ( t . match ( T , ! 0 ) ? d = "ul" : ( t . match ( M , ! 0 ) , d = "ol" ) , o . indentation = t . column ( ) + t . current ( ) . length , o . list = ! 0 ; o . listStack && t . column ( ) < o . listStack [ o . listStack . length - 1 ] ; ) o . listStack . pop ( ) ; return o . listStack . push ( o . indentation ) , n . taskLists && t . match ( N , ! 1 ) && ( o . taskList = ! 0 ) , o . f = o . inline , n . highlightFormatting && ( o . formatting = [ "list" , "list-" + d ] ) , h ( o ) } return n . fencedCodeBlocks && ( f = t . match ( I , ! 0 ) ) ? ( o . fencedChars = f [ 1 ] , o . localMode = r ( f [ 2 ] ) , o . localMode && ( o . localState = e . startState ( o . localMode ) ) , o . f = o . block = u , n . highlightFormatting && ( o . formatting = "code-block" ) , o . code = - 1 , h ( o ) ) : i ( t , o , o . inline ) } function c ( t , n ) { var r = w . token ( t , n . htmlState ) ; if ( ! k ) { var i = e . innerMode ( w , n . htmlState ) ; ( "xml" == i . mode . name && null === i . state . tagStart && ! i . state . context && i . state . tokenize . isInText || n . md _inside && t . current ( ) . indexOf ( ">" ) > - 1 ) && ( n . f = p , n . block = s , n . htmlState = null ) } return r } function u ( e , t ) { return t . fencedChars && e . match ( t . fencedChars , ! 1 ) ? ( t . localMode = t . localState = null , t . f = t . block = f , null ) : t . localMode ? t . localMode . token ( e , t . localState ) : ( e . skipToEnd ( ) , S . code ) } function f ( e , t ) { e . match ( t . fencedChars ) , t . block = s , t . f = p , t . fencedChars = null , n . highlightFormatting && ( t . formatting = "code-block" ) , t . code = 1 ; var r = h ( t ) ; return t . code = 0 , r } function h ( e ) { var t = [ ] ; if ( e . formatting ) { t . push ( S . formatting ) , "string" == typeof e . formatting && ( e . formatting = [ e . formatting ] ) ; for ( var r = 0 ; r < e . formatting . length ; r ++ ) t . push ( S . formatting + "-" + e . formatting [ r ] ) , "header" === e . formatting [ r ] && t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . header ) , "quote" === e . formatting [ r ] && ( ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . formatting + "-" + e . formatting [ r ] + "-" + e . quote ) : t . push ( "error" ) ) } if ( e . taskOpen ) return t . push ( "meta" ) , t . length ? t . join ( " " ) : null ; if ( e . taskClosed ) return t . push ( "property" ) , t . length ? t . join ( " " ) : null ; if ( e . linkHref ? t . push ( S . linkHref , "url" ) : ( e . strong && t . push ( S . strong ) , e . em && t . push ( S . em ) , e . strikethrough && t . push ( S . strikethrough ) , e . linkText && t . push ( S . linkText ) , e . code && t . push ( S . code ) ) , e . header && t . push ( S . header , S . header + "-" + e . header ) , e . quote && ( t . push ( S . quote ) , ! n . maxBlockquoteDepth || n . maxBlockquoteDepth >= e . quote ? t . push ( S . quote + "-" + e . quote ) : t . push ( S . quote + "-" + n . maxBlockquoteDepth ) ) , e . list !== ! 1 ) { var i = ( e . listStack . length - 1 ) % 3 ; i ? 1 === i ? t . push ( S . list2 ) : t . push ( S . list3 ) : t . push ( S . list1 ) } return e . trailingSpaceNewLine ? t . push ( "trailing-space-new-line" ) : e . trailingSpace && t . push ( "trailing-space-" + ( e . trailingSpace % 2 ? "a" : "b" ) ) , t . length ? t . join ( " " ) : null } function d ( e , t ) { return e . match ( O , ! 0 ) ? h ( t ) : void 0 } function p ( t , r ) { var i = r . text ( t , r ) ; if ( "undefined" != typeof i ) return i ; if ( r . list ) return r . list = null , h ( r ) ; if ( r . taskList ) { var a = "x" !== t . match ( N , ! 0 ) [ 1 ] ; return a ? r . taskOpen = ! 0 : r . taskClosed = ! 0 , n . highlightFormatting && ( r . formatting = "task" ) , r . taskList = ! 1 , h ( r ) } if ( r . taskOpen = ! 1 , r . taskClosed = ! 1 , r . header && t . match ( /^#+$/ , ! 0 ) ) return n . highlightFormatting && ( r . formatting = "header" ) , h ( r ) ; var l = t . sol ( ) , s = t . next ( ) ; if ( r . linkTitle ) { r . linkTitle = ! 1 ; var u = s ; "(" === s && ( u = ")" ) , u = ( u + "" ) . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) ; var f = "^\\s*(?:[^" + u + "\\\\]+|\\\\\\\\|\\\\.)" + u ; if ( t . match ( new RegExp ( f ) , ! 0 ) ) return S . linkHref } if ( "`" === s ) { var d = r . formatting ; n . highlightFormatting && ( r . formatting = "code" ) , t . eatWhile ( "`" ) ; var p = t . current ( ) . length ; if ( 0 == r . code ) return r . code = p , h ( r ) ; if ( p == r . code ) { var v = h ( r ) ; return r . code = 0 , v } return r . formatting = d , h ( r ) } if ( r . code ) return h ( r ) ; if ( "\\" === s && ( t . next ( ) , n . highlightFormatting ) ) { var y = h ( r ) , x = S . formatting + "-escape" ; return y ? y + " " + x : x } if ( "!" === s && t . match ( /\[[^\]]*\] ?(?:\(|\[)/ , ! 1 ) ) return t . match ( /\[[^\]]*\]/ ) , r . inline = r . f = g , S . image ; if ( "[" === s && t . match ( /[^\]]*\](\(.*\)| ?\[.*?\])/ , ! 1 ) ) return r . linkText = ! 0 , n . highlightFormatting && ( r . formatting = "link" ) , h ( r ) ; if ( "]" === s && r . linkText && t . match ( /\(.*?\)| ?\[.*?\]/ , ! 1 ) ) { n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return r . linkText = ! 1 , r . inline = r . f = g , y } if ( "<" === s && t . match ( /^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/ , ! 1 ) ) { r . f = r . inline = m , n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return y ? y += " " : y = "" , y + S . linkInline } if ( "<" === s && t . match ( /^[^> \\]+@(?:[^\\>]|\\.)+>/ , ! 1 ) ) { r . f = r . inline = m , n . highlightFormatting && ( r . formatting = "link" ) ; var y = h ( r ) ; return y ? y += " " : y = "" , y + S . linkEmail } if ( "<" === s && t . match ( /^(!--|\w)/ , ! 1 ) ) { var b = t . string . indexOf ( ">" , t . pos ) ; if ( - 1 != b ) { var k = t . string . substring ( t . start , b ) ; /markdown\s*=\s*('|"){0,1}1('|"){0,1}/ . test ( k ) && ( r . md _inside = ! 0 ) } retu Line truncated
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]+?) *#* *(?:\n+|$)/ } ) , d . gfm . paragraph = c ( d . paragraph ) ( "(?!" , "(?!" + d . gfm . fences . source . replace ( "\\1" , "\\2" ) + "|" + d . list . source . replace ( "\\1" , "\\3" ) + "|" ) ( ) , d . tables = f ( { } , d . gfm , { nptable : /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/ , table : /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ } ) , t . rules = d , t . lex = function ( e , n ) { var r = new t ( n ) ; return r . lex ( e ) } , t . prototype . lex = function ( e ) { return e = e . replace ( /\r\n|\r/g , "\n" ) . replace ( /\t/g , " " ) . replace ( /\u00a0/g , " " ) . replace ( /\u2424/g , "\n" ) , this . token ( e , ! 0 ) } , t . prototype . token = function ( e , t , n ) { for ( var r , i , o , a , l , s , c , u , f , e = e . replace ( /^ +$/gm , "" ) ; e ; ) if ( ( o = this . rules . newline . exec ( e ) ) && ( e = e . substring ( o [ 0 ] . length ) , o [ 0 ] . length > 1 && this . tokens . push ( { type : "space" } ) ) , o = this . rules . code . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , o = o [ 0 ] . replace ( /^ {4}/gm , "" ) , this . tokens . push ( { type : "code" , text : this . options . pedantic ? o : o . replace ( /\n+$/ , "" ) } ) ; else if ( o = this . rules . fences . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "code" , lang : o [ 2 ] , text : o [ 3 ] || "" } ) ; else if ( o = this . rules . heading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : o [ 1 ] . length , text : o [ 2 ] } ) ; else if ( t && ( o = this . rules . nptable . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( o = this . rules . lheading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : "=" === o [ 2 ] ? 1 : 2 , text : o [ 1 ] } ) ; else if ( o = this . rules . hr . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "hr" } ) ; else if ( o = this . rules . blockquote . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "blockquote_start" } ) , o = o [ 0 ] . replace ( /^ *> ?/gm , "" ) , this . token ( o , t , ! 0 ) , this . tokens . push ( { type : "blockquote_end" } ) ; else if ( o = this . rules . list . exec ( e ) ) { for ( e = e . substring ( o [ 0 ] . length ) , a = o [ 2 ] , this . tokens . push ( { type : "list_start" , ordered : a . length > 1 } ) , o = o [ 0 ] . match ( this . rules . item ) , r = ! 1 , f = o . length , u = 0 ; f > u ; u ++ ) s = o [ u ] , c = s . length , s = s . replace ( /^ *([*+-]|\d+\.) +/ , "" ) , ~ s . indexOf ( "\n " ) && ( c -= s . length , s = this . options . pedantic ? s . replace ( /^ {1,4}/gm , "" ) : s . replace ( new RegExp ( "^ {1," + c + "}" , "gm" ) , "" ) ) , this . options . smartLists && u !== f - 1 && ( l = d . bullet . exec ( o [ u + 1 ] ) [ 0 ] , a === l || a . length > 1 && l . length > 1 || ( e = o . slice ( u + 1 ) . join ( "\n" ) + e , u = f - 1 ) ) , i = r || /\n\n(?!\s*$)/ . test ( s ) , u !== f - 1 && ( r = "\n" === s . charAt ( s . length - 1 ) , i || ( i = r ) ) , this . tokens . push ( { type : i ? "loose_item_start" : "list_item_start" } ) , this . token ( s , ! 1 , n ) , this . tokens . push ( { type : "list_item_end" } ) ; this . tokens . push ( { type : "list_end" } ) } else if ( o = this . rules . html . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : this . options . sanitize ? "paragraph" : "html" , pre : ! this . options . sanitizer && ( "pre" === o [ 1 ] || "script" === o [ 1 ] || "style" === o [ 1 ] ) , text : o [ 0 ] } ) ; else if ( ! n && t && ( o = this . rules . def . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . links [ o [ 1 ] . toLowerCase ( ) ] = { href : o [ 2 ] , title : o [ 3 ] } ; else if ( t && ( o = this . rules . table . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /(?: *\| *)?\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . replace ( /^ *\| *| *\| *$/g , "" ) . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( t && ( o = this . rules . paragraph . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "paragraph" , text : "\n" === o [ 1 ] . charAt ( o [ 1 ] . length - 1 ) ? o [ 1 ] . slice ( 0 , - 1 ) : o [ 1 ] } ) ; else if ( o = this . rules . text . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "text" , text : o [ 0 ] } ) ; else if ( e ) throw new Error ( "Infinite loop on byte: " + e . charCodeAt ( 0 ) ) ; return this . tokens } ; var p = { escape : /^\\([\\`*{}\[\]()#+\-.!_>])/ , autolink : /^<([^ >]+(@|:\/)[^ >]+)>/ , url : u , tag : /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/ , link : /^!?\[(inside)\]\(href\)/ , reflink : /^!?\[(inside)\]\s*\[([^\]]*)\]/ , nolink : /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/ , strong : /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/ , em : /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/ , code : /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/ , br : /^ {2,}\n(?!\s*$)/ , del : u , text : /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/ } ; p . _inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/ , p . _href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/ , p . link = c ( p . link ) ( "inside" , p . _inside ) ( "href" , p . _h Line truncated
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 . autosave . unique _id ) , this . options = e , this . render ( ) , ! e . initialValue || this . options . autosave && this . options . autosave . foundSavedValue === ! 0 || this . value ( e . initialValue ) } function _ ( ) { if ( "object" != typeof localStorage ) return ! 1 ; try { localStorage . setItem ( "smde_localStorage" , 1 ) , localStorage . removeItem ( "smde_localStorage" ) } catch ( e ) { return ! 1 } return ! 0 } var F = e ( "codemirror" ) ; e ( "codemirror/addon/edit/continuelist.js" ) , e ( "./codemirror/tablist" ) , e ( "codemirror/addon/display/fullscreen.js" ) , e ( "codemirror/mode/markdown/markdown.js" ) , e ( "codemirror/addon/mode/overlay.js" ) , e ( "codemirror/addon/display/placeholder.js" ) , e ( "codemirror/addon/selection/mark-selection.js" ) , e ( "codemirror/mode/gfm/gfm.js" ) , e ( "codemirror/mode/xml/xml.js" ) ; var z = e ( "codemirror-spell-checker" ) , j = e ( "marked" ) , U = /Mac/ . test ( navigator . platform ) , q = { toggleBold : c , toggleItalic : u , drawLink : k , toggleHeadingSmaller : p , toggleHeadingBigger : m , drawImage : S , toggleBlockquote : d , toggleOrderedList : b , toggleUnorderedList : x , toggleCodeBlock : h , togglePreview : A , toggleStrikethrough : f , toggleHeading1 : g , toggleHeading2 : v , toggleHeading3 : y , cleanBlock : w , drawTable : C , drawHorizontalRule : L , undo : T , redo : M , toggleSideBySide : N , toggleFullScreen : s } , G = { toggleBold : "Cmd-B" , toggleItalic : "Cmd-I" , drawLink : "Cmd-K" , toggleHeadingSmaller : "Cmd-H" , toggleHeadingBigger : "Shift-Cmd-H" , cleanBlock : "Cmd-E" , drawImage : "Cmd-Alt-I" , toggleBlockquote : "Cmd-'" , toggleOrderedList : "Cmd-Alt-L" , toggleUnorderedList : "Cmd-L" , toggleCodeBlock : "Cmd-Alt-C" , togglePreview : "Cmd-P" , toggleSideBySide : "F9" , toggleFullScreen : "F11" } , Y = function ( e ) { for ( var t in q ) if ( q [ t ] === e ) return t ; return null } , $ = function ( ) { var e = ! 1 ; return function ( t ) { ( /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i . test ( t ) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i . test ( t . substr ( 0 , 4 ) ) ) && ( e = ! 0 ) } ( navigator . userAgent || navigator . vendor || window . opera ) , e } , V = "" , K = { bold : { name : "bold" , action : c , className : "fa fa-bold" , title : "Bold" , default : ! 0 } , italic : { name : "italic" , action : u , className : "fa fa-italic" , title : "Italic" , default : ! 0 } , strikethrough : { name : "strikethrough" , action : f , className : "fa fa-strikethrough" , title : "Strikethrough" } , heading : { name : "heading" , action : p , className : "fa fa-header" , title : "Heading" , default : ! 0 } , "heading-smaller" : { name : "heading-smaller" , action : p , className : "fa fa-header fa-header-x fa-header-smaller" , title : "Smaller Heading" } , "heading-bigger" : { name : "heading-bigger" , action : m , className : "fa fa-header fa-header-x fa-header-bigger" , title : "Bigger Heading" } , "heading-1" : { name : "heading-1" , action : g , className : "fa fa-header fa-header-x fa-header-1" , title : "Big Heading" } , "heading-2" : { name : "heading-2" , action : v , className : "fa fa-header fa-header-x fa-header-2" , title : "Medium Heading" } , "heading-3" : { name : "heading-3" , action : y , className : "fa fa-header fa-header-x fa-header-3" , title : "Small Heading" } , "separator-1" : { name : "separator-1" } , code : { name : "code" , action : h , className : " fa
Line truncated
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 : "Insert" , 46 : "Delete" , 96 : "Numpad0" , 97 : "Numpad1" , 98 : "Numpad2" , 99 : "Numpad3" , 100 : "Numpad4" , 101 : "Numpad5" , 102 : "Numpad6" , 103 : "Numpad7" , 104 : "Numpad8" , 105 : "Numpad9" , "-13" : "NumpadEnter" , 112 : "F1" , 113 : "F2" , 114 : "F3" , 115 : "F4" , 116 : "F5" , 117 : "F6" , 118 : "F7" , 119 : "F8" , 120 : "F9" , 121 : "F10" , 122 : "F11" , 123 : "F12" , 144 : "Numlock" , 145 : "Scrolllock" } , PRINTABLE _KEYS : { 32 : " " , 48 : "0" , 49 : "1" , 50 : "2" , 51 : "3" , 52 : "4" , 53 : "5" , 54 : "6" , 55 : "7" , 56 : "8" , 57 : "9" , 59 : ";" , 61 : "=" , 65 : "a" , 66 : "b" , 67 : "c" , 68 : "d" , 69 : "e" , 70 : "f" , 71 : "g" , 72 : "h" , 73 : "i" , 74 : "j" , 75 : "k" , 76 : "l" , 77 : "m" , 78 : "n" , 79 : "o" , 80 : "p" , 81 : "q" , 82 : "r" , 83 : "s" , 84 : "t" , 85 : "u" , 86 : "v" , 87 : "w" , 88 : "x" , 89 : "y" , 90 : "z" , 107 : "+" , 109 : "-" , 110 : "." , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 111 : "/" , 106 : "*" } } ; for ( n in e . FUNCTION _KEYS ) t = e . FUNCTION _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; for ( n in e . PRINTABLE _KEYS ) t = e . PRINTABLE _KEYS [ n ] . toLowerCase ( ) , e [ t ] = parseInt ( n , 10 ) ; return r . mixin ( e , e . MODIFIER _KEYS ) , r . mixin ( e , e . PRINTABLE _KEYS ) , r . mixin ( e , e . FUNCTION _KEYS ) , e . enter = e . return , e . escape = e . esc , e . del = e . delete , e [ 173 ] = "-" , function ( ) { for ( var t = [ "cmd" , "ctrl" , "alt" , "shift" ] , n = Math . pow ( 2 , t . length ) ; n -- ; ) e . KEY _MODS [ n ] = t . filter ( function ( t ) { return n & e . KEY _MODS [ t ] } ) . join ( "-" ) + "-" } ( ) , e . KEY _MODS [ 0 ] = "" , e . KEY _MODS [ - 1 ] = "input-" , e } ( ) ; r . mixin ( t , i ) , t . keyCodeToString = function ( e ) { var t = i [ e ] ; return "string" != typeof t && ( t = String . fromCharCode ( e ) ) , t . toLowerCase ( ) } } ) , ace . define ( "ace/lib/useragent" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; if ( t . OS = { LINUX : "LINUX" , MAC : "MAC" , WINDOWS : "WINDOWS" } , t . getOS = function ( ) { return t . isMac ? t . OS . MAC : t . isLinux ? t . OS . LINUX : t . OS . WINDOWS } , "object" == typeof navigator ) { var r = ( navigator . platform . match ( /mac|win|linux/i ) || [ "other" ] ) [ 0 ] . toLowerCase ( ) , i = navigator . userAgent ; t . isWin = "win" == r , t . isMac = "mac" == r , t . isLinux = "linux" == r , t . isIE = "Microsoft Internet Explorer" == navigator . appName || navigator . appName . indexOf ( "MSAppHost" ) >= 0 ? parseFloat ( ( i . match ( /(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) : parseFloat ( ( i . match ( /(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/ ) || [ ] ) [ 1 ] ) , t . isOldIE = t . isIE && t . isIE < 9 , t . isGecko = t . isMozilla = ( window . Controllers || window . controllers ) && "Gecko" === window . navigator . product , t . isOldGecko = t . isGecko && parseInt ( ( i . match ( /rv:(\d+)/ ) || [ ] ) [ 1 ] , 10 ) < 4 , t . isOpera = window . opera && "[object Opera]" == Object . prototype . toString . call ( window . opera ) , t . isWebKit = parseFloat ( i . split ( "WebKit/" ) [ 1 ] ) || void 0 , t . isChrome = parseFloat ( i . split ( " Chrome/" ) [ 1 ] ) || void 0 , t . isAIR = i . indexOf ( "AdobeAIR" ) >= 0 , t . isIPad = i . indexOf ( "iPad" ) >= 0 , t . isTouchPad = i . indexOf ( "TouchPad" ) >= 0 , t . isChromeOS = i . indexOf ( " CrOS " ) >= 0 } } ) , ace . define ( "ace/lib/event" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/useragent" ] , function ( e , t , n ) { "use strict" ; function a ( e , t , n ) { var a = u ( t ) ; if ( ! i . isMac && s ) { if ( t . getModifierState && ( t . getModifierState ( "OS" ) || t . getModifierState ( "Win" ) ) && ( a |= 8 ) , s . altGr ) { if ( 3 == ( 3 & a ) ) return ; s . altGr = 0 } if ( 18 === n || 17 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 17 === n && 1 === f ) 1 == s [ n ] && ( o = t . timeStamp ) ; else if ( 18 === n && 3 === a && 2 === f ) { var l = t . timeStamp - o ; l < 50 && ( s . altGr = ! 0 ) } } } if ( n in r . MODIFIER _KEYS && ( n = - 1 ) , 8 & a && n >= 91 && n <= 93 && ( n = - 1 ) , ! a && 13 === n ) { var f = "location" in t ? t . location : t . keyLocation ; if ( 3 === f && ( e ( t , a , - n ) , t . defaultPrevented ) ) return } if ( i . isChromeOS && 8 & a ) { if ( e ( t , a , n ) , t . defaultPrevented ) return ; a &= - 9 } return ! ! ( a || n in r . FUNCTION _KEYS || n in r . PRINTABLE _KEYS ) && e ( t , a , n ) } function f ( ) { s = Object . create ( null ) } var r = e ( "./keys" ) , i = e ( "./useragent" ) , s = null , o = 0 ; t . addListener = function ( e , t , n ) { if ( e . addEventListener ) return e . addEventListener ( t , n , ! 1 ) ; if ( e . attachEvent ) { var r = function ( ) { n . call ( e , window . event ) } ; n . _wrapper = r , e . attachEvent ( "on" + t , r ) } } , t . removeListener = function ( e , t , n ) { return e . removeEventListener ? e . removeEventListener ( t , n , ! 1 ) : void ( e . detachEvent && e . detachEvent ( "on" + t , n . _wrapper || n ) ) } , t . stopEvent = function ( e ) { return t . stopPropagation ( e ) , t . preventDefault ( e ) , ! 1 } , t . stopPropagation = function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , t . preventDefault = function ( e ) { e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , t . getButton = function ( e ) { return "dblclick" == e . type ? 0 : "contextmenu" == e . type || i . isMac && e . ctrlKey && ! e . altKey && ! e . shiftKey ? 2 : e . preventDefault ? e . button : { 1 : 0 , 2 : 2 , 4 : 1 } [ e . button ] } , t . capture = function ( e , n , r ) { function i ( e ) { n && n ( e ) , r && r ( e ) , t . removeListener ( document , "mousemove" , n , ! 0 ) , t . removeListener ( document , "mouseup" , i , ! 0 ) , t . removeListener ( document , "dragstart" , i , ! 0 ) } return t . addListener ( document , "mousemove" , n , ! 0 ) , t . addListener ( document , "mouseup" , i , ! 0 ) , t . addListener ( document , "dragstart" , i , ! 0 ) , i } , t . addTouchMoveListener = function ( e , n ) { if ( "ontouchmove" in e ) { var r , i ; t . addListener ( e , "touchstart" , function ( e ) { var t = e . changedTouches [ 0 ] ; r = t . clientX , i = t . clientY } Line truncated
} } , 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 . draggable = ! 0 } this . setState ( "dragWait" ) } else this . startDrag ( ) ; this . captureMouse ( e , this . onMouseDrag . bind ( this ) ) , e . defaultPrevented = ! 0 } } } } ) . call ( f . prototype ) , t . DragdropHandler = f } ) , ace . define ( "ace/lib/net" , [ "require" , "exports" , "module" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./dom" ) ; t . get = function ( e , t ) { var n = new XMLHttpRequest ; n . open ( "GET" , e , ! 0 ) , n . onreadystatechange = function ( ) { 4 === n . readyState && t ( n . responseText ) } , n . send ( null ) } , t . loadScript = function ( e , t ) { var n = r . getDocumentHead ( ) , i = document . createElement ( "script" ) ; i . src = e , n . appendChild ( i ) , i . onload = i . onreadystatechange = function ( e , n ) { ! n && i . readyState && "loaded" != i . readyState && "complete" != i . readyState || ( i = i . onload = i . onreadystatechange = null , n || t ( ) ) } } , t . qualifyURL = function ( e ) { var t = document . createElement ( "a" ) ; return t . href = e , t . href } } ) , ace . define ( "ace/lib/event_emitter" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = { } , i = function ( ) { this . propagationStopped = ! 0 } , s = function ( ) { this . defaultPrevented = ! 0 } ; r . _emit = r . _dispatchEvent = function ( e , t ) { this . _eventRegistry || ( this . _eventRegistry = { } ) , this . _defaultHandlers || ( this . _defaultHandlers = { } ) ; var n = this . _eventRegistry [ e ] || [ ] , r = this . _defaultHandlers [ e ] ; if ( n . length || r ) { "object" == typeof t && t || ( t = { } ) , t . type || ( t . type = e ) , t . stopPropagation || ( t . stopPropagation = i ) , t . preventDefault || ( t . preventDefault = s ) , n = n . slice ( ) ; for ( var o = 0 ; o < n . length && ( n [ o ] ( t , this ) , ! t . propagationStopped ) ; o ++ ) ; return r && ! t . defaultPrevented ? r ( t , this ) : void 0 } } , r . _signal = function ( e , t ) { var n = ( this . _eventRegistry || { } ) [ e ] ; if ( n ) { n = n . slice ( ) ; for ( var r = 0 ; r < n . length ; r ++ ) n [ r ] ( t , this ) } } , r . once = function ( e , t ) { var n = this ; t && this . addEventListener ( e , function r ( ) { n . removeEventListener ( e , r ) , t . apply ( null , arguments ) } ) } , r . setDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n || ( n = this . _defaultHandlers = { _disabled _ : { } } ) , n [ e ] ) { var r = n [ e ] , i = n . _disabled _ [ e ] ; i || ( n . _disabled _ [ e ] = i = [ ] ) , i . push ( r ) ; var s = i . indexOf ( t ) ; s != - 1 && i . splice ( s , 1 ) } n [ e ] = t } , r . removeDefaultHandler = function ( e , t ) { var n = this . _defaultHandlers ; if ( n ) { var r = n . _disabled _ [ e ] ; if ( n [ e ] == t ) { n [ e ] ; r && this . setDefaultHandler ( e , r . pop ( ) ) } else if ( r ) { var s = r . indexOf ( t ) ; s != - 1 && r . splice ( s , 1 ) } } } , r . on = r . addEventListener = function ( e , t , n ) { this . _eventRegistry = this . _eventRegistry || { } ; var r = this . _eventRegistry [ e ] ; return r || ( r = this . _eventRegistry [ e ] = [ ] ) , r . indexOf ( t ) == - 1 && r [ n ? "unshift" : "push" ] ( t ) , t } , r . off = r . removeListener = r . removeEventListener = function ( e , t ) { this . _eventRegistry = this . _eventRegistry || { } ; var n = this . _eventRegistry [ e ] ; if ( n ) { var r = n . indexOf ( t ) ; r !== - 1 && n . splice ( r , 1 ) } } , r . removeAllListeners = function ( e ) { this . _eventRegistry && ( this . _eventRegistry [ e ] = [ ] ) } , t . EventEmitter = r } ) , ace . define ( "ace/lib/app_config" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "no use strict" ; function o ( e ) { "undefined" != typeof console && console . warn && console . warn . apply ( console , arguments ) } function u ( e , t ) { var n = new Error ( e ) ; n . data = t , "object" == typeof console && console . error && console . error ( n ) , setTimeout ( function ( ) { throw n } ) } var r = e ( "./oop" ) , i = e ( "./event_emitter" ) . EventEmitter , s = { setOptions : function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . setOption ( t , e [ t ] ) } , this ) } , getOptions : function ( e ) { var t = { } ; return e ? Array . isArray ( e ) || ( t = e , e = Object . keys ( t ) ) : e = Object . keys ( this . $options ) , e . forEach ( function ( e ) { t [ e ] = this . getOption ( e ) } , this ) , t } , setOption : function ( e , t ) { if ( this [ "$" + e ] !== t ) { var n = this . $options [ e ] ; return n ? n . forwardTo ? this [ n . forwardTo ] && this [ n . forwardTo ] . setOption ( e , t ) : ( n . handlesSet || ( this [ "$" + e ] = t ) , void ( n && n . set && n . set . call ( this , t ) ) ) : o ( 'misspelled option "' + e + '"' ) } } , getOption : function ( e ) { var t = this . $options [ e ] ; return t ? t . forwardTo ? this [ t . forwardTo ] && this [ t . forwardTo ] . getOption ( e ) : t && t . get ? t . get . call ( this ) : this [ "$" + e ] : o ( 'misspelled option "' + e + '"' ) } } , a = function ( ) { this . $defaultOptions = { } } ; ( function ( ) { r . implement ( this , i ) , this . defineOptions = function ( e , t , n ) { return e . $options || ( this . $defaultOptions [ t ] = e . $options = { } ) , Object . keys ( n ) . forEach ( function ( t ) { var r = n [ t ] ; "string" == typeof r && ( r = { forwardTo : r } ) , r . name || ( r . name = t ) , e . $options [ r . name ] = r , "initialValue" in r && ( e [ "$" + r . name ] = r . initialValue ) } ) , r . implement ( e , s ) , this } , this . resetOptions = function ( e ) { Object . keys ( e . $options ) . forEach ( function ( t ) { var n = e . $options [ t ] ; "value" in n && e . setOption ( t , n . value ) } ) } , this . setDefaultValue = function ( e , t , n ) { var r = this . $defaultOptions [ e ] || ( this . $defaultOptions [ e ] = { } ) ; r [ t ] && ( r . forwardTo ? this . setDefaultValue ( r . forwardTo , t , n ) : r [ t ] . value = n ) } , this . setDefaultValues = function ( e , t ) { Object . keys ( t ) . forEach ( function ( n ) { this . setDefaultValue ( e , n , t [ n ] ) } , this ) } , this . warn = o , this . reportError = u } ) . call ( a . prototype ) , t . AppConfig = a } ) , ace . de Line truncated
} ) } 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 ( var y = 0 ; y < p . length ; y ++ ) f . push ( p [ y ] ) } if ( l == e . length ) break ; if ( l = m , c ++ > i ) { for ( c > 2 * e . length && this . reportError ( "infinite loop with in ace tokenizer" , { startState : t , line : e } ) ; l < e . length ; ) h . type && f . push ( h ) , h = { value : e . substring ( l , l += 2e3 ) , type : "overflow" } ; r = "start" , n = [ ] ; break } } return h . type && f . push ( h ) , n . length > 1 && n [ 0 ] !== r && n . unshift ( "#tmp" , r ) , { tokens : f , state : n . length ? n : r } } , this . reportError = r . reportError } ) . call ( s . prototype ) , t . Tokenizer = s } ) , ace . define ( "ace/mode/text_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/lang" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/lang" ) , i = function ( ) { this . $rules = { start : [ { token : "empty_line" , regex : "^$" } , { defaultToken : "text" } ] } } ; ( function ( ) { this . addRules = function ( e , t ) { if ( t ) for ( var n in e ) { for ( var r = e [ n ] , i = 0 ; i < r . length ; i ++ ) { var s = r [ i ] ; ( s . next || s . onMatch ) && ( "string" == typeof s . next && 0 !== s . next . indexOf ( t ) && ( s . next = t + s . next ) , s . nextState && 0 !== s . nextState . indexOf ( t ) && ( s . nextState = t + s . nextState ) ) } this . $rules [ t + n ] = r } else for ( var n in e ) this . $rules [ n ] = e [ n ] } , this . getRules = function ( ) { return this . $rules } , this . embedRules = function ( e , t , n , i , s ) { var o = "function" == typeof e ? ( new e ) . getRules ( ) : e ; if ( i ) for ( var u = 0 ; u < i . length ; u ++ ) i [ u ] = t + i [ u ] ; else { i = [ ] ; for ( var a in o ) i . push ( t + a ) } if ( this . addRules ( o , t ) , n ) for ( var f = Array . prototype [ s ? "push" : "unshift" ] , u = 0 ; u < i . length ; u ++ ) f . apply ( this . $rules [ i [ u ] ] , r . deepCopy ( n ) ) ; this . $embeds || ( this . $embeds = [ ] ) , this . $embeds . push ( t ) } , this . getEmbeds = function ( ) { return this . $embeds } ; var e = function ( e , t ) { return ( "start" != e || t . length ) && t . unshift ( this . nextState , e ) , this . nextState } , t = function ( e , t ) { return t . shift ( ) , t . shift ( ) || "start" } ; this . normalizeRules = function ( ) { function i ( s ) { var o = r [ s ] ; o . processed = ! 0 ; for ( var u = 0 ; u < o . length ; u ++ ) { var a = o [ u ] , f = null ; Array . isArray ( a ) && ( f = a , a = { } ) , ! a . regex && a . start && ( a . regex = a . start , a . next || ( a . next = [ ] ) , a . next . push ( { defaultToken : a . token } , { token : a . token + ".end" , regex : a . end || a . start , next : "pop" } ) , a . token = a . token + ".start" , a . push = ! 0 ) ; var l = a . next || a . push ; if ( l && Array . isArray ( l ) ) { var c = a . stateName ; c || ( c = a . token , "string" != typeof c && ( c = c [ 0 ] || "" ) , r [ c ] && ( c += n ++ ) ) , r [ c ] = l , a . next = c , i ( c ) } else "pop" == l && ( a . next = t ) ; if ( a . push && ( a . nextState = a . next || a . push , a . next = e , delete a . push ) , a . rules ) for ( var h in a . rules ) r [ h ] ? r [ h ] . push && r [ h ] . push . apply ( r [ h ] , a . rules [ h ] ) : r [ h ] = a . rules [ h ] ; var p = "string" == typeof a ? a : "string" == typeof a . include ? a . include : "" ; if ( p && ( f = r [ p ] ) , f ) { var d = [ u , 1 ] . concat ( f ) ; a . noEscape && ( d = d . filter ( function ( e ) { return ! e . next } ) ) , o . splice . apply ( o , d ) , u -- } a . keywordMap && ( a . token = this . createKeywordMapper ( a . keywordMap , a . defaultToken || "text" , a . caseInsensitive ) , delete a . defaultToken ) } } var n = 0 , r = this . $rules ; Object . keys ( r ) . forEach ( i , this ) } , this . createKeywordMapper = function ( e , t , n , r ) { var i = Object . create ( null ) ; return Object . keys ( e ) . forEach ( function ( t ) { var s = e [ t ] ; n && ( s = s . toLowerCase ( ) ) ; for ( var o = s . split ( r || "|" ) , u = o . length ; u -- ; ) i [ o [ u ] ] = t } ) , Object . getPrototypeOf ( i ) && ( i . _ _proto _ _ = null ) , this . $keywordList = Object . keys ( i ) , e = null , n ? function ( e ) { return i [ e . toLowerCase ( ) ] || t } : function ( e ) { return i [ e ] || t } } , this . getKeywords = function ( ) { return this . $keywords } } ) . call ( i . prototype ) , t . TextHighlightRules = i } ) , ace . define ( "ace/mode/behaviour" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( ) { this . $behaviours = { } } ; ( function ( ) { this . add = function ( e , t , n ) { switch ( void 0 ) { case this . $behaviours : this . $behaviours = { } ; case this . $behaviours [ e ] : this . $behaviours [ e ] = { } } this . $behaviours [ e ] [ t ] = n } , this . addBehaviours = function ( e ) { for ( var t in e ) for ( var n in e [ t ] ) this . add ( t , n , e [ t ] [ n ] ) } , this . remove = function ( e ) { this . $behaviours && this . $behaviours [ e ] && delete this . $behaviours [ e ] } , this . inherit = function ( e , t ) { if ( "function" == typeof e ) var n = ( new e ) . getBehaviours ( t ) ; else var n = e . getBehaviours ( t ) ; this . addBehaviours ( n ) } , this . getBehaviours = function ( e ) { if ( ! e ) return this . $behaviours ; for ( var t = { } , n = 0 ; n < e . length ; n ++ ) this . $behaviours [ e [ n ] ] && ( t [ e [ n ] ] = this . $behaviours [ e [ n ] ] ) ; return t } } ) . call ( r . prototype ) , t . Behaviour = r } ) , ace . define ( "ace/token_iterator" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( e , t , n ) { this . $session = e , this . $row = t , this . $rowTokens = e . getTokens ( t ) ; var r = e . getTokenAt ( t , n ) ; this . $tokenIndex = r ? r . index : - 1 } ; ( function ( ) { this . stepBackward = function ( ) { for ( this . $tokenIndex -= 1 ; this . $tokenIndex < 0 ; ) { if ( this . $row -= 1 , this . $row < 0 ) return this . $row = 0 , null ; this . $rowTokens = this . $session . getTokens ( this . $row ) , this . $tokenIndex = this . $rowTokens . length - 1 } return this . $rowTokens [ this . $tokenIndex ] } , this . stepForward = function ( ) { this . $tokenIndex += 1 ; for ( var e ; this . $tokenIndex >= this . $rowTokens . length ; ) { if ( this . $row += 1 , e || ( e = this . $session . getLength ( ) ) , this . $row >= e ) retu Line truncated
Z : "002000A01680180E2000-200A20282029202F205F3000" , Zs : "002000A01680180E2000-200A202F205F3000" , Zl : "2028" , Zp : "2029" , C : "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF" , Cc : "0000-001F007F-009F" , Cf : "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB" , Co : "E000-F8FF" , Cs : "D800-DFFF" , Cn : " 03780379037 F - 0383038 B038D03A20526 - 05300557055805600588058 B - 059005 C8 - 05 CF05EB - 05 EF05F5 - 05 FF06040605061C061D0620065F070E074B074C07B2 - 07 BF07FB - 07 FF082E082F083F - 08 FF093A093B094F095609570973 - 097809800984098 D098E0991099209A909B109B3 - 09 B509BA09BB09C509C609C909CA09CF - 09 D609D8 - 09 DB09DE09E409E509FC - 0 A000A040A0B - 0 A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43 - 0 A460A490A4A0A4E - 0 A500A52 - 0 A580A5D0A5F - 0 A650A76 - 0 A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1 - 0 ADF0AE40AE50AF00AF2 - 0B000 B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E - 0 B550B58 - 0 B5B0B5E0B640B650B72 - 0 B810B840B8B - 0 B8D0B910B96 - 0 B980B9B0B9D0BA0 - 0 BA20BA5 - 0 BA70BAB - 0 BAD0BBA - 0 BBD0BC3 - 0 BC50BC90BCE0BCF0BD1 - 0 BD60BD8 - 0 BE50BFB - 0 C000C040C0D0C110C290C340C3A - 0 C3C0C450C490C4E - 0 C540C570C5A - 0 C5F0C640C650C70 - 0 C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE - 0 CD40CD7 - 0 CDD0CDF0CE40CE50CF00CF3 - 0 D010D040D0D0D110D290D3A - 0 D3C0D450D490D4E - 0 D560D58 - 0 D5F0D640D650D76 - 0 D780D800D810D840D97 - 0 D990DB20DBC0DBE0DBF0DC7 - 0 DC90DCB - 0 DCE0DD50DD70DE0 - 0 DF10DF5 - 0E000 E3B - 0E3 E0E5C - 0E800 E830E850E860E890E8B0E8C0E8E - 0E930 E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE - 0 EFF0F480F6D - 0 F700F8C - 0 F8F0F980FBD0FCD0FD9 - 0 FFF10C6 - 10 CF10FD - 10 FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B - 135E137 D - 137 F139A - 139 F13F5 - 13 FF169D - 169 F16F1 - 16 FF170D1715 - 171 F1737 - 173 F1754 - 175 F176D17711774 - 177 F17DE17DF17EA - 17 EF17FA - 17 FF180F181A - 181 F1878 - 187 F18AB - 18 AF18F6 - 18 FF191D - 191 F192C - 192 F193C - 193 F1941 - 1943196E196 F1975 - 197 F19AC - 19 AF19CA - 19 CF19DB - 19 DD1A1C1A1D1A5F1A7D1A7E1A8A - 1 A8F1A9A - 1 A9F1AAE - 1 AFF1B4C - 1 B4F1B7D - 1 B7F1BAB - 1 BAD1BBA - 1 BFF1C38 - 1 C3A1C4A - 1 C4C1C80 - 1 CCF1CF3 - 1 CFF1DE7 - 1 DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065 - 206920722073208 F2095 - 209 F20B9 - 20 CF20F1 - 20 FF218A - 218 F23E9 - 23 FF2427 - 243 F244B - 245 F26CE26E226E4 - 26E727002705270 A270B2728274C274E2753 - 2755275 F27602795 - 279727 B027BF27CB27CD - 27 CF2B4D - 2 B4F2B5A - 2 BFF2C2F2C5F2CF2 - 2 CF82D26 - 2 D2F2D66 - 2 D6E2D70 - 2 D7F2D97 - 2 D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32 - 2E7 F2E9A2EF4 - 2 EFF2FD6 - 2 FEF2FFC - 2 FFF3040309730983100 - Line truncated
! 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 . getLine ( o . start . row ) . substring ( i . end . column ) ) , n == - 1 ? s . substring ( 0 , t - i . end . column ) : 1 == n ? s . substring ( t - i . end . column ) : s } , this . getFoldLine = function ( e , t ) { var n = this . $foldData , r = 0 ; for ( t && ( r = n . indexOf ( t ) ) , r == - 1 && ( r = 0 ) , r ; r < n . length ; r ++ ) { var i = n [ r ] ; if ( i . start . row <= e && i . end . row >= e ) return i ; if ( i . end . row > e ) return null } return null } , this . getNextFoldLine = function ( e , t ) { var n = this . $foldData , r = 0 ; for ( t && ( r = n . indexOf ( t ) ) , r == - 1 && ( r = 0 ) , r ; r < n . length ; r ++ ) { var i = n [ r ] ; if ( i . end . row >= e ) return i } return null } , this . getFoldedRowCount = function ( e , t ) { for ( var n = this . $foldData , r = t - e + 1 , i = 0 ; i < n . length ; i ++ ) { var s = n [ i ] , o = s . end . row , u = s . start . row ; if ( o >= t ) { u < t && ( u >= e ? r -= t - u : r = 0 ) ; break } o >= e && ( r -= u >= e ? o - u : o - e + 1 ) } return r } , this . $addFoldLine = function ( e ) { return this . $foldData . push ( e ) , this . $foldData . sort ( function ( e , t ) { return e . start . row - t . start . row } ) , e } , this . addFold = function ( e , t ) { var o , n = this . $foldData , r = ! 1 ; e instanceof s ? o = e : ( o = new s ( t , e ) , o . collapseChildren = t . collapseChildren ) , this . $clipRangeToDocument ( o . range ) ; var u = o . start . row , a = o . start . column , f = o . end . row , l = o . end . column ; if ( u < f || u == f && a <= l - 2 ) { var c = this . getFoldAt ( u , a , 1 ) , h = this . getFoldAt ( f , l , - 1 ) ; if ( c && h == c ) return c . addSubFold ( o ) ; c && ! c . range . isStart ( u , a ) && this . removeFold ( c ) , h && ! h . range . isEnd ( f , l ) && this . removeFold ( h ) ; var p = this . getFoldsInRange ( o . range ) ; p . length > 0 && ( this . removeFolds ( p ) , p . forEach ( function ( e ) { o . addSubFold ( e ) } ) ) ; for ( var d = 0 ; d < n . length ; d ++ ) { var v = n [ d ] ; if ( f == v . start . row ) { v . addFold ( o ) , r = ! 0 ; break } if ( u == v . end . row ) { if ( v . addFold ( o ) , r = ! 0 , ! o . sameRow ) { var m = n [ d + 1 ] ; if ( m && m . start . row == f ) { v . merge ( m ) ; break } } break } if ( f <= v . start . row ) break } return r || ( v = this . $addFoldLine ( new i ( this . $foldData , o ) ) ) , this . $useWrapMode ? this . $updateWrapData ( v . start . row , v . start . row ) : this . $updateRowLengthCache ( v . start . row , v . start . row ) , this . $modified = ! 0 , this . _signal ( "changeFold" , { data : o , action : "add" } ) , o } throw new Error ( "The range has to be at least 2 characters width" ) } , this . addFolds = function ( e ) { e . forEach ( function ( e ) { this . addFold ( e ) } , this ) } , this . removeFold = function ( e ) { var t = e . foldLine , n = t . start . row , r = t . end . row , i = this . $foldData , s = t . folds ; if ( 1 == s . length ) i . splice ( i . indexOf ( t ) , 1 ) ; else if ( t . range . isEnd ( e . end . row , e . end . column ) ) s . pop ( ) , t . end . row = s [ s . length - 1 ] . end . row , t . end . column = s [ s . length - 1 ] . end . column ; else if ( t . range . isStart ( e . start . row , e . start . column ) ) s . shift ( ) , t . start . row = s [ 0 ] . start . row , t . start . column = s [ 0 ] . start . column ; else if ( e . sameRow ) s . splice ( s . indexOf ( e ) , 1 ) ; else { var o = t . split ( e . start . row , e . start . column ) ; s = o . folds , s . shift ( ) , o . start . row = s [ 0 ] . start . row , o . start . column = s [ 0 ] . start . column } this . $updating || ( this . $useWrapMode ? this . $updateWrapData ( n , r ) : this . $updateRowLengthCache ( n , r ) ) , this . $modified = ! 0 , this . _signal ( "changeFold" , { data : e , action : "remove" } ) } , this . removeFolds = function ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) t . push ( e [ n ] ) ; t . forEach ( function ( e ) { this . removeFold ( e ) } , this ) , this . $modified = ! 0 } , this . expandFold = function ( e ) { this . removeFold ( e ) , e . subFolds . forEach ( function ( t ) { e . restoreRange ( t ) , this . addFold ( t ) } , this ) , e . collapseChildren > 0 && this . foldAll ( e . start . row + 1 , e . end . row , e . collapseChildren - 1 ) , e . subFolds = [ ] } , this . expandFolds = function ( e ) { e . forEach ( function ( e ) { this . expandFold ( e ) } , this ) } , this . unfold = function ( e , t ) { var n , i ; if ( null == e ? ( n = new r ( 0 , 0 , this . getLength ( ) , 0 ) , t = ! 0 ) : n = "number" == typeof e ? new r ( e , 0 , e , this . getLine ( e ) . length ) : "row" in e ? r . fromPoints ( e , e ) : e , i = this . getFoldsInRangeList ( n ) , t ) this . removeFolds ( i ) ; else for ( var s = i ; s . length ; ) this . expandFolds ( s ) , s = this . getFoldsInRangeList ( n ) ; if ( i . length ) return i } , this . isRowFolded = function ( e , t ) { return ! ! this . getFoldLine ( e , t ) } , this . getRowFoldEnd = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . end . row : e } , this . getRowFoldStart = function ( e , t ) { var n = this . getFoldLine ( e , t ) ; return n ? n . start . row : e } , this . getFoldDisplayLine = function ( e , t , n , r , i ) { null == r && ( r = e . start . row ) , null == i && ( i = 0 ) , null == t && ( t = e . end . row ) , null == n && ( n = this . getLine ( t ) . length ) ; var s = this . doc , o = "" ; return e . walk ( function ( e , t , n , u ) { if ( ! ( t < r ) ) { if ( t == r ) { if ( n < i ) return ; u = Math . max ( i , u ) } o += null != e ? e : s . getLine ( t ) . substring ( u , n ) } } , t , n ) , o } , this . getDisplayLine = function ( e , t , n , r ) { var i = this . getFoldLine ( e ) ; if ( ! i ) { var s ; return s = this . doc . getLine ( e ) , s . substring ( r || 0 , t || s . length ) } return this . getFoldDisplayLine ( i , e , t , n , r ) } , this . $cloneFoldData = function ( ) { var e = [ ] ; return e = this . $foldData . map ( function ( t ) { var n = t . folds . map ( function ( e ) { return e . clone ( ) } ) ; return new i ( e , n ) } ) } , this . toggleFold = function ( e ) { var r , i , t = this . selection , n = t . getRange ( ) ; if ( n . isEmpty ( ) ) { var s = n . start ; if ( r = this . getFoldAt ( s . row , s . column ) ) return void this . expandFold ( r ) ; ( i = this . findMatchingBracket ( s ) ) ? 1 == n . comparePoint ( i ) ? n . end = i : ( n . start = i , n . start . column ++ , n . end . column -- ) : ( i = this . findMatchingBracket ( { row : s . row , column : s . column + 1 } ) ) ? ( 1 == n . comparePoint ( i ) ? n . end = i : n . start = i , n . start . column ++ ) : n = this . getCommentFoldRange ( s . row , s . column ) || n } else { var o = this . getFoldsInRange ( n ) ; if ( e && o . lengt Line truncated
! ( 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 . $wrapData [ e ] . length + 1 + t : 1 + t } , this . getRowLineCount = function ( e ) { return this . $useWrapMode && this . $wrapData [ e ] ? this . $wrapData [ e ] . length + 1 : 1 } , this . getRowWrapIndent = function ( e ) { if ( this . $useWrapMode ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) , n = this . $wrapData [ t . row ] ; return n . length && n [ 0 ] < t . column ? n . indent : 0 } return 0 } , this . getScreenLastRowColumn = function ( e ) { var t = this . screenToDocumentPosition ( e , Number . MAX _VALUE ) ; return this . documentToScreenColumn ( t . row , t . column ) } , this . getDocumentLastRowColumn = function ( e , t ) { var n = this . documentToScreenRow ( e , t ) ; return this . getScreenLastRowColumn ( n ) } , this . getDocumentLastRowColumnPosition = function ( e , t ) { var n = this . documentToScreenRow ( e , t ) ; return this . screenToDocumentPosition ( n , Number . MAX _VALUE / 10 ) } , this . getRowSplitData = function ( e ) { return this . $useWrapMode ? this . $wrapData [ e ] : void 0 } , this . getScreenTabSize = function ( e ) { return this . $tabSize - e % this . $tabSize } , this . screenToDocumentRow = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . row } , this . screenToDocumentColumn = function ( e , t ) { return this . screenToDocumentPosition ( e , t ) . column } , this . screenToDocumentPosition = function ( e , t ) { if ( e < 0 ) return { row : 0 , column : 0 } ; var n , s , r = 0 , i = 0 , o = 0 , u = 0 , a = this . $screenRowCache , f = this . $getRowCacheIndex ( a , e ) , l = a . length ; if ( l && f >= 0 ) var o = a [ f ] , r = this . $docRowCache [ f ] , c = e > a [ l - 1 ] ; else var c = ! l ; for ( var h = this . getLength ( ) - 1 , p = this . getNextFoldLine ( r ) , d = p ? p . start . row : 1 / 0 ; o <= e && ( u = this . getRowLength ( r ) , ! ( o + u > e || r >= h ) ) ; ) o += u , r ++ , r > d && ( r = p . end . row + 1 , p = this . getNextFoldLine ( r , p ) , d = p ? p . start . row : 1 / 0 ) , c && ( this . $docRowCache . push ( r ) , this . $screenRowCache . push ( o ) ) ; if ( p && p . start . row <= r ) n = this . getFoldDisplayLine ( p ) , r = p . start . row ; else { if ( o + u <= e || r > h ) return { row : h , column : this . getLine ( h ) . length } ; n = this . getLine ( r ) , p = null } var v = 0 ; if ( this . $useWrapMode ) { var m = this . $wrapData [ r ] ; if ( m ) { var g = Math . floor ( e - o ) ; s = m [ g ] , g > 0 && m . length && ( v = m . indent , i = m [ g - 1 ] || m [ m . length - 1 ] , n = n . substring ( i ) ) } } return i += this . $getStringScreenWidth ( n , t - v ) [ 1 ] , this . $useWrapMode && i >= s && ( i = s - 1 ) , p ? p . idxToPosition ( i ) : { row : r , column : i } } , this . documentToScreenPosition = function ( e , t ) { if ( "undefined" == typeof t ) var n = this . $clipPositionToDocument ( e . row , e . column ) ; else n = this . $clipPositionToDocument ( e , t ) ; e = n . row , t = n . column ; var r = 0 , i = null , s = null ; s = this . getFoldAt ( e , t , 1 ) , s && ( e = s . start . row , t = s . start . column ) ; var o , u = 0 , a = this . $docRowCache , f = this . $getRowCacheIndex ( a , e ) , l = a . length ; if ( l && f >= 0 ) var u = a [ f ] , r = this . $screenRowCache [ f ] , c = e > a [ l - 1 ] ; else var c = ! l ; for ( var h = this . getNextFoldLine ( u ) , p = h ? h . start . row : 1 / 0 ; u < e ; ) { if ( u >= p ) { if ( o = h . end . row + 1 , o > e ) break ; h = this . getNextFoldLine ( o , h ) , p = h ? h . start . row : 1 / 0 } else o = u + 1 ; r += this . getRowLength ( u ) , u = o , c && ( this . $docRowCache . push ( u ) , this . $screenRowCache . push ( r ) ) } var d = "" ; h && u >= p ? ( d = this . getFoldDisplayLine ( h , e , t ) , i = h . start . row ) : ( d = this . getLine ( e ) . substring ( 0 , t ) , i = e ) ; var v = 0 ; if ( this . $useWrapMode ) { var m = this . $wrapData [ i ] ; if ( m ) { for ( var g = 0 ; d . length >= m [ g ] ; ) r ++ , g ++ ; d = d . substring ( m [ g - 1 ] || 0 , d . length ) , v = g > 0 ? m . indent : 0 } } return { row : r , column : v + this . $getStringScreenWidth ( d ) [ 0 ] } } , this . documentToScreenColumn = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . column } , this . documentToScreenRow = function ( e , t ) { return this . documentToScreenPosition ( e , t ) . row } , this . getScreenLength = function ( ) { var e = 0 , t = null ; if ( this . $useWrapMode ) for ( var i = this . $wrapData . length , s = 0 , r = 0 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ; s < i ; ) { var u = this . $wrapData [ s ] ; e += u ? u . length + 1 : 1 , s ++ , s > o && ( s = t . end . row + 1 , t = this . $foldData [ r ++ ] , o = t ? t . start . row : 1 / 0 ) } else { e = this . getLength ( ) ; for ( var n = this . $foldData , r = 0 ; r < n . length ; r ++ ) t = n [ r ] , e -= t . end . row - t . start . row } return this . lineWidgets && ( e += this . $getWidgetScreenLength ( ) ) , e } , this . $setFontMetrics = function ( e ) { this . $enableVarChar && ( this . $getStringScreenWidth = function ( t , n , r ) { if ( 0 === n ) return [ 0 , 0 ] ; n || ( n = 1 / 0 ) , r = r || 0 ; var i , s ; for ( s = 0 ; s < t . length && ( i = t . charAt ( s ) , r += "\t" === i ? this . getScreenTabSize ( r ) : e . getCharacterWidth ( i ) , ! ( r > n ) ) ; s ++ ) ; return [ r , s ] } ) } , this . destroy = function ( ) { this . bgTokenizer && ( this . bgTokenizer . setDocument ( null ) , this . bgTokenizer = null ) , this . $stopWorker ( ) } } ) . call ( p . prototype ) , e ( "./edit_session/folding" ) . Folding . call ( p . prototype ) , e ( "./edit_session/bracket_match" ) . BracketMatch . call ( p . prototype ) , s . defineOptions ( p . prototype , "session" , { wrap : { set : function ( e ) { if ( e && "off" != e ? "free" == e ? e = ! 0 : "printMargin" == e ? e = - 1 : "string" == typeof e && ( e = parseInt ( e , 10 ) || ! 1 ) : e = ! 1 , this . $wrap != e ) if ( this . $wrap = e , e ) { var t = "number" == typeof e ? e : null ; this . setWrapLimitRange ( t , t ) , this . setUseWrapMode ( ! 0 ) } else this . setUseWrapMode ( ! 1 ) } , get : function ( ) { return this . getUseWrapMode ( ) ? this . $wrap == - 1 ? "printMargin" : this . getWrapLimitRange ( ) . min ? this . $wrap : "free" : "off" } , handlesSet : ! 0 } , wrapMethod : { set : function ( e ) { e = "auto" == e ? "text" != this . $mode . type : "text" != e , e != this . $wrapAsCode && ( this . $wrapAsCode = e , this . $useWrapMode && ( this . $modified = ! 0 , this . $resetRowCache ( 0 ) , this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) ) ) } , initialValue : "auto" } , i Line truncated
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 ( this . curOp ) { if ( ! e || this . curOp . command ) return ; this . prevOp = this . curOp } e || ( this . previousCommand = null , e = { } ) , this . $opResetTimer . schedule ( ) , this . curOp = { command : e . command || { } , args : e . args , scrollTop : this . renderer . scrollTop } , this . curOp . command . name && void 0 !== this . curOp . command . scrollIntoView && this . $blockScrolling ++ } , this . endOperation = function ( e ) { if ( this . curOp ) { if ( e && e . returnValue === ! 1 ) return this . curOp = null ; this . _signal ( "beforeEndOperation" ) ; var t = this . curOp . command ; t . name && this . $blockScrolling > 0 && this . $blockScrolling -- ; var n = t && t . scrollIntoView ; if ( n ) { switch ( n ) { case "center-animate" : n = "animate" ; case "center" : this . renderer . scrollCursorIntoView ( null , . 5 ) ; break ; case "animate" : case "cursor" : this . renderer . scrollCursorIntoView ( ) ; break ; case "selectionPart" : var r = this . selection . getRange ( ) , i = this . renderer . layerConfig ; ( r . start . row >= i . lastRow || r . end . row <= i . firstRow ) && this . renderer . scrollSelectionIntoView ( this . selection . anchor , this . selection . lead ) } "animate" == n && this . renderer . animateScrolling ( this . curOp . scrollTop ) } this . prevOp = this . curOp , this . curOp = null } } , this . $mergeableCommands = [ "backspace" , "del" , "insertstring" ] , this . $historyTracker = function ( e ) { if ( this . $mergeUndoDeltas ) { var t = this . prevOp , n = this . $mergeableCommands , r = t . command && e . command . name == t . command . name ; if ( "insertstring" == e . command . name ) { var i = e . args ; void 0 === this . mergeNextCommand && ( this . mergeNextCommand = ! 0 ) , r = r && this . mergeNextCommand && ( ! /\s/ . test ( i ) || /\s/ . test ( t . args ) ) , this . mergeNextCommand = ! 0 } else r = r && n . indexOf ( e . command . name ) !== - 1 ; "always" != this . $mergeUndoDeltas && Date . now ( ) - this . sequenceStartTime > 2e3 && ( r = ! 1 ) , r ? this . session . mergeUndoDeltas = ! 0 : n . indexOf ( e . command . name ) !== - 1 && ( this . sequenceStartTime = Date . now ( ) ) } } , this . setKeyboardHandler = function ( e , t ) { if ( e && "string" == typeof e ) { this . $keybindingId = e ; var n = this ; g . loadModule ( [ "keybinding" , e ] , function ( r ) { n . $keybindingId == e && n . keyBinding . setKeyboardHandler ( r && r . handler ) , t && t ( ) } ) } else this . $keybindingId = null , this . keyBinding . setKeyboardHandler ( e ) , t && t ( ) } , this . getKeyboardHandler = function ( ) { return this . keyBinding . getKeyboardHandler ( ) } , this . setSession = function ( e ) { if ( this . session != e ) { this . curOp && this . endOperation ( ) , this . curOp = { } ; var t = this . session ; if ( t ) { this . session . off ( "change" , this . $onDocumentChange ) , this . session . off ( "changeMode" , this . $onChangeMode ) , this . session . off ( "tokenizerUpdate" , this . $onTokenizerUpdate ) , this . session . off ( "changeTabSize" , this . $onChangeTabSize ) , this . session . off ( "changeWrapLimit" , this . $onChangeWrapLimit ) , this . session . off ( "changeWrapMode" , this . $onChangeWrapMode ) , this . session . off ( "changeFold" , this . $onChangeFold ) , this . session . off ( "changeFrontMarker" , this . $onChangeFrontMarker ) , this . session . off ( "changeBackMarker" , this . $onChangeBackMarker ) , this . session . off ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . session . off ( "changeAnnotation" , this . $onChangeAnnotation ) , this . session . off ( "changeOverwrite" , this . $onCursorChange ) , this . session . off ( "changeScrollTop" , this . $onScrollTopChange ) , this . session . off ( "changeScrollLeft" , this . $onScrollLeftChange ) ; var n = this . session . getSelection ( ) ; n . off ( "changeCursor" , this . $onCursorChange ) , n . off ( "changeSelection" , this . $onSelectionChange ) } this . session = e , e ? ( this . $onDocumentChange = this . onDocumentChange . bind ( this ) , e . on ( "change" , this . $onDocumentChange ) , this . renderer . setSession ( e ) , this . $onChangeMode = this . onChangeMode . bind ( this ) , e . on ( "changeMode" , this . $onChangeMode ) , this . $onTokenizerUpdate = this . onTokenizerUpdate . bind ( this ) , e . on ( "tokenizerUpdate" , this . $onTokenizerUpdate ) , this . $onChangeTabSize = this . renderer . onChangeTabSize . bind ( this . renderer ) , e . on ( "changeTabSize" , this . $onChangeTabSize ) , this . $onChangeWrapLimit = this . onChangeWrapLimit . bind ( this ) , e . on ( "changeWrapLimit" , this . $onChangeWrapLimit ) , this . $onChangeWrapMode = this . onChangeWrapMode . bind ( this ) , e . on ( "changeWrapMode" , this . $onChangeWrapMode ) , this . $onChangeFold = this . onChangeFold . bind ( this ) , e . on ( "changeFold" , this . $onChangeFold ) , this . $onChangeFrontMarker = this . onChangeFrontMarker . bind ( this ) , this . session . on ( "changeFrontMarker" , this . $onChangeFrontMarker ) , this . $onChangeBackMarker = this . onChangeBackMarker . bind ( this ) , this . session . on ( "changeBackMarker" , this . $onChangeBackMarker ) , this . $onChangeBreakpoint = this . onChangeBreakpoint . bind ( this ) , this . session . on ( "changeBreakpoint" , this . $onChangeBreakpoint ) , this . $onChangeAnnotation = this . onChangeAnnotation . bind ( this ) , this . session . on ( "changeAnnotation" , this . $onChangeAnnotation ) , this . $onCursorChange = this . onCursorChange . bind ( this ) , this . session . on ( "changeOverwrite" , this . $onCursorChange ) , this . $onScrollTopChange = this . onScrollTopChange . bind ( this ) , this . session . on ( "changeScrollTop" , this . $onScrollTopChange ) , this . $onScrollLeftChange = this . onScrollLeftChange . bind ( this ) , this . session . on ( "changeScrollLeft" , this . $onScrollLeftChange ) , this . selection = e . getSelection ( ) , this . selection . on ( "changeCursor" , this . $onCursorChange ) , this . $onSelection Line truncated
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" != e , i . setCssClass ( t . element , "ace_slim-cursors" , /slim/ . test ( e ) ) ) } } ) . call ( b . prototype ) , g . defineOptions ( b . prototype , "editor" , { selectionStyle : { set : function ( e ) { this . onSelectionChange ( ) , this . _signal ( "changeSelectionStyle" , { data : e } ) } , initialValue : "line" } , highlightActiveLine : { set : function ( ) { this . $updateHighlightActiveLine ( ) } , initialValue : ! 0 } , highlightSelectedWord : { set : function ( e ) { this . $onSelectionChange ( ) } , initialValue : ! 0 } , readOnly : { set : function ( e ) { this . $resetCursorStyle ( ) } , initialValue : ! 1 } , cursorStyle : { set : function ( e ) { this . $resetCursorStyle ( ) } , values : [ "ace" , "slim" , "smooth" , "wide" ] , initialValue : "ace" } , mergeUndoDeltas : { values : [ ! 1 , ! 0 , "always" ] , initialValue : ! 0 } , behavioursEnabled : { initialValue : ! 0 } , wrapBehavioursEnabled : { initialValue : ! 0 } , autoScrollEditorIntoView : { set : function ( e ) { this . setAutoScrollEditorIntoView ( e ) } } , keyboardHandler : { set : function ( e ) { this . setKeyboardHandler ( e ) } , get : function ( ) { return this . keybindingId } , handlesSet : ! 0 } , hScrollBarAlwaysVisible : "renderer" , vScrollBarAlwaysVisible : "renderer" , highlightGutterLine : "renderer" , animatedScroll : "renderer" , showInvisibles : "renderer" , showPrintMargin : "renderer" , printMarginColumn : "renderer" , printMargin : "renderer" , fadeFoldWidgets : "renderer" , showFoldWidgets : "renderer" , showLineNumbers : "renderer" , showGutter : "renderer" , displayIndentGuides : "renderer" , fontSize : "renderer" , fontFamily : "renderer" , maxLines : "renderer" , minLines : "renderer" , scrollPastEnd : "renderer" , fixedWidthGutter : "renderer" , theme : "renderer" , scrollSpeed : "$mouseHandler" , dragDelay : "$mouseHandler" , dragEnabled : "$mouseHandler" , focusTimout : "$mouseHandler" , tooltipFollowsMouse : "$mouseHandler" , firstLineNumber : "session" , overwrite : "session" , newLineMode : "session" , useWorker : "session" , useSoftTabs : "session" , tabSize : "session" , wrap : "session" , indentedSoftWrap : "session" , foldStyle : "session" , mode : "session" } ) , t . Editor = b } ) , ace . define ( "ace/undomanager" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = function ( ) { this . reset ( ) } ; ( function ( ) { function e ( e ) { return { action : e . action , start : e . start , end : e . end , lines : 1 == e . lines . length ? null : e . lines , text : 1 == e . lines . length ? e . lines [ 0 ] : null } } function t ( e ) { return { action : e . action , start : e . start , end : e . end , lines : e . lines || [ e . text ] } } function n ( e , t ) { for ( var n = new Array ( e . length ) , r = 0 ; r < e . length ; r ++ ) { for ( var i = e [ r ] , s = { group : i . group , deltas : new Array ( i . length ) } , o = 0 ; o < i . deltas . length ; o ++ ) { var u = i . deltas [ o ] ; s . deltas [ o ] = t ( u ) } n [ r ] = s } return n } this . execute = function ( e ) { var t = e . args [ 0 ] ; this . $doc = e . args [ 1 ] , e . merge && this . hasUndo ( ) && ( this . dirtyCounter -- , t = this . $undoStack . pop ( ) . concat ( t ) ) , this . $undoStack . push ( t ) , this . $redoStack = [ ] , this . dirtyCounter < 0 && ( this . dirtyCounter = NaN ) , this . dirtyCounter ++ } , this . undo = function ( e ) { var t = this . $undoStack . pop ( ) , n = null ; return t && ( n = this . $doc . undoChanges ( t , e ) , this . $redoStack . push ( t ) , this . dirtyCounter -- ) , n } , this . redo = function ( e ) { var t = this . $redoStack . pop ( ) , n = null ; return t && ( n = this . $doc . redoChanges ( this . $deserializeDeltas ( t ) , e ) , this . $undoStack . push ( t ) , this . dirtyCounter ++ ) , n } , this . reset = function ( ) { this . $undoStack = [ ] , this . $redoStack = [ ] , this . dirtyCounter = 0 } , this . hasUndo = function ( ) { return this . $undoStack . length > 0 } , this . hasRedo = function ( ) { return this . $redoStack . length > 0 } , this . markClean = function ( ) { this . dirtyCounter = 0 } , this . isClean = function ( ) { return 0 === this . dirtyCounter } , this . $serializeDeltas = function ( t ) { return n ( t , e ) } , this . $deserializeDeltas = function ( e ) { return n ( e , t ) } } ) . call ( r . prototype ) , t . UndoManager = r } ) , ace . define ( "ace/layer/gutter" , [ "require" , "exports" , "module" , "ace/lib/dom" , "ace/lib/oop" , "ace/lib/lang" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/dom" ) , i = e ( "../lib/oop" ) , s = e ( "../lib/lang" ) , o = e ( "../lib/event_emitter" ) . EventEmitter , u = function ( e ) { this . element = r . createElement ( "div" ) , this . element . className = "ace_layer ace_gutter-layer" , e . appendChild ( this . element ) , this . setShowFoldWidgets ( this . $showFoldWidgets ) , this . gutterWidth = 0 , this . $annotations = [ ] , this . $updateAnnotations = this . $updateAnnotations . bind ( this ) , this . $cells = [ ] } ; ( function ( ) { i . implement ( this , o ) , this . setSession = function ( e ) { this . session && this . session . removeEventListener ( "change" , this . $updateAnnotations ) , this . session = e , e && e . on ( "change" , this . $updateAnnotations ) } , this . addGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.addGutterDecoration" ) , this . session . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { window . console && console . warn && console . warn ( "deprecated use session.removeGutterDecoration" ) , this . session . removeGutterDecoration ( e , t ) } , this . setAnnotations = function ( e ) { this . $annotations = [ ] ; for ( var t = 0 ; t < e . length ; t ++ ) { var n = e [ t ] , r = n . row , i = this . $annotations [ r ] ; i || ( i = this . $annotations [ r ] = { text : [ ] } ) ; var o = n . text ; o = o ? s . escapeHTML ( o ) : n . html || "" , i . text . indexOf ( o ) === - 1 && i . text . push ( o ) ; var u = n . type ; "error" == u ? i . className = " ace_error" : "warning" == u && " ace_error" ! Line truncated
i . importCssString ( m , "ace_editor.css" ) ; var g = function ( e , t ) { var n = this ; this . container = e || i . createElement ( "div" ) , this . $keepTextAreaAtCursor = ! o . isOldIE , i . addCssClass ( this . container , "ace_editor" ) , this . setTheme ( t ) , this . $gutter = i . createElement ( "div" ) , this . $gutter . className = "ace_gutter" , this . container . appendChild ( this . $gutter ) , this . scroller = i . createElement ( "div" ) , this . scroller . className = "ace_scroller" , this . container . appendChild ( this . scroller ) , this . content = i . createElement ( "div" ) , this . content . className = "ace_content" , this . scroller . appendChild ( this . content ) , this . $gutterLayer = new u ( this . $gutter ) , this . $gutterLayer . on ( "changeGutterWidth" , this . onGutterResize . bind ( this ) ) , this . $markerBack = new a ( this . content ) ; var r = this . $textLayer = new f ( this . content ) ; this . canvas = r . element , this . $markerFront = new a ( this . content ) , this . $cursorLayer = new l ( this . content ) , this . $horizScroll = ! 1 , this . $vScroll = ! 1 , this . scrollBar = this . scrollBarV = new h ( this . container , this ) , this . scrollBarH = new c ( this . container , this ) , this . scrollBarV . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollTop ( e . data - n . scrollMargin . top ) } ) , this . scrollBarH . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollLeft ( e . data - n . scrollMargin . left ) } ) , this . scrollTop = 0 , this . scrollLeft = 0 , this . cursorPos = { row : 0 , column : 0 } , this . $fontMetrics = new d ( this . container ) , this . $textLayer . $setFontMetrics ( this . $fontMetrics ) , this . $textLayer . addEventListener ( "changeCharacterSize" , function ( e ) { n . updateCharacterSize ( ) , n . onResize ( ! 0 , n . gutterWidth , n . $size . width , n . $size . height ) , n . _signal ( "changeCharacterSize" , e ) } ) , this . $size = { width : 0 , height : 0 , scrollerHeight : 0 , scrollerWidth : 0 , $dirty : ! 0 } , this . layerConfig = { width : 1 , padding : 0 , firstRow : 0 , firstRowScreen : 0 , lastRow : 0 , lineHeight : 0 , characterWidth : 0 , minHeight : 1 , maxHeight : 1 , offset : 0 , height : 1 , gutterOffset : 1 } , this . scrollMargin = { left : 0 , right : 0 , top : 0 , bottom : 0 , v : 0 , h : 0 } , this . $loop = new p ( this . $renderChanges . bind ( this ) , this . container . ownerDocument . defaultView ) , this . $loop . schedule ( this . CHANGE _FULL ) , this . updateCharacterSize ( ) , this . setPadding ( 4 ) , s . resetOptions ( this ) , s . _emit ( "renderer" , this ) } ; ( function ( ) { this . CHANGE _CURSOR = 1 , this . CHANGE _MARKER = 2 , this . CHANGE _GUTTER = 4 , this . CHANGE _SCROLL = 8 , this . CHANGE _LINES = 16 , this . CHANGE _TEXT = 32 , this . CHANGE _SIZE = 64 , this . CHANGE _MARKER _BACK = 128 , this . CHANGE _MARKER _FRONT = 256 , this . CHANGE _FULL = 512 , this . CHANGE _H _SCROLL = 1024 , r . implement ( this , v ) , this . updateCharacterSize = function ( ) { this . $textLayer . allowBoldFonts != this . $allowBoldFonts && ( this . $allowBoldFonts = this . $textLayer . allowBoldFonts , this . setStyle ( "ace_nobold" , ! this . $allowBoldFonts ) ) , this . layerConfig . characterWidth = this . characterWidth = this . $textLayer . getCharacterWidth ( ) , this . layerConfig . lineHeight = this . lineHeight = this . $textLayer . getLineHeight ( ) , this . $updatePrintMargin ( ) } , this . setSession = function ( e ) { this . session && this . session . doc . off ( "changeNewLineMode" , this . onChangeNewLineMode ) , this . session = e , e && this . scrollMargin . top && e . getScrollTop ( ) <= 0 && e . setScrollTop ( - this . scrollMargin . top ) , this . $cursorLayer . setSession ( e ) , this . $markerBack . setSession ( e ) , this . $markerFront . setSession ( e ) , this . $gutterLayer . setSession ( e ) , this . $textLayer . setSession ( e ) , e && ( this . $loop . schedule ( this . CHANGE _FULL ) , this . session . $setFontMetrics ( this . $fontMetrics ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , this . onChangeNewLineMode = this . onChangeNewLineMode . bind ( this ) , this . onChangeNewLineMode ( ) , this . session . doc . on ( "changeNewLineMode" , this . onChangeNewLineMode ) ) } , this . updateLines = function ( e , t , n ) { if ( void 0 === t && ( t = 1 / 0 ) , this . $changedLines ? ( this . $changedLines . firstRow > e && ( this . $changedLines . firstRow = e ) , this . $changedLines . lastRow < t && ( this . $changedLines . lastRow = t ) ) : this . $changedLines = { firstRow : e , lastRow : t } , this . $changedLines . lastRow < this . layerConfig . firstRow ) { if ( ! n ) return ; this . $changedLines . lastRow = this . layerConfig . lastRow } this . $changedLines . firstRow > this . layerConfig . lastRow || this . $loop . schedule ( this . CHANGE _LINES ) } , this . onChangeNewLineMode = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) , this . $textLayer . $updateEolChar ( ) } , this . onChangeTabSize = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT | this . CHANGE _MARKER ) , this . $textLayer . onChangeTabSize ( ) } , this . updateText = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) } , this . updateFull = function ( e ) { e ? this . $renderChanges ( this . CHANGE _FULL , ! 0 ) : this . $loop . schedule ( this . CHANGE _FULL ) } , this . updateFontSize = function ( ) { this . $textLayer . checkForSizeChanges ( ) } , this . $changes = 0 , this . $updateSizeAsync = function ( ) { this . $loop . pending ? this . $size . $dirty = ! 0 : this . onResize ( ) } , this . onResize = function ( e , t , n , r ) { if ( ! ( this . resizing > 2 ) ) { this . resizing > 0 ? this . resizing ++ : this . resizing = e ? 1 : 0 ; var i = this . container ; r || ( r = i . clientHeight || i . scrollHeight ) , n || ( n = i . clientWidth || i . scrollWidth ) ; var s = this . $updateCachedSize ( e , t , n , r ) ; return this . $size . scrollerHeight && ( n || r ) ? ( e && ( this . $gutterLayer . $padding = null ) , e ? this . $renderChanges ( s | this . $changes , ! 0 ) : this . $loop . schedule ( s | this . $changes ) , this . resizing && ( this . resizing = 0 ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , void 0 ) : this . resizing = 0 } } , this . $updateCach Line truncated
if ( this . othersActive ) { this . othersActive = ! 1 ; for ( var e = 0 ; e < this . others . length ; e ++ ) this . session . removeMarker ( this . others [ e ] . markerId ) } } , this . onUpdate = function ( e ) { if ( this . $updating ) return this . updateAnchors ( e ) ; var t = e ; if ( t . start . row === t . end . row && t . start . row === this . pos . row ) { this . $updating = ! 0 ; var n = "insert" === e . action ? t . end . column - t . start . column : t . start . column - t . end . column , i = t . start . column >= this . pos . column && t . start . column <= this . pos . column + this . length + 1 , s = t . start . column - this . pos . column ; if ( this . updateAnchors ( e ) , i && ( this . length += n ) , i && ! this . session . $fromUndo ) if ( "insert" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . insertMergedLines ( a , e . lines ) } else if ( "remove" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . remove ( new r ( a . row , a . column , a . row , a . column - n ) ) } this . $updating = ! 1 , this . updateMarkers ( ) } } , this . updateAnchors = function ( e ) { this . pos . onChange ( e ) ; for ( var t = this . others . length ; t -- ; ) this . others [ t ] . onChange ( e ) ; this . updateMarkers ( ) } , this . updateMarkers = function ( ) { if ( ! this . $updating ) { var e = this , t = this . session , n = function ( n , i ) { t . removeMarker ( n . markerId ) , n . markerId = t . addMarker ( new r ( n . row , n . column , n . row , n . column + e . length ) , i , null , ! 1 ) } ; n ( this . pos , this . mainClass ) ; for ( var i = this . others . length ; i -- ; ) n ( this . others [ i ] , this . othersClass ) } } , this . onCursorChange = function ( e ) { if ( ! this . $updating && this . session ) { var t = this . session . selection . getCursor ( ) ; t . row === this . pos . row && t . column >= this . pos . column && t . column <= this . pos . column + this . length ? ( this . showOtherMarkers ( ) , this . _emit ( "cursorEnter" , e ) ) : ( this . hideOtherMarkers ( ) , this . _emit ( "cursorLeave" , e ) ) } } , this . detach = function ( ) { this . session . removeMarker ( this . pos && this . pos . markerId ) , this . hideOtherMarkers ( ) , this . doc . removeEventListener ( "change" , this . $onUpdate ) , this . session . selection . removeEventListener ( "changeCursor" , this . $onCursorChange ) , this . session . setUndoSelect ( ! 0 ) , this . session = null } , this . cancel = function ( ) { if ( this . $undoStackDepth !== - 1 ) { for ( var e = this . session . getUndoManager ( ) , t = ( e . $undoStack || e . $undostack ) . length - this . $undoStackDepth , n = 0 ; n < t ; n ++ ) e . undo ( ! 0 ) ; this . selectionBefore && this . session . selection . fromJSON ( this . selectionBefore ) } } } ) . call ( o . prototype ) , t . PlaceHolder = o } ) , ace . define ( "ace/mouse/multi_select_handler" , [ "require" , "exports" , "module" , "ace/lib/event" , "ace/lib/useragent" ] , function ( e , t , n ) { function s ( e , t ) { return e . row == t . row && e . column == t . column } function o ( e ) { var t = e . domEvent , n = t . altKey , o = t . shiftKey , u = t . ctrlKey , a = e . getAccelKey ( ) , f = e . getButton ( ) ; if ( u && i . isMac && ( f = t . button ) , e . editor . inMultiSelectMode && 2 == f ) return void e . editor . textInput . onContextMenu ( e . domEvent ) ; if ( ! u && ! n && ! a ) return void ( 0 === f && e . editor . inMultiSelectMode && e . editor . exitMultiSelectMode ( ) ) ; if ( 0 === f ) { var S , l = e . editor , c = l . selection , h = l . inMultiSelectMode , p = e . getDocumentPosition ( ) , d = c . getCursor ( ) , v = e . inSelection ( ) || c . isEmpty ( ) && s ( p , d ) , m = e . x , g = e . y , y = function ( e ) { m = e . clientX , g = e . clientY } , b = l . session , w = l . renderer . pixelToScreenCoordinates ( m , g ) , E = w ; if ( l . $mouseHandler . $enableJumpToDef ) u && n || a && n ? S = o ? "block" : "add" : n && l . $blockSelectEnabled && ( S = "block" ) ; else if ( a && ! n ) { if ( S = "add" , ! h && o ) return } else n && l . $blockSelectEnabled && ( S = "block" ) ; if ( S && i . isMac && t . ctrlKey && l . $mouseHandler . cancelContextMenu ( ) , "add" == S ) { if ( ! h && v ) return ; if ( ! h ) { var x = c . toOrientedRange ( ) ; l . addSelectionMarker ( x ) } var T = c . rangeList . rangeAtPoint ( p ) ; l . $blockScrolling ++ , l . inVirtualSelectionMode = ! 0 , o && ( T = null , x = c . ranges [ 0 ] || x , l . removeSelectionMarker ( x ) ) , l . once ( "mouseup" , function ( ) { var e = c . toOrientedRange ( ) ; T && e . isEmpty ( ) && s ( T . cursor , e . cursor ) ? c . substractPoint ( e . cursor ) : ( o ? c . substractPoint ( x . cursor ) : x && ( l . removeSelectionMarker ( x ) , c . addRange ( x ) ) , c . addRange ( e ) ) , l . $blockScrolling -- , l . inVirtualSelectionMode = ! 1 } ) } else if ( "block" == S ) { e . stop ( ) , l . inVirtualSelectionMode = ! 0 ; var N , C = [ ] , k = function ( ) { var e = l . renderer . pixelToScreenCoordinates ( m , g ) , t = b . screenToDocumentPosition ( e . row , e . column ) ; s ( E , e ) && s ( t , c . lead ) || ( E = e , l . $blockScrolling ++ , l . selection . moveToPosition ( t ) , l . renderer . scrollCursorIntoView ( ) , l . removeSelectionMarkers ( C ) , C = c . rectangularRangeBlock ( E , w ) , l . $mouseHandler . $clickSelection && 1 == C . length && C [ 0 ] . isEmpty ( ) && ( C [ 0 ] = l . $mouseHandler . $clickSelection . clone ( ) ) , C . forEach ( l . addSelectionMarker , l ) , l . updateSelectionMarkers ( ) , l . $blockScrolling -- ) } ; l . $blockScrolling ++ , h && ! a ? c . toSingleRange ( ) : ! h && a && ( N = c . toOrientedRange ( ) , l . addSelectionMarker ( N ) ) , o ? w = b . documentToScreenPosition ( c . lead ) : c . moveToPosition ( p ) , l . $blockScrolling -- , E = { row : - 1 , column : - 1 } ; var L = function ( e ) { clearInterval ( O ) , l . removeSelectionMarkers ( C ) , C . length || ( C = [ c . toOrientedRange ( ) ] ) , l . $blockScrolling ++ , N && ( l . removeSelectionMarker ( N ) , c . toSingleRange ( N ) ) ; for ( var t = 0 ; t < C . length ; t ++ ) c . addRange ( C [ t ] ) ; l . inVirtualSelectionMode = ! 1 , l . $mouseHandler . $clickSelection = null , l . $blockScrolling -- } , A = k ; r . capture ( l . container , y , L ) ; var O = setInterval ( function ( ) { A ( ) } , 20 ) ; return e . preventDefault ( ) } } } var r = e ( "../lib/event" ) , i = e ( "../lib/useragent" ) ; t . onMouseDown = o } ) , ace . define ( "ace/commands/multi_select_commands" , [ "require" , "exports" , "module" , " ace / Line truncated
} var a = [ ] ; t = u . row ; do a [ n < 0 ? "unshift" : "push" ] ( u ) , u = r [ i += n ] ; while ( u && u . row == t ) ; return a . length && a } } } var r = e ( "../line_widgets" ) . LineWidgets , i = e ( "../lib/dom" ) , s = e ( "../range" ) . Range ; t . showErrorMarker = function ( e , t ) { var n = e . session ; n . widgetManager || ( n . widgetManager = new r ( n ) , n . widgetManager . attach ( e ) ) ; var s = e . getCursorPosition ( ) , o = s . row , a = n . widgetManager . getWidgetsAtRow ( o ) . filter ( function ( e ) { return "errorMarker" == e . type } ) [ 0 ] ; a ? a . destroy ( ) : o -= t ; var l , f = u ( n , o , t ) ; if ( f ) { var c = f [ 0 ] ; s . column = ( c . pos && "number" != typeof c . column ? c . pos . sc : c . column ) || 0 , s . row = c . row , l = e . renderer . $gutterLayer . $annotations [ s . row ] } else { if ( a ) return ; l = { text : [ "Looks good!" ] , className : "ace_ok" } } e . session . unfold ( s . row ) , e . selection . moveToPosition ( s ) ; var h = { row : s . row , fixedWidth : ! 0 , coverGutter : ! 0 , el : i . createElement ( "div" ) , type : "errorMarker" } , p = h . el . appendChild ( i . createElement ( "div" ) ) , d = h . el . appendChild ( i . createElement ( "div" ) ) ; d . className = "error_widget_arrow " + l . className ; var v = e . renderer . $cursorLayer . getPixelPosition ( s ) . left ; d . style . left = v + e . renderer . gutterWidth - 5 + "px" , h . el . className = "error_widget_wrapper" , p . className = "error_widget " + l . className , p . innerHTML = l . text . join ( "<br>" ) , p . appendChild ( i . createElement ( "div" ) ) ; var m = function ( e , t , n ) { if ( 0 === t && ( "esc" === n || "return" === n ) ) return h . destroy ( ) , { command : "null" } } ; h . destroy = function ( ) { e . $mouseHandler . isMousePressed || ( e . keyBinding . removeKeyboardHandler ( m ) , n . widgetManager . removeLineWidget ( h ) , e . off ( "changeSelection" , h . destroy ) , e . off ( "changeSession" , h . destroy ) , e . off ( "mouseup" , h . destroy ) , e . off ( "change" , h . destroy ) ) } , e . keyBinding . addKeyboardHandler ( m ) , e . on ( "changeSelection" , h . destroy ) , e . on ( "changeSession" , h . destroy ) , e . on ( "mouseup" , h . destroy ) , e . on ( "change" , h . destroy ) , e . session . widgetManager . addLineWidget ( h ) , h . el . onmousedown = e . focus . bind ( e ) , e . renderer . scrollCursorIntoView ( null , . 5 , { bottom : h . el . offsetHeight } ) } , i . importCssString ( " .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }" , "" ) } ) , ace . define ( "ace/ace" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/dom" , "ace/lib/event" , "ace/editor" , "ace/edit_session" , "ace/undomanager" , "ace/virtual_renderer" , "ace/worker/worker_client" , "ace/keyboard/hash_handler" , "ace/placeholder" , "ace/multi_select" , "ace/mode/folding/fold_mode" , "ace/theme/textmate" , "ace/ext/error_marker" , "ace/config" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/dom" ) , i = e ( "./lib/event" ) , s = e ( "./editor" ) . Editor , o = e ( "./edit_session" ) . EditSession , u = e ( "./undomanager" ) . UndoManager , a = e ( "./virtual_renderer" ) . VirtualRenderer ; e ( "./worker/worker_client" ) , e ( "./keyboard/hash_handler" ) , e ( "./placeholder" ) , e ( "./multi_select" ) , e ( "./mode/folding/fold_mode" ) , e ( "./theme/textmate" ) , e ( "./ext/error_marker" ) , t . config = e ( "./config" ) , t . require = e , "function" == typeof define && ( t . define = define ) , t . edit = function ( e ) { if ( "string" == typeof e ) { var n = e ; if ( e = document . getElementById ( n ) , ! e ) throw new Error ( "ace.edit can't find div #" + n ) } if ( e && e . env && e . env . editor instanceof s ) return e . env . editor ; var o = "" ; if ( e && /input|textarea/i . test ( e . tagName ) ) { var u = e ; o = u . value , e = r . createElement ( "pre" ) , u . parentNode . replaceChild ( e , u ) } else e && ( o = r . getInnerText ( e ) , e . innerHTML = "" ) ; var f = t . createEditSession ( o ) , l = new s ( new a ( e ) ) ; l . setSession ( f ) ; var c = { document : f , editor : l , onResize : l . resize . bind ( l , null ) } ; return u && ( c . textarea = u ) , i . addListener ( window , "resize" , c . onResize ) , l . on ( "destroy" , function ( ) { i . removeListener ( window , "resize" , c . onResize ) , c . editor . container . env = null } ) , l . container . env = l . env = c , l } , t . createEditSession = function ( e , t ) { var n = new o ( e , t ) ; return n . setUndoManager ( new u ) , n } , t . EditSession = o , t . UndoManager = u , t . version = "1.2.5" } ) , function ( ) { ace . require ( [ "ace/ace" ] , function ( a ) { a && ( a . config . init ( ! 0 ) , a . define = ace . define ) , window . ace || ( window . ace = a ) ; for ( var key in a ) a . hasOwnProperty ( key ) && ( window . ace [ key ] = a [ key ] ) } ) } ( ) , ace . define ( "ace/ext/modelist" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function i ( e ) { for ( var t = a . text , n = e . split ( /[\/\\]/ ) . pop ( ) , i = 0 ; i < r . length ; i ++ ) if ( r [ i ] . supportsFile ( n ) ) { t = r [ i ] ; break } return t } var r = [ ] , s = function ( e , t , n ) { this . name = e , this . caption = t , this . mode = "ace/mode/" + e , this . extensions = n ; var r ; r = /\^/ . test ( n ) ? n . replace ( /\|(\^)?/g , function ( e , t ) { return "$|" + ( t ? "^" : "^.*\\." ) } ) + "$" : "^.*\\.(" + n + ")$" , this . extRe Line truncated