function simpleUpload ( e , l , n ) { function a ( e ) { if ( 1 == u ( e ) ) { var n = null ; if ( null != b ) { if ( void 0 == b [ e ] || null == b [ e ] ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; n = b [ e ] } else if ( "" == l . value ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; return j . length > 0 && ! c ( j , n ) ? void K ( e , { name : "InvalidFileExtensionError" , message : "That file format is not allowed" } ) : k . length > 0 && ! v ( k , n ) ? void K ( e , { name : "InvalidFileTypeError" , message : "That file format is not allowed" } ) : x > 0 && ! h ( x , n ) ? void K ( e , { name : "MaxFileSizeError" , message : "That file is too big" } ) : void ( null != S && null != z ? o ( e ) : i ( e ) ) } } function o ( e ) { if ( null != b && void 0 != b [ e ] && null != b [ e ] && window . Worker ) { var l = b [ e ] ; if ( void 0 != l . size && null != l . size && "" != l . size && y ( l . size ) && ( l . slice || l . webkitSlice || l . mozSlice ) ) try { var n = new Worker ( S ) ; n . addEventListener ( "error" , function ( ) { n . terminate ( ) , R [ e ] . hashWorker = null , i ( e ) } , ! 1 ) , n . addEventListener ( "message" , function ( l ) { if ( l . data . result ) { var t = l . data . result ; n . terminate ( ) , R [ e ] . hashWorker = null , r ( e , t ) } } , ! 1 ) ; var t , a , o , s , p , f ; return f = function ( e ) { n . postMessage ( { message : e . target . result , block : a } ) } , p = function ( ) { a . end !== l . size && ( a . start += t , a . end += t , a . end > l . size && ( a . end = l . size ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) ) } , t = 1048576 , a = { file _size : l . size , start : 0 } , a . end = t > l . size ? l . size : t , n . addEventListener ( "message" , p , ! 1 ) , o = new FileReader , o . onload = f , l . slice ? s = l . slice ( a . start , a . end ) : l . webkitSlice ? s = l . webkitSlice ( a . start , a . end ) : l . mozSlice && ( s = l . mozSlice ( a . start , a . end ) ) , o . readAsArrayBuffer ( s ) , void ( R [ e ] . hashWorker = n ) } catch ( u ) { } } i ( e ) } function r ( e , l ) { if ( 1 == u ( e ) ) { var n = ! 1 , t = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , Y ( e , 100 ) , G ( e , l ) , ! 0 ) ) } , a = function ( ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , i ( e ) , ! 0 ) ) } , o = function ( l ) { return 1 == u ( e ) && ( ! n && ( n = ! 0 , K ( e , { name : "HashError" , message : l } ) , ! 0 ) ) } ; z . call ( A [ e ] , l , { success : t , proceed : a , error : o } ) } } function i ( n ) { if ( 1 == u ( n ) ) { if ( null != b ) { if ( void 0 == b [ n ] || null == b [ n ] ) return void K ( n , { name : "InternalError" , message : "There was an error uploading the file" } ) ; if ( window . FormData ) { var t = $ . ajaxSettings . xhr ( ) ; if ( t . upload ) { var a = b [ n ] , o = new FormData ; f ( o , F ) , o . append ( C , a ) ; var r = { url : e , data : o , type : "post" , cache : ! 1 , xhrFields : T , beforeSend : function ( e ) { R [ n ] . xhr = e } , xhr : function ( ) { return t . upload . addEventListener ( "progress" , function ( e ) { e . lengthComputable && Y ( n , e . loaded / e . total * 100 ) } , ! 1 ) , t } , error : function ( ) { R [ n ] . xhr = null , K ( n , { name : "RequestError" , message : "Could not get response from server" } ) } , success : function ( e ) { R [ n ] . xhr = null , Y ( n , 100 ) , G ( n , e ) } , contentType : ! 1 , processData : ! 1 } ; return "auto" != E && ( r . dataType = E ) , void $ . ajax ( r ) } } } "object" == typeof l && null !== l ? s ( n ) : K ( n , { name : "UnsupportedError" , message : "Your browser does not support this upload method" } ) } } function s ( l ) { if ( 0 == l ) { var n = simpleUpload . queueIframe ( { origin : g ( e ) , expect : E , complete : function ( e ) { 1 == u ( l ) && ( R [ l ] . iframe = null , simpleUpload . dequeueIframe ( n ) , Y ( l , 100 ) , G ( l , e ) ) } , error : function ( e ) { 1 == u ( l ) && ( R [ l ] . iframe = null , simpleUpload . dequeueIframe ( n ) , K ( l , { name : "RequestError" , message : e } ) ) } } ) ; R [ l ] . iframe = n ; var t = p ( F ) ; J . attr ( "action" , e + ( - 1 == e . lastIndexOf ( "?" ) ? "?" : "&" ) + "_iframeUpload=" + n + "&_=" + ( new Date ) . getTime ( ) ) . attr ( "target" , "simpleUpload_iframe_" + n ) . prepend ( t ) . submit ( ) } else K ( l , { name : "UnsupportedError" , message : "Multiple file uploads not supported" } ) } function p ( e , l ) { ( void 0 === l || null === l || "" === l ) && ( l = null ) ; var n = "" ; for ( var t in e ) void 0 === e [ t ] || null === e [ t ] ? n += $ ( "<div>" ) . append ( $ ( '<input type="hidden">' ) . attr ( "name" , null == l ? t + "" : l + "[" + t + "]" ) . val ( "" ) ) . html ( ) : "object" == typeof e [ t ] ? n += p ( e [ t ] , null == l ? t + "" : l + "[" + t + "]" ) : "boolean" == typeof e [ t ] ? n += $ ( "<div>" ) . append ( $ ( '<input type="hidden">' ) . attr ( "name" , null == l ? t + "" : l + "[" + t + "]" ) . val ( e [ t ] ? "true" : "false" ) ) . html ( ) : "number" == typeof e [ t ] ? n += $ ( "<div>" ) . append ( $ ( '<input type="hidden">' ) . attr ( "name" , null == l ? t + "" : l + "[" + t + "]" ) . val ( e [ t ] + "" ) ) . html ( ) : "string" == typeof e [ t ] && ( n += $ ( "<div>" ) . append ( $ ( '<input type="hidden">' ) . attr ( "name" , null == l ? t + "" : l + "[" + t + "]" ) . val ( e [ t ] ) ) . html ( ) ) ; return n } function f ( e , l , n ) { ( void 0 === n || null === n || "" === n ) && ( n = null ) ; fo
return t . webpackPolyfill || ( t . deprecate = function ( ) { } , t . paths = [ ] , t . children = [ ] , t . webpackPolyfill = 1 ) , t } } , function ( t , e ) { function r ( t ) { if ( t ) return n ( t ) } function n ( t ) { for ( var e in r . prototype ) t [ e ] = r . prototype [ e ] ; return t } t . exports = r , r . prototype . on = r . prototype . addEventListener = function ( t , e ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ t ] = this . _callbacks [ t ] || [ ] ) . push ( e ) , this } , r . prototype . once = function ( t , e ) { function r ( ) { n . off ( t , r ) , e . apply ( this , arguments ) } var n = this ; return this . _callbacks = this . _callbacks || { } , r . fn = e , this . on ( t , r ) , this } , r . prototype . off = r . prototype . removeListener = r . prototype . removeAllListeners = r . prototype . removeEventListener = function ( t , e ) { if ( this . _callbacks = this . _callbacks || { } , 0 == arguments . length ) return this . _callbacks = { } , this ; var r = this . _callbacks [ t ] ; if ( ! r ) return this ; if ( 1 == arguments . length ) return delete this . _callbacks [ t ] , this ; for ( var n , o = 0 ; o < r . length ; o ++ ) if ( ( n = r [ o ] ) === e || n . fn === e ) { r . splice ( o , 1 ) ; break } return this } , r . prototype . emit = function ( t ) { this . _callbacks = this . _callbacks || { } ; var e = [ ] . slice . call ( arguments , 1 ) , r = this . _callbacks [ t ] ; if ( r ) { r = r . slice ( 0 ) ; for ( var n = 0 , o = r . length ; n < o ; ++ n ) r [ n ] . apply ( this , e ) } return this } , r . prototype . listeners = function ( t ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ t ] || [ ] } , r . prototype . hasListeners = function ( t ) { return ! ! this . listeners ( t ) . length } } , function ( t , e , r ) { ( function ( t ) { var n = r ( 15 ) , o = r ( 16 ) ; e . deconstructPacket = function ( t ) { function e ( t ) { if ( ! t ) return t ; if ( o ( t ) ) { var i = { _placeholder : ! 0 , num : r . length } ; return r . push ( t ) , i } if ( n ( t ) ) { for ( var s = new Array ( t . length ) , a = 0 ; a < t . length ; a ++ ) s [ a ] = e ( t [ a ] ) ; return s } if ( "object" == typeof t && ! ( t instanceof Date ) ) { var s = { } ; for ( var c in t ) s [ c ] = e ( t [ c ] ) ; return s } return t } var r = [ ] , i = t . data , s = t ; return s . data = e ( i ) , s . attachments = r . length , { packet : s , buffers : r } } , e . reconstructPacket = function ( t , e ) { function r ( t ) { if ( t && t . _placeholder ) { return e [ t . num ] } if ( n ( t ) ) { for ( var i = 0 ; i < t . length ; i ++ ) t [ i ] = r ( t [ i ] ) ; return t } if ( t && "object" == typeof t ) { for ( var s in t ) t [ s ] = r ( t [ s ] ) ; return t } return t } return t . data = r ( t . data ) , t . attachments = void 0 , t } , e . removeBlobs = function ( e , r ) { function i ( e , c , u ) { if ( ! e ) return e ; if ( t . Blob && e instanceof Blob || t . File && e instanceof File ) { s ++ ; var h = new FileReader ; h . onload = function ( ) { u ? u [ c ] = this . result : a = this . result , -- s || r ( a ) } , h . readAsArrayBuffer ( e ) } else if ( n ( e ) ) for ( var p = 0 ; p < e . length ; p ++ ) i ( e [ p ] , p , e ) ; else if ( e && "object" == typeof e && ! o ( e ) ) for ( var f in e ) i ( e [ f ] , f , e ) } var s = 0 , a = e ; i ( a ) , s || r ( a ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Array . isArray || function ( t ) { return "[object Array]" == Object . prototype . toString . call ( t ) } } , function ( t , e ) { ( function ( e ) { function r ( t ) { return e . Buffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer } t . exports = r } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e , r ) { "use strict" ; function n ( t , e ) { return this instanceof n ? ( t && "object" === ( void 0 === t ? "undefined" : o ( t ) ) && ( e = t , t = void 0 ) , e = e || { } , e . path = e . path || "/socket.io" , this . nsps = { } , this . subs = [ ] , this . opts = e , this . reconnection ( e . reconnection !== ! 1 ) , this . reconnectionAttempts ( e . reconnectionAttempts || 1 / 0 ) , this . reconnectionDelay ( e . reconnectionDelay || 1e3 ) , this . reconnectionDelayMax ( e . reconnectionDelayMax || 5e3 ) , this . randomizationFactor ( e . randomizationFactor || . 5 ) , this . backoff = new l ( { min : this . reconnectionDelay ( ) , max : this . reconnectionDelayMax ( ) , jitter : this . randomizationFactor ( ) } ) , this . timeout ( null == e . timeout ? 2e4 : e . timeout ) , this . readyState = "closed" , this . uri = t , this . connecting = [ ] , this . lastPing = null , this . encoding = ! 1 , this . packetBuffer = [ ] , this . encoder = new c . Encoder , this . decoder = new c . Decoder , this . autoConnect = e . autoConnect !== ! 1 , void ( this . autoConnect && this . open ( ) ) ) : new n ( t , e ) } var o = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol && t !== Symbol . prototype ? "symbol" : typeof t } , i = r ( 18 ) , s = r ( 44 ) , a = r ( 35 ) , c = r ( 7 ) , u = r ( 46 ) , h = r ( 47 ) , p = r ( 3 ) ( "socket.io-client:manager" ) , f = r ( 42 ) , l = r ( 48 ) , d = Object . prototype . hasOwnProperty ; t . exports = n , n . prototype . emitAll = function ( ) { this . emit . apply ( this , arguments ) ; for ( var t in this . nsps ) d . call ( this . nsps , t ) && this . nsps [ t ] . emit . apply ( this . nsps [ t ] , arguments ) } , n . pro
e . decodePayloadAsBinary = function ( t , r , n ) { "function" == typeof r && ( n = r , r = null ) ; for ( var o = t , i = [ ] , s = ! 1 ; o . byteLength > 0 ; ) { for ( var a = new Uint8Array ( o ) , c = 0 === a [ 0 ] , u = "" , h = 1 ; 255 != a [ h ] ; h ++ ) { if ( u . length > 310 ) { s = ! 0 ; break } u += a [ h ] } if ( s ) return n ( w , 0 , 1 ) ; o = f ( o , 2 + u . length ) , u = parseInt ( u ) ; var p = f ( o , 0 , u ) ; if ( c ) try { p = String . fromCharCode . apply ( null , new Uint8Array ( p ) ) } catch ( t ) { var l = new Uint8Array ( p ) ; p = "" ; for ( var h = 0 ; h < l . length ; h ++ ) p += String . fromCharCode ( l [ h ] ) } i . push ( p ) , o = f ( o , u ) } var d = i . length ; i . forEach ( function ( t , o ) { n ( e . decodePacket ( t , r , ! 0 ) , o , d ) } ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Object . keys || function ( t ) { var e = [ ] , r = Object . prototype . hasOwnProperty ; for ( var n in t ) r . call ( t , n ) && e . push ( n ) ; return e } } , function ( t , e , r ) { ( function ( e ) { function n ( t ) { function r ( t ) { if ( ! t ) return ! 1 ; if ( e . Buffer && e . Buffer . isBuffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer || e . Blob && t instanceof Blob || e . File && t instanceof File ) return ! 0 ; if ( o ( t ) ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( r ( t [ n ] ) ) return ! 0 } else if ( t && "object" == typeof t ) { t . toJSON && "function" == typeof t . toJSON && ( t = t . toJSON ( ) ) ; for ( var i in t ) if ( Object . prototype . hasOwnProperty . call ( t , i ) && r ( t [ i ] ) ) return ! 0 } return ! 1 } return r ( t ) } var o = r ( 15 ) ; t . exports = n } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t , e , r ) { var n = t . byteLength ; if ( e = e || 0 , r = r || n , t . slice ) return t . slice ( e , r ) ; if ( e < 0 && ( e += n ) , r < 0 && ( r += n ) , r > n && ( r = n ) , e >= n || e >= r || 0 === n ) return new ArrayBuffer ( 0 ) ; for ( var o = new Uint8Array ( t ) , i = new Uint8Array ( r - e ) , s = e , a = 0 ; s < r ; s ++ , a ++ ) i [ a ] = o [ s ] ; return i . buffer } } , function ( t , e ) { function r ( t , e , r ) { function o ( t , n ) { if ( o . count <= 0 ) throw new Error ( "after called too many times" ) ; -- o . count , t ? ( i = ! 0 , e ( t ) , e = r ) : 0 !== o . count || i || e ( null , n ) } var i = ! 1 ; return r = r || n , o . count = t , 0 === t ? e ( ) : o } function n ( ) { } t . exports = r } , function ( t , e , r ) { var n ; ( function ( t , o ) { ! function ( i ) { function s ( t ) { for ( var e , r , n = [ ] , o = 0 , i = t . length ; o < i ; ) e = t . charCodeAt ( o ++ ) , e >= 55296 && e <= 56319 && o < i ? ( r = t . charCodeAt ( o ++ ) , 56320 == ( 64512 & r ) ? n . push ( ( ( 1023 & e ) << 10 ) + ( 1023 & r ) + 65536 ) : ( n . push ( e ) , o -- ) ) : n . push ( e ) ; return n } function a ( t ) { for ( var e , r = t . length , n = - 1 , o = "" ; ++ n < r ; ) e = t [ n ] , e > 65535 && ( e -= 65536 , o += b ( e >>> 10 & 1023 | 55296 ) , e = 56320 | 1023 & e ) , o += b ( e ) ; return o } function c ( t , e ) { return b ( t >> e & 63 | 128 ) } function u ( t ) { if ( 0 == ( 4294967168 & t ) ) return b ( t ) ; var e = "" ; return 0 == ( 4294965248 & t ) ? e = b ( t >> 6 & 31 | 192 ) : 0 == ( 4294901760 & t ) ? ( e = b ( t >> 12 & 15 | 224 ) , e += c ( t , 6 ) ) : 0 == ( 4292870144 & t ) && ( e = b ( t >> 18 & 7 | 240 ) , e += c ( t , 12 ) , e += c ( t , 6 ) ) , e += b ( 63 & t | 128 ) } function h ( t ) { for ( var e , r = s ( t ) , n = r . length , o = - 1 , i = "" ; ++ o < n ; ) e = r [ o ] , i += u ( e ) ; return i } function p ( ) { if ( v >= m ) throw Error ( "Invalid byte index" ) ; var t = 255 & g [ v ] ; if ( v ++ , 128 == ( 192 & t ) ) return 63 & t ; throw Error ( "Invalid continuation byte" ) } function f ( ) { var t , e , r , n , o ; if ( v > m ) throw Error ( "Invalid byte index" ) ; if ( v == m ) return ! 1 ; if ( t = 255 & g [ v ] , v ++ , 0 == ( 128 & t ) ) return t ; if ( 192 == ( 224 & t ) ) { var e = p ( ) ; if ( ( o = ( 31 & t ) << 6 | e ) >= 128 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 224 == ( 240 & t ) ) { if ( e = p ( ) , r = p ( ) , ( o = ( 15 & t ) << 12 | e << 6 | r ) >= 2048 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 240 == ( 248 & t ) && ( e = p ( ) , r = p ( ) , n = p ( ) , ( o = ( 15 & t ) << 18 | e << 12 | r << 6 | n ) >= 65536 && o <= 1114111 ) ) return o ; throw Error ( "Invalid WTF-8 detected" ) } function l ( t ) { g = s ( t ) , m = g . length , v = 0 ; for ( var e , r = [ ] ; ( e = f ( ) ) !== ! 1 ; ) r . push ( e ) ; return a ( r ) } var y = ( "object" == typeof t && t && t . exports , "object" == typeof o && o ) ; y . global !== y && y . window ; var g , m , v , b = String . fromCharCode , w = { version : "1.0.0" , encode : h , decode : l } ; void 0 !== ( n = function ( ) { return w } . call ( e , r , e , t ) ) && ( t . exports = n ) } ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { ! function ( ) { "use strict" ; for ( var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , r = new Uint8Array ( 256 ) , n = 0 ; n < t . length ; n ++ ) r [ t . charCodeAt ( n ) ] = n ; e . encode = function ( e ) { var r , n = new Uint8Array ( e ) , o = n . length , i = "" ; for ( r = 0 ; r < o ; r += 3 ) i += t [ n [ r ] >> 2 ] , i += t [ ( 3 & n [ r ] ) << 4 | n [ r + 1 ] >> 4 ] , i += t [ ( 15 & n [ r + 1 ] ) << 2 | n [ r + 2 ] >> 6 ] , i += t [ 63 & n [ r + 2 ] ] ; return o % 3 == 2 ? i = i . substring ( 0 , i . length - 1 ) + "=" : o % 3 == 1 && ( i = i . substring ( 0 , i . length - 2 ) + "==" ) , i } , e . decode = function ( t ) { var e , n , o , i , s , a = . 75 * t . length , c = t . length , u = 0 ; "=" === t [ t . length - 1 ] && ( a -- , "=" === t [ t . length - 2 ] && a -- ) ; var h = new ArrayBuffer ( a ) , p = new Uint8Array ( h ) ; for ( e = 0 ; e < c ; e += 4 ) n = r [ t . charCodeAt ( e ) ] , o =
return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b ) { var c , d = 0 ; if ( w ( a ) ) for ( c = a . length ; d < c && b . call ( a [ d ] , d , a [ d ] ) !== ! 1 ; d ++ ) ; else for ( d in a ) if ( b . call ( a [ d ] , d , a [ d ] ) === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( w ( Object ( a ) ) ? r . merge ( c , "string" == typeof a ? [ a ] : a ) : h . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { return null == b ? - 1 : i . call ( b , a , c ) } , merge : function ( a , b ) { for ( var c = + b . length , d = 0 , e = a . length ; d < c ; d ++ ) a [ e ++ ] = b [ d ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var e = [ ] , f = 0 , g = a . length , h = ! c ; f < g ; f ++ ) ! b ( a [ f ] , f ) !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , e , f = 0 , h = [ ] ; if ( w ( a ) ) for ( d = a . length ; f < d ; f ++ ) null != ( e = b ( a [ f ] , f , c ) ) && h . push ( e ) ; else for ( f in a ) null != ( e = b ( a [ f ] , f , c ) ) && h . push ( e ) ; return g . apply ( [ ] , h ) } , guid : 1 , proxy : function ( a , b ) { var c , d , e ; if ( "string" == typeof b && ( c = a [ b ] , b = a , a = c ) , r . isFunction ( a ) ) return d = f . call ( arguments , 2 ) , e = function ( ) { return a . apply ( b || this , d . concat ( f . call ( arguments ) ) ) } , e . guid = a . guid = a . guid || r . guid ++ , e } , now : Date . now , support : o } ) , "function" == typeof Symbol && ( r . fn [ Symbol . iterator ] = c [ Symbol . iterator ] ) , r . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ) , function ( a , b ) { j [ "[object " + b + "]" ] = b . toLowerCase ( ) } ) ; var x = function ( a ) { function ga ( a , b , d , e ) { var f , h , j , k , l , o , r , s = b && b . ownerDocument , w = b ? b . nodeType : 9 ; if ( d = d || [ ] , "string" != typeof a || ! a || 1 !== w && 9 !== w && 11 !== w ) return d ; if ( ! e && ( ( b ? b . ownerDocument || b : v ) !== n && m ( b ) , b = b || n , p ) ) { if ( 11 !== w && ( l = Z . exec ( a ) ) ) if ( f = l [ 1 ] ) { if ( 9 === w ) { if ( ! ( j = b . getElementById ( f ) ) ) return d ; if ( j . id === f ) return d . push ( j ) , d } else if ( s && ( j = s . getElementById ( f ) ) && t ( b , j ) && j . id === f ) return d . push ( j ) , d } else { if ( l [ 2 ] ) return G . apply ( d , b . getElementsByTagName ( a ) ) , d ; if ( ( f = l [ 3 ] ) && c . getElementsByClassName && b . getElementsByClassName ) return G . apply ( d , b . getElementsByClassName ( f ) ) , d } if ( c . qsa && ! A [ a + " " ] && ( ! q || ! q . test ( a ) ) ) { if ( 1 !== w ) s = b , r = a ; else if ( "object" !== b . nodeName . toLowerCase ( ) ) { for ( ( k = b . getAttribute ( "id" ) ) ? k = k . replace ( ba , ca ) : b . setAttribute ( "id" , k = u ) , o = g ( a ) , h = o . length ; h -- ; ) o [ h ] = "#" + k + " " + sa ( o [ h ] ) ; r = o . join ( "," ) , s = $ . test ( a ) && qa ( b . parentNode ) || b } if ( r ) try { return G . apply ( d , s . querySelectorAll ( r ) ) , d } catch ( x ) { } finally { k === u && b . removeAttribute ( "id" ) } } } return i ( a . replace ( P , "$1" ) , b , d , e ) } function ha ( ) { function b ( c , e ) { return a . push ( c + " " ) > d . cacheLength && delete b [ a . shift ( ) ] , b [ c + " " ] = e } var a = [ ] ; return b } function ia ( a ) { return a [ u ] = ! 0 , a } function ja ( a ) { var b = n . createElement ( "fieldset" ) ; try { return ! ! a ( b ) } catch ( c ) { return ! 1 } finally { b . parentNode && b . parentNode . removeChild ( b ) , b = null } } function ka ( a , b ) { for ( var c = a . split ( "|" ) , e = c . length ; e -- ; ) d . attrHandle [ c [ e ] ] = b } function la ( a , b ) { var c = b && a , d = c && 1 === a . nodeType && 1 === b . nodeType && a . sourceIndex - b . sourceIndex ; if ( d ) return d ; if ( c ) for ( ; c = c . nextSibling ; ) if ( c === b ) return - 1 ; return a ? 1 : - 1 } function oa ( a ) { return function ( b ) { return "form" in b ? b . parentNode && b . disabled === ! 1 ? "label" in b ? "label" in b . parentNode ? b . parentNode . disabled === a : b . disabled === a : b . isDisabled === a || b . isDisabled !== ! a && ea ( b ) === a : b . disabled === a : "label" in b && b . disabled === a } } function pa ( a ) { return ia ( function ( b ) { return b = + b , ia ( function ( c , d ) { for ( var e , f = a ( [ ] , c . length , b ) , g = f . length ; g -- ; ) c [ e = f [ g ] ] && ( c [ e ] = ! ( d [ e ] = c [ e ] ) ) } ) } ) } function qa ( a ) { return a && void 0 !== a . getElementsByTagName && a } function ra ( ) { } function sa ( a ) { for ( var b = 0 , c = a . length , d = "" ; b < c ; b ++ ) d += a [ b ] . value ; return d } function ta ( a , b , c ) { var d = b . dir , e = b . next , f = e || d , g = c && "parentNode" === f , h = x ++ ; return b . first ? function ( b , c , e ) { for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || g ) return a ( b , c , e ) ; return ! 1 } : function ( b , c , i ) { var j , k , l , m = [ w , h ] ; if ( i ) { for ( ; b = b [ d ] ; ) if ( ( 1 === b . nodeType || g ) && a ( b , c , i ) ) return ! 0 } else for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || g ) if ( l = b [ u ] || ( b [ u ] = { } ) , k = l [ b . uniqueID ] || ( l [ b . uniqueID ] = { } ) , e && e === b . nodeName . toLowerCase ( ) ) b = b [ d ] || b ; else { if ( ( j = k [ f ] ) && j [ 0 ] === w && j [ 1 ] === h ) return m [ 2 ] = j [ 2 ] ; if ( k [ f ] = m , m [ 2 ] = a ( b , c , i ) ) return ! 0 } return ! 1 } } function ua ( a ) { return a . length > 1 ? function ( b , c , d ) { for ( var e = a . length ; e -- ; ) if ( ! a [ e ] ( b , c , d ) ) return ! 1 ; return ! 0 } : a [ 0 ] } function va ( a , b , c ) { for ( var d = 0 , e = b . length ; d < e ; d ++ ) ga ( a , b [ d ] , c ) ; return c } function wa ( a , b , c , d , e ) { for ( var f , g = [ ] , h = 0 , i = a . length , j = null !
; var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , aa = new RegExp ( "^(?:([+-])=|)(" + _ + ")([a-z%]*)$" , "i" ) , ba = [ "Top" , "Right" , "Bottom" , "Left" ] , ca = function ( a , b ) { return a = b || a , "none" === a . style . display || "" === a . style . display && r . contains ( a . ownerDocument , a ) && "none" === r . css ( a , "display" ) } , da = function ( a , b , c , d ) { var e , f , g = { } ; for ( f in b ) g [ f ] = a . style [ f ] , a . style [ f ] = b [ f ] ; e = c . apply ( a , d || [ ] ) ; for ( f in b ) a . style [ f ] = g [ f ] ; return e } , fa = { } ; r . fn . extend ( { show : function ( ) { return ha ( this , ! 0 ) } , hide : function ( ) { return ha ( this ) } , toggle : function ( a ) { return "boolean" == typeof a ? a ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { ca ( this ) ? r ( this ) . show ( ) : r ( this ) . hide ( ) } ) } } ) ; var ia = /^(?:checkbox|radio)$/i , ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i , ka = /^$|\/(?:java|ecma)script/i , la = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; la . optgroup = la . option , la . tbody = la . tfoot = la . colgroup = la . caption = la . thead , la . th = la . td ; var oa = /<|&#?\w+;/ ; ! function ( ) { var a = d . createDocumentFragment ( ) , b = a . appendChild ( d . createElement ( "div" ) ) , c = d . createElement ( "input" ) ; c . setAttribute ( "type" , "radio" ) , c . setAttribute ( "checked" , "checked" ) , c . setAttribute ( "name" , "t" ) , b . appendChild ( c ) , o . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , b . innerHTML = "<textarea>x</textarea>" , o . noCloneChecked = ! ! b . cloneNode ( ! 0 ) . lastChild . defaultValue } ( ) ; var qa = d . documentElement , ra = /^key/ , sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , ta = /^([^.]*)(?:\.(.+)|)/ ; r . event = { global : { } , add : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . get ( a ) ; if ( q ) for ( c . handler && ( f = c , c = f . handler , e = f . selector ) , e && r . find . matchesSelector ( qa , e ) , c . guid || ( c . guid = r . guid ++ ) , ( i = q . events ) || ( i = q . events = { } ) , ( g = q . handle ) || ( g = q . handle = function ( b ) { return void 0 !== r && r . event . triggered !== b . type ? r . event . dispatch . apply ( a , arguments ) : void 0 } ) , b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n && ( l = r . event . special [ n ] || { } , n = ( e ? l . delegateType : l . bindType ) || n , l = r . event . special [ n ] || { } , k = r . extend ( { type : n , origType : p , data : d , handler : c , guid : c . guid , selector : e , needsContext : e && r . expr . match . needsContext . test ( e ) , namespace : o . join ( "." ) } , f ) , ( m = i [ n ] ) || ( m = i [ n ] = [ ] , m . delegateCount = 0 , l . setup && l . setup . call ( a , d , o , g ) !== ! 1 || a . addEventListener && a . addEventListener ( n , g ) ) , l . add && ( l . add . call ( a , k ) , k . handler . guid || ( k . handler . guid = c . guid ) ) , e ? m . splice ( m . delegateCount ++ , 0 , k ) : m . push ( k ) , r . event . global [ n ] = ! 0 ) } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . hasData ( a ) && V . get ( a ) ; if ( q && ( i = q . events ) ) { for ( b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) if ( h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n ) { for ( l = r . event . special [ n ] || { } , n = ( d ? l . delegateType : l . bindType ) || n , m = i [ n ] || [ ] , h = h [ 2 ] && new RegExp ( "(^|\\.)" + o . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , g = f = m . length ; f -- ; ) k = m [ f ] , ! e && p !== k . origType || c && c . guid !== k . guid || h && ! h . test ( k . namespace ) || d && d !== k . selector && ( "**" !== d || ! k . selector ) || ( m . splice ( f , 1 ) , k . selector && m . delegateCount -- , l . remove && l . remove . call ( a , k ) ) ; g && ! m . length && ( l . teardown && l . teardown . call ( a , o , q . handle ) !== ! 1 || r . removeEvent ( a , n , q . handle ) , delete i [ n ] ) } else for ( n in i ) r . event . remove ( a , n + b [ j ] , c , d , ! 0 ) ; r . isEmptyObject ( i ) && V . remove ( a , "handle events" ) } } , dispatch : function ( a ) { var c , d , e , f , g , h , b = r . event . fix ( a ) , i = new Array ( arguments . length ) , j = ( V . get ( this , "events" ) || { } ) [ b . type ] || [ ] , k = r . event . special [ b . type ] || { } ; for ( i [ 0 ] = b , c = 1 ; c < arguments . length ; c ++ ) i [ c ] = arguments [ c ] ; if ( b . delegateTarget = this , ! k . preDispatch || k . preDispatch . call ( this , b ) !== ! 1 ) { for ( h = r . event . handlers . call ( this , b , j ) , c = 0 ; ( f = h [ c ++ ] ) && ! b . isPropagationStopped ( ) ; ) for ( b . currentTarget = f . elem , d = 0 ; ( g = f . handlers [ d ++ ] ) && ! b . isImmediatePropagationStopped ( ) ; ) b . rnamespace && ! b . rnamespace . test ( g . namespace ) || ( b . handleObj = g , b . data = g . data , void 0 !== ( e = ( ( r . event . special [ g . origType ] || { } ) . handle || g . handler ) . apply ( f . elem , i ) ) && ( b . result = e ) === ! 1 && ( b . preventDefault ( ) , b . stopPropagation ( ) ) ) ; return k . postDispatch && k . postDispatch . call ( this , b ) , b . result } } , handlers : function ( a , b ) { var c , d , e , f , g , h = [ ] , i = b . delegateCount , j = a . target ; if ( i && j
} , r . isPlainObject ( a ) && a ) ) } } ) , r . _evalUrl = function ( a ) { return r . ajax ( { url : a , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1 , throws : ! 0 } ) } , r . fn . extend ( { wrapAll : function ( a ) { var b ; return this [ 0 ] && ( r . isFunction ( a ) && ( a = a . call ( this [ 0 ] ) ) , b = r ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) , this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstElementChild ; ) a = a . firstElementChild ; return a } ) . append ( this ) ) , this } , wrapInner : function ( a ) { return r . isFunction ( a ) ? this . each ( function ( b ) { r ( this ) . wrapInner ( a . call ( this , b ) ) } ) : this . each ( function ( ) { var b = r ( this ) , c = b . contents ( ) ; c . length ? c . wrapAll ( a ) : b . append ( a ) } ) } , wrap : function ( a ) { var b = r . isFunction ( a ) ; return this . each ( function ( c ) { r ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( a ) { return this . parent ( a ) . not ( "body" ) . each ( function ( ) { r ( this ) . replaceWith ( this . childNodes ) } ) , this } } ) , r . expr . pseudos . hidden = function ( a ) { return ! r . expr . pseudos . visible ( a ) } , r . expr . pseudos . visible = function ( a ) { return ! ! ( a . offsetWidth || a . offsetHeight || a . getClientRects ( ) . length ) } , r . ajaxSettings . xhr = function ( ) { try { return new a . XMLHttpRequest } catch ( b ) { } } ; var Ob = { 0 : 200 , 1223 : 204 } , Pb = r . ajaxSettings . xhr ( ) ; o . cors = ! ! Pb && "withCredentials" in Pb , o . ajax = Pb = ! ! Pb , r . ajaxTransport ( function ( b ) { var c , d ; if ( o . cors || Pb && ! b . crossDomain ) return { send : function ( e , f ) { var g , h = b . xhr ( ) ; if ( h . open ( b . type , b . url , b . async , b . username , b . password ) , b . xhrFields ) for ( g in b . xhrFields ) h [ g ] = b . xhrFields [ g ] ; b . mimeType && h . overrideMimeType && h . overrideMimeType ( b . mimeType ) , b . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) ; for ( g in e ) h . setRequestHeader ( g , e [ g ] ) ; c = function ( a ) { return function ( ) { c && ( c = d = h . onload = h . onerror = h . onabort = h . onreadystatechange = null , "abort" === a ? h . abort ( ) : "error" === a ? "number" != typeof h . status ? f ( 0 , "error" ) : f ( h . status , h . statusText ) : f ( Ob [ h . status ] || h . status , h . statusText , "text" !== ( h . responseType || "text" ) || "string" != typeof h . responseText ? { binary : h . response } : { text : h . responseText } , h . getAllResponseHeaders ( ) ) ) } } , h . onload = c ( ) , d = h . onerror = c ( "error" ) , void 0 !== h . onabort ? h . onabort = d : h . onreadystatechange = function ( ) { 4 === h . readyState && a . setTimeout ( function ( ) { c && d ( ) } ) } , c = c ( "abort" ) ; try { h . send ( b . hasContent && b . data || null ) } catch ( i ) { if ( c ) throw i } } , abort : function ( ) { c && c ( ) } } } ) , r . ajaxPrefilter ( function ( a ) { a . crossDomain && ( a . contents . script = ! 1 ) } ) , r . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /\b(?:java|ecma)script\b/ } , converters : { "text script" : function ( a ) { return r . globalEval ( a ) , a } } } ) , r . ajaxPrefilter ( "script" , function ( a ) { void 0 === a . cache && ( a . cache = ! 1 ) , a . crossDomain && ( a . type = "GET" ) } ) , r . ajaxTransport ( "script" , function ( a ) { if ( a . crossDomain ) { var b , c ; return { send : function ( e , f ) { b = r ( "<script>" ) . prop ( { charset : a . scriptCharset , src : a . url } ) . on ( "load error" , c = function ( a ) { b . remove ( ) , c = null , a && f ( "error" === a . type ? 404 : 200 , a . type ) } ) , d . head . appendChild ( b [ 0 ] ) } , abort : function ( ) { c && c ( ) } } } } ) ; var Qb = [ ] , Rb = /(=)\?(?=&|$)|\?\?/ ; r . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { var a = Qb . pop ( ) || r . expando + "_" + rb ++ ; return this [ a ] = ! 0 , a } } ) , r . ajaxPrefilter ( "json jsonp" , function ( b , c , d ) { var e , f , g , h = b . jsonp !== ! 1 && ( Rb . test ( b . url ) ? "url" : "string" == typeof b . data && 0 === ( b . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && Rb . test ( b . data ) && "data" ) ; if ( h || "jsonp" === b . dataTypes [ 0 ] ) return e = b . jsonpCallback = r . isFunction ( b . jsonpCallback ) ? b . jsonpCallback ( ) : b . jsonpCallback , h ? b [ h ] = b [ h ] . replace ( Rb , "$1" + e ) : b . jsonp !== ! 1 && ( b . url += ( sb . test ( b . url ) ? "&" : "?" ) + b . jsonp + "=" + e ) , b . converters [ "script json" ] = function ( ) { return g || r . error ( e + " was not called" ) , g [ 0 ] } , b . dataTypes [ 0 ] = "json" , f = a [ e ] , a [ e ] = function ( ) { g = arguments } , d . always ( function ( ) { void 0 === f ? r ( a ) . removeProp ( e ) : a [ e ] = f , b [ e ] && ( b . jsonpCallback = c . jsonpCallback , Qb . push ( e ) ) , g && r . isFunction ( f ) && f ( g [ 0 ] ) , g = f = void 0 } ) , "script" } ) , o . createHTMLDocument = function ( ) { var a = d . implementation . createHTMLDocument ( "" ) . body ; return a . innerHTML = "<form></form><form></form>" , 2 === a . childNodes . length } ( ) , r . parseHTML = function ( a , b , c ) { if ( "string" != typeof a ) return [ ] ; "boolean" == typeof b && ( c = b , b = ! 1 ) ; var e , f , g ; return b || ( o . createHTMLDocument ? ( b = d . implementation . createHTMLD
} , s = o [ t ] ; Array . isArray ( s ) ? i ? s . unshift ( a ) : s . push ( a ) : o [ t ] = s ? i ? [ a , s ] : [ s , a ] : a } function ln ( e , t , n ) { var r = fn ( e , ":" + t ) || fn ( e , "v-bind:" + t ) ; if ( null != r ) return tn ( r ) ; if ( n !== ! 1 ) { var i = fn ( e , t ) ; if ( null != i ) return JSON . stringify ( i ) } } function fn ( 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 pn ( e , t , n ) { var r = n || { } , i = r . number , o = r . trim , a = "$$v" , s = a ; o && ( s = "(typeof $$v === 'string'? $$v.trim(): $$v)" ) , i && ( s = "_n(" + s + ")" ) ; var c = dn ( t , s ) ; e . model = { value : "(" + t + ")" , callback : "function ($$v) {" + c + "}" } } function dn ( e , t ) { var n = vn ( e ) ; return null === n . idx ? e + "=" + t : "var $$exp = " + n . exp + ", $$idx = " + n . idx + ";if (!Array.isArray($$exp)){" + e + "=" + t + "}else{$$exp.splice($$idx, 1, " + t + ")}" } function vn ( e ) { if ( Fo = e , Ro = Fo . length , Uo = Bo = Vo = 0 , e . indexOf ( "[" ) < 0 || e . lastIndexOf ( "]" ) < Ro - 1 ) return { exp : e , idx : null } ; for ( ; ! mn ( ) ; ) Ho = hn ( ) , gn ( Ho ) ? _n ( Ho ) : 91 === Ho && yn ( Ho ) ; return { exp : e . substring ( 0 , Bo ) , idx : e . substring ( Bo + 1 , Vo ) } } function hn ( ) { return Fo . charCodeAt ( ++ Uo ) } function mn ( ) { return Uo >= Ro } function gn ( e ) { return 34 === e || 39 === e } function yn ( e ) { var t = 1 ; for ( Bo = Uo ; ! mn ( ) ; ) if ( e = hn ( ) , gn ( e ) ) _n ( e ) ; else if ( 91 === e && t ++ , 93 === e && t -- , 0 === t ) { Vo = Uo ; break } } function _n ( e ) { for ( var t = e ; ! mn ( ) && ( e = hn ( ) ) !== t ; ) ; } function bn ( e , t , n ) { zo = n ; var r = t . value , i = t . modifiers , o = e . tag , a = e . attrsMap . type ; if ( "select" === o ) Cn ( e , r , i ) ; else if ( "input" === o && "checkbox" === a ) $n ( e , r , i ) ; else if ( "input" === o && "radio" === a ) wn ( e , r , i ) ; else if ( "input" === o || "textarea" === o ) xn ( e , r , i ) ; else if ( ! Hi . isReservedTag ( o ) ) return pn ( e , r , i ) , ! 1 ; return ! 0 } function $n ( e , t , n ) { var r = n && n . number , i = ln ( e , "value" ) || "null" , o = ln ( e , "true-value" ) || "true" , a = ln ( e , "false-value" ) || "false" ; an ( e , "checked" , "Array.isArray(" + t + ")?_i(" + t + "," + i + ")>-1" + ( "true" === o ? ":(" + t + ")" : ":_q(" + t + "," + o + ")" ) ) , un ( e , ya , "var $$a=" + t + ",$$el=$event.target,$$c=$$el.checked?(" + o + "):(" + a + ");if(Array.isArray($$a)){var $$v=" + ( r ? "_n(" + i + ")" : i ) + ",$$i=_i($$a,$$v);if($$c){$$i<0&&(" + t + "=$$a.concat($$v))}else{$$i>-1&&(" + t + "=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{" + t + "=$$c}" , null , ! 0 ) } function wn ( e , t , n ) { var r = n && n . number , i = ln ( e , "value" ) || "null" ; i = r ? "_n(" + i + ")" : i , an ( e , "checked" , "_q(" + t + "," + i + ")" ) , un ( e , ya , dn ( t , i ) , null , ! 0 ) } function Cn ( e , t , n ) { var r = n && n . number , i = 'Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return ' + ( r ? "_n(val)" : "val" ) + "})" , a = "var $$selectedVal = " + i + ";" ; a = a + " " + dn ( t , "$event.target.multiple ? $$selectedVal : $$selectedVal[0]" ) , un ( e , "change" , a , null , ! 0 ) } function xn ( e , t , n ) { var r = e . attrsMap . type , i = n || { } , o = i . lazy , a = i . number , s = i . trim , c = ! o && "range" !== r , u = o ? "change" : "range" === r ? ga : "input" , l = "$event.target.value" ; s && ( l = "$event.target.value.trim()" ) , a && ( l = "_n(" + l + ")" ) ; var f = dn ( t , l ) ; c && ( f = "if($event.target.composing)return;" + f ) , an ( e , "value" , "(" + t + ")" ) , un ( e , u , f , null , ! 0 ) , ( s || a || "number" === r ) && un ( e , "blur" , "$forceUpdate()" ) } function kn ( e ) { var t ; e [ ga ] && ( t = zi ? "change" : "input" , e [ t ] = [ ] . concat ( e [ ga ] , e [ t ] || [ ] ) , delete e [ ga ] ) , e [ ya ] && ( t = Zi ? "click" : "change" , e [ t ] = [ ] . concat ( e [ ya ] , e [ t ] || [ ] ) , delete e [ ya ] ) } function An ( e , t , n , r ) { if ( n ) { var i = t , o = Jo ; t = function ( n ) { null !== ( 1 === arguments . length ? i ( n ) : i . apply ( null , arguments ) ) && On ( e , t , r , o ) } } Jo . addEventListener ( e , t , r ) } function On ( e , t , n , r ) { ( r || Jo ) . removeEventListener ( e , t , n ) } function Sn ( e , t ) { if ( e . data . on || t . data . on ) { var n = t . data . on || { } , r = e . data . on || { } ; Jo = t . elm , kn ( n ) , q ( n , r , An , On , t . context ) } } function Tn ( e , t ) { if ( e . data . domProps || t . data . domProps ) { var n , r , i = t . elm , o = e . data . domProps || { } , a = t . data . domProps || { } ; a . _ _ob _ _ && ( a = t . data . domProps = u ( { } , a ) ) ; for ( n in o ) null == a [ n ] && ( i [ n ] = "" ) ; for ( n in a ) if ( r = a [ n ] , "textContent" !== n && "innerHTML" !== n || ( t . children && ( t . children . length = 0 ) , r !== o [ n ] ) ) if ( "value" === n ) { i . _value = r ; var s = null == r ? "" : String ( r ) ; En ( i , t , s ) && ( i . value = s ) } else i [ n ] = r } } function En ( e , t , n ) { return ! e . composing && ( "option" === t . tag || jn ( e , n ) || Nn ( e , n ) ) } function jn ( e , t ) { return document . activeElement !== e && e . value !== t } function Nn ( e , n ) { var r = e . value , i = e . _vModifiers ; return i && i . number || "number" === e . type ? t ( r ) !== t ( n ) : i && i . trim ? r . trim ( ) !== n . trim ( ) : r !== n } function In ( e ) { var t = Ln ( e . style ) ; return e . staticStyle ? u ( e . staticStyle , t ) : t } fu
e . prototype . _update = function ( e , t ) { var n = this ; n . _isMounted && de ( n , "beforeUpdate" ) ; var r = n . $el , i = n . _vnode , o = _o ; _o = n , n . _vnode = e , n . $el = i ? n . _ _patch _ _ ( i , e ) : n . _ _patch _ _ ( n . $el , e , t , ! 1 , n . $options . _parentElm , n . $options . _refElm ) , _o = o , r && ( r . _ _vue _ _ = null ) , n . $el && ( n . $el . _ _vue _ _ = n ) , n . $vnode && n . $parent && n . $vnode === n . $parent . _vnode && ( n . $parent . $el = n . $el ) } , e . prototype . $forceUpdate = function ( ) { var e = this ; e . _watcher && e . _watcher . update ( ) } , e . prototype . $destroy = function ( ) { var e = this ; if ( ! e . _isBeingDestroyed ) { de ( e , "beforeDestroy" ) , e . _isBeingDestroyed = ! 0 ; var t = e . $parent ; ! t || t . _isBeingDestroyed || e . $options . abstract || r ( t . $children , e ) , e . _watcher && e . _watcher . teardown ( ) ; for ( var n = e . _watchers . length ; n -- ; ) e . _watchers [ n ] . teardown ( ) ; e . _data . _ _ob _ _ && e . _data . _ _ob _ _ . vmCount -- , e . _isDestroyed = ! 0 , de ( e , "destroyed" ) , e . $off ( ) , e . $el && ( e . $el . _ _vue _ _ = null ) , e . _ _patch _ _ ( e . _vnode , null ) } } } ( ut ) , function ( n ) { n . prototype . $nextTick = function ( e ) { return Xi ( e , this ) } , n . prototype . _render = function ( ) { var e = this , t = e . $options , n = t . render , r = t . staticRenderFns , i = t . _parentVnode ; if ( e . _isMounted ) for ( var o in e . $slots ) e . $slots [ o ] = J ( e . $slots [ o ] ) ; e . $scopedSlots = i && i . data . scopedSlots || eo , r && ! e . _staticTrees && ( e . _staticTrees = [ ] ) , e . $vnode = i ; var a ; try { a = n . call ( e . _renderProxy , e . $createElement ) } catch ( t ) { B ( t , e , "render function" ) , a = e . _vnode } return a instanceof vo || ( a = go ( ) ) , a . parent = i , a } , n . prototype . _o = Qe , n . prototype . _n = t , n . prototype . _s = e , n . prototype . _l = Ke , n . prototype . _t = qe , n . prototype . _q = h , n . prototype . _i = m , n . prototype . _m = Ye , n . prototype . _f = We , n . prototype . _k = Ze , n . prototype . _b = Ge , n . prototype . _v = V , n . prototype . _e = go , n . prototype . _u = oe } ( ut ) ; var Do = [ String , RegExp ] , Mo = { name : "keep-alive" , abstract : ! 0 , props : { include : Do , exclude : Do } , created : function ( ) { this . cache = Object . create ( null ) } , destroyed : function ( ) { var e = this ; for ( var t in e . cache ) _t ( e . cache [ t ] ) } , watch : { include : function ( e ) { yt ( this . cache , function ( t ) { return gt ( e , t ) } ) } , exclude : function ( e ) { yt ( this . cache , function ( t ) { return ! gt ( e , t ) } ) } } , render : function ( ) { var e = Q ( this . $slots . default ) , t = e && e . componentOptions ; if ( t ) { var n = mt ( t ) ; if ( n && ( this . include && ! gt ( this . include , n ) || this . exclude && gt ( this . exclude , n ) ) ) return e ; var r = null == e . key ? t . Ctor . cid + ( t . tag ? "::" + t . tag : "" ) : e . key ; this . cache [ r ] ? e . componentInstance = this . cache [ r ] . componentInstance : this . cache [ r ] = e , e . data . keepAlive = ! 0 } return e } } , Po = { KeepAlive : Mo } ; ( function ( e ) { var t = { } ; t . get = function ( ) { return Hi } , Object . defineProperty ( e , "config" , t ) , e . util = { warn : no , extend : u , mergeOptions : M , defineReactive : O } , e . set = S , e . delete = T , e . nextTick = Xi , e . options = Object . create ( null ) , Hi . _assetTypes . forEach ( function ( t ) { e . options [ t + "s" ] = Object . create ( null ) } ) , e . options . _base = e , u ( e . options . components , Po ) , lt ( e ) , ft ( e ) , pt ( e ) , ht ( e ) } ) ( ut ) , Object . defineProperty ( ut . prototype , "$isServer" , { get : Gi } ) , ut . version = "2.2.1" ; var Ro , Fo , Ho , Uo , Bo , Vo , zo , Jo , Ko , qo = n ( "input,textarea,option,select" ) , Wo = function ( e , t , n ) { return "value" === n && qo ( e ) && "button" !== t || "selected" === n && "option" === e || "checked" === n && "input" === e || "muted" === n && "video" === e } , Zo = n ( "contenteditable,draggable,spellcheck" ) , Go = n ( "allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible" ) , Yo = "http://www.w3.org/1999/xlink" , Qo = function ( e ) { return ":" === e . charAt ( 5 ) && "xlink" === e . slice ( 0 , 5 ) } , Xo = function ( e ) { return Qo ( e ) ? e . slice ( 6 , e . length ) : "" } , ea = function ( e ) { return null == e || e === ! 1 } , ta = { svg : "http://www.w3.org/2000/svg" , math : "http://www.w3.org/1998/Math/MathML" } , na = n ( " html , body , base , head , link , meta , style , title , address , article , aside , footer , header , h1 , h2 , h3 , h4 , h5 , h6 , hgroup , nav , section , div , dd , dl , dt , figcaption , figure , hr , img , li , main , ol , p , pre , ul , a , b , abbr , bdi , bdo , br , cite , code , data , dfn , em , i , kbd , mark , q , rp , rt , rtc , ruby , s , samp , small , span , strong , sub , sup , time , u , var , wbr , area , audio , map , track , video , embed , object , param , source , canvas , script , noscript , del , ins , caption , col , colgroup , table , thead , tbody , td , th , tr , button , datalist , fieldset , form , inp
; if ( this !== document && this !== window ) return ! document . scrollingElement || this !== document . documentElement && this !== document . body ? void ( b [ e ] ( ) > 0 ? c . push ( this ) : ( b [ e ] ( 1 ) , d = b [ e ] ( ) > 0 , d && c . push ( this ) , b [ e ] ( 0 ) ) ) : ( c . push ( document . scrollingElement ) , ! 1 ) } ) , c . length || this . each ( function ( ) { this === document . documentElement && "smooth" === a ( this ) . css ( "scrollBehavior" ) && ( c = [ this ] ) , c . length || "BODY" !== this . nodeName || ( c = [ this ] ) } ) , "first" === b . el && c . length > 1 && ( c = [ c [ 0 ] ] ) , c } , f = /^([\-\+]=)(\d+)/ ; a . fn . extend ( { scrollable : function ( a ) { var b = e . call ( this , { dir : a } ) ; return this . pushStack ( b ) } , firstScrollable : function ( a ) { var b = e . call ( this , { el : "first" , dir : a } ) ; return this . pushStack ( b ) } , smoothScroll : function ( b , c ) { if ( "options" === ( b = 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 } } ) ; var g = function ( a ) { var b = { relative : "" } , c = "string" == typeof a && f . exec ( a ) ; return "number" == typeof a ? b . px = a : c && ( b . relative = c [ 1 ] , b . px = parseFloat ( c [ 2 ] ) || 0 ) , b } ; a . smoothScroll = function ( b , d ) { if ( "options" === b && "object" == typeof d ) return a . extend ( c , d ) ; var e , f , h , i , j = g ( b ) , k = { } , l = 0 , m = "offset" , n = "scrollTop" , o = { } , p = { } ; j . px ? e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , c ) : ( e = a . extend ( { link : null } , a . fn . smoothScroll . defaults , b || { } , c ) , e . scrollElement && ( m = "position" , "static" === e . scrollElement . css ( "position" ) && e . scrollElement . css ( "position" , "relative" ) ) , d && ( j = g ( d ) ) ) , n = "left" === e . direction ? "scrollLeft" : n , e . scrollElement ? ( f = e . scrollElement , j . px || /^(?:HTML|BODY)$/ . test ( f [ 0 ] . nodeName ) || ( l = f [ n ] ( ) ) ) : f = a ( "html, body" ) . firstScrollable ( e . direction ) , e . beforeScroll . call ( f , e ) , k = j . px ? j : { relative : "" , px : a ( e . scrollTarget ) [ m ] ( ) && a ( e . scrollTarget ) [ m ] ( ) [ e . direction ] || 0 } , o [ n ] = k . relative + ( k . px + l + e . offset ) , h = e . speed , "auto" === h && ( i = Math . abs ( o [ n ] - f [ n ] ( ) ) , h = i / e . autoCoefficient ) , p = { duration : h , easing : e . easing , complete : function ( ) { e . afterScroll . call ( e . link , e ) } } , e . step && ( p . step = e . step ) , f . length ? f . stop ( ) . animate ( o , p ) : e . afterScroll . call ( e . link , e ) } , a . smoothScroll . version = "2.1.2" , 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
items : e . contextMenu . fromMenu ( this ) } ) } ) . css ( "display" , "none" ) ; break ; default : throw new Error ( 'Unknown operation "' + t + '"' ) } return this } , e . contextMenu . setInputValues = function ( t , n ) { void 0 === n && ( n = { } ) , e . each ( t . inputs , function ( e , t ) { switch ( t . type ) { case "text" : case "textarea" : t . value = n [ e ] || "" ; break ; case "checkbox" : t . selected = ! ! n [ e ] ; break ; case "radio" : t . selected = ( n [ t . radio ] || "" ) === t . value ; break ; case "select" : t . selected = n [ e ] || "" } } ) } , e . contextMenu . getInputValues = function ( t , n ) { return void 0 === n && ( n = { } ) , e . each ( t . inputs , function ( e , t ) { switch ( t . type ) { case "text" : case "textarea" : case "select" : n [ e ] = t . $input . val ( ) ; break ; case "checkbox" : n [ e ] = t . $input . prop ( "checked" ) ; break ; case "radio" : t . $input . prop ( "checked" ) && ( n [ t . radio ] = t . value ) } } ) , n } , e . contextMenu . fromMenu = function ( t ) { var n = e ( t ) , o = { } ; return a ( o , n . children ( ) ) , o } , e . contextMenu . defaults = d , e . contextMenu . types = u , e . contextMenu . handle = f , e . contextMenu . op = h , e . contextMenu . menus = l } ) ; var Sticky = function ( ) { function t ( ) { var i = arguments . length > 0 && void 0 !== arguments [ 0 ] ? arguments [ 0 ] : "" , e = arguments . length > 1 && void 0 !== arguments [ 1 ] ? arguments [ 1 ] : { } ; _classCallCheck ( this , t ) , this . selector = i , this . elements = [ ] , this . version = "1.1.9" , this . vp = this . getViewportSize ( ) , this . scrollTop = this . getScrollTopPosition ( ) , this . body = document . querySelector ( "body" ) , this . options = { wrap : e . wrap || ! 1 , marginTop : e . marginTop || 0 , stickyFor : e . stickyFor || 0 , stickyClass : e . stickyClass || null , stickyContainer : e . stickyContainer || "body" } , this . run ( ) } return t . prototype . run = function ( ) { var t = this , i = setInterval ( function ( ) { if ( "complete" === document . readyState ) { clearInterval ( i ) ; var e = document . querySelectorAll ( t . selector ) ; t . forEach ( e , function ( i ) { return t . renderElement ( i ) } ) } } , 10 ) } , t . prototype . renderElement = function ( t ) { var i = this ; t . sticky = { } , t . sticky . active = ! 1 , t . sticky . marginTop = parseInt ( t . getAttribute ( "data-margin-top" ) ) || this . options . marginTop , t . sticky . stickyFor = parseInt ( t . getAttribute ( "data-sticky-for" ) ) || this . options . stickyFor , t . sticky . stickyClass = t . getAttribute ( "data-sticky-class" ) || this . options . stickyClass , t . sticky . wrap = ! ! t . hasAttribute ( "data-sticky-wrap" ) || this . options . wrap , t . sticky . stickyContainer = this . options . stickyContainer , 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 ) } ) , t . sticky . wrap && this . wrapElement ( t ) , this . activate ( t ) } , t . prototype . wrapElement = function ( t ) { t . insertAdjacentHTML ( "beforebegin" , "<span></span>" ) , t . previousSibling . appendChild ( t ) } , t . prototype . activate = function ( t ) { t . sticky . rect . top + t . sticky . rect . height < t . sticky . container . rect . top + t . sticky . container . rect . height && 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 ) , this . setPosition ( t ) } , t . prototype . initResizeEvents = function ( t ) { var i = this ; t . sticky . resizeListener = function ( ) { return i . onResizeEvents ( t ) } , window . addEventListener ( "resize" , t . sticky . resizeListener ) } , t . prototype . destroyResizeEvents = function ( t ) { window . removeEventListener ( "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 . rect . top + t . sticky . rect . height < t . sticky . container . rect . top + t . sticky . container . rect . height && t . sticky . stickyFor < this . vp . width && ! t . sticky . active ? t . sticky . active = ! 0 : ( t . sticky . rect . top + t . sticky . rect . height >= t . sticky . container . rect . top + t . sticky . container . rect . height || 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 . destroyScrollEvents = function ( t ) { window . removeEventListener ( "scroll" , t . sticky . scrollListener ) } , t . prototype . onScrollEvents = function ( t ) { this . scrollTop =
"object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/ , n = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/ , r = /[*+-]\s/ ; e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , a = [ ] , l = 0 ; l < o . length ; l ++ ) { var s = o [ l ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , f = 0 !== c . quote , h = i . getLine ( s . line ) , d = t . exec ( h ) ; if ( ! o [ l ] . empty ( ) || ! u && ! f || ! d ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( h ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } ) , a [ l ] = "\n" ; else { var p = d [ 1 ] , m = d [ 5 ] , g = r . test ( d [ 2 ] ) || d [ 2 ] . indexOf ( ">" ) >= 0 ? d [ 2 ] : parseInt ( d [ 3 ] , 10 ) + 1 + d [ 4 ] ; a [ l ] = "\n" + p + g + m } } i . replaceSelections ( a ) } } ) } , { "../../lib/codemirror" : 10 } ] , 8 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . overlayMode = function ( t , n , r ) { return { startState : function ( ) { return { base : e . startState ( t ) , overlay : e . startState ( n ) , basePos : 0 , baseCur : null , overlayPos : 0 , overlayCur : null , streamSeen : null } } , copyState : function ( r ) { return { base : e . copyState ( t , r . base ) , overlay : e . copyState ( n , r . overlay ) , basePos : r . basePos , baseCur : null , overlayPos : r . overlayPos , overlayCur : null } } , token : function ( e , i ) { return ( e != i . streamSeen || Math . min ( i . basePos , i . overlayPos ) < e . start ) && ( i . streamSeen = e , i . basePos = i . overlayPos = e . start ) , e . start == i . basePos && ( i . baseCur = t . token ( e , i . base ) , i . basePos = e . pos ) , e . start == i . overlayPos && ( e . pos = e . start , i . overlayCur = n . token ( e , i . overlay ) , i . overlayPos = e . pos ) , e . pos = Math . min ( i . basePos , i . overlayPos ) , null == i . overlayCur ? i . baseCur : null != i . baseCur && i . overlay . combineTokens || r && null == i . overlay . combineTokens ? i . baseCur + " " + i . overlayCur : i . overlayCur } , indent : t . indent && function ( e , n ) { return t . indent ( e . base , n ) } , electricChars : t . electricChars , innerMode : function ( e ) { return { state : e . base , mode : t } } , blankLine : function ( e ) { t . blankLine && t . blankLine ( e . base ) , n . blankLine && n . blankLine ( e . overlay ) } } } } ) } , { "../../lib/codemirror" : 10 } ] , 9 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { e . operation ( function ( ) { a ( e ) } ) } function n ( e ) { e . state . markedSelection . length && e . operation ( function ( ) { i ( e ) } ) } function r ( e , t , n , r ) { if ( 0 != c ( t , n ) ) for ( var i = e . state . markedSelection , o = e . state . markedSelectionStyle , a = t . line ; ; ) { var u = a == t . line ? t : s ( a , 0 ) , f = a + l , h = f >= n . line , d = h ? n : s ( f , 0 ) , p = e . markText ( u , d , { className : o } ) ; if ( null == r ? i . push ( p ) : i . splice ( r ++ , 0 , p ) , h ) break ; a = f } } function i ( e ) { for ( var t = e . state . markedSelection , n = 0 ; n < t . length ; ++ n ) t [ n ] . clear ( ) ; t . length = 0 } function o ( e ) { i ( e ) ; for ( var t = e . listSelections ( ) , n = 0 ; n < t . length ; n ++ ) r ( e , t [ n ] . from ( ) , t [ n ] . to ( ) ) } function a ( e ) { if ( ! e . somethingSelected ( ) ) return i ( e ) ; if ( e . listSelections ( ) . length > 1 ) return o ( e ) ; var t = e . getCursor ( "start" ) , n = e . getCursor ( "end" ) , a = e . state . markedSelection ; if ( ! a . length ) return r ( e , t , n ) ; var s = a [ 0 ] . find ( ) , u = a [ a . length - 1 ] . find ( ) ; if ( ! s || ! u || n . line - t . line < l || c ( t , u . to ) >= 0 || c ( n , s . from ) <= 0 ) return o ( e ) ; for ( ; c ( t , s . from ) > 0 ; ) a . shift ( ) . clear ( ) , s = a [ 0 ] . find ( ) ; for ( c ( t , s . from ) < 0 && ( s . to . line - t . line < l ? ( a . shift ( ) . clear ( ) , r ( e , t , s . to , 0 ) ) : r ( e , t , s . from , 0 ) ) ; c ( n , u . to ) < 0 ; ) a . pop ( ) . clear ( ) , u = a [ a . length - 1 ] . find ( ) ; c ( n , u . to ) > 0 && ( n . line - u . from . line < l ? ( a . pop ( ) . clear ( ) , r ( e , u . from , n ) ) : r ( e , u . to , n ) ) } e . defineOption ( "styleSelectedText" , ! 1 , function ( r , a , l ) { var s = l && l != e . Init ; a && ! s ? ( r . state . markedSelection = [ ] , r . state . markedSelectionStyle = "string" == typeof a ? a : "CodeMirror-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 ( ! ( t
e . doc . mode . startState && e . doc . frontier < e . display . viewTo && e . state . highlight . set ( t , Bi ( Fe , e ) ) } function Fe ( e ) { var t = e . doc ; if ( t . frontier < t . first && ( t . frontier = t . first ) , ! ( t . frontier >= e . display . viewTo ) ) { var n = + new Date + e . options . workTime , r = sa ( t . mode , je ( e , t . frontier ) ) , i = [ ] ; t . iter ( t . frontier , Math . min ( t . first + t . size , e . display . viewTo + 500 ) , function ( o ) { if ( t . frontier >= e . display . viewFrom ) { var a = o . styles , l = o . text . length > e . options . maxHighlightLength , s = Rr ( e , o , l ? sa ( t . mode , r ) : r , ! 0 ) ; o . styles = s . styles ; var c = o . styleClasses , u = s . classes ; u ? o . styleClasses = u : c && ( o . styleClasses = null ) ; for ( var f = ! a || a . length != o . styles . length || c != u && ( ! c || ! u || c . bgClass != u . bgClass || c . textClass != u . textClass ) , h = 0 ; ! f && h < a . length ; ++ h ) f = a [ h ] != o . styles [ h ] ; f && i . push ( t . frontier ) , o . stateAfter = l ? r : sa ( t . mode , r ) } else o . text . length <= e . options . maxHighlightLength && Hr ( e , o . text , r ) , o . stateAfter = t . frontier % 5 == 0 ? sa ( t . mode , r ) : null ; return ++ t . frontier , + new Date > n ? ( _e ( e , e . options . workDelay ) , ! 0 ) : void 0 } ) , i . length && At ( e , function ( ) { for ( var t = 0 ; t < i . length ; t ++ ) Ht ( e , i [ t ] , "text" ) } ) } } function ze ( e , t , n ) { for ( var r , i , o = e . doc , a = n ? - 1 : t - ( e . doc . mode . innerMode ? 1e3 : 100 ) , l = t ; l > a ; -- l ) { if ( l <= o . first ) return o . first ; var s = Zr ( o , l - 1 ) ; if ( s . stateAfter && ( ! n || l <= o . frontier ) ) return l ; var c = Fa ( s . text , null , e . options . tabSize ) ; ( null == i || r > c ) && ( i = l - 1 , r = c ) } return i } function je ( e , t , n ) { var r = e . doc , i = e . display ; if ( ! r . mode . startState ) return ! 0 ; var o = ze ( e , t , n ) , a = o > r . first && Zr ( r , o - 1 ) . stateAfter ; return a = a ? sa ( r . mode , a ) : ca ( r . mode ) , r . iter ( o , t , function ( n ) { Hr ( e , n . text , a ) ; var l = o == t - 1 || o % 5 == 0 || o >= i . viewFrom && o < i . viewTo ; n . stateAfter = l ? sa ( r . mode , a ) : null , ++ o } ) , n && ( r . frontier = o ) , a } function Ue ( e ) { return e . lineSpace . offsetTop } function qe ( e ) { return e . mover . offsetHeight - e . lineSpace . offsetHeight } function Ge ( e ) { if ( e . cachedPaddingH ) return e . cachedPaddingH ; var t = qi ( e . measure , ji ( "pre" , "x" ) ) , n = window . getComputedStyle ? window . getComputedStyle ( t ) : t . currentStyle , r = { left : parseInt ( n . paddingLeft ) , right : parseInt ( n . paddingRight ) } ; return isNaN ( r . left ) || isNaN ( r . right ) || ( e . cachedPaddingH = r ) , r } function Ye ( e ) { return Da - e . display . nativeBarWidth } function $e ( e ) { return e . display . scroller . clientWidth - Ye ( e ) - e . display . barWidth } function Ve ( e ) { return e . display . scroller . clientHeight - Ye ( e ) - e . display . barHeight } function Ke ( e , t , n ) { var r = e . options . lineWrapping , i = r && $e ( e ) ; if ( ! t . measure . heights || r && t . measure . width != i ) { var o = t . measure . heights = [ ] ; if ( r ) { t . measure . width = i ; for ( var a = t . text . firstChild . getClientRects ( ) , l = 0 ; l < a . length - 1 ; l ++ ) { var s = a [ l ] , c = a [ l + 1 ] ; Math . abs ( s . bottom - c . bottom ) > 2 && o . push ( ( s . bottom + c . top ) / 2 - n . top ) } } o . push ( n . bottom - n . top ) } } function Xe ( e , t , n ) { if ( e . line == t ) return { map : e . measure . map , cache : e . measure . cache } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( e . rest [ r ] == t ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( ti ( e . rest [ r ] ) > n ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] , before : ! 0 } } function Ze ( e , t ) { t = yr ( t ) ; var n = ti ( t ) , r = e . display . externalMeasured = new Pt ( e . doc , t , n ) ; r . lineN = n ; var i = r . built = Br ( e , r ) ; return r . text = i . pre , qi ( e . display . lineMeasure , i . pre ) , r } function Je ( e , t , n , r ) { return tt ( e , et ( e , t ) , n , r ) } function Qe ( e , t ) { if ( t >= e . display . viewFrom && t < e . display . viewTo ) return e . display . view [ Bt ( e , t ) ] ; var n = e . display . externalMeasured ; return n && t >= n . lineN && t < n . lineN + n . size ? n : void 0 } function et ( e , t ) { var n = ti ( t ) , r = Qe ( e , n ) ; r && ! r . text ? r = null : r && r . changes && ( D ( e , r , n , P ( e ) ) , e . curOp . forceUpdate = ! 0 ) , r || ( r = Ze ( e , t ) ) ; var i = Xe ( r , t , n ) ; return { line : t , view : r , rect : null , map : i . map , cache : i . cache , before : i . before , hasHeights : ! 1 } } function tt ( e , t , n , r , i ) { t . before && ( n = - 1 ) ; var o , a = n + ( r || "" ) ; return t . cache . hasOwnProperty ( a ) ? o = t . cache [ a ] : ( t . rect || ( t . rect = t . view . text . getBoundingClientRect ( ) ) , t . hasHeights || ( Ke ( e , t . view , t . rect ) , t . hasHeights = ! 0 ) , o = rt ( e , t , n , r ) , o . bogus || ( t . cache [ a ] = o ) ) , { left : o . 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 [ 2 + ( l -= 3 ) ] , a = "left" ; i
u && ! Ln ( e , f , ! 1 ) ) return void ( a . length = 0 ) ; c . push ( ai ( e , f ) ) ; En ( e , f , s ? kn ( e , f ) : Ii ( a ) , lr ( e , f ) ) , ! s && e . cm && e . cm . scrollIntoView ( { from : f . from , to : Qo ( f ) } ) ; var d = [ ] ; Kr ( e , function ( e , t ) { t || - 1 != Pi ( d , e . history ) || ( xi ( e . history , f ) , d . push ( e . history ) ) , En ( e , f , null , lr ( e , f ) ) } ) } } } } function An ( e , t ) { if ( 0 != t && ( e . first += t , e . sel = new ue ( Ri ( e . sel . ranges , function ( e ) { return new fe ( Bo ( e . anchor . line + t , e . anchor . ch ) , Bo ( e . head . line + t , e . head . ch ) ) } ) , e . sel . primIndex ) , e . cm ) ) { Dt ( e . cm , e . first , e . first - t , t ) ; for ( var n = e . cm . display , r = n . viewFrom ; r < n . viewTo ; r ++ ) Ht ( e . cm , r , "gutter" ) } } function En ( e , t , n , r ) { if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , En ) ( e , t , n , r ) ; if ( t . to . line < e . first ) return void An ( e , t . text . length - 1 - ( t . to . line - t . from . line ) ) ; if ( ! ( t . from . line > e . lastLine ( ) ) ) { if ( t . from . line < e . first ) { var i = t . text . length - 1 - ( e . first - t . from . line ) ; An ( e , i ) , t = { from : Bo ( e . first , 0 ) , to : Bo ( t . to . line + i , t . to . ch ) , text : [ Ii ( t . text ) ] , origin : t . origin } } var o = e . lastLine ( ) ; t . to . line > o && ( t = { from : t . from , to : Bo ( o , Zr ( e , o ) . text . length ) , text : [ t . text [ 0 ] ] , origin : t . origin } ) , t . removed = Jr ( e , t . from , t . to ) , n || ( n = kn ( e , t ) ) , e . cm ? On ( e . cm , t , r ) : Yr ( e , t , r ) , Me ( e , n , Wa ) } } function On ( e , t , n ) { var r = e . doc , i = e . display , a = t . from , l = t . to , s = ! 1 , c = a . line ; e . options . lineWrapping || ( c = ti ( yr ( Zr ( r , a . line ) ) ) , r . iter ( c , l . line + 1 , function ( e ) { return e == i . maxLine ? ( s = ! 0 , ! 0 ) : void 0 } ) ) , r . sel . contains ( t . from , t . to ) > - 1 && Mi ( e ) , Yr ( r , t , n , o ( e ) ) , e . options . lineWrapping || ( r . iter ( c , a . line + t . text . length , function ( e ) { var t = f ( e ) ; t > i . maxLineLength && ( i . maxLine = e , i . maxLineLength = t , i . maxLineChanged = ! 0 , s = ! 1 ) } ) , s && ( e . curOp . updateMaxLine = ! 0 ) ) , r . frontier = Math . min ( r . frontier , a . line ) , _e ( e , 400 ) ; var u = t . text . length - ( l . line - a . line ) - 1 ; t . full ? Dt ( e ) : a . line != l . line || 1 != t . text . length || Gr ( e . doc , t ) ? Dt ( e , a . line , l . line + 1 , u ) : Ht ( e , a . line , "text" ) ; var h = Ni ( e , "changes" ) , d = Ni ( e , "change" ) ; if ( d || h ) { var p = { from : a , to : l , text : t . text , removed : t . removed , origin : t . origin } ; d && Ci ( e , "change" , e , p ) , h && ( e . curOp . changeObjs || ( e . curOp . changeObjs = [ ] ) ) . push ( p ) } e . display . selForContextMenu = null } function In ( e , t , n , r , i ) { if ( r || ( r = n ) , _o ( r , n ) < 0 ) { var o = r ; r = n , n = o } "string" == typeof t && ( t = e . splitLines ( t ) ) , Tn ( e , { from : n , to : r , text : t , origin : i } ) } function Pn ( e , t ) { if ( ! Ti ( e , "scrollCursorIntoView" ) ) { var n = e . display , r = n . sizer . getBoundingClientRect ( ) , i = null ; if ( t . top + r . top < 0 ? i = ! 0 : t . bottom + r . top > ( window . innerHeight || document . documentElement . clientHeight ) && ( i = ! 1 ) , null != i && ! Mo ) { var o = ji ( "div" , " " , null , "position: absolute; top: " + ( t . top - n . viewOffset - Ue ( e . display ) ) + "px; height: " + ( t . bottom - t . top + Ye ( e ) + n . barHeight ) + "px; left: " + t . left + "px; width: 2px;" ) ; e . display . lineSpace . appendChild ( o ) , o . scrollIntoView ( i ) , e . display . lineSpace . removeChild ( o ) } } } function Rn ( e , t , n , r ) { null == r && ( r = 0 ) ; for ( var i = 0 ; 5 > i ; i ++ ) { var o = ! 1 , a = dt ( e , t ) , l = n && n != t ? dt ( e , n ) : a , s = Hn ( e , Math . min ( a . left , l . left ) , Math . min ( a . top , l . top ) - r , Math . max ( a . left , l . left ) , Math . max ( a . bottom , l . bottom ) + r ) , c = e . doc . scrollTop , u = e . doc . scrollLeft ; if ( null != s . scrollTop && ( rn ( e , s . scrollTop ) , Math . abs ( e . doc . scrollTop - c ) > 1 && ( o = ! 0 ) ) , null != s . scrollLeft && ( on ( e , s . scrollLeft ) , Math . abs ( e . doc . scrollLeft - u ) > 1 && ( o = ! 0 ) ) , ! o ) break } return a } function Dn ( e , t , n , r , i ) { var o = Hn ( e , t , n , r , i ) ; null != o . scrollTop && rn ( e , o . scrollTop ) , null != o . scrollLeft && on ( e , o . scrollLeft ) } function Hn ( e , t , n , r , i ) { var o = e . display , a = yt ( e . display ) ; 0 > n && ( n = 0 ) ; var l = e . curOp && null != e . curOp . scrollTop ? e . curOp . scrollTop : o . scroller . scrollTop , s = Ve ( e ) , c = { } ; i - n > s && ( i = n + s ) ; var u = e . doc . height + qe ( o ) , f = a > n , h = i > u - a ; if ( l > n ) c . scrollTop = f ? 0 : n ; else if ( i > l + s ) { var d = Math . min ( n , ( h ? u : i ) - s ) ; d != l && ( c . scrollTop = d ) } var p = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . scroller . scrollLeft , m = $e ( e ) - ( e . options . fixedGutter ? o . gutters . offsetWidth : 0 ) , g = r - t > m ; return g && ( r = t + m ) , 10 > t ? c . scrollLeft = 0 : p > t ? c . scrollLeft = Math . max ( 0 , t - ( g ? 0 : 10 ) ) : r > m + p - 3 && ( c . scrollLeft = r + ( g ? 0 : 10 ) - m ) , c } function Wn ( e , t , n ) { null == t && null == n || _n ( e ) , null != t && ( 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 } } funct
function to ( e ) { return e . level % 2 ? e . to : e . from } function no ( e ) { return e . level % 2 ? e . from : e . to } function ro ( e ) { var t = ii ( e ) ; return t ? to ( t [ 0 ] ) : 0 } function io ( e ) { var t = ii ( e ) ; return t ? no ( Ii ( t ) ) : e . text . length } function oo ( e , t ) { var n = Zr ( e . doc , t ) , r = yr ( n ) ; r != n && ( t = ti ( r ) ) ; var i = ii ( r ) ; return Bo ( t , i ? i [ 0 ] . level % 2 ? io ( r ) : ro ( r ) : 0 ) } function ao ( e , t ) { for ( var n , r = Zr ( e . doc , t ) ; n = gr ( r ) ; ) r = n . find ( 1 , ! 0 ) . line , t = null ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? ro ( r ) : io ( r ) : r . text . length ; return Bo ( null == t ? ti ( r ) : t , o ) } function lo ( e , t ) { var n = oo ( e , t . line ) , r = Zr ( e . doc , n . line ) , i = ii ( r ) ; if ( ! i || 0 == i [ 0 ] . level ) { var o = Math . max ( 0 , r . text . search ( /\S/ ) ) , a = t . line == n . line && t . ch <= o && t . ch ; return Bo ( n . line , a ? 0 : o ) } return n } function so ( e , t , n ) { var r = e [ 0 ] . level ; return t == r || n != r && n > t } function co ( e , t ) { al = null ; for ( var n , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; if ( i . from < t && i . to > t ) return r ; if ( i . from == t || i . to == t ) { if ( null != n ) return so ( e , i . level , e [ n ] . level ) ? ( i . from != i . to && ( al = n ) , r ) : ( i . from != i . to && ( al = r ) , n ) ; n = r } } return n } function uo ( e , t , n , r ) { if ( ! r ) return t + n ; do { t += n } while ( t > 0 && zi ( e . text . charAt ( t ) ) ) ; return t } function fo ( e , t , n , r ) { var i = ii ( e ) ; if ( ! i ) return ho ( e , t , n , r ) ; for ( var o = co ( i , t ) , a = i [ o ] , l = uo ( e , t , a . level % 2 ? - n : n , r ) ; ; ) { if ( l > a . from && l < a . to ) return l ; if ( l == a . from || l == a . to ) return co ( i , l ) == o ? l : ( a = i [ o += n ] , n > 0 == a . level % 2 ? a . to : a . from ) ; if ( ! ( a = i [ o += n ] ) ) return null ; l = n > 0 == a . level % 2 ? uo ( e , a . to , - 1 , r ) : uo ( e , a . from , 1 , r ) } } function ho ( e , t , n , r ) { var i = t + n ; if ( r ) for ( ; i > 0 && zi ( e . text . charAt ( i ) ) ; ) i += n ; return 0 > i || i > e . text . length ? null : i } var po = navigator . userAgent , mo = navigator . platform , go = /gecko\/\d/i . test ( po ) , vo = /MSIE \d/ . test ( po ) , yo = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/ . exec ( po ) , xo = vo || yo , bo = xo && ( vo ? document . documentMode || 6 : yo [ 1 ] ) , wo = /WebKit\// . test ( po ) , ko = wo && /Qt\/\d+\.\d+/ . test ( po ) , So = /Chrome\// . test ( po ) , Co = /Opera\// . test ( po ) , Lo = /Apple Computer/ . test ( navigator . vendor ) , To = /Mac OS X 1\d\D([8-9]|\d\d)\D/ . test ( po ) , Mo = /PhantomJS/ . test ( po ) , No = /AppleWebKit/ . test ( po ) && /Mobile\/\w+/ . test ( po ) , Ao = No || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i . test ( po ) , Eo = No || /Mac/ . test ( mo ) , Oo = /\bCrOS\b/ . test ( po ) , Io = /win/i . test ( mo ) , Po = Co && po . match ( /Version\/(\d*\.\d*)/ ) ; Po && ( Po = Number ( Po [ 1 ] ) ) , Po && Po >= 15 && ( Co = ! 1 , wo = ! 0 ) ; var Ro = Eo && ( ko || Co && ( null == Po || 12.11 > Po ) ) , Do = go || xo && bo >= 9 , Ho = ! 1 , Wo = ! 1 ; m . prototype = Wi ( { update : function ( e ) { var t = e . scrollWidth > e . clientWidth + 1 , n = e . scrollHeight > e . clientHeight + 1 , r = e . nativeBarWidth ; if ( n ) { this . vert . style . display = "block" , this . vert . style . bottom = t ? r + "px" : "0" ; var i = e . viewHeight - ( t ? r : 0 ) ; this . vert . firstChild . style . height = Math . max ( 0 , e . scrollHeight - e . clientHeight + i ) + "px" } else this . vert . style . display = "" , this . vert . firstChild . style . height = "0" ; if ( t ) { this . horiz . style . display = "block" , this . horiz . style . right = n ? r + "px" : "0" , this . horiz . style . left = e . barLeft + "px" ; var o = e . viewWidth - e . barLeft - ( n ? r : 0 ) ; this . horiz . firstChild . style . width = e . scrollWidth - e . clientWidth + o + "px" } else this . horiz . style . display = "" , this . horiz . firstChild . style . width = "0" ; return ! this . checkedZeroWidth && e . clientHeight > 0 && ( 0 == r && this . zeroWidthHack ( ) , this . checkedZeroWidth = ! 0 ) , { right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Eo && ! To ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , this . disableHoriz = new Ei , this . disableVert = new Ei } , enableZeroWidthBar : function ( e , t ) { function n ( ) { var r = e . getBoundingClientRect ( ) ; document . elementFromPoint ( r . left + 1 , r . bottom - 1 ) != 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
to : Bo ( t . head . line , n ) } } return { from : t . from ( ) , to : t . to ( ) } } ) } , deleteLine : function ( e ) { jn ( e , function ( t ) { return { from : Bo ( t . from ( ) . line , 0 ) , to : me ( e . doc , Bo ( t . to ( ) . line + 1 , 0 ) ) } } ) } , delLineLeft : function ( e ) { jn ( e , function ( e ) { return { from : Bo ( e . from ( ) . line , 0 ) , to : e . from ( ) } } ) } , delWrappedLineLeft : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return { from : e . coordsChar ( { left : 0 , top : n } , "div" ) , to : t . from ( ) } } ) } , delWrappedLineRight : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) ; return { from : t . from ( ) , to : r } } ) } , undo : function ( e ) { e . undo ( ) } , redo : function ( e ) { e . redo ( ) } , undoSelection : function ( e ) { e . undoSelection ( ) } , redoSelection : function ( e ) { e . redoSelection ( ) } , goDocStart : function ( e ) { e . extendSelection ( Bo ( e . firstLine ( ) , 0 ) ) } , goDocEnd : function ( e ) { e . extendSelection ( Bo ( e . lastLine ( ) ) ) } , goLineStart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return oo ( e , t . head . line ) } , { origin : "+move" , bias : 1 } ) } , goLineStartSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return lo ( e , t . head ) } , { origin : "+move" , bias : 1 } ) } , goLineEnd : function ( e ) { e . extendSelectionsBy ( function ( t ) { return ao ( e , t . head . line ) } , { origin : "+move" , bias : - 1 } ) } , goLineRight : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) } , _a ) } , goLineLeft : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : 0 , top : n } , "div" ) } , _a ) } , goLineLeftSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return r . ch < e . getLine ( r . line ) . search ( /\S/ ) ? lo ( e , t . head ) : r } , _a ) } , goLineUp : function ( e ) { e . moveV ( - 1 , "line" ) } , goLineDown : function ( e ) { e . moveV ( 1 , "line" ) } , goPageUp : function ( e ) { e . moveV ( - 1 , "page" ) } , goPageDown : function ( e ) { e . moveV ( 1 , "page" ) } , goCharLeft : function ( e ) { e . moveH ( - 1 , "char" ) } , goCharRight : function ( e ) { e . moveH ( 1 , "char" ) } , goColumnLeft : function ( e ) { e . moveH ( - 1 , "column" ) } , goColumnRight : function ( e ) { e . moveH ( 1 , "column" ) } , goWordLeft : function ( e ) { e . moveH ( - 1 , "word" ) } , goGroupRight : function ( e ) { e . moveH ( 1 , "group" ) } , goGroupLeft : function ( e ) { e . moveH ( - 1 , "group" ) } , goWordRight : function ( e ) { e . moveH ( 1 , "word" ) } , delCharBefore : function ( e ) { e . deleteH ( - 1 , "char" ) } , delCharAfter : function ( e ) { e . deleteH ( 1 , "char" ) } , delWordBefore : function ( e ) { e . deleteH ( - 1 , "word" ) } , delWordAfter : function ( e ) { e . deleteH ( 1 , "word" ) } , delGroupBefore : function ( e ) { e . deleteH ( - 1 , "group" ) } , delGroupAfter : function ( e ) { e . deleteH ( 1 , "group" ) } , indentAuto : function ( e ) { e . indentSelection ( "smart" ) } , indentMore : function ( e ) { e . indentSelection ( "add" ) } , indentLess : function ( e ) { e . indentSelection ( "subtract" ) } , insertTab : function ( e ) { e . replaceSelection ( "\t" ) } , insertSoftTab : function ( e ) { for ( var t = [ ] , n = e . listSelections ( ) , r = e . options . tabSize , i = 0 ; i < n . length ; i ++ ) { var o = n [ i ] . from ( ) , a = Fa ( e . getLine ( o . line ) , o . ch , r ) ; t . push ( Oi ( r - a % r ) ) } e . replaceSelections ( t ) } , defaultTab : function ( e ) { e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Zr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new Bo ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new Bo ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , Bo ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var a = Zr ( e . doc , i . line - 1 ) . text ; a && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + a . charAt ( a . length - 1 ) , Bo ( i . line - 1 , a . length - 1 ) , Bo ( i . line , 1 ) , "+transpose" ) } n . push ( new fe ( i , i ) ) } e . setSelections ( n ) } ) } , newlineAndIndent : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) . length , n = 0 ; t > n ; n ++ ) { var r = e . listSelections ( ) [ n ] ; e . replaceRange ( e . 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 - B
startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , n ) { if ( n . combineTokens = null , n . codeBlock ) return e . match ( /^```+/ ) ? ( n . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( n . code = ! 1 ) , e . sol ( ) && e . match ( /^```+/ ) ) return e . skipToEnd ( ) , n . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var i = e . pos ; e . eatWhile ( "`" ) ; var a = 1 + e . pos - i ; return n . code ? a === o && ( n . code = ! 1 ) : ( o = a , n . code = ! 0 ) , null } if ( n . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return n . ateSpace = ! 0 , null ; if ( ( e . sol ( ) || n . ateSpace ) && ( n . ateSpace = ! 1 , r . gitHubSpice !== ! 1 ) ) { if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return n . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return n . combineTokens = ! 0 , "link" } return e . match ( /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i ) && "](" != e . string . slice ( e . start - 2 , e . start ) && ( 0 == e . start || /\W/ . test ( e . string . charAt ( e . start - 1 ) ) ) ? ( n . combineTokens = ! 0 , "link" ) : ( e . next ( ) , null ) } , blankLine : i } , l = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : "```" , strikethrough : ! 0 } ; for ( var s in r ) l [ s ] = r [ s ] ; return l . name = "markdown" , e . overlayMode ( e . getMode ( n , l ) , a ) } , "markdown" ) , e . defineMIME ( "text/x-gfm" , "gfm" ) } ) } , { "../../addon/mode/overlay" : 8 , "../../lib/codemirror" : 10 , "../markdown/markdown" : 12 } ] , 12 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../xml/xml" ) , t ( "../meta" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../xml/xml" , "../meta" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "markdown" , function ( t , n ) { function r ( n ) { if ( e . findModeByName ) { var r = e . findModeByName ( n ) ; r && ( n = r . mime || r . mimes [ 0 ] ) } var i = e . getMode ( t , n ) ; return "null" == i . name ? null : i } function i ( e , t , n ) { return t . f = t . inline = n , n ( e , t ) } function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function l ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , k && e . f == c && ( e . f = p , e . block = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( t , o ) { var l = t . sol ( ) , s = o . list !== ! 1 , c = o . indentedCode ; o . indentedCode = ! 1 , s && ( o . indentationDiff >= 0 ? ( o . indentationDiff < 4 && ( o . indentation -= o . indentationDiff ) , o . list = null ) : o . indentation > 0 ? o . list = null : o . list = ! 1 ) ; var f = null ; if ( o . indentationDiff >= 4 ) return t . skipToEnd ( ) , c || a ( o . prevLine ) ? ( o . indentation -= 4 , o . indentedCode = ! 0 , S . code ) : null ; if ( t . eatSpace ( ) ) return null ; if ( ( f = t . match ( A ) ) && f [ 1 ] . length <= 6 ) return o . header = f [ 1 ] . length , n . 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 . m
this . tokens . links = { } , this . options = e || h . defaults , this . rules = d . normal , this . options . gfm && ( this . options . tables ? this . rules = d . tables : this . rules = d . gfm ) } function i ( e , t ) { if ( this . options = t || h . defaults , this . links = e , this . rules = p . normal , this . renderer = this . options . renderer || new o , this . renderer . options = this . options , ! this . links ) throw new Error ( "Tokens array requires a `links` property." ) ; this . options . gfm ? this . options . breaks ? this . rules = p . breaks : this . rules = p . gfm : this . options . pedantic && ( this . rules = p . pedantic ) } function o ( e ) { this . options = e || { } } function a ( e ) { this . tokens = [ ] , this . token = null , this . options = e || h . defaults , this . options . renderer = this . options . renderer || new o , this . renderer = this . options . renderer , this . renderer . options = this . options } function l ( e , t ) { return e . replace ( t ? /&/g : /&(?!#?\w+;)/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) . replace ( /"/g , """ ) . replace ( /'/g , "'" ) } function s ( e ) { return e . replace ( /&([#\w]+);/g , function ( e , t ) { return t = t . toLowerCase ( ) , "colon" === t ? ":" : "#" === t . charAt ( 0 ) ? "x" === t . charAt ( 1 ) ? String . fromCharCode ( parseInt ( t . substring ( 2 ) , 16 ) ) : String . fromCharCode ( + t . substring ( 1 ) ) : "" } ) } function c ( e , t ) { return e = e . source , t = t || "" , function n ( r , i ) { return r ? ( i = i . source || i , i = i . replace ( /(^|[^\[])\^/g , "$1" ) , e = e . replace ( r , i ) , n ) : new RegExp ( e , t ) } } function u ( ) { } function f ( e ) { for ( var t , n , r = 1 ; r < arguments . length ; r ++ ) { t = arguments [ r ] ; for ( n in t ) Object . prototype . hasOwnProperty . call ( t , n ) && ( e [ n ] = t [ n ] ) } return e } function h ( e , n , r ) { if ( r || "function" == typeof n ) { r || ( r = n , n = null ) , n = f ( { } , h . defaults , n || { } ) ; var i , o , s = n . highlight , c = 0 ; try { i = t . lex ( e , n ) } catch ( u ) { return r ( u ) } o = i . length ; var d = function ( e ) { if ( e ) return n . highlight = s , r ( e ) ; var t ; try { t = a . parse ( i , n ) } catch ( o ) { e = o } return n . highlight = s , e ? r ( e ) : r ( null , t ) } ; if ( ! s || s . length < 3 ) return d ( ) ; if ( delete n . highlight , ! o ) return d ( ) ; for ( ; c < i . length ; c ++ ) ! function ( e ) { "code" !== e . type ? -- o || d ( ) : s ( e . text , e . lang , function ( t , n ) { return t ? d ( t ) : null == n || n === e . text ? -- o || d ( ) : ( e . text = n , e . escaped = ! 0 , void ( -- o || d ( ) ) ) } ) } ( i [ c ] ) } else try { return n && ( n = f ( { } , h . defaults , n ) ) , a . parse ( t . lex ( e , n ) , n ) } catch ( u ) { if ( u . message += "\nPlease report this to https://github.com/chjj/marked." , ( n || h . defaults ) . silent ) return "<p>An error occured:</p><pre>" + l ( u . message + "" , ! 0 ) + "</pre>" ; throw u } } var d = { newline : /^\n+/ , code : /^( {4}[^\n]+\n*)+/ , fences : u , hr : /^( *[-*_]){3,} *(?:\n+|$)/ , heading : /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/ , nptable : u , lheading : /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/ , blockquote : /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/ , list : /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/ , html : /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/ , def : /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/ , table : u , paragraph : /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/ , text : /^[^\n]+/ } ; d . bullet = /(?:[*+-]|\d+\.)/ , d . item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/ , d . item = c ( d . item , "gm" ) ( /bull/g , d . bullet ) ( ) , d . list = c ( d . list ) ( /bull/g , d . bullet ) ( "hr" , "\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))" ) ( "def" , "\\n+(?=" + d . def . source + ")" ) ( ) , d . blockquote = c ( d . blockquote ) ( "def" , d . def ) ( ) , d . _tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b" , d . html = c ( d . html ) ( "comment" , /<!--[\s\S]*?-->/ ) ( "closed" , /<(tag)[\s\S]+?<\/\1>/ ) ( "closing" , /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/ ) ( /tag/g , d . _tag ) ( ) , d . paragraph = c ( d . paragraph ) ( "hr" , d . hr ) ( "heading" , d . heading ) ( "lheading" , d . lheading ) ( "blockquote" , d . blockquote ) ( "tag" , "<" + d . _tag ) ( "def" , d . def ) ( ) , d . normal = f ( { } , d ) , d . gfm = f ( { } , d . normal , { fences : /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/ , paragraph : /^/ , heading : /^ *(#{1,6}) +([^\n]+?) *#* *(?:\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 ) { return new t ( n ) . lex ( e ) } , t . prototype . lex = function ( e ) { return e = e . replace ( /\r\n|\r/g , "\n" ) . replace ( /\t/g , " " ) . replace
for ( var n = l ( e ) , r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = { quote : /^(\s*)\>\s+/ , "unordered-list" : /^(\s*)(\*|\-|\+)\s+/ , "ordered-list" : /^(\s*)\d+\.\s+/ } , a = { quote : "> " , "unordered-list" : "* " , "ordered-list" : "1. " } , s = r . line ; s <= i . line ; s ++ ) ! function ( r ) { var i = e . getLine ( r ) ; i = n [ t ] ? i . replace ( o [ t ] , "$1" ) : a [ t ] + i , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( s ) ; e . focus ( ) } } function P ( e , t , n , r ) { if ( ! /editor-preview-active/ . test ( e . codemirror . getWrapperElement ( ) . lastChild . className ) ) { r = void 0 === r ? n : r ; var i , o = e . codemirror , a = l ( o ) , s = n , c = r , u = o . getCursor ( "start" ) , f = o . getCursor ( "end" ) ; a [ t ] ? ( i = o . getLine ( u . line ) , s = i . slice ( 0 , u . ch ) , c = i . slice ( u . ch ) , "bold" == t ? ( s = s . replace ( /(\*\*|__)(?![\s\S]*(\*\*|__))/ , "" ) , c = c . replace ( /(\*\*|__)/ , "" ) ) : "italic" == t ? ( s = s . replace ( /(\*|_)(?![\s\S]*(\*|_))/ , "" ) , c = c . replace ( /(\*|_)/ , "" ) ) : "strikethrough" == t && ( s = s . replace ( /(\*\*|~~)(?![\s\S]*(\*\*|~~))/ , "" ) , c = c . replace ( /(\*\*|~~)/ , "" ) ) , o . replaceRange ( s + c , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , "bold" == t || "strikethrough" == t ? ( u . ch -= 2 , u !== f && ( f . ch -= 2 ) ) : "italic" == t && ( u . ch -= 1 , u !== f && ( f . ch -= 1 ) ) ) : ( i = o . getSelection ( ) , "bold" == t ? ( i = i . split ( "**" ) . join ( "" ) , i = i . split ( "__" ) . join ( "" ) ) : "italic" == t ? ( i = i . split ( "*" ) . join ( "" ) , i = i . split ( "_" ) . join ( "" ) ) : "strikethrough" == t && ( i = i . split ( "~~" ) . join ( "" ) ) , o . replaceSelection ( s + i + c ) , u . ch += n . length , f . ch = u . ch + i . length ) , o . setSelection ( u , f ) , o . focus ( ) } } function R ( e ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) for ( var t , n = e . getCursor ( "start" ) , r = e . getCursor ( "end" ) , i = n . line ; i <= r . line ; i ++ ) t = e . getLine ( i ) , t = t . replace ( /^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/ , "" ) , e . replaceRange ( t , { line : i , ch : 0 } , { line : i , ch : 99999999999999 } ) } function D ( e , t ) { for ( var n in t ) t . hasOwnProperty ( n ) && ( t [ n ] instanceof Array ? e [ n ] = t [ n ] . concat ( e [ n ] instanceof Array ? e [ n ] : [ ] ) : null !== t [ n ] && "object" == typeof t [ n ] && t [ n ] . constructor === Object ? e [ n ] = D ( e [ n ] || { } , t [ n ] ) : e [ n ] = t [ n ] ) ; return e } function H ( e ) { for ( var t = 1 ; t < arguments . length ; t ++ ) e = D ( e , arguments [ t ] ) ; return e } function W ( e ) { var n = e . match ( /[a-zA-Z0-9_\u0392-\u03c9\u0410-\u04F9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g ) , r = 0 ; if ( null === n ) return r ; for ( var i = 0 ; i < n . length ; i ++ ) r += n [ i ] . charCodeAt ( 0 ) >= 19968 ? n [ i ] . length : 1 ; return r } function B ( e ) { e = e || { } , e . parent = this ; var t = ! 0 ; if ( e . autoDownloadFontAwesome === ! 1 && ( t = ! 1 ) , e . autoDownloadFontAwesome !== ! 0 ) for ( var n = document . styleSheets , r = 0 ; r < n . length ; r ++ ) n [ r ] . href && n [ r ] . href . indexOf ( "//maxcdn.bootstrapcdn.com/font-awesome/" ) > - 1 && ( t = ! 1 ) ; if ( t ) { var i = document . createElement ( "link" ) ; i . rel = "stylesheet" , i . href = "https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" , document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( i ) } if ( e . element ) this . element = e . element ; else if ( null === e . element ) return void console . log ( "SimpleMDE: Error. No element was found." ) ; if ( void 0 === e . toolbar ) { e . toolbar = [ ] ; for ( var o in K ) K . hasOwnProperty ( o ) && ( - 1 != o . indexOf ( "separator-" ) && e . toolbar . push ( "|" ) , ( K [ o ] . default === ! 0 || e . showIcons && e . showIcons . constructor === Array && - 1 != e . showIcons . indexOf ( o ) ) && e . toolbar . push ( o ) ) } e . hasOwnProperty ( "status" ) || ( e . status = [ "autosave" , "lines" , "words" , "cursor" ] ) , e . previewRender || ( e . previewRender = function ( e ) { return this . parent . markdown ( e ) } ) , e . parsingConfig = H ( { highlightFormatting : ! 0 } , e . parsingConfig || { } ) , e . insertTexts = H ( { } , X , e . insertTexts || { } ) , e . promptTexts = Z , e . blockStyles = H ( { } , J , e . blockStyles || { } ) , e . shortcuts = H ( { } , G , e . shortcuts || { } ) , void 0 != e . autosave && void 0 != e . autosave . unique _id && "" != e . autosave . unique _id && ( e . autosave . uniqueId = e . 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 / s
r ? t . addCssClass ( e , n ) : t . removeCssClass ( e , n ) } , t . hasCssString = function ( e , t ) { var r , n = 0 ; if ( t = t || document , t . createStyleSheet && ( r = t . styleSheets ) ) { for ( ; n < r . length ; ) if ( r [ n ++ ] . owningElement . id === e ) return ! 0 } else if ( r = t . getElementsByTagName ( "style" ) ) for ( ; n < r . length ; ) if ( r [ n ++ ] . id === e ) return ! 0 ; return ! 1 } , t . importCssString = function ( n , r , i ) { if ( i = i || document , r && t . hasCssString ( r , i ) ) return null ; var s ; r && ( n += "\n/*# sourceURL=ace/css/" + r + " */" ) , i . createStyleSheet ? ( s = i . createStyleSheet ( ) , s . cssText = n , r && ( s . owningElement . id = r ) ) : ( s = t . createElement ( "style" ) , s . appendChild ( i . createTextNode ( n ) ) , r && ( s . id = r ) , t . getDocumentHead ( i ) . appendChild ( s ) ) } , t . importCssStylsheet = function ( e , n ) { if ( n . createStyleSheet ) n . createStyleSheet ( e ) ; else { var r = t . createElement ( "link" ) ; r . rel = "stylesheet" , r . href = e , t . getDocumentHead ( n ) . appendChild ( r ) } } , t . getInnerWidth = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingLeft" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingRight" ) , 10 ) + e . clientWidth } , t . getInnerHeight = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingTop" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingBottom" ) , 10 ) + e . clientHeight } , t . scrollbarWidth = function ( e ) { var n = t . createElement ( "ace_inner" ) ; n . style . width = "100%" , n . style . minWidth = "0px" , n . style . height = "200px" , n . style . display = "block" ; var r = t . createElement ( "ace_outer" ) , i = r . style ; i . position = "absolute" , i . left = "-10000px" , i . overflow = "hidden" , i . width = "200px" , i . minWidth = "0px" , i . height = "150px" , i . display = "block" , r . appendChild ( n ) ; var s = e . documentElement ; s . appendChild ( r ) ; var o = n . offsetWidth ; i . overflow = "scroll" ; var u = n . offsetWidth ; return o == u && ( u = r . clientWidth ) , s . removeChild ( r ) , o - u } , "undefined" == typeof document ) return void ( t . importCssString = function ( ) { } ) ; void 0 !== window . pageYOffset ? ( t . getPageScrollTop = function ( ) { return window . pageYOffset } , t . getPageScrollLeft = function ( ) { return window . pageXOffset } ) : ( t . getPageScrollTop = function ( ) { return document . body . scrollTop } , t . getPageScrollLeft = function ( ) { return document . body . scrollLeft } ) , window . getComputedStyle ? t . computedStyle = function ( e , t ) { return t ? ( window . getComputedStyle ( e , "" ) || { } ) [ t ] || "" : window . getComputedStyle ( e , "" ) || { } } : t . computedStyle = function ( e , t ) { return t ? e . currentStyle [ t ] : e . currentStyle } , t . setInnerHtml = function ( e , t ) { var n = e . cloneNode ( ! 1 ) ; return n . innerHTML = t , e . parentNode . replaceChild ( n , e ) , n } , "textContent" in document . documentElement ? ( t . setInnerText = function ( e , t ) { e . textContent = t } , t . getInnerText = function ( e ) { return e . textContent } ) : ( t . setInnerText = function ( e , t ) { e . innerText = t } , t . getInnerText = function ( e ) { return e . innerText } ) , t . getParentWindow = function ( e ) { return e . defaultView || e . parentWindow } } ) , ace . define ( "ace/lib/oop" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; t . inherits = function ( e , t ) { e . super _ = t , e . prototype = Object . create ( t . prototype , { constructor : { value : e , enumerable : ! 1 , writable : ! 0 , configurable : ! 0 } } ) } , t . mixin = function ( e , t ) { for ( var n in t ) e [ n ] = t [ n ] ; return e } , t . implement = function ( e , n ) { t . mixin ( e , n ) } } ) , ace . define ( "ace/lib/keys" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; e ( "./fixoldbrowsers" ) ; var r = e ( "./oop" ) , i = function ( ) { var t , n , e = { MODIFIER _KEYS : { 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 224 : "Meta" } , KEY _MODS : { ctrl : 1 , alt : 2 , option : 2 , shift : 4 , super : 8 , meta : 8 , command : 8 , cmd : 8 } , FUNCTION _KEYS : { 8 : "Backspace" , 9 : "Tab" , 13 : "Return" , 19 : "Pause" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "Print" , 45 : "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 : "
; return setTimeout ( function ( ) { r . startSelect ( ) , r . captureMouse ( e ) } , 0 ) , e . preventDefault ( ) } m = t . getSelectionRange ( ) ; var i = e . dataTransfer ; i . effectAllowed = t . getReadOnly ( ) ? "copy" : "copyMove" , s . isOpera && ( t . container . appendChild ( n ) , n . scrollTop = 0 ) , i . setDragImage && i . setDragImage ( n , 0 , 0 ) , s . isOpera && t . container . removeChild ( n ) , i . clearData ( ) , i . setData ( "Text" , t . session . getTextRange ( ) ) , w = ! 0 , this . setState ( "drag" ) } , this . onDragEnd = function ( e ) { if ( c . draggable = ! 1 , w = ! 1 , this . setState ( null ) , ! t . getReadOnly ( ) ) { var n = e . dataTransfer . dropEffect ; ! b && "move" == n && t . session . remove ( t . getSelectionRange ( ) ) , t . renderer . $cursorLayer . setBlinking ( ! 0 ) } this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) } , this . onDragEnter = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || k ( ) , y ++ , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragOver = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || ( k ( ) , y ++ ) , null !== A && ( A = null ) , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragLeave = function ( e ) { if ( -- y <= 0 && h ) return L ( ) , b = null , i . preventDefault ( e ) } , this . onDrop = function ( e ) { if ( g ) { var n = e . dataTransfer ; if ( w ) switch ( b ) { case "move" : m = m . contains ( g . row , g . column ) ? { start : g , end : g } : t . moveText ( m , g ) ; break ; case "copy" : m = t . moveText ( m , g , ! 0 ) } else { var r = n . getData ( "Text" ) ; m = { start : g , end : t . session . insert ( g , r ) } , t . focus ( ) , b = null } return L ( ) , i . preventDefault ( e ) } } , i . addListener ( c , "dragstart" , this . onDragStart . bind ( e ) ) , i . addListener ( c , "dragend" , this . onDragEnd . bind ( e ) ) , i . addListener ( c , "dragenter" , this . onDragEnter . bind ( e ) ) , i . addListener ( c , "dragover" , this . onDragOver . bind ( e ) ) , i . addListener ( c , "dragleave" , this . onDragLeave . bind ( e ) ) , i . addListener ( c , "drop" , this . onDrop . bind ( e ) ) ; var A = null } function l ( e , t , n , r ) { return Math . sqrt ( Math . pow ( n - e , 2 ) + Math . pow ( r - t , 2 ) ) } var r = e ( "../lib/dom" ) , i = e ( "../lib/event" ) , s = e ( "../lib/useragent" ) , o = 200 , u = 200 , a = 5 ; ( function ( ) { this . dragWait = function ( ) { Date . now ( ) - this . mousedownEvent . time > this . editor . getDragDelay ( ) && this . startDrag ( ) } , this . dragWaitEnd = function ( ) { this . editor . container . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) , this . selectEnd ( ) } , this . dragReadyEnd = function ( e ) { this . editor . renderer . $cursorLayer . setBlinking ( ! this . editor . getReadOnly ( ) ) , this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) , this . dragWaitEnd ( ) } , this . startDrag = function ( ) { this . cancelDrag = ! 1 ; var e = this . editor ; e . container . draggable = ! 0 , e . renderer . $cursorLayer . setBlinking ( ! 1 ) , e . setStyle ( "ace_dragging" ) ; var n = s . isWin ? "default" : "move" ; e . renderer . setCursorStyle ( n ) , this . setState ( "dragReady" ) } , this . onMouseDrag = function ( e ) { var t = this . editor . container ; if ( s . isIE && "dragReady" == this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 3 && t . dragDrop ( ) } if ( "dragWait" === this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 0 && ( t . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) ) } } , this . onMouseDown = function ( e ) { if ( this . $dragEnabled ) { this . mousedownEvent = e ; var t = this . editor , n = e . inSelection ( ) , r = e . getButton ( ) ; if ( 1 === ( e . domEvent . detail || 1 ) && 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 ; t . container . 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 . q
ace . define ( "ace/tokenizer" , [ "require" , "exports" , "module" , "ace/config" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./config" ) , i = 2e3 , s = function ( e ) { this . states = e , this . regExps = { } , this . matchMappings = { } ; for ( var t in this . states ) { for ( var n = this . states [ t ] , r = [ ] , i = 0 , s = this . matchMappings [ t ] = { defaultToken : "text" } , o = "g" , u = [ ] , a = 0 ; a < n . length ; a ++ ) { var f = n [ a ] ; if ( f . defaultToken && ( s . defaultToken = f . defaultToken ) , f . caseInsensitive && ( o = "gi" ) , null != f . regex ) { f . regex instanceof RegExp && ( f . regex = f . regex . toString ( ) . slice ( 1 , - 1 ) ) ; var l = f . regex , c = new RegExp ( "(?:(" + l + ")|(.))" ) . exec ( "a" ) . length - 2 ; Array . isArray ( f . token ) ? 1 == f . token . length || 1 == c ? f . token = f . token [ 0 ] : c - 1 != f . token . length ? ( this . reportError ( "number of classes and regexp groups doesn't match" , { rule : f , groupCount : c - 1 } ) , f . token = f . token [ 0 ] ) : ( f . tokenArray = f . token , f . token = null , f . onMatch = this . $arrayTokens ) : "function" == typeof f . token && ! f . onMatch && ( f . onMatch = c > 1 ? this . $applyToken : f . token ) , c > 1 && ( /\\\d/ . test ( f . regex ) ? l = f . regex . replace ( /\\([0-9]+)/g , function ( e , t ) { return "\\" + ( parseInt ( t , 10 ) + i + 1 ) } ) : ( c = 1 , l = this . removeCapturingGroups ( f . regex ) ) , ! f . splitRegex && "string" != typeof f . token && u . push ( f ) ) , s [ i ] = a , i += c , r . push ( l ) , f . onMatch || ( f . onMatch = null ) } } r . length || ( s [ 0 ] = 0 , r . push ( "$" ) ) , u . forEach ( function ( e ) { e . splitRegex = this . createSplitterRegexp ( e . regex , o ) } , this ) , this . regExps [ t ] = new RegExp ( "(" + r . join ( ")|(" ) + ")|($)" , o ) } } ; ( function ( ) { this . $setMaxTokenCount = function ( e ) { i = 0 | e } , this . $applyToken = function ( e ) { var t = this . splitRegex . exec ( e ) . slice ( 1 ) , n = this . token . apply ( this , t ) ; if ( "string" == typeof n ) return [ { type : n , value : e } ] ; for ( var r = [ ] , i = 0 , s = n . length ; i < s ; i ++ ) t [ i ] && ( r [ r . length ] = { type : n [ i ] , value : t [ i ] } ) ; return r } , this . $arrayTokens = function ( e ) { if ( ! e ) return [ ] ; var t = this . splitRegex . exec ( e ) ; if ( ! t ) return "text" ; for ( var n = [ ] , r = this . tokenArray , i = 0 , s = r . length ; i < s ; i ++ ) t [ i + 1 ] && ( n [ n . length ] = { type : r [ i ] , value : t [ i + 1 ] } ) ; return n } , this . removeCapturingGroups = function ( e ) { return e . replace ( /\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g , function ( e , t ) { return t ? "(?:" : e } ) } , this . createSplitterRegexp = function ( e , t ) { if ( e . indexOf ( "(?=" ) != - 1 ) { var n = 0 , r = ! 1 , i = { } ; e . replace ( /(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g , function ( e , t , s , o , u , a ) { return r ? r = "]" != u : u ? r = ! 0 : o ? ( n == i . stack && ( i . end = a + 1 , i . stack = - 1 ) , n -- ) : s && ( n ++ , 1 != s . length && ( i . stack = n , i . start = a ) ) , e } ) , null != i . end && /^\)*$/ . test ( e . substr ( i . end ) ) && ( e = e . substring ( 0 , i . start ) + e . substr ( i . end ) ) } return "^" != e . charAt ( 0 ) && ( e = "^" + e ) , "$" != e . charAt ( e . length - 1 ) && ( e += "$" ) , new RegExp ( e , ( t || "" ) . replace ( "g" , "" ) ) } , this . getLineTokens = function ( e , t ) { if ( t && "string" != typeof t ) { var n = t . slice ( 0 ) ; "#tmp" === ( t = n [ 0 ] ) && ( n . shift ( ) , t = n . shift ( ) ) } else var n = [ ] ; var r = t || "start" , s = this . states [ r ] ; s || ( r = "start" , s = this . states [ r ] ) ; var o = this . matchMappings [ r ] , u = this . regExps [ r ] ; u . lastIndex = 0 ; for ( var a , f = [ ] , l = 0 , c = 0 , h = { type : null , value : "" } ; a = u . exec ( e ) ; ) { var p = o . defaultToken , d = null , v = a [ 0 ] , m = u . lastIndex ; if ( m - v . length > l ) { var g = e . substring ( l , m - v . length ) ; h . type == p ? h . value += g : ( h . type && f . push ( h ) , h = { type : p , value : g } ) } for ( var y = 0 ; y < a . length - 2 ; y ++ ) if ( void 0 !== a [ y + 1 ] ) { d = s [ o [ y ] ] , p = d . onMatch ? d . onMatch ( v , r , n ) : d . token , d . next && ( r = "string" == typeof d . next ? d . next : d . next ( r , n ) , s = this . states [ r ] , s || ( this . reportError ( "state doesn't exist" , r ) , r = "start" , s = this . states [ r ] ) , o = this . matchMappings [ r ] , l = m , u = this . regExps [ r ] , u . lastIndex = m ) ; break } if ( v ) if ( "string" == typeof p ) d && d . merge === ! 1 || h . type !== p ? ( h . type && f . push ( h ) , h = { type : p , value : v } ) : h . value += v ; else if ( p ) { h . type && f . push ( h ) , h = { type : null , value : "" } ; for ( 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 ) { fo
Po : "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65" , S : "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD" , Sm : "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC" , Sc : "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6" , Sk : "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3" , So : "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD" , Z : "002000A01680180E2000-200A20282029202F205F3000" , Zs : "002000A01680180E2000-200A202F205F3000" , Zl : "2028" , Zp : "2029" , C : " 0000 - 001 F007F - 009 F00AD03780379037F - 0383038 B038D03A20526 - 05300557055805600588058 B - 059005 C8 - 05 CF05EB - 05 EF05F5 - 0605061 C061D0620065F06DD070E070F074B074C07B2 - 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 B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0
; if ( ! ( l . end . row < r ) ) { if ( l . start . row > r ) break ; if ( l . start . row == r && l . start . column >= t . column && ( l . start . column != t . column || ! this . $insertRight ) && ( l . start . column += o , l . start . row += s ) , l . end . row == r && l . end . column >= t . column ) { if ( l . end . column == t . column && this . $insertRight ) continue ; l . end . column == t . column && o > 0 && a < f - 1 && l . end . column > l . start . column && l . end . column == u [ a + 1 ] . start . column && ( l . end . column -= o ) , l . end . column += o , l . end . row += s } } } if ( 0 != s && a < f ) for ( ; a < f ; a ++ ) { var l = u [ a ] ; l . start . row += s , l . end . row += s } } } ) . call ( s . prototype ) , t . RangeList = s } ) , ace . define ( "ace/edit_session/fold" , [ "require" , "exports" , "module" , "ace/range" , "ace/range_list" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; function u ( e , t ) { e . row -= t . row , 0 == e . row && ( e . column -= t . column ) } function a ( e , t ) { u ( e . start , t ) , u ( e . end , t ) } function f ( e , t ) { 0 == e . row && ( e . column += t . column ) , e . row += t . row } function l ( e , t ) { f ( e . start , t ) , f ( e . end , t ) } var i = ( e ( "../range" ) . Range , e ( "../range_list" ) . RangeList ) , s = e ( "../lib/oop" ) , o = t . Fold = function ( e , t ) { this . foldLine = null , this . placeholder = t , this . range = e , this . start = e . start , this . end = e . end , this . sameRow = e . start . row == e . end . row , this . subFolds = this . ranges = [ ] } ; s . inherits ( o , i ) , function ( ) { this . toString = function ( ) { return '"' + this . placeholder + '" ' + this . range . toString ( ) } , this . setFoldLine = function ( e ) { this . foldLine = e , this . subFolds . forEach ( function ( t ) { t . setFoldLine ( e ) } ) } , this . clone = function ( ) { var e = this . range . clone ( ) , t = new o ( e , this . placeholder ) ; return this . subFolds . forEach ( function ( e ) { t . subFolds . push ( e . clone ( ) ) } ) , t . collapseChildren = this . collapseChildren , t } , this . addSubFold = function ( e ) { if ( ! this . range . isEqual ( e ) ) { if ( ! this . range . containsRange ( e ) ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; a ( e , this . start ) ; for ( var t = e . start . row , n = e . start . column , r = 0 , i = - 1 ; r < this . subFolds . length && 1 == ( i = this . subFolds [ r ] . range . compare ( t , n ) ) ; r ++ ) ; var s = this . subFolds [ r ] ; if ( 0 == i ) return s . addSubFold ( e ) ; for ( var t = e . range . end . row , n = e . range . end . column , o = r , i = - 1 ; o < this . subFolds . length && 1 == ( i = this . subFolds [ o ] . range . compare ( t , n ) ) ; o ++ ) ; this . subFolds [ o ] ; if ( 0 == i ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; this . subFolds . splice ( r , o - r , e ) ; return e . setFoldLine ( this . foldLine ) , e } } , this . restoreRange = function ( e ) { return l ( e , this . start ) } } . call ( o . prototype ) } ) , ace . define ( "ace/edit_session/folding" , [ "require" , "exports" , "module" , "ace/range" , "ace/edit_session/fold_line" , "ace/edit_session/fold" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function u ( ) { this . getFoldAt = function ( e , t , n ) { var r = this . getFoldLine ( e ) ; if ( ! r ) return null ; for ( var i = r . folds , s = 0 ; s < i . length ; s ++ ) { var o = i [ s ] ; if ( o . range . contains ( e , t ) ) { if ( 1 == n && o . range . isEnd ( e , t ) ) continue ; if ( n == - 1 && o . range . isStart ( e , t ) ) continue ; return o } } } , this . getFoldsInRange = function ( e ) { var t = e . start , n = e . end , r = this . $foldData , i = [ ] ; t . column += 1 , n . column -= 1 ; for ( var s = 0 ; s < r . length ; s ++ ) { var o = r [ s ] . range . compareRange ( e ) ; if ( 2 != o ) { if ( o == - 2 ) break ; for ( var u = r [ s ] . folds , a = 0 ; a < u . length ; a ++ ) { var f = u [ a ] ; if ( ( o = f . range . compareRange ( e ) ) == - 2 ) break ; if ( 2 != o ) { if ( 42 == o ) break ; i . push ( f ) } } } } return t . column -= 1 , n . column += 1 , i } , this . getFoldsInRangeList = function ( e ) { if ( Array . isArray ( e ) ) { var t = [ ] ; e . forEach ( function ( e ) { t = t . concat ( this . getFoldsInRange ( e ) ) } , this ) } else var t = this . getFoldsInRange ( e ) ; return t } , this . getAllFolds = function ( ) { for ( var e = [ ] , t = this . $foldData , n = 0 ; n < t . length ; n ++ ) for ( var r = 0 ; r < t [ n ] . folds . length ; r ++ ) e . push ( t [ n ] . folds [ r ] ) ; return e } , this . getFoldStringAt = function ( e , t , n , r ) { if ( ! ( r = r || this . getFoldLine ( e ) ) ) 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
var t = this . $useWrapMode , n = e . action , r = e . start , i = e . end , s = r . row , o = i . row , u = o - s , a = null ; if ( this . $updating = ! 0 , 0 != u ) if ( "remove" === n ) { this [ t ? "$wrapData" : "$rowLengthCache" ] . splice ( s , u ) ; var f = this . $foldData ; a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) ; var l = this . getFoldLine ( i . row ) , c = 0 ; if ( l ) { l . addRemoveChars ( i . row , i . column , r . column - i . column ) , l . shiftRow ( - u ) ; var h = this . getFoldLine ( s ) ; h && h !== l && ( h . merge ( l ) , l = h ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= i . row && l . shiftRow ( - u ) } o = s } else { var p = Array ( u ) ; p . unshift ( s , 0 ) ; var d = t ? this . $wrapData : this . $rowLengthCache ; d . splice . apply ( d , p ) ; var f = this . $foldData , l = this . getFoldLine ( s ) , c = 0 ; if ( l ) { var v = l . range . compareInside ( r . row , r . column ) ; 0 == v ? ( l = l . split ( r . row , r . column ) ) && ( l . shiftRow ( u ) , l . addRemoveChars ( o , 0 , i . column - r . column ) ) : v == - 1 && ( l . addRemoveChars ( s , 0 , i . column - r . column ) , l . shiftRow ( u ) ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= s && l . shiftRow ( u ) } } else { u = Math . abs ( e . start . column - e . end . column ) , "remove" === n && ( a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) , u = - u ) ; var l = this . getFoldLine ( s ) ; l && l . addRemoveChars ( s , r . column , u ) } return t && this . $wrapData . length != this . doc . getLength ( ) && console . error ( "doc.getLength() and $wrapData.length have to be the same!" ) , this . $updating = ! 1 , t ? this . $updateWrapData ( s , o ) : this . $updateRowLengthCache ( s , o ) , a } , this . $updateRowLengthCache = function ( e , t , n ) { this . $rowLengthCache [ e ] = null , this . $rowLengthCache [ t ] = null } , this . $updateWrapData = function ( e , t ) { var a , f , r = this . doc . getAllLines ( ) , i = this . getTabSize ( ) , s = this . $wrapData , o = this . $wrapLimit , l = e ; for ( t = Math . min ( t , r . length - 1 ) ; l <= t ; ) f = this . getFoldLine ( l , f ) , f ? ( a = [ ] , f . walk ( function ( e , t , i , s ) { var o ; if ( null != e ) { o = this . $getDisplayTokens ( e , a . length ) , o [ 0 ] = n ; for ( var f = 1 ; f < o . length ; f ++ ) o [ f ] = u } else o = this . $getDisplayTokens ( r [ t ] . substring ( s , i ) , a . length ) ; a = a . concat ( o ) } . bind ( this ) , f . end . row , r [ f . end . row ] . length + 1 ) , s [ f . start . row ] = this . $computeWrapSplits ( a , o , i ) , l = f . end . row + 1 ) : ( a = this . $getDisplayTokens ( r [ l ] ) , s [ l ] = this . $computeWrapSplits ( a , o , i ) , l ++ ) } ; var n = 3 , u = 4 , p = 10 , d = 11 , v = 12 ; this . $computeWrapSplits = function ( e , r , i ) { function g ( ) { var t = 0 ; if ( 0 === m ) return t ; if ( h ) for ( var n = 0 ; n < e . length ; n ++ ) { var r = e [ n ] ; if ( r == p ) t += 1 ; else { if ( r != d ) { if ( r == v ) continue ; break } t += i } } return c && h !== ! 1 && ( t += i ) , Math . min ( t , m ) } function y ( t ) { var n = e . slice ( a , t ) , r = n . length ; n . join ( "" ) . replace ( /12/g , function ( ) { r -= 1 } ) . replace ( /2/g , function ( ) { r -= 1 } ) , s . length || ( b = g ( ) , s . indent = b ) , f += r , s . push ( f ) , a = t } if ( 0 == e . length ) return [ ] ; for ( var s = [ ] , o = e . length , a = 0 , f = 0 , c = this . $wrapAsCode , h = this . $indentedSoftWrap , m = r <= Math . max ( 2 * i , 8 ) || h === ! 1 ? 0 : Math . floor ( r / 2 ) , b = 0 ; o - a > r - b ; ) { var w = a + r - b ; if ( e [ w - 1 ] >= p && e [ w ] >= p ) y ( w ) ; else if ( e [ w ] != n && e [ w ] != u ) { for ( var E = Math . max ( w - ( r - ( r >> 2 ) ) , a - 1 ) ; w > E && e [ w ] < n ; ) w -- ; if ( c ) { for ( ; w > E && e [ w ] < n ; ) w -- ; for ( ; w > E && 9 == e [ w ] ; ) w -- } else for ( ; w > E && e [ w ] < p ; ) w -- ; w > E ? y ( ++ w ) : ( w = a + r , 2 == e [ w ] && w -- , y ( w - b ) ) } else { for ( w ; w != a - 1 && e [ w ] != n ; w -- ) ; if ( w > a ) { y ( w ) ; continue } for ( w = a + r ; w < e . length && e [ w ] == u ; w ++ ) ; if ( w == e . length ) break ; y ( w ) } } return s } , this . $getDisplayTokens = function ( n , r ) { var s , i = [ ] ; r = r || 0 ; for ( var o = 0 ; o < n . length ; o ++ ) { var u = n . charCodeAt ( o ) ; if ( 9 == u ) { s = this . getScreenTabSize ( i . length + r ) , i . push ( d ) ; for ( var a = 1 ; a < s ; a ++ ) i . push ( v ) } else 32 == u ? i . push ( p ) : u > 39 && u < 48 || u > 57 && u < 64 ? i . push ( 9 ) : u >= 4352 && m ( u ) ? i . push ( 1 , 2 ) : i . push ( 1 ) } return i } , this . $getStringScreenWidth = function ( e , t , n ) { if ( 0 == t ) return [ 0 , 0 ] ; null == t && ( t = 1 / 0 ) , n = n || 0 ; var r , i ; for ( i = 0 ; i < e . length && ( r = e . charCodeAt ( i ) , ! ( ( n += 9 == r ? this . getScreenTabSize ( n ) : r >= 4352 && m ( r ) ? 2 : 1 ) > 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 . getDocumentLastRowCo
exec : function ( e ) { for ( var t = e . selection . isBackwards ( ) , n = t ? e . selection . getSelectionLead ( ) : e . selection . getSelectionAnchor ( ) , i = t ? e . selection . getSelectionAnchor ( ) : e . selection . getSelectionLead ( ) , o = e . session . doc . getLine ( n . row ) . length , u = e . session . doc . getTextRange ( e . selection . getRange ( ) ) , a = u . replace ( /\n\s*/ , " " ) . length , f = e . session . doc . getLine ( n . row ) , l = n . row + 1 ; l <= i . row + 1 ; l ++ ) { var c = r . stringTrimLeft ( r . stringTrimRight ( e . session . doc . getLine ( l ) ) ) ; 0 !== c . length && ( c = " " + c ) , f += c } i . row + 1 < e . session . doc . getLength ( ) - 1 && ( f += e . session . doc . getNewLineCharacter ( ) ) , e . clearSelection ( ) , e . session . doc . replace ( new s ( n . row , 0 , i . row + 2 , 0 ) , f ) , a > 0 ? ( e . selection . moveCursorTo ( n . row , n . column ) , e . selection . selectTo ( n . row , n . column + a ) ) : ( o = e . session . doc . getLine ( n . row ) . length > o ? o + 1 : o , e . selection . moveCursorTo ( n . row , o ) ) } , multiSelectAction : "forEach" , readOnly : ! 0 } , { name : "invertSelection" , bindKey : o ( null , null ) , exec : function ( e ) { var t = e . session . doc . getLength ( ) - 1 , n = e . session . doc . getLine ( t ) . length , r = e . selection . rangeList . ranges , i = [ ] ; r . length < 1 && ( r = [ e . selection . getRange ( ) ] ) ; for ( var o = 0 ; o < r . length ; o ++ ) o == r . length - 1 && ( r [ o ] . end . row !== t || r [ o ] . end . column !== n ) && i . push ( new s ( r [ o ] . end . row , r [ o ] . end . column , t , n ) ) , 0 === o ? ( 0 !== r [ o ] . start . row || 0 !== r [ o ] . start . column ) && i . push ( new s ( 0 , 0 , r [ o ] . start . row , r [ o ] . start . column ) ) : i . push ( new s ( r [ o - 1 ] . end . row , r [ o - 1 ] . end . column , r [ o ] . start . row , r [ o ] . start . column ) ) ; e . exitMultiSelectMode ( ) , e . clearSelection ( ) ; for ( var o = 0 ; o < i . length ; o ++ ) e . selection . addRange ( i [ o ] , ! 1 ) } , readOnly : ! 0 , scrollIntoView : "none" } ] } ) , ace . define ( "ace/editor" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/keyboard/textinput" , "ace/mouse/mouse_handler" , "ace/mouse/fold_handler" , "ace/keyboard/keybinding" , "ace/edit_session" , "ace/search" , "ace/range" , "ace/lib/event_emitter" , "ace/commands/command_manager" , "ace/commands/default_commands" , "ace/config" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./lib/lang" ) , o = e ( "./lib/useragent" ) , u = e ( "./keyboard/textinput" ) . TextInput , a = e ( "./mouse/mouse_handler" ) . MouseHandler , f = e ( "./mouse/fold_handler" ) . FoldHandler , l = e ( "./keyboard/keybinding" ) . KeyBinding , c = e ( "./edit_session" ) . EditSession , h = e ( "./search" ) . Search , p = e ( "./range" ) . Range , d = e ( "./lib/event_emitter" ) . EventEmitter , v = e ( "./commands/command_manager" ) . CommandManager , m = e ( "./commands/default_commands" ) . commands , g = e ( "./config" ) , y = e ( "./token_iterator" ) . TokenIterator , b = function ( e , t ) { var n = e . getContainerElement ( ) ; this . container = n , this . renderer = e , this . commands = new v ( o . isMac ? "mac" : "win" , m ) , this . textInput = new u ( e . getTextAreaContainer ( ) , this ) , this . renderer . textarea = this . textInput . getElement ( ) , this . keyBinding = new l ( this ) , this . $mouseHandler = new a ( this ) , new f ( this ) , this . $blockScrolling = 0 , this . $search = ( new h ) . set ( { wrap : ! 0 } ) , this . $historyTracker = this . $historyTracker . bind ( this ) , this . commands . on ( "exec" , this . $historyTracker ) , this . $initOperationListeners ( ) , this . _$emitInputEvent = s . delayedCall ( function ( ) { this . _signal ( "input" , { } ) , this . session && this . session . bgTokenizer && this . session . bgTokenizer . scheduleStart ( ) } . bind ( this ) ) , this . on ( "change" , function ( e , t ) { t . _$emitInputEvent . schedule ( 31 ) } ) , this . setSession ( t || new c ( "" ) ) , g . resetOptions ( this ) , g . _signal ( "editor" , this ) } ; ( function ( ) { r . implement ( this , d ) , this . $initOperationListeners = function ( ) { this . selections = [ ] , this . commands . on ( "exec" , this . startOperation . bind ( this ) , ! 0 ) , this . commands . on ( "afterExec" , this . endOperation . bind ( this ) , ! 0 ) , this . $opResetTimer = s . delayedCall ( this . endOperation . bind ( this ) ) , this . on ( "change" , function ( ) { this . curOp || this . startOperation ( ) , this . curOp . docChanged = ! 0 } . bind ( this ) , ! 0 ) , this . on ( "changeSelection" , function ( ) { this . curOp || this . startOperation ( ) , this . curOp . selectionChanged = ! 0 } . bind ( this ) , ! 0 ) } , this . curOp = null , this . prevOp = { } , this . startOperation = function ( e ) { if ( 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 && th
this . navigateLineEnd = function ( ) { this . selection . moveCursorLineEnd ( ) , this . clearSelection ( ) } , this . navigateFileEnd = function ( ) { this . selection . moveCursorFileEnd ( ) , this . clearSelection ( ) } , this . navigateFileStart = function ( ) { this . selection . moveCursorFileStart ( ) , this . clearSelection ( ) } , this . navigateWordRight = function ( ) { this . selection . moveCursorWordRight ( ) , this . clearSelection ( ) } , this . navigateWordLeft = function ( ) { this . selection . moveCursorWordLeft ( ) , this . clearSelection ( ) } , this . replace = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . find ( this . session ) , r = 0 ; return n ? ( this . $tryReplace ( n , e ) && ( r = 1 ) , null !== n && ( this . selection . setSelectionRange ( n ) , this . renderer . scrollSelectionIntoView ( n . start , n . end ) ) , r ) : r } , this . replaceAll = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . findAll ( this . session ) , r = 0 ; if ( ! n . length ) return r ; this . $blockScrolling += 1 ; var i = this . getSelectionRange ( ) ; this . selection . moveTo ( 0 , 0 ) ; for ( var s = n . length - 1 ; s >= 0 ; -- s ) this . $tryReplace ( n [ s ] , e ) && r ++ ; return this . selection . setSelectionRange ( i ) , this . $blockScrolling -= 1 , r } , this . $tryReplace = function ( e , t ) { var n = this . session . getTextRange ( e ) ; return t = this . $search . replace ( n , t ) , null !== t ? ( e . end = this . session . replace ( e , t ) , e ) : null } , this . getLastSearchOptions = function ( ) { return this . $search . getOptions ( ) } , this . find = function ( e , t , n ) { t || ( t = { } ) , "string" == typeof e || e instanceof RegExp ? t . needle = e : "object" == typeof e && r . mixin ( t , e ) ; var i = this . selection . getRange ( ) ; null == t . needle && ( e = this . session . getTextRange ( i ) || this . $search . $options . needle , e || ( i = this . session . getWordRange ( i . start . row , i . start . column ) , e = this . session . getTextRange ( i ) ) , this . $search . set ( { needle : e } ) ) , this . $search . set ( t ) , t . start || this . $search . set ( { start : i } ) ; var s = this . $search . find ( this . session ) ; return t . preventScroll ? s : s ? ( this . revealRange ( s , n ) , s ) : ( t . backwards ? i . start = i . end : i . end = i . start , void this . selection . setRange ( i ) ) } , this . findNext = function ( e , t ) { this . find ( { skipCurrent : ! 0 , backwards : ! 1 } , e , t ) } , this . findPrevious = function ( e , t ) { this . find ( e , { skipCurrent : ! 0 , backwards : ! 0 } , t ) } , this . revealRange = function ( e , t ) { this . $blockScrolling += 1 , this . session . unfold ( e ) , this . selection . setSelectionRange ( e ) , this . $blockScrolling -= 1 ; var n = this . renderer . scrollTop ; this . renderer . scrollSelectionIntoView ( e . start , e . end , . 5 ) , t !== ! 1 && this . renderer . animateScrolling ( n ) } , this . undo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . undo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . redo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . redo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . destroy = function ( ) { this . renderer . destroy ( ) , this . _signal ( "destroy" , this ) , this . session && this . session . destroy ( ) } , this . setAutoScrollEditorIntoView = function ( e ) { if ( e ) { var t , n = this , r = ! 1 ; this . $scrollAnchor || ( this . $scrollAnchor = document . createElement ( "div" ) ) ; var i = this . $scrollAnchor ; i . style . cssText = "position:absolute" , this . container . insertBefore ( i , this . container . firstChild ) ; var s = this . on ( "changeSelection" , function ( ) { r = ! 0 } ) , o = this . renderer . on ( "beforeRender" , function ( ) { r && ( t = n . renderer . container . getBoundingClientRect ( ) ) } ) , u = this . renderer . on ( "afterRender" , function ( ) { if ( r && t && ( n . isFocused ( ) || n . searchBox && n . searchBox . isFocused ( ) ) ) { var e = n . renderer , s = e . $cursorLayer . $pixelPos , o = e . layerConfig , u = s . top - o . offset ; r = s . top >= 0 && u + t . top < 0 || ! ( s . top < o . height && s . top + t . top + o . lineHeight > window . innerHeight ) && null , null != r && ( i . style . top = u + "px" , i . style . left = s . left + "px" , i . style . height = o . lineHeight + "px" , i . scrollIntoView ( r ) ) , r = t = null } } ) ; this . setAutoScrollEditorIntoView = function ( e ) { e || ( delete this . setAutoScrollEditorIntoView , this . off ( "changeSelection" , s ) , this . renderer . off ( "afterRender" , u ) , this . renderer . off ( "beforeRender" , o ) ) } } } , this . $resetCursorStyle = function ( ) { var e = this . $cursorStyle || "ace" , t = this . renderer . $cursorLayer ; t && ( t . setSmoothBlinking ( /smooth/ . test ( e ) ) , t . isBlinking = ! this . $readOnly && "wide" != 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" } , highlightActiveLi
this . $setMeasureNodeStyles = function ( e , t ) { e . width = e . height = "auto" , e . left = e . top = "0px" , e . visibility = "hidden" , e . position = "absolute" , e . whiteSpace = "pre" , o . isIE < 8 ? e [ "font-family" ] = "inherit" : e . font = "inherit" , e . overflow = t ? "hidden" : "visible" } , this . checkForSizeChanges = function ( ) { var e = this . $measureSizes ( ) ; if ( e && ( this . $characterSize . width !== e . width || this . $characterSize . height !== e . height ) ) { this . $measureNode . style . fontWeight = "bold" ; var t = this . $measureSizes ( ) ; this . $measureNode . style . fontWeight = "" , this . $characterSize = e , this . charSizes = Object . create ( null ) , this . allowBoldFonts = t && t . width === e . width && t . height === e . height , this . _emit ( "changeCharacterSize" , { data : e } ) } } , this . $pollSizeChanges = function ( ) { if ( this . $pollSizeChangesTimer ) return this . $pollSizeChangesTimer ; var e = this ; return this . $pollSizeChangesTimer = setInterval ( function ( ) { e . checkForSizeChanges ( ) } , 500 ) } , this . setPolling = function ( e ) { e ? this . $pollSizeChanges ( ) : this . $pollSizeChangesTimer && ( clearInterval ( this . $pollSizeChangesTimer ) , this . $pollSizeChangesTimer = 0 ) } , this . $measureSizes = function ( ) { if ( 50 === a ) { var e = null ; try { e = this . $measureNode . getBoundingClientRect ( ) } catch ( t ) { e = { width : 0 , height : 0 } } var n = { height : e . height , width : e . width / a } } else var n = { height : this . $measureNode . clientHeight , width : this . $measureNode . clientWidth / a } ; return 0 === n . width || 0 === n . height ? null : n } , this . $measureCharWidth = function ( e ) { return this . $main . innerHTML = s . stringRepeat ( e , a ) , this . $main . getBoundingClientRect ( ) . width / a } , this . getCharacterWidth = function ( e ) { var t = this . charSizes [ e ] ; return void 0 === t && ( t = this . charSizes [ e ] = this . $measureCharWidth ( e ) / this . $characterSize . width ) , t } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . el && this . el . parentNode && this . el . parentNode . removeChild ( this . el ) } } ) . call ( f . prototype ) } ) , ace . define ( "ace/virtual_renderer" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/config" , "ace/lib/useragent" , "ace/layer/gutter" , "ace/layer/marker" , "ace/layer/text" , "ace/layer/cursor" , "ace/scrollbar" , "ace/scrollbar" , "ace/renderloop" , "ace/layer/font_metrics" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./config" ) , o = e ( "./lib/useragent" ) , u = e ( "./layer/gutter" ) . Gutter , a = e ( "./layer/marker" ) . Marker , f = e ( "./layer/text" ) . Text , l = e ( "./layer/cursor" ) . Cursor , c = e ( "./scrollbar" ) . HScrollBar , h = e ( "./scrollbar" ) . VScrollBar , p = e ( "./renderloop" ) . RenderLoop , d = e ( "./layer/font_metrics" ) . FontMetrics , v = e ( "./lib/event_emitter" ) . EventEmitter ; i . importCssString ( '.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\' ; background : rgba ( 250 , 250 , 250 , 0.01 ) ; z - index : 1000 ; } . ace _dragging . ace _dark . ace _scroller : before { background : rgba ( 0 , 0 , 0 , 0.01 ) ; } . ace _selecting , . ace _selecting * { cursor : text ! important ; } . ace _gutter { position : absolute ; overflow : hidden ; width : auto ; top : 0 ; bottom : 0 ; left : 0 ; cursor : default ; z - index : 4 ; - ms - user - select : none ; - moz - user - select : none ; - webkit - user - select : none ; user - select : none ; } . ace _gutter - active - line { position : absolute ; left : 0 ; right : 0 ; } . ace _scroller . ace _scroll - left { box - shadow : 17 px 0 16 px - 16 px rgba ( 0 , 0 , 0 , 0.4 ) inset ; } . ace _gutter - cell { padding - left : 19 px ; padding - right : 6 px ; background - repeat : no - repeat ; } . ace _gutter - cell . ace _error { background - image : url ( " data : image / png ; base64 , iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX /////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68M
this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . setAnnotations = function ( e ) { this . $gutterLayer . setAnnotations ( e ) , this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . updateCursor = function ( ) { this . $loop . schedule ( this . CHANGE _CURSOR ) } , this . hideCursor = function ( ) { this . $cursorLayer . hideCursor ( ) } , this . showCursor = function ( ) { this . $cursorLayer . showCursor ( ) } , this . scrollSelectionIntoView = function ( e , t , n ) { this . scrollCursorIntoView ( e , n ) , this . scrollCursorIntoView ( t , n ) } , this . scrollCursorIntoView = function ( e , t , n ) { if ( 0 !== this . $size . scrollerHeight ) { var r = this . $cursorLayer . getPixelPosition ( e ) , i = r . left , s = r . top , o = n && n . top || 0 , u = n && n . bottom || 0 , a = this . $scrollAnimation ? this . session . getScrollTop ( ) : this . scrollTop ; a + o > s ? ( t && a + o > s + this . lineHeight && ( s -= t * this . $size . scrollerHeight ) , 0 === s && ( s = - this . scrollMargin . top ) , this . session . setScrollTop ( s ) ) : a + this . $size . scrollerHeight - u < s + this . lineHeight && ( t && a + this . $size . scrollerHeight - u < s - this . lineHeight && ( s += t * this . $size . scrollerHeight ) , this . session . setScrollTop ( s + this . lineHeight - this . $size . scrollerHeight ) ) ; var f = this . scrollLeft ; f > i ? ( i < this . $padding + 2 * this . layerConfig . characterWidth && ( i = - this . scrollMargin . left ) , this . session . setScrollLeft ( i ) ) : f + this . $size . scrollerWidth < i + this . characterWidth ? this . session . setScrollLeft ( Math . round ( i + this . characterWidth - this . $size . scrollerWidth ) ) : f <= this . $padding && i - f < this . characterWidth && this . session . setScrollLeft ( 0 ) } } , this . getScrollTop = function ( ) { return this . session . getScrollTop ( ) } , this . getScrollLeft = function ( ) { return this . session . getScrollLeft ( ) } , this . getScrollTopRow = function ( ) { return this . scrollTop / this . lineHeight } , this . getScrollBottomRow = function ( ) { return Math . max ( 0 , Math . floor ( ( this . scrollTop + this . $size . scrollerHeight ) / this . lineHeight ) - 1 ) } , this . scrollToRow = function ( e ) { this . session . setScrollTop ( e * this . lineHeight ) } , this . alignCursor = function ( e , t ) { "number" == typeof e && ( e = { row : e , column : 0 } ) ; var n = this . $cursorLayer . getPixelPosition ( e ) , r = this . $size . scrollerHeight - this . lineHeight , i = n . top - r * ( t || 0 ) ; return this . session . setScrollTop ( i ) , i } , this . STEPS = 8 , this . $calcSteps = function ( e , t ) { var n = 0 , r = this . STEPS , i = [ ] ; for ( n = 0 ; n < r ; ++ n ) i . push ( function ( e , t , n ) { return n * ( Math . pow ( e - 1 , 3 ) + 1 ) + t } ( n / this . STEPS , e , t - e ) ) ; return i } , this . scrollToLine = function ( e , t , n , r ) { var i = this . $cursorLayer . getPixelPosition ( { row : e , column : 0 } ) , s = i . top ; t && ( s -= this . $size . scrollerHeight / 2 ) ; var o = this . scrollTop ; this . session . setScrollTop ( s ) , n !== ! 1 && this . animateScrolling ( o , r ) } , this . animateScrolling = function ( e , t ) { var n = this . scrollTop ; if ( this . $animatedScroll ) { var r = this ; if ( e != n ) { if ( this . $scrollAnimation ) { var i = this . $scrollAnimation . steps ; if ( i . length && ( e = i [ 0 ] ) == n ) return } var s = r . $calcSteps ( e , n ) ; this . $scrollAnimation = { from : e , to : n , steps : s } , clearInterval ( this . $timer ) , r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n , this . $timer = setInterval ( function ( ) { s . length ? ( r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n ) : null != n ? ( r . session . $scrollTop = - 1 , r . session . setScrollTop ( n ) , n = null ) : ( r . $timer = clearInterval ( r . $timer ) , r . $scrollAnimation = null , t && t ( ) ) } , 10 ) } } } , this . scrollToY = function ( e ) { this . scrollTop !== e && ( this . $loop . schedule ( this . CHANGE _SCROLL ) , this . scrollTop = e ) } , this . scrollToX = function ( e ) { this . scrollLeft !== e && ( this . scrollLeft = e ) , this . $loop . schedule ( this . CHANGE _H _SCROLL ) } , this . scrollTo = function ( e , t ) { this . session . setScrollTop ( t ) , this . session . setScrollLeft ( t ) } , this . scrollBy = function ( e , t ) { t && this . session . setScrollTop ( this . session . getScrollTop ( ) + t ) , e && this . session . setScrollLeft ( this . session . getScrollLeft ( ) + e ) } , this . isScrollableBy = function ( e , t ) { return t < 0 && this . session . getScrollTop ( ) >= 1 - this . scrollMargin . top || ( t > 0 && this . session . getScrollTop ( ) + this . $size . scrollerHeight - this . layerConfig . maxHeight < - 1 + this . scrollMargin . bottom || ( e < 0 && this . session . getScrollLeft ( ) >= 1 - this . scrollMargin . left || ( e > 0 && this . session . getScrollLeft ( ) + this . $size . scrollerWidth - this . layerConfig . width < - 1 + this . scrollMargin . right || void 0 ) ) ) } , this . pixelToScreenCoordinates = function ( e , t ) { var n = this . scroller . getBoundingClientRect ( ) , r = ( e + this . scrollLeft - n . left - this . $padding ) / this . characterWidth , i = Math . floor ( ( t + this . scrollTop - n . top ) / this . lineHeight ) , s = Math . round ( r ) ; return { row : i , column : s , side : r - s > 0 ? 1 : - 1 } } , th
this . selection . inMultiSelectMode ) { if ( t ) var l = n . cursor } else this . selection . addRange ( n ) ; this . selection . addRange ( f ) , l && this . selection . substractPoint ( l ) } , this . transposeSelections = function ( e ) { for ( var t = this . session , n = t . multiSelect , r = n . ranges , i = r . length ; i -- ; ) { var s = r [ i ] ; if ( s . isEmpty ( ) ) { var o = t . getWordRange ( s . start . row , s . start . column ) ; s . start . row = o . start . row , s . start . column = o . start . column , s . end . row = o . end . row , s . end . column = o . end . column } } n . mergeOverlappingRanges ( ) ; for ( var u = [ ] , i = r . length ; i -- ; ) { var s = r [ i ] ; u . unshift ( t . getTextRange ( s ) ) } e < 0 ? u . unshift ( u . pop ( ) ) : u . push ( u . shift ( ) ) ; for ( var i = r . length ; i -- ; ) { var s = r [ i ] , o = s . clone ( ) ; t . replace ( s , u [ i ] ) , s . start . row = o . start . row , s . start . column = o . start . column } } , this . selectMore = function ( e , t , n ) { var r = this . session , i = r . multiSelect , s = i . toOrientedRange ( ) ; if ( ! s . isEmpty ( ) || ( s = r . getWordRange ( s . start . row , s . start . column ) , s . cursor = e == - 1 ? s . start : s . end , this . multiSelect . addRange ( s ) , ! n ) ) { var o = r . getTextRange ( s ) , u = h ( r , o , e ) ; u && ( u . cursor = e == - 1 ? u . start : u . end , this . $blockScrolling += 1 , this . session . unfold ( u ) , this . multiSelect . addRange ( u ) , this . $blockScrolling -= 1 , this . renderer . scrollCursorIntoView ( null , . 5 ) ) , t && this . multiSelect . substractPoint ( s . cursor ) } } , this . alignCursors = function ( ) { var e = this . session , t = e . multiSelect , n = t . ranges , r = - 1 , s = n . filter ( function ( e ) { if ( e . cursor . row == r ) return ! 0 ; r = e . cursor . row } ) ; if ( n . length && s . length != n . length - 1 ) { s . forEach ( function ( e ) { t . substractPoint ( e . cursor ) } ) ; var d = 0 , v = 1 / 0 , m = n . map ( function ( t ) { var n = t . cursor , r = e . getLine ( n . row ) , i = r . substr ( n . column ) . search ( /\S/g ) ; return i == - 1 && ( i = 0 ) , n . column > d && ( d = n . column ) , i < v && ( v = i ) , i } ) ; n . forEach ( function ( t , n ) { var r = t . cursor , s = d - r . column , o = m [ n ] - v ; s > o ? e . insert ( r , a . stringRepeat ( " " , s - o ) ) : e . remove ( new i ( r . row , r . column , r . row , r . column - s + o ) ) , t . start . column = t . end . column = d , t . start . row = t . end . row = r . row , t . cursor = t . end } ) , t . fromOrientedRange ( n [ 0 ] ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } else { var o = this . selection . getRange ( ) , u = o . start . row , f = o . end . row , l = u == f ; if ( l ) { var h , c = this . session . getLength ( ) ; do { h = this . session . getLine ( f ) } while ( /[=:]/ . test ( h ) && ++ f < c ) ; do { h = this . session . getLine ( u ) } while ( /[=:]/ . test ( h ) && -- u > 0 ) ; u < 0 && ( u = 0 ) , f >= c && ( f = c - 1 ) } var p = this . session . removeFullLines ( u , f ) ; p = this . $reAlignText ( p , l ) , this . session . insert ( { row : u , column : 0 } , p . join ( "\n" ) + "\n" ) , l || ( o . start . column = 0 , o . end . column = p [ p . length - 1 ] . length ) , this . selection . setRange ( o ) } } , this . $reAlignText = function ( e , t ) { function u ( e ) { return a . stringRepeat ( " " , e ) } function f ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( s - e [ 2 ] . length + o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function l ( e ) { return e [ 2 ] ? u ( i + s - e [ 2 ] . length ) + e [ 2 ] + u ( o , " " ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function c ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } var i , s , o , n = ! 0 , r = ! 0 ; return e . map ( function ( e ) { var t = e . match ( /(\s*)(.*?)(\s*)([=:].*)/ ) ; return t ? null == i ? ( i = t [ 1 ] . length , s = t [ 2 ] . length , o = t [ 3 ] . length , t ) : ( i + s + o != t [ 1 ] . length + t [ 2 ] . length + t [ 3 ] . length && ( r = ! 1 ) , i != t [ 1 ] . length && ( n = ! 1 ) , i > t [ 1 ] . length && ( i = t [ 1 ] . length ) , s < t [ 2 ] . length && ( s = t [ 2 ] . length ) , o > t [ 3 ] . length && ( o = t [ 3 ] . length ) , t ) : [ e ] } ) . map ( t ? f : n ? r ? l : f : c ) } } ) . call ( d . prototype ) , t . onSessionChange = function ( e ) { var t = e . session ; t && ! t . multiSelect && ( t . $selectionMarkers = [ ] , t . selection . $initRangeList ( ) , t . multiSelect = t . selection ) , this . multiSelect = t && t . multiSelect ; var n = e . oldSession ; n && ( n . multiSelect . off ( "addRange" , this . $onAddRange ) , n . multiSelect . off ( "removeRange" , this . $onRemoveRange ) , n . multiSelect . off ( "multiSelect" , this . $onMultiSelect ) , n . multiSelect . off ( "singleSelect" , this . $onSingleSelect ) , n . multiSelect . lead . off ( "change" , this . $checkMultiselectChange ) , n . multiSelect . anchor . off ( "change" , this . $checkMultiselectChange ) ) , t && ( t . multiSelect . on ( "addRange" , this . $onAddRange ) , t . multiSelect . on ( "removeRange" , this . $onRemoveRange ) , t . multiSelect . on ( "multiSelect" , this . $onMultiSelect ) , t . multiSelect . on ( "singleSelect" , this . $onSingleSelect ) , t . multiSelect . lead . on ( "change" , this . $checkMultiselectChange ) , t . multiSelect . anchor . on ( "change" , this . $checkMultiselectChange ) ) , t && this . inMultiSelectMode != t . selection . inMultiSelectMode && ( t . selection . inMultiSelectMode ? this . $onMultiSelect ( ) : this . $onSingleSelect ( ) ) } , t . MultiSelect = m , e ( "./config" ) . defineOptions (
regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ } , { token : "support.constant" , regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ } , { token : "identifier" , regex : o } , { regex : "" , token : "empty" , next : "no_regex" } ] , start : [ i . getStartRule ( "doc-start" ) , f ( "start" ) , { token : "string.regexp" , regex : "\\/" , next : "regex" } , { token : "text" , regex : "\\s+|^$" , next : "start" } , { token : "empty" , regex : "" , next : "no_regex" } ] , regex : [ { token : "regexp.keyword.operator" , regex : "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" } , { token : "string.regexp" , regex : "/[sxngimy]*" , next : "no_regex" } , { token : "invalid" , regex : /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ } , { token : "constant.language.escape" , regex : /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ } , { token : "constant.language.delimiter" , regex : /\|/ } , { token : "constant.language.escape" , regex : /\[\^?/ , next : "regex_character_class" } , { token : "empty" , regex : "$" , next : "no_regex" } , { defaultToken : "string.regexp" } ] , regex _character _class : [ { token : "regexp.charclass.keyword.operator" , regex : "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" } , { token : "constant.language.escape" , regex : "]" , next : "regex" } , { token : "constant.language.escape" , regex : "-" } , { token : "empty" , regex : "$" , next : "no_regex" } , { defaultToken : "string.regexp.charachterclass" } ] , function _arguments : [ { token : "variable.parameter" , regex : o } , { token : "punctuation.operator" , regex : "[, ]+" } , { token : "punctuation.operator" , regex : "$" } , { token : "empty" , regex : "" , next : "no_regex" } ] , qqstring : [ { token : "constant.language.escape" , regex : r } , { token : "string" , regex : "\\\\$" , next : "qqstring" } , { token : "string" , regex : '"|$' , next : "no_regex" } , { defaultToken : "string" } ] , qstring : [ { token : "constant.language.escape" , regex : r } , { token : "string" , regex : "\\\\$" , next : "qstring" } , { token : "string" , regex : " ' |
"-webkit-border-bottom-left-radius" : 1 , "-moz-box-shadow" : 1 , "-webkit-box-shadow" : 1 , transform : { "rotate($00deg)" : 1 , "skew($00deg)" : 1 } , "-moz-transform" : { "rotate($00deg)" : 1 , "skew($00deg)" : 1 } , "-webkit-transform" : { "rotate($00deg)" : 1 , "skew($00deg)" : 1 } } , i = function ( ) { } ; ( function ( ) { this . completionsDefined = ! 1 , this . defineCompletions = function ( ) { if ( document ) { var e = document . createElement ( "c" ) . style ; for ( var t in e ) if ( "string" == typeof e [ t ] ) { var n = t . replace ( /[A-Z]/g , function ( e ) { return "-" + e . toLowerCase ( ) } ) ; r . hasOwnProperty ( n ) || ( r [ n ] = 1 ) } } this . completionsDefined = ! 0 } , this . getCompletions = function ( e , t , n , r ) { if ( this . completionsDefined || this . defineCompletions ( ) , ! t . getTokenAt ( n . row , n . column ) ) return [ ] ; if ( "ruleset" === e ) { var s = t . getLine ( n . row ) . substr ( 0 , n . column ) ; return /:[^;]+$/ . test ( s ) ? ( /([\w\-]+):[^:]*$/ . test ( s ) , this . getPropertyValueCompletions ( e , t , n , r ) ) : this . getPropertyCompletions ( e , t , n , r ) } return [ ] } , this . getPropertyCompletions = function ( e , t , n , i ) { return Object . keys ( r ) . map ( function ( e ) { return { caption : e , snippet : e + ": $0" , meta : "property" , score : Number . MAX _VALUE } } ) } , this . getPropertyValueCompletions = function ( e , t , n , i ) { var s = t . getLine ( n . row ) . substr ( 0 , n . column ) , o = ( /([\w\-]+):[^:]*$/ . exec ( s ) || { } ) [ 1 ] ; if ( ! o ) return [ ] ; var u = [ ] ; return o in r && "object" == typeof r [ o ] && ( u = Object . keys ( r [ o ] ) ) , u . map ( function ( e ) { return { caption : e , snippet : e , meta : "property value" , score : Number . MAX _VALUE } } ) } } ) . call ( i . prototype ) , t . CssCompletions = i } ) , ace . define ( "ace/mode/behaviour/css" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/behaviour" , "ace/mode/behaviour/cstyle" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , s = ( e ( "../behaviour" ) . Behaviour , e ( "./cstyle" ) . CstyleBehaviour ) , o = e ( "../../token_iterator" ) . TokenIterator , u = function ( ) { this . inherit ( s ) , this . add ( "colon" , "insertion" , function ( e , t , n , r , i ) { if ( ":" === i ) { var s = n . getCursorPosition ( ) , u = new o ( r , s . row , s . column ) , a = u . getCurrentToken ( ) ; if ( a && a . value . match ( /\s+/ ) && ( a = u . stepBackward ( ) ) , a && "support.type" === a . type ) { var f = r . doc . getLine ( s . row ) ; if ( ":" === f . substring ( s . column , s . column + 1 ) ) return { text : "" , selection : [ 1 , 1 ] } ; if ( ! f . substring ( s . column ) . match ( /^\s*;/ ) ) return { text : ":;" , selection : [ 1 , 1 ] } } } } ) , this . add ( "colon" , "deletion" , function ( e , t , n , r , i ) { var s = r . doc . getTextRange ( i ) ; if ( ! i . isMultiLine ( ) && ":" === s ) { var u = n . getCursorPosition ( ) , a = new o ( r , u . row , u . column ) , f = a . getCurrentToken ( ) ; if ( f && f . value . match ( /\s+/ ) && ( f = a . stepBackward ( ) ) , f && "support.type" === f . type ) { if ( ";" === r . doc . getLine ( i . start . row ) . substring ( i . end . column , i . end . column + 1 ) ) return i . end . column ++ , i } } } ) , this . add ( "semicolon" , "insertion" , function ( e , t , n , r , i ) { if ( ";" === i ) { var s = n . getCursorPosition ( ) ; if ( ";" === r . doc . getLine ( s . row ) . substring ( s . column , s . column + 1 ) ) return { text : "" , selection : [ 1 , 1 ] } } } ) } ; r . inherits ( u , s ) , t . CssBehaviour = u } ) , ace . define ( "ace/mode/css" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text" , "ace/mode/css_highlight_rules" , "ace/mode/matching_brace_outdent" , "ace/worker/worker_client" , "ace/mode/css_completions" , "ace/mode/behaviour/css" , "ace/mode/folding/cstyle" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "./text" ) . Mode , s = e ( "./css_highlight_rules" ) . CssHighlightRules , o = e ( "./matching_brace_outdent" ) . MatchingBraceOutdent , u = e ( "../worker/worker_client" ) . WorkerClient , a = e ( "./css_completions" ) . CssCompletions , f = e ( "./behaviour/css" ) . CssBehaviour , l = e ( "./folding/cstyle" ) . FoldMode , c = function ( ) { this . HighlightRules = s , this . $outdent = new o , this . $behaviour = new f , this . $completer = new a , this . foldingRules = new l } ; r . inherits ( c , i ) , function ( ) { this . foldingRules = "cStyle" , this . blockComment = { start : "/*" , end : "*/" } , this . getNextLineIndent = function ( e , t , n ) { var r = this . $getIndent ( t ) , i = this . getTokenizer ( ) . getLineTokens ( t , e ) . tokens ; return i . length && "comment" == i [ i . length - 1 ] . type ? r : ( t . match ( /^.*\{\s*$/ ) && ( r += n ) , r ) } , this . checkOutdent = function ( e , t , n ) { return this . $outdent . checkOutdent ( t , n ) } , this . autoOutdent = function ( e , t , n ) { this . $outdent . autoOutdent ( t , n ) } , this . getCompletions = function ( e , t , n , r ) { return this . $completer . getCompletions ( e , t , n , r ) } , this . createWorker = function ( e ) { var t = new u ( [ "ace" ] , "ace/mode/css_worker" , "Worker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , t . on ( "annotate" , function ( t ) { e . setAnnotati
var F , N = 1 / 0 , P = NaN , Z = [ [ "ary" , 128 ] , [ "bind" , 1 ] , [ "bindKey" , 2 ] , [ "curry" , 8 ] , [ "curryRight" , 16 ] , [ "flip" , 512 ] , [ "partial" , 32 ] , [ "partialRight" , 64 ] , [ "rearg" , 256 ] ] , G = /&(?:amp|lt|gt|quot|#39);/g , H = /[&<>"']/g , J = RegExp ( G . source ) , Y = RegExp ( H . source ) , nn = /<%=([\s\S]+?)%>/g , tn = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , rn = /^\w*$/ , en = /^\./ , on = /[\\^$.*+?()[\]{}|]/g , fn = RegExp ( on . source ) , cn = /^\s+|\s+$/g , sn = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/ , hn = /\{\n\/\* \[wrapped with (.+)\] \*/ , pn = /,? & / , _n = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g , dn = /\w*$/ , yn = /^[-+]0x[0-9a-f]+$/i , bn = /^0b[01]+$/i , xn = /^\[object .+?Constructor\]$/ , jn = /^0o[0-7]+$/i , wn = /^(?:0|[1-9]\d*)$/ , mn = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g , An = /($^)/ , En = "[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*" , In = RegExp ( "['’ ]" , "g" ) , Rn = RegExp ( "[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]" , "g" ) , zn = RegExp ( "\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])" + En , "g" ) , Wn = RegExp ( [ "[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’ ](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’ ](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’ ](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’ ](?:D|LL|M|RE|S|T|VE))?|\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)|\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)|\\d+" , "(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])" + En ] . join ( "|" ) , "g" ) , Bn = RegExp ( "[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]" ) , Ln = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/ , Un = "Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout" . split ( " " ) , Cn = { } ; Cn [ "[object Float32Array]" ] = Cn [ "[object Float64Array]" ] = Cn [ "[object Int8Array]" ] = Cn [ "[object Int16Array]" ] = Cn [ "[object Int32Array]" ] = Cn [ "[object Uint8Array]" ] = Cn [ "[object Uint8ClampedArray]" ] = Cn [ " [ object U
return t = r ? F : t , n = le ( n , 8 , F , F , F , F , F , t ) , n . placeholder = fu . placeholder , n } function cu ( n , t , r ) { return t = r ? F : t , n = le ( n , 16 , F , F , F , F , F , t ) , n . placeholder = cu . placeholder , n } function au ( n , t , r ) { function e ( t ) { var r = c , e = a ; return c = a = F , _ = t , s = n . apply ( e , r ) } function u ( n ) { var r = n - p ; return n -= _ , p === F || r >= t || 0 > r || g && n >= l } function i ( ) { var n = Jo ( ) ; if ( u ( n ) ) return o ( n ) ; var r , e = jo ; r = n - _ , n = t - ( n - p ) , r = g ? Mi ( n , l - r ) : n , h = e ( i , r ) } function o ( n ) { return h = F , d && c ? e ( n ) : ( c = a = F , s ) } function f ( ) { var n = Jo ( ) , r = u ( n ) ; if ( c = arguments , a = this , p = n , r ) { if ( h === F ) return _ = n = p , h = jo ( i , t ) , v ? e ( n ) : s ; if ( g ) return h = jo ( i , t ) , e ( p ) } return h === F && ( h = jo ( i , t ) ) , s } var c , a , l , s , h , p , _ = 0 , v = ! 1 , g = ! 1 , d = ! 0 ; if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return t = Iu ( t ) || 0 , bu ( r ) && ( v = ! ! r . leading , l = ( g = "maxWait" in r ) ? Di ( Iu ( r . maxWait ) || 0 , t ) : l , d = "trailing" in r ? ! ! r . trailing : d ) , f . cancel = function ( ) { h !== F && ho ( h ) , _ = 0 , c = p = a = h = F } , f . flush = function ( ) { return h === F ? s : o ( Jo ( ) ) } , f } function lu ( n , t ) { function r ( ) { var e = arguments , u = t ? t . apply ( this , e ) : e [ 0 ] , i = r . cache ; return i . has ( u ) ? i . get ( u ) : ( e = n . apply ( this , e ) , r . cache = i . set ( u , e ) || i , e ) } if ( "function" != typeof n || null != t && "function" != typeof t ) throw new ei ( "Expected a function" ) ; return r . cache = new ( lu . Cache || Pn ) , r } function su ( n ) { if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return function ( ) { var t = arguments ; switch ( t . length ) { case 0 : return ! n . call ( this ) ; case 1 : return ! n . call ( this , t [ 0 ] ) ; case 2 : return ! n . call ( this , t [ 0 ] , t [ 1 ] ) ; case 3 : return ! n . call ( this , t [ 0 ] , t [ 1 ] , t [ 2 ] ) } return ! n . apply ( this , t ) } } function hu ( n , t ) { return n === t || n !== n && t !== t } function pu ( n ) { return null != n && yu ( n . length ) && ! gu ( n ) } function _u ( n ) { return xu ( n ) && pu ( n ) } function vu ( n ) { if ( ! xu ( n ) ) return ! 1 ; var t = zt ( n ) ; return "[object Error]" == t || "[object DOMException]" == t || "string" == typeof n . message && "string" == typeof n . name && ! wu ( n ) } function gu ( n ) { return ! ! bu ( n ) && ( "[object Function]" == ( n = zt ( n ) ) || "[object GeneratorFunction]" == n || "[object AsyncFunction]" == n || "[object Proxy]" == n ) } function du ( n ) { return "number" == typeof n && n == Ou ( n ) } function yu ( n ) { return "number" == typeof n && - 1 < n && 0 == n % 1 && 9007199254740991 >= n } function bu ( n ) { var t = typeof n ; return null != n && ( "object" == t || "function" == t ) } function xu ( n ) { return null != n && "object" == typeof n } function ju ( n ) { return "number" == typeof n || xu ( n ) && "[object Number]" == zt ( n ) } function wu ( n ) { return ! ( ! xu ( n ) || "[object Object]" != zt ( n ) ) && ( null === ( n = bi ( n ) ) || "function" == typeof ( n = ci . call ( n , "constructor" ) && n . constructor ) && n instanceof n && fi . call ( n ) == hi ) } function mu ( n ) { return "string" == typeof n || ! af ( n ) && xu ( n ) && "[object String]" == zt ( n ) } function Au ( n ) { return "symbol" == typeof n || xu ( n ) && "[object Symbol]" == zt ( n ) } function ku ( n ) { if ( ! n ) return [ ] ; if ( pu ( n ) ) return mu ( n ) ? $ ( n ) : Mr ( n ) ; if ( Ai && n [ Ai ] ) { n = n [ Ai ] ( ) ; for ( var t , r = [ ] ; ! ( t = n . next ( ) ) . done ; ) r . push ( t . value ) ; return r } return t = yo ( n ) , ( "[object Map]" == t ? L : "[object Set]" == t ? D : Du ) ( n ) } function Eu ( n ) { return n ? ( n = Iu ( n ) , n === N || n === - N ? 1.7976931348623157 e308 * ( 0 > n ? - 1 : 1 ) : n === n ? n : 0 ) : 0 === n ? n : 0 } function Ou ( n ) { n = Eu ( n ) ; var t = n % 1 ; return n === n ? t ? n - t : n : 0 } function Su ( n ) { return n ? gt ( Ou ( n ) , 0 , 4294967295 ) : 0 } function Iu ( n ) { if ( "number" == typeof n ) return n ; if ( Au ( n ) ) return P ; if ( bu ( n ) && ( n = "function" == typeof n . valueOf ? n . valueOf ( ) : n , n = bu ( n ) ? n + "" : n ) , "string" != typeof n ) return 0 === n ? n : + n ; n = n . replace ( cn , "" ) ; var t = bn . test ( n ) ; return t || jn . test ( n ) ? Fn ( n . slice ( 2 ) , t ? 2 : 8 ) : yn . test ( n ) ? P : + n } function Ru ( n ) { return Tr ( n , Uu ( n ) ) } function zu ( n ) { return null == n ? "" : jr ( n ) } function Wu ( n , t , r ) { return n = null == n ? F : It ( n , t ) , n === F ? r : n } function Bu ( n , t ) { return null != n && ke ( n , t , Lt ) } function Lu ( n ) { return pu ( n ) ? Gn ( n ) : Ht ( n ) } function Uu ( n ) { if ( pu ( n ) ) n = Gn ( n , ! 0 ) ; else if ( bu ( n ) ) { var t , r = Le ( n ) , e = [ ] ; for ( t in n ) ( "constructor" != t || ! r && ci . call ( n , t ) ) && e . push ( t ) ; n = e } else { if ( t = [ ] , null != n ) for ( r in ni ( n ) ) t . push ( r ) ; n = t } return n } function Cu ( n , t ) { if ( null == n ) return { } ; var r = l ( ye ( n ) , function ( n ) { return [ n ] } ) ; return t = je ( t ) , ur ( n , r , function ( n , r ) { return t ( n , r [ 0 ] ) } ) } function Du ( n ) { return null == n ? [ ] : I ( n , Lu ( n ) ) } function Mu ( n ) { return Nf ( zu ( n ) . toLowerCase ( ) ) } function Tu ( n ) { return ( n = zu ( n ) ) && n . replace ( mn , rt ) . replace ( Rn , "" ) } function $u ( n , t , r ) { return n = zu ( n ) , t = r ? F : t , t === F ? Ln . test ( n ) ? n . match ( Wn ) || [ ] : n . match ( _n ) || [ ] : n . match ( t ) || [ ] } function Fu ( n ) { return function ( ) { return n } } function Nu ( n ) { return n } f
return this [ r ] ( 1 ) . value ( ) [ 0 ] } } ) , u ( [ "initial" , "tail" ] , function ( n , t ) { var r = "drop" + ( t ? "" : "Right" ) ; Mn . prototype [ n ] = function ( ) { return this . _ _filtered _ _ ? new Mn ( this ) : this [ r ] ( 1 ) } } ) , Mn . prototype . compact = function ( ) { return this . filter ( Nu ) } , Mn . prototype . find = function ( n ) { return this . filter ( n ) . head ( ) } , Mn . prototype . findLast = function ( n ) { return this . reverse ( ) . find ( n ) } , Mn . prototype . invokeMap = lr ( function ( n , t ) { return "function" == typeof n ? new Mn ( this ) : this . map ( function ( r ) { return Dt ( r , n , t ) } ) } ) , Mn . prototype . reject = function ( n ) { return this . filter ( su ( je ( n ) ) ) } , Mn . prototype . slice = function ( n , t ) { n = Ou ( n ) ; var r = this ; return r . _ _filtered _ _ && ( 0 < n || 0 > t ) ? new Mn ( r ) : ( 0 > n ? r = r . takeRight ( - n ) : n && ( r = r . drop ( n ) ) , t !== F && ( t = Ou ( t ) , r = 0 > t ? r . dropRight ( - t ) : r . take ( t - n ) ) , r ) } , Mn . prototype . takeRightWhile = function ( n ) { return this . reverse ( ) . takeWhile ( n ) . reverse ( ) } , Mn . prototype . toArray = function ( ) { return this . take ( 4294967295 ) } , Et ( Mn . prototype , function ( n , t ) { var r = /^(?:filter|find|map|reject)|While$/ . test ( t ) , e = /^(?:head|last)$/ . test ( t ) , u = On [ e ? "take" + ( "last" == t ? "Right" : "" ) : t ] , i = e || /^find/ . test ( t ) ; u && ( On . prototype [ t ] = function ( ) { function t ( n ) { return n = u . apply ( On , s ( [ n ] , f ) ) , e && h ? n [ 0 ] : n } var o = this . _ _wrapped _ _ , f = e ? [ 1 ] : arguments , c = o instanceof Mn , a = f [ 0 ] , l = c || af ( o ) ; l && r && "function" == typeof a && 1 != a . length && ( c = l = ! 1 ) ; var h = this . _ _chain _ _ , p = ! ! this . _ _actions _ _ . length , a = i && ! h , c = c && ! p ; return ! i && l ? ( o = c ? o : new Mn ( this ) , o = n . apply ( o , f ) , o . _ _actions _ _ . push ( { func : nu , args : [ t ] , thisArg : F } ) , new zn ( o , h ) ) : a && c ? n . apply ( this , f ) : ( o = this . thru ( t ) , a ? e ? o . value ( ) [ 0 ] : o . value ( ) : o ) } ) } ) , u ( "pop push shift sort splice unshift" . split ( " " ) , function ( n ) { var t = ui [ n ] , r = /^(?:push|sort|unshift)$/ . test ( n ) ? "tap" : "thru" , e = /^(?:pop|shift)$/ . test ( n ) ; On . prototype [ n ] = function ( ) { var n = arguments ; if ( e && ! this . _ _chain _ _ ) { var u = this . value ( ) ; return t . apply ( af ( u ) ? u : [ ] , n ) } return this [ r ] ( function ( r ) { return t . apply ( af ( r ) ? r : [ ] , n ) } ) } } ) , Et ( Mn . prototype , function ( n , t ) { var r = On [ t ] ; if ( r ) { var e = r . name + "" ; ( Ji [ e ] || ( Ji [ e ] = [ ] ) ) . push ( { name : t , func : r } ) } } ) , Ji [ Xr ( F , 2 ) . name ] = [ { name : "wrapper" , func : F } ] , Mn . prototype . clone = function ( ) { var n = new Mn ( this . _ _wrapped _ _ ) ; return n . _ _actions _ _ = Mr ( this . _ _actions _ _ ) , n . _ _dir _ _ = this . _ _dir _ _ , n . _ _filtered _ _ = this . _ _filtered _ _ , n . _ _iteratees _ _ = Mr ( this . _ _iteratees _ _ ) , n . _ _takeCount _ _ = this . _ _takeCount _ _ , n . _ _views _ _ = Mr ( this . _ _views _ _ ) , n } , Mn . prototype . reverse = function ( ) { if ( this . _ _filtered _ _ ) { var n = new Mn ( this ) ; n . _ _dir _ _ = - 1 , n . _ _filtered _ _ = ! 0 } else n = this . clone ( ) , n . _ _dir _ _ *= - 1 ; return n } , Mn . prototype . value = function ( ) { var n , t = this . _ _wrapped _ _ . value ( ) , r = this . _ _dir _ _ , e = af ( t ) , u = 0 > r , i = e ? t . length : 0 ; n = i ; for ( var o = this . _ _views _ _ , f = 0 , c = - 1 , a = o . length ; ++ c < a ; ) { var l = o [ c ] , s = l . size ; switch ( l . type ) { case "drop" : f += s ; break ; case "dropRight" : n -= s ; break ; case "take" : n = Mi ( n , f + s ) ; break ; case "takeRight" : f = Di ( f , n - s ) } } if ( n = { start : f , end : n } , o = n . start , f = n . end , n = f - o , o = u ? f : o - 1 , f = this . _ _iteratees _ _ , c = f . length , a = 0 , l = Mi ( n , this . _ _takeCount _ _ ) , ! e || ! u && i == n && l == n ) return kr ( t , this . _ _actions _ _ ) ; e = [ ] ; n : for ( ; n -- && a < l ; ) { for ( o += r , u = - 1 , i = t [ o ] ; ++ u < c ; ) { var h = f [ u ] , s = h . type , h = ( 0 , h . iteratee ) ( i ) ; if ( 2 == s ) i = h ; else if ( ! h ) { if ( 1 == s ) continue n ; break n } } e [ a ++ ] = i } return e } , On . prototype . at = Fo , On . prototype . chain = function ( ) { return Xe ( this ) } , On . prototype . commit = function ( ) { return new zn ( this . value ( ) , this . _ _chain _ _ ) } , On . prototype . next = function ( ) { this . _ _values _ _ === F && ( this . _ _values _ _ = ku ( this . value ( ) ) ) ; var n = this . _ _index _ _ >= this . _ _values _ _ . length ; return { done : n , value : n ? F : this . _ _values _ _ [ this . _ _index _ _ ++ ] } } , On . prototype . plant = function ( n ) { for ( var t , r = this ; r instanceof Sn ; ) { var e = Pe ( r ) ; e . _ _index _ _ = 0 , e . _ _values _ _ = F , t ? u . _ _wrapped _ _ = e : t = e ; var u = e , r = r . _ _wrapped _ _ } return u . _ _wrapped _ _ = n , t } , On . prototype . reverse = function ( ) { var n = this . _ _wrapped _ _ ; return n instanceof Mn ? ( this . _ _actions _ _ . length && ( n = new Mn ( this ) ) , n = n . reverse ( ) , n . _ _actions _ _ . push ( { func : nu , args : [ Je ] , thisArg : F } ) , new zn ( n , this . _ _chain _ _ ) ) : this . thru ( Je ) } , On . prototype . toJSON = On . prototype . valueOf = On . prototype . value = function ( ) { return kr ( this . _ _wrapped _ _ , this . _ _actions _ _ ) } , On . prototype . first = On . prototype . head , Ai && ( On . prototype [ Ai ] = tu ) , On } ( ) ; "function" == typeof define && "object" == typeof define . amd && define . amd ? ( Zn . _ = it , define ( function ( ) { return it } ) ) : Vn ? ( ( Vn . exports = it ) . _ = it , qn . _