2014-09-18 17:58:47 -06:00
/ * C o d e M i r r o r - M i n i f i e d & B u n d l e d
2015-07-30 14:52:42 -07:00
Generated on 7 / 30 / 2015 with http : //codemirror.net/doc/compress.html
Version : 5.5
2014-09-18 17:58:47 -06:00
CodeMirror Library :
- codemirror . js
Modes :
- css . js
- gfm . js
- htmlmixed . js
- javascript . js
- markdown . js
2015-07-30 14:52:42 -07:00
- php . js
- sass . js
- twig . js
2014-09-18 17:58:47 -06:00
- xml . js
- yaml . js
Add - ons :
- continuelist . js
- overlay . js
* /
2015-07-30 14:52:42 -07:00
! function ( a ) { if ( "object" == typeof exports && "object" == typeof module ) module . exports = a ( ) ; else { if ( "function" == typeof define && define . amd ) return define ( [ ] , a ) ; this . CodeMirror = a ( ) } } ( function ( ) { "use strict" ; function v ( a , b ) { if ( ! ( this instanceof v ) ) return new v ( a , b ) ; this . options = b = b ? fh ( b ) : { } , fh ( ye , b , ! 1 ) , I ( b ) ; var c = b . value ; "string" == typeof c && ( c = new _f ( c , b . mode , null , b . lineSeparator ) ) , this . doc = c ; var g = new v . inputStyles [ b . inputStyle ] ( this ) , h = this . display = new w ( a , c , g ) ; h . wrapper . CodeMirror = this , E ( this ) , C ( this ) , b . lineWrapping && ( this . display . wrapper . className += " CodeMirror-wrap" ) , b . autofocus && ! n && h . input . focus ( ) , M ( this ) , this . state = { keyMaps : [ ] , overlays : [ ] , modeGen : 0 , overwrite : ! 1 , delayingBlurEvent : ! 1 , focused : ! 1 , suppressEdits : ! 1 , pasteIncoming : ! 1 , cutIncoming : ! 1 , draggingText : ! 1 , highlight : new Wg , keySeq : null , specialChars : null } ; var i = this ; d && 11 > e && setTimeout ( function ( ) { i . display . input . reset ( ! 0 ) } , 20 ) , pd ( this ) , zh ( ) , Vc ( this ) , this . curOp . forceUpdate = ! 0 , dg ( this , c ) , b . autofocus && ! n || i . hasFocus ( ) ? setTimeout ( gh ( Xd , this ) , 20 ) : Yd ( this ) ; for ( var j in ze ) ze . hasOwnProperty ( j ) && ze [ j ] ( this , b [ j ] , Be ) ; R ( this ) , b . finishInit && b . finishInit ( this ) ; for ( var k = 0 ; k < Fe . length ; ++ k ) Fe [ k ] ( this ) ; Xc ( this ) , f && b . lineWrapping && "optimizelegibility" == getComputedStyle ( h . lineDiv ) . textRendering && ( h . lineDiv . style . textRendering = "auto" ) } function w ( b , c , g ) { var h = this ; this . input = g , h . scrollbarFiller = nh ( "div" , null , "CodeMirror-scrollbar-filler" ) , h . scrollbarFiller . setAttribute ( "cm-not-content" , "true" ) , h . gutterFiller = nh ( "div" , null , "CodeMirror-gutter-filler" ) , h . gutterFiller . setAttribute ( "cm-not-content" , "true" ) , h . lineDiv = nh ( "div" , null , "CodeMirror-code" ) , h . selectionDiv = nh ( "div" , null , null , "position: relative; z-index: 1" ) , h . cursorDiv = nh ( "div" , null , "CodeMirror-cursors" ) , h . measure = nh ( "div" , null , "CodeMirror-measure" ) , h . lineMeasure = nh ( "div" , null , "CodeMirror-measure" ) , h . lineSpace = nh ( "div" , [ h . measure , h . lineMeasure , h . selectionDiv , h . cursorDiv , h . lineDiv ] , null , "position: relative; outline: none" ) , h . mover = nh ( "div" , [ nh ( "div" , [ h . lineSpace ] , "CodeMirror-lines" ) ] , null , "position: relative" ) , h . sizer = nh ( "div" , [ h . mover ] , "CodeMirror-sizer" ) , h . sizerWidth = null , h . heightForcer = nh ( "div" , null , null , "position: absolute; height: " + Rg + "px; width: 1px;" ) , h . gutters = nh ( "div" , null , "CodeMirror-gutters" ) , h . lineGutter = null , h . scroller = nh ( "div" , [ h . sizer , h . heightForcer , h . gutters ] , "CodeMirror-scroll" ) , h . scroller . setAttribute ( "tabIndex" , "-1" ) , h . wrapper = nh ( "div" , [ h . scrollbarFiller , h . gutterFiller , h . scroller ] , "CodeMirror" ) , d && 8 > e && ( h . gutters . style . zIndex = - 1 , h . scroller . style . paddingRight = 0 ) , f || a && n || ( h . scroller . draggable = ! 0 ) , b && ( b . appendChild ? b . appendChild ( h . wrapper ) : b ( h . wrapper ) ) , h . viewFrom = h . viewTo = c . first , h . reportedViewFrom = h . reportedViewTo = c . first , h . view = [ ] , h . renderedView = null , h . externalMeasured = null , h . viewOffset = 0 , h . lastWrapHeight = h . lastWrapWidth = 0 , h . updateLineNumbers = null , h . nativeBarWidth = h . barHeight = h . barWidth = 0 , h . scrollbarsClipped = ! 1 , h . lineNumWidth = h . lineNumInnerWidth = h . lineNumChars = null , h . alignWidgets = ! 1 , h . cachedCharWidth = h . cachedTextHeight = h . cachedPaddingH = null , h . maxLine = null , h . maxLineLength = 0 , h . maxLineChanged = ! 1 , h . wheelDX = h . wheelDY = h . wheelStartX = h . wheelStartY = null , h . shift = ! 1 , h . selForContextMenu = null , h . activeTouch = null , g . init ( h ) } function x ( a ) { a . doc . mode = v . getMode ( a . options , a . doc . modeOption ) , y ( a ) } function y ( a ) { a . doc . iter ( function ( a ) { a . stateAfter && ( a . stateAfter = null ) , a . styles && ( a . styles = null ) } ) , a . doc . frontier = a . doc . first , ic ( a , 100 ) , a . state . modeGen ++ , a . curOp && id ( a ) } function z ( a ) { a . options . lineWrapping ? ( vh ( a . display . wrapper , "CodeMirror-wrap" ) , a . display . sizer . style . minWidth = "" , a . display . sizerWidth = null ) : ( uh ( a . display . wrapper , "CodeMirror-wrap" ) , H ( a ) ) , B ( a ) , id ( a ) , Fc ( a ) , setTimeout ( function ( ) { N ( a ) } , 100 ) } function A ( a ) { var b = Rc ( a . display ) , c = a . options . lineWrapping , d = c && Math . max ( 5 , a . display . scroller . clientWidth / Sc ( a . display ) - 3 ) ; return function ( e ) { if ( vf ( a . doc , e ) ) return 0 ; var f = 0 ; if ( e . widgets ) for ( var g = 0 ; g < e . widgets . length ; g ++ ) e . widgets [ g ] . height && ( f += e . widgets [ g ] . height ) ; return c ? f + ( Math . ceil ( e . text . length / d ) || 1 ) * b : f + b } } function B ( a ) { var b = a . doc , c = A ( a ) ; b . iter ( function ( a ) { var b = c ( a ) ; b != a . height && hg ( a , b ) } ) } function C ( a ) { a . display . wrapper . className = a . display . wr
l = n . length ? n [ "right" == f ? n . length - 1 : 0 ] : zc } else l = oh ( h , i , j ) . getBoundingClientRect ( ) || zc ; if ( l . left || l . right || 0 == i ) break ; j = i , i -= 1 , k = "right" } d && 11 > e && ( l = Cc ( a . display . measure , l ) ) } else { i > 0 && ( k = f = "right" ) ; var n ; l = a . options . lineWrapping && ( n = h . getClientRects ( ) ) . length > 1 ? n [ "right" == f ? n . length - 1 : 0 ] : h . getBoundingClientRect ( ) } if ( d && 9 > e && ! i && ( ! l || ! l . left && ! l . right ) ) { var o = h . parentNode . getClientRects ( ) [ 0 ] ; l = o ? { left : o . left , right : o . left + Sc ( a . display ) , top : o . top , bottom : o . bottom } : zc } for ( var p = l . top - b . rect . top , q = l . bottom - b . rect . top , r = ( p + q ) / 2 , s = b . view . measure . heights , m = 0 ; m < s . length - 1 && ! ( r < s [ m ] ) ; m ++ ) ; var t = m ? s [ m - 1 ] : 0 , u = s [ m ] , v = { left : ( "right" == k ? l . right : l . left ) - b . rect . left , right : ( "left" == k ? l . left : l . right ) - b . rect . left , top : t , bottom : u } ; return l . left || l . right || ( v . bogus = ! 0 ) , a . options . singleCursorHeightPerLine || ( v . rtop = p , v . rbottom = q ) , v } function Cc ( a , b ) { if ( ! window . screen || null == screen . logicalXDPI || screen . logicalXDPI == screen . deviceXDPI || ! Kh ( a ) ) return b ; var c = screen . logicalXDPI / screen . deviceXDPI , d = screen . logicalYDPI / screen . deviceYDPI ; return { left : b . left * c , right : b . right * c , top : b . top * d , bottom : b . bottom * d } } function Dc ( a ) { if ( a . measure && ( a . measure . cache = { } , a . measure . heights = null , a . rest ) ) for ( var b = 0 ; b < a . rest . length ; b ++ ) a . measure . caches [ b ] = { } } function Ec ( a ) { a . display . externalMeasure = null , ph ( a . display . lineMeasure ) ; for ( var b = 0 ; b < a . display . view . length ; b ++ ) Dc ( a . display . view [ b ] ) } function Fc ( a ) { Ec ( a ) , a . display . cachedCharWidth = a . display . cachedTextHeight = a . display . cachedPaddingH = null , a . options . lineWrapping || ( a . display . maxLineChanged = ! 0 ) , a . display . lineNumChars = null } function Gc ( ) { return window . pageXOffset || ( document . documentElement || document . body ) . scrollLeft } function Hc ( ) { return window . pageYOffset || ( document . documentElement || document . body ) . scrollTop } function Ic ( a , b , c , d ) { if ( b . widgets ) for ( var e = 0 ; e < b . widgets . length ; ++ e ) if ( b . widgets [ e ] . above ) { var f = zf ( b . widgets [ e ] ) ; c . top += f , c . bottom += f } if ( "line" == d ) return c ; d || ( d = "local" ) ; var g = kg ( b ) ; if ( "local" == d ? g += mc ( a . display ) : g -= a . display . viewOffset , "page" == d || "window" == d ) { var h = a . display . lineSpace . getBoundingClientRect ( ) ; g += h . top + ( "window" == d ? 0 : Hc ( ) ) ; var i = h . left + ( "window" == d ? 0 : Gc ( ) ) ; c . left += i , c . right += i } return c . top += g , c . bottom += g , c } function Jc ( a , b , c ) { if ( "div" == c ) return b ; var d = b . left , e = b . top ; if ( "page" == c ) d -= Gc ( ) , e -= Hc ( ) ; else if ( "local" == c || ! c ) { var f = a . display . sizer . getBoundingClientRect ( ) ; d += f . left , e += f . top } var g = a . display . lineSpace . getBoundingClientRect ( ) ; return { left : d - g . left , top : e - g . top } } function Kc ( a , b , c , d , e ) { return d || ( d = eg ( a . doc , b . line ) ) , Ic ( a , d , vc ( a , d , b . ch , e ) , c ) } function Lc ( a , b , c , d , e , f ) { function g ( b , g ) { var h = yc ( a , e , b , g ? "right" : "left" , f ) ; return g ? h . left = h . right : h . right = h . left , Ic ( a , d , h , c ) } function h ( a , b ) { var c = i [ b ] , d = c . level % 2 ; return a == Nh ( c ) && b && c . level < i [ b - 1 ] . level ? ( c = i [ -- b ] , a = Oh ( c ) - ( c . level % 2 ? 0 : 1 ) , d = ! 0 ) : a == Oh ( c ) && b < i . length - 1 && c . level < i [ b + 1 ] . level && ( c = i [ ++ b ] , a = Nh ( c ) - c . level % 2 , d = ! 1 ) , d && a == c . to && a > c . from ? g ( a - 1 ) : g ( a , d ) } d = d || eg ( a . doc , b . line ) , e || ( e = xc ( a , d ) ) ; var i = lg ( d ) , j = b . ch ; if ( ! i ) return g ( j ) ; var k = Wh ( i , j ) , l = h ( j , k ) ; return null != Vh && ( l . other = h ( j , Vh ) ) , l } function Mc ( a , b ) { var c = 0 , b = Ob ( a . doc , b ) ; a . options . lineWrapping || ( c = Sc ( a . display ) * b . ch ) ; var d = eg ( a . doc , b . line ) , e = kg ( d ) + mc ( a . display ) ; return { left : c , right : c , top : e , bottom : e + d . height } } function Nc ( a , b , c , d ) { var e = ob ( a , b ) ; return e . xRel = d , c && ( e . outside = ! 0 ) , e } function Oc ( a , b , c ) { var d = a . doc ; if ( c += a . display . viewOffset , 0 > c ) return Nc ( d . first , 0 , ! 0 , - 1 ) ; var e = jg ( d , c ) , f = d . first + d . size - 1 ; if ( e > f ) return Nc ( d . first + d . size - 1 , eg ( d , f ) . text . length , ! 0 , 1 ) ; 0 > b && ( b = 0 ) ; for ( var g = eg ( d , e ) ; ; ) { var h = Pc ( a , g , e , b , c ) , i = pf ( g ) , j = i && i . find ( 0 , ! 0 ) ; if ( ! i || ! ( h . ch > j . from . ch || h . ch == j . from . ch && h . xRel > 0 ) ) return h ; e = ig ( g = j . to . line ) } } function Pc ( a , b , c , d , e ) { function j ( d ) { var e = Lc ( a , ob ( c , d ) , "line" , b , i ) ; return g = ! 0 , f > e . bottom ? e . left - h : f < e . top ? e . left + h : ( g = ! 1 , e . left ) } var f = e - kg ( b ) , g = ! 1 , h = 2 * a . display . wrapper . clientWidth , i = xc ( a , b ) , k = lg ( b ) , l = b . text . length , m = Ph ( b ) , n = Qh ( b ) , o = j ( m ) , p = g , q = j ( n ) , r = g ; if ( d > q ) return Nc ( c , n , r , 1 ) ; for ( ; ; ) { if ( k ? n == m || n == Yh ( b , m , 1 ) : 1 >= n - m ) { for ( var s = o > d || q - d >= d - o ? m : n , t = d - ( s == m ? o : q ) ; mh ( b . text . charAt ( s ) ) ; ) ++ s ; var u = Nc ( c , s , s == m ? p : r , - 1 > t ? - 1 : t > 1 ? 1 : 0 ) ; return u } var v = Math . ceil ( l / 2 ) , w = m + v ; if ( k ) { w = m ; for ( var x = 0 ; v > x ; ++ x ) w = Yh ( b , w , 1 ) } var y =
} function l ( a ) { var b = ( e ? Yh : Zh ) ( i , g , c , ! 0 ) ; if ( null == b ) { if ( a || ! k ( ) ) return j = ! 1 ; g = e ? ( 0 > c ? Qh : Ph ) ( i ) : 0 > c ? i . text . length : 0 } else g = b ; return ! 0 } var f = b . line , g = b . ch , h = c , i = eg ( a , f ) , j = ! 0 ; if ( "char" == d ) l ( ) ; else if ( "column" == d ) l ( ! 0 ) ; else if ( "word" == d || "group" == d ) for ( var m = null , n = "group" == d , o = a . cm && a . cm . getHelper ( b , "wordChars" ) , p = ! 0 ; ! ( 0 > c ) || l ( ! p ) ; p = ! 1 ) { var q = i . text . charAt ( g ) || "\n" , r = jh ( q , o ) ? "w" : n && "\n" == q ? "n" : ! n || /\s/ . test ( q ) ? null : "p" ; if ( ! n || p || r || ( r = "s" ) , m && m != r ) { 0 > c && ( c = 1 , l ( ) ) ; break } if ( r && ( m = r ) , c > 0 && ! l ( ! p ) ) break } var s = cc ( a , ob ( f , g ) , h , ! 0 ) ; return j || ( s . hitSide = ! 0 ) , s } function xe ( a , b , c , d ) { var g , e = a . doc , f = b . left ; if ( "page" == d ) { var h = Math . min ( a . display . wrapper . clientHeight , window . innerHeight || document . documentElement . clientHeight ) ; g = b . top + c * ( h - ( 0 > c ? 1.5 : . 5 ) * Rc ( a . display ) ) } else "line" == d && ( g = c > 0 ? b . bottom + 3 : b . top - 3 ) ; for ( ; ; ) { var i = Oc ( a , f , g ) ; if ( ! i . outside ) break ; if ( 0 > c ? 0 >= g : g >= e . height ) { i . hitSide = ! 0 ; break } g += 5 * c } return i } function Ae ( a , b , c , d ) { v . defaults [ a ] = b , c && ( ze [ a ] = d ? function ( a , b , d ) { d != Be && c ( a , b , d ) } : c ) } function Le ( a ) { for ( var c , d , e , f , b = a . split ( /-(?!$)/ ) , a = b [ b . length - 1 ] , g = 0 ; g < b . length - 1 ; g ++ ) { var h = b [ g ] ; if ( /^(cmd|meta|m)$/i . test ( h ) ) f = ! 0 ; else if ( /^a(lt)?$/i . test ( h ) ) c = ! 0 ; else if ( /^(c|ctrl|control)$/i . test ( h ) ) d = ! 0 ; else { if ( ! /^s(hift)$/i . test ( h ) ) throw new Error ( "Unrecognized modifier name: " + h ) ; e = ! 0 } } return c && ( a = "Alt-" + a ) , d && ( a = "Ctrl-" + a ) , f && ( a = "Cmd-" + a ) , e && ( a = "Shift-" + a ) , a } function Pe ( a ) { return "string" == typeof a ? Ke [ a ] : a } function Te ( a , b , c , d , e ) { if ( d && d . shared ) return Ve ( a , b , c , d , e ) ; if ( a . cm && ! a . cm . curOp ) return dd ( a . cm , Te ) ( a , b , c , d , e ) ; var f = new Se ( a , e ) , g = pb ( b , c ) ; if ( d && fh ( d , f , ! 1 ) , g > 0 || 0 == g && f . clearWhenEmpty !== ! 1 ) return f ; if ( f . replacedWith && ( f . collapsed = ! 0 , f . widgetNode = nh ( "span" , [ f . replacedWith ] , "CodeMirror-widget" ) , d . handleMouseEvents || f . widgetNode . setAttribute ( "cm-ignore-events" , "true" ) , d . insertLeft && ( f . widgetNode . insertLeft = ! 0 ) ) , f . collapsed ) { if ( qf ( a , b . line , b , c , f ) || b . line != c . line && qf ( a , c . line , b , c , f ) ) throw new Error ( "Inserting collapsed marker partially overlapping an existing one" ) ; u = ! 0 } f . addToHistory && qg ( a , { from : b , to : c , origin : "markText" } , a . sel , 0 / 0 ) ; var j , h = b . line , i = a . cm ; if ( a . iter ( h , c . line + 1 , function ( a ) { i && f . collapsed && ! i . options . lineWrapping && rf ( a ) == i . display . maxLine && ( j = ! 0 ) , f . collapsed && h != b . line && hg ( a , 0 ) , af ( a , new Ze ( f , h == b . line ? b . ch : null , h == c . line ? c . ch : null ) ) , ++ h } ) , f . collapsed && a . iter ( b . line , c . line + 1 , function ( b ) { vf ( a , b ) && hg ( b , 0 ) } ) , f . clearOnEnter && Hg ( f , "beforeCursorEnter" , function ( ) { f . clear ( ) } ) , f . readOnly && ( t = ! 0 , ( a . history . done . length || a . history . undone . length ) && a . clearHistory ( ) ) , f . collapsed && ( f . id = ++ Re , f . atomic = ! 0 ) , i ) { if ( j && ( i . curOp . updateMaxLine = ! 0 ) , f . collapsed ) id ( i , b . line , c . line + 1 ) ; else if ( f . className || f . title || f . startStyle || f . endStyle || f . css ) for ( var k = b . line ; k <= c . line ; k ++ ) jd ( i , k , "text" ) ; f . atomic && ac ( i . doc ) , Lg ( i , "markerAdded" , i , f ) } return f } function Ve ( a , b , c , d , e ) { d = fh ( d ) , d . shared = ! 1 ; var f = [ Te ( a , b , c , d , e ) ] , g = f [ 0 ] , h = d . widgetNode ; return cg ( a , function ( a ) { h && ( d . widgetNode = h . cloneNode ( ! 0 ) ) , f . push ( Te ( a , Ob ( a , b ) , Ob ( a , c ) , d , e ) ) ; for ( var i = 0 ; i < a . linked . length ; ++ i ) if ( a . linked [ i ] . isParent ) return ; g = _g ( f ) } ) , new Ue ( f , g ) } function We ( a ) { return a . findMarks ( ob ( a . first , 0 ) , a . clipPos ( ob ( a . lastLine ( ) ) ) , function ( a ) { return a . parent } ) } function Xe ( a , b ) { for ( var c = 0 ; c < b . length ; c ++ ) { var d = b [ c ] , e = d . find ( ) , f = a . clipPos ( e . from ) , g = a . clipPos ( e . to ) ; if ( pb ( f , g ) ) { var h = Te ( a , f , g , d . primary , d . primary . type ) ; d . markers . push ( h ) , h . parent = d } } } function Ye ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) { var c = a [ b ] , d = [ c . primary . doc ] ; cg ( c . primary . doc , function ( a ) { d . push ( a ) } ) ; for ( var e = 0 ; e < c . markers . length ; e ++ ) { var f = c . markers [ e ] ; - 1 == bh ( d , f . doc ) && ( f . parent = null , c . markers . splice ( e -- , 1 ) ) } } } function Ze ( a , b , c ) { this . marker = a , this . from = b , this . to = c } function $e ( a , b ) { if ( a ) for ( var c = 0 ; c < a . length ; ++ c ) { var d = a [ c ] ; if ( d . marker == b ) return d } } function _e ( a , b ) { for ( var c , d = 0 ; d < a . length ; ++ d ) a [ d ] != b && ( c || ( c = [ ] ) ) . push ( a [ d ] ) ; return c } function af ( a , b ) { a . markedSpans = a . markedSpans ? a . markedSpans . concat ( [ b ] ) : [ b ] , b . marker . attachLine ( a ) } function bf ( a , b , c ) { if ( a ) for ( var e , d = 0 ; d < a . length ; ++ d ) { var f = a [ d ] , g = f . marker , h = null == f . from || ( g . inclusiveLeft ? f . from <= b : f . from < b ) ; if ( h || f . from == b && "bookmark" == g . type && ( ! c || ! f . marker . insertLeft ) ) { var i = null == f . to || ( g . inclusiveRight ?
} , reset : function ( a ) { if ( ! this . contextMenuPending ) { var b , c , f = this . cm , g = f . doc ; if ( f . somethingSelected ( ) ) { this . prevInput = "" ; var h = g . sel . primary ( ) ; b = Ih && ( h . to ( ) . line - h . from ( ) . line > 100 || ( c = f . getSelection ( ) ) . length > 1e3 ) ; var i = b ? "-" : c || f . getSelection ( ) ; this . textarea . value = i , f . state . focused && ah ( this . textarea ) , d && e >= 9 && ( this . hasSelection = i ) } else a || ( this . prevInput = this . textarea . value = "" , d && e >= 9 && ( this . hasSelection = null ) ) ; this . inaccurateSelection = b } } , getField : function ( ) { return this . textarea } , supportsTouch : function ( ) { return ! 1 } , focus : function ( ) { if ( "nocursor" != this . cm . options . readOnly && ( ! n || sh ( ) != this . textarea ) ) try { this . textarea . focus ( ) } catch ( a ) { } } , blur : function ( ) { this . textarea . blur ( ) } , resetPosition : function ( ) { this . wrapper . style . top = this . wrapper . style . left = 0 } , receivedFocus : function ( ) { this . slowPoll ( ) } , slowPoll : function ( ) { var a = this ; a . pollingFast || a . polling . set ( this . cm . options . pollInterval , function ( ) { a . poll ( ) , a . cm . state . focused && a . slowPoll ( ) } ) } , fastPoll : function ( ) { function c ( ) { var d = b . poll ( ) ; d || a ? ( b . pollingFast = ! 1 , b . slowPoll ( ) ) : ( a = ! 0 , b . polling . set ( 60 , c ) ) } var a = ! 1 , b = this ; b . pollingFast = ! 0 , b . polling . set ( 20 , c ) } , poll : function ( ) { var a = this . cm , b = this . textarea , c = this . prevInput ; if ( this . contextMenuPending || ! a . state . focused || Hh ( b ) && ! c && ! this . composing || ub ( a ) || a . options . disableInput || a . state . keySeq ) return ! 1 ; var f = b . value ; if ( f == c && ! a . somethingSelected ( ) ) return ! 1 ; if ( d && e >= 9 && this . hasSelection === f || o && /[\uf700-\uf7ff]/ . test ( f ) ) return a . display . input . reset ( ) , ! 1 ; if ( a . doc . sel == a . display . selForContextMenu ) { var g = f . charCodeAt ( 0 ) ; if ( 8203 != g || c || ( c = "\u200b" ) , 8666 == g ) return this . reset ( ) , this . cm . execCommand ( "undo" ) } for ( var h = 0 , i = Math . min ( c . length , f . length ) ; i > h && c . charCodeAt ( h ) == f . charCodeAt ( h ) ; ) ++ h ; var j = this ; return cd ( a , function ( ) { wb ( a , f . slice ( h ) , c . length - h , null , j . composing ? "*compose" : null ) , f . length > 1e3 || f . indexOf ( "\n" ) > - 1 ? b . value = j . prevInput = "" : j . prevInput = f , j . composing && ( j . composing . range . clear ( ) , j . composing . range = a . markText ( j . composing . start , a . getCursor ( "to" ) , { className : "CodeMirror-composing" } ) ) } ) , ! 0 } , ensurePolled : function ( ) { this . pollingFast && this . poll ( ) && ( this . pollingFast = ! 1 ) } , onKeyPress : function ( ) { d && e >= 9 && ( this . hasSelection = null ) , this . fastPoll ( ) } , onContextMenu : function ( a ) { function o ( ) { if ( null != h . selectionStart ) { var a = c . somethingSelected ( ) , d = "\u200b" + ( a ? h . value : "" ) ; h . value = "\u21da" , h . value = d , b . prevInput = a ? "" : "\u200b" , h . selectionStart = 1 , h . selectionEnd = d . length , g . selForContextMenu = c . doc . sel } } function p ( ) { if ( b . contextMenuPending = ! 1 , b . wrapper . style . position = "relative" , h . style . cssText = m , d && 9 > e && g . scrollbars . setScrollTop ( g . scroller . scrollTop = k ) , null != h . selectionStart ) { ( ! d || d && 9 > e ) && o ( ) ; var a = 0 , f = function ( ) { g . selForContextMenu == c . doc . sel && 0 == h . selectionStart && h . selectionEnd > 0 && "\u200b" == b . prevInput ? dd ( c , Je . selectAll ) ( c ) : a ++ < 10 ? g . detectingSelectAll = setTimeout ( f , 500 ) : g . input . reset ( ) } ; g . detectingSelectAll = setTimeout ( f , 200 ) } } var b = this , c = b . cm , g = c . display , h = b . textarea , j = td ( c , a ) , k = g . scroller . scrollTop ; if ( j && ! i ) { var l = c . options . resetSelectionOnContextMenu ; l && - 1 == c . doc . sel . contains ( j ) && dd ( c , Zb ) ( c . doc , Mb ( j ) , Tg ) ; var m = h . style . cssText ; if ( b . wrapper . style . position = "absolute" , h . style . cssText = "position: fixed; width: 30px; height: 30px; top: " + ( a . clientY - 5 ) + "px; left: " + ( a . clientX - 5 ) + "px; z-index: 1000; background: " + ( d ? "rgba(255, 255, 255, .05)" : "transparent" ) + "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);" , f ) var n = window . scrollY ; if ( g . input . focus ( ) , f && window . scrollTo ( null , n ) , g . input . reset ( ) , c . somethingSelected ( ) || ( h . value = b . prevInput = " " ) , b . contextMenuPending = ! 0 , g . selForContextMenu = c . doc . sel , clearTimeout ( g . detectingSelectAll ) , d && e >= 9 && o ( ) , s ) { Eg ( a ) ; var q = function ( ) { Ig ( window , "mouseup" , q ) , setTimeout ( p , 20 ) } ; Hg ( window , "mouseup" , q ) } else setTimeout ( p , 50 ) } } , setUneditable : dh , needsContentAttribute : ! 1 } , Bb . prototype ) , Db . prototype = fh ( { init : function ( a ) { function e ( a ) { if ( c . somethingSelected ( ) ) vb = c . getSelections ( ) , "cut" == a . type && c . replaceSelection ( "" , null , "cut" ) ; else { if ( ! c . options . lineWiseCopyCut ) return ; var b = zb ( c ) ; vb = b . text , "cut" == a . type && c . operation ( function ( ) { c . setSelections ( b . ranges , 0 , Tg ) , c . replaceSelection ( "" , null , "cut" ) } ) } if
for ( var f = 0 ; f < b . fallthrough . length ; f ++ ) { var g = Me ( a , b . fallthrough [ f ] , c , d ) ; if ( g ) return g } } } , Ne = v . isModifierKey = function ( a ) { var b = "string" == typeof a ? a : Lh [ a . keyCode ] ; return "Ctrl" == b || "Alt" == b || "Shift" == b || "Mod" == b } , Oe = v . keyName = function ( a , b ) { if ( i && 34 == a . keyCode && a [ "char" ] ) return ! 1 ; var c = Lh [ a . keyCode ] , d = c ; return null == d || a . altGraphKey ? ! 1 : ( a . altKey && "Alt" != c && ( d = "Alt-" + d ) , ( r ? a . metaKey : a . ctrlKey ) && "Ctrl" != c && ( d = "Ctrl-" + d ) , ( r ? a . ctrlKey : a . metaKey ) && "Cmd" != c && ( d = "Cmd-" + d ) , ! b && a . shiftKey && "Shift" != c && ( d = "Shift-" + d ) , d ) } ; v . fromTextArea = function ( a , b ) { function d ( ) { a . value = i . getValue ( ) } if ( b = b ? fh ( b ) : { } , b . value = a . value , ! b . tabindex && a . tabIndex && ( b . tabindex = a . tabIndex ) , ! b . placeholder && a . placeholder && ( b . placeholder = a . placeholder ) , null == b . autofocus ) { var c = sh ( ) ; b . autofocus = c == a || null != a . getAttribute ( "autofocus" ) && c == document . body } if ( a . form && ( Hg ( a . form , "submit" , d ) , ! b . leaveSubmitMethodAlone ) ) { var e = a . form , f = e . submit ; try { var g = e . submit = function ( ) { d ( ) , e . submit = f , e . submit ( ) , e . submit = g } } catch ( h ) { } } b . finishInit = function ( b ) { b . save = d , b . getTextArea = function ( ) { return a } , b . toTextArea = function ( ) { b . toTextArea = isNaN , d ( ) , a . parentNode . removeChild ( b . getWrapperElement ( ) ) , a . style . display = "" , a . form && ( Ig ( a . form , "submit" , d ) , "function" == typeof a . form . submit && ( a . form . submit = f ) ) } } , a . style . display = "none" ; var i = v ( function ( b ) { a . parentNode . insertBefore ( b , a . nextSibling ) } , b ) ; return i } ; var Qe = v . StringStream = function ( a , b ) { this . pos = this . start = 0 , this . string = a , this . tabSize = b || 8 , this . lastColumnPos = this . lastColumnValue = 0 , this . lineStart = 0 } ; Qe . 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 ( a ) { var b = this . string . charAt ( this . pos ) ; if ( "string" == typeof a ) var c = b == a ; else var c = b && ( a . test ? a . test ( b ) : a ( b ) ) ; return c ? ( ++ this . pos , b ) : void 0 } , eatWhile : function ( a ) { for ( var b = this . pos ; this . eat ( a ) ; ) ; return this . pos > b } , eatSpace : function ( ) { for ( var a = this . pos ; /[\s\u00a0]/ . test ( this . string . charAt ( this . pos ) ) ; ) ++ this . pos ; return this . pos > a } , skipToEnd : function ( ) { this . pos = this . string . length } , skipTo : function ( a ) { var b = this . string . indexOf ( a , this . pos ) ; return b > - 1 ? ( this . pos = b , ! 0 ) : void 0 } , backUp : function ( a ) { this . pos -= a } , column : function ( ) { return this . lastColumnPos < this . start && ( this . lastColumnValue = Xg ( this . string , this . start , this . tabSize , this . lastColumnPos , this . lastColumnValue ) , this . lastColumnPos = this . start ) , this . lastColumnValue - ( this . lineStart ? Xg ( this . string , this . lineStart , this . tabSize ) : 0 ) } , indentation : function ( ) { return Xg ( this . string , null , this . tabSize ) - ( this . lineStart ? Xg ( this . string , this . lineStart , this . tabSize ) : 0 ) } , match : function ( a , b , c ) { if ( "string" != typeof a ) { var f = this . string . slice ( this . pos ) . match ( a ) ; return f && f . index > 0 ? null : ( f && b !== ! 1 && ( this . pos += f [ 0 ] . length ) , f ) } var d = function ( a ) { return c ? a . toLowerCase ( ) : a } , e = this . string . substr ( this . pos , a . length ) ; return d ( e ) == d ( a ) ? ( b !== ! 1 && ( this . pos += a . length ) , ! 0 ) : void 0 } , current : function ( ) { return this . string . slice ( this . start , this . pos ) } , hideFirstChars : function ( a , b ) { this . lineStart += a ; try { return b ( ) } finally { this . lineStart -= a } } } ; var Re = 0 , Se = v . TextMarker = function ( a , b ) { this . lines = [ ] , this . type = b , this . doc = a , this . id = ++ Re } ; Qg ( Se ) , Se . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { var a = this . doc . cm , b = a && ! a . curOp ; if ( b && Vc ( a ) , Pg ( this , "clear" ) ) { var c = this . find ( ) ; c && Lg ( this , "clear" , c . from , c . to ) } for ( var d = null , e = null , f = 0 ; f < this . lines . length ; ++ f ) { var g = this . lines [ f ] , h = $e ( g . markedSpans , this ) ; a && ! this . collapsed ? jd ( a , ig ( g ) , "text" ) : a && ( null != h . to && ( e = ig ( g ) ) , null != h . from && ( d = ig ( g ) ) ) , g . markedSpans = _e ( g . markedSpans , h ) , null == h . from && this . collapsed && ! vf ( this . doc , g ) && a && hg ( g , Rc ( a . display ) ) } if ( a && this . collapsed && ! a . options . lineWrapping ) for ( var f = 0 ; f < this . lines . length ; ++ f ) { var i = rf ( this . lines [ f ] ) , j = G ( i ) ; j > a . display . maxLineLength && ( a . display . maxLine = i , a . display . maxLineLength = j , a . display . maxLineChanged = ! 0 ) } null != d && a && this . collapsed && id ( a , d , e + 1 ) , this . lines . length = 0 , this . explicitlyCleared = ! 0 , this . atomic && this . doc . cantEdit && ( this . doc . cantEdit = ! 1 , a && ac ( a . doc ) ) , a && Lg ( a , "markerCleared"
a . registerHelper ( "hintWords" , "css" , u ) , a . defineMIME ( "text/css" , { documentTypes : d , mediaTypes : f , mediaFeatures : h , propertyKeywords : j , nonStandardPropertyKeywords : l , fontProperties : n , counterDescriptors : p , colorKeywords : r , valueKeywords : t , tokenHooks : { "/" : function ( a , b ) { return a . eat ( "*" ) ? ( b . tokenize = v , v ( a , b ) ) : ! 1 } } , name : "css" } ) , a . defineMIME ( "text/x-scss" , { mediaTypes : f , mediaFeatures : h , propertyKeywords : j , nonStandardPropertyKeywords : l , colorKeywords : r , valueKeywords : t , fontProperties : n , allowNested : ! 0 , tokenHooks : { "/" : function ( a , b ) { return a . eat ( "/" ) ? ( a . skipToEnd ( ) , [ "comment" , "comment" ] ) : a . eat ( "*" ) ? ( b . tokenize = v , v ( a , b ) ) : [ "operator" , "operator" ] } , ":" : function ( a ) { return a . match ( /\s*\{/ ) ? [ null , "{" ] : ! 1 } , $ : function ( a ) { return a . match ( /^[\w-]+/ ) , a . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] } , "#" : function ( a ) { return a . eat ( "{" ) ? [ null , "interpolation" ] : ! 1 } } , name : "css" , helperType : "scss" } ) , a . defineMIME ( "text/x-less" , { mediaTypes : f , mediaFeatures : h , propertyKeywords : j , nonStandardPropertyKeywords : l , colorKeywords : r , valueKeywords : t , fontProperties : n , allowNested : ! 0 , tokenHooks : { "/" : function ( a , b ) { return a . eat ( "/" ) ? ( a . skipToEnd ( ) , [ "comment" , "comment" ] ) : a . eat ( "*" ) ? ( b . tokenize = v , v ( a , b ) ) : [ "operator" , "operator" ] } , "@" : function ( a ) { return a . eat ( "{" ) ? [ null , "interpolation" ] : a . match ( /^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/ , ! 1 ) ? ! 1 : ( a . eatWhile ( /[\w\\\-]/ ) , a . match ( /^\s*:/ , ! 1 ) ? [ "variable-2" , "variable-definition" ] : [ "variable-2" , "variable" ] ) } , "&" : function ( ) { return [ "atom" , "atom" ] } } , name : "css" , helperType : "less" } ) } ) , function ( a ) { "object" == typeof exports && "object" == typeof module ? a ( require ( "../../lib/codemirror" ) , require ( "../markdown/markdown" ) , require ( "../../addon/mode/overlay" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , a ) : a ( CodeMirror ) } ( function ( a ) { "use strict" ; a . defineMode ( "gfm" , function ( b , c ) { function e ( a ) { return a . code = ! 1 , null } var d = 0 , f = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( a ) { return { code : a . code , codeBlock : a . codeBlock , ateSpace : a . ateSpace } } , token : function ( a , b ) { if ( b . combineTokens = null , b . codeBlock ) return a . match ( /^```/ ) ? ( b . codeBlock = ! 1 , null ) : ( a . skipToEnd ( ) , null ) ; if ( a . sol ( ) && ( b . code = ! 1 ) , a . sol ( ) && a . match ( /^```/ ) ) return a . skipToEnd ( ) , b . codeBlock = ! 0 , null ; if ( "`" === a . peek ( ) ) { a . next ( ) ; var c = a . pos ; a . eatWhile ( "`" ) ; var e = 1 + a . pos - c ; return b . code ? e === d && ( b . code = ! 1 ) : ( d = e , b . code = ! 0 ) , null } if ( b . code ) return a . next ( ) , null ; if ( a . eatSpace ( ) ) return b . ateSpace = ! 0 , null ; if ( a . sol ( ) || b . ateSpace ) { if ( b . ateSpace = ! 1 , a . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return b . combineTokens = ! 0 , "link" ; if ( a . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return b . combineTokens = ! 0 , "link" } return a . match ( /^((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?\xab\xbb\u201c\u201d\u2018\u2019]))/i ) && "](" != a . string . slice ( a . start - 2 , a . start ) ? ( b . combineTokens = ! 0 , "link" ) : ( a . next ( ) , null ) } , blankLine : e } , g = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : ! 0 , strikethrough : ! 0 } ; for ( var h in c ) g [ h ] = c [ h ] ; return g . name = "markdown" , a . overlayMode ( a . getMode ( b , g ) , f ) } , "markdown" ) , a . defineMIME ( "text/x-gfm" , "gfm" ) } ) , function ( a ) { "object" == typeof exports && "object" == typeof module ? a ( require ( "../../lib/codemirror" ) , require ( "../xml/xml" ) , require ( "../javascript/javascript" ) , require ( "../css/css" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" , "../xml/xml" , "../javascript/javascript" , "../css/css" ] , a ) : a ( CodeMirror ) } ( function ( a ) { "use strict" ; a . defineMode ( "htmlmixed" , function ( b , c ) { function j ( a , b ) { var c = b . htmlState . tagName ; c && ( c = c . toLowerCase ( ) ) ; var g = d . token ( a , b . htmlState ) ; if ( "script" == c && /\btag\b/ . test ( g ) && ">" == a . current ( ) ) { var h = a . string . slice ( Math . max ( 0 , a . pos - 100 ) , a . pos ) . match ( /\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i ) ; h = h ? h [ 1 ] : "" , h && /[\"\']/ . test ( h . charAt ( 0 ) ) && ( h = h . slice ( 1 , h . length - 1 ) ) ; for ( var i = 0 ; i < f . length ; ++ i ) { var j = f [ i ] ; if ( "string" == typeof j . matches ? h == j . matches : j . matches .
a . registerHelper ( "hintWords" , "php" , [ f , g , h ] . join ( " " ) . split ( " " ) ) , a . registerHelper ( "wordChars" , "php" , /[\w$]/ ) ; var i = { name : "clike" , helperType : "php" , keywords : b ( f ) , blockKeywords : b ( "catch do else elseif for foreach if switch try while finally" ) , defKeywords : b ( "class function interface namespace trait" ) , atoms : b ( g ) , builtin : b ( h ) , multiLineStrings : ! 0 , hooks : { $ : function ( a ) { return a . eatWhile ( /[\w\$_]/ ) , "variable-2" } , "<" : function ( a , b ) { if ( a . match ( /<</ ) ) { var c = a . eat ( "'" ) ; a . eatWhile ( /[\w\.]/ ) ; var e = a . current ( ) . slice ( 3 + ( c ? 1 : 0 ) ) ; if ( c && a . eat ( "'" ) , e ) return ( b . tokStack || ( b . tokStack = [ ] ) ) . push ( e , 0 ) , b . tokenize = d ( e , c ? ! 1 : ! 0 ) , "string" } return ! 1 } , "#" : function ( a ) { for ( ; ! a . eol ( ) && ! a . match ( "?>" , ! 1 ) ; ) a . next ( ) ; return "comment" } , "/" : function ( a ) { if ( a . eat ( "/" ) ) { for ( ; ! a . eol ( ) && ! a . match ( "?>" , ! 1 ) ; ) a . next ( ) ; return "comment" } return ! 1 } , '"' : function ( a , b ) { return ( b . tokStack || ( b . tokStack = [ ] ) ) . push ( '"' , 0 ) , b . tokenize = d ( '"' ) , "string" } , "{" : function ( a , b ) { return b . tokStack && b . tokStack . length && b . tokStack [ b . tokStack . length - 1 ] ++ , ! 1 } , "}" : function ( a , b ) { return b . tokStack && b . tokStack . length > 0 && ! -- b . tokStack [ b . tokStack . length - 1 ] && ( b . tokenize = d ( b . tokStack [ b . tokStack . length - 2 ] ) ) , ! 1 } } } ; a . defineMode ( "php" , function ( b , c ) { function f ( a , b ) { var c = b . curMode == e ; if ( a . sol ( ) && b . pending && '"' != b . pending && "'" != b . pending && ( b . pending = null ) , c ) return c && null == b . php . tokenize && a . match ( "?>" ) ? ( b . curMode = d , b . curState = b . html , "meta" ) : e . token ( a , b . curState ) ; if ( a . match ( /^<\?\w*/ ) ) return b . curMode = e , b . curState = b . php , "meta" ; if ( '"' == b . pending || "'" == b . pending ) { for ( ; ! a . eol ( ) && a . next ( ) != b . pending ; ) ; var f = "string" } else if ( b . pending && a . pos < b . pending . end ) { a . pos = b . pending . end ; var f = b . pending . style } else var f = d . token ( a , b . curState ) ; b . pending && ( b . pending = null ) ; var i , g = a . current ( ) , h = g . search ( /<\?/ ) ; return - 1 != h && ( b . pending = "string" == f && ( i = g . match ( /[\'\"]$/ ) ) && ! /\?>/ . test ( g ) ? i [ 0 ] : { end : a . pos , style : f } , a . backUp ( g . length - h ) ) , f } var d = a . getMode ( b , "text/html" ) , e = a . getMode ( b , i ) ; return { startState : function ( ) { var b = a . startState ( d ) , f = a . startState ( e ) ; return { html : b , php : f , curMode : c . startOpen ? e : d , curState : c . startOpen ? f : b , pending : null } } , copyState : function ( b ) { var i , c = b . html , f = a . copyState ( d , c ) , g = b . php , h = a . copyState ( e , g ) ; return i = b . curMode == d ? f : h , { html : f , php : h , curMode : b . curMode , curState : i , pending : b . pending } } , token : f , indent : function ( a , b ) { return a . curMode != e && /^\s*<\// . test ( b ) || a . curMode == e && /^\?>/ . test ( b ) ? d . indent ( a . html , b ) : a . curMode . indent ( a . curState , b ) } , blockCommentStart : "/*" , blockCommentEnd : "*/" , lineComment : "//" , innerMode : function ( a ) { return { state : a . curState , mode : a . curMode } } } } , "htmlmixed" , "clike" ) , a . defineMIME ( "application/x-httpd-php" , "php" ) , a . defineMIME ( "application/x-httpd-php-open" , { name : "php" , startOpen : ! 0 } ) , a . defineMIME ( "text/x-php" , i ) } ) , function ( a ) { "object" == typeof exports && "object" == typeof module ? a ( require ( "../../lib/codemirror" ) ) : "function" == typeof define && define . amd ? define ( [ "../../lib/codemirror" ] , a ) : a ( CodeMirror ) } ( function ( a ) { "use strict" ; a . defineMode ( "sass" , function ( a ) { function b ( a ) { return new RegExp ( "^" + a . join ( "|" ) ) } function h ( a , b ) { var c = a . peek ( ) ; return ")" === c ? ( a . next ( ) , b . tokenizer = n , "operator" ) : "(" === c ? ( a . next ( ) , a . eatSpace ( ) , "operator" ) : "'" === c || '"' === c ? ( b . tokenizer = j ( a . next ( ) ) , "string" ) : ( b . tokenizer = j ( ")" , ! 1 ) , "string" ) } function i ( a , b ) { return function ( c , d ) { return c . sol ( ) && c . indentation ( ) <= a ? ( d . tokenizer = n , n ( c , d ) ) : ( b && c . skipTo ( "*/" ) ? ( c . next ( ) , c . next ( ) , d . tokenizer = n ) : c . skipToEnd ( ) , "comment" ) } } function j ( a , b ) { function c ( d , e ) { var f = d . next ( ) , g = d . peek ( ) , h = d . string . charAt ( d . pos - 2 ) , i = "\\" !== f && g === a || f === a && "\\" !== h ; return i ? ( f !== a && b && d . next ( ) , e . tokenizer = n , "string" ) : "#" === f && "{" === g ? ( e . tokenizer = k ( c ) , d . next ( ) , "operator" ) : "string" } return null == b && ( b = ! 0 ) , c } function k ( a ) { return function ( b , c ) { return "}" === b . peek ( ) ? ( b . next ( ) , c . tokenizer = a , "operator" ) : n ( b , c ) } } function l ( b ) { if ( 0 == b . indentCount ) { b . indentCount ++ ; var c = b . scopes [ 0 ] . offset , d = c + a . indentUnit ; b . scopes . unshift ( { offset : d } ) } } function m ( a ) { 1 != a . scopes . length && a . scopes . shift ( ) } function n ( a , b ) { var c = a . peek ( ) ; if ( a . match ( "/*" ) ) return b . tokenizer = i ( a . indentation ( ) , ! 0 ) , b . tokenizer ( a , b ) ; if ( a . match ( "//" ) ) return b . tokenizer = i ( a . indentation ( ) , ! 1 ) , b . tokenizer ( a , b ) ; if ( a . match ( "#{" ) ) return b . tokenizer = k ( n ) , " op