function simpleUpload ( e , l , n ) { function t ( ) { if ( "object" == typeof n && null !== n ) { if ( "boolean" == typeof n . forceIframe && ( U = n . forceIframe ) , "function" == typeof n . init && ( I = n . init ) , "function" == typeof n . start && ( L = n . start ) , "function" == typeof n . progress && ( q = n . progress ) , "function" == typeof n . success && ( W = n . success ) , "function" == typeof n . error && ( _ = n . error ) , "function" == typeof n . cancel && ( M = n . cancel ) , "function" == typeof n . complete && ( D = n . complete ) , "function" == typeof n . finish && ( N = n . finish ) , "string" == typeof n . hashWorker && "" != n . hashWorker && ( S = n . hashWorker ) , "function" == typeof n . hashComplete && ( z = n . hashComplete ) , "object" == typeof n . data && null !== n . data ) for ( var e in n . data ) F [ e ] = n . data [ e ] ; if ( "number" == typeof n . limit && y ( n . limit ) && n . limit > 0 && ( w = n . limit ) , "number" == typeof n . maxFileSize && y ( n . maxFileSize ) && n . maxFileSize > 0 && ( x = n . maxFileSize ) , "object" == typeof n . allowedExts && null !== n . allowedExts ) for ( var e in n . allowedExts ) j . push ( n . allowedExts [ e ] ) ; if ( "object" == typeof n . allowedTypes && null !== n . allowedTypes ) for ( var e in n . allowedTypes ) k . push ( n . allowedTypes [ e ] ) ; if ( "string" == typeof n . expect && "" != n . expect ) { var t = n . expect . toLowerCase ( ) , o = [ "auto" , "json" , "xml" , "html" , "script" , "text" ] ; for ( var e in o ) if ( o [ e ] == t ) { E = t ; break } } if ( "object" == typeof n . xhrFields && null !== n . xhrFields ) for ( var e in n . xhrFields ) T [ e ] = n . xhrFields [ e ] } if ( "object" == typeof l && null !== l && l instanceof jQuery ) { if ( ! ( l . length > 0 ) ) return ! 1 ; l = l . get ( 0 ) } if ( ! U && window . File && window . FileReader && window . FileList && window . Blob && ( "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? b = n . files : "object" == typeof l && null !== l && "object" == typeof l . files && null !== l . files && ( b = l . files ) ) , ( "object" != typeof l || null === l ) && null == b ) return ! 1 ; "object" == typeof n && null !== n && "string" == typeof n . name && "" != n . name ? C = n . name . replace ( /\[\s*\]/g , "[0]" ) : "object" == typeof l && null !== l && "string" == typeof l . name && "" != l . name && ( C = l . name . replace ( /\[\s*\]/g , "[0]" ) ) ; var r = 0 ; if ( null != b ? b . length > 0 && ( r = b . length > 1 && window . FormData && $ . ajaxSettings . xhr ( ) . upload ? w > 0 && b . length > w ? w : b . length : 1 ) : "" != l . value && ( r = 1 ) , r > 0 ) { if ( "object" == typeof l && null !== l ) { var i = $ ( l ) ; J = $ ( "<form>" ) . hide ( ) . attr ( "enctype" , "multipart/form-data" ) . attr ( "method" , "post" ) . appendTo ( "body" ) , i . after ( i . clone ( ! 0 ) . val ( "" ) ) . removeAttr ( "onchange" ) . off ( ) . removeAttr ( "id" ) . attr ( "name" , C ) . appendTo ( J ) } for ( var s = 0 ; r > s ; s ++ ) ! function ( e ) { R [ e ] = { state : 0 , hashWorker : null , xhr : null , iframe : null } , A [ e ] = { upload : { index : e , state : "init" , file : null != b ? b [ e ] : { name : l . value . split ( /(\\|\/)/g ) . pop ( ) } , cancel : function ( ) { if ( 0 == u ( e ) ) d ( e , 4 ) ; else { if ( 1 != u ( e ) ) return ! 1 ; d ( e , 4 ) , null != R [ e ] . hashWorker && ( R [ e ] . hashWorker . terminate ( ) , R [ e ] . hashWorker = null ) , null != R [ e ] . xhr && ( R [ e ] . xhr . abort ( ) , R [ e ] . xhr = null ) , null != R [ e ] . iframe && ( $ ( "iframe[name=simpleUpload_iframe_" + R [ e ] . iframe + "]" ) . attr ( "src" , "javascript:false;" ) , simpleUpload . dequeueIframe ( R [ e ] . iframe ) , R [ e ] . iframe = null ) , P ( e ) } return ! 0 } } } } ( s ) ; var p = H ( r ) ; if ( p !== ! 1 ) { var f = r ; if ( "number" == typeof p && y ( p ) && p >= 0 && r > p ) { f = p ; for ( var m = f ; r > m ; m ++ ) d ( m , 4 ) } for ( var c = [ ] , v = 0 ; f > v ; v ++ ) X ( v , A [ v ] . upload . file ) !== ! 1 && ( c [ c . length ] = v ) ; c . length > 0 ? ( B = c . length , simpleUpload . queueUpload ( c , function ( e ) { a ( e ) } ) , simpleUpload . uploadNext ( ) ) : Z ( ) } else { for ( var m in A ) d ( m , 4 ) ; Z ( ) } } } 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 ] . h
} ) } ) . call ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t ) { 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 ] , n === 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 ) { var o = e [ t . num ] ; return o } 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" === ( "undefined" == typeof 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 . app
if ( a [ s . length ] = 255 , k ) { var c = new k ( [ e . buffer , a . buffer , t ] ) ; r ( null , c ) } } ) } c ( t , n , function ( t , e ) { return r ( new k ( e ) ) } ) } , 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 , o >= 128 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 224 == ( 240 & t ) ) { if ( e = p ( ) , r = p ( ) , o = ( 15 & t ) << 12 | e << 6 | r , o >= 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 , o >= 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 d = "object" == typeof e && e , y = ( "object" == typeof t && t && t . exports == d && t , "object" == typeof o && o ) ; y . global !== y && y . window !== y || ( i = y ) ; var g , m , v , b = String . fromCharCode , w = { version : "1.0.0" , encode : h , decode : l } ; n = function ( ) { return w } . call ( e , r , e , t ) , ! ( void 0 !== n && ( 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 . l
var b ; for ( b in a ) return ! 1 ; return ! 0 } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j [ k . call ( a ) ] || "object" : typeof a } , globalEval : function ( a ) { p ( a ) } , camelCase : function ( a ) { return a . replace ( t , "ms-" ) . replace ( u , v ) } , nodeName : function ( a , b ) { 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 , "" ) } , 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 d , e = [ ] , f = 0 , g = a . length , h = ! c ; f < g ; f ++ ) d = ! b ( a [ f ] , f ) , d !== 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 ++ ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; else for ( f in a ) e = b ( a [ f ] , f , c ) , null != e && 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 ma ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return "input" === c && b . type === a } } function na ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return ( "input" === c || "button" === c ) && b . type === a } } 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 && "undefined" != typeof 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 . no
} , promise : function ( a , b ) { var c , d = 1 , e = r . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; for ( "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; g -- ; ) c = V . get ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; 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 "undefined" != typeof 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 , e = ( ( r . event . special [ g . o
return y } , getJSON : function ( a , b , c ) { return r . get ( a , b , c , "json" ) } , getScript : function ( a , b ) { return r . get ( a , void 0 , b , "script" ) } } ) , r . each ( [ "get" , "post" ] , function ( a , b ) { r [ b ] = function ( a , c , d , e ) { return r . isFunction ( c ) && ( e = e || d , d = c , c = void 0 ) , r . ajax ( r . extend ( { url : a , type : b , dataType : e , data : c , success : d } , 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
} function Ft ( e , t ) { e . textContent = t } function Ht ( e , t , n ) { e . setAttribute ( t , n ) } function Ut ( e , t ) { var n = e . data . ref ; if ( n ) { var i = e . context , o = e . componentInstance || e . elm , a = i . $refs ; t ? Array . isArray ( a [ n ] ) ? r ( a [ n ] , o ) : a [ n ] === o && ( a [ n ] = void 0 ) : e . data . refInFor ? Array . isArray ( a [ n ] ) && a [ n ] . indexOf ( o ) < 0 ? a [ n ] . push ( o ) : a [ n ] = [ o ] : a [ n ] = o } } function Bt ( e ) { return null == e } function Vt ( e ) { return null != e } function zt ( e , t ) { return e . key === t . key && e . tag === t . tag && e . isComment === t . isComment && ! e . data == ! t . data } function Jt ( e , t , n ) { var r , i , o = { } ; for ( r = t ; r <= n ; ++ r ) i = e [ r ] . key , Vt ( i ) && ( o [ i ] = r ) ; return o } function Kt ( e ) { function t ( e ) { return new vo ( O . tagName ( e ) . toLowerCase ( ) , { } , [ ] , void 0 , e ) } function r ( e , t ) { function n ( ) { 0 === -- n . listeners && i ( e ) } return n . listeners = t , n } function i ( e ) { var t = O . parentNode ( e ) ; t && O . removeChild ( t , e ) } function a ( e , t , n , r , i ) { if ( e . isRootInsert = ! i , ! s ( e , t , n , r ) ) { var o = e . data , a = e . children , c = e . tag ; Vt ( c ) ? ( e . elm = e . ns ? O . createElementNS ( e . ns , c ) : O . createElement ( c , e ) , v ( e ) , f ( e , a , t ) , Vt ( o ) && d ( e , t ) , l ( n , e . elm , r ) ) : e . isComment ? ( e . elm = O . createComment ( e . text ) , l ( n , e . elm , r ) ) : ( e . elm = O . createTextNode ( e . text ) , l ( n , e . elm , r ) ) } } function s ( e , t , n , r ) { var i = e . data ; if ( Vt ( i ) ) { var o = Vt ( e . componentInstance ) && i . keepAlive ; if ( Vt ( i = i . hook ) && Vt ( i = i . init ) && i ( e , ! 1 , n , r ) , Vt ( e . componentInstance ) ) return c ( e , t ) , o && u ( e , t , n , r ) , ! 0 } } function c ( e , t ) { e . data . pendingInsert && t . push . apply ( t , e . data . pendingInsert ) , e . elm = e . componentInstance . $el , p ( e ) ? ( d ( e , t ) , v ( e ) ) : ( Ut ( e ) , t . push ( e ) ) } function u ( e , t , n , r ) { for ( var i , o = e ; o . componentInstance ; ) if ( o = o . componentInstance . _vnode , Vt ( i = o . data ) && Vt ( i = i . transition ) ) { for ( i = 0 ; i < k . activate . length ; ++ i ) k . activate [ i ] ( ua , o ) ; t . push ( o ) ; break } l ( n , e . elm , r ) } function l ( e , t , n ) { e && ( n ? O . insertBefore ( e , t , n ) : O . appendChild ( e , t ) ) } function f ( e , t , n ) { if ( Array . isArray ( t ) ) for ( var r = 0 ; r < t . length ; ++ r ) a ( t [ r ] , n , e . elm , null , ! 0 ) ; else o ( e . text ) && O . appendChild ( e . elm , O . createTextNode ( e . text ) ) } function p ( e ) { for ( ; e . componentInstance ; ) e = e . componentInstance . _vnode ; return Vt ( e . tag ) } function d ( e , t ) { for ( var n = 0 ; n < k . create . length ; ++ n ) k . create [ n ] ( ua , e ) ; C = e . data . hook , Vt ( C ) && ( C . create && C . create ( ua , e ) , C . insert && t . push ( e ) ) } function v ( e ) { for ( var t , n = e ; n ; ) Vt ( t = n . context ) && Vt ( t = t . $options . _scopeId ) && O . setAttribute ( e . elm , t , "" ) , n = n . parent ; Vt ( t = _o ) && t !== e . context && Vt ( t = t . $options . _scopeId ) && O . setAttribute ( e . elm , t , "" ) } function h ( e , t , n , r , i , o ) { for ( ; r <= i ; ++ r ) a ( n [ r ] , o , e , t ) } function m ( e ) { var t , n , r = e . data ; if ( Vt ( r ) ) for ( Vt ( t = r . hook ) && Vt ( t = t . destroy ) && t ( e ) , t = 0 ; t < k . destroy . length ; ++ t ) k . destroy [ t ] ( e ) ; if ( Vt ( t = e . children ) ) for ( n = 0 ; n < e . children . length ; ++ n ) m ( e . children [ n ] ) } function g ( e , t , n , r ) { for ( ; n <= r ; ++ n ) { var o = t [ n ] ; Vt ( o ) && ( Vt ( o . tag ) ? ( y ( o ) , m ( o ) ) : i ( o . elm ) ) } } function y ( e , t ) { if ( t || Vt ( e . data ) ) { var n = k . remove . length + 1 ; for ( t ? t . listeners += n : t = r ( e . elm , n ) , Vt ( C = e . componentInstance ) && Vt ( C = C . _vnode ) && Vt ( C . data ) && y ( C , t ) , C = 0 ; C < k . remove . length ; ++ C ) k . remove [ C ] ( e , t ) ; Vt ( C = e . data . hook ) && Vt ( C = C . remove ) ? C ( e , t ) : t ( ) } else i ( e . elm ) } function _ ( e , t , n , r , i ) { for ( var o , s , c , u , l = 0 , f = 0 , p = t . length - 1 , d = t [ 0 ] , v = t [ p ] , m = n . length - 1 , y = n [ 0 ] , _ = n [ m ] , $ = ! i ; l <= p && f <= m ; ) Bt ( d ) ? d = t [ ++ l ] : Bt ( v ) ? v = t [ -- p ] : zt ( d , y ) ? ( b ( d , y , r ) , d = t [ ++ l ] , y = n [ ++ f ] ) : zt ( v , _ ) ? ( b ( v , _ , r ) , v = t [ -- p ] , _ = n [ -- m ] ) : zt ( d , _ ) ? ( b ( d , _ , r ) , $ && O . insertBefore ( e , d . elm , O . nextSibling ( v . elm ) ) , d = t [ ++ l ] , _ = n [ -- m ] ) : zt ( v , y ) ? ( b ( v , y , r ) , $ && O . insertBefore ( e , v . elm , d . elm ) , v = t [ -- p ] , y = n [ ++ f ] ) : ( Bt ( o ) && ( o = Jt ( t , l , p ) ) , s = Vt ( y . key ) ? o [ y . key ] : null , Bt ( s ) ? ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) : ( c = t [ s ] , zt ( c , y ) ? ( b ( c , y , r ) , t [ s ] = void 0 , $ && O . insertBefore ( e , y . elm , d . elm ) , y = n [ ++ f ] ) : ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) ) ) ; l > p ? ( u = Bt ( n [ m + 1 ] ) ? null : n [ m + 1 ] . elm , h ( e , u , n , f , m , r ) ) : f > m && g ( e , t , l , p ) } function b ( e , t , n , r ) { if ( e !== t ) { if ( t . isStatic && e . isStatic && t . key === e . key && ( t . isCloned || t . isOnce ) ) return t . elm = e . elm , void ( t . componentInstance = e . componentInstance ) ; var i , o = t . data , a = Vt ( o ) ; a && Vt ( i = o . hook ) && Vt ( i = i . prepatch ) && i ( e , t ) ; var s = t . elm = e . elm , c = e . children , u = t . children ; if ( a && p ( t ) ) { for ( i = 0 ; i < k . update . length ; ++ i ) k . update [ i ] ( e , t ) ; Vt ( i = o . hook ) && Vt ( i = i . update ) && i ( e , t ) } Bt ( t . text ) ? Vt ( c ) && Vt ( u ) ? c !== u && _ ( s , c , u , n , r ) : Vt ( u ) ? ( Vt ( e . text ) && O . setTextContent ( s , "" ) , h ( s , null , u , 0 , u . length - 1 , n ) ) : Vt ( c ) ? g ( s , c , 0 , c . length - 1 ) : Vt ( e . text ) && O . setTextContent ( s , "" ) : e . text !== t . text && O . setTextContent ( s , t . text ) , a && Vt ( i = o . hook ) && Vt ( i = i . postpatch ) && i ( e , t ) } } function $ ( e , t , n
s . render = yi ( a . render , c ) ; var u = a . staticRenderFns . length ; s . staticRenderFns = new Array ( u ) ; for ( var l = 0 ; l < u ; l ++ ) s . staticRenderFns [ l ] = yi ( a . staticRenderFns [ l ] , c ) ; return r [ o ] = s } var r = Object . create ( null ) ; return { compile : t , compileToFunctions : n } } function bi ( e , t ) { var n = ( t . warn || rn , fn ( e , "class" ) ) ; n && ( e . staticClass = JSON . stringify ( n ) ) ; var r = ln ( e , "class" , ! 1 ) ; r && ( e . classBinding = r ) } function $i ( e ) { var t = "" ; return e . staticClass && ( t += "staticClass:" + e . staticClass + "," ) , e . classBinding && ( t += "class:" + e . classBinding + "," ) , t } function wi ( e , t ) { var n = ( t . warn || rn , fn ( e , "style" ) ) ; n && ( e . staticStyle = JSON . stringify ( $a ( n ) ) ) ; var r = ln ( e , "style" , ! 1 ) ; r && ( e . styleBinding = r ) } function Ci ( e ) { var t = "" ; return e . staticStyle && ( t += "staticStyle:" + e . staticStyle + "," ) , e . styleBinding && ( t += "style:(" + e . styleBinding + ")," ) , t } function xi ( e , t ) { t . value && an ( e , "textContent" , "_s(" + t . value + ")" ) } function ki ( e , t ) { t . value && an ( e , "innerHTML" , "_s(" + t . value + ")" ) } function Ai ( e ) { if ( e . outerHTML ) return e . outerHTML ; var t = document . createElement ( "div" ) ; return t . appendChild ( e . cloneNode ( ! 0 ) ) , t . innerHTML } var Oi , Si , Ti = n ( "slot,component" , ! 0 ) , Ei = Object . prototype . hasOwnProperty , ji = /-(\w)/g , Ni = a ( function ( e ) { return e . replace ( ji , function ( e , t ) { return t ? t . toUpperCase ( ) : "" } ) } ) , Ii = a ( function ( e ) { return e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) } ) , Li = /([^-])([A-Z])/g , Di = a ( function ( e ) { return e . replace ( Li , "$1-$2" ) . replace ( Li , "$1-$2" ) . toLowerCase ( ) } ) , Mi = Object . prototype . toString , Pi = "[object Object]" , Ri = function ( ) { return ! 1 } , Fi = function ( e ) { return e } , Hi = { optionMergeStrategies : Object . create ( null ) , silent : ! 1 , productionTip : ! 1 , devtools : ! 1 , performance : ! 1 , errorHandler : null , ignoredElements : [ ] , keyCodes : Object . create ( null ) , isReservedTag : Ri , isUnknownElement : Ri , getTagNamespace : d , parsePlatformTagName : Fi , mustUseProp : Ri , _assetTypes : [ "component" , "directive" , "filter" ] , _lifecycleHooks : [ "beforeCreate" , "created" , "beforeMount" , "mounted" , "beforeUpdate" , "updated" , "beforeDestroy" , "destroyed" , "activated" , "deactivated" ] , _maxUpdateCount : 100 } , Ui = "__proto__" in { } , Bi = "undefined" != typeof window , Vi = Bi && window . navigator . userAgent . toLowerCase ( ) , zi = Vi && /msie|trident/ . test ( Vi ) , Ji = Vi && Vi . indexOf ( "msie 9.0" ) > 0 , Ki = Vi && Vi . indexOf ( "edge/" ) > 0 , qi = Vi && Vi . indexOf ( "android" ) > 0 , Wi = Vi && /iphone|ipad|ipod|ios/ . test ( Vi ) , Zi = Vi && /chrome\/\d+/ . test ( Vi ) && ! Ki , Gi = function ( ) { return void 0 === Oi && ( Oi = ! Bi && "undefined" != typeof global && "server" === global . process . env . VUE _ENV ) , Oi } , Yi = Bi && window . _ _VUE _DEVTOOLS _GLOBAL _HOOK _ _ , Qi = "undefined" != typeof Symbol && y ( Symbol ) && "undefined" != typeof Reflect && y ( Reflect . ownKeys ) , Xi = function ( ) { function e ( ) { r = ! 1 ; var e = n . slice ( 0 ) ; n . length = 0 ; for ( var t = 0 ; t < e . length ; t ++ ) e [ t ] ( ) } var t , n = [ ] , r = ! 1 ; if ( "undefined" != typeof Promise && y ( Promise ) ) { var i = Promise . resolve ( ) , o = function ( e ) { console . error ( e ) } ; t = function ( ) { i . then ( e ) . catch ( o ) , Wi && setTimeout ( d ) } } else if ( "undefined" == typeof MutationObserver || ! y ( MutationObserver ) && "[object MutationObserverConstructor]" !== MutationObserver . toString ( ) ) t = function ( ) { setTimeout ( e , 0 ) } ; else { var a = 1 , s = new MutationObserver ( e ) , c = document . createTextNode ( String ( a ) ) ; s . observe ( c , { characterData : ! 0 } ) , t = function ( ) { a = ( a + 1 ) % 2 , c . data = String ( a ) } } return function ( e , i ) { var o ; if ( n . push ( function ( ) { e && e . call ( i ) , o && o ( i ) } ) , r || ( r = ! 0 , t ( ) ) , ! e && "undefined" != typeof Promise ) return new Promise ( function ( e ) { o = e } ) } } ( ) ; Si = "undefined" != typeof Set && y ( Set ) ? Set : function ( ) { function e ( ) { this . set = Object . create ( null ) } return e . prototype . has = function ( e ) { return this . set [ e ] === ! 0 } , e . prototype . add = function ( e ) { this . set [ e ] = ! 0 } , e . prototype . clear = function ( ) { this . set = Object . create ( null ) } , e } ( ) ; var eo = Object . freeze ( { } ) , to = /[^\w.$]/ , no = d , ro = 0 , io = function ( ) { this . id = ro ++ , this . subs = [ ] } ; io . prototype . addSub = function ( e ) { this . subs . push ( e ) } , io . prototype . removeSub = function ( e ) { r ( this . subs , e ) } , io . prototype . depend = function ( ) { io . target && io . target . addDep ( this ) } , io . prototype . notify = function ( ) { for ( var e = this . subs . slice ( ) , t = 0 , n = e . length ; t < n ; t ++ ) e [ t ] . update ( ) } , io . target = null ; var oo = [ ] , ao = Array . prototype , so = Object . create ( ao ) ; [ "push" , "pop" , "shift" , "unshift" , "splice" , "sort" , "reverse" ] . forEach ( function ( e ) { var t = ao [ e ] ; b ( so , e , function ( ) { for ( var n = arguments , r = arguments . length , i = new Array ( r ) ; r -- ; ) i [ r ] = n [ r ] ; var o , a = t . apply ( this , i ) ,
return e . apply ( null , t ) } } } ] ) } ) , ! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : a ( "object" == typeof module && module . exports ? require ( "jquery" ) : jQuery ) } ( function ( a ) { var b = "2.1.2" , c = { } , d = { exclude : [ ] , excludeWithin : [ ] , offset : 0 , direction : "top" , delegateSelector : null , scrollElement : null , scrollTarget : null , beforeScroll : function ( ) { } , afterScroll : function ( ) { } , easing : "swing" , speed : 400 , autoCoefficient : 2 , preventDefault : ! 0 } , e = function ( b ) { var c = [ ] , d = ! 1 , e = b . dir && "left" === b . dir ? "scrollLeft" : "scrollTop" ; return this . each ( function ( ) { var b = a ( this ) ; if ( this !== document && this !== window ) return ! document . scrollingElement || this !== document . documentElement && this !== document . body ? void ( b [ e ] ( ) > 0 ? c . push ( this ) : ( b [ e ] ( 1 ) , d = b [ e ] ( ) > 0 , d && c . push ( this ) , b [ e ] ( 0 ) ) ) : ( c . push ( document . scrollingElement ) , ! 1 ) } ) , c . length || this . each ( function ( ) { this === document . documentElement && "smooth" === a ( this ) . css ( "scrollBehavior" ) && ( c = [ this ] ) , c . length || "BODY" !== this . nodeName || ( c = [ this ] ) } ) , "first" === b . el && c . length > 1 && ( c = [ c [ 0 ] ] ) , c } , 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 ( b = b || { } , "options" === b ) return c ? this . each ( function ( ) { var b = a ( this ) , d = a . extend ( b . data ( "ssOpts" ) || { } , c ) ; a ( this ) . data ( "ssOpts" , d ) } ) : this . first ( ) . data ( "ssOpts" ) ; var d = a . extend ( { } , a . fn . smoothScroll . defaults , b ) , e = function ( b ) { var c = function ( a ) { return a . replace ( /(:|\.|\/)/g , "\\$1" ) } , e = this , f = a ( this ) , g = a . extend ( { } , d , f . data ( "ssOpts" ) || { } ) , h = d . exclude , i = g . excludeWithin , j = 0 , k = 0 , l = ! 0 , m = { } , n = a . smoothScroll . filterPath ( location . pathname ) , o = a . smoothScroll . filterPath ( e . pathname ) , p = location . hostname === e . hostname || ! e . hostname , q = g . scrollTarget || o === n , r = c ( e . hash ) ; if ( r && ! a ( r ) . length && ( l = ! 1 ) , g . scrollTarget || p && q && r ) { for ( ; l && j < h . length ; ) f . is ( c ( h [ j ++ ] ) ) && ( l = ! 1 ) ; for ( ; l && k < i . length ; ) f . closest ( i [ k ++ ] ) . length && ( l = ! 1 ) } else l = ! 1 ; l && ( g . preventDefault && b . preventDefault ( ) , a . extend ( m , g , { scrollTarget : g . scrollTarget || r , link : e } ) , a . smoothScroll ( m ) ) } ; return null !== b . delegateSelector ? this . off ( "click.smoothscroll" , b . delegateSelector ) . on ( "click.smoothscroll" , b . delegateSelector , e ) : this . off ( "click.smoothscroll" ) . on ( "click.smoothscroll" , e ) , this } } ) ; 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 = b , a . smoothScroll . filterPath = function ( a ) { return a = a || "" , a . replace ( /^\// , "" ) . replace ( /(?:index|default).[a-zA-Z]{3,4}$/ , "" ) . replace ( /\/$/ , "" ) } , a . fn . smoothScroll . defaults = d } ) , simpleUpload . maxUploads = 10 , simpleUpload . activeUploads = 0 , simpleUpload . uploads = [ ] , simpleUpload . iframes = { } , simpleUpload . iframeCount = 0 , simpleUpload . queueUpload = function ( e , l ) { simpleUpload . uploads [ simpleUpload . uploads . length ] = { uploads : e , callback : l } } , simpleUpload . uploadNext = function ( ) { if ( simpleUpload . uploads . length > 0 && simpleUpload . activeUploads < simpleUpload . maxUploads ) { var e = simpleUpload . uploads [ 0 ] , l = e . callback , n = e . uploads . splice ( 0 , 1 ) [ 0 ] ; 0 == e . uploads . length && simpleUpload . uploads . splice ( 0 , 1 ) , simpleUpload . activeUploads ++ , l ( n ) , simpleUpload . uploadNext ( ) } }
if ( r [ a . selector ] ) { x = e ( ".context-menu-list" ) . filter ( ":visible" ) , x . length && x . data ( ) . contextMenuRoot . $trigger . is ( a . selector ) && x . trigger ( "contextmenu:hide" , { force : ! 0 } ) ; try { l [ r [ a . selector ] ] . $menu && l [ r [ a . selector ] ] . $menu . remove ( ) , delete l [ r [ a . selector ] ] } catch ( e ) { l [ r [ a . selector ] ] = null } o . off ( r [ a . selector ] ) } } else o . off ( ".contextMenu .contextMenuAutoHide" ) , e . each ( l , function ( t , n ) { e ( n . context ) . off ( n . ns ) } ) , r = { } , l = { } , c = 0 , s = ! 1 , e ( "#context-menu-layer, .context-menu-list" ) . remove ( ) ; break ; case "html5" : ( ! e . support . htmlCommand && ! e . support . htmlMenuitem || "boolean" == typeof n && n ) && e ( 'menu[type="context"]' ) . each ( function ( ) { this . id && e . contextMenu ( { selector : "[contextmenu=" + this . id + "]" , 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 . h
e . display . lineSpace . insertBefore ( n , e . display . lineSpace . firstChild ) } function r ( e ) { o ( e ) && n ( e ) } function i ( e ) { var r = e . getWrapperElement ( ) , i = o ( e ) ; r . className = r . className . replace ( " CodeMirror-empty" , "" ) + ( i ? " CodeMirror-empty" : "" ) , i ? n ( e ) : t ( e ) } function o ( e ) { return 1 === e . lineCount ( ) && "" === e . getLine ( 0 ) } e . defineOption ( "placeholder" , "" , function ( n , o , a ) { var l = a && a != e . Init ; if ( o && ! l ) n . on ( "blur" , r ) , n . on ( "change" , i ) , n . on ( "swapDoc" , i ) , i ( n ) ; else if ( ! o && l ) { n . off ( "blur" , r ) , n . off ( "change" , i ) , n . off ( "swapDoc" , i ) , t ( n ) ; var s = n . getWrapperElement ( ) ; s . className = s . className . replace ( " CodeMirror-empty" , "" ) } o && ! n . hasFocus ( ) && r ( n ) } ) } ) } , { "../../lib/codemirror" : 10 } ] , 7 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/ , n = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/ , r = /[*+-]\s/ ; e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , a = [ ] , l = 0 ; l < o . length ; l ++ ) { var s = o [ l ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , f = 0 !== c . quote , h = i . getLine ( s . line ) , d = t . exec ( h ) ; if ( ! o [ l ] . empty ( ) || ! u && ! f || ! d ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( h ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } ) , a [ l ] = "\n" ; else { var p = d [ 1 ] , m = d [ 5 ] , g = r . test ( d [ 2 ] ) || d [ 2 ] . indexOf ( ">" ) >= 0 ? d [ 2 ] : parseInt ( d [ 3 ] , 10 ) + 1 + d [ 4 ] ; a [ l ] = "\n" + p + g + m } } i . replaceSelections ( a ) } } ) } , { "../../lib/codemirror" : 10 } ] , 8 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . overlayMode = function ( t , n , r ) { return { startState : function ( ) { return { base : e . startState ( t ) , overlay : e . startState ( n ) , basePos : 0 , baseCur : null , overlayPos : 0 , overlayCur : null , streamSeen : null } } , copyState : function ( r ) { return { base : e . copyState ( t , r . base ) , overlay : e . copyState ( n , r . overlay ) , basePos : r . basePos , baseCur : null , overlayPos : r . overlayPos , overlayCur : null } } , token : function ( e , i ) { return ( e != i . streamSeen || Math . min ( i . basePos , i . overlayPos ) < e . start ) && ( i . streamSeen = e , i . basePos = i . overlayPos = e . start ) , e . start == i . basePos && ( i . baseCur = t . token ( e , i . base ) , i . basePos = e . pos ) , e . start == i . overlayPos && ( e . pos = e . start , i . overlayCur = n . token ( e , i . overlay ) , i . overlayPos = e . pos ) , e . pos = Math . min ( i . basePos , i . overlayPos ) , null == i . overlayCur ? i . baseCur : null != i . baseCur && i . overlay . combineTokens || r && null == i . overlay . combineTokens ? i . baseCur + " " + i . overlayCur : i . overlayCur } , indent : t . indent && function ( e , n ) { return t . indent ( e . base , n ) } , electricChars : t . electricChars , innerMode : function ( e ) { return { state : e . base , mode : t } } , blankLine : function ( e ) { t . blankLine && t . blankLine ( e . base ) , n . blankLine && n . blankLine ( e . overlay ) } } } } ) } , { "../../lib/codemirror" : 10 } ] , 9 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { e . operation ( function ( ) { a ( e ) } ) } function n ( e ) { e . state . markedSelection . length && e . operation ( function ( ) { i ( e ) } ) } function r ( e , t , n , r ) { if ( 0 != c ( t , n ) ) for ( var i = e . state . markedSelection , o = e . state . markedSelectionStyle , a = t . line ; ; ) { var u = a == t . line ? t : s ( a , 0 ) , f = a + l , h = f >= n . line , d = h ? n : s ( f , 0 ) , p = e . markText ( u , d , { className : o } ) ; if ( null == r ? i . push ( p ) : i . splice ( r ++ , 0 , p ) , h ) break ; a = f } } function i ( e ) { for ( var t = e . state . markedSelection , n = 0 ; n < t . length ; ++ n ) t [ n ] . clear ( ) ; t . length = 0 } function o ( e ) { i ( e ) ; for ( var t = e . listSelections ( ) , n = 0 ; n < t . length ; n ++ ) r ( e , t [ n ] . from ( ) , t [ n ] . to ( ) ) } function a ( e ) { if ( ! e . somethingSelected ( ) ) return i ( e ) ; if ( e . listSelections ( ) . length > 1 ) return o ( e ) ; var t = e . getCursor ( "start" ) , n = e . getCursor ( "end" ) , a = e . state . markedSelection ; if ( ! a . length ) return r ( e , t , n ) ; var s = a [ 0 ] . find ( ) , u = a [ a . length - 1 ] . find ( ) ; if ( ! s || ! u || n . line - t . line < l || c ( t , u . to ) >= 0 || c ( n , s . from ) <= 0 ) return o ( e ) ; for ( ; c ( t , s . from ) > 0 ; ) a . shift ( ) . clear ( ) , s = a [ 0 ] . find ( ) ; for ( c ( t , s . from ) < 0 && ( s . to . line - t . line < l ? ( a . shift ( ) . clear ( ) , r ( e , t , s . to , 0 ) ) : r ( e , t , s . from , 0 ) ) ; c ( n , u . to ) < 0 ; ) a . pop ( ) . clear ( ) , u = a [ a . length - 1 ] . find ( ) ; c ( n , u . to ) > 0 && ( n . line - u . from . line < l ?
var d = Zr ( a , f . line ) , p = Zr ( a , h . line ) , m = yr ( d ) == yr ( p ) , g = i ( f . line , f . ch , m ? d . text . length + 1 : null ) . end , v = i ( h . line , m ? 0 : null , h . ch ) . start ; m && ( g . top < v . top - 2 ? ( r ( g . right , g . top , null , g . bottom ) , r ( c , v . top , v . left , v . bottom ) ) : r ( g . right , g . top , v . left - g . right , g . bottom ) ) , g . bottom < v . top && r ( c , g . bottom , null , v . top ) } n . appendChild ( l ) } function Be ( e ) { if ( e . state . focused ) { var t = e . display ; clearInterval ( t . blinker ) ; var n = ! 0 ; t . cursorDiv . style . visibility = "" , e . options . cursorBlinkRate > 0 ? t . blinker = setInterval ( function ( ) { t . cursorDiv . style . visibility = ( n = ! n ) ? "" : "hidden" } , e . options . cursorBlinkRate ) : e . options . cursorBlinkRate < 0 && ( t . cursorDiv . style . visibility = "hidden" ) } } function _e ( e , t ) { e . doc . mode . startState && e . doc . frontier < e . display . viewTo && e . state . highlight . set ( t , Bi ( Fe , e ) ) } function Fe ( e ) { var t = e . doc ; if ( t . frontier < t . first && ( t . frontier = t . first ) , ! ( t . frontier >= e . display . viewTo ) ) { var n = + new Date + e . options . workTime , r = sa ( t . mode , je ( e , t . frontier ) ) , i = [ ] ; t . iter ( t . frontier , Math . min ( t . first + t . size , e . display . viewTo + 500 ) , function ( o ) { if ( t . frontier >= e . display . viewFrom ) { var a = o . styles , l = o . text . length > e . options . maxHighlightLength , s = Rr ( e , o , l ? sa ( t . mode , r ) : r , ! 0 ) ; o . styles = s . styles ; var c = o . styleClasses , u = s . classes ; u ? o . styleClasses = u : c && ( o . styleClasses = null ) ; for ( var f = ! a || a . length != o . styles . length || c != u && ( ! c || ! u || c . bgClass != u . bgClass || c . textClass != u . textClass ) , h = 0 ; ! f && h < a . length ; ++ h ) f = a [ h ] != o . styles [ h ] ; f && i . push ( t . frontier ) , o . stateAfter = l ? r : sa ( t . mode , r ) } else o . text . length <= e . options . maxHighlightLength && Hr ( e , o . text , r ) , o . stateAfter = t . frontier % 5 == 0 ? sa ( t . mode , r ) : null ; return ++ t . frontier , + new Date > n ? ( _e ( e , e . options . workDelay ) , ! 0 ) : void 0 } ) , i . length && At ( e , function ( ) { for ( var t = 0 ; t < i . length ; t ++ ) Ht ( e , i [ t ] , "text" ) } ) } } function ze ( e , t , n ) { for ( var r , i , o = e . doc , a = n ? - 1 : t - ( e . doc . mode . innerMode ? 1e3 : 100 ) , l = t ; l > a ; -- l ) { if ( l <= o . first ) return o . first ; var s = Zr ( o , l - 1 ) ; if ( s . stateAfter && ( ! n || l <= o . frontier ) ) return l ; var c = Fa ( s . text , null , e . options . tabSize ) ; ( null == i || r > c ) && ( i = l - 1 , r = c ) } return i } function je ( e , t , n ) { var r = e . doc , i = e . display ; if ( ! r . mode . startState ) return ! 0 ; var o = ze ( e , t , n ) , a = o > r . first && Zr ( r , o - 1 ) . stateAfter ; return a = a ? sa ( r . mode , a ) : ca ( r . mode ) , r . iter ( o , t , function ( n ) { Hr ( e , n . text , a ) ; var l = o == t - 1 || o % 5 == 0 || o >= i . viewFrom && o < i . viewTo ; n . stateAfter = l ? sa ( r . mode , a ) : null , ++ o } ) , n && ( r . frontier = o ) , a } function Ue ( e ) { return e . lineSpace . offsetTop } function qe ( e ) { return e . mover . offsetHeight - e . lineSpace . offsetHeight } function Ge ( e ) { if ( e . cachedPaddingH ) return e . cachedPaddingH ; var t = qi ( e . measure , ji ( "pre" , "x" ) ) , n = window . getComputedStyle ? window . getComputedStyle ( t ) : t . currentStyle , r = { left : parseInt ( n . paddingLeft ) , right : parseInt ( n . paddingRight ) } ; return isNaN ( r . left ) || isNaN ( r . right ) || ( e . cachedPaddingH = r ) , r } function Ye ( e ) { return Da - e . display . nativeBarWidth } function $e ( e ) { return e . display . scroller . clientWidth - Ye ( e ) - e . display . barWidth } function Ve ( e ) { return e . display . scroller . clientHeight - Ye ( e ) - e . display . barHeight } function Ke ( e , t , n ) { var r = e . options . lineWrapping , i = r && $e ( e ) ; if ( ! t . measure . heights || r && t . measure . width != i ) { var o = t . measure . heights = [ ] ; if ( r ) { t . measure . width = i ; for ( var a = t . text . firstChild . getClientRects ( ) , l = 0 ; l < a . length - 1 ; l ++ ) { var s = a [ l ] , c = a [ l + 1 ] ; Math . abs ( s . bottom - c . bottom ) > 2 && o . push ( ( s . bottom + c . top ) / 2 - n . top ) } } o . push ( n . bottom - n . top ) } } function Xe ( e , t , n ) { if ( e . line == t ) return { map : e . measure . map , cache : e . measure . cache } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( e . rest [ r ] == t ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( ti ( e . rest [ r ] ) > n ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] , before : ! 0 } } function Ze ( e , t ) { t = yr ( t ) ; var n = ti ( t ) , r = e . display . externalMeasured = new Pt ( e . doc , t , n ) ; r . lineN = n ; var i = r . built = Br ( e , r ) ; return r . text = i . pre , qi ( e . display . lineMeasure , i . pre ) , r } function Je ( e , t , n , r ) { return tt ( e , et ( e , t ) , n , r ) } function Qe ( e , t ) { if ( t >= e . display . viewFrom && t < e . display . viewTo ) return e . display . view [ Bt ( e , t ) ] ; var n = e . display . externalMeasured ; return n && t >= n . lineN && t < n . lineN + n . size ? n : void 0 } function et ( e , t ) { var n = ti ( t ) , r = Qe ( e , n ) ; r && ! r . text ? r = null : r && r . changes && ( D ( e , r , n , P ( e ) ) , e . curOp . forceUpdate = ! 0 ) , r || ( r = Ze ( e , t ) ) ; var i = Xe ( r , t , n ) ; return { line : t , view : r , rect : null , map : i . map , cache : i . cache , before : i . before , hasHeights : ! 1 } } function tt ( e , t
r . push ( e . history ) ) , En ( e , t , null , or ( e , t ) ) } ) } } function Nn ( e , t , n ) { if ( ! e . cm || ! e . cm . state . suppressEdits ) { for ( var r , i = e . history , o = e . sel , a = "undo" == t ? i . done : i . undone , l = "undo" == t ? i . undone : i . done , s = 0 ; s < a . length && ( r = a [ s ] , n ? ! r . ranges || r . equals ( e . sel ) : r . ranges ) ; s ++ ) ; if ( s != a . length ) { for ( i . lastOrigin = i . lastSelOrigin = null ; r = a . pop ( ) , r . ranges ; ) { if ( hi ( r , l ) , n && ! r . equals ( e . sel ) ) return void Te ( e , r , { clearRedo : ! 1 } ) ; o = r } var c = [ ] ; hi ( o , l ) , l . push ( { changes : c , generation : i . generation } ) , i . generation = r . generation || ++ i . maxGeneration ; for ( var u = Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) , s = r . changes . length - 1 ; s >= 0 ; -- s ) { var f = r . changes [ s ] ; if ( f . origin = t , u && ! Ln ( e , f , ! 1 ) ) return void ( a . length = 0 ) ; c . push ( ai ( e , f ) ) ; var h = s ? kn ( e , f ) : Ii ( a ) ; En ( e , f , h , lr ( e , f ) ) , ! s && e . cm && e . cm . scrollIntoView ( { from : f . from , to : Qo ( f ) } ) ; var d = [ ] ; Kr ( e , function ( e , t ) { t || - 1 != Pi ( d , e . history ) || ( xi ( e . history , f ) , d . push ( e . history ) ) , En ( e , f , null , lr ( e , f ) ) } ) } } } } function An ( e , t ) { if ( 0 != t && ( e . first += t , e . sel = new ue ( Ri ( e . sel . ranges , function ( e ) { return new fe ( Bo ( e . anchor . line + t , e . anchor . ch ) , Bo ( e . head . line + t , e . head . ch ) ) } ) , e . sel . primIndex ) , e . cm ) ) { Dt ( e . cm , e . first , e . first - t , t ) ; for ( var n = e . cm . display , r = n . viewFrom ; r < n . viewTo ; r ++ ) Ht ( e . cm , r , "gutter" ) } } function En ( e , t , n , r ) { if ( e . cm && ! e . cm . curOp ) return Et ( e . cm , En ) ( e , t , n , r ) ; if ( t . to . line < e . first ) return void An ( e , t . text . length - 1 - ( t . to . line - t . from . line ) ) ; if ( ! ( t . from . line > e . lastLine ( ) ) ) { if ( t . from . line < e . first ) { var i = t . text . length - 1 - ( e . first - t . from . line ) ; An ( e , i ) , t = { from : Bo ( e . first , 0 ) , to : Bo ( t . to . line + i , t . to . ch ) , text : [ Ii ( t . text ) ] , origin : t . origin } } var o = e . lastLine ( ) ; t . to . line > o && ( t = { from : t . from , to : Bo ( o , Zr ( e , o ) . text . length ) , text : [ t . text [ 0 ] ] , origin : t . origin } ) , t . removed = Jr ( e , t . from , t . to ) , n || ( n = kn ( e , t ) ) , e . cm ? On ( e . cm , t , r ) : Yr ( e , t , r ) , Me ( e , n , Wa ) } } function On ( e , t , n ) { var r = e . doc , i = e . display , a = t . from , l = t . to , s = ! 1 , c = a . line ; e . options . lineWrapping || ( c = ti ( yr ( Zr ( r , a . line ) ) ) , r . iter ( c , l . line + 1 , function ( e ) { return e == i . maxLine ? ( s = ! 0 , ! 0 ) : void 0 } ) ) , r . sel . contains ( t . from , t . to ) > - 1 && Mi ( e ) , Yr ( r , t , n , o ( e ) ) , e . options . lineWrapping || ( r . iter ( c , a . line + t . text . length , function ( e ) { var t = f ( e ) ; t > i . maxLineLength && ( i . maxLine = e , i . maxLineLength = t , i . maxLineChanged = ! 0 , s = ! 1 ) } ) , s && ( e . curOp . updateMaxLine = ! 0 ) ) , r . frontier = Math . min ( r . frontier , a . line ) , _e ( e , 400 ) ; var u = t . text . length - ( l . line - a . line ) - 1 ; t . full ? Dt ( e ) : a . line != l . line || 1 != t . text . length || Gr ( e . doc , t ) ? Dt ( e , a . line , l . line + 1 , u ) : Ht ( e , a . line , "text" ) ; var h = Ni ( e , "changes" ) , d = Ni ( e , "change" ) ; if ( d || h ) { var p = { from : a , to : l , text : t . text , removed : t . removed , origin : t . origin } ; d && Ci ( e , "change" , e , p ) , h && ( e . curOp . changeObjs || ( e . curOp . changeObjs = [ ] ) ) . push ( p ) } e . display . selForContextMenu = null } function In ( e , t , n , r , i ) { if ( r || ( r = n ) , _o ( r , n ) < 0 ) { var o = r ; r = n , n = o } "string" == typeof t && ( t = e . splitLines ( t ) ) , Tn ( e , { from : n , to : r , text : t , origin : i } ) } function Pn ( e , t ) { if ( ! Ti ( e , "scrollCursorIntoView" ) ) { var n = e . display , r = n . sizer . getBoundingClientRect ( ) , i = null ; if ( t . top + r . top < 0 ? i = ! 0 : t . bottom + r . top > ( window . innerHeight || document . documentElement . clientHeight ) && ( i = ! 1 ) , null != i && ! Mo ) { var o = ji ( "div" , " " , null , "position: absolute; top: " + ( t . top - n . viewOffset - Ue ( e . display ) ) + "px; height: " + ( t . bottom - t . top + Ye ( e ) + n . barHeight ) + "px; left: " + t . left + "px; width: 2px;" ) ; e . display . lineSpace . appendChild ( o ) , o . scrollIntoView ( i ) , e . display . lineSpace . removeChild ( o ) } } } function Rn ( e , t , n , r ) { null == r && ( r = 0 ) ; for ( var i = 0 ; 5 > i ; i ++ ) { var o = ! 1 , a = dt ( e , t ) , l = n && n != t ? dt ( e , n ) : a , s = Hn ( e , Math . min ( a . left , l . left ) , Math . min ( a . top , l . top ) - r , Math . max ( a . left , l . left ) , Math . max ( a . bottom , l . bottom ) + r ) , c = e . doc . scrollTop , u = e . doc . scrollLeft ; if ( null != s . scrollTop && ( rn ( e , s . scrollTop ) , Math . abs ( e . doc . scrollTop - c ) > 1 && ( o = ! 0 ) ) , null != s . scrollLeft && ( on ( e , s . scrollLeft ) , Math . abs ( e . doc . scrollLeft - u ) > 1 && ( o = ! 0 ) ) , ! o ) break } return a } function Dn ( e , t , n , r , i ) { var o = Hn ( e , t , n , r , i ) ; null != o . scrollTop && rn ( e , o . scrollTop ) , null != o . scrollLeft && on ( e , o . scrollLeft ) } function Hn ( e , t , n , r , i ) { var o = e . display , a = yt ( e . display ) ; 0 > n && ( n = 0 ) ; var l = e . curOp && null != e . curOp . scrollTop ? e . curOp . scrollTop : o . scroller . scrollTop , s = Ve ( e ) , c = { } ; i - n > s && ( i = n + s ) ; var u = e . doc . height + qe ( o ) , f = a > n , h = i > u - a ; if ( l > n ) c . scrollTop = f ? 0 : n ; else if ( i > l + s ) { var d = Math . min ( n , ( h ? u : i ) - s ) ; d != l && ( c . scrollTop = d ) } var p = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . s
return n . setAttribute ( "cm-text" , "" ) , n } function Ji ( e ) { if ( null != Xa ) return Xa ; var t = qi ( e , document . createTextNode ( "AخA" ) ) , n = qa ( t , 0 , 1 ) . getBoundingClientRect ( ) ; if ( ! n || n . left == n . right ) return ! 1 ; var r = qa ( t , 1 , 2 ) . getBoundingClientRect ( ) ; return Xa = r . right - n . right < 3 } function Qi ( e ) { if ( null != il ) return il ; var t = qi ( e , ji ( "span" , "x" ) ) , n = t . getBoundingClientRect ( ) , r = qa ( t , 0 , 1 ) . getBoundingClientRect ( ) ; return il = Math . abs ( n . left - r . left ) > 1 } function eo ( e , t , n , r ) { if ( ! e ) return r ( t , n , "ltr" ) ; for ( var i = ! 1 , o = 0 ; o < e . length ; ++ o ) { var a = e [ o ] ; ( a . from < n && a . to > t || t == n && a . to == t ) && ( r ( Math . max ( a . from , t ) , Math . min ( a . to , n ) , 1 == a . level ? "rtl" : "ltr" ) , i = ! 0 ) } i || r ( t , n , "ltr" ) } function to ( e ) { return e . level % 2 ? e . to : e . from } function no ( e ) { return e . level % 2 ? e . from : e . to } function ro ( e ) { var t = ii ( e ) ; return t ? to ( t [ 0 ] ) : 0 } function io ( e ) { var t = ii ( e ) ; return t ? no ( Ii ( t ) ) : e . text . length } function oo ( e , t ) { var n = Zr ( e . doc , t ) , r = yr ( n ) ; r != n && ( t = ti ( r ) ) ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? io ( r ) : ro ( r ) : 0 ; return Bo ( t , o ) } function ao ( e , t ) { for ( var n , r = Zr ( e . doc , t ) ; n = gr ( r ) ; ) r = n . find ( 1 , ! 0 ) . line , t = null ; var i = ii ( r ) , o = i ? i [ 0 ] . level % 2 ? ro ( r ) : io ( r ) : r . text . length ; return Bo ( null == t ? ti ( r ) : t , o ) } function lo ( e , t ) { var n = oo ( e , t . line ) , r = Zr ( e . doc , n . line ) , i = ii ( r ) ; if ( ! i || 0 == i [ 0 ] . level ) { var o = Math . max ( 0 , r . text . search ( /\S/ ) ) , a = t . line == n . line && t . ch <= o && t . ch ; return Bo ( n . line , a ? 0 : o ) } return n } function so ( e , t , n ) { var r = e [ 0 ] . level ; return t == r || n != r && n > t } function co ( e , t ) { al = null ; for ( var n , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; if ( i . from < t && i . to > t ) return r ; if ( i . from == t || i . to == t ) { if ( null != n ) return so ( e , i . level , e [ n ] . level ) ? ( i . from != i . to && ( al = n ) , r ) : ( i . from != i . to && ( al = r ) , n ) ; n = r } } return n } function uo ( e , t , n , r ) { if ( ! r ) return t + n ; do t += n ; while ( t > 0 && zi ( e . text . charAt ( t ) ) ) ; return t } function fo ( e , t , n , r ) { var i = ii ( e ) ; if ( ! i ) return ho ( e , t , n , r ) ; for ( var o = co ( i , t ) , a = i [ o ] , l = uo ( e , t , a . level % 2 ? - n : n , r ) ; ; ) { if ( l > a . from && l < a . to ) return l ; if ( l == a . from || l == a . to ) return co ( i , l ) == o ? l : ( a = i [ o += n ] , n > 0 == a . level % 2 ? a . to : a . from ) ; if ( a = i [ o += n ] , ! a ) return null ; l = n > 0 == a . level % 2 ? uo ( e , a . to , - 1 , r ) : uo ( e , a . from , 1 , r ) } } function ho ( e , t , n , r ) { var i = t + n ; if ( r ) for ( ; i > 0 && zi ( e . text . charAt ( i ) ) ; ) i += n ; return 0 > i || i > e . text . length ? null : i } var po = navigator . userAgent , mo = navigator . platform , go = /gecko\/\d/i . test ( po ) , vo = /MSIE \d/ . test ( po ) , yo = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/ . exec ( po ) , xo = vo || yo , bo = xo && ( vo ? document . documentMode || 6 : yo [ 1 ] ) , wo = /WebKit\// . test ( po ) , ko = wo && /Qt\/\d+\.\d+/ . test ( po ) , So = /Chrome\// . test ( po ) , Co = /Opera\// . test ( po ) , Lo = /Apple Computer/ . test ( navigator . vendor ) , To = /Mac OS X 1\d\D([8-9]|\d\d)\D/ . test ( po ) , Mo = /PhantomJS/ . test ( po ) , No = /AppleWebKit/ . test ( po ) && /Mobile\/\w+/ . test ( po ) , Ao = No || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i . test ( po ) , Eo = No || /Mac/ . test ( mo ) , Oo = /\bCrOS\b/ . test ( po ) , Io = /win/i . test ( mo ) , Po = Co && po . match ( /Version\/(\d*\.\d*)/ ) ; Po && ( Po = Number ( Po [ 1 ] ) ) , Po && Po >= 15 && ( Co = ! 1 , wo = ! 0 ) ; var Ro = Eo && ( ko || Co && ( null == Po || 12.11 > Po ) ) , Do = go || xo && bo >= 9 , Ho = ! 1 , Wo = ! 1 ; m . prototype = Wi ( { update : function ( e ) { var t = e . scrollWidth > e . clientWidth + 1 , n = e . scrollHeight > e . clientHeight + 1 , r = e . nativeBarWidth ; if ( n ) { this . vert . style . display = "block" , this . vert . style . bottom = t ? r + "px" : "0" ; var i = e . viewHeight - ( t ? r : 0 ) ; this . vert . firstChild . style . height = Math . max ( 0 , e . scrollHeight - e . clientHeight + i ) + "px" } else this . vert . style . display = "" , this . vert . firstChild . style . height = "0" ; if ( t ) { this . horiz . style . display = "block" , this . horiz . style . right = n ? r + "px" : "0" , this . horiz . style . left = e . barLeft + "px" ; var o = e . viewWidth - e . barLeft - ( n ? r : 0 ) ; this . horiz . firstChild . style . width = e . scrollWidth - e . clientWidth + o + "px" } else this . horiz . style . display = "" , this . horiz . firstChild . style . width = "0" ; return ! this . checkedZeroWidth && e . clientHeight > 0 && ( 0 == r && this . zeroWidthHack ( ) , this . checkedZeroWidth = ! 0 ) , { right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Eo && ! To ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , thi
var i = t [ r ] ; i instanceof Array && ( i = i . concat ( [ ] ) ) , n [ r ] = i } return n } , ca = e . startState = function ( e , t , n ) { return ! e . startState || e . startState ( t , n ) } ; e . innerMode = function ( e , t ) { for ( ; e . innerMode ; ) { var n = e . innerMode ( t ) ; if ( ! n || n . mode == e ) break ; t = n . state , e = n . mode } return n || { mode : e , state : t } } ; var ua = e . commands = { selectAll : function ( e ) { e . setSelection ( Bo ( e . firstLine ( ) , 0 ) , Bo ( e . lastLine ( ) ) , Wa ) } , singleSelection : function ( e ) { e . setSelection ( e . getCursor ( "anchor" ) , e . getCursor ( "head" ) , Wa ) } , killLine : function ( e ) { jn ( e , function ( t ) { if ( t . empty ( ) ) { var n = Zr ( e . doc , t . head . line ) . text . length ; return t . head . ch == n && t . head . line < e . lastLine ( ) ? { from : t . head , to : Bo ( t . head . line + 1 , 0 ) } : { from : t . head , to : Bo ( t . head . line , n ) } } return { from : t . from ( ) , to : t . to ( ) } } ) } , deleteLine : function ( e ) { jn ( e , function ( t ) { return { from : Bo ( t . from ( ) . line , 0 ) , to : me ( e . doc , Bo ( t . to ( ) . line + 1 , 0 ) ) } } ) } , delLineLeft : function ( e ) { jn ( e , function ( e ) { return { from : Bo ( e . from ( ) . line , 0 ) , to : e . from ( ) } } ) } , delWrappedLineLeft : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return { from : r , to : t . from ( ) } } ) } , delWrappedLineRight : function ( e ) { jn ( e , function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) ; return { from : t . from ( ) , to : r } } ) } , undo : function ( e ) { e . undo ( ) } , redo : function ( e ) { e . redo ( ) } , undoSelection : function ( e ) { e . undoSelection ( ) } , redoSelection : function ( e ) { e . redoSelection ( ) } , goDocStart : function ( e ) { e . extendSelection ( Bo ( e . firstLine ( ) , 0 ) ) } , goDocEnd : function ( e ) { e . extendSelection ( Bo ( e . lastLine ( ) ) ) } , goLineStart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return oo ( e , t . head . line ) } , { origin : "+move" , bias : 1 } ) } , goLineStartSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return lo ( e , t . head ) } , { origin : "+move" , bias : 1 } ) } , goLineEnd : function ( e ) { e . extendSelectionsBy ( function ( t ) { return ao ( e , t . head . line ) } , { origin : "+move" , bias : - 1 } ) } , goLineRight : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) } , _a ) } , goLineLeft : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : 0 , top : n } , "div" ) } , _a ) } , goLineLeftSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return r . ch < e . getLine ( r . line ) . search ( /\S/ ) ? lo ( e , t . head ) : r } , _a ) } , goLineUp : function ( e ) { e . moveV ( - 1 , "line" ) } , goLineDown : function ( e ) { e . moveV ( 1 , "line" ) } , goPageUp : function ( e ) { e . moveV ( - 1 , "page" ) } , goPageDown : function ( e ) { e . moveV ( 1 , "page" ) } , goCharLeft : function ( e ) { e . moveH ( - 1 , "char" ) } , goCharRight : function ( e ) { e . moveH ( 1 , "char" ) } , goColumnLeft : function ( e ) { e . moveH ( - 1 , "column" ) } , goColumnRight : function ( e ) { e . moveH ( 1 , "column" ) } , goWordLeft : function ( e ) { e . moveH ( - 1 , "word" ) } , goGroupRight : function ( e ) { e . moveH ( 1 , "group" ) } , goGroupLeft : function ( e ) { e . moveH ( - 1 , "group" ) } , goWordRight : function ( e ) { e . moveH ( 1 , "word" ) } , delCharBefore : function ( e ) { e . deleteH ( - 1 , "char" ) } , delCharAfter : function ( e ) { e . deleteH ( 1 , "char" ) } , delWordBefore : function ( e ) { e . deleteH ( - 1 , "word" ) } , delWordAfter : function ( e ) { e . deleteH ( 1 , "word" ) } , delGroupBefore : function ( e ) { e . deleteH ( - 1 , "group" ) } , delGroupAfter : function ( e ) { e . deleteH ( 1 , "group" ) } , indentAuto : function ( e ) { e . indentSelection ( "smart" ) } , indentMore : function ( e ) { e . indentSelection ( "add" ) } , indentLess : function ( e ) { e . indentSelection ( "subtract" ) } , insertTab : function ( e ) { e . replaceSelection ( "\t" ) } , insertSoftTab : function ( e ) { for ( var t = [ ] , n = e . listSelections ( ) , r = e . options . tabSize , i = 0 ; i < n . length ; i ++ ) { var o = n [ i ] . from ( ) , a = Fa ( e . getLine ( o . line ) , o . ch , r ) ; t . push ( Oi ( r - a % r ) ) } e . replaceSelections ( t ) } , defaultTab : function ( e ) { e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Zr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new Bo ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new Bo ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , Bo ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var a = Zr ( e . doc , i . line - 1 ) . text ; a && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + a . charAt ( a . length - 1 ) , Bo ( i . lin
w . unshift ( new t ( 0 , 0 , b [ 0 ] . length ) ) ) , 1 == Ii ( w ) . level && ( b = n . match ( /\s+$/ ) ) && ( Ii ( w ) . to -= b [ 0 ] . length , w . push ( new t ( 0 , u - b [ 0 ] . length , u ) ) ) , 2 == w [ 0 ] . level && w . unshift ( new t ( 1 , w [ 0 ] . to , w [ 0 ] . to ) ) , w [ 0 ] . level != Ii ( w ) . level && w . push ( new t ( w [ 0 ] . level , u , u ) ) , w } } ( ) ; return e . version = "5.15.2" , e } ) } , { } ] , 11 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../markdown/markdown" ) , t ( "../../addon/mode/overlay" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^((?:(?:aaas?|about|acap|adiumxtra|af[ps]|aim|apt|attachment|aw|beshare|bitcoin|bolo|callto|cap|chrome(?:-extension)?|cid|coap|com-eventbrite-attendee|content|crid|cvs|data|dav|dict|dlna-(?:playcontainer|playsingle)|dns|doi|dtn|dvb|ed2k|facetime|feed|file|finger|fish|ftp|geo|gg|git|gizmoproject|go|gopher|gtalk|h323|hcp|https?|iax|icap|icon|im|imap|info|ipn|ipp|irc[6s]?|iris(?:\.beep|\.lwz|\.xpc|\.xpcs)?|itms|jar|javascript|jms|keyparc|lastfm|ldaps?|magnet|mailto|maps|market|message|mid|mms|ms-help|msnim|msrps?|mtqp|mumble|mupdate|mvn|news|nfs|nih?|nntp|notes|oid|opaquelocktoken|palm|paparazzi|platform|pop|pres|proxy|psyc|query|res(?:ource)?|rmi|rsync|rtmp|rtsp|secondlife|service|session|sftp|sgn|shttp|sieve|sips?|skype|sm[bs]|snmp|soap\.beeps?|soldat|spotify|ssh|steam|svn|tag|teamspeak|tel(?:net)?|tftp|things|thismessage|tip|tn3270|tv|udp|unreal|urn|ut2004|vemmi|ventrilo|view-source|webcal|wss?|wtai|wyciwyg|xcon(?:-userid)?|xfire|xmlrpc\.beeps?|xmpp|xri|ymsgr|z39\.50[rs]?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i ; e . defineMode ( "gfm" , function ( n , r ) { function i ( e ) { return e . code = ! 1 , null } var o = 0 , a = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , n ) { if ( n . combineTokens = null , n . codeBlock ) return e . match ( /^```+/ ) ? ( n . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( n . code = ! 1 ) , e . sol ( ) && e . match ( /^```+/ ) ) return e . skipToEnd ( ) , n . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var i = e . pos ; e . eatWhile ( "`" ) ; var a = 1 + e . pos - i ; return n . code ? a === o && ( n . code = ! 1 ) : ( o = a , n . code = ! 0 ) , null } if ( n . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return n . ateSpace = ! 0 , null ; if ( ( e . sol ( ) || n . ateSpace ) && ( n . ateSpace = ! 1 , r . gitHubSpice !== ! 1 ) ) { if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return n . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return n . combineTokens = ! 0 , "link" } return e . match ( t ) && "](" != e . string . slice ( e . start - 2 , e . start ) && ( 0 == e . start || /\W/ . test ( e . string . charAt ( e . start - 1 ) ) ) ? ( n . combineTokens = ! 0 , "link" ) : ( e . next ( ) , null ) } , blankLine : i } , l = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : "```" , strikethrough : ! 0 } ; for ( var s in r ) l [ s ] = r [ s ] ; return l . name = "markdown" , e . overlayMode ( e . getMode ( n , l ) , a ) } , "markdown" ) , e . defineMIME ( "text/x-gfm" , "gfm" ) } ) } , { "../../addon/mode/overlay" : 8 , "../../lib/codemirror" : 10 , "../markdown/markdown" : 12 } ] , 12 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../xml/xml" ) , t ( "../meta" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../xml/xml" , "../meta" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "markdown" , function ( t , n ) { function r ( n ) { if ( e . findModeByName ) { var r = e . findModeByName ( n ) ; r && ( n = r . mime || r . mimes [ 0 ] ) } var i = e . getMode ( t , n ) ; return "null" == i . name ? null : i } function i ( e , t , n ) { return t . f = t . inline = n , n ( e , t ) } function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function a ( e ) { return ! e || ! /\S/ . test ( e . string ) } function l ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , k && e . f == c && ( e . f = p , e . block = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( t , o ) { var l = t . sol ( ) , s = o . list !== ! 1 , c = o . indentedCode ; o . indentedCode = ! 1 , s && ( o . indentationDiff >= 0 ? ( o . indentationDiff < 4 && ( o . indentation -= o . indentationDiff ) , o . list = null ) : o . indentation > 0 ? o . list =
for ( t = Math . abs ( t ) , isNaN ( t ) || t === 1 / 0 ? ( l = isNaN ( t ) ? 1 : 0 , a = u ) : ( a = Math . floor ( Math . log ( t ) / Math . LN2 ) , t * ( s = Math . pow ( 2 , - a ) ) < 1 && ( a -- , s *= 2 ) , t += a + f >= 1 ? h / s : h * Math . pow ( 2 , 1 - f ) , t * s >= 2 && ( a ++ , s /= 2 ) , a + f >= u ? ( l = 0 , a = u ) : a + f >= 1 ? ( l = ( t * s - 1 ) * Math . pow ( 2 , i ) , a += f ) : ( l = t * Math . pow ( 2 , f - 1 ) * Math . pow ( 2 , i ) , a = 0 ) ) ; i >= 8 ; e [ n + d ] = 255 & l , d += p , l /= 256 , i -= 8 ) ; for ( a = a << i | l , c += i ; c > 0 ; e [ n + d ] = 255 & a , d += p , a /= 256 , c -= 8 ) ; e [ n + d - p ] |= 128 * m } } , { } ] , 16 : [ function ( e , t , n ) { var r = { } . toString ; t . exports = Array . isArray || function ( e ) { return "[object Array]" == r . call ( e ) } } , { } ] , 17 : [ function ( t , n , r ) { ( function ( t ) { ( function ( ) { function t ( e ) { this . tokens = [ ] , this . tokens . links = { } , this . options = e || h . defaults , this . rules = d . normal , this . options . gfm && ( this . options . tables ? this . rules = d . tables : this . rules = d . gfm ) } function i ( e , t ) { if ( this . options = t || h . defaults , this . links = e , this . rules = p . normal , this . renderer = this . options . renderer || new o , this . renderer . options = this . options , ! this . links ) throw new Error ( "Tokens array requires a `links` property." ) ; this . options . gfm ? this . options . breaks ? this . rules = p . breaks : this . rules = p . gfm : this . options . pedantic && ( this . rules = p . pedantic ) } function o ( e ) { this . options = e || { } } function a ( e ) { this . tokens = [ ] , this . token = null , this . options = e || h . defaults , this . options . renderer = this . options . renderer || new o , this . renderer = this . options . renderer , this . renderer . options = this . options } function l ( e , t ) { return e . replace ( t ? /&/g : /&(?!#?\w+;)/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) . replace ( /"/g , """ ) . replace ( /'/g , "'" ) } function s ( e ) { return e . replace ( /&([#\w]+);/g , function ( e , t ) { return t = t . toLowerCase ( ) , "colon" === t ? ":" : "#" === t . charAt ( 0 ) ? "x" === t . charAt ( 1 ) ? String . fromCharCode ( parseInt ( t . substring ( 2 ) , 16 ) ) : String . fromCharCode ( + t . substring ( 1 ) ) : "" } ) } function c ( e , t ) { return e = e . source , t = t || "" , function n ( r , i ) { return r ? ( i = i . source || i , i = i . replace ( /(^|[^\[])\^/g , "$1" ) , e = e . replace ( r , i ) , n ) : new RegExp ( e , t ) } } function u ( ) { } function f ( e ) { for ( var t , n , r = 1 ; r < arguments . length ; r ++ ) { t = arguments [ r ] ; for ( n in t ) Object . prototype . hasOwnProperty . call ( t , n ) && ( e [ n ] = t [ n ] ) } return e } function h ( e , n , r ) { if ( r || "function" == typeof n ) { r || ( r = n , n = null ) , n = f ( { } , h . defaults , n || { } ) ; var i , o , s = n . highlight , c = 0 ; try { i = t . lex ( e , n ) } catch ( u ) { return r ( u ) } o = i . length ; var d = function ( e ) { if ( e ) return n . highlight = s , r ( e ) ; var t ; try { t = a . parse ( i , n ) } catch ( o ) { e = o } return n . highlight = s , e ? r ( e ) : r ( null , t ) } ; if ( ! s || s . length < 3 ) return d ( ) ; if ( delete n . highlight , ! o ) return d ( ) ; for ( ; c < i . length ; c ++ ) ! function ( e ) { return "code" !== e . type ? -- o || d ( ) : s ( e . text , e . lang , function ( t , n ) { return t ? d ( t ) : null == n || n === e . text ? -- o || d ( ) : ( e . text = n , e . escaped = ! 0 , void ( -- o || d ( ) ) ) } ) } ( i [ c ] ) } else try { return n && ( n = f ( { } , h . defaults , n ) ) , a . parse ( t . lex ( e , n ) , n ) } catch ( u ) { if ( u . message += "\nPlease report this to https://github.com/chjj/marked." , ( n || h . defaults ) . silent ) return "<p>An error occured:</p><pre>" + l ( u . message + "" , ! 0 ) + "</pre>" ; throw u } } var d = { newline : /^\n+/ , code : /^( {4}[^\n]+\n*)+/ , fences : u , hr : /^( *[-*_]){3,} *(?:\n+|$)/ , heading : /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/ , nptable : u , lheading : /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/ , blockquote : /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/ , list : /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/ , html : /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/ , def : /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/ , table : u , paragraph : /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/ , text : /^[^\n]+/ } ; d . bullet = /(?:[*+-]|\d+\.)/ , d . item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/ , d . item = c ( d . item , "gm" ) ( /bull/g , d . bullet ) ( ) , d . list = c ( d . list ) ( /bull/g , d . bullet ) ( "hr" , "\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))" ) ( "def" , "\\n+(?=" + d . def . source + ")" ) ( ) , d . blockquote = c ( d . blockquote ) ( "def" , d . def ) ( ) , d . _tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b" , d . html = c ( d . html ) ( "comment" , /<!--[\s\S]*?-->/ ) ( "closed" , /<(tag)[\s\S]+?<\/\1>/ ) ( "closing" , /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/ ) ( /tag/g , d . _tag ) ( ) , d . paragraph = c ( d . paragraph ) ( "hr" , d . hr ) ( "heading" , d . heading ) ( "lheading" , d . lheading ) ( "blockquote" , d . blockquote ) ( "tag" , "<" + d . _tag ) ( "def" , d . def ) ( ) , d . normal = f ( { } , d ) , d . gfm = f ( { }
l . ch += o . length , l !== s && ( s . ch += o . length ) ) , e . setSelection ( l , s ) , e . focus ( ) } } function O ( e , t , n ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { for ( var r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = r . line ; o <= i . line ; o ++ ) ! function ( r ) { var i = e . getLine ( r ) , o = i . search ( /[^#]/ ) ; i = void 0 !== t ? 0 >= o ? "bigger" == t ? "###### " + i : "# " + i : 6 == o && "smaller" == t ? i . substr ( 7 ) : 1 == o && "bigger" == t ? i . substr ( 2 ) : "bigger" == t ? i . substr ( 1 ) : "#" + i : 1 == n ? 0 >= o ? "# " + i : o == n ? i . substr ( o + 1 ) : "# " + i . substr ( o + 1 ) : 2 == n ? 0 >= o ? "## " + i : o == n ? i . substr ( o + 1 ) : "## " + i . substr ( o + 1 ) : 0 >= o ? "### " + i : o == n ? i . substr ( o + 1 ) : "### " + i . substr ( o + 1 ) , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( o ) ; e . focus ( ) } } function I ( e , t ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) { for ( var n = l ( e ) , r = e . getCursor ( "start" ) , i = e . getCursor ( "end" ) , o = { quote : /^(\s*)\>\s+/ , "unordered-list" : /^(\s*)(\*|\-|\+)\s+/ , "ordered-list" : /^(\s*)\d+\.\s+/ } , a = { quote : "> " , "unordered-list" : "* " , "ordered-list" : "1. " } , s = r . line ; s <= i . line ; s ++ ) ! function ( r ) { var i = e . getLine ( r ) ; i = n [ t ] ? i . replace ( o [ t ] , "$1" ) : a [ t ] + i , e . replaceRange ( i , { line : r , ch : 0 } , { line : r , ch : 99999999999999 } ) } ( s ) ; e . focus ( ) } } function P ( e , t , n , r ) { if ( ! /editor-preview-active/ . test ( e . codemirror . getWrapperElement ( ) . lastChild . className ) ) { r = "undefined" == typeof r ? n : r ; var i , o = e . codemirror , a = l ( o ) , s = n , c = r , u = o . getCursor ( "start" ) , f = o . getCursor ( "end" ) ; a [ t ] ? ( i = o . getLine ( u . line ) , s = i . slice ( 0 , u . ch ) , c = i . slice ( u . ch ) , "bold" == t ? ( s = s . replace ( /(\*\*|__)(?![\s\S]*(\*\*|__))/ , "" ) , c = c . replace ( /(\*\*|__)/ , "" ) ) : "italic" == t ? ( s = s . replace ( /(\*|_)(?![\s\S]*(\*|_))/ , "" ) , c = c . replace ( /(\*|_)/ , "" ) ) : "strikethrough" == t && ( s = s . replace ( /(\*\*|~~)(?![\s\S]*(\*\*|~~))/ , "" ) , c = c . replace ( /(\*\*|~~)/ , "" ) ) , o . replaceRange ( s + c , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , "bold" == t || "strikethrough" == t ? ( u . ch -= 2 , u !== f && ( f . ch -= 2 ) ) : "italic" == t && ( u . ch -= 1 , u !== f && ( f . ch -= 1 ) ) ) : ( i = o . getSelection ( ) , "bold" == t ? ( i = i . split ( "**" ) . join ( "" ) , i = i . split ( "__" ) . join ( "" ) ) : "italic" == t ? ( i = i . split ( "*" ) . join ( "" ) , i = i . split ( "_" ) . join ( "" ) ) : "strikethrough" == t && ( i = i . split ( "~~" ) . join ( "" ) ) , o . replaceSelection ( s + i + c ) , u . ch += n . length , f . ch = u . ch + i . length ) , o . setSelection ( u , f ) , o . focus ( ) } } function R ( e ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) for ( var t , n = e . getCursor ( "start" ) , r = e . getCursor ( "end" ) , i = n . line ; i <= r . line ; i ++ ) t = e . getLine ( i ) , t = t . replace ( /^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/ , "" ) , e . replaceRange ( t , { line : i , ch : 0 } , { line : i , ch : 99999999999999 } ) } function D ( e , t ) { for ( var n in t ) t . hasOwnProperty ( n ) && ( t [ n ] instanceof Array ? e [ n ] = t [ n ] . concat ( e [ n ] instanceof Array ? e [ n ] : [ ] ) : null !== t [ n ] && "object" == typeof t [ n ] && t [ n ] . constructor === Object ? e [ n ] = D ( e [ n ] || { } , t [ n ] ) : e [ n ] = t [ n ] ) ; return e } function H ( e ) { for ( var t = 1 ; t < arguments . length ; t ++ ) e = D ( e , arguments [ t ] ) ; return e } function W ( e ) { var t = /[a-zA-Z0-9_\u0392-\u03c9\u0410-\u04F9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g , n = e . match ( t ) , r = 0 ; if ( null === n ) return r ; for ( var i = 0 ; i < n . length ; i ++ ) r += n [ i ] . charCodeAt ( 0 ) >= 19968 ? n [ i ] . length : 1 ; return r } function B ( e ) { e = e || { } , e . parent = this ; var t = ! 0 ; if ( e . autoDownloadFontAwesome === ! 1 && ( t = ! 1 ) , e . autoDownloadFontAwesome !== ! 0 ) for ( var n = document . styleSheets , r = 0 ; r < n . length ; r ++ ) n [ r ] . href && n [ r ] . href . indexOf ( "//maxcdn.bootstrapcdn.com/font-awesome/" ) > - 1 && ( t = ! 1 ) ; if ( t ) { var i = document . createElement ( "link" ) ; i . rel = "stylesheet" , i . href = "https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" , document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( i ) } if ( e . element ) this . element = e . element ; else if ( null === e . element ) return void console . log ( "SimpleMDE: Error. No element was found." ) ; if ( void 0 === e . toolbar ) { e . toolbar = [ ] ; for ( var o in K ) K . hasOwnProperty ( o ) && ( - 1 != o . indexOf ( "separator-" ) && e . toolbar . push ( "|" ) , ( K [ o ] . default === ! 0 || e . showIcons && e . showIcons . constructor === Array && - 1 != e . showIcons . indexOf ( o ) ) && e . toolbar . push ( o ) ) } e . hasOwnProperty ( "status" ) || ( e . status = [ "autosave" , "lines" , "words" , "cursor" ] ) , e . previewRender || ( e . previewRender = function ( e ) { return this . parent . markdown ( e ) } ) , e . parsingConfig = H ( { highlightFormatting : ! 0 } , e . parsingConfig || { } ) , e . insertTexts = H ( { } , X , e . insertTexts || { } ) , e . promptTexts = Z , e . blockStyl
e ( "./regexp" ) , e ( "./es5-shim" ) } ) , ace . define ( "ace/lib/dom" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = "http://www.w3.org/1999/xhtml" ; return t . getDocumentHead = function ( e ) { return e || ( e = document ) , e . head || e . getElementsByTagName ( "head" ) [ 0 ] || e . documentElement } , t . createElement = function ( e , t ) { return document . createElementNS ? document . createElementNS ( t || r , e ) : document . createElement ( e ) } , t . hasCssClass = function ( e , t ) { var n = ( e . className + "" ) . split ( /\s+/g ) ; return n . indexOf ( t ) !== - 1 } , t . addCssClass = function ( e , n ) { t . hasCssClass ( e , n ) || ( e . className += " " + n ) } , t . removeCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) ; ; ) { var r = n . indexOf ( t ) ; if ( r == - 1 ) break ; n . splice ( r , 1 ) } e . className = n . join ( " " ) } , t . toggleCssClass = function ( e , t ) { for ( var n = e . className . split ( /\s+/g ) , r = ! 0 ; ; ) { var i = n . indexOf ( t ) ; if ( i == - 1 ) break ; r = ! 1 , n . splice ( i , 1 ) } return r && n . push ( t ) , e . className = n . join ( " " ) , r } , t . setCssClass = function ( e , n , r ) { r ? t . addCssClass ( e , n ) : t . removeCssClass ( e , n ) } , t . hasCssString = function ( e , t ) { var r , n = 0 ; if ( t = t || document , t . createStyleSheet && ( r = t . styleSheets ) ) { for ( ; n < r . length ; ) if ( r [ n ++ ] . owningElement . id === e ) return ! 0 } else if ( r = t . getElementsByTagName ( "style" ) ) for ( ; n < r . length ; ) if ( r [ n ++ ] . id === e ) return ! 0 ; return ! 1 } , t . importCssString = function ( n , r , i ) { if ( i = i || document , r && t . hasCssString ( r , i ) ) return null ; var s ; r && ( n += "\n/*# sourceURL=ace/css/" + r + " */" ) , i . createStyleSheet ? ( s = i . createStyleSheet ( ) , s . cssText = n , r && ( s . owningElement . id = r ) ) : ( s = t . createElement ( "style" ) , s . appendChild ( i . createTextNode ( n ) ) , r && ( s . id = r ) , t . getDocumentHead ( i ) . appendChild ( s ) ) } , t . importCssStylsheet = function ( e , n ) { if ( n . createStyleSheet ) n . createStyleSheet ( e ) ; else { var r = t . createElement ( "link" ) ; r . rel = "stylesheet" , r . href = e , t . getDocumentHead ( n ) . appendChild ( r ) } } , t . getInnerWidth = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingLeft" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingRight" ) , 10 ) + e . clientWidth } , t . getInnerHeight = function ( e ) { return parseInt ( t . computedStyle ( e , "paddingTop" ) , 10 ) + parseInt ( t . computedStyle ( e , "paddingBottom" ) , 10 ) + e . clientHeight } , t . scrollbarWidth = function ( e ) { var n = t . createElement ( "ace_inner" ) ; n . style . width = "100%" , n . style . minWidth = "0px" , n . style . height = "200px" , n . style . display = "block" ; var r = t . createElement ( "ace_outer" ) , i = r . style ; i . position = "absolute" , i . left = "-10000px" , i . overflow = "hidden" , i . width = "200px" , i . minWidth = "0px" , i . height = "150px" , i . display = "block" , r . appendChild ( n ) ; var s = e . documentElement ; s . appendChild ( r ) ; var o = n . offsetWidth ; i . overflow = "scroll" ; var u = n . offsetWidth ; return o == u && ( u = r . clientWidth ) , s . removeChild ( r ) , o - u } , "undefined" == typeof document ? void ( t . importCssString = function ( ) { } ) : ( void 0 !== window . pageYOffset ? ( t . getPageScrollTop = function ( ) { return window . pageYOffset } , t . getPageScrollLeft = function ( ) { return window . pageXOffset } ) : ( t . getPageScrollTop = function ( ) { return document . body . scrollTop } , t . getPageScrollLeft = function ( ) { return document . body . scrollLeft } ) , window . getComputedStyle ? t . computedStyle = function ( e , t ) { return t ? ( window . getComputedStyle ( e , "" ) || { } ) [ t ] || "" : window . getComputedStyle ( e , "" ) || { } } : t . computedStyle = function ( e , t ) { return t ? e . currentStyle [ t ] : e . currentStyle } , t . setInnerHtml = function ( e , t ) { var n = e . cloneNode ( ! 1 ) ; return n . innerHTML = t , e . parentNode . replaceChild ( n , e ) , n } , "textContent" in document . documentElement ? ( t . setInnerText = function ( e , t ) { e . textContent = t } , t . getInnerText = function ( e ) { return e . textContent } ) : ( t . setInnerText = function ( e , t ) { e . innerText = t } , t . getInnerText = function ( e ) { return e . innerText } ) , t . getParentWindow = function ( e ) { return e . defaultView || e . parentWindow } , void 0 ) } ) , ace . define ( "ace/lib/oop" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; t . inherits = function ( e , t ) { e . super _ = t , e . prototype = Object . create ( t . prototype , { constructor : { value : e , enumerable : ! 1 , writable : ! 0 , configurable : ! 0 } } ) } , t . mixin = function ( e , t ) { for ( var n in t ) e [ n ] = t [ n ] ; return e } , t . implement = function ( e , n ) { t . mixin ( e , n ) } } ) , ace . define ( "ace/lib/keys" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; e ( "./fixoldbrowsers" ) ; var r = e ( "./oop" ) , i = function ( ) { var t , n , e = { MODIFIER _KEYS : { 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 224 : "Meta" } , KEY _MODS : { ctrl : 1 , alt : 2 , option : 2 , shift : 4 , super : 8 , meta : 8 , comma
null == A && ( A = setTimeout ( function ( ) { null != A && h && L ( ) } , 20 ) ) } function M ( e ) { var t = e . types ; return ! t || Array . prototype . some . call ( t , function ( e ) { return "text/plain" == e || "Text" == e } ) } function _ ( e ) { var t = [ "copy" , "copymove" , "all" , "uninitialized" ] , n = [ "move" , "copymove" , "linkmove" , "all" , "uninitialized" ] , r = s . isMac ? e . altKey : e . ctrlKey , i = "uninitialized" ; try { i = e . dataTransfer . effectAllowed . toLowerCase ( ) } catch ( e ) { } var o = "none" ; return r && t . indexOf ( i ) >= 0 ? o = "copy" : n . indexOf ( i ) >= 0 ? o = "move" : t . indexOf ( i ) >= 0 && ( o = "copy" ) , o } var t = e . editor , n = r . createElement ( "img" ) ; n . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , s . isOpera && ( n . style . cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;" ) ; var f = [ "dragWait" , "dragWaitEnd" , "startDrag" , "dragReadyEnd" , "onMouseDrag" ] ; f . forEach ( function ( t ) { e [ t ] = this [ t ] } , this ) , t . addEventListener ( "mousedown" , this . onMouseDown . bind ( e ) ) ; var h , p , d , v , m , g , b , w , E , S , x , c = t . container , y = 0 ; this . onDragStart = function ( e ) { if ( this . cancelDrag || ! c . draggable ) { var r = this ; return setTimeout ( function ( ) { r . startSelect ( ) , r . captureMouse ( e ) } , 0 ) , e . preventDefault ( ) } m = t . getSelectionRange ( ) ; var i = e . dataTransfer ; i . effectAllowed = t . getReadOnly ( ) ? "copy" : "copyMove" , s . isOpera && ( t . container . appendChild ( n ) , n . scrollTop = 0 ) , i . setDragImage && i . setDragImage ( n , 0 , 0 ) , s . isOpera && t . container . removeChild ( n ) , i . clearData ( ) , i . setData ( "Text" , t . session . getTextRange ( ) ) , w = ! 0 , this . setState ( "drag" ) } , this . onDragEnd = function ( e ) { if ( c . draggable = ! 1 , w = ! 1 , this . setState ( null ) , ! t . getReadOnly ( ) ) { var n = e . dataTransfer . dropEffect ; ! b && "move" == n && t . session . remove ( t . getSelectionRange ( ) ) , t . renderer . $cursorLayer . setBlinking ( ! 0 ) } this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) } , this . onDragEnter = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || k ( ) , y ++ , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragOver = function ( e ) { if ( ! t . getReadOnly ( ) && M ( e . dataTransfer ) ) return p = e . clientX , d = e . clientY , h || ( k ( ) , y ++ ) , null !== A && ( A = null ) , e . dataTransfer . dropEffect = b = _ ( e ) , i . preventDefault ( e ) } , this . onDragLeave = function ( e ) { if ( y -- , y <= 0 && h ) return L ( ) , b = null , i . preventDefault ( e ) } , this . onDrop = function ( e ) { if ( g ) { var n = e . dataTransfer ; if ( w ) switch ( b ) { case "move" : m = m . contains ( g . row , g . column ) ? { start : g , end : g } : t . moveText ( m , g ) ; break ; case "copy" : m = t . moveText ( m , g , ! 0 ) } else { var r = n . getData ( "Text" ) ; m = { start : g , end : t . session . insert ( g , r ) } , t . focus ( ) , b = null } return L ( ) , i . preventDefault ( e ) } } , i . addListener ( c , "dragstart" , this . onDragStart . bind ( e ) ) , i . addListener ( c , "dragend" , this . onDragEnd . bind ( e ) ) , i . addListener ( c , "dragenter" , this . onDragEnter . bind ( e ) ) , i . addListener ( c , "dragover" , this . onDragOver . bind ( e ) ) , i . addListener ( c , "dragleave" , this . onDragLeave . bind ( e ) ) , i . addListener ( c , "drop" , this . onDrop . bind ( e ) ) ; var A = null } function l ( e , t , n , r ) { return Math . sqrt ( Math . pow ( n - e , 2 ) + Math . pow ( r - t , 2 ) ) } var r = e ( "../lib/dom" ) , i = e ( "../lib/event" ) , s = e ( "../lib/useragent" ) , o = 200 , u = 200 , a = 5 ; ( function ( ) { this . dragWait = function ( ) { var e = Date . now ( ) - this . mousedownEvent . time ; e > this . editor . getDragDelay ( ) && this . startDrag ( ) } , this . dragWaitEnd = function ( ) { var e = this . editor . container ; e . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) , this . selectEnd ( ) } , this . dragReadyEnd = function ( e ) { this . editor . renderer . $cursorLayer . setBlinking ( ! this . editor . getReadOnly ( ) ) , this . editor . unsetStyle ( "ace_dragging" ) , this . editor . renderer . setCursorStyle ( "" ) , this . dragWaitEnd ( ) } , this . startDrag = function ( ) { this . cancelDrag = ! 1 ; var e = this . editor , t = e . container ; t . draggable = ! 0 , e . renderer . $cursorLayer . setBlinking ( ! 1 ) , e . setStyle ( "ace_dragging" ) ; var n = s . isWin ? "default" : "move" ; e . renderer . setCursorStyle ( n ) , this . setState ( "dragReady" ) } , this . onMouseDrag = function ( e ) { var t = this . editor . container ; if ( s . isIE && "dragReady" == this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 3 && t . dragDrop ( ) } if ( "dragWait" === this . state ) { var n = l ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) ; n > 0 && ( t . draggable = ! 1 , this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) ) } } , this . onMouseDown = function ( e ) { if ( this . $dragEnabled ) { this . mousedownEvent = e ; var t = this . editor , n = e . inSelection (
e . cursor = this . isBackwards ( ) ? e . start : e . end , e . desiredColumn = this . $desiredColumn , e } , this . getRangeOfMovements = function ( e ) { var t = this . getCursor ( ) ; try { e ( this ) ; var n = this . getCursor ( ) ; return o . fromPoints ( t , n ) } catch ( r ) { return o . fromPoints ( t , t ) } finally { this . moveCursorToPosition ( t ) } } , this . toJSON = function ( ) { if ( this . rangeCount ) var e = this . ranges . map ( function ( e ) { var t = e . clone ( ) ; return t . isBackwards = e . cursor == e . start , t } ) ; else { var e = this . getRange ( ) ; e . isBackwards = this . isBackwards ( ) } return e } , this . fromJSON = function ( e ) { if ( void 0 == e . start ) { if ( this . rangeList ) { this . toSingleRange ( e [ 0 ] ) ; for ( var t = e . length ; t -- ; ) { var n = o . fromPoints ( e [ t ] . start , e [ t ] . end ) ; e [ t ] . isBackwards && ( n . cursor = n . start ) , this . addRange ( n , ! 0 ) } return } e = e [ 0 ] } this . rangeList && this . toSingleRange ( e ) , this . setSelectionRange ( e , e . isBackwards ) } , this . isEqual = function ( e ) { if ( ( e . length || this . rangeCount ) && e . length != this . rangeCount ) return ! 1 ; if ( ! e . length || ! this . ranges ) return this . getRange ( ) . isEqual ( e ) ; for ( var t = this . ranges . length ; t -- ; ) if ( ! this . ranges [ t ] . isEqual ( e [ t ] ) ) return ! 1 ; return ! 0 } } ) . call ( u . prototype ) , t . Selection = u } ) , ace . define ( "ace/tokenizer" , [ "require" , "exports" , "module" , "ace/config" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./config" ) , i = 2e3 , s = function ( e ) { this . states = e , this . regExps = { } , this . matchMappings = { } ; for ( var t in this . states ) { for ( var n = this . states [ t ] , r = [ ] , i = 0 , s = this . matchMappings [ t ] = { defaultToken : "text" } , o = "g" , u = [ ] , a = 0 ; a < n . length ; a ++ ) { var f = n [ a ] ; if ( f . defaultToken && ( s . defaultToken = f . defaultToken ) , f . caseInsensitive && ( o = "gi" ) , null != f . regex ) { f . regex instanceof RegExp && ( f . regex = f . regex . toString ( ) . slice ( 1 , - 1 ) ) ; var l = f . regex , c = new RegExp ( "(?:(" + l + ")|(.))" ) . exec ( "a" ) . length - 2 ; Array . isArray ( f . token ) ? 1 == f . token . length || 1 == c ? f . token = f . token [ 0 ] : c - 1 != f . token . length ? ( this . reportError ( "number of classes and regexp groups doesn't match" , { rule : f , groupCount : c - 1 } ) , f . token = f . token [ 0 ] ) : ( f . tokenArray = f . token , f . token = null , f . onMatch = this . $arrayTokens ) : "function" == typeof f . token && ! f . onMatch && ( c > 1 ? f . onMatch = this . $applyToken : f . onMatch = f . token ) , c > 1 && ( /\\\d/ . test ( f . regex ) ? l = f . regex . replace ( /\\([0-9]+)/g , function ( e , t ) { return "\\" + ( parseInt ( t , 10 ) + i + 1 ) } ) : ( c = 1 , l = this . removeCapturingGroups ( f . regex ) ) , ! f . splitRegex && "string" != typeof f . token && u . push ( f ) ) , s [ i ] = a , i += c , r . push ( l ) , f . onMatch || ( f . onMatch = null ) } } r . length || ( s [ 0 ] = 0 , r . push ( "$" ) ) , u . forEach ( function ( e ) { e . splitRegex = this . createSplitterRegexp ( e . regex , o ) } , this ) , this . regExps [ t ] = new RegExp ( "(" + r . join ( ")|(" ) + ")|($)" , o ) } } ; ( function ( ) { this . $setMaxTokenCount = function ( e ) { i = 0 | e } , this . $applyToken = function ( e ) { var t = this . splitRegex . exec ( e ) . slice ( 1 ) , n = this . token . apply ( this , t ) ; if ( "string" == typeof n ) return [ { type : n , value : e } ] ; for ( var r = [ ] , i = 0 , s = n . length ; i < s ; i ++ ) t [ i ] && ( r [ r . length ] = { type : n [ i ] , value : t [ i ] } ) ; return r } , this . $arrayTokens = function ( e ) { if ( ! e ) return [ ] ; var t = this . splitRegex . exec ( e ) ; if ( ! t ) return "text" ; for ( var n = [ ] , r = this . tokenArray , i = 0 , s = r . length ; i < s ; i ++ ) t [ i + 1 ] && ( n [ n . length ] = { type : r [ i ] , value : t [ i + 1 ] } ) ; return n } , this . removeCapturingGroups = function ( e ) { var t = e . replace ( /\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g , function ( e , t ) { return t ? "(?:" : e } ) ; return t } , this . createSplitterRegexp = function ( e , t ) { if ( e . indexOf ( "(?=" ) != - 1 ) { var n = 0 , r = ! 1 , i = { } ; e . replace ( /(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g , function ( e , t , s , o , u , a ) { return r ? r = "]" != u : u ? r = ! 0 : o ? ( n == i . stack && ( i . end = a + 1 , i . stack = - 1 ) , n -- ) : s && ( n ++ , 1 != s . length && ( i . stack = n , i . start = a ) ) , e } ) , null != i . end && /^\)*$/ . test ( e . substr ( i . end ) ) && ( e = e . substring ( 0 , i . start ) + e . substr ( i . end ) ) } return "^" != e . charAt ( 0 ) && ( e = "^" + e ) , "$" != e . charAt ( e . length - 1 ) && ( e += "$" ) , new RegExp ( e , ( t || "" ) . replace ( "g" , "" ) ) } , this . getLineTokens = function ( e , t ) { if ( t && "string" != typeof t ) { var n = t . slice ( 0 ) ; t = n [ 0 ] , "#tmp" === t && ( n . shift ( ) , t = n . shift ( ) ) } else var n = [ ] ; var r = t || "start" , s = this . states [ r ] ; s || ( r = "start" , s = this . states [ r ] ) ; var o = this . matchMappings [ r ] , u = this . regExps [ r ] ; u . lastIndex = 0 ; for ( var a , f = [ ] , l = 0 , c = 0 , h = { type : null , value : "" } ; a = u . exec ( e ) ; ) { var p = o . defaultToken , d = null , v = a [ 0 ] , m = u . lastIndex ; if ( m - v . length > l ) { var g = e . substring ( l , m - v . length ) ; h . type == p ? h . value += g : ( h . type && f . push ( h ) , h = { type : p , value : g } ) } for ( var y = 0 ; y < a . length - 2 ; y ++ ) if ( void 0 !== a [ y + 1 ] ) { d = s [ o [ y ] ] , p = d . onMatch ? d . onMatch ( v , r , n ) : d . token , d . next && ( r = "string" == t
Pd : "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D" , Ps : "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62" , Pe : "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63" , Pi : "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20" , Pf : "00BB2019201D203A2E032E052E0A2E0D2E1D2E21" , Pc : "005F203F20402054FE33FE34FE4D-FE4FFF3F" , Po : "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65" , S : "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD" , Sm : "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC" , Sc : "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6" , Sk : "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3" , So : " 00 A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3 - 0 BF80BFA0C7F0CF10CF20D790F01 - 0 F030F13 - 0 F170F1A - 0 F1F0F340F360F380FBE - 0 FC50FC7 - 0 FCC0FCE0FCF0FD5 - 0 FD8109E109F13601390 - 1399194019E0 - 19 FF1B61 - 1 B6A1B74 - 1 B7C210021012103 - 21062108210921142116 - 2118211E-2123212521272129212 E213A213B214A214C214D214F2195 - 2199219 C - 219 F21A121A221A421A521A7 - 21 AD21AF - 21 CD21D021D121D321D5 - 21 F32300 - 2307230 C - 231 F2322 - 2328232 B - 237 B237D - 239 A23B4 - 23 DB23E2 - 23E82400 - 24262440 - 244 A249C - 24E92500 - 25 B625B8 - 25 C025C2 - 25 F72600 - 266E2670 - 26 CD26CF - 26E126 E326E8 - 26 FF2701 - 27042706 - 2709270 C - 27272729 - 274 B274D274F - 27522756 - 275E2761 - 276727942798 - 27 AF27B1 - 27 BE2800 - 28 FF2B00 - 2 B2F2B452B462B50 - 2 B592CE5 - 2 CEA2E80 - 2E992 E9B - 2 EF32F00 - 2 FD52FF0 - 2 FFB300430123013302030363037303E303F319031913196 - 319 F31C0 - 31E3320
if ( t >= 0 ) return this . ranges [ t ] } , this . clipRows = function ( e , t ) { var n = this . ranges ; if ( n [ 0 ] . start . row > t || n [ n . length - 1 ] . start . row < e ) return [ ] ; var r = this . pointIndex ( { row : e , column : 0 } ) ; r < 0 && ( r = - r - 1 ) ; var i = this . pointIndex ( { row : t , column : 0 } , r ) ; i < 0 && ( i = - i - 1 ) ; for ( var s = [ ] , o = r ; o < i ; o ++ ) s . push ( n [ o ] ) ; return s } , this . removeAll = function ( ) { return this . ranges . splice ( 0 , this . ranges . length ) } , this . attach = function ( e ) { this . session && this . detach ( ) , this . session = e , this . onChange = this . $onChange . bind ( this ) , this . session . on ( "change" , this . onChange ) } , this . detach = function ( ) { this . session && ( this . session . removeListener ( "change" , this . onChange ) , this . session = null ) } , this . $onChange = function ( e ) { if ( "insert" == e . action ) var t = e . start , n = e . end ; else var n = e . start , t = e . end ; for ( var r = t . row , i = n . row , s = i - r , o = - t . column + n . column , u = this . ranges , a = 0 , f = u . length ; a < f ; a ++ ) { var l = u [ a ] ; if ( ! ( l . end . row < r ) ) { if ( l . start . row > r ) break ; if ( l . start . row == r && l . start . column >= t . column && ( l . start . column != t . column || ! this . $insertRight ) && ( l . start . column += o , l . start . row += s ) , l . end . row == r && l . end . column >= t . column ) { if ( l . end . column == t . column && this . $insertRight ) continue ; l . end . column == t . column && o > 0 && a < f - 1 && l . end . column > l . start . column && l . end . column == u [ a + 1 ] . start . column && ( l . end . column -= o ) , l . end . column += o , l . end . row += s } } } if ( 0 != s && a < f ) for ( ; a < f ; a ++ ) { var l = u [ a ] ; l . start . row += s , l . end . row += s } } } ) . call ( s . prototype ) , t . RangeList = s } ) , ace . define ( "ace/edit_session/fold" , [ "require" , "exports" , "module" , "ace/range" , "ace/range_list" , "ace/lib/oop" ] , function ( e , t , n ) { "use strict" ; function u ( e , t ) { e . row -= t . row , 0 == e . row && ( e . column -= t . column ) } function a ( e , t ) { u ( e . start , t ) , u ( e . end , t ) } function f ( e , t ) { 0 == e . row && ( e . column += t . column ) , e . row += t . row } function l ( e , t ) { f ( e . start , t ) , f ( e . end , t ) } var i = ( e ( "../range" ) . Range , e ( "../range_list" ) . RangeList ) , s = e ( "../lib/oop" ) , o = t . Fold = function ( e , t ) { this . foldLine = null , this . placeholder = t , this . range = e , this . start = e . start , this . end = e . end , this . sameRow = e . start . row == e . end . row , this . subFolds = this . ranges = [ ] } ; s . inherits ( o , i ) , function ( ) { this . toString = function ( ) { return '"' + this . placeholder + '" ' + this . range . toString ( ) } , this . setFoldLine = function ( e ) { this . foldLine = e , this . subFolds . forEach ( function ( t ) { t . setFoldLine ( e ) } ) } , this . clone = function ( ) { var e = this . range . clone ( ) , t = new o ( e , this . placeholder ) ; return this . subFolds . forEach ( function ( e ) { t . subFolds . push ( e . clone ( ) ) } ) , t . collapseChildren = this . collapseChildren , t } , this . addSubFold = function ( e ) { if ( ! this . range . isEqual ( e ) ) { if ( ! this . range . containsRange ( e ) ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; a ( e , this . start ) ; for ( var t = e . start . row , n = e . start . column , r = 0 , i = - 1 ; r < this . subFolds . length && ( i = this . subFolds [ r ] . range . compare ( t , n ) , 1 == i ) ; r ++ ) ; var s = this . subFolds [ r ] ; if ( 0 == i ) return s . addSubFold ( e ) ; for ( var t = e . range . end . row , n = e . range . end . column , o = r , i = - 1 ; o < this . subFolds . length && ( i = this . subFolds [ o ] . range . compare ( t , n ) , 1 == i ) ; o ++ ) ; this . subFolds [ o ] ; if ( 0 == i ) throw new Error ( "A fold can't intersect already existing fold" + e . range + this . range ) ; this . subFolds . splice ( r , o - r , e ) ; return e . setFoldLine ( this . foldLine ) , e } } , this . restoreRange = function ( e ) { return l ( e , this . start ) } } . call ( o . prototype ) } ) , ace . define ( "ace/edit_session/folding" , [ "require" , "exports" , "module" , "ace/range" , "ace/edit_session/fold_line" , "ace/edit_session/fold" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function u ( ) { this . getFoldAt = function ( e , t , n ) { var r = this . getFoldLine ( e ) ; if ( ! r ) return null ; for ( var i = r . folds , s = 0 ; s < i . length ; s ++ ) { var o = i [ s ] ; if ( o . range . contains ( e , t ) ) { if ( 1 == n && o . range . isEnd ( e , t ) ) continue ; if ( n == - 1 && o . range . isStart ( e , t ) ) continue ; return o } } } , this . getFoldsInRange = function ( e ) { var t = e . start , n = e . end , r = this . $foldData , i = [ ] ; t . column += 1 , n . column -= 1 ; for ( var s = 0 ; s < r . length ; s ++ ) { var o = r [ s ] . range . compareRange ( e ) ; if ( 2 != o ) { if ( o == - 2 ) break ; for ( var u = r [ s ] . folds , a = 0 ; a < u . length ; a ++ ) { var f = u [ a ] ; if ( o = f . range . compareRange ( e ) , o == - 2 ) break ; if ( 2 != o ) { if ( 42 == o ) break ; i . push ( f ) } } } } return t . column -= 1 , n . column += 1 , i } , this . getFoldsInRangeList = function ( e ) { if ( Array . isArray ( e ) ) { var t = [ ] ; e . forEach ( function ( e ) { t = t . concat ( this . getFoldsInRange ( e ) ) } , this ) } else var t = this . getFoldsInRange ( e ) ; return t } , this . getAllFolds = function ( ) { for ( var e = [ ] , t = this . $foldData , n = 0 ; n < t . le
this . $wrapLimitRange . min === e && this . $wrapLimitRange . max === t || ( this . $wrapLimitRange = { min : e , max : t } , this . $modified = ! 0 , this . $useWrapMode && this . _signal ( "changeWrapMode" ) ) } , this . adjustWrapLimit = function ( e , t ) { var n = this . $wrapLimitRange ; n . max < 0 && ( n = { min : t , max : t } ) ; var r = this . $constrainWrapLimit ( e , n . min , n . max ) ; return r != this . $wrapLimit && r > 1 && ( this . $wrapLimit = r , this . $modified = ! 0 , this . $useWrapMode && ( this . $updateWrapData ( 0 , this . getLength ( ) - 1 ) , this . $resetRowCache ( 0 ) , this . _signal ( "changeWrapLimit" ) ) , ! 0 ) } , this . $constrainWrapLimit = function ( e , t , n ) { return t && ( e = Math . max ( t , e ) ) , n && ( e = Math . min ( n , e ) ) , e } , this . getWrapLimit = function ( ) { return this . $wrapLimit } , this . setWrapLimit = function ( e ) { this . setWrapLimitRange ( e , e ) } , this . getWrapLimitRange = function ( ) { return { min : this . $wrapLimitRange . min , max : this . $wrapLimitRange . max } } , this . $updateInternalDataOnChange = function ( e ) { var t = this . $useWrapMode , n = e . action , r = e . start , i = e . end , s = r . row , o = i . row , u = o - s , a = null ; if ( this . $updating = ! 0 , 0 != u ) if ( "remove" === n ) { this [ t ? "$wrapData" : "$rowLengthCache" ] . splice ( s , u ) ; var f = this . $foldData ; a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) ; var l = this . getFoldLine ( i . row ) , c = 0 ; if ( l ) { l . addRemoveChars ( i . row , i . column , r . column - i . column ) , l . shiftRow ( - u ) ; var h = this . getFoldLine ( s ) ; h && h !== l && ( h . merge ( l ) , l = h ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= i . row && l . shiftRow ( - u ) } o = s } else { var p = Array ( u ) ; p . unshift ( s , 0 ) ; var d = t ? this . $wrapData : this . $rowLengthCache ; d . splice . apply ( d , p ) ; var f = this . $foldData , l = this . getFoldLine ( s ) , c = 0 ; if ( l ) { var v = l . range . compareInside ( r . row , r . column ) ; 0 == v ? ( l = l . split ( r . row , r . column ) , l && ( l . shiftRow ( u ) , l . addRemoveChars ( o , 0 , i . column - r . column ) ) ) : v == - 1 && ( l . addRemoveChars ( s , 0 , i . column - r . column ) , l . shiftRow ( u ) ) , c = f . indexOf ( l ) + 1 } for ( c ; c < f . length ; c ++ ) { var l = f [ c ] ; l . start . row >= s && l . shiftRow ( u ) } } else { u = Math . abs ( e . start . column - e . end . column ) , "remove" === n && ( a = this . getFoldsInRange ( e ) , this . removeFolds ( a ) , u = - u ) ; var l = this . getFoldLine ( s ) ; l && l . addRemoveChars ( s , r . column , u ) } return t && this . $wrapData . length != this . doc . getLength ( ) && console . error ( "doc.getLength() and $wrapData.length have to be the same!" ) , this . $updating = ! 1 , t ? this . $updateWrapData ( s , o ) : this . $updateRowLengthCache ( s , o ) , a } , this . $updateRowLengthCache = function ( e , t , n ) { this . $rowLengthCache [ e ] = null , this . $rowLengthCache [ t ] = null } , this . $updateWrapData = function ( e , t ) { var a , f , r = this . doc . getAllLines ( ) , i = this . getTabSize ( ) , s = this . $wrapData , o = this . $wrapLimit , l = e ; for ( t = Math . min ( t , r . length - 1 ) ; l <= t ; ) f = this . getFoldLine ( l , f ) , f ? ( a = [ ] , f . walk ( function ( e , t , i , s ) { var o ; if ( null != e ) { o = this . $getDisplayTokens ( e , a . length ) , o [ 0 ] = n ; for ( var f = 1 ; f < o . length ; f ++ ) o [ f ] = u } else o = this . $getDisplayTokens ( r [ t ] . substring ( s , i ) , a . length ) ; a = a . concat ( o ) } . bind ( this ) , f . end . row , r [ f . end . row ] . length + 1 ) , s [ f . start . row ] = this . $computeWrapSplits ( a , o , i ) , l = f . end . row + 1 ) : ( a = this . $getDisplayTokens ( r [ l ] ) , s [ l ] = this . $computeWrapSplits ( a , o , i ) , l ++ ) } ; var e = 1 , t = 2 , n = 3 , u = 4 , l = 9 , p = 10 , d = 11 , v = 12 ; this . $computeWrapSplits = function ( e , r , i ) { function g ( ) { var t = 0 ; if ( 0 === m ) return t ; if ( h ) for ( var n = 0 ; n < e . length ; n ++ ) { var r = e [ n ] ; if ( r == p ) t += 1 ; else { if ( r != d ) { if ( r == v ) continue ; break } t += i } } return c && h !== ! 1 && ( t += i ) , Math . min ( t , m ) } function y ( t ) { var n = e . slice ( a , t ) , r = n . length ; n . join ( "" ) . replace ( /12/g , function ( ) { r -= 1 } ) . replace ( /2/g , function ( ) { r -= 1 } ) , s . length || ( b = g ( ) , s . indent = b ) , f += r , s . push ( f ) , a = t } if ( 0 == e . length ) return [ ] ; for ( var s = [ ] , o = e . length , a = 0 , f = 0 , c = this . $wrapAsCode , h = this . $indentedSoftWrap , m = r <= Math . max ( 2 * i , 8 ) || h === ! 1 ? 0 : Math . floor ( r / 2 ) , b = 0 ; o - a > r - b ; ) { var w = a + r - b ; if ( e [ w - 1 ] >= p && e [ w ] >= p ) y ( w ) ; else if ( e [ w ] != n && e [ w ] != u ) { for ( var E = Math . max ( w - ( r - ( r >> 2 ) ) , a - 1 ) ; w > E && e [ w ] < n ; ) w -- ; if ( c ) { for ( ; w > E && e [ w ] < n ; ) w -- ; for ( ; w > E && e [ w ] == l ; ) w -- } else for ( ; w > E && e [ w ] < p ; ) w -- ; w > E ? y ( ++ w ) : ( w = a + r , e [ w ] == t && w -- , y ( w - b ) ) } else { for ( w ; w != a - 1 && e [ w ] != n ; w -- ) ; if ( w > a ) { y ( w ) ; continue } for ( w = a + r ; w < e . length && e [ w ] == u ; w ++ ) ; if ( w == e . length ) break ; y ( w ) } } return s } , this . $getDisplayTokens = function ( n , r ) { var s , i = [ ] ; r = r || 0 ; for ( var o = 0 ; o < n . length ; o ++ ) { var u = n . charCodeAt ( o ) ; if ( 9 == u ) { s = this . getScreenTabSize ( i . length + r ) , i . push ( d ) ; for ( var a = 1 ; a < s ; a ++ ) i . push ( v ) } else 32 == u ? i . push ( p ) : u > 39 && u < 48 || u > 57 && u < 64 ? i . push ( l ) : u >= 4352 && m ( u ) ? i . push ( e , t ) : i . push ( e ) } return i } , this . $getStringScreenWidth = function ( e ,
bindKey : o ( null , "Ctrl-O" ) , exec : function ( e ) { e . splitLine ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "transposeletters" , bindKey : o ( "Ctrl-T" , "Ctrl-T" ) , exec : function ( e ) { e . transposeLetters ( ) } , multiSelectAction : function ( e ) { e . transposeSelections ( 1 ) } , scrollIntoView : "cursor" } , { name : "touppercase" , bindKey : o ( "Ctrl-U" , "Ctrl-U" ) , exec : function ( e ) { e . toUpperCase ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "tolowercase" , bindKey : o ( "Ctrl-Shift-U" , "Ctrl-Shift-U" ) , exec : function ( e ) { e . toLowerCase ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" } , { name : "expandtoline" , bindKey : o ( "Ctrl-Shift-L" , "Command-Shift-L" ) , exec : function ( e ) { var t = e . selection . getRange ( ) ; t . start . column = t . end . column = 0 , t . end . row ++ , e . selection . setRange ( t , ! 1 ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "joinlines" , bindKey : o ( null , null ) , exec : function ( e ) { for ( var t = e . selection . isBackwards ( ) , n = t ? e . selection . getSelectionLead ( ) : e . selection . getSelectionAnchor ( ) , i = t ? e . selection . getSelectionAnchor ( ) : e . selection . getSelectionLead ( ) , o = e . session . doc . getLine ( n . row ) . length , u = e . session . doc . getTextRange ( e . selection . getRange ( ) ) , a = u . replace ( /\n\s*/ , " " ) . length , f = e . session . doc . getLine ( n . row ) , l = n . row + 1 ; l <= i . row + 1 ; l ++ ) { var c = r . stringTrimLeft ( r . stringTrimRight ( e . session . doc . getLine ( l ) ) ) ; 0 !== c . length && ( c = " " + c ) , f += c } i . row + 1 < e . session . doc . getLength ( ) - 1 && ( f += e . session . doc . getNewLineCharacter ( ) ) , e . clearSelection ( ) , e . session . doc . replace ( new s ( n . row , 0 , i . row + 2 , 0 ) , f ) , a > 0 ? ( e . selection . moveCursorTo ( n . row , n . column ) , e . selection . selectTo ( n . row , n . column + a ) ) : ( o = e . session . doc . getLine ( n . row ) . length > o ? o + 1 : o , e . selection . moveCursorTo ( n . row , o ) ) } , multiSelectAction : "forEach" , readOnly : ! 0 } , { name : "invertSelection" , bindKey : o ( null , null ) , exec : function ( e ) { var t = e . session . doc . getLength ( ) - 1 , n = e . session . doc . getLine ( t ) . length , r = e . selection . rangeList . ranges , i = [ ] ; r . length < 1 && ( r = [ e . selection . getRange ( ) ] ) ; for ( var o = 0 ; o < r . length ; o ++ ) o == r . length - 1 && ( r [ o ] . end . row !== t || r [ o ] . end . column !== n ) && i . push ( new s ( r [ o ] . end . row , r [ o ] . end . column , t , n ) ) , 0 === o ? ( 0 !== r [ o ] . start . row || 0 !== r [ o ] . start . column ) && i . push ( new s ( 0 , 0 , r [ o ] . start . row , r [ o ] . start . column ) ) : i . push ( new s ( r [ o - 1 ] . end . row , r [ o - 1 ] . end . column , r [ o ] . start . row , r [ o ] . start . column ) ) ; e . exitMultiSelectMode ( ) , e . clearSelection ( ) ; for ( var o = 0 ; o < i . length ; o ++ ) e . selection . addRange ( i [ o ] , ! 1 ) } , readOnly : ! 0 , scrollIntoView : "none" } ] } ) , ace . define ( "ace/editor" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/keyboard/textinput" , "ace/mouse/mouse_handler" , "ace/mouse/fold_handler" , "ace/keyboard/keybinding" , "ace/edit_session" , "ace/search" , "ace/range" , "ace/lib/event_emitter" , "ace/commands/command_manager" , "ace/commands/default_commands" , "ace/config" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./lib/lang" ) , o = e ( "./lib/useragent" ) , u = e ( "./keyboard/textinput" ) . TextInput , a = e ( "./mouse/mouse_handler" ) . MouseHandler , f = e ( "./mouse/fold_handler" ) . FoldHandler , l = e ( "./keyboard/keybinding" ) . KeyBinding , c = e ( "./edit_session" ) . EditSession , h = e ( "./search" ) . Search , p = e ( "./range" ) . Range , d = e ( "./lib/event_emitter" ) . EventEmitter , v = e ( "./commands/command_manager" ) . CommandManager , m = e ( "./commands/default_commands" ) . commands , g = e ( "./config" ) , y = e ( "./token_iterator" ) . TokenIterator , b = function ( e , t ) { var n = e . getContainerElement ( ) ; this . container = n , this . renderer = e , this . commands = new v ( o . isMac ? "mac" : "win" , m ) , this . textInput = new u ( e . getTextAreaContainer ( ) , this ) , this . renderer . textarea = this . textInput . getElement ( ) , this . keyBinding = new l ( this ) , this . $mouseHandler = new a ( this ) , new f ( this ) , this . $blockScrolling = 0 , this . $search = ( new h ) . set ( { wrap : ! 0 } ) , this . $historyTracker = this . $historyTracker . bind ( this ) , this . commands . on ( "exec" , this . $historyTracker ) , this . $initOperationListeners ( ) , this . _$emitInputEvent = s . delayedCall ( function ( ) { this . _signal ( "input" , { } ) , this . session && this . session . bgTokenizer && this . session . bgTokenizer . scheduleStart ( ) } . bind ( this ) ) , this . on ( "change" , function ( e , t ) { t . _$emitInputEvent . schedule ( 31 ) } ) , this . setSession ( t || new c ( "" ) ) , g . resetOptions ( this ) , g . _signal ( "editor" , thi
return this . moveCursorToPosition ( t ) } this . selection . clearSelection ( ) , this . selection . moveCursorBy ( - e || - 1 , 0 ) } , this . navigateDown = function ( e ) { if ( this . selection . isMultiLine ( ) && this . selection . isBackwards ( ) ) { var t = this . selection . anchor . getPosition ( ) ; return this . moveCursorToPosition ( t ) } this . selection . clearSelection ( ) , this . selection . moveCursorBy ( e || 1 , 0 ) } , this . navigateLeft = function ( e ) { if ( this . selection . isEmpty ( ) ) for ( e = e || 1 ; e -- ; ) this . selection . moveCursorLeft ( ) ; else { var t = this . getSelectionRange ( ) . start ; this . moveCursorToPosition ( t ) } this . clearSelection ( ) } , this . navigateRight = function ( e ) { if ( this . selection . isEmpty ( ) ) for ( e = e || 1 ; e -- ; ) this . selection . moveCursorRight ( ) ; else { var t = this . getSelectionRange ( ) . end ; this . moveCursorToPosition ( t ) } this . clearSelection ( ) } , this . navigateLineStart = function ( ) { this . selection . moveCursorLineStart ( ) , this . clearSelection ( ) } , this . navigateLineEnd = function ( ) { this . selection . moveCursorLineEnd ( ) , this . clearSelection ( ) } , this . navigateFileEnd = function ( ) { this . selection . moveCursorFileEnd ( ) , this . clearSelection ( ) } , this . navigateFileStart = function ( ) { this . selection . moveCursorFileStart ( ) , this . clearSelection ( ) } , this . navigateWordRight = function ( ) { this . selection . moveCursorWordRight ( ) , this . clearSelection ( ) } , this . navigateWordLeft = function ( ) { this . selection . moveCursorWordLeft ( ) , this . clearSelection ( ) } , this . replace = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . find ( this . session ) , r = 0 ; return n ? ( this . $tryReplace ( n , e ) && ( r = 1 ) , null !== n && ( this . selection . setSelectionRange ( n ) , this . renderer . scrollSelectionIntoView ( n . start , n . end ) ) , r ) : r } , this . replaceAll = function ( e , t ) { t && this . $search . set ( t ) ; var n = this . $search . findAll ( this . session ) , r = 0 ; if ( ! n . length ) return r ; this . $blockScrolling += 1 ; var i = this . getSelectionRange ( ) ; this . selection . moveTo ( 0 , 0 ) ; for ( var s = n . length - 1 ; s >= 0 ; -- s ) this . $tryReplace ( n [ s ] , e ) && r ++ ; return this . selection . setSelectionRange ( i ) , this . $blockScrolling -= 1 , r } , this . $tryReplace = function ( e , t ) { var n = this . session . getTextRange ( e ) ; return t = this . $search . replace ( n , t ) , null !== t ? ( e . end = this . session . replace ( e , t ) , e ) : null } , this . getLastSearchOptions = function ( ) { return this . $search . getOptions ( ) } , this . find = function ( e , t , n ) { t || ( t = { } ) , "string" == typeof e || e instanceof RegExp ? t . needle = e : "object" == typeof e && r . mixin ( t , e ) ; var i = this . selection . getRange ( ) ; null == t . needle && ( e = this . session . getTextRange ( i ) || this . $search . $options . needle , e || ( i = this . session . getWordRange ( i . start . row , i . start . column ) , e = this . session . getTextRange ( i ) ) , this . $search . set ( { needle : e } ) ) , this . $search . set ( t ) , t . start || this . $search . set ( { start : i } ) ; var s = this . $search . find ( this . session ) ; return t . preventScroll ? s : s ? ( this . revealRange ( s , n ) , s ) : ( t . backwards ? i . start = i . end : i . end = i . start , void this . selection . setRange ( i ) ) } , this . findNext = function ( e , t ) { this . find ( { skipCurrent : ! 0 , backwards : ! 1 } , e , t ) } , this . findPrevious = function ( e , t ) { this . find ( e , { skipCurrent : ! 0 , backwards : ! 0 } , t ) } , this . revealRange = function ( e , t ) { this . $blockScrolling += 1 , this . session . unfold ( e ) , this . selection . setSelectionRange ( e ) , this . $blockScrolling -= 1 ; var n = this . renderer . scrollTop ; this . renderer . scrollSelectionIntoView ( e . start , e . end , . 5 ) , t !== ! 1 && this . renderer . animateScrolling ( n ) } , this . undo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . undo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . redo = function ( ) { this . $blockScrolling ++ , this . session . getUndoManager ( ) . redo ( ) , this . $blockScrolling -- , this . renderer . scrollCursorIntoView ( null , . 5 ) } , this . destroy = function ( ) { this . renderer . destroy ( ) , this . _signal ( "destroy" , this ) , this . session && this . session . destroy ( ) } , this . setAutoScrollEditorIntoView = function ( e ) { if ( e ) { var t , n = this , r = ! 1 ; this . $scrollAnchor || ( this . $scrollAnchor = document . createElement ( "div" ) ) ; var i = this . $scrollAnchor ; i . style . cssText = "position:absolute" , this . container . insertBefore ( i , this . container . firstChild ) ; var s = this . on ( "changeSelection" , function ( ) { r = ! 0 } ) , o = this . renderer . on ( "beforeRender" , function ( ) { r && ( t = n . renderer . container . getBoundingClientRect ( ) ) } ) , u = this . renderer . on ( "afterRender" , function ( ) { if ( r && t && ( n . isFocused ( ) || n . searchBox && n . searchBox . isFocused ( ) ) ) { var e = n . renderer , s = e . $cursorLayer . $pixelPos , o = e . layerConfig , u = s . top - o . offset ; r =
this . el = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . el . style , ! 0 ) , this . $main = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . $main . style ) , this . $measureNode = i . createElement ( "div" ) , this . $setMeasureNodeStyles ( this . $measureNode . style ) , this . el . appendChild ( this . $main ) , this . el . appendChild ( this . $measureNode ) , e . appendChild ( this . el ) , a || this . $testFractionalRect ( ) , this . $measureNode . innerHTML = s . stringRepeat ( "X" , a ) , this . $characterSize = { width : 0 , height : 0 } , this . checkForSizeChanges ( ) } ; ( function ( ) { r . implement ( this , u ) , this . $characterSize = { width : 0 , height : 0 } , this . $testFractionalRect = function ( ) { var e = i . createElement ( "div" ) ; this . $setMeasureNodeStyles ( e . style ) , e . style . width = "0.2px" , document . documentElement . appendChild ( e ) ; var t = e . getBoundingClientRect ( ) . width ; a = t > 0 && t < 1 ? 50 : 100 , e . parentNode . removeChild ( e ) } , this . $setMeasureNodeStyles = function ( e , t ) { e . width = e . height = "auto" , e . left = e . top = "0px" , e . visibility = "hidden" , e . position = "absolute" , e . whiteSpace = "pre" , o . isIE < 8 ? e [ "font-family" ] = "inherit" : e . font = "inherit" , e . overflow = t ? "hidden" : "visible" } , this . checkForSizeChanges = function ( ) { var e = this . $measureSizes ( ) ; if ( e && ( this . $characterSize . width !== e . width || this . $characterSize . height !== e . height ) ) { this . $measureNode . style . fontWeight = "bold" ; var t = this . $measureSizes ( ) ; this . $measureNode . style . fontWeight = "" , this . $characterSize = e , this . charSizes = Object . create ( null ) , this . allowBoldFonts = t && t . width === e . width && t . height === e . height , this . _emit ( "changeCharacterSize" , { data : e } ) } } , this . $pollSizeChanges = function ( ) { if ( this . $pollSizeChangesTimer ) return this . $pollSizeChangesTimer ; var e = this ; return this . $pollSizeChangesTimer = setInterval ( function ( ) { e . checkForSizeChanges ( ) } , 500 ) } , this . setPolling = function ( e ) { e ? this . $pollSizeChanges ( ) : this . $pollSizeChangesTimer && ( clearInterval ( this . $pollSizeChangesTimer ) , this . $pollSizeChangesTimer = 0 ) } , this . $measureSizes = function ( ) { if ( 50 === a ) { var e = null ; try { e = this . $measureNode . getBoundingClientRect ( ) } catch ( t ) { e = { width : 0 , height : 0 } } var n = { height : e . height , width : e . width / a } } else var n = { height : this . $measureNode . clientHeight , width : this . $measureNode . clientWidth / a } ; return 0 === n . width || 0 === n . height ? null : n } , this . $measureCharWidth = function ( e ) { this . $main . innerHTML = s . stringRepeat ( e , a ) ; var t = this . $main . getBoundingClientRect ( ) ; return t . width / a } , this . getCharacterWidth = function ( e ) { var t = this . charSizes [ e ] ; return void 0 === t && ( t = this . charSizes [ e ] = this . $measureCharWidth ( e ) / this . $characterSize . width ) , t } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . el && this . el . parentNode && this . el . parentNode . removeChild ( this . el ) } } ) . call ( f . prototype ) } ) , ace . define ( "ace/virtual_renderer" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/config" , "ace/lib/useragent" , "ace/layer/gutter" , "ace/layer/marker" , "ace/layer/text" , "ace/layer/cursor" , "ace/scrollbar" , "ace/scrollbar" , "ace/renderloop" , "ace/layer/font_metrics" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/dom" ) , s = e ( "./config" ) , o = e ( "./lib/useragent" ) , u = e ( "./layer/gutter" ) . Gutter , a = e ( "./layer/marker" ) . Marker , f = e ( "./layer/text" ) . Text , l = e ( "./layer/cursor" ) . Cursor , c = e ( "./scrollbar" ) . HScrollBar , h = e ( "./scrollbar" ) . VScrollBar , p = e ( "./renderloop" ) . RenderLoop , d = e ( "./layer/font_metrics" ) . FontMetrics , v = e ( "./lib/event_emitter" ) . EventEmitter , m = '.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\' ; background : rgba ( 250 , 250 , 250 , 0.01 ) ; z - index : 1000 ; } . ace _dragging . ace _dark . ace _scroller : before { background : rgba ( 0 , 0 , 0 , 0.01 ) ; } . ace _selecting , . ace _selecting * { cursor : text ! important ; } . ace _gutter { position : absolute ; overflow
void this . $textLayer . update ( n ) ) : ( this . $textLayer . updateLines ( n , e , t ) , ! 0 ) } , this . $getLongestLine = function ( ) { var e = this . session . getScreenWidth ( ) ; return this . showInvisibles && ! this . session . $useWrapMode && ( e += 1 ) , Math . max ( this . $size . scrollerWidth - 2 * this . $padding , Math . round ( e * this . characterWidth ) ) } , this . updateFrontMarkers = function ( ) { this . $markerFront . setMarkers ( this . session . getMarkers ( ! 0 ) ) , this . $loop . schedule ( this . CHANGE _MARKER _FRONT ) } , this . updateBackMarkers = function ( ) { this . $markerBack . setMarkers ( this . session . getMarkers ( ) ) , this . $loop . schedule ( this . CHANGE _MARKER _BACK ) } , this . addGutterDecoration = function ( e , t ) { this . $gutterLayer . addGutterDecoration ( e , t ) } , this . removeGutterDecoration = function ( e , t ) { this . $gutterLayer . removeGutterDecoration ( e , t ) } , this . updateBreakpoints = function ( e ) { this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . setAnnotations = function ( e ) { this . $gutterLayer . setAnnotations ( e ) , this . $loop . schedule ( this . CHANGE _GUTTER ) } , this . updateCursor = function ( ) { this . $loop . schedule ( this . CHANGE _CURSOR ) } , this . hideCursor = function ( ) { this . $cursorLayer . hideCursor ( ) } , this . showCursor = function ( ) { this . $cursorLayer . showCursor ( ) } , this . scrollSelectionIntoView = function ( e , t , n ) { this . scrollCursorIntoView ( e , n ) , this . scrollCursorIntoView ( t , n ) } , this . scrollCursorIntoView = function ( e , t , n ) { if ( 0 !== this . $size . scrollerHeight ) { var r = this . $cursorLayer . getPixelPosition ( e ) , i = r . left , s = r . top , o = n && n . top || 0 , u = n && n . bottom || 0 , a = this . $scrollAnimation ? this . session . getScrollTop ( ) : this . scrollTop ; a + o > s ? ( t && a + o > s + this . lineHeight && ( s -= t * this . $size . scrollerHeight ) , 0 === s && ( s = - this . scrollMargin . top ) , this . session . setScrollTop ( s ) ) : a + this . $size . scrollerHeight - u < s + this . lineHeight && ( t && a + this . $size . scrollerHeight - u < s - this . lineHeight && ( s += t * this . $size . scrollerHeight ) , this . session . setScrollTop ( s + this . lineHeight - this . $size . scrollerHeight ) ) ; var f = this . scrollLeft ; f > i ? ( i < this . $padding + 2 * this . layerConfig . characterWidth && ( i = - this . scrollMargin . left ) , this . session . setScrollLeft ( i ) ) : f + this . $size . scrollerWidth < i + this . characterWidth ? this . session . setScrollLeft ( Math . round ( i + this . characterWidth - this . $size . scrollerWidth ) ) : f <= this . $padding && i - f < this . characterWidth && this . session . setScrollLeft ( 0 ) } } , this . getScrollTop = function ( ) { return this . session . getScrollTop ( ) } , this . getScrollLeft = function ( ) { return this . session . getScrollLeft ( ) } , this . getScrollTopRow = function ( ) { return this . scrollTop / this . lineHeight } , this . getScrollBottomRow = function ( ) { return Math . max ( 0 , Math . floor ( ( this . scrollTop + this . $size . scrollerHeight ) / this . lineHeight ) - 1 ) } , this . scrollToRow = function ( e ) { this . session . setScrollTop ( e * this . lineHeight ) } , this . alignCursor = function ( e , t ) { "number" == typeof e && ( e = { row : e , column : 0 } ) ; var n = this . $cursorLayer . getPixelPosition ( e ) , r = this . $size . scrollerHeight - this . lineHeight , i = n . top - r * ( t || 0 ) ; return this . session . setScrollTop ( i ) , i } , this . STEPS = 8 , this . $calcSteps = function ( e , t ) { var n = 0 , r = this . STEPS , i = [ ] , s = function ( e , t , n ) { return n * ( Math . pow ( e - 1 , 3 ) + 1 ) + t } ; for ( n = 0 ; n < r ; ++ n ) i . push ( s ( n / this . STEPS , e , t - e ) ) ; return i } , this . scrollToLine = function ( e , t , n , r ) { var i = this . $cursorLayer . getPixelPosition ( { row : e , column : 0 } ) , s = i . top ; t && ( s -= this . $size . scrollerHeight / 2 ) ; var o = this . scrollTop ; this . session . setScrollTop ( s ) , n !== ! 1 && this . animateScrolling ( o , r ) } , this . animateScrolling = function ( e , t ) { var n = this . scrollTop ; if ( this . $animatedScroll ) { var r = this ; if ( e != n ) { if ( this . $scrollAnimation ) { var i = this . $scrollAnimation . steps ; if ( i . length && ( e = i [ 0 ] , e == n ) ) return } var s = r . $calcSteps ( e , n ) ; this . $scrollAnimation = { from : e , to : n , steps : s } , clearInterval ( this . $timer ) , r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n , this . $timer = setInterval ( function ( ) { s . length ? ( r . session . setScrollTop ( s . shift ( ) ) , r . session . $scrollTop = n ) : null != n ? ( r . session . $scrollTop = - 1 , r . session . setScrollTop ( n ) , n = null ) : ( r . $timer = clearInterval ( r . $timer ) , r . $scrollAnimation = null , t && t ( ) ) } , 10 ) } } } , this . scrollToY = function ( e ) { this . scrollTop !== e && ( this . $loop . schedule ( this . CHANGE _SCROLL ) , this . scrollTop = e ) } , this . scrollToX = function ( e ) { this . scrollLeft !== e && ( this . scrollLeft = e ) , this . $loop . schedule ( this . CHANGE _H _SCROLL ) } , this . scrollTo = function ( e , t ) { this . session . setScrollTop ( t ) , this . session . setScrollLeft ( t ) } , this . scrollBy = function ( e , t ) { t && this . s
this . $blockScrolling += 1 ; var s = this . multiSelect ; n || s . toSingleRange ( i [ 0 ] ) ; for ( var o = i . length ; o -- ; ) s . addRange ( i [ o ] , ! 0 ) ; return r && s . rangeList . rangeAtPoint ( r . start ) && s . addRange ( r , ! 0 ) , this . $blockScrolling -= 1 , i . length } , this . selectMoreLines = function ( e , t ) { var n = this . selection . toOrientedRange ( ) , r = n . cursor == n . end , s = this . session . documentToScreenPosition ( n . cursor ) ; this . selection . $desiredColumn && ( s . column = this . selection . $desiredColumn ) ; var o = this . session . screenToDocumentPosition ( s . row + e , s . column ) ; if ( n . isEmpty ( ) ) var a = o ; else var u = this . session . documentToScreenPosition ( r ? n . end : n . start ) , a = this . session . screenToDocumentPosition ( u . row + e , u . column ) ; if ( r ) { var f = i . fromPoints ( o , a ) ; f . cursor = f . start } else { var f = i . fromPoints ( a , o ) ; f . cursor = f . end } if ( f . desiredColumn = s . column , this . selection . inMultiSelectMode ) { if ( t ) var l = n . cursor } else this . selection . addRange ( n ) ; this . selection . addRange ( f ) , l && this . selection . substractPoint ( l ) } , this . transposeSelections = function ( e ) { for ( var t = this . session , n = t . multiSelect , r = n . ranges , i = r . length ; i -- ; ) { var s = r [ i ] ; if ( s . isEmpty ( ) ) { var o = t . getWordRange ( s . start . row , s . start . column ) ; s . start . row = o . start . row , s . start . column = o . start . column , s . end . row = o . end . row , s . end . column = o . end . column } } n . mergeOverlappingRanges ( ) ; for ( var u = [ ] , i = r . length ; i -- ; ) { var s = r [ i ] ; u . unshift ( t . getTextRange ( s ) ) } e < 0 ? u . unshift ( u . pop ( ) ) : u . push ( u . shift ( ) ) ; for ( var i = r . length ; i -- ; ) { var s = r [ i ] , o = s . clone ( ) ; t . replace ( s , u [ i ] ) , s . start . row = o . start . row , s . start . column = o . start . column } } , this . selectMore = function ( e , t , n ) { var r = this . session , i = r . multiSelect , s = i . toOrientedRange ( ) ; if ( ! s . isEmpty ( ) || ( s = r . getWordRange ( s . start . row , s . start . column ) , s . cursor = e == - 1 ? s . start : s . end , this . multiSelect . addRange ( s ) , ! n ) ) { var o = r . getTextRange ( s ) , u = h ( r , o , e ) ; u && ( u . cursor = e == - 1 ? u . start : u . end , this . $blockScrolling += 1 , this . session . unfold ( u ) , this . multiSelect . addRange ( u ) , this . $blockScrolling -= 1 , this . renderer . scrollCursorIntoView ( null , . 5 ) ) , t && this . multiSelect . substractPoint ( s . cursor ) } } , this . alignCursors = function ( ) { var e = this . session , t = e . multiSelect , n = t . ranges , r = - 1 , s = n . filter ( function ( e ) { return e . cursor . row == r || void ( r = e . cursor . row ) } ) ; if ( n . length && s . length != n . length - 1 ) { s . forEach ( function ( e ) { t . substractPoint ( e . cursor ) } ) ; var d = 0 , v = 1 / 0 , m = n . map ( function ( t ) { var n = t . cursor , r = e . getLine ( n . row ) , i = r . substr ( n . column ) . search ( /\S/g ) ; return i == - 1 && ( i = 0 ) , n . column > d && ( d = n . column ) , i < v && ( v = i ) , i } ) ; n . forEach ( function ( t , n ) { var r = t . cursor , s = d - r . column , o = m [ n ] - v ; s > o ? e . insert ( r , a . stringRepeat ( " " , s - o ) ) : e . remove ( new i ( r . row , r . column , r . row , r . column - s + o ) ) , t . start . column = t . end . column = d , t . start . row = t . end . row = r . row , t . cursor = t . end } ) , t . fromOrientedRange ( n [ 0 ] ) , this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } else { var o = this . selection . getRange ( ) , u = o . start . row , f = o . end . row , l = u == f ; if ( l ) { var h , c = this . session . getLength ( ) ; do h = this . session . getLine ( f ) ; while ( /[=:]/ . test ( h ) && ++ f < c ) ; do h = this . session . getLine ( u ) ; while ( /[=:]/ . test ( h ) && -- u > 0 ) ; u < 0 && ( u = 0 ) , f >= c && ( f = c - 1 ) } var p = this . session . removeFullLines ( u , f ) ; p = this . $reAlignText ( p , l ) , this . session . insert ( { row : u , column : 0 } , p . join ( "\n" ) + "\n" ) , l || ( o . start . column = 0 , o . end . column = p [ p . length - 1 ] . length ) , this . selection . setRange ( o ) } } , this . $reAlignText = function ( e , t ) { function u ( e ) { return a . stringRepeat ( " " , e ) } function f ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( s - e [ 2 ] . length + o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function l ( e ) { return e [ 2 ] ? u ( i + s - e [ 2 ] . length ) + e [ 2 ] + u ( o , " " ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } function c ( e ) { return e [ 2 ] ? u ( i ) + e [ 2 ] + u ( o ) + e [ 4 ] . replace ( /^([=:])\s+/ , "$1 " ) : e [ 0 ] } var i , s , o , n = ! 0 , r = ! 0 ; return e . map ( function ( e ) { var t = e . match ( /(\s*)(.*?)(\s*)([=:].*)/ ) ; return t ? null == i ? ( i = t [ 1 ] . length , s = t [ 2 ] . length , o = t [ 3 ] . length , t ) : ( i + s + o != t [ 1 ] . length + t [ 2 ] . length + t [ 3 ] . length && ( r = ! 1 ) , i != t [ 1 ] . length && ( n = ! 1 ) , i > t [ 1 ] . length && ( i = t [ 1 ] . length ) , s < t [ 2 ] . length && ( s = t [ 2 ] . length ) , o > t [ 3 ] . length && ( o = t [ 3 ] . length ) , t ) : [ e ] } ) . map ( t ? f : n ? r ? l : f : c ) } } ) . call ( d . prototype ) , t . onSessionChange = function ( e ) { var t = e . session ; t && ! t . multiSelect && ( t . $selectionMarkers = [ ] , t . selection . $initRangeList ( ) , t . multiSelect = t . selection ) , this . multiSelect = t && t . multiSelect ; var n = e . oldSession ; n && ( n . multiSelect . off ( "addRange" , this . $onAddRange ) , n . multiSelect . off ( "removeRange" , this . $onRemov
} , { token : "support.function.dom" , 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 : " qst
"-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 ) { this . completionsDefined || this . defineCompletions ( ) ; var i = t . getTokenAt ( n . row , n . column ) ; if ( ! i ) 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 ) { var s = Object . keys ( r ) ; return s . 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 ) , l = f . substring ( s . column , s . column + 1 ) ; if ( ":" === l ) 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 ) { var l = r . doc . getLine ( i . start . row ) , c = l . substring ( i . end . column , i . end . column + 1 ) ; if ( ";" === c ) return i . end . column ++ , i } } } ) , this . add ( "semicolon" , "insertion" , function ( e , t , n , r , i ) { if ( ";" === i ) { var s = n . getCursorPosition ( ) , o = r . doc . getLine ( s . row ) , u = o . substring ( s . column , s . column + 1 ) ; if ( ";" === u ) 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 ; if ( i . length && "comment" == i [ i . length - 1 ] . type ) return r ; var s = t . match ( /^.*\{\s*$/ ) ; return 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 .
Cn [ "[object Float32Array]" ] = Cn [ "[object Float64Array]" ] = Cn [ "[object Int8Array]" ] = Cn [ "[object Int16Array]" ] = Cn [ "[object Int32Array]" ] = Cn [ "[object Uint8Array]" ] = Cn [ "[object Uint8ClampedArray]" ] = Cn [ "[object Uint16Array]" ] = Cn [ "[object Uint32Array]" ] = ! 0 , Cn [ "[object Arguments]" ] = Cn [ "[object Array]" ] = Cn [ "[object ArrayBuffer]" ] = Cn [ "[object Boolean]" ] = Cn [ "[object DataView]" ] = Cn [ "[object Date]" ] = Cn [ "[object Error]" ] = Cn [ "[object Function]" ] = Cn [ "[object Map]" ] = Cn [ "[object Number]" ] = Cn [ "[object Object]" ] = Cn [ "[object RegExp]" ] = Cn [ "[object Set]" ] = Cn [ "[object String]" ] = Cn [ "[object WeakMap]" ] = ! 1 ; var Dn = { } ; Dn [ "[object Arguments]" ] = Dn [ "[object Array]" ] = Dn [ "[object ArrayBuffer]" ] = Dn [ "[object DataView]" ] = Dn [ "[object Boolean]" ] = Dn [ "[object Date]" ] = Dn [ "[object Float32Array]" ] = Dn [ "[object Float64Array]" ] = Dn [ "[object Int8Array]" ] = Dn [ "[object Int16Array]" ] = Dn [ "[object Int32Array]" ] = Dn [ "[object Map]" ] = Dn [ "[object Number]" ] = Dn [ "[object Object]" ] = Dn [ "[object RegExp]" ] = Dn [ "[object Set]" ] = Dn [ "[object String]" ] = Dn [ "[object Symbol]" ] = Dn [ "[object Uint8Array]" ] = Dn [ "[object Uint8ClampedArray]" ] = Dn [ "[object Uint16Array]" ] = Dn [ "[object Uint32Array]" ] = ! 0 , Dn [ "[object Error]" ] = Dn [ "[object Function]" ] = Dn [ "[object WeakMap]" ] = ! 1 ; var Mn , Tn = { "\\" : "\\" , "'" : "'" , "\n" : "n" , "\r" : "r" , "\u2028" : "u2028" , "\u2029" : "u2029" } , $n = parseFloat , Fn = parseInt , Nn = "object" == typeof global && global && global . Object === Object && global , Pn = "object" == typeof self && self && self . Object === Object && self , Zn = Nn || Pn || Function ( "return this" ) ( ) , qn = "object" == typeof exports && exports && ! exports . nodeType && exports , Vn = qn && "object" == typeof module && module && ! module . nodeType && module , Kn = Vn && Vn . exports === qn , Gn = Kn && Nn . process ; n : { try { Mn = Gn && Gn . binding && Gn . binding ( "util" ) ; break n } catch ( n ) { } Mn = void 0 } var Hn = Mn && Mn . isArrayBuffer , Jn = Mn && Mn . isDate , Yn = Mn && Mn . isMap , Qn = Mn && Mn . isRegExp , Xn = Mn && Mn . isSet , nt = Mn && Mn . isTypedArray , tt = j ( "length" ) , rt = w ( { "À" : "A" , "Á" : "A" , "Â" : "A" , "Ã" : "A" , "Ä" : "A" , "Å" : "A" , "à" : "a" , "á" : "a" , "â" : "a" , "ã" : "a" , "ä" : "a" , "å" : "a" , "Ç" : "C" , "ç" : "c" , "Ð" : "D" , "ð" : "d" , "È" : "E" , "É" : "E" , "Ê" : "E" , "Ë" : "E" , "è" : "e" , "é" : "e" , "ê" : "e" , "ë" : "e" , "Ì" : "I" , "Í" : "I" , "Î" : "I" , "Ï" : "I" , "ì" : "i" , "í" : "i" , "î" : "i" , "ï" : "i" , "Ñ" : "N" , "ñ" : "n" , "Ò" : "O" , "Ó" : "O" , "Ô" : "O" , "Õ" : "O" , "Ö" : "O" , "Ø" : "O" , "ò" : "o" , "ó" : "o" , "ô" : "o" , "õ" : "o" , "ö" : "o" , "ø" : "o" , "Ù" : "U" , "Ú" : "U" , "Û" : "U" , "Ü" : "U" , "ù" : "u" , "ú" : "u" , "û" : "u" , "ü" : "u" , "Ý" : "Y" , "ý" : "y" , "ÿ" : "y" , "Æ" : "Ae" , "æ" : "ae" , "Þ" : "Th" , "þ" : "th" , "ß" : "ss" , "Ā" : "A" , "Ă" : "A" , "Ą" : "A" , "ā" : "a" , "ă" : "a" , "ą" : "a" , "Ć" : "C" , "Ĉ" : "C" , "Ċ" : "C" , "Č" : "C" , "ć" : "c" , "ĉ" : "c" , "ċ" : "c" , "č" : "c" , "Ď" : "D" , "Đ" : "D" , "ď" : "d" , "đ" : "d" , "Ē" : "E" , "Ĕ" : "E" , "Ė" : "E" , "Ę" : "E" , "Ě" : "E" , "ē" : "e" , "ĕ" : "e" , "ė" : "e" , "ę" : "e" , "ě" : "e" , "Ĝ" : "G" , "Ğ" : "G" , "Ġ" : "G" , "Ģ" : "G" , "ĝ" : "g" , "ğ" : "g" , "ġ" : "g" , "ģ" : "g" , "Ĥ" : "H" , "Ħ" : "H" , "ĥ" : "h" , "ħ" : "h" , "Ĩ" : "I" , "Ī" : "I" , "Ĭ" : "I" , "Į" : "I" , "İ" : "I" , "ĩ" : "i" , "ī" : "i" , "ĭ" : "i" , "į" : "i" , "ı " : "i" , "Ĵ" : "J" , "ĵ" : "j" , "Ķ" : "K" , "ķ" : "k" , "ĸ" : "k" , "Ĺ" : "L" , "Ļ" : "L" , "Ľ" : "L" , "Ŀ" : "L" , "Ł" : "L" , "ĺ" : "l" , "ļ" : "l" , "ľ" : "l" , "ŀ" : "l" , "ł" : "l" , "Ń" : "N" , "Ņ" : "N" , "Ň" : "N" , "Ŋ" : "N" , "ń" : "n" , "ņ" : "n" , "ň" : "n" , "ŋ" : "n" , "Ō" : "O" , "Ŏ" : "O" , "Ő" : "O" , "ō" : "o" , "ŏ" : "o" , "ő" : "o" , "Ŕ" : "R" , "Ŗ" : "R" , "Ř" : "R" , "ŕ" : "r" , "ŗ" : "r" , "ř" : "r" , "Ś" : "S" , "Ŝ" : "S" , "Ş" : "S" , "Š" : "S" , "ś" : "s" , "ŝ" : "s" , "ş" : "s" , "š" : "s" , "Ţ" : "T" , "Ť" : "T" , "Ŧ" : "T" , "ţ" : "t" , "ť" : "t" , "ŧ" : "t" , "Ũ" : "U" , "Ū" : "U" , "Ŭ" : "U" , "Ů" : "U" , "Ű" : "U" , "Ų" : "U" , "ũ" : "u" , "ū" : "u" , "ŭ" : "u" , "ů" : "u" , "ű" : "u" , "ų" : "u" , "Ŵ" : "W" , "ŵ" : "w" , "Ŷ" : "Y" , "ŷ" : "y" , "Ÿ" : "Y" , "Ź" : "Z" , "Ż" : "Z" , "Ž" : "Z" , "ź" : "z" , "ż" : "z" , "ž" : "z" , "IJ" : "IJ" , "ij" : "ij" , "Œ" : "Oe" , "œ" : "oe" , "ʼn" : "'n" , "ſ " : "s" } ) , et = w ( { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" } ) , ut = w ( { "&" : "&" , "<" : "<" , ">" : ">" , """ : '"' , "'" : "'" } ) , it = function w ( En ) { function On ( n ) { if ( xu ( n ) && ! af ( n ) && ! ( n instanceof Mn ) ) { if ( n instanceof zn ) return n ; if ( ci . call ( n , "__wrapped__" ) ) return Pe ( n ) } return new zn ( n ) } function Sn ( ) { } function zn ( n , t ) { this . _ _wrapped _ _ = n , this . _ _actions _ _ = [ ] , this . _ _chain _ _ = ! ! t , this . _ _index _ _ = 0 , this . _ _values _ _ = F } function Mn ( n ) { this . _ _wrapped _ _ = n , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _i
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 } function Pu ( n ) { return Gt ( "function" == typeof n ? n : dt ( n , 1 ) ) } function Zu ( n , t , r ) { var e = Lu ( t ) , i = St ( t , e ) ; null != r || bu ( t ) && ( i . length || ! e . length ) || ( r = t , t = n , n = this , i = St ( t , Lu ( t ) ) ) ; var o = ! ( bu ( r ) && "chain" in r && ! r . chain ) , f = gu ( n ) ; return u ( i , function ( r ) { var e = t [ r ] ; n [ r ] = e , f && ( n . prototype [ r ] = function ( ) { var t = this . _ _chain _ _ ; if ( o || t ) { var r = n ( this . _ _wrapped _ _ ) ; return ( r . _ _actions _ _ = Mr ( this . _ _actions _ _ ) ) . push ( { func : e , args : arguments , thisArg : n } ) , r . _ _chain _ _ = t , r } return e . apply ( n , s ( [ this . value ( ) ] , arguments ) ) } ) } ) , n } function qu ( ) { } function Vu ( n ) { return We ( n ) ? j ( $e ( n ) ) : ir ( n ) } function Ku ( ) { return [ ] } function Gu ( ) { return ! 1 } En = null == En ? Zn : it . defaults ( Zn . Object ( ) , En , it . pick ( Zn , Un ) ) ; var Hu = En . Array , Ju = En . Date , Yu = En . Error , Qu = En . Function , Xu = En . Math , ni = En . Object , ti = En . RegExp , ri = En . String , ei = En . TypeError , ui = Hu . prototype , ii = ni . prototype , oi = En [ "__core-js_shared__" ] , fi = Qu . prototype . toString , ci = ii . hasOwnProperty , ai = 0 , li = function ( ) { var n = /[^.]+$/ . exec ( oi && oi . keys && oi . keys . IE _PROTO || "" ) ; return n ? "Symbol(src)_1." + n : "" } ( ) , si = ii . toString , hi = fi . call ( ni ) , pi = Zn . _ , _i = ti ( "^" + fi . call ( ci ) . replace ( on , "\\$&" ) . replace ( /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g , "$1.*?" ) + "$" ) , vi = Kn ? En . Buffer : F , gi = En . Symbol , di = En . Uint8Array , yi = vi ? vi . f : F , bi = U ( ni . getPrototypeOf , ni ) , xi = ni . create , ji = ii . propertyIsEnumerable , wi = ui . splice , mi = gi ? gi . isConcatSpreadable : F , Ai = gi ? gi . iterator : F , ki = gi ? gi . toStringTag : F , Ei = function ( ) { try { var n = Ae ( ni , "defineProperty" ) ; return n ( { } , "" , { } ) , n } catch ( n ) { } } ( ) , Oi = En . clearTimeout !== Zn . clearTimeout && En . clearTimeout , Si = Ju && Ju . now !== Zn . Date . now && Ju . now , Ii = En . setTimeout !== Zn . setTimeout && En . setTimeout , Ri = Xu . ceil , zi = Xu . floor , Wi = ni . getOwnPropertySymbols , Bi = vi ? vi . isBuffer : F , Li = En . isFinite , Ui = ui . join , Ci = U ( ni . keys , ni ) , Di = Xu . max , Mi = Xu . min , Ti = Ju . now , $i = En . parseInt , Fi = Xu . random , Ni = ui . reverse , Pi = Ae ( En , "DataView" ) , Zi = Ae ( En , "Map" ) , qi = Ae ( En , "Promise" ) , Vi = Ae ( En , "Set" ) , Ki = Ae ( En , "WeakMap" ) , Gi = Ae ( ni , "create" ) , Hi = Ki && new Ki , Ji = { } , Yi = Fe ( Pi ) , Qi = Fe ( Zi ) , Xi = Fe ( qi ) , no = Fe ( Vi ) , to = Fe ( Ki ) , ro = gi ? gi . prototype : F , eo = ro ? ro . valueOf : F , uo = ro ? ro . toString : F , io = function ( ) { function n ( ) { } return function ( t ) { return bu ( t ) ? xi ? xi ( t ) : ( n . prototype = t , t = new n , n . prototype = F , t ) : { } } } ( ) ; On . templateSettings = { escape : Q , evaluate : X , interpolate : nn , variable : "" , imports : { _ : On } } , On . prototype = Sn . prototype , On . prototype . constructor = On , zn . prototype = io ( Sn . prototype ) , zn . prototype . constructor = zn , Mn . prototype = io ( Sn . prototype ) , Mn . prototype . constructor = Mn , Tn . prototype . clear = function ( ) { this . _ _data _ _ = Gi ? Gi ( null ) : { } , this . size = 0 } , Tn . prototype . delete = function ( n ) { return n = this . has ( n ) && delete this . _ _data _ _ [ n ] , this . size -= n ? 1 : 0 , n } , Tn . prototype . get = function ( n ) { var t = this . _ _data _ _ ; return Gi ? ( n = t [ n ] , "__lodash_hash_undefined__" === n ? F : n ) : ci . call ( t , n ) ? t [ n ] : F } , Tn . prototype . has = function ( n ) { var t = this . _ _data _ _ ; return Gi ? t [ n ] !== F : ci . call ( t , n ) } , Tn . prototype . set = function ( n , t ) { var r = this . _ _data _ _ ; return this . size += this . has ( n ) ? 0 : 1 , r [ n ] = Gi && t === F ? "__lodash_hash_undefined__" : t , this } , Nn . prototype . clear = function ( ) { this . _ _data _ _ = [ ] , this . size = 0 } , Nn . prototype . delete = function ( n ) { var t = this . _ _data _ _ ; return n = lt ( t , n ) , ! ( 0 > n || ( n == t . length - 1 ? t . pop ( ) : wi . call ( t , n , 1 ) , -- this . size , 0 ) ) } , Nn . prototype . get = function ( n ) { var t = this . _ _data _ _ ; return n = lt ( t , n ) , 0 > n ? F : t [ n ] [ 1 ] } , Nn . prototype . has = function ( n ) { return - 1 < lt ( this . _ _data _ _ , n ) } , Nn . prototype . set = function ( n , t ) { var r = this . _ _data _ _ , e = lt ( r , n ) ; return 0 > e ? ( ++ this . size , r . push ( [ n , t ] ) ) : r [ e ] [ 1 ] = t , this } , Pn . prototype . clear = function ( ) { this . size = 0 , this . _ _data _ _ = { hash : new Tn , map : new ( Zi || Nn ) , string : new Tn } } , Pn . prototype . delete = function ( n ) { return n = we ( this , n ) . delete ( n ) , this . size -= n ? 1 : 0 , n } , Pn . prototype . get = function ( n ) { return we ( this , n ) . get ( n ) } , Pn . prototype . has = function ( n ) { return we ( this , n ) . has ( n ) } , Pn . prototype . set = function ( n , t ) { var r = we ( this , n ) , e = r . size ; return r . set ( n , t ) , this . size += r . size == e ? 0 : 1 , this } , qn . prototype . add = qn . prototype . push = function ( n ) { return this . _ _data _ _ . set ( n , "__lodash_hash_undefined__" ) , this } , qn . prototype . has = function (