diff --git a/PseudoCode.js b/PseudoCode.js
index 8030736e9c7971cc5d7e9e929a471ed1016afea2..a30e574924d1510c095eb6e6d4bdd5bb3cd8a557 100644
--- a/PseudoCode.js
+++ b/PseudoCode.js
@@ -15,13 +15,13 @@ in a context-free grammar:
     <algorithm>     :== \begin{algorithm}
                         + ( <caption> | <algorithmic> )[0..n]
                         \end{algorithm}
-    <caption>       :== \caption{ <text> }
+    <caption>       :== \caption{ <close-text> }
 
     <algorithmic>   :== \begin{algorithmic}
                         + ( <ensure> | <require> | <block> )[0..n]
                         + \end{algorithmic}
-    <require>       :== \REQUIRE + <text>
-    <ensure>        :== \ENSURE + <text>
+    <require>       :== \REQUIRE + <open-text>
+    <ensure>        :== \ENSURE + <open-text>
 
     <block>         :== ( <control> | <function>
                         | <statement> | <comment> | <call> )[0..n]
@@ -38,16 +38,17 @@ in a context-free grammar:
                         (same for <procedure>)
 
     <statement>     :== <state> |  <return> | <print>
-    <state>         :== \STATE + <text>
-    <return>        :== \RETURN + <text>
-    <print>         :== \PRINT + <text>
+    <state>         :== \STATE + <open-text>
+    <return>        :== \RETURN + <open-text>
+    <print>         :== \PRINT + <open-text>
 
-    <comment>       :== \COMMENT{<text>}
+    <comment>       :== \COMMENT{<close-text>}
 
-    <call>          :== \CALL{<text>}
+    <call>          :== \CALL{<close-text>}
 
-    <cond>          :== <text>
-    <text>          :== <symbol> + <text> | { <text> } | <empty>
+    <cond>          :== <close-text>
+    <open-text>     :== <symbol> + <open-text> | { <close-text> } | <empty>
+    <close-text>    :== <symbol> + <close-text> | { <close-text> } | <empty>
 
     <symbol>        :== <ordinary>[1..n] | <special>
                         | <size> | <font> | <bool> | <math>
@@ -57,8 +58,11 @@ in a context-free grammar:
     <math>          :== \( + ... + \) | $ ... $
                                                 --- to be handled by KaTeX
 
-    <size>          :== \large | \tiny | ...
-    <font>          :== \rm | \sl | \bf | \it
+    <size>          :== \tiny | \scriptsize | \footnotesize | \small
+                        | \normalsize | \large | \Large | \LARGE | \huge
+                        | \HUGE
+    <font>          :== \rmfamily | \sffamily | \ttfamily
+                        | \upshape | \itshape | \slshape | \scshape
     <ordinary>      :== not any of \ { } $ & # % _
     <empty>         :==
 
@@ -75,7 +79,6 @@ TODO:
     * comment
     * fonts: \bf, \textbf{} ...
     * size: \large, ...
-    * command name case-insensitive
     * noend
     * line number every k lines: \begin{algorithmic}[k]
     * caption without the number: \caption*{}
@@ -238,8 +241,6 @@ Lexer.prototype.next = function() {
             this._pos, this._input);
 };
 
-
-
 /* Check whether the text of the next symbol matches */
 Lexer.prototype._matchText = function(text) {
     // don't need to match
@@ -358,7 +359,7 @@ Parser.prototype._parseAlgorithmicInner = function() {
     var algmicNode = new ParseNode('algorithmic');
     while (true) {
         var node;
-        if (!(node = this._parseCommand(['ENSURE', 'REQUIRE'])) &&
+        if (!(node = this._parseCommand(CONDITION_COMMANDS)) &&
             !(node = this._parseBlock())) break;
 
         algmicNode.addChild(node);
@@ -372,7 +373,7 @@ Parser.prototype._parseCaption = function() {
 
     var captionNode = new ParseNode('caption');
     lexer.expect('open');
-    captionNode.addChild(this._parseText());
+    captionNode.addChild(this._parseCloseText());
     lexer.expect('close');
 
     return captionNode;
@@ -388,7 +389,7 @@ Parser.prototype._parseBlock = function() {
         var functionNode = this._parseFunction();
         if (functionNode) { blockNode.addChild(functionNode); continue; }
 
-        var commandNode = this._parseCommand(['STATE', 'PRINT', 'RETURN']);
+        var commandNode = this._parseCommand(STATEMENT_COMMANDS);
         if (commandNode) { blockNode.addChild(commandNode); continue; }
 
         var commentNode = this._parseComment();
@@ -419,7 +420,7 @@ Parser.prototype._parseFunction = function() {
     var funcName = lexer.expect('ordinary');
     lexer.expect('close');
     lexer.expect('open');
-    var argsNode = this._parseText();
+    var argsNode = this._parseCloseText();
     lexer.expect('close');
     // <block>
     var blockNode = this._parseBlock();
@@ -486,13 +487,15 @@ Parser.prototype._parseLoop = function() {
     return loopNode;
 };
 
+var CONDITION_COMMANDS = ['ENSURE', 'REQUIRE'];
+var STATEMENT_COMMANDS = ['STATE', 'PRINT', 'RETURN'];
 Parser.prototype._parseCommand = function(acceptCommands) {
     if (!this._lexer.accept('func', acceptCommands))
         return null;
 
     var cmdName = this._lexer.text();
     var cmdNode = new ParseNode('command', cmdName);
-    cmdNode.addChild(this._parseText());
+    cmdNode.addChild(this._parseOpenText());
     return cmdNode;
 };
 
@@ -503,7 +506,7 @@ Parser.prototype._parseComment = function() {
 
     // { \text }
     this._lexer.expect('open');
-    commentNode.addChild(this._parseText());
+    commentNode.addChild(this._parseCloseText());
     this._lexer.expect('close');
 
     return commentNode;
@@ -518,7 +521,7 @@ Parser.prototype._parseCall = function() {
     var funcName = lexer.expect('ordinary');
     lexer.expect('close');
     lexer.expect('open');
-    var argsNode = this._parseText();
+    var argsNode = this._parseOpenText();
     lexer.expect('close');
 
     var callNode = new ParseNode('call');
@@ -528,8 +531,15 @@ Parser.prototype._parseCall = function() {
 };
 
 Parser.prototype._parseCond =
-Parser.prototype._parseText = function() {
-    var textNode = new ParseNode('text');
+Parser.prototype._parseCloseText = function() {
+    return this._parseText('close');
+};
+Parser.prototype._parseOpenText = function() {
+    return this._parseText('open');
+};
+
+Parser.prototype._parseText = function(openOrClose) {
+    var textNode = new ParseNode(openOrClose + '-text');
 
     var symbolNode;
     while (true) {
@@ -540,7 +550,7 @@ Parser.prototype._parseText = function() {
         }
 
         if (this._lexer.accept('open')) {
-            var subTextNode = this._parseText();
+            var subTextNode = this._parseCloseText();
             textNode.addChild(subTextNode);
             this._lexer.expect('close');
             continue;
@@ -552,7 +562,6 @@ Parser.prototype._parseText = function() {
     return textNode;
 };
 
-
 Parser.prototype._parseSymbol = function() {
     var symbol;
 
@@ -572,13 +581,15 @@ Parser.prototype._parseSymbol = function() {
     }
     else if (text = this._lexer.accept('func',
         ['large', 'tiny'])) {
-        return new ParseNode('size', text);
+        return new ParseNode('sizing-dclr', text);
     }
     else if (text = this._lexer.accept('func',
-        ['rm', 'sl', 'bf', 'it'])) {
-        return new ParseNode('font', text);
+        ['rmfamily', 'sffamily', 'ttfamily',
+         'upshape', 'itshape', 'slshape', 'scshape',
+         'bfseries', 'mdseries', 'lfseries',
+         'uppercase', 'lowercase'])) {
+        return new ParseNode('font-dclr', text);
     }
-
     return null;
 }
 
@@ -590,9 +601,8 @@ Parser.prototype._parseSymbol = function() {
 function BuilderOptions(options) {
     options = options || {};
     this.indentSize = options.indentSize ?
-                        this._parseEmVal(options.indentSize) : 1.4;
+                        this._parseEmVal(options.indentSize) : 1.2;
     this.commentSymbol = options.commentSymbol || '//';
-    // TODO: HTML-escape
     this.lineNumberPunc = options.lineNumberPunc || ':';
     this.lineNumber = options.lineNumber != null ? options.lineNumber : false;
 }
@@ -604,140 +614,408 @@ BuilderOptions.prototype._parseEmVal = function(emVal) {
     return Number(emVal.substring(0, emVal.length - 2));
 }
 
-function Builder(parser, options) {
-    this._root = parser.parse();
-    this._options = new BuilderOptions(options);
-    this._blockLevel = 0;
-    this._openLine = false;
-    console.log(this._root.toString());
+/*
+   The font information used by builder to render the ouput HTML
+
+   options - set attributes of font, null value means default
+        family - roman, sans serif, teletype
+        size - ..., small, normalsize, large, Large, ...
+        weight - normal, bold
+        color -
+        variant - none, small-caps
+*/
+function TextStyle() {
+    this._css = {};
+}
+
+/* Update the font state by TeX command
+    cmd - the name of TeX command that alters current font
+*/
+TextStyle.prototype._textStyleCommandTable = {
+    // font-family
+    rmfamily: { 'font-family': 'KaTeX_Main' },
+    sffamily: { 'font-family': 'KaTeX_SansSerif'},
+    ttfamily: { 'font-family': 'KaTeX_Typewriter'},
+    // weight
+    bfseries: { 'font-weight': 'bold'},
+    mdseries: { 'font-weight': 'medium'},
+    lfseries: { 'font-weight': 'lighter'},
+    // shape
+    upshape: { 'font-style': 'normal', 'font-variant': 'normal'},
+    itshape: { 'font-style': 'italic', 'font-variant': 'normal'},
+    scshape: { 'font-style': 'normal', 'font-variant': 'small-caps'},
+    slshape: { 'font-style': 'oblique', 'font-variant': 'normal'},
+    // case
+    uppercase: { 'text-transform': 'uppercase'},
+    lowercase: { 'text-transform': 'lowercase'}
+};
+
+TextStyle.prototype.updateByCommand = function(cmd) {
+    var cmdStyles = this._textStyleCommandTable[cmd];
+    if (!cmdStyles) throw new ParserError('unrecogniazed text-style command');
+
+    for (var attr in cmdStyles)
+        this._css[attr] = cmdStyles[attr];
+};
+
+TextStyle.prototype.toCSS = function() {
+    var cssStr = '';
+    for (var attr in this._css) {
+        var val = this._css[attr];
+        if (val == null) continue;
+        cssStr += attr + ':' + this._css[attr] + ';';
+    }
+    return cssStr;
+};
+
+function TextEnvironment(node, open, outerTextStyle) {
+    this._node = node;
+    this._outerTextStyle = outerTextStyle;
+
+    // For an close text environment, text-style changes should only take
+    // effect inside the environment. Thus, we should NOT modify
+    // `outerTextStyle`. In contrast, for an open text environment, we make all
+    // the updates on outerTextStyle directly.
+    this._textStyle = open ? outerTextStyle : new TextStyle();
+}
+
+TextEnvironment.prototype.renderToHTML = function() {
+    this._html = new HTMLBuilder();
+    this._numTextStyleUpdates = 0;
+    this._html.beginSpan(null, this._outerTextStyle.toCSS());
+    var children = this._node.children;
+    for (var ci = 0; ci < children.length; ci++)
+        this._buildTree(children[ci]);
+    while (this._numTextStyleUpdates) {
+        this._html.endSpan();
+        this._numTextStyleUpdates--;
+    }
+    this._html.endSpan();
+    return this._html.toMarkup();
+};
+
+TextEnvironment.prototype._buildTree = function(node) {
+    switch(node.type) {
+    case 'close-text':
+        var textEnv = new TextEnvironment(node, false, this._textStyle);
+        this._html.putSpan(textEnv.renderToHTML());
+        break;
+    case 'ordinary':
+        var text = node.value;
+        this._html.putText(text);
+        break;
+    case 'math':
+        var math = node.value;
+        var mathHTML = katex.renderToString(math);
+        this._html.putSpan(mathHTML);
+        break;
+    case 'special':
+        var escapedStr = node.value;
+        var replace = {
+            '\\\\': '<br/>',
+            '\\{': '{',
+            '\\}': '}',
+            '\\$': '$',
+            '\\&': '&',
+            '\\#': '#',
+            '\\%': '%',
+            '\\_': '_'
+        };
+        var replaceStr = replace[escapedStr];
+        this._html.putText(replaceStr);
+        break;
+    // There are two kinds of typestyle commands:
+    //      command (e.g. \textrm{...}).
+    // and
+    //      declaration (e.g. { ... \rmfamily ... })
+    //
+    // For typestyle commands, it works as following:
+    //      \textsf     --> create a new typestyle
+    //      {           --> save the current typestyle, and then use the new one
+    //      ...         --> the new typestyle is in use
+    //      }           --> restore the last typestyle
+    //
+    // For typestyle declaration, it works a little bit diferrently:
+    //      {           --> save the current typestyle, and then create and use
+    //                      an identical one
+    //      ...         --> the new typestyle is in use
+    //      \rmfamily   --> create a new typestyle
+    //      ...         --> the new typestyle is in use
+    //      }           --> restore the last typestyle
+    // case 'font':
+    case 'font-dclr':
+    case 'sizing-dclr':
+        var cmdName = node.value;
+        this._textStyle.updateByCommand(cmdName);
+        this._numTextStyleUpdates++;
+        this._html.beginSpan(null, this._textStyle.toCSS());
+        break;
+    default:
+        throw new ParseError('Unexpected ParseNode of type ' + node.type);
+    }
 }
 
-Builder.prototype._captionCount = 0;
 
-Builder.prototype.toMarkup = function() {
+
+/* HTMLBuilder - A helper class for constructing HTML */
+function HTMLBuilder() {
     this._body = [];
-    this._buildTree(this._root);
+    this._textBuf = [];
+    this._textLevel = -1;
+}
+
+HTMLBuilder.prototype.beginDiv = function(className, style, extraStyle) {
+    return this._beginTag('div', className, style, extraStyle);
+};
+
+HTMLBuilder.prototype.endDiv = function() {
+    return this._endTag('div');
+};
+
+HTMLBuilder.prototype.beginP = function(className, style, extraStyle) {
+    return this._beginTag('p', className, style, extraStyle);
+};
+
+HTMLBuilder.prototype.endP = function() {
+    return this._endTag('p');
+};
+
+HTMLBuilder.prototype.beginSpan = function(className, style, extraStyle) {
+    this._textLevel++;
+    this._flushText();
+    return this._beginTag('span', className, style, extraStyle);
+};
+
+HTMLBuilder.prototype.endSpan = function() {
+    this._flushText();
+    this._textLevel--;
+    return this._endTag('span');
+}
+
+HTMLBuilder.prototype.putSpan = function(spanHTML) {
+    this._flushText();
+    this._body.push(spanHTML);
+    return this;
+}
+
+HTMLBuilder.prototype.putText = function(text) {
+    if (this._textLevel < 0)
+        throw new ParseError('putText must be called between ' +
+                            'beginSpan and endSpan');
+
+    this._textBuf.push(text);
+    return this;
+}
+
+HTMLBuilder.prototype.write = function(html) {
+    this._body.push(html);
+}
+
+HTMLBuilder.prototype.toMarkup = function() {
     var html = this._body.join('\n');
-    delete this._body;
     return html;
 }
 
-Builder.prototype.toDOM = function() {
+HTMLBuilder.prototype.toDOM = function() {
     var html = this.toMarkup();
     var div = document.createElement('div');
     div.innerHTML = html;
     return div.firstChild;
 }
 
-Builder.prototype._beginDiv = function(className) {
-    this._body.push('<div class="' + className + '">');
+HTMLBuilder.prototype._flushText = function(text) {
+    if (this._textLevel >= 0 && this._textBuf.length == 0) return;
+
+    var text = this._textBuf.join('');
+    this._body.push(text);
+    this._textBuf = [];
+}
+
+/* Write the beginning of a DOM element
+    tag - the tag of the element
+    className - the className for the tag
+    style - CSS style that applies directly on the tag. This parameter can be
+            either a string, e.g., 'color:red', or an object, e.g.
+            { color: 'red', margin-left: '1em'}
+*/
+HTMLBuilder.prototype._beginTag = function(tag, className, style, extraStyle) {
+    var spanHTML = '<' + tag;
+    if (className) spanHTML += ' class="' + className + '"';
+    if (style) {
+        var styleCode;
+        if (isString(style)) styleCode = style;
+        else { // style
+            styleCode = '';
+            for (var attrName in style) {
+                attrVal = style[attrName];
+                styleCode += attrName + ':' + attrVal + ';';
+            }
+        }
+        if (extraStyle) styleCode += extraStyle;
+        spanHTML += ' style="' + styleCode + '"';
+    }
+    spanHTML += '>';
+    this._body.push(spanHTML);
+    return this;
+}
+
+HTMLBuilder.prototype._endTag = function(tag) {
+    this._body.push('</' + tag + '>');
+    return this;
+}
+
+/*
+    The renderer converts a parse tree to HTML.
+
+    There are three levels in renderer:
+        Group (Block), Line and Segment,
+    which are rendered to HTML tag, <div>, <p>, and <span>, respectively.
+
+*/
+function Renderer(parser, options) {
+    this._root = parser.parse();
+    // debug
+    console.log(this._root.toString());
+    this._options = new BuilderOptions(options);
+    this._openLine = false;
+    this._blockLevel = 0;
+    this._textLevel = -1;
+    this._globalTextStyle = new TextStyle();
+}
+
+/*  The global counter for the numbering of the algorithm environment */
+Renderer.prototype._captionCount = 0;
+
+Renderer.prototype.toMarkup = function() {
+    var html = this._html = new HTMLBuilder();
+    this._buildTree(this._root);
+    delete this._html;
+    return html.toMarkup();
 }
 
-Builder.prototype._endDiv = function() {
-    this._body.push('</div>');
+Renderer.prototype.toDOM = function() {
+    var html = this.toMarkup();
+    var div = document.createElement('div');
+    div.innerHTML = html;
+    return div.firstChild;
 }
 
-Builder.prototype._beginBlock = function() {
-    if (this._openLine) this._endLine();
+Renderer.prototype._beginGroup = function(name, extraClass, style) {
+    this._closeLineIfAny();
+    this._html.beginDiv('ps-' + name + (extraClass ? ' ' + extraClass : ''),
+                        style);
+}
 
+Renderer.prototype._endGroup = function(name) {
+    this._closeLineIfAny();
+    this._html.endDiv();
+}
+
+Renderer.prototype._beginBlock = function() {
+    // The first block have to extra left margin when line number are displayed
     var extraIndentForFirstBlock =
         this._options.lineNumber && this._blockLevel == 0 ? 0.6 : 0;
     var blockIndent = this._options.indentSize + extraIndentForFirstBlock;
-    this._body.push('<div class="ps-block" style="margin-left:' +
-                    blockIndent+ 'em;">');
+
+    this._beginGroup('block', null, {
+        'margin-left': blockIndent + 'em'
+    });
     this._blockLevel++;
 }
 
-Builder.prototype._endBlock = function() {
-    if (this._openLine) this._endLine();
-    this._body.push('</div>');
+Renderer.prototype._endBlock = function() {
+    this._closeLineIfAny();
+    this._endGroup();
     this._blockLevel--;
 }
 
-Builder.prototype._newLine = function() {
-    if (this._openLine) this._endLine();
+Renderer.prototype._newLine = function() {
+    this._closeLineIfAny();
+
     this._openLine = true;
-    this._beginLine();
-}
 
-Builder.prototype._beginLine = function() {
     var indentSize = this._options.indentSize;
     // if this line is for code (e.g. \STATE)
     if (this._blockLevel > 0) {
         this._numLOC++;
 
-        this._body.push('<p class="ps-line ps-code">');
+        this._html.beginP('ps-line ps-code');
         if (this._options.lineNumber) {
-            this._body.push('<span class="ps-linenum" ' +
-                'style="left:-' + ( ( this._blockLevel - 1 ) * (indentSize - 0.2)) +
-                'em;">' + this._numLOC + this._options.lineNumberPunc + '</span>');
+            this._html.beginSpan('ps-linenum', {
+                'left': - ((this._blockLevel - 1)*(indentSize - 0.2)) + 'em'
+            })
+            .putText(this._numLOC + this._options.lineNumberPunc)
+            .endSpan();
         }
     }
     // if this line is for pre-conditions (e.g. \REQUIRE)
     else {
-        this._body.push('<p class="ps-line" style="text-indent:' +
-                        (-indentSize) + 'em;padding-left: ' + indentSize +'em;">');
+        this._html.beginP('ps-line', {
+            'text-indent': (-indentSize) + 'em',
+            'padding-left': indentSize + 'em'
+        });
     }
 }
 
-Builder.prototype._endLine = function() {
-    this._flushText();
-    this._body.push('</span>')
-    this._body.push('</p>');
+Renderer.prototype._closeLineIfAny = function() {
+    if (!this._openLine) return;
+
+    this._html.endP();
+
     this._openLine = false;
 }
 
-Builder.prototype._typeKeyword = function(keyword) {
-    this._flushText();
-    this._body.push('<span class="ps-keyword">' + keyword + '</span>');
+Renderer.prototype._typeKeyword = function(keyword) {
+    this._html.beginSpan('ps-keyword').putText(keyword).endSpan();
 }
 
-Builder.prototype._typeFuncName = function(funcName) {
-    this._flushText();
-    this._body.push('<span class="ps-funcname">' + funcName + '</span>');
+Renderer.prototype._typeFuncName = function(funcName) {
+    this._html.beginSpan('ps-funcname').putText(funcName).endSpan();
 }
 
-Builder.prototype._typeMath = function(math) {
-    this._flushText();
-    this._body.push(math);
+Renderer.prototype._typeText = function(text) {
+    this._html.write(text);
 }
 
-Builder.prototype._typeText = function(text) {
-    if (this._textBuf == undefined) this._textBuf = [];
-    this._textBuf.push(text);
-}
+Renderer.prototype._beginText = function(openOrClose) {
+    this._flushText();
 
-Builder.prototype._flushText = function() {
-    if (this._textBuf !== undefined && this._textBuf.length >= 0) {
-        // TODO: HTML escape the string
-        var text = this._textBuf.join('');
-        this._body.push(text);
-        delete this._textBuf;
+    this._beginSpan(null, this._fontState.toCSS());
+
+    if (openOrClose === 'close') {
+        this._fontStateStack.push(this._fontState);
+        this._fontState = new TextStyle();
     }
 }
 
-Builder.prototype._beginText = function() {
+Renderer.prototype._endText = function(openOrClose) {
     this._flushText();
-    this._body.push('<span>');
-}
 
-Builder.prototype._endText = function() {
-    this._flushText();
-    this._body.push('</span>');
+    while (this._fontState.numUpdates) {
+        this._fontState.numUpdates--;
+        this._endSpan();
+    }
+
+    this._endSpan();
+
+    if (openOrClose === 'close')
+        this._fontState = this._fontStateStack.pop();
 }
 
-Builder.prototype._buildTreeForAllChildren = function(node) {
+Renderer.prototype._buildTreeForAllChildren = function(node) {
     var children = node.children;
     for (var ci = 0; ci < children.length; ci++)
         this._buildTree(children[ci]);
 }
 
-Builder.prototype._buildTree = function(node) {
+Renderer.prototype._buildTree = function(node) {
     switch(node.type) {
+    // The hierarchicy of build tree: Group (Block) > Line > Text
+    // ----------------- Groups -------------------------------------
     case 'root':
-        this._beginDiv('pseudo');
+        this._beginGroup('root');
         this._buildTreeForAllChildren(node);
-        this._endDiv();
+        this._endGroup();
         break;
     case 'algorithm':
         // First, decide the caption if any
@@ -749,35 +1027,31 @@ Builder.prototype._buildTree = function(node) {
             this._captionCount++;
         }
         // Then, build the header for algorithm
-        var className = 'ps-algorithm';
-        if (lastCaptionNode) className += ' with-caption';
-        this._beginDiv(className);
-        if (lastCaptionNode) this._buildTree(lastCaptionNode);
+        if (lastCaptionNode) {
+            this._beginGroup('algorithm', 'with-caption');
+            this._buildTree(lastCaptionNode);
+        }
+        else {
+            this._beginGroup('algorithm');
+        }
         // Then, build other nodes
         for (var ci = 0; ci < node.children.length; ci++) {
             var child = node.children[ci];
             if (child.type === 'caption') continue;
             this._buildTree(child);
         }
-
-        this._endDiv();
-        break;
-    case 'caption':
-        this._beginLine();
-        this._typeKeyword('Algorithm ' + this._captionCount);
-        var textNode = node.children[0];
-        this._buildTree(textNode);
-        this._endLine();
+        this._endGroup();
         break;
     case 'algorithmic':
-        var className = 'ps-algorithmic';
         if (this._options.lineNumber) {
-            className += ' with-linenum';
+            this._beginGroup('algorithmic', 'with-linenum');
             this._numLOC = 0;
         }
-        this._beginDiv(className);
+        else {
+            this._beginGroup('algorithmic');
+        }
         this._buildTreeForAllChildren(node);
-        this._endDiv();
+        this._endGroup();
         break;
     case 'block':
         // node: <block>
@@ -787,6 +1061,7 @@ Builder.prototype._buildTree = function(node) {
         this._buildTreeForAllChildren(node);
         this._endBlock();
         break;
+    // ----------------- Mixture (Groups + Lines) -------------------
     case 'function':
         // \FUNCTION{<ordinary>}{<text>} <block> \ENDFUNCTION
         // ==>
@@ -866,7 +1141,6 @@ Builder.prototype._buildTree = function(node) {
         // ENDIF
         this._newLine();
         this._typeKeyword('end if');
-
         break;
     case 'loop':
         // \FOR{<cond>} or \WHILE{<cond>}
@@ -894,8 +1168,8 @@ Builder.prototype._buildTree = function(node) {
         // </p>
         this._newLine();
         this._typeKeyword('end ' + loopName);
-
         break;
+    // ------------------- Lines -------------------
     case 'command':
         // commands: \STATE, \ENSURE, \PRINT, \RETURN, etc.
         var cmdName = node.value;
@@ -911,7 +1185,12 @@ Builder.prototype._buildTree = function(node) {
         if (displayName) this._typeKeyword(displayName);
         var text = node.children[0];
         this._buildTree(text);
-
+        break;
+    case 'caption':
+        this._newLine();
+        this._typeKeyword('Algorithm ' + this._captionCount);
+        var textNode = node.children[0];
+        this._buildTree(textNode);
         break;
     // 'comment':
     //     break;
@@ -926,35 +1205,14 @@ Builder.prototype._buildTree = function(node) {
         this._buildTree(argsNode);
         this._typeText(')');
         break;
-    case 'cond':
-    case 'text':
-        this._beginText();
-        this._buildTreeForAllChildren(node);
-        this._endText();
-        break;
-    case 'ordinary':
-        var text = node.value;
-        this._typeText(text);
+    // ------------------- Text -------------------
+    case 'open-text':
+        var textEnv = new TextEnvironment(node, true, this._globalTextStyle);
+        this._html.putSpan(textEnv.renderToHTML());
         break;
-    case 'math':
-        var math = node.value;
-        var mathHTML = katex.renderToString(math);
-        this._typeMath(mathHTML);
-        break;
-    case 'special':
-        var escapedStr = node.value;
-        var replace = {
-            '\\\\': '<br/>',
-            '\\{': '{',
-            '\\}': '}',
-            '\\$': '$',
-            '\\&': '&',
-            '\\#': '#',
-            '\\%': '%',
-            '\\_': '_'
-        };
-        var replaceStr = replace[escapedStr];
-        this._typeText(replaceStr);
+    case 'close-text':
+        var textEnv = new TextEnvironment(node, false, this._globalTextStyle);
+        this._html.putSpan(textEnv.renderToHTML());
         break;
     default:
         throw new ParseError('Unexpected ParseNode of type ' + node.type);
@@ -964,23 +1222,22 @@ Builder.prototype._buildTree = function(node) {
 // ===========================================================================
 //  Entry points
 // ===========================================================================
-
 parentModule.PseudoCode = {
     renderToString: function(input, options) {
         if (input == null) throw 'input cannot be empty';
 
         var lexer = new Lexer(input);
         var parser = new Parser(lexer);
-        var builder = new Builder(parser, options);
-        return builder.toMarkup();
+        var renderer = new Renderer(parser, options);
+        return renderer.toMarkup();
     },
     render: function(input, baseDomEle, options) {
         if (input == null || baseDomEle == null) throw 'argument cannot be null';
 
         var lexer = new Lexer(input);
         var parser = new Parser(lexer);
-        var builder = new Builder(parser, options);
-        var ele = builder.toDOM();
+        var renderer = new Renderer(parser, options);
+        var ele = renderer.toDOM();
         baseDomEle.appendChild(ele);
         return ele;
     }
diff --git a/css/PseudoCode.css b/css/PseudoCode.css
index 1a3e603a799e541f87345ebb54d0c0c271ff9c59..8289ef5e1d5d6d4414576ae3c239fe6cb83996a5 100644
--- a/css/PseudoCode.css
+++ b/css/PseudoCode.css
@@ -1,43 +1,43 @@
-.pseudo {
+.ps-root {
     font-family: KaTeX_Main;
     font-size: 1em;
     font-weight: 100;
     -webkit-font-smoothing: antialiased !important;
 }
-.pseudo .ps-algorithm {
+.ps-root .ps-algorithm {
     margin: 0.8em 0;
     padding-bottom: 0.2em;
     /* algorithm environment has borders; algorithmic has not */
     border-top: 3px solid black;
     border-bottom: 2px solid black;
 }
-.pseudo .ps-algorithm.with-caption > .ps-line:first-child {
+.ps-root .ps-algorithm.with-caption > .ps-line:first-child {
     border-bottom: 2px solid black;
 }
-.pseudo .katex {
+.ps-root .katex {
     text-indent: 0;
+    font-size: 1em;
 }
-.pseudo .ps-line {
+.ps-root .ps-line {
     margin: 0; padding: 0;
-}
-.pseudo .ps-line > span {
-    font-size: 1.21em;
     line-height: 1.2;
 }
-.pseudo .ps-funcname {
+.ps-root .ps-line > span {
+}
+.ps-root .ps-funcname {
     font-family: serif;
     font-variant: small-caps;
 }
 /* keyword */
-.pseudo .ps-keyword {
+.ps-root .ps-keyword {
     font-weight: 700;
     margin: 0 0.25em;
 }
-.pseudo .ps-keyword:first-child{
+.ps-root .ps-keyword:first-child{
     margin: 0 0.25em 0 0;
 }
 /* line number support */
-.pseudo .ps-linenum {
+.ps-root .ps-linenum {
     font-size: 0.8em;
     line-height: 1em;
     width: 1.6em;
@@ -45,9 +45,9 @@
     display: inline-block;
     position: relative;
 }
-.pseudo .ps-algorithmic.with-linenum .ps-line.ps-code {
+.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code {
     text-indent: -2.2em;
 }
-.pseudo .ps-algorithmic.with-linenum .ps-line.ps-code > span{
+.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code > span{
     text-indent: 0em;
 }
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot b/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot
new file mode 100644
index 0000000000000000000000000000000000000000..6c441ae34da070095291e2bcd50a8d58c76c17fb
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.eot differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf b/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..1580d64b976daf68e39a10b1ddc4c1a28a2b5558
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff
new file mode 100644
index 0000000000000000000000000000000000000000..a2a7399a04a10a0943e739a5e5044f738eda3e89
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..010795092c525e83752036445a820d09b707c3bd
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Bold.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot b/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..5287c0d690ab9d43ec6d4e74ffde91ce2b1d0967
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.eot differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf b/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..ab23091ffe169e2d58914e68a1ddfa4d05564342
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..6188e5529ff2e320a5ca4850e5cc96dd7e3f777d
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff differ
diff --git a/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..0e692ea34b83ab54c45d350a4d99b44a56cfffd6
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Caligraphic-Regular.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.eot b/lib/katex/fonts/KaTeX_Fraktur-Bold.eot
new file mode 100644
index 0000000000000000000000000000000000000000..cf4b36815b5d34a4b21b8995ff51dfa5ee36eeb7
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.eot differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf b/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..f66a74d5655e0e2ae3ebbd283427cc1c3d796c0f
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.woff b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff
new file mode 100644
index 0000000000000000000000000000000000000000..3804f1f08054aafca7cd11bee7722ee73eba6e8a
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..b4caf092f9d1ed778a63b54aedc785b4afffe832
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Bold.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.eot b/lib/katex/fonts/KaTeX_Fraktur-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..cbe084ed9069728ef8eb3fc7b1f7bba5980d86e7
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.eot differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf b/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..c4a760bc19bb2e327fef0ebb17b6c29914c92f3d
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.woff b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..c5ce1cd8e2a8c4c7c2e1d332762d580cd3be00b9
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff differ
diff --git a/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..1dd379445813cc48539269af03592b7133d427b6
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Fraktur-Regular.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Greek-Bold.woff2 b/lib/katex/fonts/KaTeX_Greek-Bold.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..1e289dd5e069183e3aa2476266d7552237977e0f
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Bold.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2 b/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..8a18d2e35e20f57da262f493d1ae9b5ba4093ce0
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-BoldItalic.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Greek-Italic.woff2 b/lib/katex/fonts/KaTeX_Greek-Italic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..20559746fa3459baaff76fcdfd45eece7290c323
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Italic.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Greek-Regular.woff2 b/lib/katex/fonts/KaTeX_Greek-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..48ed7f118fd624431cb38574414f692b26a3dbbd
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Greek-Regular.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.eot b/lib/katex/fonts/KaTeX_SansSerif-Bold.eot
new file mode 100644
index 0000000000000000000000000000000000000000..bf95b1417f95faf62808d9981177aedae6b4eada
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.eot differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf b/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..952f33328429db24cc6e5da6ff06bcf3e5d80b75
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.ttf differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.woff b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff
new file mode 100644
index 0000000000000000000000000000000000000000..83ce37d6f51806b2d22efcd0b8667568ca821909
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..09caf7dc166c735f37575c5a0f3386e035800a9d
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Bold.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.eot b/lib/katex/fonts/KaTeX_SansSerif-Italic.eot
new file mode 100644
index 0000000000000000000000000000000000000000..215f3267e1ee413e17ec3deaa8c0f0820d33335b
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.eot differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf b/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..6a510f5abf3b6377a02658d9f8986ef4618fe1d7
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.ttf differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.woff b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff
new file mode 100644
index 0000000000000000000000000000000000000000..5e82a46aaf1a8bad2ec482c4cc2a0be8ef0f22df
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..8d47a38e692af58a3fef95ce5f64578aebb71325
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Italic.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.eot b/lib/katex/fonts/KaTeX_SansSerif-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..4f3d6ab28f5c7c05fe82c0e71a30f39399f0a36d
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.eot differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf b/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..4588a7815f5fa71bca636c20ff02e4e3e4e0c45b
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.ttf differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.woff b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..88ae8c2c64b2341203c6f985ead5cdce3cc7d37b
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff differ
diff --git a/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..3feeb7bac9099477a3ab90b7b5a1c5a8c74671b9
Binary files /dev/null and b/lib/katex/fonts/KaTeX_SansSerif-Regular.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Script-Regular.eot b/lib/katex/fonts/KaTeX_Script-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..65082f08499e1171a110e2081dbb37485c10e8f8
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.eot differ
diff --git a/lib/katex/fonts/KaTeX_Script-Regular.ttf b/lib/katex/fonts/KaTeX_Script-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..db1a4cc0245da4dd405580a7e7290de6032cac4d
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Script-Regular.woff b/lib/katex/fonts/KaTeX_Script-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..d2711e4a4a7d9a5dbcb5f454a2d30abd4f9f96d2
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.woff differ
diff --git a/lib/katex/fonts/KaTeX_Script-Regular.woff2 b/lib/katex/fonts/KaTeX_Script-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..ff0c5cfb23f98388b0be314b43f7907aeaf363a1
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Script-Regular.woff2 differ
diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.eot b/lib/katex/fonts/KaTeX_Typewriter-Regular.eot
new file mode 100644
index 0000000000000000000000000000000000000000..3d588037874a8fa734009b8a22580b310a5ca814
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.eot differ
diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf b/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..a2f5990dd133465acdee215fae908bb60f54f96a
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.ttf differ
diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.woff b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff
new file mode 100644
index 0000000000000000000000000000000000000000..f33b8418566ffa5807bf76cdca08891ccfaca1da
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff differ
diff --git a/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2
new file mode 100644
index 0000000000000000000000000000000000000000..52b55385adfda5ee6826f5a08f3504d40f15f757
Binary files /dev/null and b/lib/katex/fonts/KaTeX_Typewriter-Regular.woff2 differ
diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.eot b/lib/katex/fonts/lubalin_graph_bold-webfont.eot
deleted file mode 100755
index 4888f097477afcc653bd64e93bda7cd87bc01421..0000000000000000000000000000000000000000
Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.eot and /dev/null differ
diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.svg b/lib/katex/fonts/lubalin_graph_bold-webfont.svg
deleted file mode 100755
index 7815e5f79bce55014376c0c89e56260112ceab75..0000000000000000000000000000000000000000
--- a/lib/katex/fonts/lubalin_graph_bold-webfont.svg
+++ /dev/null
@@ -1,337 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
-<metadata></metadata>
-<defs>
-<font id="lubalin_graphbold" horiz-adv-x="632" >
-<font-face units-per-em="2048" ascent="1638" descent="-410" />
-<missing-glyph horiz-adv-x="540" />
-<glyph unicode="&#xd;" horiz-adv-x="540" />
-<glyph unicode=" "  horiz-adv-x="540" />
-<glyph unicode="&#x09;" horiz-adv-x="540" />
-<glyph unicode="&#xa0;" horiz-adv-x="540" />
-<glyph unicode="!" horiz-adv-x="507" d="M69 0v371h377v-371h-377zM69 535v1098h377v-1098h-377z" />
-<glyph unicode="&#x22;" horiz-adv-x="994" d="M63 874v759h376v-759h-376zM552 874v759h377v-759h-377z" />
-<glyph unicode="#" horiz-adv-x="1306" d="M55 534v169h294l38 226h-265v168h289l75 504h171l-78 -508h227l78 509h167l-73 -509h252v-164h-279l-30 -230h242v-164h-270l-77 -535h-171l76 535h-227l-76 -534h-170l75 533h-268zM518 699h226l34 231h-227z" />
-<glyph unicode="$" horiz-adv-x="1272" d="M63 1178q0 166 109 299t279 169v345h325v-381q15 -3 30.5 -14t22.5 -22v59h282v-485h-337q1 7 2 19q0 61 -44.5 104.5t-115.5 43.5q-56 0 -97 -38.5t-41 -94.5q0 -49 31 -85t82 -54l207 -69q188 -64 296 -190q117 -137 117 -322q0 -189 -119 -322t-319 -181v-321h-326 v373l-24 13q-8 4 -15 10t-15 14v-48h-310v531h365l14 -72q11 -64 58 -101t113 -37q63 0 107.5 37t44.5 97q0 59 -38 99.5t-100 62.5l-245 86q-152 55 -244 178q-96 130 -95 297z" />
-<glyph unicode="%" horiz-adv-x="1864" d="M102 1055v266q0 128 93.5 220t222.5 92q132 0 224.5 -94t92.5 -224v-272q0 -125 -91.5 -213.5t-217.5 -88.5q-132 0 -228 92t-96 222zM339 1063q0 -36 22 -62t60 -26q39 4 57 20q24 22 24 63v261q0 37 -23.5 63t-60.5 26q-35 -3 -57 -27.5t-22 -61.5v-256zM446 0 l693 1633h278l-692 -1633h-279zM1124 314v264q0 128 93.5 221t222.5 93q132 0 224.5 -94t92.5 -224v-272q0 -125 -91.5 -213.5t-217.5 -88.5q-132 0 -228 92t-96 222zM1361 322q0 -36 22 -62t60 -26q39 4 57 20q24 22 24 63v261q0 37 -23.5 63t-60.5 26q-35 -3 -57 -27.5 t-22 -61.5v-256z" />
-<glyph unicode="&#x26;" horiz-adv-x="1618" d="M57 434q0 148 83 265q69 98 206 187q-63 53 -104 147q-47 104 -46 210q0 189 132 314.5t317 125.5q177 0 308.5 -117.5t131.5 -287.5q0 -130 -84 -253q-57 -84 -129 -133l185 -175l118 264h386v-348h-136q-13 -40 -34 -81q-27 -55 -67 -104l218 -218l-261 -267l-192 189 q-94 -102 -240 -152q-118 -40 -250 -40q-220 0 -375 125q-166 134 -167 349zM456 468q0 -37 22 -72t58 -53t81 -18q55 0 108.5 25.5t86.5 66.5l-236 227q-47 -19 -81 -66q-39 -53 -39 -110zM559 1255q0 -32 12 -57q7 -16 33 -52l37 -52l42 54q24 31 34.5 55t10.5 57 q0 39 -24 69t-60 30q-39 0 -62 -31t-23 -73z" />
-<glyph unicode="'" horiz-adv-x="516" d="M63 874v759h375v-759h-375z" />
-<glyph unicode="(" horiz-adv-x="939" d="M59 507q0 406 214 711.5t597 446.5v-481q-182 -114 -276.5 -277t-94.5 -376q0 -216 92 -374t279 -270v-499q-208 79 -382 222q-194 161 -304 374q-125 242 -125 523z" />
-<glyph unicode=")" horiz-adv-x="938" d="M73 -121q371 220 371 644q0 212 -93.5 374t-277.5 279v479q382 -138 597 -444.5t215 -712.5q0 -283 -124 -523q-109 -212 -305 -374q-173 -142 -383 -222v500z" />
-<glyph unicode="*" horiz-adv-x="823" d="M69 1203v164h184l-100 162l169 89l95 -162l118 182l158 -109l-118 -158h188v-168h-199l95 -158l-159 -80l-83 163l-110 -173l-154 104l100 144h-184z" />
-<glyph unicode="+" horiz-adv-x="1249" d="M71 454v207h448v458h201v-458h456v-205h-455v-461h-202v459h-448z" />
-<glyph unicode="," horiz-adv-x="521" d="M69 0v386h389v-449q0 -72 -14 -126.5t-50 -97.5q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34.5t4.5 42.5v29v28h-173z" />
-<glyph unicode="-" d="M64 604v246l510 2v-248h-510z" />
-<glyph unicode="." horiz-adv-x="507" d="M69 0v391h382v-391h-382z" />
-<glyph unicode="/" horiz-adv-x="1197" d="M-118 -617l1030 2415h272l-1015 -2415h-287z" />
-<glyph unicode="0" horiz-adv-x="1324" d="M56 559v506q0 245 178.5 419t424.5 174q249 0 426.5 -179t177.5 -429v-515q0 -238 -173.5 -406.5t-414.5 -168.5q-253 0 -436 175t-183 424zM471 544q0 -86 52.5 -146.5t140.5 -60.5q88 8 136 50q57 51 57 148v554q0 86 -60 147t-148 61q-80 0 -129 -58.5t-49 -149.5 v-545z" />
-<glyph unicode="1" horiz-adv-x="895" d="M69 1312v321h604v-1276h159v-357h-732v357h167v955h-198z" />
-<glyph unicode="2" horiz-adv-x="1269" d="M69 1070v64q0 194 152 355q173 184 438 184q226 0 387.5 -163t161.5 -391q0 -113 -49 -219q-41 -89 -121 -179q-60 -68 -152 -143l-270 -231h216v133h371v-480h-1109v357l654 624q29 28 42.5 67t13.5 80q0 55 -40 95q-45 45 -124 45q-80 0 -129 -68q-43 -60 -43 -130 h-399z" />
-<glyph unicode="3" horiz-adv-x="1370" d="M76 471h416q7 -65 63 -107t130 -42q77 0 130 51.5t53 126.5q0 81 -60 140t-143 59h-83v311h83q71 0 125 41.5t54 106.5q0 64 -45.5 109t-109.5 45q-61 0 -104 -42t-43 -102h-372q0 210 160 353q154 137 370 137q204 0 354 -126q156 -132 156 -324q0 -100 -39 -175 t-120 -141q124 -65 188.5 -174t64.5 -247q0 -224 -188 -375q-180 -145 -421 -145q-245 0 -428 143q-192 152 -191 377z" />
-<glyph unicode="4" horiz-adv-x="1479" d="M63 460v303l653 870h451v-856h246v-317h-242v-109h149v-351h-733v351h183v109h-707zM508 772h268v351z" />
-<glyph unicode="5" horiz-adv-x="1374" d="M56 431h426q35 -49 86.5 -71.5t116.5 -22.5q75 0 139 65t64 148q0 90 -60.5 156t-147.5 66q-80 0 -135 -35.5t-93 -112.5l-342 84l149 925h905v-332h-584l-29 -227q52 17 114 35.5t119 18.5q221 0 375 -163.5t154 -389.5q0 -275 -187 -451q-181 -169 -446 -169 q-232 0 -411 133q-185 137 -213 343z" />
-<glyph unicode="6" horiz-adv-x="1370" d="M69 590q0 102 26 190t73 171q23 40 109 172l347 526h461l-337 -501q254 0 414 -162q154 -156 154 -396q0 -266 -181.5 -448t-441.5 -182q-257 0 -440.5 186.5t-183.5 443.5zM480 590q0 -90 64 -157t155 -67q88 0 149.5 64.5t61.5 153.5q0 86 -62 149.5t-149 63.5 q-89 0 -154 -60.5t-65 -146.5z" />
-<glyph unicode="7" horiz-adv-x="1270" d="M69 1045v588h1149v-352l-565 -1281h-451l584 1267h-331v-222h-386z" />
-<glyph unicode="8" horiz-adv-x="1342" d="M69 466q0 137 62.5 237.5t185.5 172.5q-79 39 -121 110q-47 79 -47 197q0 192 161.5 336t372.5 144q208 0 354 -129.5t146 -325.5q0 -109 -36 -185.5t-122 -129.5q134 -69 194 -168.5t60 -236.5q0 -237 -190 -391q-180 -146 -430 -146q-236 0 -409 143q-181 150 -181 372 zM475 506q0 -77 54.5 -133t130.5 -56q75 0 128 57t53 134q0 75 -53 127t-128 52q-76 0 -130.5 -53.5t-54.5 -127.5zM522 1168q0 -63 41.5 -106t103.5 -43q61 0 105 44t44 105q0 60 -42.5 102.5t-104.5 42.5q-60 0 -103.5 -42.5t-43.5 -102.5z" />
-<glyph unicode="9" horiz-adv-x="1391" d="M65 1045q0 263 187 440.5t448 177.5q257 0 439 -185t182 -444q0 -150 -51 -277q-39 -94 -144 -251l-352 -526h-518l385 486q-259 0 -417.5 158t-158.5 421zM472 1039q0 -86 64.5 -146.5t154.5 -60.5q89 0 153.5 62t64.5 151t-64.5 153.5t-153.5 64.5t-154 -66t-65 -158z " />
-<glyph unicode=":" horiz-adv-x="513" d="M63 0v391h381v-391h-381zM63 570v391h381v-391h-381z" />
-<glyph unicode=";" horiz-adv-x="520" d="M69 0v386h389v-449q0 -72 -14 -126.5t-50 -97.5q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34.5t4.5 42.5v29v28h-173zM69 570v391h382v-391h-382z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1278" d="M61 530v215l1145 538v-206l-974 -444l967 -436v-197z" />
-<glyph unicode="=" horiz-adv-x="1256" d="M69 345v210h1129v-210h-1129zM69 691v211h1130v-211h-1130z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1264" d="M53 1075v205l1145 -537v-216l-1138 -530v197l966 437z" />
-<glyph unicode="?" horiz-adv-x="1270" d="M72 1085q0 241 169.5 417t409.5 176q226 0 395 -159.5t169 -379.5q0 -110 -32.5 -195.5t-107.5 -151.5l-106 -97q-45 -40 -81 -86q-19 -25 -30.5 -52t-17.5 -62h-389v49q0 45 12.5 88t36.5 81q20 32 50 68.5t55 59.5l150 130q29 27 48 63t19 78q0 68 -48.5 118t-116.5 50 q-76 0 -125 -48t-49 -120l-1 -27h-410zM452 0v390h392v-390h-392z" />
-<glyph unicode="@" horiz-adv-x="1596" d="M76 741q0 309 219 529t526 220q282 0 490 -163q219 -173 219 -434q0 -229 -146 -409.5t-346 -180.5q-85 0 -126 84q-13 28 -24 84l-63 -69q-77 -90 -196 -91q-121 0 -198.5 96t-77.5 226q0 189 161 332q145 129 295 129q59 0 101.5 -22.5t58.5 -72.5l20 -57l41 127l177 4 l-160 -590q-8 -24 -8 -56q0 -31 9.5 -48.5t30.5 -17.5q126 0 233.5 166t107.5 350q0 238 -186 379q-168 128 -413 128q-262 0 -448.5 -186.5t-186.5 -448.5q0 -274 190 -468.5t462 -194.5q197 0 340 76q100 53 165 143q21 37 44 76h135q-31 -52 -60 -103q-88 -120 -212 -193 q-178 -104 -416 -104q-314 0 -536 222.5t-222 537.5zM536 540q0 -69 31 -114q37 -55 109 -55q102 0 193 185q81 167 81 304q0 80 -31 130.5t-90 50.5q-101 0 -197 -169t-96 -332z" />
-<glyph unicode="A" horiz-adv-x="1843" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM768 768h242l-118 371z" />
-<glyph unicode="B" horiz-adv-x="1487" d="M56 0v357h178v924h-178v352h886q169 0 285 -113t116 -292q0 -118 -50 -203q-55 -93 -158 -129q142 -60 212 -177q65 -110 65 -268q0 -192 -151 -321.5t-353 -129.5h-852zM645 357h164q75 0 134 49t59 124q0 84 -57 126q-49 37 -132 37h-168v-336zM645 1026h133 q79 0 126 25q61 34 61 103q0 71 -57 102q-45 25 -124 25h-139v-255z" />
-<glyph unicode="C" horiz-adv-x="1807" d="M69 802q0 349 249.5 600t597.5 251q148 0 275 -61q120 -57 156 -136v177h346v-634h-401q-118 229 -371 229q-182 0 -304 -119t-122 -292q0 -177 121 -306t294 -129q126 0 220 52.5t157 160.5h455q-77 -293 -300 -464t-526 -171q-347 0 -597 248t-250 594z" />
-<glyph unicode="D" horiz-adv-x="1747" d="M69 0v357h155v924h-155v352h841q361 0 578 -236q205 -222 205 -560q0 -355 -199 -585q-217 -252 -593 -252h-832zM668 382h253q166 0 266 132q91 119 91 292q0 202 -112 324q-122 133 -354 133h-144v-881z" />
-<glyph unicode="E" horiz-adv-x="1383" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252z" />
-<glyph unicode="F" horiz-adv-x="1383" d="M63 0v357h154v924h-154v352h1257v-539h-406v166h-269v-250h374v-386h-367v-267h166v-357h-755z" />
-<glyph unicode="G" horiz-adv-x="1780" d="M56 812q0 349 250 597.5t602 248.5q124 0 220 -33q86 -29 200 -105v113h342v-548h-451q-41 53 -125 98q-101 55 -197 55q-176 0 -300.5 -123.5t-124.5 -297.5q0 -173 125.5 -296.5t299.5 -123.5q114 0 196.5 41t150.5 132h-455v351h920v-921h-352v138 q-45 -65 -175.5 -119t-279.5 -54q-347 0 -596.5 249.5t-249.5 597.5z" />
-<glyph unicode="H" horiz-adv-x="1784" d="M63 0v357h173v924h-173v352h742v-352h-158v-247h504v247h-158v352h737v-352h-149v-924h149v-357h-737v357h158v272h-504v-272h158v-357h-742z" />
-<glyph unicode="I" horiz-adv-x="875" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751z" />
-<glyph unicode="J" horiz-adv-x="1374" d="M69 417v103h438v-54q0 -53 31.5 -91t80.5 -38q55 0 89.5 40t34.5 103v801h-169v352h727v-352h-149v-860q0 -202 -174 -336q-164 -125 -384 -125q-210 0 -364 126q-161 133 -161 331z" />
-<glyph unicode="K" horiz-adv-x="1744" d="M69 0v357h155v924h-155v352h708v-352h-133v-340l366 340h-114v352h737v-352h-93l-510 -449l504 -475h139v-357h-777v342h123l-375 371v-371h148v-342h-723z" />
-<glyph unicode="L" horiz-adv-x="1385" d="M63 0v357h169v924h-169v352h727v-352h-143v-899h282v222h391v-604h-1257z" />
-<glyph unicode="M" horiz-adv-x="2193" d="M63 0v357h162v924h-162v352h697l342 -969l302 969h712v-352h-153v-924h162v-357h-706v357h153v677l-342 -1034h-283l-335 1019v-662h153v-357h-702z" />
-<glyph unicode="N" horiz-adv-x="1841" d="M53 1281v352h519l639 -900v548h-173v352h737v-352h-153v-1281h-380l-619 872v-515h162v-357h-722v357h154v924h-164z" />
-<glyph unicode="O" horiz-adv-x="1816" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z" />
-<glyph unicode="P" horiz-adv-x="1457" d="M69 0v357h169v924h-169v352h737q295 0 454 -163q145 -148 145 -400q0 -238 -143 -387q-153 -158 -421 -159h-182v-167h133v-357h-723zM653 892h95q106 0 172 38q79 48 79 149q0 90 -65 140q-59 44 -148 44h-133v-371z" />
-<glyph unicode="Q" horiz-adv-x="2095" d="M69 832q0 347 256.5 589t610.5 242q342 0 589.5 -244.5t247.5 -586.5q0 -150 -30 -256t-110 -229q13 -11 17 -13q9 -7 21 -12t25 -10t31 -5v129h308v-471q-100 -29 -195 -29q-60 0 -119 11.5t-119.5 33.5t-117.5 59q-41 27 -93 69q-101 -67 -213 -104q-133 -45 -272 -45 q-347 0 -592 258t-245 614zM495 896q57 20 111 29t107 9q37 0 84 -4q158 -15 302 -104q125 -77 208 -187q25 48 37 83t12 80q1 8 1 18v16q0 166 -125 288.5t-296 122.5q-165 0 -287.5 -96t-153.5 -255zM575 555q84 -105 197 -144q73 -26 139 -26h5q39 0 69 5t74 21 q-24 37 -64 72t-89 61q-94 51 -186 51q-80 0 -145 -40z" />
-<glyph unicode="R" horiz-adv-x="1544" d="M69 0v357h169v924h-169v352h737q317 0 489 -156q165 -150 165 -412q0 -220 -108 -350q-89 -108 -224 -131l184 -227h173v-357h-426l-400 555v-198h93v-357h-683zM653 822h119q116 0 186 43q92 54 92 174q0 133 -95 188q-63 36 -169 36h-133v-441z" />
-<glyph unicode="S" horiz-adv-x="1254" d="M59 1160q0 208 150 351.5t367 143.5q71 0 125.5 -18.5t120.5 -62.5v59h312v-485h-370q1 5 1 18q0 60 -47 103t-109 43q-57 0 -97.5 -42t-40.5 -99q0 -52 39 -89q32 -32 90 -51l202 -69q185 -63 287 -177q113 -128 113 -314q0 -209 -154 -360t-359 -151q-148 0 -276 95 v-55h-337v524h371v-38q0 -86 60 -135q51 -40 117 -40q13 0 20 2q61 7 102.5 52t41.5 106q0 53 -44 91q-32 28 -100 51l-251 95q-156 57 -245 175t-89 277z" />
-<glyph unicode="T" horiz-adv-x="1494" d="M63 1059v574h1366v-568h-317v198h-154v-906h158v-357h-726v357h153v906h-153v-204h-327z" />
-<glyph unicode="U" horiz-adv-x="1643" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149z" />
-<glyph unicode="V" horiz-adv-x="1721" d="M63 1281v352h702v-352h-109l193 -691l228 691h-124v352h693v-352h-154l-439 -1281h-441l-402 1281h-147z" />
-<glyph unicode="W" horiz-adv-x="2389" d="M69 1281v352h731v-352h-167l143 -550l243 902h344l267 -897l125 545h-154v352h718l2 -352h-163l-342 -1281h-360l-258 892l-253 -892h-370l-367 1281h-139z" />
-<glyph unicode="X" horiz-adv-x="1783" d="M69 0v357h155l428 477l-385 447h-158v352h732v-332h-89l158 -178l149 178h-84v332h738v-352h-144l-409 -444l394 -480h164v-357h-743v351h104l-183 204l-168 -208h94v-347h-753z" />
-<glyph unicode="Y" horiz-adv-x="1614" d="M63 1281v352h673v-341h-100l173 -362l189 362h-114v341h668v-352h-139l-406 -691v-233h144v-357h-728v357h173v218l-380 706h-153z" />
-<glyph unicode="Z" horiz-adv-x="1369" d="M63 0v331l733 950h-308v-192h-366v544h1173v-317l-727 -959h346v198h386v-555h-1237z" />
-<glyph unicode="[" horiz-adv-x="797" d="M52 -282v1911h657v-262h-350v-1388h358v-261h-665z" />
-<glyph unicode="\" horiz-adv-x="1022" d="M69 1622h225l665 -1622h-227z" />
-<glyph unicode="]" horiz-adv-x="797" d="M56 -21h358v1388h-351v262h660v-1911h-667v261z" />
-<glyph unicode="^" horiz-adv-x="895" d="M69 1391l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" />
-<glyph unicode="_" horiz-adv-x="1419" d="M0 -129h1429v-136h-1429v136z" />
-<glyph unicode="`" horiz-adv-x="799" d="M65 1574l113 317l559 -233l-93 -267z" />
-<glyph unicode="a" horiz-adv-x="1590" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194z" />
-<glyph unicode="b" horiz-adv-x="1570" d="M56 0v357h129v921h-129v355h495v-499q64 55 138 88q92 41 184 41q257 0 445 -191t188 -453q0 -257 -179.5 -443.5t-438.5 -186.5q-97 0 -175 38q-63 31 -147 107v-134h-510zM556 633q0 -122 88.5 -209t213.5 -87q113 0 195 83t82 199q0 122 -83 212t-204 90 q-120 0 -206 -84.5t-86 -203.5z" />
-<glyph unicode="c" horiz-adv-x="1405" d="M63 639q0 252 175.5 438t417.5 186q102 0 189 -29q77 -25 137 -74v78h322v-450h-357q-79 118 -238 118q-117 0 -196 -88.5t-79 -208.5q0 -113 81 -195.5t196 -82.5q77 0 133 27.5t99 87.5h401q-17 -178 -194 -329q-185 -157 -414 -157q-279 0 -476 199.5t-197 479.5z" />
-<glyph unicode="d" horiz-adv-x="1614" d="M73 624q0 266 185.5 454.5t457.5 188.5q93 0 184 -36q79 -32 127 -77v124h-127v355h519v-1276h138v-357h-519v114q-85 -67 -146 -93q-75 -32 -171 -32q-263 0 -455.5 186t-192.5 449zM459 619q0 -114 81 -198t196 -84q124 0 213 86t89 210q0 120 -86.5 204t-206.5 84 q-118 0 -202 -90.5t-84 -211.5z" />
-<glyph unicode="e" horiz-adv-x="1434" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM438 748h560q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47 t-106.5 -131z" />
-<glyph unicode="f" horiz-adv-x="785" d="M63 0v357h123v539h-123v342h134v20q0 80 29 161q36 100 104 165q76 73 193 98q73 16 198 16v-327q-43 0 -66.5 -5t-46 -23t-29.5 -41t-7 -64h132v-342h-133v-539h138v-357h-646z" />
-<glyph unicode="g" horiz-adv-x="1555" d="M63 613q0 263 187.5 451t449.5 188q100 0 172 -32q51 -23 141 -92v110h475v-342h-129v-807q0 -271 -189 -438q-178 -157 -439 -157q-267 0 -437 132q-152 118 -173 294h421q35 -55 83 -79.5t115 -24.5q120 0 189 73.5t69 204.5q-44 -55 -128 -85q-71 -25 -174 -34 q-16 -1 -28 -2t-20 -1q-240 0 -412.5 194.5t-172.5 446.5zM434 624q0 -124 86.5 -215.5t210.5 -91.5q118 0 200 90t82 212q0 118 -84.5 202.5t-203.5 84.5q-120 0 -205.5 -81.5t-85.5 -200.5z" />
-<glyph unicode="h" horiz-adv-x="1539" d="M69 0v357h139v921h-139v355h495v-519q36 55 135 101q108 52 211 52q185 0 313 -148q124 -142 124 -337v-425h133v-357h-510v723q0 81 -56 137t-142 56q-83 0 -140 -64t-57 -149v-346h138v-357h-644z" />
-<glyph unicode="i" horiz-adv-x="778" d="M69 0v357h139v539h-139v342h506v-881h138v-357h-644zM208 1297v336h356v-336h-356z" />
-<glyph unicode="j" horiz-adv-x="652" d="M35 -124q11 -3 30 -2q29 0 58 11t43 27q24 25 33 55t9 73v856h-139v342h506v-1203q0 -153 -17 -217q-28 -104 -124 -181q-65 -55 -171.5 -80t-227.5 -25v344zM208 1297v336h356v-336h-356z" />
-<glyph unicode="k" horiz-adv-x="1470" d="M69 0v357h144v921h-144v355h515v-930l228 233h-109v302h644v-342h-104l-268 -267l257 -272h173v-357h-410l-401 515v-515h-525z" />
-<glyph unicode="l" horiz-adv-x="771" d="M69 -5v362h139v921h-139v355h515v-1276h129v-362h-644z" />
-<glyph unicode="m" horiz-adv-x="2266" d="M63 0v357h149v539h-149v342h480v-144q65 93 133 136q76 48 178 48q152 0 262 -74q101 -67 120 -159q130 233 406 233q180 0 312.5 -119.5t132.5 -292.5v-509h123v-357h-495v693q0 108 -38 167q-49 76 -164 76q-80 0 -132 -68t-52 -155v-356h129v-357h-495v713 q0 83 -54.5 145.5t-132.5 62.5q-84 0 -136.5 -70.5t-52.5 -162.5v-331h120v-357h-644z" />
-<glyph unicode="n" horiz-adv-x="1559" d="M69 0v357h149v539h-149v342h521v-124q57 81 140 115t196 34q240 0 353 -160q92 -130 92 -346v-400h129v-357h-519v713q0 90 -31 140q-40 64 -134 64q-19 0 -30 -1q-85 -8 -138.5 -73.5t-53.5 -154.5v-331h119v-357h-644z" />
-<glyph unicode="o" horiz-adv-x="1429" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" />
-<glyph unicode="p" horiz-adv-x="1611" d="M63 -65h129l2 961h-131v342h495v-124q154 144 356 144q258 0 443 -185.5t185 -443.5t-176 -449t-428 -191q-102 0 -189.5 31t-161.5 89v-174h124v-346h-648v346zM580 631q0 -128 87.5 -212.5t210.5 -84.5q114 0 197 85t83 201q0 121 -85.5 207.5t-207.5 86.5 q-116 0 -200.5 -83t-84.5 -200z" />
-<glyph unicode="q" horiz-adv-x="1596" d="M71 624q0 257 182.5 440t441.5 183q97 0 183.5 -34.5t132.5 -84.5v110h521v-342h-129v-971h129v-346h-639v346h128v175q-73 -57 -157 -86t-189 -29q-253 0 -428.5 190t-175.5 449zM451 611q0 -118 82 -203t198 -85q124 0 210 85.5t86 211.5q0 117 -82.5 201t-200.5 84 q-120 0 -206.5 -86.5t-86.5 -207.5z" />
-<glyph unicode="r" horiz-adv-x="974" d="M63 0v357h127v539h-127v342h495v-153q25 35 53 61q33 32 74 57q57 33 104.5 46.5t114.5 13.5v-385q-76 0 -127.5 -19t-99.5 -60.5t-71.5 -96.5t-23.5 -112v-233h123v-357h-642z" />
-<glyph unicode="s" horiz-adv-x="1187" d="M76 0v377h383l16 -47q13 -41 44.5 -65.5t72.5 -24.5q12 0 19 1q40 5 66 25q32 24 32 59v9q0 41 -34 69q-31 25 -89 43l-235 69q-128 37 -201.5 133t-73.5 230q0 172 126.5 278.5t327.5 106.5q92 0 155 -16t108 -61v52h276v-360h-362l-10 32q-11 33 -39.5 54t-63.5 21 q-39 0 -67 -22t-28 -59t29 -64q25 -23 68 -34l151 -36q169 -43 267 -127q116 -100 116 -246q0 -182 -117 -301q-122 -124 -325 -124q-102 0 -173.5 22.5t-145.5 82.5v-77h-293z" />
-<glyph unicode="t" horiz-adv-x="851" d="M63 896v342h167v395h377v-395h182v-342h-162v-539h133v-357h-524v896h-173z" />
-<glyph unicode="u" horiz-adv-x="1507" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113z" />
-<glyph unicode="v" horiz-adv-x="1414" d="M69 896v342h575v-342h-69l128 -416l138 416h-73v342h583v-342h-108l-362 -896h-371l-332 896h-109z" />
-<glyph unicode="w" horiz-adv-x="2040" d="M69 896v342h584v-342h-103l94 -352l213 694h297l213 -688l103 346h-94v342h593v-342h-127l-302 -896h-348l-193 613l-227 -613h-337l-246 896h-120z" />
-<glyph unicode="x" horiz-adv-x="1479" d="M69 0v357h115l302 272l-282 267h-115v342h555v-277l108 -85l100 89v273h549v-342h-109l-287 -267l302 -272h109v-357h-564v293l-109 98l-110 -109v-282h-564z" />
-<glyph unicode="y" horiz-adv-x="1457" d="M56 896v342h609v-357h-69l128 -375l138 375h-64v357h590v-342h-114l-406 -980h118v-347h-613v342h109l49 129l-341 856h-134z" />
-<glyph unicode="z" horiz-adv-x="1198" d="M69 0v293l590 603h-233v-84h-326v426h1009v-332l-534 -569h247v99h317v-436h-1070z" />
-<glyph unicode="{" horiz-adv-x="745" d="M32 728q43 4 79.5 23t57.5 45q29 32 42.5 56.5t13.5 47.5v523q0 57 23 99t73 67q69 36 140 50t134 14q32 0 53.5 -3t22.5 -4q-47 -4 -100 -44q-45 -33 -58 -57.5t-21 -51.5t-8 -57v-500q0 -45 -17 -77.5t-56 -68.5q-25 -23 -67 -42t-86 -19q41 0 103 -32q20 -11 53 -32 q36 -36 50 -70.5t14 -83.5v-478q0 -81 54 -144t137 -77q-3 -1 -28 -3t-46 -2q-116 0 -198 27q-67 21 -106 60q-64 67 -63 155v509q0 39 -11.5 65t-39.5 48q-37 25 -77 41t-68 16z" />
-<glyph unicode="|" horiz-adv-x="310" d="M56 1643h177l-1 -1827h-175z" />
-<glyph unicode="}" horiz-adv-x="739" d="M45 -196q47 5 100 46q45 35 58 59t20 50t7 56v500q0 44 18.5 78t56.5 68q25 23 62 40q47 21 89 22q-39 0 -101 32q-20 11 -54 31q-36 36 -50 71t-14 82v478q0 45 -12 78t-41 67q-56 65 -137 76q8 5 78 5q116 0 196 -25q65 -21 104 -60q64 -67 63 -155v-510 q0 -37 11.5 -64t40 -48.5t71 -39t73.5 -17.5q-43 -5 -80 -24t-57 -44q-24 -25 -33 -40q-24 -35 -24 -64v-524q0 -56 -23.5 -98.5t-72.5 -67.5q-69 -35 -150 -51q-63 -12 -126 -12q-27 0 -43 1.5t-30 3.5z" />
-<glyph unicode="~" horiz-adv-x="952" d="M56 1618q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" />
-<glyph unicode="&#xa1;" horiz-adv-x="507" d="M69 -406v1099h377v-1099h-377zM69 857v371h377v-371h-377z" />
-<glyph unicode="&#xa2;" horiz-adv-x="1281" d="M65 813q0 222 124.5 385t338.5 218v263h268v-267q93 0 167 -39q67 -35 136 -110q49 -55 85 -145q27 -68 35 -125h-361q-41 55 -90 78.5t-120 23.5q-106 0 -178.5 -81.5t-72.5 -193.5q0 -114 71.5 -199.5t179.5 -85.5q69 0 119 24.5t91 77.5h361q-8 -60 -33 -123 q-35 -89 -87 -148q-69 -75 -139.5 -111.5t-163.5 -36.5v-255h-268v251q-213 56 -338 217t-125 382z" />
-<glyph unicode="&#xa3;" horiz-adv-x="1568" d="M56 640v303h152l-27 50q-21 43 -28.5 77.5t-7.5 87.5q0 190 170.5 345.5t387.5 155.5q76 0 133 -20q43 -15 114 -58v52h369v-494h-382q0 77 -52.5 129.5t-135.5 52.5q-73 0 -125 -54.5t-58 -131.5q0 -64 28 -125l31 -69h412v-302h-200q21 -41 44 -81q19 -40 19 -83 q0 -84 -68 -148h119q56 0 99.5 20t61.5 63q7 17 13.5 43.5t6.5 49.5q0 21 -4 39t-14 37h347q15 -23 27.5 -63t12.5 -80q0 -205 -151.5 -320.5t-412.5 -115.5h-768v327h152q64 0 101 20q48 25 57 85q1 8 1 24q0 35 -14 64.5t-44 67.5l-43 52h-323z" />
-<glyph unicode="&#xa5;" horiz-adv-x="1640" d="M63 1281v352h673v-341h-100l172 -358l190 358h-114v341h668v-352h-139l-126 -215h126v-213h-251l-75 -126h326v-213h-406v-157h144v-357h-728v357h173v157h-442v213h360l-68 126h-292v213h177l-115 215h-153z" />
-<glyph unicode="&#xa7;" horiz-adv-x="1181" d="M60 721q0 102 48 178t140 134l57 34q-60 56 -87.5 120.5t-27.5 149.5q0 146 120 244t280 98q193 0 307 -121.5t114 -309.5h-130q1 12 1 35q0 80 -34.5 139.5t-101.5 92.5t-143 33q-94 0 -164 -43q-79 -48 -97 -129q-3 -11 -4 -25t-1 -26q0 -75 49 -139q43 -57 122 -105 l344 -212q136 -84 195 -153q81 -95 81 -217q0 -104 -50 -182q-45 -72 -141 -136l-69 -47q69 -55 103 -118t34 -148q0 -156 -118 -257.5t-293 -101.5q-190 0 -313 130q-117 125 -117 310h142q-1 -12 -2 -25.5t-1 -21.5q0 -112 80 -184q39 -36 97.5 -56t119.5 -20 q75 0 136 30.5t88 91.5q23 52 22 102q0 65 -34.5 125t-95.5 99l-480 320q-176 117 -176 311zM189 749q0 -75 34.5 -128t102.5 -99l463 -308l57 36q72 45 107 92q41 57 41 130q0 67 -31 117t-93 91l-487 310l-49 -25q-71 -41 -105 -89q-40 -55 -40 -127z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1028" d="M69 1252v377h386v-377h-386zM579 1252v377h386v-377h-386z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1777" d="M57 821q0 335 204 566q228 257 616 256q387 0 616 -256q206 -232 206 -566t-205 -564q-228 -257 -617 -257q-387 0 -615 257q-205 232 -205 564zM145 821q0 -298 182 -504q204 -231 550 -231q347 0 551 229q184 206 184 506q0 298 -184 504q-205 230 -551 231 q-345 0 -548 -229q-184 -208 -184 -506zM447 814q0 214 108 361q121 164 327 164q145 0 249 -71q112 -76 135 -207l6 -39h-98l-7 31q-21 94 -103 145.5t-183 51.5q-176 0 -264 -136q-75 -114 -74 -298q0 -182 57 -281q73 -126 258 -149q9 -1 28 -1q104 0 190 77.5t108 190.5 h99q-29 -158 -145.5 -253t-284.5 -95q-213 0 -318 159q-88 133 -88 350z" />
-<glyph unicode="&#xaa;" horiz-adv-x="856" d="M61 1284q0 134 91.5 233.5t222.5 99.5q53 0 88 -13q24 -9 71 -42v42h260v-171h-67v-270h67v-181h-255v48q-41 -29 -75 -42.5t-78 -13.5q-134 0 -229.5 90t-95.5 220zM79 752v133h710v-133h-710zM254 1301q0 -60 40 -103.5t99 -43.5q60 0 103 39t43 99q0 59 -41.5 103 t-99.5 44q-59 0 -101.5 -40t-42.5 -98z" />
-<glyph unicode="&#xab;" horiz-adv-x="1217" d="M67 530v237l480 353v-232l-341 -244l334 -235v-248zM669 530v237l479 353v-232l-340 -244l334 -235v-248z" />
-<glyph unicode="&#xac;" horiz-adv-x="1784" d="M61 574v126h1646v-700h-135v574h-1511z" />
-<glyph unicode="&#xad;" d="M64 604v246l510 2v-248h-510z" />
-<glyph unicode="&#xae;" horiz-adv-x="1776" d="M57 821q0 335 204 566q228 257 616 256q387 0 616 -256q206 -232 206 -566t-205 -564q-228 -257 -617 -257q-387 0 -615 257q-205 232 -205 564zM145 821q0 -298 182 -504q204 -231 550 -231q347 0 551 229q184 206 184 506q0 298 -184 504q-205 230 -551 231 q-345 0 -548 -229q-184 -208 -184 -506zM544 317v987h364q157 0 243 -46q117 -63 117 -212q0 -90 -42 -151t-121 -94q55 -32 65 -41q19 -16 30 -41q17 -35 23.5 -65.5t6.5 -70.5q0 -15 -1.5 -47t-1.5 -48q0 -36 4.5 -67.5t16.5 -66.5q4 -13 11 -21.5t12 -15.5h-103h-8 q-20 40 -24.5 210t-84.5 213q-23 13 -49.5 18t-56.5 5h-41h-264v-446h-96zM640 1220l1 -374h276q112 0 174 35q83 47 83 153q0 104 -80 150q-63 36 -172 36h-282z" />
-<glyph unicode="&#xb0;" horiz-adv-x="864" d="M97 1287q0 138 100 235.5t237 97.5q138 0 236.5 -98.5t98.5 -238.5q0 -138 -97.5 -237.5t-237.5 -99.5t-238.5 100t-98.5 241zM252 1285q0 -75 53 -129t129 -54q75 0 128 53t53 128t-53.5 129t-127.5 54q-75 0 -128.5 -52.5t-53.5 -128.5z" />
-<glyph unicode="&#xb1;" horiz-adv-x="1056" d="M65 -1v84h917v-84h-917zM81 673l3 115h399v403h107v-405h401v-113h-404v-402h-104v402h-402z" />
-<glyph unicode="&#xb4;" horiz-adv-x="799" d="M69 1658l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xb5;" horiz-adv-x="1356" d="M-12 -387q0 77 17 135q53 180 55.5 194.5t3 26t0.5 31.5v1195h201v-824q0 -102 62 -179.5t157 -77.5q96 0 195 76q105 81 105 179v826h197v-932q0 -73 35 -134.5t93 -61.5q12 0 18 1q41 9 66.5 35.5t38.5 70.5l19 63h42l-15 -73q-17 -88 -110 -152q-83 -57 -159 -57 q-13 0 -20 1q-83 12 -144 76q-67 69 -67 160l-61 -62q-75 -72 -158.5 -119t-145.5 -47q-63 0 -136 32q-89 39 -140 105v-84q0 -68 27 -142q59 -164 58 -246q0 -64 -30 -108q-35 -49 -91 -49q-49 0 -81 42.5t-32 98.5z" />
-<glyph unicode="&#xb6;" horiz-adv-x="1173" d="M68 1235q0 172 115.5 295.5t284.5 123.5h644v-152h-200v-1812h-128v1812h-183v-1812h-126v1130q-168 0 -287.5 122.5t-119.5 292.5z" />
-<glyph unicode="&#xb7;" horiz-adv-x="507" d="M69 652v391h382v-391h-382z" />
-<glyph unicode="&#xba;" horiz-adv-x="847" d="M79 752v133h710v-133h-710zM96 1308q0 134 97.5 228t233.5 94q133 0 227.5 -97.5t94.5 -231.5q0 -133 -98.5 -226t-233.5 -93q-133 0 -227 96.5t-94 229.5zM283 1299q0 -56 41.5 -94.5t97.5 -38.5q59 0 98.5 42t39.5 105q0 56 -41 96t-100 40q-57 0 -96.5 -44.5 t-39.5 -105.5z" />
-<glyph unicode="&#xbb;" horiz-adv-x="1224" d="M64 888v232l480 -353v-237l-473 -369v248l334 235zM667 888v232l479 -353v-237l-473 -369v248l333 235z" />
-<glyph unicode="&#xbf;" horiz-adv-x="1276" d="M75 84q0 112 31.5 195t106.5 151l108 97q27 24 44.5 43.5t35.5 42.5t30 53t17 61h390v-50q0 -45 -12.5 -87.5t-35 -78.5t-52 -72t-55.5 -58l-148 -131q-31 -27 -49.5 -61.5t-18.5 -79.5q0 -69 48.5 -119t116.5 -50q75 0 124 49.5t49 119.5l1 28h412q0 -241 -170 -417 t-409 -176q-228 0 -396 160t-168 380zM446 832v390h391v-390h-391z" />
-<glyph unicode="&#xc0;" horiz-adv-x="1823" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM462 1960l113 317l559 -233l-93 -267zM768 768h242l-118 371z" />
-<glyph unicode="&#xc1;" horiz-adv-x="1844" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM488 2041l559 233l115 -317l-579 -183zM768 768h242l-118 371z" />
-<glyph unicode="&#xc2;" horiz-adv-x="1844" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM428 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM768 768h242l-118 371z" />
-<glyph unicode="&#xc3;" horiz-adv-x="1817" d="M42 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM355 2013q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4 q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM741 768h242l-118 371z" />
-<glyph unicode="&#xc4;" horiz-adv-x="1820" d="M61 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM339 1778v377h386v-377h-386zM760 768h242l-118 371zM849 1778v377h386v-377h-386z" />
-<glyph unicode="&#xc5;" horiz-adv-x="1828" d="M69 0v357h144l377 924h-150v352h634l524 -1276h169v-357h-737v313h133l-54 133h-436l-45 -129h164v-317h-723zM608 2023q0 112 80 189t190 77t189 -78.5t79 -190.5q0 -110 -78 -189.5t-190 -79.5q-110 0 -190 80t-80 192zM761 2023q0 -49 33.5 -84t83.5 -35q48 0 82 34 t34 82t-33 82.5t-83 34.5q-48 0 -82.5 -33t-34.5 -81zM768 768h242l-118 371z" />
-<glyph unicode="&#xc6;" horiz-adv-x="2259" d="M71 0v351h142l717 936h-149v346h1407v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h392v-570h-1171l2 313h133l-5 133h-436l-91 -129h164v-317h-709zM918 768h242l2 364z" />
-<glyph unicode="&#xc7;" horiz-adv-x="1805" d="M63 802q0 349 249.5 600t596.5 251q146 0 270.5 -60t159.5 -137v158h347v-615h-402q-118 229 -371 229q-173 0 -299 -120.5t-126 -290.5q0 -177 121.5 -306t294.5 -129q126 0 220.5 52.5t155.5 160.5h455q-33 -148 -91.5 -245t-173.5 -194q-108 -92 -209.5 -135.5 t-241.5 -55.5l-28 -69q121 0 192 -80q67 -75 67 -187q0 -117 -86.5 -205t-206.5 -88q-124 0 -212 81t-88 209h213q7 -29 27 -50.5t53 -21.5q29 0 51 20.5t22 51.5q0 33 -22.5 57t-55.5 24q-21 0 -36 -9t-27 -28l-185 72l87 221q-319 49 -520 282t-201 557z" />
-<glyph unicode="&#xc8;" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM352 1957l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xc9;" horiz-adv-x="1387" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM420 2035l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xca;" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM309 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" />
-<glyph unicode="&#xcb;" horiz-adv-x="1377" d="M63 0v357h154v924h-154v352h1257v-528h-396v153h-272v-228h371v-386h-371v-273h272v199h391v-570h-1252zM261 1767v377h386v-377h-386zM771 1767v377h386v-377h-386z" />
-<glyph unicode="&#xcc;" horiz-adv-x="874" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM161 1957l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xcd;" horiz-adv-x="874" d="M63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM117 2041l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xce;" horiz-adv-x="874" d="M21 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751z" />
-<glyph unicode="&#xcf;" horiz-adv-x="874" d="M-27 1779v377h386v-377h-386zM63 0v357h162v924h-162v352h751v-352h-167v-924h167v-357h-751zM483 1779v377h386v-377h-386z" />
-<glyph unicode="&#xd1;" horiz-adv-x="1852" d="M61 1281v352h519l639 -900v548h-173v352h737v-352h-153v-1281h-380l-619 872v-515h162v-357h-722v357h154v924h-164zM506 2004q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4 q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" />
-<glyph unicode="&#xd2;" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M568 1957l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xd3;" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M596 2041l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xd4;" horiz-adv-x="1820" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M560 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" />
-<glyph unicode="&#xd5;" horiz-adv-x="1831" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM443 2009q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55 t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z" />
-<glyph unicode="&#xd6;" horiz-adv-x="1823" d="M68 817q0 347 249.5 594t596.5 247q346 0 596.5 -243.5t250.5 -588.5q0 -354 -249.5 -610t-602.5 -256q-355 0 -595 237q-246 244 -246 620zM488 806q0 -173 122 -298.5t294 -125.5q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -304 -125t-128 -301z M494 1771v377h386v-377h-386zM1004 1771v377h386v-377h-386z" />
-<glyph unicode="&#xd8;" horiz-adv-x="1816" d="M68 817q0 347 249.5 594t596.5 247q65 0 112 -6.5t113 -25.5l108 241h271l-146 -345q196 -126 292.5 -296t96.5 -400q0 -354 -249.5 -610t-602.5 -256q-59 0 -106.5 4t-86.5 16l-95 -220h-286l133 317q-102 48 -177 119q-100 94 -155 230q-68 168 -68 391zM488 806 q0 -108 37 -185t119 -143l327 750l-51 4q-176 0 -304 -125t-128 -301zM889 383l15 -1q12 -1 23.5 -2t23.5 -1q156 0 270 129.5t114 297.5q0 98 -30.5 171.5t-102.5 141.5z" />
-<glyph unicode="&#xd9;" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM460 1957l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xda;" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM524 2041l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xdb;" horiz-adv-x="1652" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM440 1774l242 431h322l219 -431h-282l-104 207l-95 -207h-302 z" />
-<glyph unicode="&#xdc;" horiz-adv-x="1642" d="M63 1281v352h664v-352h-106v-717q0 -84 62 -143t147 -59q84 0 143.5 64.5t59.5 152.5v702h-129v352h684v-352h-159v-726q0 -252 -169 -421q-174 -174 -440 -174q-293 0 -455 165q-153 156 -153 410v746h-149zM383 1784v377h386v-377h-386zM893 1784v377h386v-377h-386z " />
-<glyph unicode="&#xdf;" horiz-adv-x="1538" d="M63 0v357h127v732q0 250 169 432t415 182q222 0 380 -149q150 -142 150 -326q0 -117 -37 -189q-41 -79 -131 -113q154 -21 247.5 -143.5t93.5 -302.5q0 -221 -153.5 -373t-370.5 -152q-80 0 -134 12t-123 48v351q40 -28 83 -39.5t98 -11.5q83 0 137.5 53.5t54.5 137.5 q0 112 -94 161q-75 40 -205 40h-74v327h55q59 0 101 42.5t42 101.5q0 60 -38.5 97t-110.5 37q-79 0 -114 -65q-31 -55 -31 -153v-1094h-537z" />
-<glyph unicode="&#xe0;" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM459 1631l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xe1;" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM448 1717l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xe2;" horiz-adv-x="1594" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM459 1448l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" />
-<glyph unicode="&#xe3;" horiz-adv-x="1586" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM449 1682q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" />
-<glyph unicode="&#xe4;" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM380 1454v377h386v-377h-386zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5 q0 120 -82 206.5t-199 86.5q-116 0 -202 -79t-86 -194zM890 1454v377h386v-377h-386z" />
-<glyph unicode="&#xe5;" horiz-adv-x="1592" d="M63 599q0 269 182.5 466.5t445.5 197.5q104 0 174 -27q52 -20 142 -82v84h521v-342h-135v-539h135v-362h-511v94q-80 -57 -148.5 -83t-157.5 -26q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5 q-116 0 -202 -79t-86 -194zM487 1697q0 112 80 189t190 77t189 -78.5t79 -190.5q0 -110 -78 -189.5t-190 -79.5q-110 0 -190 80t-80 192zM640 1697q0 -49 33.5 -84t83.5 -35q48 0 82 34t34 82t-33.5 82.5t-82.5 34.5q-48 0 -82.5 -33t-34.5 -81z" />
-<glyph unicode="&#xe6;" horiz-adv-x="2568" d="M69 599q0 270 183 467t447 197q104 0 174 -27q53 -20 142 -82v84h381v-84q114 67 208.5 90t262.5 23q241 0 442 -208q206 -213 206 -484q0 -54 -11 -115h-924q39 -89 111 -135.5t171 -46.5q71 0 134 35q51 32 79 49h386q-106 -194 -241 -287q-150 -105 -364 -106 q-162 0 -263 24q-121 29 -233 105v-103h-335v94q-81 -57 -150 -83t-158 -26q-269 0 -458.5 179t-189.5 440zM455 633q0 -120 80.5 -208t197.5 -88q118 0 205 79.5t87 196.5q0 120 -82 206.5t-200 86.5q-116 0 -202 -79t-86 -194zM1580 748h558q-41 89 -116.5 133.5 t-179.5 44.5q-89 0 -155.5 -47t-106.5 -131z" />
-<glyph unicode="&#xe7;" horiz-adv-x="1411" d="M69 639q0 253 176.5 438.5t418.5 185.5q102 0 189 -29q77 -25 137 -74v83h322v-455h-357q-79 118 -239 118q-117 0 -196.5 -88.5t-79.5 -208.5q0 -113 81.5 -195.5t195.5 -82.5q77 0 133 27.5t100 87.5h401q0 -68 -62 -191t-122 -169q-80 -59 -152 -87t-162 -28l-27 -69 q120 0 191 -80q67 -76 66 -188q0 -118 -85 -204.5t-206 -86.5q-125 0 -210 78q-89 83 -90 210h212q7 -29 27 -50t53 -21q29 0 51.5 21t22.5 50q0 33 -23 58t-57 25q-20 0 -35 -10t-26 -27l-186 71l86 220q-245 40 -396.5 227.5t-151.5 443.5z" />
-<glyph unicode="&#xe8;" horiz-adv-x="1441" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM388 1635l113 317l559 -233l-93 -267zM438 748h560 q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" />
-<glyph unicode="&#xe9;" horiz-adv-x="1439" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM406 1719l559 233l115 -317l-579 -183zM438 748h560 q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" />
-<glyph unicode="&#xea;" horiz-adv-x="1441" d="M63 595q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM315 1451l242 431h322l219 -431h-282l-104 207l-95 -207h-302z M438 739h560q-43 89 -119.5 133.5t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131z" />
-<glyph unicode="&#xeb;" horiz-adv-x="1441" d="M63 604q0 273 194.5 468t467.5 195q266 0 458.5 -203t192.5 -476q0 -64 -12 -128h-926q39 -89 111 -135.5t171 -46.5q72 0 134 35q4 3 79 49h386q-81 -194 -237 -298t-366 -104q-267 0 -460 189t-193 455zM309 1444v377h386v-377h-386zM438 748h560q-43 89 -119.5 133.5 t-178.5 44.5q-89 0 -155.5 -47t-106.5 -131zM819 1444v377h386v-377h-386z" />
-<glyph unicode="&#xec;" horiz-adv-x="781" d="M36 1634l113 317l559 -233l-93 -268zM61 0v347h139v545h-139v346h506v-881h138v-357h-644z" />
-<glyph unicode="&#xed;" horiz-adv-x="790" d="M57 1718l559 233l115 -317l-579 -184zM81 0v347h139v545h-139v346h506v-881h138v-357h-644z" />
-<glyph unicode="&#xee;" horiz-adv-x="779" d="M-41 1449l242 431h322l218 -431h-282l-104 208l-94 -208h-302zM68 0v347h138v545h-138v346h504v-881h139v-357h-643z" />
-<glyph unicode="&#xef;" horiz-adv-x="783" d="M-94 1444v376h385v-376h-385zM75 0v347h138v545h-138v346h505v-881h139v-357h-644zM415 1444v376h386v-376h-386z" />
-<glyph unicode="&#xf1;" horiz-adv-x="1566" d="M69 0v357h149v539h-149v342h521v-124q57 81 140 115t196 34q240 0 353 -160q92 -130 92 -346v-400h129v-357h-519v713q0 90 -31 140q-40 64 -134 64q-19 0 -30 -1q-85 -8 -138.5 -73.5t-53.5 -154.5v-331h119v-357h-644zM319 1681q48 28 85 41.5t93 23.5q27 4 49 4 q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5z" />
-<glyph unicode="&#xf2;" horiz-adv-x="1425" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM358 1634l113 317l559 -233l-93 -267zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5 q-116 0 -194.5 -90t-78.5 -211z" />
-<glyph unicode="&#xf3;" horiz-adv-x="1425" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM356 1718l559 233l115 -317l-579 -183zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5 t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" />
-<glyph unicode="&#xf4;" horiz-adv-x="1433" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM334 1451l242 431h322l219 -431h-282l-104 207l-95 -207h-302zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5 q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" />
-<glyph unicode="&#xf5;" horiz-adv-x="1438" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM293 1682q48 28 85 41.5t93 23.5q27 4 49 4q52 0 144.5 -27t147.5 -27t109 20q13 5 64 25l140 -208q-60 -37 -106.5 -55t-112.5 -28 q-24 -4 -45 -4q-48 0 -130.5 24.5t-123.5 24.5q-13 0 -28 -1.5t-37 -6.5t-39 -10.5t-62 -26.5zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5q-116 0 -194.5 -90t-78.5 -211z" />
-<glyph unicode="&#xf6;" horiz-adv-x="1438" d="M63 613q0 266 195.5 455.5t466.5 189.5q265 0 454.5 -195t189.5 -464q0 -266 -197 -452.5t-467 -186.5q-266 0 -454 192.5t-188 460.5zM249 1444v377h386v-377h-386zM438 595q0 -110 82.5 -189t195.5 -79q117 0 197 85.5t80 211.5q0 113 -83.5 192.5t-198.5 79.5 q-116 0 -194.5 -90t-78.5 -211zM759 1444v377h386v-377h-386z" />
-<glyph unicode="&#xf7;" horiz-adv-x="1529" d="M60 600v152h1390v-152h-1390zM594 314q0 60 43.5 104t105.5 44q60 0 103.5 -44t43.5 -107t-44 -106.5t-106 -43.5q-60 0 -103 46t-43 107zM595 1041q0 60 44 103.5t105 43.5t105 -43.5t44 -106.5t-44.5 -107.5t-107.5 -44.5q-60 0 -103 46t-43 109z" />
-<glyph unicode="&#xf8;" horiz-adv-x="1429" d="M63 613q0 267 196 456t468 189q37 0 62 -4t55 -10l80 181h272l-107 -270q121 -61 200.5 -218.5t79.5 -337.5q0 -265 -196 -452t-466 -187q-35 0 -62.5 3.5t-66.5 12.5l-70 -165h-287l116 270q-141 98 -207.5 228t-66.5 304zM439 595q0 -80 56 -156l200 457 q-112 -11 -184 -97.5t-72 -203.5zM728 329q105 0 185 86.5t80 208.5q0 64 -27 117q-17 33 -40 55z" />
-<glyph unicode="&#xf9;" horiz-adv-x="1491" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM412 1633l113 317l559 -233l-93 -267z" />
-<glyph unicode="&#xfa;" horiz-adv-x="1499" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM432 1717l559 233l115 -317l-579 -183z" />
-<glyph unicode="&#xfb;" horiz-adv-x="1491" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM386 1450l242 431h322l219 -431h-282l-104 207l-95 -207h-302z" />
-<glyph unicode="&#xfc;" horiz-adv-x="1498" d="M63 896v342h495v-723q0 -85 43 -136q49 -57 144 -57q96 0 145 61q43 53 43 141v372h-139v342h515v-881h130v-357h-476v120q-113 -140 -322 -140q-197 0 -331 133t-134 342v441h-113zM273 1444v377h386v-377h-386zM783 1444v377h386v-377h-386z" />
-<glyph unicode="&#xfd;" horiz-adv-x="0" />
-<glyph unicode="&#xff;" horiz-adv-x="1466" d="M97 896v342h609v-357h-69l128 -375l138 375h-64v357h590v-342h-114l-406 -980h118v-347h-613v342h109l49 129l-341 856h-134zM313 1444v377h386v-377h-386zM823 1444v377h386v-377h-386z" />
-<glyph unicode="&#x152;" horiz-adv-x="2412" d="M61 817q0 346 250.5 593.5t596.5 247.5q68 0 121.5 -5.5t142.5 -19.5h1175v-528h-395v153h-273v-228h372v-386h-372v-273h273v199h390v-570h-1170q-67 -19 -130.5 -29.5t-139.5 -10.5q-355 0 -595 237q-246 244 -246 620zM482 806q0 -173 121.5 -298.5t293.5 -125.5 q177 0 304 124t127 300q0 173 -121 299.5t-294 126.5q-176 0 -303.5 -125t-127.5 -301z" />
-<glyph unicode="&#x153;" horiz-adv-x="2298" d="M63 599q0 269 182.5 466.5t445.5 197.5q132 0 218 -19q114 -25 217 -90q114 67 208.5 90t262.5 23q241 0 442 -208q206 -213 206 -484q0 -54 -11 -115h-925q39 -89 111.5 -135.5t171.5 -46.5q71 0 134 35q51 32 78 49h386q-106 -194 -240 -287q-150 -105 -364 -106 q-162 0 -263 24q-121 29 -233 105q-88 -63 -184.5 -90.5t-194.5 -27.5q-270 0 -459 179t-189 440zM448 633q0 -121 80 -208.5t197 -87.5q118 0 205 79.5t87 196.5q0 120 -82 206.5t-199 86.5q-116 0 -202 -79t-86 -194zM1309 748h559q-41 89 -117.5 133.5t-178.5 44.5 q-90 0 -157 -46.5t-106 -131.5z" />
-<glyph unicode="&#x178;" horiz-adv-x="1628" d="M63 1281v352h673v-341h-100l173 -362l189 362h-114v341h668v-352h-139l-406 -691v-233h144v-357h-728v357h173v218l-380 706h-153zM356 1767v377h386v-377h-386zM866 1767v377h386v-377h-386z" />
-<glyph unicode="&#x2000;" horiz-adv-x="1144" />
-<glyph unicode="&#x2001;" horiz-adv-x="2289" />
-<glyph unicode="&#x2002;" horiz-adv-x="1144" />
-<glyph unicode="&#x2003;" horiz-adv-x="2289" />
-<glyph unicode="&#x2004;" horiz-adv-x="763" />
-<glyph unicode="&#x2005;" horiz-adv-x="572" />
-<glyph unicode="&#x2006;" horiz-adv-x="381" />
-<glyph unicode="&#x2007;" horiz-adv-x="381" />
-<glyph unicode="&#x2008;" horiz-adv-x="286" />
-<glyph unicode="&#x2009;" horiz-adv-x="457" />
-<glyph unicode="&#x200a;" horiz-adv-x="127" />
-<glyph unicode="&#x2010;" d="M64 604v246l510 2v-248h-510z" />
-<glyph unicode="&#x2011;" d="M64 604v246l510 2v-248h-510z" />
-<glyph unicode="&#x2012;" d="M64 604v246l510 2v-248h-510z" />
-<glyph unicode="&#x2013;" horiz-adv-x="999" d="M67 611v242h851v-242h-851z" />
-<glyph unicode="&#x2014;" horiz-adv-x="1788" d="M67 605v248h1642v-244z" />
-<glyph unicode="&#x2018;" horiz-adv-x="514" d="M60 870v447q0 73 14 127t52 101t115 68q57 16 136 16h51v-196h-37q-60 0 -94 -44q-12 -16 -17 -34t-5 -43v-29v-27h173v-386h-388z" />
-<glyph unicode="&#x2019;" horiz-adv-x="514" d="M65 1247v386h389v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h37q60 0 95 44q12 16 16.5 34t4.5 43v29v27h-173z" />
-<glyph unicode="&#x201a;" horiz-adv-x="514" d="M65 -11v386h389v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -70q-57 -16 -136 -16h-52v195h37q60 0 95 44q12 16 16.5 34t4.5 43v30v26h-173z" />
-<glyph unicode="&#x201c;" horiz-adv-x="1167" d="M60 870v447q0 75 14 127t52.5 100t114.5 69q57 16 136 16h51v-196h-35q-60 0 -95 -44q-16 -19 -19.5 -38t-3.5 -54v-14v-27h173v-386h-388zM580 870v447q0 73 14 127t52 101t115 68q57 16 136 16h52v-196h-37q-60 0 -95 -44q-12 -16 -16.5 -34t-4.5 -43v-29v-27h173v-386 h-389z" />
-<glyph unicode="&#x201d;" horiz-adv-x="1039" d="M67 1247v386h388v-447q0 -75 -14 -127t-52.5 -99.5t-114.5 -69.5q-57 -16 -136 -16h-52v196h36q60 0 95 44q19 24 21 52t2 54v27h-173zM586 1247v386h388v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -71q-57 -16 -136 -16h-52v196h38q60 0 94 44q12 16 17 34t5 43v29v27 h-173z" />
-<glyph unicode="&#x201e;" horiz-adv-x="1039" d="M67 -11v386h388v-447q0 -75 -14 -126.5t-52.5 -99.5t-114.5 -69q-57 -16 -136 -16h-52v195h36q60 0 95 44q19 24 21 52t2 55v26h-173zM586 -11v386h388v-447q0 -73 -14 -127t-50 -98q-40 -49 -117 -70q-57 -16 -136 -16h-52v195h38q60 0 94 44q12 16 17 34t5 43v30v26 h-173z" />
-<glyph unicode="&#x2022;" horiz-adv-x="726" d="M69 515v590h590v-590h-590z" />
-<glyph unicode="&#x2026;" horiz-adv-x="2375" d="M60 -9v391h382v-391h-382zM1014 -19v391h382v-391h-382zM1937 -19v391h382v-391h-382z" />
-<glyph unicode="&#x202f;" horiz-adv-x="457" />
-<glyph unicode="&#x205f;" horiz-adv-x="572" />
-<glyph unicode="&#x2122;" horiz-adv-x="1543" d="M55 1576v69h592v-71h-257v-753h-80v755h-255zM708 1639h125l257 -717l267 716h117v-817h-79v729l-273 -726h-71l-262 729v-732h-80z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1237" d="M0 0v1238h1238v-1238h-1238z" />
-<hkern u1="&#x22;" u2="A" k="176" />
-<hkern u1="A" u2="&#x201d;" k="290" />
-<hkern u1="A" u2="&#x2019;" k="286" />
-<hkern u1="A" u2="y" k="193" />
-<hkern u1="A" u2="w" k="205" />
-<hkern u1="A" u2="v" k="205" />
-<hkern u1="A" u2="q" k="69" />
-<hkern u1="A" u2="o" k="69" />
-<hkern u1="A" u2="e" k="69" />
-<hkern u1="A" u2="d" k="84" />
-<hkern u1="A" u2="c" k="69" />
-<hkern u1="A" u2="Y" k="303" />
-<hkern u1="A" u2="W" k="317" />
-<hkern u1="A" u2="V" k="406" />
-<hkern u1="A" u2="T" k="270" />
-<hkern u1="A" u2="C" k="148" />
-<hkern u1="A" u2="&#x27;" k="237" />
-<hkern u1="A" u2="&#x22;" k="294" />
-<hkern u1="F" u2="A" k="232" />
-<hkern u1="F" u2="&#x2e;" k="237" />
-<hkern u1="F" u2="&#x2c;" k="221" />
-<hkern u1="K" u2="o" k="29" />
-<hkern u1="K" u2="e" k="29" />
-<hkern u1="K" u2="a" k="29" />
-<hkern u1="K" u2="O" k="86" />
-<hkern u1="K" u2="&#x2d;" k="102" />
-<hkern u1="L" u2="&#x2019;" k="168" />
-<hkern u1="L" u2="y" k="73" />
-<hkern u1="L" u2="Y" k="229" />
-<hkern u1="L" u2="W" k="274" />
-<hkern u1="L" u2="V" k="274" />
-<hkern u1="L" u2="T" k="126" />
-<hkern u1="L" u2="&#x27;" k="144" />
-<hkern u1="O" u2="W" k="73" />
-<hkern u1="O" u2="V" k="45" />
-<hkern u1="P" u2="A" k="225" />
-<hkern u1="P" u2="&#x2e;" k="237" />
-<hkern u1="P" u2="&#x2c;" k="233" />
-<hkern u1="R" u2="Y" k="12" />
-<hkern u1="R" u2="W" k="11" />
-<hkern u1="R" u2="V" k="11" />
-<hkern u1="T" u2="o" k="45" />
-<hkern u1="T" u2="e" k="29" />
-<hkern u1="T" u2="c" k="45" />
-<hkern u1="T" u2="a" k="45" />
-<hkern u1="T" u2="A" k="209" />
-<hkern u1="T" u2="&#x3b;" k="3" />
-<hkern u1="T" u2="&#x3a;" k="3" />
-<hkern u1="T" u2="&#x2e;" k="61" />
-<hkern u1="T" u2="&#x2c;" k="77" />
-<hkern u1="V" u2="o" k="217" />
-<hkern u1="V" u2="e" k="201" />
-<hkern u1="V" u2="c" k="217" />
-<hkern u1="V" u2="a" k="214" />
-<hkern u1="V" u2="O" k="96" />
-<hkern u1="V" u2="C" k="125" />
-<hkern u1="V" u2="A" k="274" />
-<hkern u1="V" u2="&#x3b;" k="92" />
-<hkern u1="V" u2="&#x3a;" k="94" />
-<hkern u1="V" u2="&#x2e;" k="258" />
-<hkern u1="V" u2="&#x2d;" k="217" />
-<hkern u1="V" u2="&#x2c;" k="258" />
-<hkern u1="W" u2="u" k="16" />
-<hkern u1="W" u2="r" k="16" />
-<hkern u1="W" u2="o" k="106" />
-<hkern u1="W" u2="i" k="23" />
-<hkern u1="W" u2="e" k="106" />
-<hkern u1="W" u2="c" k="102" />
-<hkern u1="W" u2="a" k="106" />
-<hkern u1="W" u2="O" k="102" />
-<hkern u1="W" u2="C" k="144" />
-<hkern u1="W" u2="A" k="290" />
-<hkern u1="W" u2="&#x3b;" k="184" />
-<hkern u1="W" u2="&#x3a;" k="184" />
-<hkern u1="W" u2="&#x2e;" k="184" />
-<hkern u1="W" u2="&#x2d;" k="209" />
-<hkern u1="W" u2="&#x2c;" k="198" />
-<hkern u1="Y" u2="v" k="12" />
-<hkern u1="Y" u2="q" k="109" />
-<hkern u1="Y" u2="p" k="12" />
-<hkern u1="Y" u2="o" k="110" />
-<hkern u1="Y" u2="i" k="4" />
-<hkern u1="Y" u2="e" k="140" />
-<hkern u1="Y" u2="a" k="156" />
-<hkern u1="Y" u2="A" k="237" />
-<hkern u1="Y" u2="&#x3b;" k="-4" />
-<hkern u1="Y" u2="&#x2e;" k="193" />
-<hkern u1="Y" u2="&#x2d;" k="193" />
-<hkern u1="Y" u2="&#x2c;" k="176" />
-<hkern u1="b" u2="y" k="23" />
-<hkern u1="e" u2="y" k="20" />
-<hkern u1="e" u2="x" k="20" />
-<hkern u1="e" u2="w" k="23" />
-<hkern u1="e" u2="v" k="23" />
-<hkern u1="o" u2="y" k="20" />
-<hkern u1="o" u2="x" k="8" />
-<hkern u1="o" u2="w" k="8" />
-<hkern u1="o" u2="v" k="8" />
-<hkern u1="p" u2="y" k="20" />
-<hkern u1="v" u2="o" k="8" />
-<hkern u1="v" u2="e" k="24" />
-<hkern u1="v" u2="a" k="8" />
-<hkern u1="v" u2="&#x2e;" k="184" />
-<hkern u1="v" u2="&#x2c;" k="184" />
-<hkern u1="w" u2="o" k="8" />
-<hkern u1="w" u2="e" k="8" />
-<hkern u1="w" u2="a" k="8" />
-<hkern u1="w" u2="&#x2e;" k="228" />
-<hkern u1="w" u2="&#x2c;" k="201" />
-<hkern u1="x" u2="o" k="7" />
-<hkern u1="x" u2="e" k="8" />
-<hkern u1="x" u2="a" k="8" />
-<hkern u1="y" u2="o" k="8" />
-<hkern u1="y" u2="e" k="-8" />
-<hkern u1="y" u2="a" k="8" />
-<hkern u1="y" u2="&#x2e;" k="184" />
-<hkern u1="y" u2="&#x2c;" k="184" />
-<hkern u1="&#x2018;" u2="A" k="418" />
-<hkern u1="&#x201c;" u2="A" k="290" />
-</font>
-</defs></svg> 
\ No newline at end of file
diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.ttf b/lib/katex/fonts/lubalin_graph_bold-webfont.ttf
deleted file mode 100755
index ed8aa292aa6eb85463e59ddde50bf295dc877e34..0000000000000000000000000000000000000000
Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.ttf and /dev/null differ
diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.woff b/lib/katex/fonts/lubalin_graph_bold-webfont.woff
deleted file mode 100755
index 83c14ee623d7ed22439912aeae8f63c1f56f29a3..0000000000000000000000000000000000000000
Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.woff and /dev/null differ
diff --git a/lib/katex/fonts/lubalin_graph_bold-webfont.woff2 b/lib/katex/fonts/lubalin_graph_bold-webfont.woff2
deleted file mode 100755
index a269c291846c4e00bc1925e15cb658c02ee12d1d..0000000000000000000000000000000000000000
Binary files a/lib/katex/fonts/lubalin_graph_bold-webfont.woff2 and /dev/null differ
diff --git a/static.html b/static.html
index dfeff481626e75b98c6b62772aa03ef590d58a0b..f61f3ea0244a7c13f6b51bdfaca5ba9e35449602 100644
--- a/static.html
+++ b/static.html
@@ -19,6 +19,12 @@
         \REQUIRE  {asd}{jios}{adf} jioasdfjioas aijosfaisjo asjdf asjoi asdfasdf jo asdjd j asdjo $n \geq 0$
         \ENSURE $y = x^n$
         \STATE  asjo aosd j asodij jdsf $y \leftarrow 1$ a js j djioas jo j
+        \STATE Test text-style commands:
+        \STATE different font-family: {\sffamily sffamily \ttfamily ttfamily \rmfamily rmfamily}
+        \STATE different wieghts: {normal weight \bfseries bold \mdseries medium \lfseries lighter}
+        \STATE different shapes: {\itshape itshape \scshape Small-Caps \slshape slshape \upshape upshape}
+        \STATE {normal text vs. \slshape after slshape}
+        \STATE {\uppercase all is uppercase} vs. {\lowercase ALL lOWER Case}
         \STATE $X \leftarrow x$
         \STATE $N \leftarrow n$
         \WHILE{$N \neq 0$}