/* 
Syntax highlighting with language autodetection.  
http://softwaremaniacs.org/soft/highlight/
*/
var hljs=new function(){var LANGUAGES={};var selected_languages={};function escape(value){return value.replace(/&/gm,'&amp;').replace(/</gm,'&lt;').replace(/>/gm,'&gt;');}function contains(array,item){if(!array)return false;for(var i=0;i<array.length;i++)if(array[i]==item)return true;return false;}function highlight(language_name,value){function compileSubModes(mode,language){mode.sub_modes=[];for(var i=0;i<mode.contains.length;i++){for(var j=0;j<language.modes.length;j++){if(language.modes[j].className==mode.contains[i]){mode.sub_modes[mode.sub_modes.length]=language.modes[j];}}}}function subMode(lexem,mode){if(!mode.contains){return null;}if(!mode.sub_modes){compileSubModes(mode,language);}for(var i=0;i<mode.sub_modes.length;i++){if(mode.sub_modes[i].beginRe.test(lexem)){return mode.sub_modes[i];}}return null;}function endOfMode(mode_index,lexem){if(modes[mode_index].end&&modes[mode_index].endRe.test(lexem))return 1;if(modes[mode_index].endsWithParent){var level=endOfMode(mode_index-1,lexem);return level?level+1:0;}return 0;}function isIllegal(lexem,mode){return mode.illegalRe&&mode.illegalRe.test(lexem);}function compileTerminators(mode,language){var terminators=[];function addTerminator(re){if(!contains(terminators,re)){terminators[terminators.length]=re;}}if(mode.contains)for(var i=0;i<language.modes.length;i++){if(contains(mode.contains,language.modes[i].className)){addTerminator(language.modes[i].begin);}}var index=modes.length-1;do{if(modes[index].end){addTerminator(modes[index].end);}index--;}while(modes[index+1].endsWithParent);if(mode.illegal){addTerminator(mode.illegal);}var terminator_re='('+terminators[0];for(var i=0;i<terminators.length;i++)terminator_re+='|'+terminators[i];terminator_re+=')';return langRe(language,terminator_re);}function eatModeChunk(value,index){var mode=modes[modes.length-1];if(!mode.terminators){mode.terminators=compileTerminators(mode,language);}value=value.substr(index);var match=mode.terminators.exec(value);if(!match)return[value,'',true];if(match.index==0)return['',match[0],false];else
return[value.substr(0,match.index),match[0],false];}function keywordMatch(mode,match){var match_str=language.case_insensitive?match[0].toLowerCase():match[0];for(var className in mode.keywordGroups){if(!mode.keywordGroups.hasOwnProperty(className))continue;var value=mode.keywordGroups[className].hasOwnProperty(match_str);if(value)return[className,value];}return false;}function processKeywords(buffer,mode){if(!mode.keywords||!mode.lexems)return escape(buffer);if(!mode.lexemsRe){var lexems_re='('+mode.lexems[0];for(var i=1;i<mode.lexems.length;i++)lexems_re+='|'+mode.lexems[i];lexems_re+=')';mode.lexemsRe=langRe(language,lexems_re,true);}var result='';var last_index=0;mode.lexemsRe.lastIndex=0;var match=mode.lexemsRe.exec(buffer);while(match){result+=escape(buffer.substr(last_index,match.index-last_index));var keyword_match=keywordMatch(mode,match);if(keyword_match){keyword_count+=keyword_match[1];result+='<span class="'+keyword_match[0]+'">'+escape(match[0])+'</span>';}else{result+=escape(match[0]);}last_index=mode.lexemsRe.lastIndex;match=mode.lexemsRe.exec(buffer);}result+=escape(buffer.substr(last_index,buffer.length-last_index));return result;}function processBuffer(buffer,mode){if(mode.subLanguage&&selected_languages[mode.subLanguage]){var result=highlight(mode.subLanguage,buffer);keyword_count+=result.keyword_count;relevance+=result.relevance;return result.value;}else{return processKeywords(buffer,mode);}}function startNewMode(mode,lexem){var markup=mode.noMarkup?'':'<span class="'+mode.className+'">';if(mode.returnBegin){result+=markup;mode.buffer='';}else if(mode.excludeBegin){result+=escape(lexem)+markup;mode.buffer='';}else{result+=markup;mode.buffer=lexem;}modes[modes.length]=mode;}function processModeInfo(buffer,lexem,end){var current_mode=modes[modes.length-1];if(end){result+=processBuffer(current_mode.buffer+buffer,current_mode);return false;}var new_mode=subMode(lexem,current_mode);if(new_mode){result+=processBuffer(current_mode.buffer+buffer,current_mode);startNewMode(new_mode,lexem);relevance+=new_mode.relevance;return new_mode.returnBegin;}var end_level=endOfMode(modes.length-1,lexem);if(end_level){var markup=current_mode.noMarkup?'':'</span>';if(current_mode.returnEnd){result+=processBuffer(current_mode.buffer+buffer,current_mode)+markup;}else if(current_mode.excludeEnd){result+=processBuffer(current_mode.buffer+buffer,current_mode)+markup+escape(lexem);}else{result+=processBuffer(current_mode.buffer+buffer+lexem,current_mode)+markup;}while(end_level>1){markup=modes[modes.length-2].noMarkup?'':'</span>';result+=markup;end_level--;modes.length--;}modes.length--;modes[modes.length-1].buffer='';if(current_mode.starts){for(var i=0;i<language.modes.length;i++){if(language.modes[i].className==current_mode.starts){startNewMode(language.modes[i],'');break;}}}return current_mode.returnEnd;}if(isIllegal(lexem,current_mode))throw'Illegal';}var language=LANGUAGES[language_name];var modes=[language.defaultMode];var relevance=0;var keyword_count=0;var result='';try{var index=0;language.defaultMode.buffer='';do{var mode_info=eatModeChunk(value,index);var return_lexem=processModeInfo(mode_info[0],mode_info[1],mode_info[2]);index+=mode_info[0].length;if(!return_lexem){index+=mode_info[1].length;}}while(!mode_info[2]);if(modes.length>1)throw'Illegal';return{relevance:relevance,keyword_count:keyword_count,value:result}}catch(e){if(e=='Illegal'){return{relevance:0,keyword_count:0,value:escape(value)}}else{throw e;}}}function blockText(block){var result='';for(var i=0;i<block.childNodes.length;i++)if(block.childNodes[i].nodeType==3)result+=block.childNodes[i].nodeValue;else if(block.childNodes[i].nodeName=='BR')result+='\n';else
throw'No highlight';return result;}function blockLanguage(block){var classes=block.className.split(/\s+/);for(var i=0;i<classes.length;i++){if(classes[i]=='no-highlight'){throw'No highlight'}if(LANGUAGES[classes[i]]){return classes[i];}}}function highlightBlock(block){try{var text=blockText(block);var language=blockLanguage(block);}catch(e){if(e=='No highlight')return;}var re=/^(?:syntax|language):([a-z\-\_]*)\n/;var match=text.match(re);if(match){text=text.replace(re,'');if(match[1]=='no-highlight'){var container=document.createElement('div');container.innerHTML='<pre><code>'+text+'</code></pre>';var environment=block.parentNode.parentNode;environment.replaceChild(container.firstChild,block.parentNode);return;}if(LANGUAGES[match[1]]){language=match[1];}}if(language){var result=highlight(language,text).value;}else{var max_relevance=0;for(var key in selected_languages){if(!selected_languages.hasOwnProperty(key))continue;var lang_result=highlight(key,text);var relevance=lang_result.keyword_count+lang_result.relevance;if(relevance>max_relevance){max_relevance=relevance;var result=lang_result.value;language=key;}}}if(result){var class_name=block.className;if(!class_name.match(language)){class_name+=' '+language;}var container=document.createElement('div');container.innerHTML='<pre><code class="'+class_name+'">'+result+'</code></pre>';var environment=block.parentNode.parentNode;environment.replaceChild(container.firstChild,block.parentNode);}}function langRe(language,value,global){var mode='m'+(language.case_insensitive?'i':'')+(global?'g':'');return new RegExp(value,mode);}function compileModes(){for(var i in LANGUAGES){if(!LANGUAGES.hasOwnProperty(i))continue;var language=LANGUAGES[i];for(var j=0;j<language.modes.length;j++){if(language.modes[j].begin)language.modes[j].beginRe=langRe(language,'^'+language.modes[j].begin);if(language.modes[j].end)language.modes[j].endRe=langRe(language,'^'+language.modes[j].end);if(language.modes[j].illegal)language.modes[j].illegalRe=langRe(language,'^(?:'+language.modes[j].illegal+')');language.defaultMode.illegalRe=langRe(language,'^(?:'+language.defaultMode.illegal+')');if(language.modes[j].relevance==undefined){language.modes[j].relevance=1;}}}}function compileKeywords(){function compileModeKeywords(mode){if(!mode.keywordGroups){for(var key in mode.keywords){if(!mode.keywords.hasOwnProperty(key))continue;if(mode.keywords[key]instanceof Object)mode.keywordGroups=mode.keywords;else
mode.keywordGroups={'keyword':mode.keywords};break;}}}for(var i in LANGUAGES){if(!LANGUAGES.hasOwnProperty(i))continue;var language=LANGUAGES[i];compileModeKeywords(language.defaultMode);for(var j=0;j<language.modes.length;j++){compileModeKeywords(language.modes[j]);}}}function findCode(pre){for(var i=0;i<pre.childNodes.length;i++){node=pre.childNodes[i];if(node.nodeName=='CODE')return node;if(!(node.nodeType==3&&node.nodeValue.match(/\s+/)))return null;}}function initHighlighting(){if(initHighlighting.called)return;initHighlighting.called=true;compileModes();compileKeywords();if(arguments.length){for(var i=0;i<arguments.length;i++){if(LANGUAGES[arguments[i]]){selected_languages[arguments[i]]=LANGUAGES[arguments[i]];}}}else
selected_languages=LANGUAGES;var pres=document.getElementsByTagName('pre');for(var i=0;i<pres.length;i++){var code=findCode(pres[i]);if(code)highlightBlock(code);}}function initHighlightingOnLoad(){var original_arguments=arguments;var handler=function(){initHighlighting.apply(null,original_arguments)};if(window.addEventListener){window.addEventListener('DOMContentLoaded',handler,false);window.addEventListener('load',handler,false);}else if(window.attachEvent)window.attachEvent('onload',handler);else
window.onload=handler;}this.LANGUAGES=LANGUAGES;this.initHighlightingOnLoad=initHighlightingOnLoad;this.highlightBlock=highlightBlock;this.initHighlighting=initHighlighting;this.IDENT_RE='[a-zA-Z][a-zA-Z0-9_]*';this.UNDERSCORE_IDENT_RE='[a-zA-Z_][a-zA-Z0-9_]*';this.NUMBER_RE='\\b\\d+(\\.\\d+)?';this.C_NUMBER_RE='\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)';this.RE_STARTERS_RE='!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';this.APOS_STRING_MODE={className:'string',begin:'\'',end:'\'',illegal:'\\n',contains:['escape'],relevance:0};this.QUOTE_STRING_MODE={className:'string',begin:'"',end:'"',illegal:'\\n',contains:['escape'],relevance:0};this.BACKSLASH_ESCAPE={className:'escape',begin:'\\\\.',end:'^',noMarkup:true,relevance:0};this.C_LINE_COMMENT_MODE={className:'comment',begin:'//',end:'$',relevance:0};this.C_BLOCK_COMMENT_MODE={className:'comment',begin:'/\\*',end:'\\*/'};this.HASH_COMMENT_MODE={className:'comment',begin:'#',end:'$'};this.C_NUMBER_MODE={className:'number',begin:this.C_NUMBER_RE,end:'^',relevance:0};}();(function(){if(typeof jQuery!="undefined"){jQuery(function(){hljs.initHighlighting();});}else if(typeof Prototype!="undefined"){document.observe("dom:loaded",function(){hljs.initHighlighting();});}else{hljs.initHighlightingOnLoad();}})();hljs.LANGUAGES.bash=function(){var BASH_LITERAL={'true':1,'false':1};return{defaultMode:{lexems:[hljs.IDENT_RE],contains:['string','shebang','comment','number','test_condition','string','variable'],keywords:{'keyword':{'if':1,'then':1,'else':1,'fi':1,'for':1,'break':1,'continue':1,'while':1,'in':1,'do':1,'done':1,'echo':1,'exit':1,'return':1,'set':1,'declare':1},'literal':BASH_LITERAL}},case_insensitive:false,modes:[{className:'shebang',begin:'(#!\\/bin\\/bash)|(#!\\/bin\\/sh)',end:'^',relevance:10},hljs.HASH_COMMENT_MODE,{className:'test_condition',begin:'\\[ ',end:' \\]',contains:['string','variable','number'],lexems:[hljs.IDENT_RE],keywords:{'literal':BASH_LITERAL},relevance:0},{className:'test_condition',begin:'\\[\\[ ',end:' \\]\\]',contains:['string','variable','number'],lexems:[hljs.IDENT_RE],keywords:{'literal':BASH_LITERAL}},{className:'variable',begin:'\\$([a-zA-Z0-9_]+)\\b',end:'^'},{className:'variable',begin:'\\$\\{(([^}])|(\\\\}))+\\}',end:'^',contains:['number']},{className:'string',begin:'"',end:'"',illegal:'\\n',contains:['escape','variable'],relevance:0},{className:'string',begin:'"',end:'"',illegal:'\\n',contains:['escape','variable'],relevance:0},hljs.BACKSLASH_ESCAPE,hljs.C_NUMBER_MODE,{className:'comment',begin:'\\/\\/',end:'$',illegal:'.'}]};}();hljs.LANGUAGES.cpp=function(){var CPP_KEYWORDS={'keyword':{'false':1,'int':1,'float':1,'while':1,'private':1,'char':1,'catch':1,'export':1,'virtual':1,'operator':2,'sizeof':2,'dynamic_cast':2,'typedef':2,'const_cast':2,'const':1,'struct':1,'for':1,'static_cast':2,'union':1,'namespace':1,'unsigned':1,'long':1,'throw':1,'volatile':2,'static':1,'protected':1,'bool':1,'template':1,'mutable':1,'if':1,'public':1,'friend':2,'do':1,'return':1,'goto':1,'auto':1,'void':2,'enum':1,'else':1,'break':1,'new':1,'extern':1,'using':1,'true':1,'class':1,'asm':1,'case':1,'typeid':1,'short':1,'reinterpret_cast':2,'default':1,'double':1,'register':1,'explicit':1,'signed':1,'typename':1,'try':1,'this':1,'switch':1,'continue':1,'wchar_t':1,'inline':1,'delete':1},'built_in':{'std':1,'string':1,'cin':1,'cout':1,'cerr':1,'clog':1,'stringstream':1,'istringstream':1,'ostringstream':1,'auto_ptr':1,'deque':1,'list':1,'queue':1,'stack':1,'vector':1,'map':1,'set':1,'bitset':1,'multiset':1,'multimap':1}};return{defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],illegal:'</',contains:['comment','string','number','preprocessor','stl_container'],keywords:CPP_KEYWORDS},modes:[hljs.C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,hljs.C_NUMBER_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'string',begin:'\'',end:'[^\\\\]\'',illegal:'[^\\\\][^\']'},{className:'preprocessor',begin:'#',end:'$'},{className:'stl_container',begin:'\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap)\\s*<',end:'>',contains:['stl_container'],lexems:[hljs.UNDERSCORE_IDENT_RE],keywords:CPP_KEYWORDS,relevance:10}]};}();hljs.LANGUAGES.css={defaultMode:{contains:['id','class','attr_selector','rules','comment'],keywords:hljs.HTML_TAGS,lexems:[hljs.IDENT_RE],illegal:'='},case_insensitive:true,modes:[{className:'id',begin:'\\#[A-Za-z0-9_-]+',end:'^'},{className:'class',begin:'\\.[A-Za-z0-9_-]+',end:'^',relevance:0},{className:'attr_selector',begin:'\\[',end:'\\]',illegal:'$'},{className:'rules',begin:'{',end:'}',contains:['rule','comment'],illegal:'[^\\s]'},{className:'rule',begin:'[A-Z\\_\\.\\-]+\\s*:',end:';',endsWithParent:true,lexems:['[A-Za-z-]+'],keywords:{'play-during':1,'counter-reset':1,'counter-increment':1,'min-height':1,'quotes':1,'border-top':1,'pitch':1,'font':1,'pause':1,'list-style-image':1,'border-width':1,'cue':1,'outline-width':1,'border-left':1,'elevation':1,'richness':1,'speech-rate':1,'border-bottom':1,'border-spacing':1,'background':1,'list-style-type':1,'text-align':1,'page-break-inside':1,'orphans':1,'page-break-before':1,'text-transform':1,'line-height':1,'padding-left':1,'font-size':1,'right':1,'word-spacing':1,'padding-top':1,'outline-style':1,'bottom':1,'content':1,'border-right-style':1,'padding-right':1,'border-left-style':1,'voice-family':1,'background-color':1,'border-bottom-color':1,'outline-color':1,'unicode-bidi':1,'max-width':1,'font-family':1,'caption-side':1,'border-right-width':1,'pause-before':1,'border-top-style':1,'color':1,'border-collapse':1,'border-bottom-width':1,'float':1,'height':1,'max-height':1,'margin-right':1,'border-top-width':1,'speak':1,'speak-header':1,'top':1,'cue-before':1,'min-width':1,'width':1,'font-variant':1,'border-top-color':1,'background-position':1,'empty-cells':1,'direction':1,'border-right':1,'visibility':1,'padding':1,'border-style':1,'background-attachment':1,'overflow':1,'border-bottom-style':1,'cursor':1,'margin':1,'display':1,'border-left-width':1,'letter-spacing':1,'vertical-align':1,'clip':1,'border-color':1,'list-style':1,'padding-bottom':1,'pause-after':1,'speak-numeral':1,'margin-left':1,'widows':1,'border':1,'font-style':1,'border-left-color':1,'pitch-range':1,'background-repeat':1,'table-layout':1,'margin-bottom':1,'speak-punctuation':1,'font-weight':1,'border-right-color':1,'page-break-after':1,'position':1,'white-space':1,'text-indent':1,'background-image':1,'volume':1,'stress':1,'outline':1,'clear':1,'z-index':1,'text-decoration':1,'margin-top':1,'azimuth':1,'cue-after':1,'left':1,'list-style-position':1},contains:['value']},hljs.C_BLOCK_COMMENT_MODE,{className:'value',begin:'^',endsWithParent:true,excludeEnd:true,contains:['function','number','hexcolor','string']},{className:'number',begin:hljs.NUMBER_RE,end:'^'},{className:'hexcolor',begin:'\\#[0-9A-F]+',end:'^'},{className:'function',begin:hljs.IDENT_RE+'\\(',end:'\\)',contains:['params']},{className:'params',begin:'^',endsWithParent:true,excludeEnd:true,contains:['number','string']},hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE]};hljs.LANGUAGES.diff={case_insensitive:true,defaultMode:{contains:['chunk','header','addition','deletion','change']},modes:[{className:'chunk',begin:'^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$',end:'^',relevance:10},{className:'chunk',begin:'^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$',end:'^',relevance:10},{className:'chunk',begin:'^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$',end:'^',relevance:10},{className:'header',begin:'Index: ',end:'$'},{className:'header',begin:'=====',end:'=====$'},{className:'header',begin:'^\\-\\-\\-',end:'$'},{className:'header',begin:'^\\*{3} ',end:'$'},{className:'header',begin:'^\\+\\+\\+',end:'$'},{className:'header',begin:'\\*{5}',end:'\\*{5}$'},{className:'addition',begin:'^\\+',end:'$'},{className:'deletion',begin:'^\\-',end:'$'},{className:'change',begin:'^\\!',end:'$'}]};hljs.XML_COMMENT={className:'comment',begin:'<!--',end:'-->'};hljs.XML_ATTR={className:'attribute',begin:'\\s[a-zA-Z\\:-]+=',end:'^',contains:['value']};hljs.XML_VALUE_QUOT={className:'value',begin:'"',end:'"'};hljs.XML_VALUE_APOS={className:'value',begin:'\'',end:'\''};hljs.LANGUAGES.xml={defaultMode:{contains:['pi','comment','cdata','tag']},case_insensitive:true,modes:[{className:'pi',begin:'<\\?',end:'\\?>',relevance:10},hljs.XML_COMMENT,{className:'cdata',begin:'<\\!\\[CDATA\\[',end:'\\]\\]>'},{className:'tag',begin:'</?',end:'>',contains:['titlename','tag_internal'],relevance:1.5},{className:'titlename',begin:'[A-Za-z:_][A-Za-z0-9\\._:-]+',end:'^',relevance:0},{className:'tag_internal',begin:'^',endsWithParent:true,noMarkup:true,contains:['attribute'],relevance:0,illegal:'[\\+\\.]'},hljs.XML_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS]};hljs.HTML_TAGS={'code':1,'kbd':1,'font':1,'noscript':1,'style':1,'img':1,'title':1,'menu':1,'tt':1,'tr':1,'param':1,'li':1,'tfoot':1,'th':1,'input':1,'td':1,'dl':1,'blockquote':1,'fieldset':1,'big':1,'dd':1,'abbr':1,'optgroup':1,'dt':1,'button':1,'isindex':1,'p':1,'small':1,'div':1,'dir':1,'em':1,'frame':1,'meta':1,'sub':1,'bdo':1,'label':1,'acronym':1,'sup':1,'body':1,'xml':1,'basefont':1,'base':1,'br':1,'address':1,'strong':1,'legend':1,'ol':1,'script':1,'caption':1,'s':1,'col':1,'h2':1,'h3':1,'h1':1,'h6':1,'h4':1,'h5':1,'table':1,'select':1,'noframes':1,'span':1,'area':1,'dfn':1,'strike':1,'cite':1,'thead':1,'head':1,'option':1,'form':1,'hr':1,'var':1,'link':1,'b':1,'colgroup':1,'ul':1,'applet':1,'del':1,'iframe':1,'pre':1,'frameset':1,'ins':1,'tbody':1,'html':1,'samp':1,'map':1,'object':1,'a':1,'xmlns':1,'center':1,'textarea':1,'i':1,'q':1,'u':1};hljs.HTML_DOCTYPE={className:'doctype',begin:'<!DOCTYPE',end:'>',relevance:10};hljs.HTML_ATTR={className:'attribute',begin:'\\s[a-zA-Z\\:-]+=',end:'^',contains:['value']};hljs.HTML_SHORT_ATTR={className:'attribute',begin:' [a-zA-Z]+',end:'^'};hljs.HTML_VALUE={className:'value',begin:'[a-zA-Z0-9]+',end:'^'};hljs.LANGUAGES.html={defaultMode:{contains:['tag','comment','doctype','vbscript']},case_insensitive:true,modes:[hljs.XML_COMMENT,hljs.HTML_DOCTYPE,{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<style',end:'>',contains:['attribute'],illegal:'[\\+\\.]',starts:'css'},{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<script',end:'>',contains:['attribute'],illegal:'[\\+\\.]',starts:'javascript'},{className:'tag',lexems:[hljs.IDENT_RE],keywords:hljs.HTML_TAGS,begin:'<[A-Za-z/]',end:'>',contains:['attribute'],illegal:'[\\+\\.]'},{className:'css',end:'</style>',returnEnd:true,subLanguage:'css'},{className:'javascript',end:'</script>',returnEnd:true,subLanguage:'javascript'},hljs.HTML_ATTR,hljs.HTML_SHORT_ATTR,hljs.XML_VALUE_QUOT,hljs.XML_VALUE_APOS,hljs.HTML_VALUE,{className:'vbscript',begin:'<%',end:'%>',subLanguage:'vbscript'}]};hljs.LANGUAGES.java={defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],contains:['javadoc','comment','string','class','number','annotation'],keywords:{'false':1,'synchronized':1,'int':1,'abstract':1,'float':1,'private':1,'char':1,'interface':1,'boolean':1,'static':1,'null':1,'if':1,'const':1,'for':1,'true':1,'while':1,'long':1,'throw':1,'strictfp':1,'finally':1,'protected':1,'extends':1,'import':1,'native':1,'final':1,'implements':1,'return':1,'void':1,'enum':1,'else':1,'break':1,'transient':1,'new':1,'catch':1,'instanceof':1,'byte':1,'super':1,'class':1,'volatile':1,'case':1,'assert':1,'short':1,'package':1,'default':1,'double':1,'public':1,'try':1,'this':1,'switch':1,'continue':1,'throws':1}},modes:[{className:'class',lexems:[hljs.UNDERSCORE_IDENT_RE],begin:'(class |interface )',end:'{',illegal:':',keywords:{'class':1,'interface':1},contains:['inheritance','titlename']},{className:'inheritance',begin:'(implements|extends)',end:'^',noMarkup:true,lexems:[hljs.IDENT_RE],keywords:{'extends':1,'implements':1},relevance:10},{className:'titlename',begin:hljs.UNDERSCORE_IDENT_RE,end:'^'},{className:'params',begin:'\\(',end:'\\)',contains:['string','annotation']},hljs.C_NUMBER_MODE,hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,hljs.C_LINE_COMMENT_MODE,{className:'javadoc',begin:'/\\*\\*',end:'\\*/',contains:['javadoctag'],relevance:10},{className:'javadoctag',begin:'@[A-Za-z]+',end:'^'},hljs.C_BLOCK_COMMENT_MODE,{className:'annotation',begin:'@[A-Za-z]+',end:'^'}]};hljs.LANGUAGES.javascript={defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],contains:['string','comment','number','regexp_container','function'],keywords:{'keyword':{'in':1,'if':1,'for':1,'while':1,'finally':1,'var':1,'new':1,'function':1,'do':1,'return':1,'void':1,'else':1,'break':1,'catch':1,'instanceof':1,'with':1,'throw':1,'case':1,'default':1,'try':1,'this':1,'switch':1,'continue':1,'typeof':1,'delete':1},'literal':{'true':1,'false':1,'null':1}}},modes:[hljs.C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,hljs.C_NUMBER_MODE,hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'regexp_container',begin:'('+hljs.RE_STARTERS_RE+'|case|return|throw)\\s*',end:'^',noMarkup:true,lexems:[hljs.IDENT_RE],keywords:{'return':1,'throw':1,'case':1},contains:['comment','regexp'],relevance:0},{className:'regexp',begin:'/.*?[^\\\\/]/[gim]*',end:'^'},{className:'function',begin:'\\bfunction\\b',end:'{',lexems:[hljs.UNDERSCORE_IDENT_RE],keywords:{'function':1},contains:['titlename','params']},{className:'titlename',begin:'[A-Za-z$_][0-9A-Za-z$_]*',end:'^'},{className:'params',begin:'\\(',end:'\\)',contains:['string','comment']}]};hljs.LANGUAGES.objc=function(){var OBJC_KEYWORDS={'keyword':{'false':1,'int':1,'float':1,'while':1,'char':1,'catch':1,'export':1,'sizeof':2,'typedef':2,'const':1,'struct':1,'for':1,'union':1,'unsigned':1,'long':1,'throw':1,'volatile':2,'static':1,'bool':1,'if':1,'do':1,'return':1,'goto':1,'void':2,'enum':1,'else':1,'break':1,'new':1,'extern':1,'true':1,'class':1,'asm':1,'case':1,'short':1,'default':1,'double':1,'explicit':1,'signed':1,'try':1,'switch':1,'continue':1,'inline':1,'super':2,'self':2,'id':2,'Class':1,'SEL':3,'IMP':3,'BOOL':2,'nil':1,'Nil':2,'NO':3,'YES':3,'setter':2,'getter':2,'readwrite':2,'readonly':2,'assign':2,'retain':3,'copy':1,'nonatomic':3}};return{defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],illegal:'</',contains:['comment','string','number','preprocessor','class','method'],keywords:OBJC_KEYWORDS},modes:[hljs.C_LINE_COMMENT_MODE,hljs.C_BLOCK_COMMENT_MODE,hljs.C_NUMBER_MODE,hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'string',begin:'@"',end:'"',illegal:'\\n',contains:['escape']},{className:'preprocessor',begin:'#',end:'$'},{className:'preprocessor',begin:'@'+hljs.UNDERSCORE_IDENT_RE,end:'^'},{className:'class',begin:'\\b[A-Z][A-Za-z0-9_]*',end:'^'},{className:'attribute',begin:'\\b[a-z][A-Za-z0-9_]*:',end:'^'},{className:'method',begin:'\\[',end:'\\]\\s*;',lexems:[hljs.UNDERSCORE_IDENT_RE],keywords:OBJC_KEYWORDS,contains:['comment','string','number','class','attribute']}]};}();hljs.LANGUAGES.php={defaultMode:{lexems:[hljs.IDENT_RE],contains:['comment','number','string','variable','preprocessor'],keywords:{'and':1,'include_once':1,'list':1,'abstract':1,'global':1,'private':1,'echo':1,'interface':1,'as':1,'static':1,'endswitch':1,'array':1,'null':1,'if':1,'endwhile':1,'or':1,'const':1,'for':1,'endforeach':1,'self':1,'var':1,'while':1,'isset':1,'public':1,'protected':1,'exit':1,'foreach':1,'throw':1,'elseif':1,'extends':1,'include':1,'__FILE__':1,'empty':1,'require_once':1,'function':1,'do':1,'xor':1,'return':1,'implements':1,'parent':1,'clone':1,'use':1,'__CLASS__':1,'__LINE__':1,'else':1,'break':1,'print':1,'eval':1,'new':1,'catch':1,'__METHOD__':1,'class':1,'case':1,'exception':1,'php_user_filter':1,'default':1,'die':1,'require':1,'__FUNCTION__':1,'enddeclare':1,'final':1,'try':1,'this':1,'switch':1,'continue':1,'endfor':1,'endif':1,'declare':1,'unset':1}},case_insensitive:true,modes:[hljs.C_LINE_COMMENT_MODE,hljs.HASH_COMMENT_MODE,{className:'comment',begin:'/\\*',end:'\\*/',contains:['phpdoc']},{className:'phpdoc',begin:'\\s@[A-Za-z]+',end:'^',relevance:10},hljs.C_NUMBER_MODE,{className:'string',begin:'\'',end:'\'',contains:['escape'],relevance:0},{className:'string',begin:'"',end:'"',contains:['escape'],relevance:0},hljs.BACKSLASH_ESCAPE,{className:'variable',begin:'\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*',end:'^'},{className:'preprocessor',begin:'<\\?php',end:'^',relevance:10},{className:'preprocessor',begin:'\\?>',end:'^'}]};hljs.LANGUAGES.python={defaultMode:{lexems:[hljs.UNDERSCORE_IDENT_RE],illegal:'(</|->)',contains:['comment','string','function','class','number','decorator'],keywords:{'keyword':{'and':1,'elif':1,'is':1,'global':1,'as':1,'in':1,'if':1,'from':1,'raise':1,'for':1,'except':1,'finally':1,'print':1,'import':1,'pass':1,'return':1,'exec':1,'else':1,'break':1,'not':1,'with':1,'class':1,'assert':1,'yield':1,'try':1,'while':1,'continue':1,'del':1,'or':1,'def':1,'lambda':1},'built_in':{'None':1,'True':1,'False':1,'Ellipsis':1,'NotImplemented':1}}},modes:[{className:'function',lexems:[hljs.UNDERSCORE_IDENT_RE],begin:'\\bdef ',end:':',illegal:'$',keywords:{'def':1},contains:['titlename','params'],relevance:10},{className:'class',lexems:[hljs.UNDERSCORE_IDENT_RE],begin:'\\bclass ',end:':',illegal:'[${]',keywords:{'class':1},contains:['titlename','params',],relevance:10},{className:'titlename',begin:hljs.UNDERSCORE_IDENT_RE,end:'^'},{className:'params',begin:'\\(',end:'\\)',contains:['string']},hljs.HASH_COMMENT_MODE,hljs.C_NUMBER_MODE,{className:'string',begin:'u?r?\'\'\'',end:'\'\'\'',relevance:10},{className:'string',begin:'u?r?"""',end:'"""',relevance:10},hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE,{className:'string',begin:'(u|r|ur)\'',end:'\'',contains:['escape'],relevance:10},{className:'string',begin:'(u|r|ur)"',end:'"',contains:['escape'],relevance:10},{className:'decorator',begin:'@',end:'$'}]};hljs.LANGUAGES.ruby=function(){var RUBY_IDENT_RE='[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?';var RUBY_DEFAULT_CONTAINS=['comment','string','char','class','function','symbol','number','variable','regexp_container'];var RUBY_KEYWORDS={'keyword':{'and':1,'false':1,'then':1,'defined':1,'module':1,'in':1,'return':1,'redo':1,'if':1,'BEGIN':1,'retry':1,'end':1,'for':1,'true':1,'self':1,'when':1,'next':1,'until':1,'do':1,'begin':1,'unless':1,'END':1,'rescue':1,'nil':1,'else':1,'break':1,'undef':1,'not':1,'super':1,'class':1,'case':1,'require':1,'yield':1,'alias':1,'while':1,'ensure':1,'elsif':1,'or':1,'def':1},'keymethods':{'__id__':1,'__send__':1,'abort':1,'abs':1,'all?':1,'allocate':1,'ancestors':1,'any?':1,'arity':1,'assoc':1,'at':1,'at_exit':1,'autoload':1,'autoload?':1,'between?':1,'binding':1,'binmode':1,'block_given?':1,'call':1,'callcc':1,'caller':1,'capitalize':1,'capitalize!':1,'casecmp':1,'catch':1,'ceil':1,'center':1,'chomp':1,'chomp!':1,'chop':1,'chop!':1,'chr':1,'class':1,'class_eval':1,'class_variable_defined?':1,'class_variables':1,'clear':1,'clone':1,'close':1,'close_read':1,'close_write':1,'closed?':1,'coerce':1,'collect':1,'collect!':1,'compact':1,'compact!':1,'concat':1,'const_defined?':1,'const_get':1,'const_missing':1,'const_set':1,'constants':1,'count':1,'crypt':1,'default':1,'default_proc':1,'delete':1,'delete!':1,'delete_at':1,'delete_if':1,'detect':1,'display':1,'div':1,'divmod':1,'downcase':1,'downcase!':1,'downto':1,'dump':1,'dup':1,'each':1,'each_byte':1,'each_index':1,'each_key':1,'each_line':1,'each_pair':1,'each_value':1,'each_with_index':1,'empty?':1,'entries':1,'eof':1,'eof?':1,'eql?':1,'equal?':1,'eval':1,'exec':1,'exit':1,'exit!':1,'extend':1,'fail':1,'fcntl':1,'fetch':1,'fileno':1,'fill':1,'find':1,'find_all':1,'first':1,'flatten':1,'flatten!':1,'floor':1,'flush':1,'for_fd':1,'foreach':1,'fork':1,'format':1,'freeze':1,'frozen?':1,'fsync':1,'getc':1,'gets':1,'global_variables':1,'grep':1,'gsub':1,'gsub!':1,'has_key?':1,'has_value?':1,'hash':1,'hex':1,'id':1,'include?':1,'included_modules':1,'index':1,'indexes':1,'indices':1,'induced_from':1,'inject':1,'insert':1,'inspect':1,'instance_eval':1,'instance_method':1,'instance_methods':1,'instance_of?':1,'instance_variable_defined?':1,'instance_variable_get':1,'instance_variable_set':1,'instance_variables':1,'integer?':1,'intern':1,'invert':1,'ioctl':1,'is_a?':1,'isatty':1,'iterator?':1,'join':1,'key?':1,'keys':1,'kind_of?':1,'lambda':1,'last':1,'length':1,'lineno':1,'ljust':1,'load':1,'local_variables':1,'loop':1,'lstrip':1,'lstrip!':1,'map':1,'map!':1,'match':1,'max':1,'member?':1,'merge':1,'merge!':1,'method':1,'method_defined?':1,'method_missing':1,'methods':1,'min':1,'module_eval':1,'modulo':1,'name':1,'nesting':1,'new':1,'next':1,'next!':1,'nil?':1,'nitems':1,'nonzero?':1,'object_id':1,'oct':1,'open':1,'pack':1,'partition':1,'pid':1,'pipe':1,'pop':1,'popen':1,'pos':1,'prec':1,'prec_f':1,'prec_i':1,'print':1,'printf':1,'private_class_method':1,'private_instance_methods':1,'private_method_defined?':1,'private_methods':1,'proc':1,'protected_instance_methods':1,'protected_method_defined?':1,'protected_methods':1,'public_class_method':1,'public_instance_methods':1,'public_method_defined?':1,'public_methods':1,'push':1,'putc':1,'puts':1,'quo':1,'raise':1,'rand':1,'rassoc':1,'read':1,'read_nonblock':1,'readchar':1,'readline':1,'readlines':1,'readpartial':1,'rehash':1,'reject':1,'reject!':1,'remainder':1,'reopen':1,'replace':1,'require':1,'respond_to?':1,'reverse':1,'reverse!':1,'reverse_each':1,'rewind':1,'rindex':1,'rjust':1,'round':1,'rstrip':1,'rstrip!':1,'scan':1,'seek':1,'select':1,'send':1,'set_trace_func':1,'shift':1,'singleton_method_added':1,'singleton_methods':1,'size':1,'sleep':1,'slice':1,'slice!':1,'sort':1,'sort!':1,'sort_by':1,'split':1,'sprintf':1,'squeeze':1,'squeeze!':1,'srand':1,'stat':1,'step':1,'store':1,'strip':1,'strip!':1,'sub':1,'sub!':1,'succ':1,'succ!':1,'sum':1,'superclass':1,'swapcase':1,'swapcase!':1,'sync':1,'syscall':1,'sysopen':1,'sysread':1,'sysseek':1,'system':1,'syswrite':1,'taint':1,'tainted?':1,'tell':1,'test':1,'throw':1,'times':1,'to_a':1,'to_ary':1,'to_f':1,'to_hash':1,'to_i':1,'to_int':1,'to_io':1,'to_proc':1,'to_s':1,'to_str':1,'to_sym':1,'tr':1,'tr!':1,'tr_s':1,'tr_s!':1,'trace_var':1,'transpose':1,'trap':1,'truncate':1,'tty?':1,'type':1,'ungetc':1,'uniq':1,'uniq!':1,'unpack':1,'unshift':1,'untaint':1,'untrace_var':1,'upcase':1,'upcase!':1,'update':1,'upto':1,'value?':1,'values':1,'values_at':1,'warn':1,'write':1,'write_nonblock':1,'zero?':1,'zip':1}};return{defaultMode:{lexems:[RUBY_IDENT_RE],contains:RUBY_DEFAULT_CONTAINS,keywords:RUBY_KEYWORDS},modes:[hljs.HASH_COMMENT_MODE,{className:'comment',begin:'^\\=begin',end:'^\\=end',relevance:10},{className:'comment',begin:'^__END__',end:'\\n$'},{className:'params',begin:'\\(',end:'\\)',lexems:[RUBY_IDENT_RE],keywords:RUBY_KEYWORDS,contains:RUBY_DEFAULT_CONTAINS},{className:'function',begin:'\\bdef\\b',end:'$|;',lexems:[RUBY_IDENT_RE],keywords:RUBY_KEYWORDS,contains:['titlename','params','comment']},{className:'class',begin:'\\b(class|module)\\b',end:'$',lexems:[hljs.UNDERSCORE_IDENT_RE],keywords:RUBY_KEYWORDS,contains:['titlename','inheritance','comment'],keywords:{'class':1,'module':1}},{className:'titlename',begin:'[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?',end:'^',relevance:0},{className:'inheritance',begin:'<\\s*',end:'^',contains:['parent']},{className:'parent',begin:'('+hljs.IDENT_RE+'::)?'+hljs.IDENT_RE,end:'^'},{className:'number',begin:'(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b',end:'^',relevance:0},{className:'number',begin:'\\?\\w',end:'^'},{className:'string',begin:'\'',end:'\'',contains:['escape','subst'],relevance:0},{className:'string',begin:'"',end:'"',contains:['escape','subst'],relevance:0},{className:'string',begin:'%[qw]?\\(',end:'\\)',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?\\[',end:'\\]',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?{',end:'}',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?<',end:'>',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?/',end:'/',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?%',end:'%',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?-',end:'-',contains:['escape','subst'],relevance:10},{className:'string',begin:'%[qw]?\\|',end:'\\|',contains:['escape','subst'],relevance:10},{className:'symbol',begin:':'+RUBY_IDENT_RE,end:'^'},hljs.BACKSLASH_ESCAPE,{className:'subst',begin:'#\\{',end:'}',lexems:[RUBY_IDENT_RE],keywords:RUBY_KEYWORDS,contains:RUBY_DEFAULT_CONTAINS},{className:'regexp_container',begin:'('+hljs.RE_STARTERS_RE+')\\s*',end:'^',noMarkup:true,contains:['comment','regexp'],relevance:0},{className:'regexp',begin:'/',end:'/[a-z]*',illegal:'\\n',contains:['escape']},{className:'variable',begin:'(\\$\\W)|((\\$|\\@\\@?)(\\w+))',end:'^'}]};}();hljs.LANGUAGES.terminal=function(){var COMMANDS=['[','[[','addgroup','adduser','adjtimex','ar','arp','arping','ash','awk','basename','bbconfig','bbsh','brctl','bunzip2','busybox','bzcat','bzip2','cal','cat','catv','chat','chattr','chcon','chgrp','chmod','chown','chpasswd','chpst','chroot','chrt','chvt','cksum','clear','cmp','comm','cp','cpio','crond','crontab','cryptpw','cttyhack','cut','date','dc','dd','deallocvt','delgroup','deluser','depmod','devfsd','df','dhcprelay','diff','dirname','dmesg','dnsd','dos2unix','dpkg','dpkg_deb','du','dumpkmap','dumpleases','e2fsck','echo','ed','egrep','eject','env','envdir','envuidgid','ether_wake','expand','expr','fakeidentd','false','fbset','fbsplash','fdflush','fdformat','fdisk','fetchmail','fgrep','find','findfs','fold','free','freeramdisk','fsck','fsck_minix','ftpget','ftpput','fuser','getenforce','getopt','getsebool','getty','grep','gunzip','gzip','halt','hd','hdparm','head','hexdump','hostid','hostname','httpd','hush','hwclock','id','ifconfig','ifdown','ifenslave','ifup','inetd','init','inotifyd','insmod','install','ip','ipaddr','ipcalc','ipcrm','ipcs','iplink','iproute','iprule','iptunnel','kbd_mode','kill','killall','killall5','klogd','lash','last','length','less','linux32','linux64','linuxrc','ln','load_policy','loadfont','loadkmap','logger','login','logname','logread','losetup','lpd','lpq','lpr','ls','lsattr','lsmod','lzmacat','makedevs','man','matchpathcon','md5sum','mdev','mesg','microcom','mkdir','mke2fs','mkfifo','mkfs_minix','mknod','mkswap','mktemp','modprobe','more','mount','mountpoint','msh','mt','mv','nameif','nc','netstat','nice','nmeter','nohup','nslookup','od','openvt','parse','passwd','patch','pgrep','pidof','ping','ping6','pipe_progress','pivot_root','pkill','poweroff','printenv','printf','ps','pscan','pwd','raidautorun','rdate','rdev','readahead','readlink','readprofile','realpath','reboot','renice','reset','resize','restorecon','rm','rmdir','rmmod','route','rpm','rpm2cpio','rtcwake','run_parts','runcon','runlevel','runsv','runsvdir','rx','script','sed','selinuxenabled','sendmail','seq','sestatus','setarch','setconsole','setenforce','setfiles','setfont','setkeycodes','setlogcons','setsebool','setsid','setuidgid','sh','sha1sum','showkey','slattach','sleep','softlimit','sort','split','start_stop_daemon','stat','strings','stty','su','sulogin','sum','sv','svlogd','swapoff','swapon','switch_root','sync','sysctl','syslogd','tac','tail','tar','taskset','tcpsvd','tee','telnet','telnetd','test','tftp','tftpd','time','top','touch','tr','traceroute','true','tty','ttysize','tune2fs','udhcpc','udhcpd','udpsvd','umount','uname','uncompress','unexpand','uniq','unix2dos','unlzma','unzip','uptime','usleep','uudecode','uuencode','vconfig','vi','vlock','watch','watchdog','wc','wget','which','who','whoami','xargs','yes','zcat','zcip','svn','git','make','pushd','popd','cd'];var TERMINAL_KEYWORDS={'keyword':{}};for(var i=0;i<COMMANDS.length;i++){TERMINAL_KEYWORDS['keyword'][COMMANDS[i]]=2;}return{defaultMode:{lexems:[hljs.IDENT_RE],contains:['comment','string','escape','variable'],keywords:TERMINAL_KEYWORDS},modes:[{className:'comment',begin:'^.*[\\%\\$\\#]\\s',end:'^',relevance:2},hljs.APOS_STRING_MODE,hljs.QUOTE_STRING_MODE,hljs.BACKSLASH_ESCAPE]};}();
