2015-11-22 22:36:53 +08:00
var requirejs , require , define ; ! function ( ba ) { function G ( e ) { return "[object Function]" === K . call ( e ) } function H ( e ) { return "[object Array]" === K . call ( e ) } function v ( e , t ) { if ( e ) { var i ; for ( i = 0 ; i < e . length && ( ! e [ i ] || ! t ( e [ i ] , i , e ) ) ; i += 1 ) ; } } function T ( e , t ) { if ( e ) { var i ; for ( i = e . length - 1 ; i > - 1 && ( ! e [ i ] || ! t ( e [ i ] , i , e ) ) ; i -= 1 ) ; } } function t ( e , t ) { return fa . call ( e , t ) } function m ( e , i ) { return t ( e , i ) && e [ i ] } function B ( e , i ) { for ( var n in e ) if ( t ( e , n ) && i ( e [ n ] , n ) ) break } function U ( e , i , n , r ) { return i && B ( i , function ( i , o ) { ( n || ! t ( e , o ) ) && ( ! r || "object" != typeof i || ! i || H ( i ) || G ( i ) || i instanceof RegExp ? e [ o ] = i : ( e [ o ] || ( e [ o ] = { } ) , U ( e [ o ] , i , n , r ) ) ) } ) , e } function u ( e , t ) { return function ( ) { return t . apply ( e , arguments ) } } function ca ( e ) { throw e } function da ( e ) { if ( ! e ) return e ; var t = ba ; return v ( e . split ( "." ) , function ( e ) { t = t [ e ] } ) , t } function C ( e , t , i , n ) { return t = Error ( t + "\nhttp://requirejs.org/docs/errors.html#" + e ) , t . requireType = e , t . requireModules = n , i && ( t . originalError = i ) , t } function ga ( e ) { function i ( e , t , i ) { var n , r , o , a , s , u , d , c , t = t && t . split ( "/" ) , f = D . map , p = f && f [ "*" ] ; if ( e ) { for ( e = e . split ( "/" ) , r = e . length - 1 , D . nodeIdCompat && Q . test ( e [ r ] ) && ( e [ r ] = e [ r ] . replace ( Q , "" ) ) , "." === e [ 0 ] . charAt ( 0 ) && t && ( r = t . slice ( 0 , t . length - 1 ) , e = r . concat ( e ) ) , r = e , o = 0 ; o < r . length ; o ++ ) a = r [ o ] , "." === a ? ( r . splice ( o , 1 ) , o -= 1 ) : ".." === a && 0 !== o && ( 1 != o || ".." !== r [ 2 ] ) && ".." !== r [ o - 1 ] && o > 0 && ( r . splice ( o - 1 , 2 ) , o -= 2 ) ; e = e . join ( "/" ) } if ( i && f && ( t || p ) ) { r = e . split ( "/" ) , o = r . length ; e : for ( ; o > 0 ; o -= 1 ) { if ( s = r . slice ( 0 , o ) . join ( "/" ) , t ) for ( a = t . length ; a > 0 ; a -= 1 ) if ( ( i = m ( f , t . slice ( 0 , a ) . join ( "/" ) ) ) && ( i = m ( i , s ) ) ) { n = i , u = o ; break e } ! d && p && m ( p , s ) && ( d = m ( p , s ) , c = o ) } ! n && d && ( n = d , u = c ) , n && ( r . splice ( 0 , u , n ) , e = r . join ( "/" ) ) } return ( n = m ( D . pkgs , e ) ) ? n : e } function n ( e ) { z && v ( document . getElementsByTagName ( "script" ) , function ( t ) { return t . getAttribute ( "data-requiremodule" ) === e && t . getAttribute ( "data-requirecontext" ) === k . contextName ? ( t . parentNode . removeChild ( t ) , ! 0 ) : void 0 } ) } function r ( e ) { var t = m ( D . paths , e ) ; return t && H ( t ) && 1 < t . length ? ( t . shift ( ) , k . require . undef ( e ) , k . makeRequire ( null , { skipMap : ! 0 } ) ( [ e ] ) , ! 0 ) : void 0 } function o ( e ) { var t , i = e ? e . indexOf ( "!" ) : - 1 ; return i > - 1 && ( t = e . substring ( 0 , i ) , e = e . substring ( i + 1 , e . length ) ) , [ t , e ] } function a ( e , t , n , r ) { var a , s , u = null , d = t ? t . name : null , c = e , f = ! 0 , p = "" ; return e || ( f = ! 1 , e = "_@r" + ( J += 1 ) ) , e = o ( e ) , u = e [ 0 ] , e = e [ 1 ] , u && ( u = i ( u , d , r ) , s = m ( F , u ) ) , e && ( u ? p = s && s . normalize ? s . normalize ( e , function ( e ) { return i ( e , d , r ) } ) : - 1 === e . indexOf ( "!" ) ? i ( e , d , r ) : e : ( p = i ( e , d , r ) , e = o ( p ) , u = e [ 0 ] , p = e [ 1 ] , n = ! 0 , a = k . nameToUrl ( p ) ) ) , n = ! u || s || n ? "" : "_unnormalized" + ( P += 1 ) , { prefix : u , name : p , parentMap : t , unnormalized : ! ! n , url : a , originalName : c , isDefine : f , id : ( u ? u + "!" + p : p ) + n } } function s ( e ) { var t = e . id , i = m ( w , t ) ; return i || ( i = w [ t ] = new k . Module ( e ) ) , i } function d ( e , i , n ) { var r = e . id , o = m ( w , r ) ; ! t ( F , r ) || o && ! o . defineEmitComplete ? ( o = s ( e ) , o . error && "error" === i ? n ( o . error ) : o . on ( i , n ) ) : "defined" === i && n ( F [ r ] ) } function c ( e , t ) { var i = e . requireModules , n = ! 1 ; t ? t ( e ) : ( v ( i , function ( t ) { ( t = m ( w , t ) ) && ( t . error = e , t . events . error && ( n = ! 0 , t . emit ( "error" , e ) ) ) } ) , n || g . onError ( e ) ) } function f ( ) { R . length && ( ha . apply ( O , [ O . length , 0 ] . concat ( R ) ) , R = [ ] ) } function p ( e ) { delete w [ e ] , delete A [ e ] } function l ( e , t , i ) { var n = e . map . id ; e . error ? e . emit ( "error" , e . error ) : ( t [ n ] = ! 0 , v ( e . depMaps , function ( n , r ) { var o = n . id , a = m ( w , o ) ; a && ! e . depMatched [ r ] && ! i [ o ] && ( m ( t , o ) ? ( e . defineDep ( r , F [ o ] ) , e . check ( ) ) : l ( a , t , i ) ) } ) , i [ n ] = ! 0 ) } function h ( ) { var e , t , i = ( e = 1e3 * D . waitSeconds ) && k . startTime + e < ( new Date ) . getTime ( ) , o = [ ] , a = [ ] , s = ! 1 , u = ! 0 ; if ( ! y ) { if ( y = ! 0 , B ( A , function ( e ) { var d = e . map , c = d . id ; if ( e . enabled && ( d . isDefine || a . push ( e ) , ! e . error ) ) if ( ! e . inited && i ) r ( c ) ? s = t = ! 0 : ( o . push ( c ) , n ( c ) ) ; else if ( ! e . inited && e . fetched && d . isDefine && ( s = ! 0 , ! d . prefix ) ) return u = ! 1 } ) , i && o . length ) return e = C ( "timeout" , "Load timeout for modules: " + o , null , o ) , e . contextName = k . contextName , c ( e ) ; u && v ( a , function ( e ) { l ( e , { } , { } ) } ) , i && ! t || ! s || ! z && ! ea || S || ( S = setTimeout ( function ( ) { S = 0 , h ( ) } , 50 ) ) , y = ! 1 } } function x ( e ) { t ( F , e [ 0 ] ) || s ( a ( e [ 0 ] , null , ! 0 ) ) . init ( e [ 1 ] , e [ 2 ] ) } function b ( e ) { var e = e . currentTarget || e . srcElement , t = k . onScriptLoad ; return e . detachEvent && ! Y ? e . detachEvent ( "onreadystatechange" , t ) : e . removeEventListener ( "load" , t , ! 1 ) , t = k . onScriptError , ( ! e . detachEvent || Y ) && e . removeEventListener ( "error" , t , ! 1 ) , { node : e , id : e && e . getAttribute ( "data-requiremodule" ) } } function q ( ) { var e ; for ( f ( ) ; O . length ; ) { if
2015-11-28 15:56:25 +08:00
( function ( ) { var e = this , n = e . _ , t = { } , r = Array . prototype , a = Object . prototype , i = Function . prototype , o = r . push , s = r . slice , l = r . concat , c = a . toString , u = a . hasOwnProperty , d = r . forEach , p = r . map , f = r . reduce , m = r . reduceRight , g = r . filter , h = r . every , v = r . some , b = r . indexOf , w = r . lastIndexOf , x = Array . isArray , y = Object . keys , C = i . bind , k = function ( e ) { return e instanceof k ? e : this instanceof k ? void ( this . _wrapped = e ) : new k ( e ) } ; "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = k ) , exports . _ = k ) : e . _ = k , k . VERSION = "1.5.1" ; var S = k . each = k . forEach = function ( e , n , r ) { if ( null != e ) if ( d && e . forEach === d ) e . forEach ( n , r ) ; else if ( e . length === + e . length ) { for ( var a = 0 , i = e . length ; i > a ; a ++ ) if ( n . call ( r , e [ a ] , a , e ) === t ) return } else for ( var o in e ) if ( k . has ( e , o ) && n . call ( r , e [ o ] , o , e ) === t ) return } ; k . map = k . collect = function ( e , n , t ) { var r = [ ] ; return null == e ? r : p && e . map === p ? e . map ( n , t ) : ( S ( e , function ( e , a , i ) { r . push ( n . call ( t , e , a , i ) ) } ) , r ) } ; var _ = "Reduce of empty array with no initial value" ; k . reduce = k . foldl = k . inject = function ( e , n , t , r ) { var a = arguments . length > 2 ; if ( null == e && ( e = [ ] ) , f && e . reduce === f ) return r && ( n = k . bind ( n , r ) ) , a ? e . reduce ( n , t ) : e . reduce ( n ) ; if ( S ( e , function ( e , i , o ) { a ? t = n . call ( r , t , e , i , o ) : ( t = e , a = ! 0 ) } ) , ! a ) throw new TypeError ( _ ) ; return t } , k . reduceRight = k . foldr = function ( e , n , t , r ) { var a = arguments . length > 2 ; if ( null == e && ( e = [ ] ) , m && e . reduceRight === m ) return r && ( n = k . bind ( n , r ) ) , a ? e . reduceRight ( n , t ) : e . reduceRight ( n ) ; var i = e . length ; if ( i !== + i ) { var o = k . keys ( e ) ; i = o . length } if ( S ( e , function ( s , l , c ) { l = o ? o [ -- i ] : -- i , a ? t = n . call ( r , t , e [ l ] , l , c ) : ( t = e [ l ] , a = ! 0 ) } ) , ! a ) throw new TypeError ( _ ) ; return t } , k . find = k . detect = function ( e , n , t ) { var r ; return E ( e , function ( e , a , i ) { return n . call ( t , e , a , i ) ? ( r = e , ! 0 ) : void 0 } ) , r } , k . filter = k . select = function ( e , n , t ) { var r = [ ] ; return null == e ? r : g && e . filter === g ? e . filter ( n , t ) : ( S ( e , function ( e , a , i ) { n . call ( t , e , a , i ) && r . push ( e ) } ) , r ) } , k . reject = function ( e , n , t ) { return k . filter ( e , function ( e , r , a ) { return ! n . call ( t , e , r , a ) } , t ) } , k . every = k . all = function ( e , n , r ) { n || ( n = k . identity ) ; var a = ! 0 ; return null == e ? a : h && e . every === h ? e . every ( n , r ) : ( S ( e , function ( e , i , o ) { return ( a = a && n . call ( r , e , i , o ) ) ? void 0 : t } ) , ! ! a ) } ; var E = k . some = k . any = function ( e , n , r ) { n || ( n = k . identity ) ; var a = ! 1 ; return null == e ? a : v && e . some === v ? e . some ( n , r ) : ( S ( e , function ( e , i , o ) { return a || ( a = n . call ( r , e , i , o ) ) ? t : void 0 } ) , ! ! a ) } ; k . contains = k . include = function ( e , n ) { return null == e ? ! 1 : b && e . indexOf === b ? - 1 != e . indexOf ( n ) : E ( e , function ( e ) { return e === n } ) } , k . invoke = function ( e , n ) { var t = s . call ( arguments , 2 ) , r = k . isFunction ( n ) ; return k . map ( e , function ( e ) { return ( r ? n : e [ n ] ) . apply ( e , t ) } ) } , k . pluck = function ( e , n ) { return k . map ( e , function ( e ) { return e [ n ] } ) } , k . where = function ( e , n , t ) { return k . isEmpty ( n ) ? t ? void 0 : [ ] : k [ t ? "find" : "filter" ] ( e , function ( e ) { for ( var t in n ) if ( n [ t ] !== e [ t ] ) return ! 1 ; return ! 0 } ) } , k . findWhere = function ( e , n ) { return k . where ( e , n , ! 0 ) } , k . max = function ( e , n , t ) { if ( ! n && k . isArray ( e ) && e [ 0 ] === + e [ 0 ] && e . length < 65535 ) return Math . max . apply ( Math , e ) ; if ( ! n && k . isEmpty ( e ) ) return - 1 / 0 ; var r = { computed : - 1 / 0 , value : - 1 / 0 } ; return S ( e , function ( e , a , i ) { var o = n ? n . call ( t , e , a , i ) : e ; o > r . computed && ( r = { value : e , computed : o } ) } ) , r . value } , k . min = function ( e , n , t ) { if ( ! n && k . isArray ( e ) && e [ 0 ] === + e [ 0 ] && e . length < 65535 ) return Math . min . apply ( Math , e ) ; if ( ! n && k . isEmpty ( e ) ) return 1 / 0 ; var r = { computed : 1 / 0 , value : 1 / 0 } ; return S ( e , function ( e , a , i ) { var o = n ? n . call ( t , e , a , i ) : e ; o < r . computed && ( r = { value : e , computed : o } ) } ) , r . value } , k . shuffle = function ( e ) { var n , t = 0 , r = [ ] ; return S ( e , function ( e ) { n = k . random ( t ++ ) , r [ t - 1 ] = r [ n ] , r [ n ] = e } ) , r } ; var T = function ( e ) { return k . isFunction ( e ) ? e : function ( n ) { return n [ e ] } } ; k . sortBy = function ( e , n , t ) { var r = T ( n ) ; return k . pluck ( k . map ( e , function ( e , n , a ) { return { value : e , index : n , criteria : r . call ( t , e , n , a ) } } ) . sort ( function ( e , n ) { var t = e . criteria , r = n . criteria ; if ( t !== r ) { if ( t > r || void 0 === t ) return 1 ; if ( r > t || void 0 === r ) return - 1 } return e . index < n . index ? - 1 : 1 } ) , "value" ) } ; var I = function ( e , n , t , r ) { var a = { } , i = T ( null == n ? k . identity : n ) ; return S ( e , function ( n , o ) { var s = i . call ( t , n , o , e ) ; r ( a , s , n ) } ) , a } ; k . groupBy = function ( e , n , t ) { return I ( e , n , t , function ( e , n , t ) { ( k . has ( e , n ) ? e [ n ] : e [ n ] = [ ] ) . push ( t ) } ) } , k . countBy = function ( e , n , t ) { return I ( e , n , t , function ( e , n ) { k . has ( e , n ) || ( e [ n ] = 0 ) , e [ n ] ++ } ) } , k . sortedIndex = function ( e , n , t , r ) { t = null == t ? k . identity : T ( t ) ; for ( var a = t . call ( r , n ) , i = 0 , o
} , { name : "InByzantine_Musical_Symbols" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCJK_Compatibility" , bmp : "㌀-㏿" } , { name : "InCJK_Compatibility_Forms" , bmp : "︰ -﹏ " } , { name : "InCJK_Compatibility_Ideographs" , bmp : "豈-" } , { name : "InCJK_Compatibility_Ideographs_Supplement" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCJK_Radicals_Supplement" , bmp : "⺀-" } , { name : "InCJK_Strokes" , bmp : "㇀-" } , { name : "InCJK_Symbols_and_Punctuation" , bmp : " -〿" } , { name : "InCJK_Unified_Ideographs" , bmp : "一-鿿" } , { name : "InCJK_Unified_Ideographs_Extension_A" , bmp : "㐀-䶿" } , { name : "InCJK_Unified_Ideographs_Extension_B" , astral : "[<5B> -<2D> ][<5B> -<2D> ]|<7C> [<5B> -<2D> ]" } , { name : "InCJK_Unified_Ideographs_Extension_C" , astral : "<22> [<5B> -<2D> ]|[<5B> -<2D> ][<5B> -<2D> ]|<7C> [<5B> -<2D> ]" } , { name : "InCJK_Unified_Ideographs_Extension_D" , astral : "<22> [<5B> -<2D> ]|<7C> [<5B> -<2D> ]" } , { name : "InCarian" , astral : "<22> [<5B> -<2D> ]" } , { name : "InChakma" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCham" , bmp : "ꨀ-꩟" } , { name : "InCherokee" , bmp : "Ꭰ -" } , { name : "InCombining_Diacritical_Marks" , bmp : "̀-ͯ" } , { name : "InCombining_Diacritical_Marks_Supplement" , bmp : "᷀-᷿" } , { name : "InCombining_Diacritical_Marks_for_Symbols" , bmp : "⃐-" } , { name : "InCombining_Half_Marks" , bmp : "︠-︯" } , { name : "InCommon_Indic_Number_Forms" , bmp : "꠰-" } , { name : "InControl_Pictures" , bmp : "␀-" } , { name : "InCoptic" , bmp : "Ⲁ-⳿" } , { name : "InCounting_Rod_Numerals" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCuneiform" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCuneiform_Numbers_and_Punctuation" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCurrency_Symbols" , bmp : "₠-" } , { name : "InCypriot_Syllabary" , astral : "<22> [<5B> -<2D> ]" } , { name : "InCyrillic" , bmp : "Ѐ-ӿ" } , { name : "InCyrillic_Extended_A" , bmp : "ⷠ-ⷿ" } , { name : "InCyrillic_Extended_B" , bmp : "Ꙁ-ꚟ" } , { name : "InCyrillic_Supplement" , bmp : "Ԁ-ԯ" } , { name : "InDeseret" , astral : "<22> [<5B> -<2D> ]" } , { name : "InDevanagari" , bmp : "ऀ-ॿ" } , { name : "InDevanagari_Extended" , bmp : "꣠-ꣿ" } , { name : "InDingbats" , bmp : "✀-➿" } , { name : "InDomino_Tiles" , astral : "<22> [<5B> -<2D> ]" } , { name : "InEgyptian_Hieroglyphs" , astral : "<22> [<5B> -<2D> ]|<7C> [<5B> -<2D> ]" } , { name : "InEmoticons" , astral : "<22> [<5B> -<2D> ]" } , { name : "InEnclosed_Alphanumeric_Supplement" , astral : "<22> [<5B> -<2D> ]" } , { name : "InEnclosed_Alphanumerics" , bmp : "①-⓿" } , { name : "InEnclosed_CJK_Letters_and_Months" , bmp : "㈀-㋿" } , { name : "InEnclosed_Ideographic_Supplement" , astral : "<22> [<5B> -<2D> ]" } , { name : "InEthiopic" , bmp : "ሀ -" } , { name : "InEthiopic_Extended" , bmp : "ⶀ-" } , { name : "InEthiopic_Extended_A" , bmp : "-" } , { name : "InEthiopic_Supplement" , bmp : "ᎀ-" } , { name : "InGeneral_Punctuation" , bmp : " - " } , { name : "InGeometric_Shapes" , bmp : "■-◿" } , { name : "InGeorgian" , bmp : "Ⴀ-ჿ " } , { name : "InGeorgian_Supplement" , bmp : "ⴀ-" } , { name : "InGlagolitic" , bmp : "Ⰰ-ⱟ" } , { name : "InGothic" , astral : "<22> [<5B> -<2D> ]" } , { name : "InGreek_Extended" , bmp : "ἀ-" } , { name : "InGreek_and_Coptic" , bmp : "Ͱ-Ͽ" } , { name : "InGujarati" , bmp : "-૿" } , { name : "InGurmukhi" , bmp : "-" } , { name : "InHalfwidth_and_Fullwidth_Forms" , bmp : "-" } , { name : "InHangul_Compatibility_Jamo" , bmp : "-" } , { name : "InHangul_Jamo" , bmp : "ᄀ-ᇿ" } , { name : "InHangul_Jamo_Extended_A" , bmp : "ꥠ-" } , { name : "InHangul_Jamo_Extended_B" , bmp : "ힰ-" } , { name : "InHangul_Syllables" , bmp : "가-" } , { name : "InHanunoo" , bmp : "ᜠ-" } , { name : "InHebrew" , bmp : "-" } , { name : "InHigh_Private_Use_Surrogates" , bmp : "<22> -<2D> " } , { name : "InHigh_Surrogates" , bmp : "<22> -<2D> " } , { name : "InHiragana" , bmp : "-ゟ" } , { name : "InIPA_Extensions" , bmp : "ɐ-ʯ" } , { name : "InIdeographic_Description_Characters" , bmp : "⿰-" } , { name : "InImperial_Aramaic" , astral : "<22> [<5B> -<2D> ]" } , { name : "InInscriptional_Pahlavi" , astral : "<22> [<5B> -<2D> ]" } , { name : "InInscriptional_Parthian" , astral : "<22> [<5B> -<2D> ]" } , { name : "InJavanese" , bmp : "ꦀ-꧟" } , { name : "InKaithi" , astral : "<22> [<5B> -<2D> ]" } , { name : "InKana_Supplement" , astral : "<22> [<5B> -<2D> ]" } , { name : "InKanbun" , bmp : "㆐-㆟" } , { name : "InKangxi_Radicals" , bmp : "⼀-" } , { name : "InKannada" , bmp : "ಀ-" } , { name : "InKatakana" , bmp : "゠ -ヿ" } , { name : "InKatakana_Phonetic_Extensions" , bmp : "ㇰ-ㇿ" } , { name : "InKayah_Li" , bmp : "꤀-꤯" } , { name : "InKharoshthi" , astral : "<22> [<5B> -<2D> ]" } , { name : "InKhmer" , bmp : "ក-" } , { name : "InKhmer_Symbols" , bmp : "᧠-᧿" } , { name : "InLao" , bmp : "-" } , { name : "InLatin_Extended_Additional" , bmp : "Ḁ-ỿ " } , {
if ( "(" === u ) ++ c ; else if ( "\\" === u . charAt ( 0 ) ) { var d = + u . substring ( 1 ) ; d && ( c >= d ? s [ d ] = - 1 : n [ l ] = t ( d ) ) } } for ( var l = 1 ; l < s . length ; ++ l ) - 1 === s [ l ] && ( s [ l ] = ++ i ) ; for ( var l = 0 , c = 0 ; a > l ; ++ l ) { var u = n [ l ] ; if ( "(" === u ) ++ c , s [ c ] || ( n [ l ] = "(?:" ) ; else if ( "\\" === u . charAt ( 0 ) ) { var d = + u . substring ( 1 ) ; d && c >= d && ( n [ l ] = "\\" + s [ d ] ) } } for ( var l = 0 ; a > l ; ++ l ) "^" === n [ l ] && "^" !== n [ l + 1 ] && ( n [ l ] = "" ) ; if ( e . ignoreCase && o ) for ( var l = 0 ; a > l ; ++ l ) { var u = n [ l ] , p = u . charAt ( 0 ) ; u . length >= 2 && "[" === p ? n [ l ] = r ( u ) : "\\" !== p && ( n [ l ] = u . replace ( /[a-zA-Z]/g , function ( e ) { var n = e . charCodeAt ( 0 ) ; return "[" + String . fromCharCode ( - 33 & n , 32 | n ) + "]" } ) ) } return n . join ( "" ) } for ( var i = 0 , o = ! 1 , s = ! 1 , l = 0 , c = e . length ; c > l ; ++ l ) { var u = e [ l ] ; if ( u . ignoreCase ) s = ! 0 ; else if ( /[a-z]/i . test ( u . source . replace ( /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi , "" ) ) ) { o = ! 0 , s = ! 1 ; break } } for ( var d = { b : 8 , t : 9 , n : 10 , v : 11 , f : 12 , r : 13 } , p = [ ] , l = 0 , c = e . length ; c > l ; ++ l ) { var u = e [ l ] ; if ( u . global || u . multiline ) throw new Error ( "" + u ) ; p . push ( "(?:" + a ( u ) + ")" ) } return new RegExp ( p . join ( "|" ) , s ? "gi" : "g" ) } function n ( e , n ) { function t ( e ) { var l = e . nodeType ; if ( 1 == l ) { if ( r . test ( e . className ) ) return ; for ( var c = e . firstChild ; c ; c = c . nextSibling ) t ( c ) ; var u = e . nodeName . toLowerCase ( ) ; ( "br" === u || "li" === u ) && ( a [ s ] = "\n" , o [ s << 1 ] = i ++ , o [ s ++ << 1 | 1 ] = e ) } else if ( 3 == l || 4 == l ) { var d = e . nodeValue ; d . length && ( d = n ? d . replace ( /\r\n?/g , "\n" ) : d . replace ( /[ \t\r\n]+/g , " " ) , a [ s ] = d , o [ s << 1 ] = i , i += d . length , o [ s ++ << 1 | 1 ] = e ) } } var r = /(?:^|\s)nocode(?:\s|$)/ , a = [ ] , i = 0 , o = [ ] , s = 0 ; return t ( e ) , { sourceCode : a . join ( "" ) . replace ( /\n$/ , "" ) , spans : o } } function t ( e , n , t , r ) { if ( n ) { var a = { sourceCode : n , basePos : e } ; t ( a ) , r . push . apply ( r , a . decorations ) } } function r ( e ) { for ( var n = void 0 , t = e . firstChild ; t ; t = t . nextSibling ) { var r = t . nodeType ; n = 1 === r ? n ? e : t : 3 === r && U . test ( t . nodeValue ) ? e : n } return n === e ? void 0 : n } function a ( n , r ) { var a , i = { } ; ! function ( ) { for ( var t = n . concat ( r ) , o = [ ] , s = { } , l = 0 , c = t . length ; c > l ; ++ l ) { var u = t [ l ] , d = u [ 3 ] ; if ( d ) for ( var p = d . length ; -- p >= 0 ; ) i [ d . charAt ( p ) ] = u ; var f = u [ 1 ] , m = "" + f ; s . hasOwnProperty ( m ) || ( o . push ( f ) , s [ m ] = null ) } o . push ( /[\0-\uffff]/ ) , a = e ( o ) } ( ) ; var o = r . length , s = function ( e ) { for ( var n = e . sourceCode , l = e . basePos , u = [ l , P ] , d = 0 , p = n . match ( a ) || [ ] , f = { } , m = 0 , g = p . length ; g > m ; ++ m ) { var h , v = p [ m ] , b = f [ v ] , w = void 0 ; if ( "string" == typeof b ) h = ! 1 ; else { var x = i [ v . charAt ( 0 ) ] ; if ( x ) w = v . match ( x [ 1 ] ) , b = x [ 0 ] ; else { for ( var y = 0 ; o > y ; ++ y ) if ( x = r [ y ] , w = v . match ( x [ 1 ] ) ) { b = x [ 0 ] ; break } w || ( b = P ) } h = b . length >= 5 && "lang-" === b . substring ( 0 , 5 ) , ! h || w && "string" == typeof w [ 1 ] || ( h = ! 1 , b = O ) , h || ( f [ v ] = b ) } var C = d ; if ( d += v . length , h ) { var k = w [ 1 ] , S = v . indexOf ( k ) , _ = S + k . length ; w [ 2 ] && ( _ = v . length - w [ 2 ] . length , S = _ - k . length ) ; var E = b . substring ( 5 ) ; t ( l + C , v . substring ( 0 , S ) , s , u ) , t ( l + C + S , k , c ( E , k ) , u ) , t ( l + C + _ , v . substring ( _ ) , s , u ) } else u . push ( l + C , b ) } e . decorations = u } ; return s } function i ( e ) { var n = [ ] , t = [ ] ; n . push ( e . tripleQuotedStrings ? [ M , /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/ , null , "'\"" ] : e . multiLineStrings ? [ M , /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/ , null , "'\"`" ] : [ M , /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/ , null , "\"'" ] ) , e . verbatimStrings && t . push ( [ M , /^@\"(?:[^\"]|\"\")*(?:\"|$)/ , null ] ) ; var r = e . hashComments ; r && ( e . cStyleComments ? ( n . push ( r > 1 ? [ L , /^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/ , null , "#" ] : [ L , /^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/ , null , "#" ] ) , t . push ( [ M , /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/ , null ] ) ) : n . push ( [ L , /^#[^\r\n]*/ , null , "#" ] ) ) , e . cStyleComments && ( t . push ( [ L , /^\/\/[^\r\n]*/ , null ] ) , t . push ( [ L , /^\/\*[\s\S]*?(?:\*\/|$)/ , null ] ) ) ; var i = e . regexLiterals ; if ( i ) { var o = i > 1 ? "" : "\n\r" , s = o ? "." : "[\\S\\s]" , l = "/(?=[^/*" + o + "])(?:[^/\\x5B\\x5C" + o + "]|\\x5C" + s + "|\\x5B(?:[^\\x5C\\x5D" + o + "]|\\x5C" + s + ")*(?:\\x5D|$))+/" ; t . push ( [ "lang-regex" , RegExp ( "^" + q + "(" + l + ")" ) ] ) } var c = e . types ; c && t . push ( [ A , c ] ) ; var u = ( "" + e . keywords ) . replace ( /^ | $/g , "" ) ; u . length && t . push ( [ $ , new RegExp ( "^(?:" + u . replace ( /[\s,]+/g , "|" ) + ")\\b" ) , null ] ) , n . push ( [ P , /^\s+/ , null , " \r\n " ] ) ; var d = "^.[^\\s\\w.$@'\"`/\\\\]*" ; return e . regexLiterals && ( d += "(?!s*/)" ) , t . push ( [ R , / ^ @ [ a - z _ $ ] [ a - z _ $ @ 0 -
2017-02-18 20:01:43 +08:00
var l = function ( e ) { return o . strings [ e ] || g [ e ] } ; t = t || "" ; var c = this . hooks = new Markdown . HookCollection ; c . addNoop ( "onPreviewRefresh" ) , c . addNoop ( "postBlockquoteCreation" ) , c . addFalse ( "insertImageDialog" ) , c . addFalse ( "insertLinkDialog" ) , this . getConverter = function ( ) { return e } ; var u , d , p = this ; this . run = function ( s , f ) { if ( ! u ) { u = new n ( t , s ) ; var m , g = new i ( c , l ) , v = new r ( e , u , function ( ) { c . onPreviewRefresh ( ) } , f ) , b = ( navigator . platform . match ( /mac|win|linux/i ) || [ "other" ] ) [ 0 ] . toLowerCase ( ) , w = "mac" == b , x = function ( e ) { var n = h [ e ] [ w ? "mac" : "win" ] , t = n . indexOf ( "|" ) ; return n . substring ( 0 , t > 0 ? t : n . length ) } ; m = new a ( t , u , d , v , g , o . helpButton , l , x ) , m . setUndoRedoButtonStates ( ) ; var y = p . refreshPreview = function ( ) { v . refresh ( ! 0 ) } ; y ( ) , p . uiManager = m } } } , e . prototype . findTags = function ( e , n ) { var t , r = this ; e && ( t = s . extendRegExp ( e , "" , "$" ) , this . before = this . before . replace ( t , function ( e ) { return r . startTag = r . startTag + e , "" } ) , t = s . extendRegExp ( e , "^" , "" ) , this . selection = this . selection . replace ( t , function ( e ) { return r . startTag = r . startTag + e , "" } ) ) , n && ( t = s . extendRegExp ( n , "" , "$" ) , this . selection = this . selection . replace ( t , function ( e ) { return r . endTag = e + r . endTag , "" } ) , t = s . extendRegExp ( n , "^" , "" ) , this . after = this . after . replace ( t , function ( e ) { return r . endTag = e + r . endTag , "" } ) ) } , e . prototype . trimWhitespace = function ( e ) { var n , t , r = this ; e ? n = t = "" : ( n = function ( e ) { return r . before += e , "" } , t = function ( e ) { return r . after = e + r . after , "" } ) , this . selection = this . selection . replace ( /^(\s*)/ , n ) . replace ( /(\s*)$/ , t ) } , e . prototype . skipLines = function ( e , n , t ) { void 0 === e && ( e = 1 ) , void 0 === n && ( n = 1 ) , e ++ , n ++ ; var r , a ; if ( navigator . userAgent . match ( /Chrome/ ) && "X" . match ( /()./ ) , this . selection = this . selection . replace ( /(^\n*)/ , "" ) , this . startTag = this . startTag + d . $1 , this . selection = this . selection . replace ( /(\n*$)/ , "" ) , this . endTag = this . endTag + d . $1 , this . startTag = this . startTag . replace ( /(^\n*)/ , "" ) , this . before = this . before + d . $1 , this . endTag = this . endTag . replace ( /(\n*$)/ , "" ) , this . after = this . after + d . $1 , this . before ) { for ( r = a = "" ; e -- ; ) r += "\\n?" , a += "\n" ; t && ( r = "\\n*" ) , this . before = this . before . replace ( new d ( r + "$" , "" ) , a ) } if ( this . after ) { for ( r = a = "" ; n -- ; ) r += "\\n?" , a += "\n" ; t && ( r = "\\n*" ) , this . after = this . after . replace ( new d ( r , "" ) , a ) } } , s . isVisible = function ( e ) { return window . getComputedStyle ? "none" !== window . getComputedStyle ( e , null ) . getPropertyValue ( "display" ) : e . currentStyle ? "none" !== e . currentStyle . display : void 0 } , s . addEvent = function ( e , n , t ) { e . attachEvent ? e . attachEvent ( "on" + n , t ) : e . addEventListener ( n , t , ! 1 ) } , s . removeEvent = function ( e , n , t ) { e . detachEvent ? e . detachEvent ( "on" + n , t ) : e . removeEventListener ( n , t , ! 1 ) } , s . fixEolChars = function ( e ) { return e = e . replace ( /\r\n/g , "\n" ) , e = e . replace ( /\r/g , "\n" ) } , s . extendRegExp = function ( e , n , t ) { ( null === n || void 0 === n ) && ( n = "" ) , ( null === t || void 0 === t ) && ( t = "" ) ; var r , a = e . toString ( ) ; return a = a . replace ( /\/([gim]*)$/ , function ( e , n ) { return r = n , "" } ) , a = a . replace ( /(^\/|\/$)/g , "" ) , a = n + a + t , new d ( a , r ) } , l . getTop = function ( e , n ) { var t = e . offsetTop ; if ( ! n ) for ( ; e = e . offsetParent ; ) t += e . offsetTop ; return t } , l . getHeight = function ( e ) { return e . offsetHeight || e . scrollHeight } , l . getWidth = function ( e ) { return e . offsetWidth || e . scrollWidth } , l . getPageSize = function ( ) { var e , n , t , r ; self . innerHeight && self . scrollMaxY ? ( e = u . body . scrollWidth , n = self . innerHeight + self . scrollMaxY ) : u . body . scrollHeight > u . body . offsetHeight ? ( e = u . body . scrollWidth , n = u . body . scrollHeight ) : ( e = u . body . offsetWidth , n = u . body . offsetHeight ) , self . innerHeight ? ( t = self . innerWidth , r = self . innerHeight ) : u . documentElement && u . documentElement . clientHeight ? ( t = u . documentElement . clientWidth , r = u . documentElement . clientHeight ) : u . body && ( t = u . body . clientWidth , r = u . body . clientHeight ) ; var a = Math . max ( e , t ) , i = Math . max ( n , r ) ; return [ a , i , t , r ] } , c . createBackground = function ( ) { var e = u . createElement ( "div" ) , n = e . style ; e . className = "wmd-prompt-background" , n . position = "absolute" , n . top = "0" , n . zIndex = "1000" , m . isIE ? n . filter = "alpha(opacity=50)" : n . opacity = "0.5" ; var t = l . getPageSize ( ) ; return n . height = t [ 1 ] + "px" , m . isIE ? ( n . left = u . documentElement . scrollLeft , n . width = u . documentElement . clientWidth ) : ( n . left = "0" , n . width = "100%" ) , u . body . appendChild ( e ) , e } , c . prompt = function ( e , n , t ) { var r , a ; void 0 === n && ( n = "" ) ; var i = function ( e ) { var n = e . charCode || e . keyCode ; 27 === n && o ( ! 0 ) } , o = function ( e ) { s . removeEvent ( u . body , "keydown" , i ) ; var n =
2021-03-26 14:19:53 +08:00
n . enabled && e . some ( n . config . extensions , function ( e ) { return "fenced_code_gfm" == e } ) && ( i = "^```.*\\n[\\s\\S]*?\\n```|" + i ) , t . enabled && ( i = "^[ \\t]*\\n\\$\\$[\\s\\S]*?\\$\\$|" + i , i = "^[ \\t]*\\n\\\\\\\\[[\\s\\S]*?\\\\\\\\]|" + i , i = "^[ \\t]*\\n\\\\?\\\\begin\\{[a-z]*\\*?\\}[\\s\\S]*?\\\\end\\{[a-z]*\\*?\\}|" + i ) , i = new RegExp ( i , "gm" ) ; var o = r . getConverter ( ) ; o . hooks . chain ( "preConversion" , function ( n ) { function t ( e , n ) { var t = r . substring ( s , n ) ; o . push ( { text : t , textWithDelimiter : '\n<div class="se-section-delimiter"></div>\n\n' + t + "\n" } ) } a . previewStartTime = new Date ; var r = n + "\n\n" , o = [ ] , s = 0 ; return r . replace ( i , function ( e , n ) { t ( s , n ) , s = n } ) , t ( s , n . length ) , a . onSectionsCreated ( o ) , e . reduce ( o , function ( e , n ) { return e + n . textWithDelimiter } , "" ) } ) } , i } ) , define ( "extensions/partialRendering" , [ "underscore" , "crel" , "extensions/markdownExtra" , "classes/Extension" ] , function ( e , n , t , r ) { function a ( n , t ) { if ( g = [ ] , m = [ ] , u = void 0 , h === ! 0 || c != t ) return h = ! 1 , c = t , m = f , f = n , void ( g = n ) ; var r = f . length ; e . some ( f , function ( e , t ) { return t >= n . length || e . text != n [ t ] . text ? ( r = t , ! 0 ) : void 0 } ) ; var a = - f . length ; e . some ( f . slice ( ) . reverse ( ) , function ( e , t ) { return t >= n . length || e . text != n [ n . length - t - 1 ] . text ? ( a = - t , ! 0 ) : void 0 } ) , r - a > f . length && ( a = r - f . length ) ; var i = f . slice ( 0 , r ) ; g = n . slice ( r , n . length + a ) ; var o = f . slice ( f . length + a , f . length ) ; u = e . first ( o ) , m = f . slice ( r , f . length + a ) , f = i . concat ( g ) . concat ( o ) } function i ( e ) { var n = e . id . substring ( 3 ) ; y [ n ] = e } function o ( ) { function t ( t ) { for ( var r = n ( "div" , { id : "wmd-preview-section-" + t . id , "class" : "wmd-preview-section preview-content" } ) , o = ! 1 ; a ; ) { var s = a . nextSibling ; if ( o === ! 0 && "DIV" == a . tagName && "se-section-delimiter" == a . className ) break ; o = ! 0 , "DIV" == a . tagName && "footnotes" == a . className ? e . each ( a . querySelectorAll ( "ol > li" ) , i ) : r . appendChild ( a ) , a = s } return r } e . each ( m , function ( e ) { var n = document . getElementById ( "wmd-preview-section-" + e . id ) ; x . removeChild ( n ) } ) ; var r = document . getElementById ( "wmd-preview" ) , a = r . firstChild , o = document . createDocumentFragment ( ) ; e . each ( g , function ( e ) { o . appendChild ( t ( e ) ) } ) , r . innerHTML = "" ; var s = w ; void 0 !== u && ( s = document . getElementById ( "wmd-preview-section-" + u . id ) ) , x . insertBefore ( o , s ) , w . innerHTML = "" ; var l = [ ] ; if ( b === ! 0 ) { var c = n ( "ol" ) ; e . each ( x . querySelectorAll ( "a.footnote" ) , function ( e , n ) { e . textContent = n + 1 ; var t = e . id . substring ( 6 ) ; l . push ( t ) , c . appendChild ( y [ t ] . cloneNode ( ! 0 ) ) } ) , l . length > 0 && w . appendChild ( n ( "div" , { "class" : "footnotes" } , n ( "hr" ) , c ) ) , y = e . pick ( y , l ) } } function s ( n ) { l = n . getConverter ( ) , l . hooks . chain ( "preConversion" , function ( ) { var n = e . map ( g , function ( e ) { return e . text } ) ; return n . push ( c + "\n\n" ) , n . join ( "" ) } ) , n . hooks . chain ( "onPreviewRefresh" , function ( ) { o ( ) } ) } var l , c , u , d = new r ( "partialRendering" , "Partial Rendering" , ! 0 ) , p = 0 , f = [ ] , m = [ ] , g = [ ] , h = ! 1 , v = ! 1 , b = ! 1 ; d . onSectionsCreated = function ( n ) { var t = [ ] , r = "\n" ; b = ! 1 , e . each ( n , function ( e ) { var n = e . textWithDelimiter + "\n" ; v && ( n = n . replace ( /^```.*\n[\s\S]*?\n```|\n[ ]{0,3}\[\^(.+?)\]\:[ \t]*\n?([\s\S]*?)\n{1,2}((?=\n[ ]{0,3}\S)|$)/gm , function ( e , n ) { return n ? ( b = ! 0 , r += e . replace ( /^\s*\n/gm , "" ) + "\n" , "" ) : e } ) ) , n = n . replace ( /^```.*\n[\s\S]*?\n```|^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?(?=\s|$)[ \t]*\n?[ \t]*((\n*)["(](.+?)[")][ \t]*)?(?:\n+)/gm , function ( e , n ) { return n ? ( r += e . replace ( /^\s*\n/gm , "" ) + "\n" , "" ) : e } ) , t . push ( { id : ++ p , text : n + "\n" } ) } ) , a ( t , r ) } ; var w , x , y = { } ; return d . onPagedownConfigure = s , d . onToggleMode = s , d . onInit = function ( ) { t . enabled && e . some ( t . config . extensions , function ( e ) { return "footnotes" == e } ) && ( v = ! 0 ) } , d . onReady = function ( ) { w = n ( "div" , { id : "wmd-preview-section-footnotes" , "class" : "preview-content" } ) , x = document . getElementById ( "preview-contents" ) , x . appendChild ( w ) } , d . onFileSelected = function ( ) { h = ! 0 } , d } ) , define ( "extensions/umlDiagrams" , [ "require" , "underscore" , "utils" , "classes/Extension" , "crel" ] , function ( e , n , t , r , a ) { function i ( ) { var t = c . querySelectorAll ( ".prettyprint > .language-flow" ) ; t && 0 != t . length && e ( [ "flow-chart" ] , function ( e ) { n . each ( t , function ( n ) { try { var t = e . parse ( n . textContent ) , r = n . parentNode , i = a ( "div" , { "class" : "flow-chart" } ) ; r . parentNode . replaceChild ( i , r ) , t . drawSVG ( i , JSON . parse ( l . config . flowchartOptions ) ) } catch ( o ) { console . error ( o ) } } ) } ) } function o ( ) { var t = c . querySelectorAll ( ".prettyprint > .language-sequence" ) ; t && 0 != t . length && e ( [ "Diagram" ] , function ( e ) { n . each ( t , function ( n ) { t
break ; case "h" : u ( x . heading ) ; break ; case "r" : u ( x . hr ) ; break ; case "y" : u ( x . redo ) ; break ; case "z" : u ( e . shiftKey ? x . redo : x . undo ) ; break ; case "v" : return void t . setMode ( "typing" ) ; case "x" : return void t . setMode ( "deleting" ) ; default : return } e . preventDefault && e . preventDefault ( ) , window . event && ( window . event . returnValue = ! 1 ) } } ) , l . addEvent ( b , "keyup" , function ( e ) { if ( e . shiftKey && ! e . ctrlKey && ! e . metaKey ) { var n = e . charCode || e . keyCode ; if ( 13 === n ) { var t = { } ; t . textOp = m ( "doAutoindent" ) , u ( t ) } } } ) , g . isIE && l . addEvent ( b , "keydown" , function ( e ) { var n = e . keyCode ; return 27 === n ? ! 1 : void 0 } ) , MD . insertLink = c , MD . insertLink2 = c , this . setUndoRedoButtonStates = v , this . buttons = x , this . setButtonState = p } function o ( e , n ) { this . hooks = e , this . getString = n } function s ( e ) { return e . replace ( /^\s*(.*?)(?:\s+"(.+)")?\s*$/ , function ( e , n , t ) { return n = n . replace ( /\?.*$/ , function ( e ) { return e . replace ( /\+/g , " " ) } ) , n = decodeURIComponent ( n ) , n = encodeURI ( n ) . replace ( /'/g , "%27" ) . replace ( /\(/g , "%28" ) . replace ( /\)/g , "%29" ) , n = n . replace ( /\?.*$/ , function ( e ) { return e . replace ( /\+/g , "%2b" ) } ) , t && ( t = t . trim ? t . trim ( ) : t . replace ( /^\s*/ , "" ) . replace ( /\s*$/ , "" ) , t = t . replace ( /"/g , "quot;" ) . replace ( /\(/g , "(" ) . replace ( /\)/g , ")" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) ) , t ? n + ' "' + t + '"' : n } ) } var l = { } , c = { } , u = { } , d = window . document , p = window . RegExp , f = window . navigator , m = { lineLength : 72 } , g = { isIE : /msie/ . test ( f . userAgent . toLowerCase ( ) ) , isIE _5or6 : /msie 6/ . test ( f . userAgent . toLowerCase ( ) ) || /msie 5/ . test ( f . userAgent . toLowerCase ( ) ) , isOpera : /opera/ . test ( f . userAgent . toLowerCase ( ) ) } , h = { bold : getMsg ( "Strong" ) + " <strong> Ctrl/Cmd+B" , boldexample : getMsg ( "strong text" ) , italic : getMsg ( "Emphasis" ) + " <em> Ctrl/Cmd+I" , italicexample : getMsg ( "emphasized text" ) , link : getMsg ( "Hyperlink" ) + " <a> Ctrl/Cmd+L" , linkdescription : getMsg ( "enter link description here" ) , linkdialog : '<p><b>Insert Hyperlink</b></p><p>http://example.com/ "optional title"</p>' , quote : getMsg ( "Blockquote" ) + " <blockquote> Ctrl/Cmd+Q" , quoteexample : getMsg ( "Blockquote" ) , code : getMsg ( "Code Sample" ) + " <pre><code> Ctrl/Cmd+K" , codeexample : getMsg ( "enter code here" ) , image : getMsg ( "Image" ) + "<img> Ctrl/Cmd+G" , imagedescription : getMsg ( "enter image description here" ) , imagedialog : "<p><b>Insert Image</b></p><p>http://example.com/images/diagram.jpg \"optional title\"<br><br>Need <a href='http://www.google.com/search?q=free+image+hosting' target='_blank'>free image hosting?</a></p>" , olist : getMsg ( "Numbered List" ) + " <ol> Ctrl/Cmd+O" , ulist : getMsg ( "Bulleted List" ) + " <ul> Ctrl/Cmd+U" , litem : getMsg ( "List item" ) , heading : getMsg ( "Heading" ) + " <h1>/<h2> Ctrl/Cmd+H" , headingexample : getMsg ( "Heading" ) , hr : getMsg ( "Horizontal Rule" ) + " <hr> Ctrl/Cmd+R" , undo : getMsg ( "Undo" ) + " - Ctrl/Cmd+Z" , redo : getMsg ( "Redo" ) + " - Ctrl/Cmd+Y" , redomac : getMsg ( "Redo" ) + " - Ctrl+Shift+Z" , help : "Markdown Editing Help" } , v = "http://" , b = "http://" ; Markdown . EditorLight = function ( e , r , s ) { s = s || { } , "function" == typeof s . handler && ( s = { helpButton : s } ) , s . strings = s . strings || { } , s . helpButton && ( s . strings . help = s . strings . help || s . helpButton . title ) ; var l = function ( e ) { return s . strings [ e ] || h [ e ] } ; r = r || "" ; var c = this . hooks = new Markdown . HookCollection ; c . addNoop ( "onPreviewRefresh" ) , c . addNoop ( "postBlockquoteCreation" ) , c . addFalse ( "insertImageDialog" ) , c . addFalse ( "insertLinkDialog" ) , this . getConverter = function ( ) { return e } ; var u , p , f = this ; this . run = function ( m ) { if ( ! u ) { u = new n ( r ) ; var g , h = new o ( c , l ) , v = new a ( e , u , function ( ) { c . onPreviewRefresh ( ) } , m ) ; /\?noundo/ . test ( d . location . href ) || ( p = new t ( function ( ) { v . refresh ( ) , g && g . setUndoRedoButtonStates ( ) } , u ) , this . textOperation = function ( e ) { p . setCommandMode ( ) , e ( ) , f . refreshPreview ( ) } ) , g = new i ( r , u , p , v , h , s . helpButton , l ) , g . setUndoRedoButtonStates ( ) , f . refreshPreview = function ( ) { v . refresh ( ! 0 ) } , f . undoManager = p , f . uiManager = g } } } , e . prototype . findTags = function ( e , n ) { var t , r = this ; e && ( t = l . extendRegExp ( e , "" , "$" ) , this . before = this . before . replace ( t , function ( e ) { return r . startTag = r . startTag + e , "" } ) , t = l . extendRegExp ( e , "^" , "" ) , this . selection = this . selection . replace ( t , function ( e ) { return r . startTag = r . startTag + e , "" } ) ) , n && ( t = l . extendRegExp ( n , "" , "$" ) , this . selection = this . selection . replace ( t , function ( e ) { return r . endTag = e + r . endTag , "" } ) , t = l . extendRegExp ( n , "^" , "" ) , this . after = this . after . replace ( t , function ( e ) { return
2015-12-25 11:50:05 +08:00
} ( navigator . userAgent || navigator . vendor || window . opera ) , window . lightModeForce ) window . lightMode = ! 0 ; else { var mode = localS . get ( localSModeKey ) ; "light" === mode && ( window . lightMode = ! 0 ) } window . theme = localStorage . themeV3 || "default" ; var themeModule = "less!themes/default" ; require ( [ "core" , "eventMgr" ] , function ( e ) { $ ( function ( ) { e . onReady ( ) } ) } ) , define ( "main" , function ( ) { } ) ;