/ *
* / M a t h J a x / c o n f i g / T e X - A M S _ H T M L . j s
*
* Copyright ( c ) 2010 - 2018 The MathJax Consortium
*
* Part of the MathJax library .
* See http : //www.mathjax.org for details.
*
* Licensed under the Apache License , Version 2.0 ;
* you may not use this file except in compliance with the License .
*
* http : //www.apache.org/licenses/LICENSE-2.0
* /
MathJax . Ajax . Preloading (
"[MathJax]/jax/input/TeX/config.js" ,
"[MathJax]/jax/output/HTML-CSS/config.js" ,
"[MathJax]/jax/output/PreviewHTML/config.js" ,
"[MathJax]/extensions/tex2jax.js" ,
"[MathJax]/extensions/MathEvents.js" ,
"[MathJax]/extensions/MathZoom.js" ,
"[MathJax]/extensions/MathMenu.js" ,
"[MathJax]/jax/element/mml/jax.js" ,
"[MathJax]/extensions/toMathML.js" ,
"[MathJax]/extensions/TeX/noErrors.js" ,
"[MathJax]/extensions/TeX/noUndefined.js" ,
"[MathJax]/jax/input/TeX/jax.js" ,
"[MathJax]/extensions/TeX/AMSmath.js" ,
"[MathJax]/extensions/TeX/AMSsymbols.js" ,
"[MathJax]/jax/output/PreviewHTML/jax.js" ,
"[MathJax]/extensions/fast-preview.js" ,
"[MathJax]/extensions/AssistiveMML.js" ,
"[MathJax]/extensions/a11y/accessibility-menu.js"
) ;
MathJax . Hub . Config ( { showMathMenu : false , messageStyle : "none" } ) ; function getCKE ( ) { if ( typeof window . parent . CKEDITOR == 'object' ) { return window . parent . CKEDITOR ; } else { return window . parent . parent . CKEDITOR ; } } function update ( ) { MathJax . Hub . Queue ( [ 'Typeset' , MathJax . Hub , this . buffer ] , function ( ) { getCKE ( ) . tools . callFunction ( window . mathjax _done ) ; } ) ; } MathJax . Hub . Queue ( function ( ) { getCKE ( ) . tools . callFunction ( window . mathjax _loaded ) ; } ) ;
MathJax . Hub . Config ( {
extensions : [ '[a11y]/accessibility-menu.js' ]
} ) ;
MathJax . InputJax . TeX = MathJax . InputJax ( { id : "TeX" , version : "2.7.5" , directory : MathJax . InputJax . directory + "/TeX" , extensionDir : MathJax . InputJax . extensionDir + "/TeX" , config : { TagSide : "right" , TagIndent : "0.8em" , MultLineWidth : "85%" , equationNumbers : { autoNumber : "none" , formatNumber : function ( a ) { return a } , formatTag : function ( a ) { return "(" + a + ")" } , formatID : function ( a ) { return "mjx-eqn-" + String ( a ) . replace ( /\s/g , "_" ) } , formatURL : function ( b , a ) { return a + "#" + encodeURIComponent ( b ) } , useLabelIds : true } } , resetEquationNumbers : function ( ) { } } ) ; MathJax . InputJax . TeX . Register ( "math/tex" ) ; MathJax . InputJax . TeX . loadComplete ( "config.js" ) ;
MathJax . OutputJax [ "HTML-CSS" ] = MathJax . OutputJax ( { id : "HTML-CSS" , version : "2.7.5" , directory : MathJax . OutputJax . directory + "/HTML-CSS" , extensionDir : MathJax . OutputJax . extensionDir + "/HTML-CSS" , autoloadDir : MathJax . OutputJax . directory + "/HTML-CSS/autoload" , fontDir : MathJax . OutputJax . directory + "/HTML-CSS/fonts" , webfontDir : MathJax . OutputJax . fontDir + "/HTML-CSS" , config : { noReflows : true , matchFontHeight : true , scale : 100 , minScaleAdjust : 50 , availableFonts : [ "STIX" , "TeX" ] , preferredFont : "TeX" , webFont : "TeX" , imageFont : "TeX" , undefinedFamily : "STIXGeneral,'Arial Unicode MS',serif" , mtextFontInherit : false , EqnChunk : ( MathJax . Hub . Browser . isMobile ? 10 : 50 ) , EqnChunkFactor : 1.5 , EqnChunkDelay : 100 , linebreaks : { automatic : false , width : "container" } , styles : { ".MathJax_Display" : { "text-align" : "center" , margin : "1em 0em" } , ".MathJax .merror" : { "background-color" : "#FFFF88" , color : "#CC0000" , border : "1px solid #CC0000" , padding : "1px 3px" , "font-style" : "normal" , "font-size" : "90%" } , ".MathJax .MJX-monospace" : { "font-family" : "monospace" } , ".MathJax .MJX-sans-serif" : { "font-family" : "sans-serif" } , "#MathJax_Tooltip" : { "background-color" : "InfoBackground" , color : "InfoText" , border : "1px solid black" , "box-shadow" : "2px 2px 5px #AAAAAA" , "-webkit-box-shadow" : "2px 2px 5px #AAAAAA" , "-moz-box-shadow" : "2px 2px 5px #AAAAAA" , "-khtml-box-shadow" : "2px 2px 5px #AAAAAA" , filter : "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" , padding : "3px 4px" , "z-index" : 401 } } } } ) ; if ( MathJax . Hub . Browser . isMSIE && document . documentMode >= 9 ) { delete MathJax . OutputJax [ "HTML-CSS" ] . config . styles [ "#MathJax_Tooltip" ] . filter } if ( ! MathJax . Hub . config . delayJaxRegistration ) { MathJax . OutputJax [ "HTML-CSS" ] . Register ( "jax/mml" ) } MathJax . Hub . Register . StartupHook ( "End Config" , [ function ( b , c ) { var a = b . Insert ( { minBrowserVersion : { Firefox : 3 , Opera : 9.52 , MSIE : 6 , Chrome : 0.3 , Safari : 2 , Konqueror : 4 } , inlineMathDelimiters : [ "$" , "$" ] , displayMathDelimiters : [ "$$" , "$$" ] , multilineDisplay : true , minBrowserTranslate : function ( f ) { var e = b . getJaxFor ( f ) , k = [ "[Math]" ] , j ; var h = document . createElement ( "span" , { className : "MathJax_Preview" } ) ; if ( e . inputJax === "TeX" ) { if ( e . root . Get ( "displaystyle" ) ) { j = a . displayMathDelimiters ; k = [ j [ 0 ] + e . originalText + j [ 1 ] ] ; if ( a . multilineDisplay ) { k = k [ 0 ] . split ( /\n/ ) } } else { j = a . inlineMathDelimiters ; k = [ j [ 0 ] + e . originalText . replace ( /^\s+/ , "" ) . replace ( /\s+$/ , "" ) + j [ 1 ] ] } } for ( var g = 0 , d = k . length ; g < d ; g ++ ) { h . appendChild ( document . createTextNode ( k [ g ] ) ) ; if ( g < d - 1 ) { h . appendChild ( document . createElement ( "br" ) ) } } f . parentNode . insertBefore ( h , f ) } } , ( b . config [ "HTML-CSS" ] || { } ) ) ; if ( b . Browser . version !== "0.0" && ! b . Browser . versionAtLeast ( a . minBrowserVersion [ b . Browser ] || 0 ) ) { c . Translate = a . minBrowserTranslate ; b . Config ( { showProcessingMessages : false } ) ; MathJax . Message . Set ( [ "MathJaxNotSupported" , "Your browser does not support MathJax" ] , null , 4000 ) ; b . Startup . signal . Post ( "MathJax not supported" ) } } , MathJax . Hub , MathJax . OutputJax [ "HTML-CSS" ] ] ) ; MathJax . OutputJax [ "HTML-CSS" ] . loadComplete ( "config.js" ) ;
MathJax . OutputJax . PreviewHTML = MathJax . OutputJax ( { id : "PreviewHTML" , version : "2.7.5" , directory : MathJax . OutputJax . directory + "/PreviewHTML" , extensionDir : MathJax . OutputJax . extensionDir + "/PreviewHTML" , noFastPreview : true , config : { scale : 100 , minScaleAdjust : 50 , mtextFontInherit : false , linebreaks : { automatic : false , width : "container" } } } ) ; if ( ! MathJax . Hub . config . delayJaxRegistration ) { MathJax . OutputJax . PreviewHTML . Register ( "jax/mml" ) } MathJax . OutputJax . PreviewHTML . loadComplete ( "config.js" ) ;
MathJax . Extension . tex2jax = { version : "2.7.5" , config : { inlineMath : [ [ "\\(" , "\\)" ] ] , displayMath : [ [ "$$" , "$$" ] , [ "\\[" , "\\]" ] ] , skipTags : [ "script" , "noscript" , "style" , "textarea" , "pre" , "code" , "annotation" , "annotation-xml" ] , ignoreClass : "tex2jax_ignore" , processClass : "tex2jax_process" , processEscapes : false , processEnvironments : true , processRefs : true , preview : "TeX" } , ignoreTags : { br : ( MathJax . Hub . Browser . isMSIE && document . documentMode < 9 ? "\n" : " " ) , wbr : "" , "#comment" : "" } , PreProcess : function ( a ) { if ( ! this . configured ) { this . config = MathJax . Hub . CombineConfig ( "tex2jax" , this . config ) ; if ( this . config . Augment ) { MathJax . Hub . Insert ( this , this . config . Augment ) } if ( typeof ( this . config . previewTeX ) !== "undefined" && ! this . config . previewTeX ) { this . config . preview = "none" } this . configured = true } if ( typeof ( a ) === "string" ) { a = document . getElementById ( a ) } if ( ! a ) { a = document . body } if ( this . createPatterns ( ) ) { this . scanElement ( a , a . nextSibling ) } } , createPatterns : function ( ) { var d = [ ] , e = [ ] , c , a , b = this . config ; this . match = { } ; for ( c = 0 , a = b . inlineMath . length ; c < a ; c ++ ) { d . push ( this . patternQuote ( b . inlineMath [ c ] [ 0 ] ) ) ; this . match [ b . inlineMath [ c ] [ 0 ] ] = { mode : "" , end : b . inlineMath [ c ] [ 1 ] , pattern : this . endPattern ( b . inlineMath [ c ] [ 1 ] ) } } for ( c = 0 , a = b . displayMath . length ; c < a ; c ++ ) { d . push ( this . patternQuote ( b . displayMath [ c ] [ 0 ] ) ) ; this . match [ b . displayMath [ c ] [ 0 ] ] = { mode : "; mode=display" , end : b . displayMath [ c ] [ 1 ] , pattern : this . endPattern ( b . displayMath [ c ] [ 1 ] ) } } if ( d . length ) { e . push ( d . sort ( this . sortLength ) . join ( "|" ) ) } if ( b . processEnvironments ) { e . push ( "\\\\begin\\{([^}]*)\\}" ) } if ( b . processEscapes ) { e . push ( "\\\\*\\\\\\$" ) } if ( b . processRefs ) { e . push ( "\\\\(eq)?ref\\{[^}]*\\}" ) } this . start = new RegExp ( e . join ( "|" ) , "g" ) ; this . skipTags = new RegExp ( "^(" + b . skipTags . join ( "|" ) + ")$" , "i" ) ; var f = [ ] ; if ( MathJax . Hub . config . preRemoveClass ) { f . push ( MathJax . Hub . config . preRemoveClass ) } if ( b . ignoreClass ) { f . push ( b . ignoreClass ) } this . ignoreClass = ( f . length ? new RegExp ( "(^| )(" + f . join ( "|" ) + ")( |$)" ) : /^$/ ) ; this . processClass = new RegExp ( "(^| )(" + b . processClass + ")( |$)" ) ; return ( e . length > 0 ) } , patternQuote : function ( a ) { return a . replace ( /([\^$(){}+*?\-|\[\]\:\\])/g , "\\$1" ) } , endPattern : function ( a ) { return new RegExp ( this . patternQuote ( a ) + "|\\\\.|[{}]" , "g" ) } , sortLength : function ( d , c ) { if ( d . length !== c . length ) { return c . length - d . length } return ( d == c ? 0 : ( d < c ? - 1 : 1 ) ) } , scanElement : function ( c , b , g ) { var a , e , d , f ; while ( c && c != b ) { if ( c . nodeName . toLowerCase ( ) === "#text" ) { if ( ! g ) { c = this . scanText ( c ) } } else { a = ( typeof ( c . className ) === "undefined" ? "" : c . className ) ; e = ( typeof ( c . tagName ) === "undefined" ? "" : c . tagName ) ; if ( typeof ( a ) !== "string" ) { a = String ( a ) } f = this . processClass . exec ( a ) ; if ( c . firstChild && ! a . match ( /(^| )MathJax/ ) && ( f || ! this . skipTags . exec ( e ) ) ) { d = ( g || this . ignoreClass . exec ( a ) ) && ! f ; this . scanElement ( c . firstChild , b , d ) } } if ( c ) { c = c . nextSibling } } } , scanText : function ( c ) { if ( c . nodeValue . replace ( /\s+/ , "" ) == "" ) { return c } var b , d , e = 0 , a ; this . search = { start : true } ; this . pattern = this . start ; while ( c ) { a = null ; this . pattern . lastIndex = e ; e = 0 ; while ( c && c . nodeName . toLowerCase ( ) === "#text" && ( b = this . pattern . exec ( c . nodeValue ) ) ) { if ( this . search . start ) { c = this . startMatch ( b , c ) } else { c = this . endMatch ( b , c ) } } if ( this . search . matched ) { c = this . encloseMath ( c ) } else { if ( ! this . search . start ) { a = this . search } } if ( c ) { do { d = c ; c = c . nextSibling } while ( c && this . ignoreTags [ c . nodeName . toLowerCase ( ) ] != null ) ; if ( ! c || c . nodeName !== "#text" ) { if ( ! a ) { return ( this . search . close ? this . prevEndMatch ( ) : d ) } c = a . open ; e = a . opos + a . olen + ( a . blen || 0 ) ; this . search = { start : true } ; this . pattern = this . start } } } return c } , startMatch : function ( a , b ) { var f = this . match [ a [ 0 ] ] ; if ( f != null ) { this . search = { end : f . end , mode : f . mode , pcount : 0 , open : b , olen : a [ 0 ] . length , opos : this . pattern . lastIndex - a [ 0 ] . length } ; this . switchPattern ( f . pattern ) } else { if ( a [ 0 ] . substr ( 0 , 6 ) === "\\begin" ) { this . search = { end : "\\end{" + a [ 1 ] + "}" , mode : "; mode=display" , pcount : 0 , open : b , olen : 0 , opos : this . pattern . lastIndex - a [ 0 ] . length , blen : a [ 1 ] . length + 3 , isBeginEnd : true } ; this . switchPattern ( this . endPattern ( this . search . end ) ) } else { if ( a [ 0 ] . substr ( 0 , 4 ) === "\\ref" || a [ 0 ] . substr ( 0 , 6 ) === "\\eqref" ) { this . search = { mode : "" , end : "" , open : b , pcount : 0 , olen : 0 , opos : this . pattern . lastIndex - a [ 0 ] . length } ; return this . endMatch ( [ "" ] , b ) } else { var d = a [ 0 ] . substr ( 0 , a [ 0 ] . length - 1 ) , g , c ; if ( d . length % 2 === 0 ) { c = [ d . replace ( /\\\\/g , "\\" ) ] ; g
( function ( d , h , l , g , m , b , j ) { var p = "2.7.5" ; var i = MathJax . Extension ; var c = i . MathEvents = { version : p } ; var k = d . config . menuSettings ; var o = { hover : 500 , frame : { x : 3.5 , y : 5 , bwidth : 1 , bcolor : "#A6D" , hwidth : "15px" , hcolor : "#83A" } , button : { x : - 6 , y : - 3 , wx : - 2 } , fadeinInc : 0.2 , fadeoutInc : 0.05 , fadeDelay : 50 , fadeoutStart : 400 , fadeoutDelay : 15 * 1000 , styles : { ".MathJax_Hover_Frame" : { "border-radius" : ".25em" , "-webkit-border-radius" : ".25em" , "-moz-border-radius" : ".25em" , "-khtml-border-radius" : ".25em" , "box-shadow" : "0px 0px 15px #83A" , "-webkit-box-shadow" : "0px 0px 15px #83A" , "-moz-box-shadow" : "0px 0px 15px #83A" , "-khtml-box-shadow" : "0px 0px 15px #83A" , border : "1px solid #A6D ! important" , display : "inline-block" , position : "absolute" } , ".MathJax_Menu_Button .MathJax_Hover_Arrow" : { position : "absolute" , cursor : "pointer" , display : "inline-block" , border : "2px solid #AAA" , "border-radius" : "4px" , "-webkit-border-radius" : "4px" , "-moz-border-radius" : "4px" , "-khtml-border-radius" : "4px" , "font-family" : "'Courier New',Courier" , "font-size" : "9px" , color : "#F0F0F0" } , ".MathJax_Menu_Button .MathJax_Hover_Arrow span" : { display : "block" , "background-color" : "#AAA" , border : "1px solid" , "border-radius" : "3px" , "line-height" : 0 , padding : "4px" } , ".MathJax_Hover_Arrow:hover" : { color : "white!important" , border : "2px solid #CCC!important" } , ".MathJax_Hover_Arrow:hover span" : { "background-color" : "#CCC!important" } } } ; var n = c . Event = { LEFTBUTTON : 0 , RIGHTBUTTON : 2 , MENUKEY : "altKey" , KEY : { RETURN : 13 , ESCAPE : 27 , SPACE : 32 , LEFT : 37 , UP : 38 , RIGHT : 39 , DOWN : 40 } , Mousedown : function ( q ) { return n . Handler ( q , "Mousedown" , this ) } , Mouseup : function ( q ) { return n . Handler ( q , "Mouseup" , this ) } , Mousemove : function ( q ) { return n . Handler ( q , "Mousemove" , this ) } , Mouseover : function ( q ) { return n . Handler ( q , "Mouseover" , this ) } , Mouseout : function ( q ) { return n . Handler ( q , "Mouseout" , this ) } , Click : function ( q ) { return n . Handler ( q , "Click" , this ) } , DblClick : function ( q ) { return n . Handler ( q , "DblClick" , this ) } , Menu : function ( q ) { return n . Handler ( q , "ContextMenu" , this ) } , Handler : function ( t , r , s ) { if ( l . loadingMathMenu ) { return n . False ( t ) } var q = b [ s . jaxID ] ; if ( ! t ) { t = window . event } t . isContextMenu = ( r === "ContextMenu" ) ; if ( q [ r ] ) { return q [ r ] ( t , s ) } if ( i . MathZoom ) { return i . MathZoom . HandleEvent ( t , r , s ) } } , False : function ( q ) { if ( ! q ) { q = window . event } if ( q ) { if ( q . preventDefault ) { q . preventDefault ( ) } else { q . returnValue = false } if ( q . stopPropagation ) { q . stopPropagation ( ) } q . cancelBubble = true } return false } , Keydown : function ( r , q ) { if ( ! r ) { r = window . event } if ( r . keyCode === n . KEY . SPACE ) { n . ContextMenu ( r , this ) } } , ContextMenu : function ( t , E , w ) { var B = b [ E . jaxID ] , v = B . getJaxFromMath ( E ) ; var F = ( B . config . showMathMenu != null ? B : d ) . config . showMathMenu ; if ( ! F || ( k . context !== "MathJax" && ! w ) ) { return } if ( c . msieEventBug ) { t = window . event || t } n . ClearSelection ( ) ; f . ClearHoverTimer ( ) ; if ( v . hover ) { if ( v . hover . remove ) { clearTimeout ( v . hover . remove ) ; delete v . hover . remove } v . hover . nofade = true } var u = MathJax . Menu ; var G , D ; if ( u ) { if ( u . loadingDomain ) { return n . False ( t ) } G = m . loadDomain ( "MathMenu" ) ; if ( ! G ) { u . jax = v ; var r = u . menu . Find ( "Show Math As" ) . submenu ; r . items [ 0 ] . name = v . sourceMenuTitle ; r . items [ 0 ] . format = ( v . sourceMenuFormat || "MathML" ) ; r . items [ 1 ] . name = j [ v . inputJax ] . sourceMenuTitle ; r . items [ 5 ] . disabled = ! j [ v . inputJax ] . annotationEncoding ; var A = r . items [ 2 ] ; A . disabled = true ; var q = A . submenu . items ; annotationList = MathJax . Hub . Config . semanticsAnnotations ; for ( var z = 0 , y = q . length ; z < y ; z ++ ) { var s = q [ z ] . name [ 1 ] ; if ( v . root && v . root . getAnnotation ( s ) !== null ) { A . disabled = false ; q [ z ] . hidden = false } else { q [ z ] . hidden = true } } var x = u . menu . Find ( "Math Settings" , "MathPlayer" ) ; x . hidden = ! ( v . outputJax === "NativeMML" && d . Browser . hasMathPlayer ) ; return u . menu . Post ( t ) } u . loadingDomain = true ; D = function ( ) { delete u . loadingDomain } } else { if ( l . loadingMathMenu ) { return n . False ( t ) } l . loadingMathMenu = true ; G = l . Require ( "[MathJax]/extensions/MathMenu.js" ) ; D = function ( ) { delete l . loadingMathMenu ; if ( ! MathJax . Menu ) { MathJax . Menu = { } } } } var C = { pageX : t . pageX , pageY : t . pageY , clientX : t . clientX , clientY : t . clientY } ; g . Queue ( G , D , [ "ContextMenu" , n , C , E , w ] ) ; return n . False ( t ) } , AltContextMenu : function ( s , r ) { var t = b [ r . jaxID ] ; var q = ( t . config . showMathMenu != null ? t : d ) . config . showMathMenu ; if ( q ) { q = ( t . config . showMathMenuMSIE != null ? t : d ) . config . showMathMenuMSIE ; if ( k . context === "MathJax" && ! k . mpContext && q ) {
( function ( a , d , f , c , j ) { var k = "2.7.5" ; var i = a . CombineConfig ( "MathZoom" , { styles : { "#MathJax_Zoom" : { position : "absolute" , "background-color" : "#F0F0F0" , overflow : "auto" , display : "block" , "z-index" : 301 , padding : ".5em" , border : "1px solid black" , margin : 0 , "font-weight" : "normal" , "font-style" : "normal" , "text-align" : "left" , "text-indent" : 0 , "text-transform" : "none" , "line-height" : "normal" , "letter-spacing" : "normal" , "word-spacing" : "normal" , "word-wrap" : "normal" , "white-space" : "nowrap" , "float" : "none" , "-webkit-box-sizing" : "content-box" , "-moz-box-sizing" : "content-box" , "box-sizing" : "content-box" , "box-shadow" : "5px 5px 15px #AAAAAA" , "-webkit-box-shadow" : "5px 5px 15px #AAAAAA" , "-moz-box-shadow" : "5px 5px 15px #AAAAAA" , "-khtml-box-shadow" : "5px 5px 15px #AAAAAA" , filter : "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" } , "#MathJax_ZoomOverlay" : { position : "absolute" , left : 0 , top : 0 , "z-index" : 300 , display : "inline-block" , width : "100%" , height : "100%" , border : 0 , padding : 0 , margin : 0 , "background-color" : "white" , opacity : 0 , filter : "alpha(opacity=0)" } , "#MathJax_ZoomFrame" : { position : "relative" , display : "inline-block" , height : 0 , width : 0 } , "#MathJax_ZoomEventTrap" : { position : "absolute" , left : 0 , top : 0 , "z-index" : 302 , display : "inline-block" , border : 0 , padding : 0 , margin : 0 , "background-color" : "white" , opacity : 0 , filter : "alpha(opacity=0)" } } } ) ; var e , b , g ; MathJax . Hub . Register . StartupHook ( "MathEvents Ready" , function ( ) { g = MathJax . Extension . MathEvents . Event ; e = MathJax . Extension . MathEvents . Event . False ; b = MathJax . Extension . MathEvents . Hover } ) ; var h = MathJax . Extension . MathZoom = { version : k , settings : a . config . menuSettings , scrollSize : 18 , HandleEvent : function ( n , l , m ) { if ( h . settings . CTRL && ! n . ctrlKey ) { return true } if ( h . settings . ALT && ! n . altKey ) { return true } if ( h . settings . CMD && ! n . metaKey ) { return true } if ( h . settings . Shift && ! n . shiftKey ) { return true } if ( ! h [ l ] ) { return true } return h [ l ] ( n , m ) } , Click : function ( m , l ) { if ( this . settings . zoom === "Click" ) { return this . Zoom ( m , l ) } } , DblClick : function ( m , l ) { if ( this . settings . zoom === "Double-Click" || this . settings . zoom === "DoubleClick" ) { return this . Zoom ( m , l ) } } , Hover : function ( m , l ) { if ( this . settings . zoom === "Hover" ) { this . Zoom ( m , l ) ; return true } return false } , Zoom : function ( o , u ) { this . Remove ( ) ; b . ClearHoverTimer ( ) ; g . ClearSelection ( ) ; var s = MathJax . OutputJax [ u . jaxID ] ; var p = s . getJaxFromMath ( u ) ; if ( p . hover ) { b . UnHover ( p ) } var q = this . findContainer ( u ) ; var l = Math . floor ( 0.85 * q . clientWidth ) , t = Math . max ( document . body . clientHeight , document . documentElement . clientHeight ) ; if ( this . getOverflow ( q ) !== "visible" ) { t = Math . min ( q . clientHeight , t ) } t = Math . floor ( 0.85 * t ) ; var n = d . Element ( "span" , { id : "MathJax_ZoomFrame" } , [ [ "span" , { id : "MathJax_ZoomOverlay" , onmousedown : this . Remove } ] , [ "span" , { id : "MathJax_Zoom" , onclick : this . Remove , style : { visibility : "hidden" , fontSize : this . settings . zscale } } , [ [ "span" , { style : { display : "inline-block" , "white-space" : "nowrap" } } ] ] ] ] ) ; var z = n . lastChild , w = z . firstChild , r = n . firstChild ; u . parentNode . insertBefore ( n , u ) ; u . parentNode . insertBefore ( u , n ) ; if ( w . addEventListener ) { w . addEventListener ( "mousedown" , this . Remove , true ) } var m = z . offsetWidth || z . clientWidth ; l -= m ; t -= m ; z . style . maxWidth = l + "px" ; z . style . maxHeight = t + "px" ; if ( this . msieTrapEventBug ) { var y = d . Element ( "span" , { id : "MathJax_ZoomEventTrap" , onmousedown : this . Remove } ) ; n . insertBefore ( y , z ) } if ( this . msieZIndexBug ) { var v = d . addElement ( document . body , "img" , { src : "about:blank" , id : "MathJax_ZoomTracker" , width : 0 , height : 0 , style : { width : 0 , height : 0 , position : "relative" } } ) ; n . style . position = "relative" ; n . style . zIndex = i . styles [ "#MathJax_ZoomOverlay" ] [ "z-index" ] ; n = v } var x = s . Zoom ( p , w , u , l , t ) ; if ( this . msiePositionBug ) { if ( this . msieSizeBug ) { z . style . height = x . zH + "px" ; z . style . width = x . zW + "px" } if ( z . offsetHeight > t ) { z . style . height = t + "px" ; z . style . width = ( x . zW + this . scrollSize ) + "px" } if ( z . offsetWidth > l ) { z . style . width = l + "px" ; z . style . height = ( x . zH + this . scrollSize ) + "px" } } if ( this . operaPositionBug ) { z . style . width = Math . min ( l , x . zW ) + "px" } if ( z . offsetWidth > m && z . offsetWidth - m < l && z . offsetHeight - m < t ) { z . style . overflow = "visible" } this . Position ( z , x ) ; if ( this . msieTrapEventBug ) { y . style . height = z . clientHeight + "px" ; y . style . width = z . clientWidth + "px" ; y . style . left = ( parseFloat ( z . style . left ) + z . clientLeft ) + "px" ; y . style . top = ( parse
( function ( f , o , q , e , r ) { var p = "2.7.5" ; var d = MathJax . Callback . Signal ( "menu" ) ; MathJax . Extension . MathMenu = { version : p , signal : d } ; var t = function ( u ) { return MathJax . Localization . _ . apply ( MathJax . Localization , [ [ "MathMenu" , u ] ] . concat ( [ ] . slice . call ( arguments , 1 ) ) ) } ; var i = MathJax . Object . isArray ; var a = f . Browser . isPC , l = f . Browser . isMSIE , m = ( ( document . documentMode || 0 ) > 8 ) ; var j = ( a ? null : "5px" ) ; var s = f . CombineConfig ( "MathMenu" , { delay : 150 , showRenderer : true , showMathPlayer : true , showFontMenu : false , showContext : false , showDiscoverable : false , showLocale : true , showLocaleURL : false , semanticsAnnotations : { TeX : [ "TeX" , "LaTeX" , "application/x-tex" ] , StarMath : [ "StarMath 5.0" ] , Maple : [ "Maple" ] , ContentMathML : [ "MathML-Content" , "application/mathml-content+xml" ] , OpenMath : [ "OpenMath" ] } , windowSettings : { status : "no" , toolbar : "no" , locationbar : "no" , menubar : "no" , directories : "no" , personalbar : "no" , resizable : "yes" , scrollbars : "yes" , width : 400 , height : 300 , left : Math . round ( ( screen . width - 400 ) / 2 ) , top : Math . round ( ( screen . height - 300 ) / 3 ) } , styles : { "#MathJax_About" : { position : "fixed" , left : "50%" , width : "auto" , "text-align" : "center" , border : "3px outset" , padding : "1em 2em" , "background-color" : "#DDDDDD" , color : "black" , cursor : "default" , "font-family" : "message-box" , "font-size" : "120%" , "font-style" : "normal" , "text-indent" : 0 , "text-transform" : "none" , "line-height" : "normal" , "letter-spacing" : "normal" , "word-spacing" : "normal" , "word-wrap" : "normal" , "white-space" : "nowrap" , "float" : "none" , "z-index" : 201 , "border-radius" : "15px" , "-webkit-border-radius" : "15px" , "-moz-border-radius" : "15px" , "-khtml-border-radius" : "15px" , "box-shadow" : "0px 10px 20px #808080" , "-webkit-box-shadow" : "0px 10px 20px #808080" , "-moz-box-shadow" : "0px 10px 20px #808080" , "-khtml-box-shadow" : "0px 10px 20px #808080" , filter : "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" } , "#MathJax_About.MathJax_MousePost" : { outline : "none" } , ".MathJax_Menu" : { position : "absolute" , "background-color" : "white" , color : "black" , width : "auto" , padding : ( a ? "2px" : "5px 0px" ) , border : "1px solid #CCCCCC" , margin : 0 , cursor : "default" , font : "menu" , "text-align" : "left" , "text-indent" : 0 , "text-transform" : "none" , "line-height" : "normal" , "letter-spacing" : "normal" , "word-spacing" : "normal" , "word-wrap" : "normal" , "white-space" : "nowrap" , "float" : "none" , "z-index" : 201 , "border-radius" : j , "-webkit-border-radius" : j , "-moz-border-radius" : j , "-khtml-border-radius" : j , "box-shadow" : "0px 10px 20px #808080" , "-webkit-box-shadow" : "0px 10px 20px #808080" , "-moz-box-shadow" : "0px 10px 20px #808080" , "-khtml-box-shadow" : "0px 10px 20px #808080" , filter : "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" } , ".MathJax_MenuItem" : { padding : ( a ? "2px 2em" : "1px 2em" ) , background : "transparent" } , ".MathJax_MenuArrow" : { position : "absolute" , right : ".5em" , "padding-top" : ".25em" , color : "#666666" , "font-family" : ( l ? "'Arial unicode MS'" : null ) , "font-size" : ".75em" } , ".MathJax_MenuActive .MathJax_MenuArrow" : { color : "white" } , ".MathJax_MenuArrow.RTL" : { left : ".5em" , right : "auto" } , ".MathJax_MenuCheck" : { position : "absolute" , left : ".7em" , "font-family" : ( l ? "'Arial unicode MS'" : null ) } , ".MathJax_MenuCheck.RTL" : { right : ".7em" , left : "auto" } , ".MathJax_MenuRadioCheck" : { position : "absolute" , left : ( a ? "1em" : ".7em" ) } , ".MathJax_MenuRadioCheck.RTL" : { right : ( a ? "1em" : ".7em" ) , left : "auto" } , ".MathJax_MenuLabel" : { padding : ( a ? "2px 2em 4px 1.33em" : "1px 2em 3px 1.33em" ) , "font-style" : "italic" } , ".MathJax_MenuRule" : { "border-top" : ( a ? "1px solid #CCCCCC" : "1px solid #DDDDDD" ) , margin : ( a ? "4px 1px 0px" : "4px 3px" ) } , ".MathJax_MenuDisabled" : { color : "GrayText" } , ".MathJax_MenuActive" : { "background-color" : ( a ? "Highlight" : "#606872" ) , color : ( a ? "HighlightText" : "white" ) } , ".MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus" : { "background-color" : "#E8E8E8" } , ".MathJax_ContextMenu:focus" : { outline : "none" } , ".MathJax_ContextMenu .MathJax_MenuItem:focus" : { outline : "none" } , "#MathJax_AboutClose" : { top : ".2em" , right : ".2em" } , ".MathJax_Menu .MathJax_MenuClose" : { top : "-10px" , left : "-10px" } , ".MathJax_MenuClose" : { position : "absolute" , cursor : "pointer" , display : "inline-block" , border : "2px solid #AAA" , "border-radius" : "18px" , "-webkit-border-radius" : "18px" , "-moz-border-radius" : "18px"
MathJax . ElementJax . mml = MathJax . ElementJax ( { mimeType : "jax/mml" } , { id : "mml" , version : "2.7.5" , directory : MathJax . ElementJax . directory + "/mml" , extensionDir : MathJax . ElementJax . extensionDir + "/mml" , optableDir : MathJax . ElementJax . directory + "/mml/optable" } ) ; MathJax . ElementJax . mml . Augment ( { Init : function ( ) { if ( arguments . length === 1 && arguments [ 0 ] . type === "math" ) { this . root = arguments [ 0 ] } else { this . root = MathJax . ElementJax . mml . math . apply ( this , arguments ) } if ( this . root . attr && this . root . attr . mode ) { if ( ! this . root . display && this . root . attr . mode === "display" ) { this . root . display = "block" ; this . root . attrNames . push ( "display" ) } delete this . root . attr . mode ; for ( var b = 0 , a = this . root . attrNames . length ; b < a ; b ++ ) { if ( this . root . attrNames [ b ] === "mode" ) { this . root . attrNames . splice ( b , 1 ) ; break } } } } } , { INHERIT : "_inherit_" , AUTO : "_auto_" , SIZE : { INFINITY : "infinity" , SMALL : "small" , NORMAL : "normal" , BIG : "big" } , COLOR : { TRANSPARENT : "transparent" } , VARIANT : { NORMAL : "normal" , BOLD : "bold" , ITALIC : "italic" , BOLDITALIC : "bold-italic" , DOUBLESTRUCK : "double-struck" , FRAKTUR : "fraktur" , BOLDFRAKTUR : "bold-fraktur" , SCRIPT : "script" , BOLDSCRIPT : "bold-script" , SANSSERIF : "sans-serif" , BOLDSANSSERIF : "bold-sans-serif" , SANSSERIFITALIC : "sans-serif-italic" , SANSSERIFBOLDITALIC : "sans-serif-bold-italic" , MONOSPACE : "monospace" , INITIAL : "initial" , TAILED : "tailed" , LOOPED : "looped" , STRETCHED : "stretched" , CALIGRAPHIC : "-tex-caligraphic" , OLDSTYLE : "-tex-oldstyle" } , FORM : { PREFIX : "prefix" , INFIX : "infix" , POSTFIX : "postfix" } , LINEBREAK : { AUTO : "auto" , NEWLINE : "newline" , NOBREAK : "nobreak" , GOODBREAK : "goodbreak" , BADBREAK : "badbreak" } , LINEBREAKSTYLE : { BEFORE : "before" , AFTER : "after" , DUPLICATE : "duplicate" , INFIXLINBREAKSTYLE : "infixlinebreakstyle" } , INDENTALIGN : { LEFT : "left" , CENTER : "center" , RIGHT : "right" , AUTO : "auto" , ID : "id" , INDENTALIGN : "indentalign" } , INDENTSHIFT : { INDENTSHIFT : "indentshift" } , LINETHICKNESS : { THIN : "thin" , MEDIUM : "medium" , THICK : "thick" } , NOTATION : { LONGDIV : "longdiv" , ACTUARIAL : "actuarial" , RADICAL : "radical" , BOX : "box" , ROUNDEDBOX : "roundedbox" , CIRCLE : "circle" , LEFT : "left" , RIGHT : "right" , TOP : "top" , BOTTOM : "bottom" , UPDIAGONALSTRIKE : "updiagonalstrike" , DOWNDIAGONALSTRIKE : "downdiagonalstrike" , UPDIAGONALARROW : "updiagonalarrow" , VERTICALSTRIKE : "verticalstrike" , HORIZONTALSTRIKE : "horizontalstrike" , PHASORANGLE : "phasorangle" , MADRUWB : "madruwb" } , ALIGN : { TOP : "top" , BOTTOM : "bottom" , CENTER : "center" , BASELINE : "baseline" , AXIS : "axis" , LEFT : "left" , RIGHT : "right" } , LINES : { NONE : "none" , SOLID : "solid" , DASHED : "dashed" } , SIDE : { LEFT : "left" , RIGHT : "right" , LEFTOVERLAP : "leftoverlap" , RIGHTOVERLAP : "rightoverlap" } , WIDTH : { AUTO : "auto" , FIT : "fit" } , ACTIONTYPE : { TOGGLE : "toggle" , STATUSLINE : "statusline" , TOOLTIP : "tooltip" , INPUT : "input" } , LENGTH : { VERYVERYTHINMATHSPACE : "veryverythinmathspace" , VERYTHINMATHSPACE : "verythinmathspace" , THINMATHSPACE : "thinmathspace" , MEDIUMMATHSPACE : "mediummathspace" , THICKMATHSPACE : "thickmathspace" , VERYTHICKMATHSPACE : "verythickmathspace" , VERYVERYTHICKMATHSPACE : "veryverythickmathspace" , NEGATIVEVERYVERYTHINMATHSPACE : "negativeveryverythinmathspace" , NEGATIVEVERYTHINMATHSPACE : "negativeverythinmathspace" , NEGATIVETHINMATHSPACE : "negativethinmathspace" , NEGATIVEMEDIUMMATHSPACE : "negativemediummathspace" , NEGATIVETHICKMATHSPACE : "negativethickmathspace" , NEGATIVEVERYTHICKMATHSPACE : "negativeverythickmathspace" , NEGATIVEVERYVERYTHICKMATHSPACE : "negativeveryverythickmathspace" } , OVERFLOW : { LINBREAK : "linebreak" , SCROLL : "scroll" , ELIDE : "elide" , TRUNCATE : "truncate" , SCALE : "scale" } , UNIT : { EM : "em" , EX : "ex" , PX : "px" , IN : "in" , CM : "cm" , MM : "mm" , PT : "pt" , PC : "pc" } , TEXCLASS : { ORD : 0 , OP : 1 , BIN : 2 , REL : 3 , OPEN : 4 , CLOSE : 5 , PUNCT : 6 , INNER : 7 , VCENTER : 8 , NONE : - 1 } , TEXCLASSNAMES : [ "ORD" , "OP" , "BIN" , "REL" , "OPEN" , "CLOSE" , "PUNCT" , "INNER" , "VCENTER" ] , skipAttributes : { texClass : true , useHeight : true , texprimestyle : true } , copyAttributes : { displaystyle : 1 , scriptlevel : 1 , open : 1 , close : 1 , form : 1 , actiontype : 1 , fontfamily : true , fontsize : true , fontweight : true , fontstyle : true , color : true , background : true , id : true , "class" : 1 , href : true , style : true } , copyAttributeNames : [ "displaystyle" , "scriptlevel" , "open" , "close" , "form" , "actiontype" , "fontfamily" , "fontsize" , "fontweight" , "fontstyle" , "color" , "background" , "id" , "class" , "href" , "style" ] , nocopyAttributes : { fontfamily : true , fontsize : true , fontweight : true , fonts
MathJax . Hub . Register . LoadHook ( "[MathJax]/jax/element/mml/jax.js" , function ( ) { var c = "2.7.5" ; var a = MathJax . ElementJax . mml , b = MathJax . Hub . config . menuSettings ; a . mbase . Augment ( { toMathML : function ( l ) { var h = ( this . inferred && this . parent . inferRow ) ; if ( l == null ) { l = "" } var f = this . type , e = this . toMathMLattributes ( ) ; if ( f === "mspace" ) { return l + "<" + f + e + " />" } var k = [ ] , j = ( this . isToken ? "" : l + ( h ? "" : " " ) ) ; for ( var g = 0 , d = this . data . length ; g < d ; g ++ ) { if ( this . data [ g ] ) { k . push ( this . data [ g ] . toMathML ( j ) ) } else { if ( ! this . isToken && ! this . isChars ) { k . push ( j + "<mrow />" ) } } } if ( this . isToken || this . isChars ) { return l + "<" + f + e + ">" + k . join ( "" ) + "</" + f + ">" } if ( h ) { return k . join ( "\n" ) } if ( k . length === 0 || ( k . length === 1 && k [ 0 ] === "" ) ) { return l + "<" + f + e + " />" } return l + "<" + f + e + ">\n" + k . join ( "\n" ) + "\n" + l + "</" + f + ">" } , toMathMLattributes : function ( ) { var j = ( this . type === "mstyle" ? a . math . prototype . defaults : this . defaults ) ; var h = ( this . attrNames || a . copyAttributeNames ) , g = a . skipAttributes , l = a . copyAttributes ; var e = [ ] ; if ( this . type === "math" && ( ! this . attr || ! ( "xmlns" in this . attr ) ) ) { e . push ( 'xmlns="http://www.w3.org/1998/Math/MathML"' ) } if ( ! this . attrNames ) { for ( var k in j ) { if ( ! g [ k ] && ! l [ k ] && j . hasOwnProperty ( k ) ) { if ( this [ k ] != null && this [ k ] !== j [ k ] ) { if ( this . Get ( k , null , 1 ) !== this [ k ] ) { e . push ( k + '="' + this . toMathMLattribute ( this [ k ] ) + '"' ) } } } } } for ( var f = 0 , d = h . length ; f < d ; f ++ ) { if ( l [ h [ f ] ] === 1 && ! j . hasOwnProperty ( h [ f ] ) ) { continue } value = ( this . attr || { } ) [ h [ f ] ] ; if ( value == null ) { value = this [ h [ f ] ] } if ( value != null ) { e . push ( h [ f ] + '="' + this . toMathMLquote ( value ) + '"' ) } } this . toMathMLclass ( e ) ; if ( e . length ) { return " " + e . join ( " " ) } else { return "" } } , toMathMLclass : function ( d ) { var f = [ ] ; if ( this [ "class" ] ) { f . push ( this [ "class" ] ) } if ( this . isa ( a . TeXAtom ) && b . texHints ) { var e = [ "ORD" , "OP" , "BIN" , "REL" , "OPEN" , "CLOSE" , "PUNCT" , "INNER" , "VCENTER" ] [ this . texClass ] ; if ( e ) { f . push ( "MJX-TeXAtom-" + e ) ; if ( e === "OP" && ! this . movablelimits ) { f . push ( "MJX-fixedlimits" ) } } } if ( this . mathvariant && this . toMathMLvariants [ this . mathvariant ] ) { f . push ( "MJX" + this . mathvariant ) } if ( this . variantForm ) { f . push ( "MJX-variant" ) } if ( f . length ) { d . unshift ( 'class="' + this . toMathMLquote ( f . join ( " " ) ) + '"' ) } } , toMathMLattribute : function ( d ) { if ( typeof ( d ) === "string" && d . replace ( / /g , "" ) . match ( /^(([-+])?(\d+(\.\d*)?|\.\d+))mu$/ ) ) { return ( RegExp . $2 || "" ) + ( ( 1 / 18 ) * RegExp . $3 ) . toFixed ( 3 ) . replace ( /\.?0+$/ , "" ) + "em" } else { if ( this . toMathMLvariants [ d ] ) { return this . toMathMLvariants [ d ] } } return this . toMathMLquote ( d ) } , toMathMLvariants : { "-tex-caligraphic" : a . VARIANT . SCRIPT , "-tex-caligraphic-bold" : a . VARIANT . BOLDSCRIPT , "-tex-oldstyle" : a . VARIANT . NORMAL , "-tex-oldstyle-bold" : a . VARIANT . BOLD , "-tex-mathit" : a . VARIANT . ITALIC } , toMathMLquote : function ( f ) { f = String ( f ) . split ( "" ) ; for ( var g = 0 , d = f . length ; g < d ; g ++ ) { var k = f [ g ] . charCodeAt ( 0 ) ; if ( k <= 55295 || 57344 <= k ) { if ( k > 126 || ( k < 32 && k !== 10 && k !== 13 && k !== 9 ) ) { f [ g ] = "&#x" + k . toString ( 16 ) . toUpperCase ( ) + ";" } else { var j = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ } [ f [ g ] ] ; if ( j ) { f [ g ] = j } } } else { if ( g + 1 < d ) { var h = f [ g + 1 ] . charCodeAt ( 0 ) ; var e = ( ( ( k - 55296 ) << 10 ) + ( h - 56320 ) + 65536 ) ; f [ g ] = "&#x" + e . toString ( 16 ) . toUpperCase ( ) + ";" ; f [ g + 1 ] = "" ; g ++ } else { f [ g ] = "" } } } return f . join ( "" ) } } ) ; a . math . Augment ( { toMathML : function ( d , e ) { var g ; if ( d == null ) { d = "" } if ( e && e . originalText && b . semantics ) { g = MathJax . InputJax [ e . inputJax ] . annotationEncoding } var n = ( this . data [ 0 ] && this . data [ 0 ] . data . length > 1 ) ; var p = this . type , k = this . toMathMLattributes ( ) ; var j = [ ] , o = d + ( g ? " " + ( n ? " " : "" ) : "" ) + " " ; for ( var h = 0 , f = this . data . length ; h < f ; h ++ ) { if ( this . data [ h ] ) { j . push ( this . data [ h ] . toMathML ( o ) ) } else { j . push ( o + "<mrow />" ) } } if ( j . length === 0 || ( j . length === 1 && j [ 0 ] === "" ) ) { if ( ! g ) { return "<" + p + k + " />" } j . push ( o + "<mrow />" ) } if ( g ) { if ( n ) { j . unshift ( d + " <mrow>" ) ; j . push ( d + " </mrow>" ) } j . unshift ( d + " <semantics>" ) ; var l = e . originalText . replace ( /[&<>]/g , function ( i ) { return { ">" : ">" , "<" : "<" , "&" : "&" } [ i ] } ) ; j . push ( d + ' <annotation encoding="' + this . toMathMLquote ( g ) + '">' + l + "</annotation>" ) ; j . push ( d + " </semantics>" ) } return d + "<" + p + k + ">\n" + j . join ( "\n" ) + "\n" + d + "</" + p + ">" } } ) ; a . msubsup . Augment ( { toMathML : function ( j ) { var f = this . type ; if ( this . data [ this . sup ] == null ) { f = "msub" } if ( this . data [ this . sub ] == null ) { f = "msup" } var e = this . toMathMLattributes ( ) ; delete this . data [ 0 ] . inferred ; var h = [ ] ; for ( var g = 0 , d = this . data . length ; g < d ; g ++ ) { if ( this .
( function ( b , e ) { var d = "2.7.5" ; var a = b . CombineConfig ( "TeX.noErrors" , { disabled : false , multiLine : true , inlineDelimiters : [ "" , "" ] , style : { "font-size" : "90%" , "text-align" : "left" , color : "black" , padding : "1px 3px" , border : "1px solid" } } ) ; var c = "\u00A0" ; MathJax . Extension [ "TeX/noErrors" ] = { version : d , config : a } ; b . Register . StartupHook ( "TeX Jax Ready" , function ( ) { var f = MathJax . InputJax . TeX . formatError ; MathJax . InputJax . TeX . Augment ( { formatError : function ( j , i , k , g ) { if ( a . disabled ) { return f . apply ( this , arguments ) } var h = j . message . replace ( /\n.*/ , "" ) ; b . signal . Post ( [ "TeX Jax - parse error" , h , i , k , g ] ) ; var m = a . inlineDelimiters ; var l = ( k || a . multiLine ) ; if ( ! k ) { i = m [ 0 ] + i + m [ 1 ] } if ( l ) { i = i . replace ( / /g , c ) } else { i = i . replace ( /\n/g , " " ) } return MathJax . ElementJax . mml . merror ( i ) . With ( { isError : true , multiLine : l } ) } } ) } ) ; b . Register . StartupHook ( "HTML-CSS Jax Config" , function ( ) { b . Config ( { "HTML-CSS" : { styles : { ".MathJax .noError" : b . Insert ( { "vertical-align" : ( b . Browser . isMSIE && a . multiLine ? "-2px" : "" ) } , a . style ) } } } ) } ) ; b . Register . StartupHook ( "HTML-CSS Jax Ready" , function ( ) { var g = MathJax . ElementJax . mml ; var h = MathJax . OutputJax [ "HTML-CSS" ] ; var f = g . math . prototype . toHTML , i = g . merror . prototype . toHTML ; g . math . Augment ( { toHTML : function ( j , k ) { var l = this . data [ 0 ] ; if ( l && l . data [ 0 ] && l . data [ 0 ] . isError ) { j . style . fontSize = "" ; j = this . HTMLcreateSpan ( j ) ; j . bbox = l . data [ 0 ] . toHTML ( j ) . bbox } else { j = f . apply ( this , arguments ) } return j } } ) ; g . merror . Augment ( { toHTML : function ( p ) { if ( ! this . isError ) { return i . apply ( this , arguments ) } p = this . HTMLcreateSpan ( p ) ; p . className = "noError" ; if ( this . multiLine ) { p . style . display = "inline-block" } var r = this . data [ 0 ] . data [ 0 ] . data . join ( "" ) . split ( /\n/ ) ; for ( var o = 0 , l = r . length ; o < l ; o ++ ) { h . addText ( p , r [ o ] ) ; if ( o !== l - 1 ) { h . addElement ( p , "br" , { isMathJax : true } ) } } var q = h . getHD ( p . parentNode ) , k = h . getW ( p . parentNode ) ; if ( l > 1 ) { var n = ( q . h + q . d ) / 2 , j = h . TeX . x _height / 2 ; p . parentNode . style . verticalAlign = h . Em ( q . d + ( j - n ) ) ; q . h = j + n ; q . d = n - j } p . bbox = { h : q . h , d : q . d , w : k , lw : 0 , rw : k } ; return p } } ) } ) ; b . Register . StartupHook ( "SVG Jax Config" , function ( ) { b . Config ( { SVG : { styles : { ".MathJax_SVG .noError" : b . Insert ( { "vertical-align" : ( b . Browser . isMSIE && a . multiLine ? "-2px" : "" ) } , a . style ) } } } ) } ) ; b . Register . StartupHook ( "SVG Jax Ready" , function ( ) { var g = MathJax . ElementJax . mml ; var f = g . math . prototype . toSVG , h = g . merror . prototype . toSVG ; g . math . Augment ( { toSVG : function ( i , j ) { var k = this . data [ 0 ] ; if ( k && k . data [ 0 ] && k . data [ 0 ] . isError ) { i = k . data [ 0 ] . toSVG ( i ) } else { i = f . apply ( this , arguments ) } return i } } ) ; g . merror . Augment ( { toSVG : function ( n ) { if ( ! this . isError || this . Parent ( ) . type !== "math" ) { return h . apply ( this , arguments ) } n = e . addElement ( n , "span" , { className : "noError" , isMathJax : true } ) ; if ( this . multiLine ) { n . style . display = "inline-block" } var o = this . data [ 0 ] . data [ 0 ] . data . join ( "" ) . split ( /\n/ ) ; for ( var l = 0 , j = o . length ; l < j ; l ++ ) { e . addText ( n , o [ l ] ) ; if ( l !== j - 1 ) { e . addElement ( n , "br" , { isMathJax : true } ) } } if ( j > 1 ) { var k = n . offsetHeight / 2 ; n . style . verticalAlign = ( - k + ( k / j ) ) + "px" } return n } } ) } ) ; b . Register . StartupHook ( "NativeMML Jax Ready" , function ( ) { var h = MathJax . ElementJax . mml ; var g = MathJax . Extension [ "TeX/noErrors" ] . config ; var f = h . math . prototype . toNativeMML , i = h . merror . prototype . toNativeMML ; h . math . Augment ( { toNativeMML : function ( j ) { var k = this . data [ 0 ] ; if ( k && k . data [ 0 ] && k . data [ 0 ] . isError ) { j = k . data [ 0 ] . toNativeMML ( j ) } else { j = f . apply ( this , arguments ) } return j } } ) ; h . merror . Augment ( { toNativeMML : function ( n ) { if ( ! this . isError ) { return i . apply ( this , arguments ) } n = n . appendChild ( document . createElement ( "span" ) ) ; var o = this . data [ 0 ] . data [ 0 ] . data . join ( "" ) . split ( /\n/ ) ; for ( var l = 0 , k = o . length ; l < k ; l ++ ) { n . appendChild ( document . createTextNode ( o [ l ] ) ) ; if ( l !== k - 1 ) { n . appendChild ( document . createElement ( "br" ) ) } } if ( this . multiLine ) { n . style . display = "inline-block" ; if ( k > 1 ) { n . style . verticalAlign = "middle" } } for ( var p in g . style ) { if ( g . style . hasOwnProperty ( p ) ) { var j = p . replace ( /-./g , function ( m ) { return m . charAt ( 1 ) . toUpperCase ( ) } ) ; n . style [ j ] = g . style [ p ] } } return n } } ) } ) ; b . Register . StartupHook ( "PreviewHTML Jax Config" , function ( ) { b . Config ( { PreviewHTML : { styles : { ".MathJax_PHTML .noError" : b . Insert ( { "vertical-align" : ( b . Browser . isMSIE && a . multiLine ? "-2px" : "" ) } , a . style ) } } } ) } ) ; b . Register . StartupHook ( "PreviewHTML Jax Ready" , function ( ) { var f = MathJax . ElementJax . mml ; var h = MathJax . HTML ; var g = f . merror
MathJax . Extension [ "TeX/noUndefined" ] = { version : "2.7.5" , config : MathJax . Hub . CombineConfig ( "TeX.noUndefined" , { disabled : false , attributes : { mathcolor : "red" } } ) } ; MathJax . Hub . Register . StartupHook ( "TeX Jax Ready" , function ( ) { var b = MathJax . Extension [ "TeX/noUndefined" ] . config ; var a = MathJax . ElementJax . mml ; var c = MathJax . InputJax . TeX . Parse . prototype . csUndefined ; MathJax . InputJax . TeX . Parse . Augment ( { csUndefined : function ( d ) { if ( b . disabled ) { return c . apply ( this , arguments ) } MathJax . Hub . signal . Post ( [ "TeX Jax - undefined control sequence" , d ] ) ; this . Push ( a . mtext ( d ) . With ( b . attributes ) ) } } ) ; MathJax . Hub . Startup . signal . Post ( "TeX noUndefined Ready" ) } ) ; MathJax . Ajax . loadComplete ( "[MathJax]/extensions/TeX/noUndefined.js" ) ;
( function ( d , c , j ) { var i , h = "\u00A0" ; var k = function ( m ) { return MathJax . Localization . _ . apply ( MathJax . Localization , [ [ "TeX" , m ] ] . concat ( [ ] . slice . call ( arguments , 1 ) ) ) } ; var f = MathJax . Object . isArray ; var e = MathJax . Object . Subclass ( { Init : function ( n , m ) { this . global = { isInner : m } ; this . data = [ b . start ( this . global ) ] ; if ( n ) { this . data [ 0 ] . env = n } this . env = this . data [ 0 ] . env } , Push : function ( ) { var o , n , p , q ; for ( o = 0 , n = arguments . length ; o < n ; o ++ ) { p = arguments [ o ] ; if ( ! p ) { continue } if ( p instanceof i . mbase ) { p = b . mml ( p ) } p . global = this . global ; q = ( this . data . length ? this . Top ( ) . checkItem ( p ) : true ) ; if ( q instanceof Array ) { this . Pop ( ) ; this . Push . apply ( this , q ) } else { if ( q instanceof b ) { this . Pop ( ) ; this . Push ( q ) } else { if ( q ) { this . data . push ( p ) ; if ( p . env ) { if ( p . copyEnv !== false ) { for ( var r in this . env ) { if ( this . env . hasOwnProperty ( r ) ) { p . env [ r ] = this . env [ r ] } } } this . env = p . env } else { p . env = this . env } } } } } } , Pop : function ( ) { var m = this . data . pop ( ) ; if ( ! m . isOpen ) { delete m . env } this . env = ( this . data . length ? this . Top ( ) . env : { } ) ; return m } , Top : function ( m ) { if ( m == null ) { m = 1 } if ( this . data . length < m ) { return null } return this . data [ this . data . length - m ] } , Prev : function ( m ) { var n = this . Top ( ) ; if ( m ) { return n . data [ n . data . length - 1 ] } else { return n . Pop ( ) } } , toString : function ( ) { return "stack[\n " + this . data . join ( "\n " ) + "\n]" } } ) ; var b = e . Item = MathJax . Object . Subclass ( { type : "base" , endError : [ "ExtraOpenMissingClose" , "Extra open brace or missing close brace" ] , closeError : [ "ExtraCloseMissingOpen" , "Extra close brace or missing open brace" ] , rightError : [ "MissingLeftExtraRight" , "Missing \\left or extra \\right" ] , Init : function ( ) { if ( this . isOpen ) { this . env = { } } this . data = [ ] ; this . Push . apply ( this , arguments ) } , Push : function ( ) { this . data . push . apply ( this . data , arguments ) } , Pop : function ( ) { return this . data . pop ( ) } , mmlData : function ( m , n ) { if ( m == null ) { m = true } if ( this . data . length === 1 && ! n ) { return this . data [ 0 ] } return i . mrow . apply ( i , this . data ) . With ( ( m ? { inferred : true } : { } ) ) } , checkItem : function ( m ) { if ( m . type === "over" && this . isOpen ) { m . num = this . mmlData ( false ) ; this . data = [ ] } if ( m . type === "cell" && this . isOpen ) { if ( m . linebreak ) { return false } d . Error ( [ "Misplaced" , "Misplaced %1" , m . name ] ) } if ( m . isClose && this [ m . type + "Error" ] ) { d . Error ( this [ m . type + "Error" ] ) } if ( ! m . isNotStack ) { return true } this . Push ( m . data [ 0 ] ) ; return false } , With : function ( m ) { for ( var n in m ) { if ( m . hasOwnProperty ( n ) ) { this [ n ] = m [ n ] } } return this } , toString : function ( ) { return this . type + "[" + this . data . join ( "; " ) + "]" } } ) ; b . start = b . Subclass ( { type : "start" , isOpen : true , Init : function ( m ) { this . SUPER ( arguments ) . Init . call ( this ) ; this . global = m } , checkItem : function ( m ) { if ( m . type === "stop" ) { return b . mml ( this . mmlData ( ) ) } return this . SUPER ( arguments ) . checkItem . call ( this , m ) } } ) ; b . stop = b . Subclass ( { type : "stop" , isClose : true } ) ; b . open = b . Subclass ( { type : "open" , isOpen : true , stopError : [ "ExtraOpenMissingClose" , "Extra open brace or missing close brace" ] , checkItem : function ( n ) { if ( n . type === "close" ) { var m = this . mmlData ( ) ; return b . mml ( i . TeXAtom ( m ) ) } return this . SUPER ( arguments ) . checkItem . call ( this , n ) } } ) ; b . close = b . Subclass ( { type : "close" , isClose : true } ) ; b . prime = b . Subclass ( { type : "prime" , checkItem : function ( m ) { if ( this . data [ 0 ] . type !== "msubsup" ) { return [ i . msup ( this . data [ 0 ] , this . data [ 1 ] ) , m ] } this . data [ 0 ] . SetData ( this . data [ 0 ] . sup , this . data [ 1 ] ) ; return [ this . data [ 0 ] , m ] } } ) ; b . subsup = b . Subclass ( { type : "subsup" , stopError : [ "MissingScript" , "Missing superscript or subscript argument" ] , supError : [ "MissingOpenForSup" , "Missing open brace for superscript" ] , subError : [ "MissingOpenForSub" , "Missing open brace for subscript" ] , checkItem : function ( m ) { if ( m . type === "open" || m . type === "left" ) { return true } if ( m . type === "mml" ) { if ( this . primes ) { if ( this . position !== 2 ) { this . data [ 0 ] . SetData ( 2 , this . primes ) } else { m . data [ 0 ] = i . mrow ( this . primes . With ( { variantForm : true } ) , m . data [ 0 ] ) } } this . data [ 0 ] . SetData ( this . position , m . data [ 0 ] ) ; if ( this . movesupsub != null ) { this . data [ 0 ] . movesupsub = this . movesupsub } return b . mml ( this . data [ 0 ] ) } if ( this . SUPER ( arguments ) . checkItem . call ( this , m ) ) { d . Error ( this [ [ "" , "subError" , "supError" ] [ this . position ] ] ) } } , Pop : function ( ) { } } ) ; b . over = b . Subclass ( { type : "over" , isClose : true , name : "\\over" , checkItem : function ( o , m ) { if ( o . type === "over" ) { d . Error ( [ "AmbiguousUseOf" , "Ambiguous use of %1" , o . name ] ) } if ( o . isClose ) { var n = i . mfrac ( this . num , this . mmlData ( false )
MathJax . Extension [ "TeX/AMSmath" ] = { version : "2.7.5" , number : 0 , startNumber : 0 , IDs : { } , eqIDs : { } , labels : { } , eqlabels : { } , refs : [ ] } ; MathJax . Hub . Register . StartupHook ( "TeX Jax Ready" , function ( ) { var b = MathJax . ElementJax . mml , h = MathJax . InputJax . TeX , g = MathJax . Extension [ "TeX/AMSmath" ] ; var d = h . Definitions , f = h . Stack . Item , a = h . config . equationNumbers ; var c = function ( k ) { var n = [ ] ; for ( var l = 0 , j = k . length ; l < j ; l ++ ) { n [ l ] = h . Parse . prototype . Em ( k [ l ] ) } return n . join ( " " ) } ; var e = ( document . getElementsByTagName ( "base" ) . length === 0 ) ? "" : String ( document . location ) . replace ( /#.*$/ , "" ) ; d . Add ( { mathchar0mo : { iiiint : [ "2A0C" , { texClass : b . TEXCLASS . OP } ] } , macros : { mathring : [ "Accent" , "2DA" ] , nobreakspace : "Tilde" , negmedspace : [ "Spacer" , b . LENGTH . NEGATIVEMEDIUMMATHSPACE ] , negthickspace : [ "Spacer" , b . LENGTH . NEGATIVETHICKMATHSPACE ] , idotsint : [ "MultiIntegral" , "\\int\\cdots\\int" ] , dddot : [ "Accent" , "20DB" ] , ddddot : [ "Accent" , "20DC" ] , sideset : [ "Macro" , "\\mathop{\\mathop{\\rlap{\\phantom{#3}}}\\nolimits#1\\!\\mathop{#3}\\nolimits#2}" , 3 ] , boxed : [ "Macro" , "\\fbox{$\\displaystyle{#1}$}" , 1 ] , tag : "HandleTag" , notag : "HandleNoTag" , label : "HandleLabel" , ref : "HandleRef" , eqref : [ "HandleRef" , true ] , substack : [ "Macro" , "\\begin{subarray}{c}#1\\end{subarray}" , 1 ] , injlim : [ "NamedOp" , "inj lim" ] , projlim : [ "NamedOp" , "proj lim" ] , varliminf : [ "Macro" , "\\mathop{\\underline{\\mmlToken{mi}{lim}}}" ] , varlimsup : [ "Macro" , "\\mathop{\\overline{\\mmlToken{mi}{lim}}}" ] , varinjlim : [ "Macro" , "\\mathop{\\underrightarrow{\\mmlToken{mi}{lim}}}" ] , varprojlim : [ "Macro" , "\\mathop{\\underleftarrow{\\mmlToken{mi}{lim}}}" ] , DeclareMathOperator : "HandleDeclareOp" , operatorname : "HandleOperatorName" , SkipLimits : "SkipLimits" , genfrac : "Genfrac" , frac : [ "Genfrac" , "" , "" , "" , "" ] , tfrac : [ "Genfrac" , "" , "" , "" , 1 ] , dfrac : [ "Genfrac" , "" , "" , "" , 0 ] , binom : [ "Genfrac" , "(" , ")" , "0" , "" ] , tbinom : [ "Genfrac" , "(" , ")" , "0" , 1 ] , dbinom : [ "Genfrac" , "(" , ")" , "0" , 0 ] , cfrac : "CFrac" , shoveleft : [ "HandleShove" , b . ALIGN . LEFT ] , shoveright : [ "HandleShove" , b . ALIGN . RIGHT ] , xrightarrow : [ "xArrow" , 8594 , 5 , 6 ] , xleftarrow : [ "xArrow" , 8592 , 7 , 3 ] } , environment : { align : [ "AMSarray" , null , true , true , "rlrlrlrlrlrl" , c ( [ 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 ] ) ] , "align*" : [ "AMSarray" , null , false , true , "rlrlrlrlrlrl" , c ( [ 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 ] ) ] , multline : [ "Multline" , null , true ] , "multline*" : [ "Multline" , null , false ] , split : [ "AMSarray" , null , false , false , "rl" , c ( [ 0 ] ) ] , gather : [ "AMSarray" , null , true , true , "c" ] , "gather*" : [ "AMSarray" , null , false , true , "c" ] , alignat : [ "AlignAt" , null , true , true ] , "alignat*" : [ "AlignAt" , null , false , true ] , alignedat : [ "AlignAt" , null , false , false ] , aligned : [ "AlignedAMSArray" , null , null , null , "rlrlrlrlrlrl" , c ( [ 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 , 2 , 0 ] ) , ".5em" , "D" ] , gathered : [ "AlignedAMSArray" , null , null , null , "c" , null , ".5em" , "D" ] , subarray : [ "Array" , null , null , null , null , c ( [ 0 ] ) , "0.1em" , "S" , 1 ] , smallmatrix : [ "Array" , null , null , null , "c" , c ( [ 1 / 3 ] ) , ".2em" , "S" , 1 ] , equation : [ "EquationBegin" , "Equation" , true ] , "equation*" : [ "EquationBegin" , "EquationStar" , false ] , eqnarray : [ "AMSarray" , null , true , true , "rcl" , "0 " + b . LENGTH . THICKMATHSPACE , ".5em" ] , "eqnarray*" : [ "AMSarray" , null , false , true , "rcl" , "0 " + b . LENGTH . THICKMATHSPACE , ".5em" ] } , delimiter : { "\\lvert" : [ "007C" , { texClass : b . TEXCLASS . OPEN } ] , "\\rvert" : [ "007C" , { texClass : b . TEXCLASS . CLOSE } ] , "\\lVert" : [ "2016" , { texClass : b . TEXCLASS . OPEN } ] , "\\rVert" : [ "2016" , { texClass : b . TEXCLASS . CLOSE } ] } } , null , true ) ; h . Parse . Augment ( { HandleTag : function ( k ) { var m = this . GetStar ( ) ; var j = this . trimSpaces ( this . GetArgument ( k ) ) , i = j ; if ( ! m ) { j = a . formatTag ( j ) } var l = this . stack . global ; l . tagID = i ; if ( l . notags ) { h . Error ( [ "CommandNotAllowedInEnv" , "%1 not allowed in %2 environment" , k , l . notags ] ) } if ( l . tag ) { h . Error ( [ "MultipleCommand" , "Multiple %1" , k ] ) } l . tag = b . mtd . apply ( b , this . InternalMath ( j ) ) . With ( { id : a . formatID ( i ) } ) } , HandleNoTag : function ( i ) { if ( this . stack . global . tag ) { delete this . stack . global . tag } this . stack . global . notag = true } , HandleLabel : function ( j ) { var k = this . stack . global , i = this . GetArgument ( j ) ; if ( i === "" ) { return } if ( ! g . refUpdate ) { if ( k . label ) { h . Error ( [ "MultipleCommand" , "Multiple %1" , j ] ) } k . label = i ; if ( g . labels [ i ] || g . eqlabels [ i ] ) { h . Error ( [ "MultipleLabel" , "Label '%1' multiply defined" , i ] ) } g . eqlabels [ i ] = { tag : "???" , id : "" } } } , HandleRef : function ( k , m ) { var j = this . GetArgument ( k ) ; var l = g . labels [ j ] || g . eqlabels [ j ] ; if ( ! l ) { l = {
MathJax . Extension [ "TeX/AMSsymbols" ] = { version : "2.7.5" } ; MathJax . Hub . Register . StartupHook ( "TeX Jax Ready" , function ( ) { var a = MathJax . ElementJax . mml , b = MathJax . InputJax . TeX . Definitions ; b . Add ( { mathchar0mi : { digamma : "03DD" , varkappa : "03F0" , varGamma : [ "0393" , { mathvariant : a . VARIANT . ITALIC } ] , varDelta : [ "0394" , { mathvariant : a . VARIANT . ITALIC } ] , varTheta : [ "0398" , { mathvariant : a . VARIANT . ITALIC } ] , varLambda : [ "039B" , { mathvariant : a . VARIANT . ITALIC } ] , varXi : [ "039E" , { mathvariant : a . VARIANT . ITALIC } ] , varPi : [ "03A0" , { mathvariant : a . VARIANT . ITALIC } ] , varSigma : [ "03A3" , { mathvariant : a . VARIANT . ITALIC } ] , varUpsilon : [ "03A5" , { mathvariant : a . VARIANT . ITALIC } ] , varPhi : [ "03A6" , { mathvariant : a . VARIANT . ITALIC } ] , varPsi : [ "03A8" , { mathvariant : a . VARIANT . ITALIC } ] , varOmega : [ "03A9" , { mathvariant : a . VARIANT . ITALIC } ] , beth : "2136" , gimel : "2137" , daleth : "2138" , backprime : [ "2035" , { variantForm : true } ] , hslash : "210F" , varnothing : [ "2205" , { variantForm : true } ] , blacktriangle : "25B4" , triangledown : [ "25BD" , { variantForm : true } ] , blacktriangledown : "25BE" , square : "25FB" , Box : "25FB" , blacksquare : "25FC" , lozenge : "25CA" , Diamond : "25CA" , blacklozenge : "29EB" , circledS : [ "24C8" , { mathvariant : a . VARIANT . NORMAL } ] , bigstar : "2605" , sphericalangle : "2222" , measuredangle : "2221" , nexists : "2204" , complement : "2201" , mho : "2127" , eth : [ "00F0" , { mathvariant : a . VARIANT . NORMAL } ] , Finv : "2132" , diagup : "2571" , Game : "2141" , diagdown : "2572" , Bbbk : [ "006B" , { mathvariant : a . VARIANT . DOUBLESTRUCK } ] , yen : "00A5" , circledR : "00AE" , checkmark : "2713" , maltese : "2720" } , mathchar0mo : { dotplus : "2214" , ltimes : "22C9" , smallsetminus : "2216" , rtimes : "22CA" , Cap : "22D2" , doublecap : "22D2" , leftthreetimes : "22CB" , Cup : "22D3" , doublecup : "22D3" , rightthreetimes : "22CC" , barwedge : "22BC" , curlywedge : "22CF" , veebar : "22BB" , curlyvee : "22CE" , doublebarwedge : "2A5E" , boxminus : "229F" , circleddash : "229D" , boxtimes : "22A0" , circledast : "229B" , boxdot : "22A1" , circledcirc : "229A" , boxplus : "229E" , centerdot : [ "22C5" , { variantForm : true } ] , divideontimes : "22C7" , intercal : "22BA" , leqq : "2266" , geqq : "2267" , leqslant : "2A7D" , geqslant : "2A7E" , eqslantless : "2A95" , eqslantgtr : "2A96" , lesssim : "2272" , gtrsim : "2273" , lessapprox : "2A85" , gtrapprox : "2A86" , approxeq : "224A" , lessdot : "22D6" , gtrdot : "22D7" , lll : "22D8" , llless : "22D8" , ggg : "22D9" , gggtr : "22D9" , lessgtr : "2276" , gtrless : "2277" , lesseqgtr : "22DA" , gtreqless : "22DB" , lesseqqgtr : "2A8B" , gtreqqless : "2A8C" , doteqdot : "2251" , Doteq : "2251" , eqcirc : "2256" , risingdotseq : "2253" , circeq : "2257" , fallingdotseq : "2252" , triangleq : "225C" , backsim : "223D" , thicksim : [ "223C" , { variantForm : true } ] , backsimeq : "22CD" , thickapprox : [ "2248" , { variantForm : true } ] , subseteqq : "2AC5" , supseteqq : "2AC6" , Subset : "22D0" , Supset : "22D1" , sqsubset : "228F" , sqsupset : "2290" , preccurlyeq : "227C" , succcurlyeq : "227D" , curlyeqprec : "22DE" , curlyeqsucc : "22DF" , precsim : "227E" , succsim : "227F" , precapprox : "2AB7" , succapprox : "2AB8" , vartriangleleft : "22B2" , lhd : "22B2" , vartriangleright : "22B3" , rhd : "22B3" , trianglelefteq : "22B4" , unlhd : "22B4" , trianglerighteq : "22B5" , unrhd : "22B5" , vDash : "22A8" , Vdash : "22A9" , Vvdash : "22AA" , smallsmile : [ "2323" , { variantForm : true } ] , shortmid : [ "2223" , { variantForm : true } ] , smallfrown : [ "2322" , { variantForm : true } ] , shortparallel : [ "2225" , { variantForm : true } ] , bumpeq : "224F" , between : "226C" , Bumpeq : "224E" , pitchfork : "22D4" , varpropto : "221D" , backepsilon : "220D" , blacktriangleleft : "25C2" , blacktriangleright : "25B8" , therefore : "2234" , because : "2235" , eqsim : "2242" , vartriangle : [ "25B3" , { variantForm : true } ] , Join : "22C8" , nless : "226E" , ngtr : "226F" , nleq : "2270" , ngeq : "2271" , nleqslant : [ "2A87" , { variantForm : true } ] , ngeqslant : [ "2A88" , { variantForm : true } ] , nleqq : [ "2270" , { variantForm : true } ] , ngeqq : [ "2271" , { variantForm : true } ] , lneq : "2A87" , gneq : "2A88" , lneqq : "2268" , gneqq : "2269" , lvertneqq : [ "2268" , { variantForm : true } ] , gvertneqq : [ "2269" , { variantForm : true } ] , lnsim : "22E6" , gnsim : "22E7" , lnapprox : "2A89" , gnapprox : "2A8A" , nprec : "2280" , nsucc : "2281" , npreceq : [ "22E0" , { variantForm : true } ] , nsucceq : [ "22E1" , { variantForm : true } ] , precneqq : "2AB5" , succneqq : "2AB6" , precnsim : "22E8" , succnsim : "22E9" , precnapprox : "2AB9" , succnapprox : "2ABA" , nsim : "2241" , ncong : "2246" , nshortmid : [ "2224" , { variantForm : true } ] , nshortparallel : [ "2226" , { variantForm : true } ] , nmid : "2224" , nparallel : "2226" , nvdash : "22AC" , nvDash : "22AD" , nVdash : "22AE" , nVDash : "22AF" , ntriangleleft : "22EA" , ntriangleright : "22EB" , ntri
( function ( i , b , e , g ) { var h ; var j , a , d ; var f = "'Times New Roman',Times,STIXGeneral,serif" ; var m = { ".MJXp-script" : { "font-size" : ".8em" } , ".MJXp-right" : { "-webkit-transform-origin" : "right" , "-moz-transform-origin" : "right" , "-ms-transform-origin" : "right" , "-o-transform-origin" : "right" , "transform-origin" : "right" } , ".MJXp-bold" : { "font-weight" : "bold" } , ".MJXp-italic" : { "font-style" : "italic" } , ".MJXp-scr" : { "font-family" : "MathJax_Script," + f } , ".MJXp-frak" : { "font-family" : "MathJax_Fraktur," + f } , ".MJXp-sf" : { "font-family" : "MathJax_SansSerif," + f } , ".MJXp-cal" : { "font-family" : "MathJax_Caligraphic," + f } , ".MJXp-mono" : { "font-family" : "MathJax_Typewriter," + f } , ".MJXp-largeop" : { "font-size" : "150%" } , ".MJXp-largeop.MJXp-int" : { "vertical-align" : "-.2em" } , ".MJXp-math" : { display : "inline-block" , "line-height" : "1.2" , "text-indent" : "0" , "font-family" : f , "white-space" : "nowrap" , "border-collapse" : "collapse" } , ".MJXp-display" : { display : "block" , "text-align" : "center" , margin : "1em 0" } , ".MJXp-math span" : { display : "inline-block" } , ".MJXp-box" : { display : "block!important" , "text-align" : "center" } , ".MJXp-box:after" : { content : '" "' } , ".MJXp-rule" : { display : "block!important" , "margin-top" : ".1em" } , ".MJXp-char" : { display : "block!important" } , ".MJXp-mo" : { margin : "0 .15em" } , ".MJXp-mfrac" : { margin : "0 .125em" , "vertical-align" : ".25em" } , ".MJXp-denom" : { display : "inline-table!important" , width : "100%" } , ".MJXp-denom > *" : { display : "table-row!important" } , ".MJXp-surd" : { "vertical-align" : "top" } , ".MJXp-surd > *" : { display : "block!important" } , ".MJXp-script-box > * " : { display : "table!important" , height : "50%" } , ".MJXp-script-box > * > *" : { display : "table-cell!important" , "vertical-align" : "top" } , ".MJXp-script-box > *:last-child > *" : { "vertical-align" : "bottom" } , ".MJXp-script-box > * > * > *" : { display : "block!important" } , ".MJXp-mphantom" : { visibility : "hidden" } , ".MJXp-munderover, .MJXp-munder" : { display : "inline-table!important" } , ".MJXp-over" : { display : "inline-block!important" , "text-align" : "center" } , ".MJXp-over > *" : { display : "block!important" } , ".MJXp-munderover > *, .MJXp-munder > *" : { display : "table-row!important" } , ".MJXp-mtable" : { "vertical-align" : ".25em" , margin : "0 .125em" } , ".MJXp-mtable > *" : { display : "inline-table!important" , "vertical-align" : "middle" } , ".MJXp-mtr" : { display : "table-row!important" } , ".MJXp-mtd" : { display : "table-cell!important" , "text-align" : "center" , padding : ".5em 0 0 .5em" } , ".MJXp-mtr > .MJXp-mtd:first-child" : { "padding-left" : 0 } , ".MJXp-mtr:first-child > .MJXp-mtd" : { "padding-top" : 0 } , ".MJXp-mlabeledtr" : { display : "table-row!important" } , ".MJXp-mlabeledtr > .MJXp-mtd:first-child" : { "padding-left" : 0 } , ".MJXp-mlabeledtr:first-child > .MJXp-mtd" : { "padding-top" : 0 } , ".MJXp-merror" : { "background-color" : "#FFFF88" , color : "#CC0000" , border : "1px solid #CC0000" , padding : "1px 3px" , "font-style" : "normal" , "font-size" : "90%" } } ; ( function ( ) { for ( var n = 0 ; n < 10 ; n ++ ) { var o = "scaleX(." + n + ")" ; m [ ".MJXp-scale" + n ] = { "-webkit-transform" : o , "-moz-transform" : o , "-ms-transform" : o , "-o-transform" : o , transform : o } } } ) ( ) ; var k = 1000000 ; var c = "V" , l = "H" ; g . Augment ( { settings : b . config . menuSettings , config : { styles : m } , hideProcessedMath : false , maxStretchyParts : 1000 , Config : function ( ) { if ( ! this . require ) { this . require = [ ] } this . SUPER ( arguments ) . Config . call ( this ) ; var n = this . settings ; if ( n . scale ) { this . config . scale = n . scale } this . require . push ( MathJax . OutputJax . extensionDir + "/MathEvents.js" ) } , Startup : function ( ) { j = MathJax . Extension . MathEvents . Event ; a = MathJax . Extension . MathEvents . Touch ; d = MathJax . Extension . MathEvents . Hover ; this . ContextMenu = j . ContextMenu ; this . Mousedown = j . AltContextMenu ; this . Mouseover = d . Mouseover ; this . Mouseout = d . Mouseout ; this . Mousemove = d . Mousemove ; var n = e . addElement ( document . body , "div" , { style : { width : "5in" } } ) ; this . pxPerInch = n . offsetWidth / 5 ; n . parentNode . removeChild ( n ) ; return i . Styles ( this . config . styles , [ "InitializePHTML" , this ] ) } , InitializePHTML : function ( ) { } , preTranslate : function ( p ) { var s = p . jax [ this . id ] , t , q = s . length , u , r , v , o , n ; for ( t = 0 ; t < q ; t ++ ) { u = s [ t ] ; if ( ! u . parentNode ) { continue } r = u . previousSibling ; if ( r && String ( r . className ) . match ( /^MathJax(_PHTML)?(_Display)?( MathJax_Process(ing|ed))?$/ ) ) { r . parentNode . removeChild ( r ) } n = u . MathJax . elementJax ; if ( ! n ) { continue } n . PHTML = { display : ( n . root . Get ( "display" ) === "block" ) } ; v = o
( function ( b , g , f ) { var c = b . config . menuSettings ; var e = MathJax . OutputJax ; var a = f . isMSIE && ( document . documentMode || 0 ) < 8 ; var d = MathJax . Extension [ "fast-preview" ] = { version : "2.7.5" , enabled : true , config : b . CombineConfig ( "fast-preview" , { Chunks : { EqnChunk : 10000 , EqnChunkFactor : 1 , EqnChunkDelay : 0 } , color : "inherit!important" , updateTime : 30 , updateDelay : 6 , messageStyle : "none" , disabled : f . isMSIE && ! f . versionAtLeast ( "8.0" ) } ) , Config : function ( ) { if ( b . config [ "CHTML-preview" ] ) { MathJax . Hub . Config ( { "fast-preview" : b . config [ "CHTML-preview" ] } ) } var m , j , k , h , l ; var i = this . config ; if ( ! i . disabled && c . FastPreview == null ) { b . Config ( { menuSettings : { FastPreview : true } } ) } if ( c . FastPreview ) { MathJax . Ajax . Styles ( { ".MathJax_Preview .MJXf-math" : { color : i . color } } ) ; b . Config ( { "HTML-CSS" : i . Chunks , CommonHTML : i . Chunks , SVG : i . Chunks } ) } b . Register . MessageHook ( "Begin Math Output" , function ( ) { if ( ! h && d . Active ( ) ) { m = b . processUpdateTime ; j = b . processUpdateDelay ; k = b . config . messageStyle ; b . processUpdateTime = i . updateTime ; b . processUpdateDelay = i . updateDelay ; b . Config ( { messageStyle : i . messageStyle } ) ; MathJax . Message . Clear ( 0 , 0 ) ; l = true } } ) ; b . Register . MessageHook ( "End Math Output" , function ( ) { if ( ! h && l ) { b . processUpdateTime = m ; b . processUpdateDelay = j ; b . Config ( { messageStyle : k } ) ; h = true } } ) } , Disable : function ( ) { this . enabled = false } , Enable : function ( ) { this . enabled = true } , Active : function ( ) { return c . FastPreview && this . enabled && ! ( e [ c . renderer ] || { } ) . noFastPreview } , Preview : function ( h ) { if ( ! this . Active ( ) || ! h . script . parentNode ) { return } var i = h . script . MathJax . preview || h . script . previousSibling ; if ( ! i || i . className !== MathJax . Hub . config . preRemoveClass ) { i = g . Element ( "span" , { className : MathJax . Hub . config . preRemoveClass } ) ; h . script . parentNode . insertBefore ( i , h . script ) ; h . script . MathJax . preview = i } i . innerHTML = "" ; i . style . color = ( a ? "black" : "inherit" ) ; return this . postFilter ( i , h ) } , postFilter : function ( j , i ) { if ( ! i . math . root . toPreviewHTML ) { var h = MathJax . Callback . Queue ( ) ; h . Push ( [ "Require" , MathJax . Ajax , "[MathJax]/jax/output/PreviewHTML/config.js" ] , [ "Require" , MathJax . Ajax , "[MathJax]/jax/output/PreviewHTML/jax.js" ] ) ; b . RestartAfter ( h . Push ( { } ) ) } i . math . root . toPreviewHTML ( j ) } , Register : function ( h ) { b . Register . StartupHook ( h + " Jax Require" , function ( ) { var i = MathJax . InputJax [ h ] ; i . postfilterHooks . Add ( [ "Preview" , MathJax . Extension [ "fast-preview" ] ] , 50 ) } ) } } ; d . Register ( "TeX" ) ; d . Register ( "MathML" ) ; d . Register ( "AsciiMath" ) ; b . Register . StartupHook ( "End Config" , [ "Config" , d ] ) ; b . Startup . signal . Post ( "fast-preview Ready" ) } ) ( MathJax . Hub , MathJax . HTML , MathJax . Hub . Browser ) ; MathJax . Ajax . loadComplete ( "[MathJax]/extensions/fast-preview.js" ) ;
( function ( a , e , b , f ) { var c = b . config . menuSettings ; var d = MathJax . Extension . AssistiveMML = { version : "2.7.5" , config : b . CombineConfig ( "AssistiveMML" , { disabled : false , styles : { ".MJX_Assistive_MathML" : { position : "absolute!important" , top : 0 , left : 0 , clip : ( b . Browser . isMSIE && ( document . documentMode || 0 ) < 8 ? "rect(1px 1px 1px 1px)" : "rect(1px, 1px, 1px, 1px)" ) , padding : "1px 0 0 0!important" , border : "0!important" , height : "1px!important" , width : "1px!important" , overflow : "hidden!important" , display : "block!important" , "-webkit-touch-callout" : "none" , "-webkit-user-select" : "none" , "-khtml-user-select" : "none" , "-moz-user-select" : "none" , "-ms-user-select" : "none" , "user-select" : "none" } , ".MJX_Assistive_MathML.MJX_Assistive_MathML_Block" : { width : "100%!important" } } } ) , Config : function ( ) { if ( ! this . config . disabled && c . assistiveMML == null ) { b . Config ( { menuSettings : { assistiveMML : true } } ) } a . Styles ( this . config . styles ) ; b . Register . MessageHook ( "End Math" , function ( g ) { if ( c . assistiveMML ) { return d . AddAssistiveMathML ( g [ 1 ] ) } } ) } , AddAssistiveMathML : function ( g ) { var h = { jax : b . getAllJax ( g ) , i : 0 , callback : MathJax . Callback ( { } ) } ; this . HandleMML ( h ) ; return h . callback } , RemoveAssistiveMathML : function ( k ) { var h = b . getAllJax ( k ) , l ; for ( var j = 0 , g = h . length ; j < g ; j ++ ) { l = document . getElementById ( h [ j ] . inputID + "-Frame" ) ; if ( l && l . getAttribute ( "data-mathml" ) ) { l . removeAttribute ( "data-mathml" ) ; if ( l . lastChild && l . lastChild . className . match ( /MJX_Assistive_MathML/ ) ) { l . removeChild ( l . lastChild ) } } } } , HandleMML : function ( l ) { var g = l . jax . length , h , i , n , j ; while ( l . i < g ) { h = l . jax [ l . i ] ; n = document . getElementById ( h . inputID + "-Frame" ) ; if ( h . outputJax !== "NativeMML" && h . outputJax !== "PlainSource" && n && ! n . getAttribute ( "data-mathml" ) ) { try { i = h . root . toMathML ( "" ) . replace ( /\n */g , "" ) . replace ( /<!--.*?-->/g , "" ) } catch ( k ) { if ( ! k . restart ) { throw k } return MathJax . Callback . After ( [ "HandleMML" , this , l ] , k . restart ) } n . setAttribute ( "data-mathml" , i ) ; j = f . addElement ( n , "span" , { isMathJax : true , unselectable : "on" , className : "MJX_Assistive_MathML" + ( h . root . Get ( "display" ) === "block" ? " MJX_Assistive_MathML_Block" : "" ) } ) ; try { j . innerHTML = i } catch ( k ) { } n . style . position = "relative" ; n . setAttribute ( "role" , "presentation" ) ; n . firstChild . setAttribute ( "aria-hidden" , "true" ) ; j . setAttribute ( "role" , "presentation" ) } l . i ++ } l . callback ( ) } } ; b . Startup . signal . Post ( "AssistiveMML Ready" ) } ) ( MathJax . Ajax , MathJax . Callback , MathJax . Hub , MathJax . HTML ) ; MathJax . Callback . Queue ( [ "Require" , MathJax . Ajax , "[MathJax]/extensions/toMathML.js" ] , [ "loadComplete" , MathJax . Ajax , "[MathJax]/extensions/AssistiveMML.js" ] , function ( ) { MathJax . Hub . Register . StartupHook ( "End Config" , [ "Config" , MathJax . Extension . AssistiveMML ] ) } ) ;
! function ( a , b ) { var c , d , e = a . config . menuSettings , f = Function . prototype . bind ? function ( a , b ) { return a . bind ( b ) } : function ( a , b ) { return function ( ) { a . apply ( b , arguments ) } } , g = Object . keys || function ( a ) { var b = [ ] ; for ( var c in a ) a . hasOwnProperty ( c ) && b . push ( c ) ; return b } , h = MathJax . Ajax . config . path ; h . a11y || ( h . a11y = a . config . root + "/extensions/a11y" ) ; var i = b [ "accessibility-menu" ] = { version : "1.5.0" , prefix : "" , defaults : { } , modules : [ ] , MakeOption : function ( a ) { return i . prefix + a } , GetOption : function ( a ) { return e [ i . MakeOption ( a ) ] } , AddDefaults : function ( ) { for ( var a , b = g ( i . defaults ) , c = 0 ; a = b [ c ] ; c ++ ) { var d = i . MakeOption ( a ) ; void 0 === e [ d ] && ( e [ d ] = i . defaults [ a ] ) } } , AddMenu : function ( ) { for ( var a , b = Array ( this . modules . length ) , e = 0 ; a = this . modules [ e ] ; e ++ ) b [ e ] = a . placeHolder ; var f = d . FindId ( "Accessibility" ) ; if ( f ) b . unshift ( c . RULE ( ) ) , f . submenu . items . push . apply ( f . submenu . items , b ) ; else { var g = ( d . FindId ( "Settings" , "Renderer" ) || { } ) . submenu ; g && ( b . unshift ( c . RULE ( ) ) , b . unshift ( g . items . pop ( ) ) , b . unshift ( g . items . pop ( ) ) ) , b . unshift ( "Accessibility" ) ; var f = c . SUBMENU . apply ( c . SUBMENU , b ) , h = d . IndexOfId ( "Locale" ) ; h ? d . items . splice ( h , 0 , f ) : d . items . push ( c . RULE ( ) , f ) } } , Register : function ( a ) { i . defaults [ a . option ] = ! 1 , i . modules . push ( a ) } , Startup : function ( ) { c = MathJax . Menu . ITEM , d = MathJax . Menu . menu ; for ( var a , b = 0 ; a = this . modules [ b ] ; b ++ ) a . CreateMenu ( ) ; this . AddMenu ( ) } , LoadExtensions : function ( ) { for ( var b , c = [ ] , d = 0 ; b = this . modules [ d ] ; d ++ ) e [ b . option ] && c . push ( b . module ) ; return c . length ? a . Startup . loadArray ( c ) : null } } , j = MathJax . Extension . ModuleLoader = MathJax . Object . Subclass ( { option : "" , name : [ "" , "" ] , module : "" , placeHolder : null , submenu : ! 1 , extension : null , Init : function ( a , b , c , d , e ) { this . option = a , this . name = [ b . replace ( / /g , "" ) , b ] , this . module = c , this . extension = d , this . submenu = e || ! 1 } , CreateMenu : function ( ) { var a = f ( this . Load , this ) ; this . submenu ? this . placeHolder = c . SUBMENU ( this . name , c . CHECKBOX ( [ "Activate" , "Activate" ] , i . MakeOption ( this . option ) , { action : a } ) , c . RULE ( ) , c . COMMAND ( [ "OptionsWhenActive" , "(Options when Active)" ] , null , { disabled : ! 0 } ) ) : this . placeHolder = c . CHECKBOX ( this . name , i . MakeOption ( this . option ) , { action : a } ) } , Load : function ( ) { a . Queue ( [ "Require" , MathJax . Ajax , this . module , [ "Enable" , this ] ] ) } , Enable : function ( a ) { var b = MathJax . Extension [ this . extension ] ; b && ( b . Enable ( ! 0 , ! 0 ) , MathJax . Menu . saveCookie ( ) ) } } ) ; i . Register ( j ( "collapsible" , "Collapsible Math" , "[a11y]/collapsible.js" , "collapsible" ) ) , i . Register ( j ( "autocollapse" , "Auto Collapse" , "[a11y]/auto-collapse.js" , "auto-collapse" ) ) , i . Register ( j ( "explorer" , "Explorer" , "[a11y]/explorer.js" , "explorer" , ! 0 ) ) , i . AddDefaults ( ) , a . Register . StartupHook ( "End Extensions" , function ( ) { a . Register . StartupHook ( "MathMenu Ready" , function ( ) { i . Startup ( ) , a . Startup . signal . Post ( "Accessibility Menu Ready" ) } , 5 ) } , 5 ) , MathJax . Hub . Register . StartupHook ( "End Cookie" , function ( ) { MathJax . Callback . Queue ( [ "LoadExtensions" , i ] , [ "loadComplete" , MathJax . Ajax , "[a11y]/accessibility-menu.js" ] ) } ) } ( MathJax . Hub , MathJax . Extension ) ; MathJax . Ajax . loadComplete ( "[MathJax]/config/TeX-AMS_HTML.js" ) ;