From c951df4269eb0b72826f803b218e6fa7c19c78e5 Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Mon, 21 Nov 2016 14:02:24 -0500 Subject: [PATCH 01/12] Fix #4. Post-process the list of atoms after they are created, changing binary operators to ordinary atoms according to the TeXbook's rules. This makes the `prev` argument redundant, so drop it. This commit assumes that the math class (mop/mbin/mrel/etc.) comes first in the `classes` list, if present. Add a TODO to change the signature of `makeSpan/makeSymbol` to enforce this invariant. --- src/buildCommon.js | 4 + src/buildHTML.js | 162 ++++++++++-------- src/buildMathML.js | 2 +- .../images/BinCancellation-chrome.png | Bin 0 -> 7526 bytes .../images/BinCancellation-firefox.png | Bin 0 -> 6912 bytes test/screenshotter/ss_data.yaml | 5 + 6 files changed, 99 insertions(+), 74 deletions(-) create mode 100644 test/screenshotter/images/BinCancellation-chrome.png create mode 100644 test/screenshotter/images/BinCancellation-firefox.png diff --git a/src/buildCommon.js b/src/buildCommon.js index c4ab8ba..4e22fb1 100644 --- a/src/buildCommon.js +++ b/src/buildCommon.js @@ -36,6 +36,8 @@ var mainitLetters = [ * classes to be attached to the node. * * TODO: make argument order closer to makeSpan + * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which + * should if present come first in `classes`. */ var makeSymbol = function(value, fontFamily, mode, options, classes) { // Replace the value with its replaced value from symbol.js @@ -183,6 +185,8 @@ var sizeElementFromChildren = function(elem) { * * TODO: Ensure that `options` is always provided (currently some call sites * don't pass it). + * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which + * should if present come first in `classes`. */ var makeSpan = function(classes, children, options) { var span = new domTree.span(classes, children, options); diff --git a/src/buildHTML.js b/src/buildHTML.js index 61ec1b7..32ddd79 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -21,27 +21,52 @@ var isSpace = function(node) { return node instanceof domTree.span && node.classes[0] === "mspace"; }; +// Binary atoms (first class `mbin`) change into ordinary atoms (`mord`) +// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6, +// and the text before Rule 19. + +var isBin = function(node) { + return node && node.classes[0] === "mbin"; +}; + +var isBinLeftCanceller = function(node, isRealGroup) { + // TODO: This code assumes that a node's math class is the first element + // of its `classes` array. A later cleanup should ensure this, for + // instance by changing the signature of `makeSpan`. + if (node) { + return utils.contains(["mbin", "mopen", "mrel", "mop", "mpunct"], + node.classes[0]); + } else { + return isRealGroup; + } +}; + +var isBinRightCanceller = function(node, isRealGroup) { + if (node) { + return utils.contains(["mrel", "mclose", "mpunct"], node.classes[0]); + } else { + return isRealGroup; + } +}; + /** * Take a list of nodes, build them in order, and return a list of the built - * nodes. This function handles the `prev` node correctly, and passes the - * previous element from the list as the prev of the next element, ignoring - * spaces. documentFragments are flattened into their contents, so the - * returned list contains no fragments. + * nodes. documentFragments are flattened into their contents, so the + * returned list contains no fragments. `isRealGroup` is true if `expression` + * is a real group (no atoms will be added on either side), as opposed to + * a partial group (e.g. one created by \color). */ -var buildExpression = function(expression, options, prev) { +var buildExpression = function(expression, options, isRealGroup) { // Parse expressions into `groups`. var groups = []; for (var i = 0; i < expression.length; i++) { var group = expression[i]; - var output = buildGroup(group, options, prev); + var output = buildGroup(group, options); if (output instanceof domTree.documentFragment) { Array.prototype.push.apply(groups, output.children); } else { groups.push(output); } - if (!isSpace(output)) { - prev = group; - } } // At this point `groups` consists entirely of `symbolNode`s and `span`s. @@ -68,6 +93,15 @@ var buildExpression = function(expression, options, prev) { Array.prototype.push.apply(groups, spaces); } + // Binary operators change to ordinary symbols in some contexts. + for (i = 0; i < groups.length; i++) { + if (isBin(groups[i]) + && (isBinLeftCanceller(groups[i - 1], isRealGroup) + || isBinRightCanceller(groups[i + 1], isRealGroup))) { + groups[i].classes[0] = "mord"; + } + } + return groups; }; @@ -215,81 +249,63 @@ var makeNullDelimiter = function(options) { */ var groupTypes = {}; -groupTypes.mathord = function(group, options, prev) { +groupTypes.mathord = function(group, options) { return buildCommon.makeOrd(group, options, "mathord"); }; -groupTypes.textord = function(group, options, prev) { +groupTypes.textord = function(group, options) { return buildCommon.makeOrd(group, options, "textord"); }; -groupTypes.bin = function(group, options, prev) { - var className = "mbin"; - // Pull out the most recent element. Do some special handling to find - // things at the end of a \color group. Note that we don't use the same - // logic for ordgroups (which count as ords). - var prevAtom = prev; - while (prevAtom && prevAtom.type === "color") { - var atoms = prevAtom.value.value; - prevAtom = atoms[atoms.length - 1]; - } - // See TeXbook pg. 442-446, Rules 5 and 6, and the text before Rule 19. - // Here, we determine whether the bin should turn into an ord. We - // currently only apply Rule 5. - if (!prev || utils.contains(["mbin", "mopen", "mrel", "mop", "mpunct"], - getTypeOfGroup(prevAtom))) { - group.type = "textord"; - className = "mord"; - } - +groupTypes.bin = function(group, options) { return buildCommon.mathsym( - group.value, group.mode, options, [className]); + group.value, group.mode, options, ["mbin"]); }; -groupTypes.rel = function(group, options, prev) { +groupTypes.rel = function(group, options) { return buildCommon.mathsym( group.value, group.mode, options, ["mrel"]); }; -groupTypes.open = function(group, options, prev) { +groupTypes.open = function(group, options) { return buildCommon.mathsym( group.value, group.mode, options, ["mopen"]); }; -groupTypes.close = function(group, options, prev) { +groupTypes.close = function(group, options) { return buildCommon.mathsym( group.value, group.mode, options, ["mclose"]); }; -groupTypes.inner = function(group, options, prev) { +groupTypes.inner = function(group, options) { return buildCommon.mathsym( group.value, group.mode, options, ["minner"]); }; -groupTypes.punct = function(group, options, prev) { +groupTypes.punct = function(group, options) { return buildCommon.mathsym( group.value, group.mode, options, ["mpunct"]); }; -groupTypes.ordgroup = function(group, options, prev) { +groupTypes.ordgroup = function(group, options) { return makeSpan( ["mord", options.style.cls()], - buildExpression(group.value, options.reset()), + buildExpression(group.value, options.reset(), true), options ); }; -groupTypes.text = function(group, options, prev) { +groupTypes.text = function(group, options) { return makeSpan(["mord", "text", options.style.cls()], - buildExpression(group.value.body, options.reset()), + buildExpression(group.value.body, options.reset(), true), options); }; -groupTypes.color = function(group, options, prev) { +groupTypes.color = function(group, options) { var elements = buildExpression( group.value.value, options.withColor(group.value.color), - prev + false ); // \color isn't supposed to affect the type of the elements it contains. @@ -299,14 +315,14 @@ groupTypes.color = function(group, options, prev) { return new buildCommon.makeFragment(elements); }; -groupTypes.supsub = function(group, options, prev) { +groupTypes.supsub = function(group, options) { // Superscript and subscripts are handled in the TeXbook on page // 445-446, rules 18(a-f). // Here is where we defer to the inner group if it should handle // superscripts and subscripts itself. if (shouldHandleSupSub(group.value.base, options)) { - return groupTypes[group.value.base.type](group, options, prev); + return groupTypes[group.value.base.type](group, options); } var base = buildGroup(group.value.base, options.reset()); @@ -427,7 +443,7 @@ groupTypes.supsub = function(group, options, prev) { options); }; -groupTypes.genfrac = function(group, options, prev) { +groupTypes.genfrac = function(group, options) { // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e). // Figure out what style this fraction should be in based on the // function used @@ -566,7 +582,7 @@ groupTypes.genfrac = function(group, options, prev) { options); }; -groupTypes.array = function(group, options, prev) { +groupTypes.array = function(group, options) { var r; var c; var nr = group.value.body.length; @@ -730,7 +746,7 @@ groupTypes.array = function(group, options, prev) { return makeSpan(["mord"], [body], options); }; -groupTypes.spacing = function(group, options, prev) { +groupTypes.spacing = function(group, options) { if (group.value === "\\ " || group.value === "\\space" || group.value === " " || group.value === "~") { // Spaces are generated by adding an actual space. Each of these @@ -749,7 +765,7 @@ groupTypes.spacing = function(group, options, prev) { } }; -groupTypes.llap = function(group, options, prev) { +groupTypes.llap = function(group, options) { var inner = makeSpan( ["inner"], [buildGroup(group.value.body, options.reset())]); var fix = makeSpan(["fix"], []); @@ -757,7 +773,7 @@ groupTypes.llap = function(group, options, prev) { ["llap", options.style.cls()], [inner, fix], options); }; -groupTypes.rlap = function(group, options, prev) { +groupTypes.rlap = function(group, options) { var inner = makeSpan( ["inner"], [buildGroup(group.value.body, options.reset())]); var fix = makeSpan(["fix"], []); @@ -765,12 +781,12 @@ groupTypes.rlap = function(group, options, prev) { ["rlap", options.style.cls()], [inner, fix], options); }; -groupTypes.op = function(group, options, prev) { +groupTypes.op = function(group, options) { // Operators are handled in the TeXbook pg. 443-444, rule 13(a). var supGroup; var subGroup; var hasLimits = false; - if (group.type === "supsub" ) { + if (group.type === "supsub") { // If we have limits, supsub will pass us its group to handle. Pull // out the superscript and subscript and set the group to the op in // its base. @@ -930,7 +946,7 @@ groupTypes.op = function(group, options, prev) { } }; -groupTypes.katex = function(group, options, prev) { +groupTypes.katex = function(group, options) { // The KaTeX logo. The offsets for the K and a were chosen to look // good, but the offsets for the T, E, and X were taken from the // definition of \TeX in TeX (see TeXbook pg. 356) @@ -957,7 +973,7 @@ groupTypes.katex = function(group, options, prev) { ["mord", "katex-logo"], [k, a, t, e, x], options); }; -groupTypes.overline = function(group, options, prev) { +groupTypes.overline = function(group, options) { // Overlines are handled in the TeXbook pg 443, Rule 9. var style = options.style; @@ -985,7 +1001,7 @@ groupTypes.overline = function(group, options, prev) { return makeSpan(["mord", "overline"], [vlist], options); }; -groupTypes.underline = function(group, options, prev) { +groupTypes.underline = function(group, options) { // Underlines are handled in the TeXbook pg 443, Rule 10. var style = options.style; @@ -1011,7 +1027,7 @@ groupTypes.underline = function(group, options, prev) { return makeSpan(["mord", "underline"], [vlist], options); }; -groupTypes.sqrt = function(group, options, prev) { +groupTypes.sqrt = function(group, options) { // Square roots are handled in the TeXbook pg. 443, Rule 11. var style = options.style; @@ -1110,12 +1126,12 @@ groupTypes.sqrt = function(group, options, prev) { } }; -groupTypes.sizing = function(group, options, prev) { +groupTypes.sizing = function(group, options) { // Handle sizing operators like \Huge. Real TeX doesn't actually allow // these functions inside of math expressions, so we do some special // handling. var inner = buildExpression(group.value.value, - options.withSize(group.value.size), prev); + options.withSize(group.value.size), false); // Compute the correct maxFontSize. var style = options.style; @@ -1141,7 +1157,7 @@ groupTypes.sizing = function(group, options, prev) { return buildCommon.makeFragment(inner); }; -groupTypes.styling = function(group, options, prev) { +groupTypes.styling = function(group, options) { // Style changes are handled in the TeXbook on pg. 442, Rule 3. // Figure out what style we're changing to. @@ -1157,7 +1173,7 @@ groupTypes.styling = function(group, options, prev) { // Build the inner expression in the new style. var inner = buildExpression( - group.value.value, newOptions, prev); + group.value.value, newOptions, false); // Add style-resetting classes to the inner list. Handle nested changes. for (var i = 0; i < inner.length; i++) { @@ -1174,12 +1190,12 @@ groupTypes.styling = function(group, options, prev) { return new buildCommon.makeFragment(inner); }; -groupTypes.font = function(group, options, prev) { +groupTypes.font = function(group, options) { var font = group.value.font; - return buildGroup(group.value.body, options.withFont(font), prev); + return buildGroup(group.value.body, options.withFont(font)); }; -groupTypes.delimsizing = function(group, options, prev) { +groupTypes.delimsizing = function(group, options) { var delim = group.value.value; if (delim === ".") { @@ -1196,9 +1212,9 @@ groupTypes.delimsizing = function(group, options, prev) { options); }; -groupTypes.leftright = function(group, options, prev) { +groupTypes.leftright = function(group, options) { // Build the inner expression - var inner = buildExpression(group.value.body, options.reset()); + var inner = buildExpression(group.value.body, options.reset(), true); var innerHeight = 0; var innerDepth = 0; @@ -1247,7 +1263,7 @@ groupTypes.leftright = function(group, options, prev) { ["minner", style.cls()], inner, options); }; -groupTypes.rule = function(group, options, prev) { +groupTypes.rule = function(group, options) { // Make an empty span for the rule var rule = makeSpan(["mord", "rule"], [], options); var style = options.style; @@ -1290,7 +1306,7 @@ groupTypes.rule = function(group, options, prev) { return rule; }; -groupTypes.kern = function(group, options, prev) { +groupTypes.kern = function(group, options) { // Make an empty span for the rule var rule = makeSpan(["mord", "rule"], [], options); var style = options.style; @@ -1310,7 +1326,7 @@ groupTypes.kern = function(group, options, prev) { return rule; }; -groupTypes.accent = function(group, options, prev) { +groupTypes.accent = function(group, options) { // Accents are handled in the TeXbook pg. 443, rule 12. var base = group.value.base; var style = options.style; @@ -1337,7 +1353,7 @@ groupTypes.accent = function(group, options, prev) { // Rerender the supsub group with its new base, and store that // result. supsubGroup = buildGroup( - supsub, options.reset(), prev); + supsub, options.reset()); } // Build the base group @@ -1419,11 +1435,11 @@ groupTypes.accent = function(group, options, prev) { } }; -groupTypes.phantom = function(group, options, prev) { +groupTypes.phantom = function(group, options) { var elements = buildExpression( group.value.value, options.withPhantom(), - prev + false ); // \phantom isn't supposed to affect the elements it contains. @@ -1436,14 +1452,14 @@ groupTypes.phantom = function(group, options, prev) { * function for it. It also handles the interaction of size and style changes * between parents and children. */ -var buildGroup = function(group, options, prev) { +var buildGroup = function(group, options) { if (!group) { return makeSpan(); } if (groupTypes[group.type]) { // Call the groupTypes function - var groupNode = groupTypes[group.type](group, options, prev); + var groupNode = groupTypes[group.type](group, options); var multiplier; // If the style changed between the parent and the current group, @@ -1483,7 +1499,7 @@ var buildHTML = function(tree, options) { tree = JSON.parse(JSON.stringify(tree)); // Build the expression contained in the tree - var expression = buildExpression(tree, options); + var expression = buildExpression(tree, options, true); var body = makeSpan(["base", options.style.cls()], expression, options); // Add struts, which ensure that the top of the HTML element falls at the diff --git a/src/buildMathML.js b/src/buildMathML.js index 575ba75..4a75d92 100644 --- a/src/buildMathML.js +++ b/src/buildMathML.js @@ -470,7 +470,7 @@ groupTypes.rlap = function(group, options) { return node; }; -groupTypes.phantom = function(group, options, prev) { +groupTypes.phantom = function(group, options) { var inner = buildExpression(group.value.value, options); return new mathMLTree.MathNode("mphantom", inner); }; diff --git a/test/screenshotter/images/BinCancellation-chrome.png b/test/screenshotter/images/BinCancellation-chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..7f50bed53a0f425238bdd0f64174b545e7b5d6fb GIT binary patch literal 7526 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 U9fb0`F+e*m>KW;lYTMuYAEzH2=Kufz literal 0 HcmV?d00001 diff --git a/test/screenshotter/images/BinCancellation-firefox.png b/test/screenshotter/images/BinCancellation-firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..7376557d295f726ef65fe44500f6b040309675a6 GIT binary patch literal 6912 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 Date: Sun, 27 Nov 2016 10:14:41 -0500 Subject: [PATCH 02/12] The \llap and \rlap commands always generate "mord" atoms. This is how TeX does it. --- src/buildHTML.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 32ddd79..0fc6d4f 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -129,6 +129,8 @@ var groupToType = { leftright: "minner", sqrt: "mord", accent: "mord", + llap: "mord", + rlap: "mord", }; /** @@ -151,8 +153,6 @@ var getTypeOfGroup = function(group) { return groupToType.mathord; } else if (group.type === "supsub") { return getTypeOfGroup(group.value.base); - } else if (group.type === "llap" || group.type === "rlap") { - return getTypeOfGroup(group.value); } else if (group.type === "color" || group.type === "sizing" || group.type === "styling") { // Return type of rightmost element of group. @@ -770,7 +770,7 @@ groupTypes.llap = function(group, options) { ["inner"], [buildGroup(group.value.body, options.reset())]); var fix = makeSpan(["fix"], []); return makeSpan( - ["llap", options.style.cls()], [inner, fix], options); + ["mord", "llap", options.style.cls()], [inner, fix], options); }; groupTypes.rlap = function(group, options) { @@ -778,7 +778,7 @@ groupTypes.rlap = function(group, options) { ["inner"], [buildGroup(group.value.body, options.reset())]); var fix = makeSpan(["fix"], []); return makeSpan( - ["rlap", options.style.cls()], [inner, fix], options); + ["mord", "rlap", options.style.cls()], [inner, fix], options); }; groupTypes.op = function(group, options) { From dc79b91dbf0906e4986b4d6ff0f7dbd71faff40c Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Sun, 27 Nov 2016 10:53:53 -0500 Subject: [PATCH 03/12] Mark delimiters with the proper class (mopen or mclose). This fixes some atom spacing issues. Update the BinCancellation screenshotter test. --- src/buildHTML.js | 31 ++++++------ src/delimiter.js | 45 ++++++++++-------- .../images/BinCancellation-chrome.png | Bin 7526 -> 10141 bytes .../images/BinCancellation-firefox.png | Bin 6912 -> 9161 bytes test/screenshotter/ss_data.yaml | 4 +- 5 files changed, 42 insertions(+), 38 deletions(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 0fc6d4f..15859ea 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -235,12 +235,11 @@ var isCharacterBox = function(group) { baseElem.type === "punct"; }; -var makeNullDelimiter = function(options) { - return makeSpan([ +var makeNullDelimiter = function(options, classes) { + return makeSpan(classes.concat([ "sizing", "reset-" + options.size, "size5", options.style.reset(), Style.TEXT.cls(), - "nulldelimiter", - ]); + "nulldelimiter"])); }; /** @@ -562,18 +561,18 @@ groupTypes.genfrac = function(group, options) { var leftDelim; var rightDelim; if (group.value.leftDelim == null) { - leftDelim = makeNullDelimiter(options); + leftDelim = makeNullDelimiter(options, ["mopen"]); } else { leftDelim = delimiter.customSizedDelim( group.value.leftDelim, delimSize, true, - options.withStyle(style), group.mode); + options.withStyle(style), group.mode, ["mopen"]); } if (group.value.rightDelim == null) { - rightDelim = makeNullDelimiter(options); + rightDelim = makeNullDelimiter(options, ["mclose"]); } else { rightDelim = delimiter.customSizedDelim( group.value.rightDelim, delimSize, true, - options.withStyle(style), group.mode); + options.withStyle(style), group.mode, ["mclose"]); } return makeSpan( @@ -1205,11 +1204,9 @@ groupTypes.delimsizing = function(group, options) { } // Use delimiter.sizedDelim to generate the delimiter. - return makeSpan( - [groupToType[group.value.delimType]], - [delimiter.sizedDelim( - delim, group.value.size, options, group.mode)], - options); + return delimiter.sizedDelim( + delim, group.value.size, options, group.mode, + [groupToType[group.value.delimType]]); }; groupTypes.leftright = function(group, options) { @@ -1236,13 +1233,13 @@ groupTypes.leftright = function(group, options) { var leftDelim; if (group.value.left === ".") { // Empty delimiters in \left and \right make null delimiter spaces. - leftDelim = makeNullDelimiter(options); + leftDelim = makeNullDelimiter(options, ["mopen"]); } else { // Otherwise, use leftRightDelim to generate the correct sized // delimiter. leftDelim = delimiter.leftRightDelim( group.value.left, innerHeight, innerDepth, options, - group.mode); + group.mode, ["mopen"]); } // Add it to the beginning of the expression inner.unshift(leftDelim); @@ -1250,11 +1247,11 @@ groupTypes.leftright = function(group, options) { var rightDelim; // Same for the right delimiter if (group.value.right === ".") { - rightDelim = makeNullDelimiter(options); + rightDelim = makeNullDelimiter(options, ["mclose"]); } else { rightDelim = delimiter.leftRightDelim( group.value.right, innerHeight, innerDepth, options, - group.mode); + group.mode, ["mclose"]); } // Add it to the end of the expression. inner.push(rightDelim); diff --git a/src/delimiter.js b/src/delimiter.js index 3b62621..0dbc8c5 100644 --- a/src/delimiter.js +++ b/src/delimiter.js @@ -56,9 +56,11 @@ var mathrmSize = function(value, size, mode, options) { * Puts a delimiter span in a given style, and adds appropriate height, depth, * and maxFontSizes. */ -var styleWrap = function(delim, toStyle, options) { +var styleWrap = function(delim, toStyle, options, classes) { + classes = classes || []; var span = makeSpan( - ["style-wrap", options.style.reset(), toStyle.cls()], [delim], options); + classes.concat(["style-wrap", options.style.reset(), toStyle.cls()]), + [delim], options); var multiplier = toStyle.sizeMultiplier / options.style.sizeMultiplier; @@ -74,10 +76,10 @@ var styleWrap = function(delim, toStyle, options) { * font, but is restyled to either be in textstyle, scriptstyle, or * scriptscriptstyle. */ -var makeSmallDelim = function(delim, style, center, options, mode) { +var makeSmallDelim = function(delim, style, center, options, mode, classes) { var text = buildCommon.makeSymbol(delim, "Main-Regular", mode, options); - var span = styleWrap(text, style, options); + var span = styleWrap(text, style, options, classes); if (center) { var shift = @@ -96,13 +98,12 @@ var makeSmallDelim = function(delim, style, center, options, mode) { * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2, * Size3, or Size4 fonts. It is always rendered in textstyle. */ -var makeLargeDelim = function(delim, size, center, options, mode) { +var makeLargeDelim = function(delim, size, center, options, mode, classes) { var inner = mathrmSize(delim, size, mode, options); var span = styleWrap( - makeSpan(["delimsizing", "size" + size], - [inner], options), - Style.TEXT, options); + makeSpan(["delimsizing", "size" + size], [inner], options), + Style.TEXT, options, classes); if (center) { var shift = (1 - options.style.sizeMultiplier) * @@ -142,7 +143,8 @@ var makeInner = function(symbol, font, mode) { * Make a stacked delimiter out of a given delimiter, with the total height at * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook. */ -var makeStackedDelim = function(delim, heightTotal, center, options, mode) { +var makeStackedDelim = function(delim, heightTotal, center, options, mode, + classes) { // There are four parts, the top, an optional middle, a repeated part, and a // bottom. var top; @@ -320,7 +322,7 @@ var makeStackedDelim = function(delim, heightTotal, center, options, mode) { return styleWrap( makeSpan(["delimsizing", "mult"], [inner], options), - Style.TEXT, options); + Style.TEXT, options, classes); }; // There are three kinds of delimiters, delimiters that stack when they become @@ -354,7 +356,7 @@ var sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0]; /** * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4. */ -var makeSizedDelim = function(delim, size, options, mode) { +var makeSizedDelim = function(delim, size, options, mode, classes) { // < and > turn into \langle and \rangle in delimiters if (delim === "<" || delim === "\\lt") { delim = "\\langle"; @@ -365,10 +367,10 @@ var makeSizedDelim = function(delim, size, options, mode) { // Sized delimiters are never centered. if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) { - return makeLargeDelim(delim, size, false, options, mode); + return makeLargeDelim(delim, size, false, options, mode, classes); } else if (utils.contains(stackAlwaysDelimiters, delim)) { return makeStackedDelim( - delim, sizeToMaxHeight[size], false, options, mode); + delim, sizeToMaxHeight[size], false, options, mode, classes); } else { throw new ParseError("Illegal delimiter: '" + delim + "'"); } @@ -471,7 +473,8 @@ var traverseSequence = function(delim, height, sequence, options) { * Make a delimiter of a given height+depth, with optional centering. Here, we * traverse the sequences, and create a delimiter that the sequence tells us to. */ -var makeCustomSizedDelim = function(delim, height, center, options, mode) { +var makeCustomSizedDelim = function(delim, height, center, options, mode, + classes) { if (delim === "<" || delim === "\\lt") { delim = "\\langle"; } else if (delim === ">" || delim === "\\gt") { @@ -494,11 +497,13 @@ var makeCustomSizedDelim = function(delim, height, center, options, mode) { // Depending on the sequence element we decided on, call the appropriate // function. if (delimType.type === "small") { - return makeSmallDelim(delim, delimType.style, center, options, mode); + return makeSmallDelim(delim, delimType.style, center, options, mode, + classes); } else if (delimType.type === "large") { - return makeLargeDelim(delim, delimType.size, center, options, mode); + return makeLargeDelim(delim, delimType.size, center, options, mode, + classes); } else if (delimType.type === "stack") { - return makeStackedDelim(delim, height, center, options, mode); + return makeStackedDelim(delim, height, center, options, mode, classes); } }; @@ -506,7 +511,8 @@ var makeCustomSizedDelim = function(delim, height, center, options, mode) { * Make a delimiter for use with `\left` and `\right`, given a height and depth * of an expression that the delimiters surround. */ -var makeLeftRightDelim = function(delim, height, depth, options, mode) { +var makeLeftRightDelim = function(delim, height, depth, options, mode, + classes) { // We always center \left/\right delimiters, so the axis is always shifted var axisHeight = options.style.metrics.axisHeight * options.style.sizeMultiplier; @@ -533,7 +539,8 @@ var makeLeftRightDelim = function(delim, height, depth, options, mode) { // Finally, we defer to `makeCustomSizedDelim` with our calculated total // height - return makeCustomSizedDelim(delim, totalHeight, true, options, mode); + return makeCustomSizedDelim(delim, totalHeight, true, options, mode, + classes); }; module.exports = { diff --git a/test/screenshotter/images/BinCancellation-chrome.png b/test/screenshotter/images/BinCancellation-chrome.png index 7f50bed53a0f425238bdd0f64174b545e7b5d6fb..749e2bd13bb4d4c1e33f3adfc1db58c46608f686 100644 GIT binary patch literal 10141 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 KD!l&a`F{a^?g4H9 literal 7526 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 U9fb0`F+e*m>KW;lYTMuYAEzH2=Kufz diff --git a/test/screenshotter/images/BinCancellation-firefox.png b/test/screenshotter/images/BinCancellation-firefox.png index 7376557d295f726ef65fe44500f6b040309675a6..021274ecf423d4dcc1fcce8faf831391723fec43 100644 GIT binary patch literal 9161 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 Date: Sun, 27 Nov 2016 11:20:26 -0500 Subject: [PATCH 04/12] Calculate math classes from outputs, not inputs. It's important to get spacing right that the domTree classes reflect math atom types. So use those types exclusively, rather than repeating the type mapping twice (once when building spans, once in getTypeOfGroup). * Remove getTypeOfGroup. * Add getTypeOfDomTree (simpler). * Adjust supsub type calculation. * Adjust delimsizing internals. --- src/buildHTML.js | 77 ++++++++++------------------------------------ src/buildMathML.js | 6 ++-- src/functions.js | 34 ++++++++++---------- test/katex-spec.js | 4 +-- 4 files changed, 38 insertions(+), 83 deletions(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 15859ea..d30bbde 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -105,66 +105,20 @@ var buildExpression = function(expression, options, isRealGroup) { return groups; }; -// List of types used by getTypeOfGroup, -// see https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types -var groupToType = { - mathord: "mord", - textord: "mord", - bin: "mbin", - rel: "mrel", - text: "mord", - open: "mopen", - close: "mclose", - inner: "minner", - genfrac: "mord", - array: "mord", - spacing: "mord", - punct: "mpunct", - ordgroup: "mord", - op: "mop", - katex: "mord", - overline: "mord", - underline: "mord", - rule: "mord", - leftright: "minner", - sqrt: "mord", - accent: "mord", - llap: "mord", - rlap: "mord", -}; - -/** - * Gets the final math type of an expression, given its group type. This type is - * used to determine spacing between elements, and affects bin elements by - * causing them to change depending on what types are around them. This type - * must be attached to the outermost node of an element as a CSS class so that - * spacing with its surrounding elements works correctly. - * - * Some elements can be mapped one-to-one from group type to math type, and - * those are listed in the `groupToType` table. - * - * Others (usually elements that wrap around other elements) often have - * recursive definitions, and thus call `getTypeOfGroup` on their inner - * elements. - */ -var getTypeOfGroup = function(group) { - if (group == null) { - // Like when typesetting $^3$ - return groupToType.mathord; - } else if (group.type === "supsub") { - return getTypeOfGroup(group.value.base); - } else if (group.type === "color" || group.type === "sizing" - || group.type === "styling") { - // Return type of rightmost element of group. - var atoms = group.value.value; - return getTypeOfGroup(atoms[atoms.length - 1]); - } else if (group.type === "font") { - return getTypeOfGroup(group.value.body); - } else if (group.type === "delimsizing") { - return groupToType[group.value.delimType]; +// Return math atom class (mclass) of a domTree. +var getTypeOfDomTree = function(node) { + if (node instanceof domTree.documentFragment) { + if (node.children.length) { + return getTypeOfDomTree( + node.children[node.children.length - 1]); + } } else { - return groupToType[group.type]; + if (utils.contains(["mord", "mop", "mbin", "mrel", "mopen", "mclose", + "mpunct", "minner"], node.classes[0])) { + return node.classes[0]; + } } + return null; }; /** @@ -437,7 +391,8 @@ groupTypes.supsub = function(group, options) { } // We ensure to wrap the supsub vlist in a span.msupsub to reset text-align - return makeSpan([getTypeOfGroup(group.value.base)], + var mclass = getTypeOfDomTree(base) || "mord"; + return makeSpan([mclass], [base, makeSpan(["msupsub"], [supsub])], options); }; @@ -1200,13 +1155,13 @@ groupTypes.delimsizing = function(group, options) { if (delim === ".") { // Empty delimiters still count as elements, even though they don't // show anything. - return makeSpan([groupToType[group.value.delimType]]); + return makeSpan([group.value.mclass]); } // Use delimiter.sizedDelim to generate the delimiter. return delimiter.sizedDelim( delim, group.value.size, options, group.mode, - [groupToType[group.value.delimType]]); + [group.value.mclass]); }; groupTypes.leftright = function(group, options) { diff --git a/src/buildMathML.js b/src/buildMathML.js index 4a75d92..5b10fac 100644 --- a/src/buildMathML.js +++ b/src/buildMathML.js @@ -358,10 +358,10 @@ groupTypes.delimsizing = function(group) { var node = new mathMLTree.MathNode("mo", children); - if (group.value.delimType === "open" || - group.value.delimType === "close") { + if (group.value.mclass === "mopen" || + group.value.mclass === "mclose") { // Only some of the delimsizing functions act as fences, and they - // return "open" or "close" delimTypes. + // return "mopen" or "mclose" mclass. node.setAttribute("fence", "true"); } else { // Explicitly disable fencing if it's not a fence, to override the diff --git a/src/functions.js b/src/functions.js index 7888242..dc8a392 100644 --- a/src/functions.js +++ b/src/functions.js @@ -238,22 +238,22 @@ defineFunction("\\phantom", { // Extra data needed for the delimiter handler down below var delimiterSizes = { - "\\bigl" : {type: "open", size: 1}, - "\\Bigl" : {type: "open", size: 2}, - "\\biggl": {type: "open", size: 3}, - "\\Biggl": {type: "open", size: 4}, - "\\bigr" : {type: "close", size: 1}, - "\\Bigr" : {type: "close", size: 2}, - "\\biggr": {type: "close", size: 3}, - "\\Biggr": {type: "close", size: 4}, - "\\bigm" : {type: "rel", size: 1}, - "\\Bigm" : {type: "rel", size: 2}, - "\\biggm": {type: "rel", size: 3}, - "\\Biggm": {type: "rel", size: 4}, - "\\big" : {type: "textord", size: 1}, - "\\Big" : {type: "textord", size: 2}, - "\\bigg" : {type: "textord", size: 3}, - "\\Bigg" : {type: "textord", size: 4}, + "\\bigl" : {mclass: "mopen", size: 1}, + "\\Bigl" : {mclass: "mopen", size: 2}, + "\\biggl": {mclass: "mopen", size: 3}, + "\\Biggl": {mclass: "mopen", size: 4}, + "\\bigr" : {mclass: "mclose", size: 1}, + "\\Bigr" : {mclass: "mclose", size: 2}, + "\\biggr": {mclass: "mclose", size: 3}, + "\\Biggr": {mclass: "mclose", size: 4}, + "\\bigm" : {mclass: "mrel", size: 1}, + "\\Bigm" : {mclass: "mrel", size: 2}, + "\\biggm": {mclass: "mrel", size: 3}, + "\\Biggm": {mclass: "mrel", size: 4}, + "\\big" : {mclass: "mord", size: 1}, + "\\Big" : {mclass: "mord", size: 2}, + "\\bigg" : {mclass: "mord", size: 3}, + "\\Bigg" : {mclass: "mord", size: 4}, }; var delimiters = [ @@ -472,7 +472,7 @@ defineFunction([ return { type: "delimsizing", size: delimiterSizes[context.funcName].size, - delimType: delimiterSizes[context.funcName].type, + mclass: delimiterSizes[context.funcName].mclass, value: delim.value, }; } diff --git a/test/katex-spec.js b/test/katex-spec.js index 122c8db..b2fa955 100644 --- a/test/katex-spec.js +++ b/test/katex-spec.js @@ -883,8 +883,8 @@ describe("A delimiter sizing parser", function() { var leftParse = getParsed(normalDelim)[0]; var rightParse = getParsed(bigDelim)[0]; - expect(leftParse.value.delimType).toEqual("open"); - expect(rightParse.value.delimType).toEqual("close"); + expect(leftParse.value.mclass).toEqual("mopen"); + expect(rightParse.value.mclass).toEqual("mclose"); }); it("should parse the correct size delimiter", function() { From 6bb62b11b4eadf8039fa98b75e642e6fe47da2fd Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Wed, 23 Nov 2016 08:52:10 -0500 Subject: [PATCH 05/12] Support \mathop, \mathrel, \mathbin, \mathpunct, etc. class commands. These commands set their arguments in a given TeX math class. Use the existing "op" type for \mathop (to support \limits); introduce a new "mclass" type for the other classes. Fixes #482. Tests borrowed from #485 (cbreeden). --- src/buildHTML.js | 11 +++ src/buildMathML.js | 11 ++- src/functions.js | 78 ++++++++++-------- test/screenshotter/images/MathAtom-chrome.png | Bin 0 -> 7736 bytes .../screenshotter/images/MathAtom-firefox.png | Bin 0 -> 7720 bytes .../screenshotter/images/MathAtom2-chrome.png | Bin 0 -> 7893 bytes .../images/MathAtom2-firefox.png | Bin 0 -> 7846 bytes test/screenshotter/ss_data.yaml | 2 + 8 files changed, 65 insertions(+), 37 deletions(-) create mode 100644 test/screenshotter/images/MathAtom-chrome.png create mode 100644 test/screenshotter/images/MathAtom-firefox.png create mode 100644 test/screenshotter/images/MathAtom2-chrome.png create mode 100644 test/screenshotter/images/MathAtom2-firefox.png diff --git a/src/buildHTML.js b/src/buildHTML.js index d30bbde..253b0eb 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -786,6 +786,11 @@ groupTypes.op = function(group, options) { // The slant of the symbol is just its italic correction. slant = base.italic; + } else if (group.value.value) { + // If this is a list, compose that list. + var inner = buildExpression(group.value.value, options, true); + + base = makeSpan(["mop"], inner, options); } else { // Otherwise, this is a text operator. Build the text from the // operator's name. @@ -1399,6 +1404,12 @@ groupTypes.phantom = function(group, options) { return new buildCommon.makeFragment(elements); }; +groupTypes.mclass = function(group, options) { + var elements = buildExpression(group.value.value, options, true); + + return makeSpan([group.value.mclass], elements, options); +}; + /** * buildGroup is the function that takes a group and calls the correct groupType * function for it. It also handles the interaction of size and style changes diff --git a/src/buildMathML.js b/src/buildMathML.js index 5b10fac..11a088f 100644 --- a/src/buildMathML.js +++ b/src/buildMathML.js @@ -316,7 +316,7 @@ groupTypes.spacing = function(group) { return node; }; -groupTypes.op = function(group) { +groupTypes.op = function(group, options) { var node; // TODO(emily): handle big operators using the `largeop` attribute @@ -325,6 +325,10 @@ groupTypes.op = function(group) { // This is a symbol. Just add the symbol. node = new mathMLTree.MathNode( "mo", [makeText(group.value.body, group.mode)]); + } else if (group.value.value) { + // This is an operator with children. Add them. + node = new mathMLTree.MathNode( + "mo", buildExpression(group.value.value, options)); } else { // This is a text operator. Add all of the characters from the // operator's name. @@ -475,6 +479,11 @@ groupTypes.phantom = function(group, options) { return new mathMLTree.MathNode("mphantom", inner); }; +groupTypes.mclass = function(group, options) { + var inner = buildExpression(group.value.value, options); + return new mathMLTree.MathNode("mstyle", inner); +}; + /** * Takes a list of nodes, builds them, and returns a list of the generated * MathML nodes. A little simpler than the HTML version because we don't do any diff --git a/src/functions.js b/src/functions.js index dc8a392..deaf4f7 100644 --- a/src/functions.js +++ b/src/functions.js @@ -100,6 +100,16 @@ function defineFunction(names, props, handler) { } } +// Since the corresponding buildHTML/buildMathML function expects a +// list of elements, we normalize for different kinds of arguments +var ordargument = function(arg) { + if (arg.type === "ordgroup") { + return arg.value; + } else { + return [arg]; + } +}; + // A normal square root defineFunction("\\sqrt", { numArgs: 1, @@ -121,19 +131,9 @@ defineFunction("\\text", { greediness: 2, }, function(context, args) { var body = args[0]; - // Since the corresponding buildHTML/buildMathML function expects a - // list of elements, we normalize for different kinds of arguments - // TODO(emily): maybe this should be done somewhere else - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - return { type: "text", - body: inner, + body: ordargument(body), }; }); @@ -146,18 +146,10 @@ defineFunction("\\color", { }, function(context, args) { var color = args[0]; var body = args[1]; - // Normalize the different kinds of bodies (see \text above) - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - return { type: "color", color: color.value, - value: inner, + value: ordargument(body), }; }); @@ -223,16 +215,24 @@ defineFunction("\\phantom", { numArgs: 1, }, function(context, args) { var body = args[0]; - var inner; - if (body.type === "ordgroup") { - inner = body.value; - } else { - inner = [body]; - } - return { type: "phantom", - value: inner, + value: ordargument(body), + }; +}); + +// Math class commands except \mathop +defineFunction([ + "\\mathord", "\\mathbin", "\\mathrel", "\\mathopen", + "\\mathclose", "\\mathpunct", "\\mathinner", +], { + numArgs: 1, +}, function(context, args) { + var body = args[0]; + return { + type: "mclass", + mclass: "m" + context.funcName.substr(5), + value: ordargument(body), }; }); @@ -298,17 +298,10 @@ defineFunction([ greediness: 3, }, function(context, args) { var body = args[0]; - var atoms; - if (body.type === "ordgroup") { - atoms = body.value; - } else { - atoms = [body]; - } - return { type: "color", color: "katex-" + context.funcName.slice(1), - value: atoms, + value: ordargument(body), }; }); @@ -378,6 +371,19 @@ defineFunction([ }; }); +// \mathop class command +defineFunction("\\mathop", { + numArgs: 1, +}, function(context, args) { + var body = args[0]; + return { + type: "op", + limits: false, + symbol: false, + value: ordargument(body), + }; +}); + // Fractions defineFunction([ "\\dfrac", "\\frac", "\\tfrac", diff --git a/test/screenshotter/images/MathAtom-chrome.png b/test/screenshotter/images/MathAtom-chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..175c72a74bda2bba51c82e6c350ffdd14df96590 GIT binary patch literal 7736 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 AQ2+n{ literal 0 HcmV?d00001 diff --git a/test/screenshotter/images/MathAtom-firefox.png b/test/screenshotter/images/MathAtom-firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..d451d16cc8a5c66efd4b2b9c00ca4163b5f24582 GIT binary patch literal 7720 zcmeHMX;_ojw%!30#R9E@Q4wNKk3|bYEiwo~sMb=Y0(F1_LZGNr1Ob^zNK&oP;($dV zR^~b&LI}tZA&>xCDFgxv1PFv6vm_8m%tS(RH{NsZ|8shO^5@I&eBa(H?|R>Nt+n&3 zmxr6a-Znh|fc}whzB&$o4t%Q()@i{P+kwk|0GJAoeD&qY#N0V9;Z|Q9R~AhwIJo2T z4eej_b_aF4Ze{g;WwZa7ZI<2HV}3JtOG=7PXP?hDO6MkLBqWC>e3_0OGdNc6R9C$* zVx#JnasSQ)YP7lf*@uLvackGjicTvUGvyL(CYIHb9}wS#2+U|*&=ug(xw8E{f=d@y z?94k9j{sn=L5T!LsZ(IQ@tDRQIV~ zO;3b`)WwbJR8h}4KT|ZDQyKO261KJ$aBW>jtgR7nB!8W7(sNRa@%4CX!bLghMk%`u z?ryL}t5DxRp?X*~bd2n;;tRQQd5=>dIg&Fn@Vd9*!Z>@X*xObuDC(q{jJ6bz2|pY@ zM0Q&Xi0SKy$M?|UmuKt=+-1+k8vI)^c6gA-h#i_=`z%Phgd7?0?fe)43S)F!OCDNm z^P@@<(Da(hlCz#^5!_do)MX3?a)zOz-00iB5dcRwaA!%#7^%kkYvwd{!E-OCoK2G^ zt?i63h6|e09{|vV_XKz91uVhw zO%}oF`OQYX7pNzB)Kf7Y0L-cnHkE@{u!+_}tBAA1tjq;bQ zNcA+0c#cK5z`R*Y(Y`o5cw9ugj7<6PLjaV{i0;(68+*Fwub+t|d7an>kk~&~T#FQ{ zLx;uQ#=1Iy=&=#xRW5ZtqVPnr934W0bcw{4FQNg^1&Hoo|M+SnhElVFp=eEl)><&y zv;#PnNnD!A1gpkIH9AmIMfl%@gsA7x+tPV5&D0}j%ubjkB?{4v7&7sX=Y1Of(wfI% zcT0735D*e~5ZfdqEzjL1&?RDhzP)mAWjiy3S4nm@gQwsR`fR)4Yyd!PDtO#0rp$$N zm%EaGj3I|2-iMpD)R##nBPyoIkNmnI8T0-LK9lg~mHc7?OErC?#tiDo(G#4UO|K&~ zg3+JQ5v7tH0CXp56&^=&k7L#mi@obqNI=xS3m$(HBQ9re0D%F*6av9-~D|=tW6+m32kAbPJtvVh5||X zmsT8pT$WN9d3F(;r0G2Sv+Z}f@X{)jM&4@fnXjVD8Y2Y*m7jcleanHwr~;RiuWxMY z8x}l)B;BDkI@;Ua{rQjGg@-scu`}I%o_fIb)OuoiIESrb_}Cq&{G(`rIzWwH-sQ^vv5HDUsCg^E~lU%t5iOlRh1hu%pEyFCp3=o!j3c{RC0XVf2a2CT- zPAtwdBwe%ihL5!phwkh?aWr0YWvzZ#nBzh|GzH~BP#pqwAOhcu**{Su@iH1OU?V8b zy>yhErUeQ)I<87J|MHDLX&NZo@As9&{B5*1AJt|;@1i#0WZ2;(3@-pK$t7ou9~l#&KH5irMJcJH-3L3 zGB7c?ZJsdGT~uSH2Z)>xfi9ymq%~WoX=`Zicl;s%9_u5bZef=t{Y;)FhEJxl->-KF zY@fg@n3!zcCUF-U!>{|-jkM9r8z4fTxZNz1cmdFR9XR}TW2?=he*zX-qw+Ic16(^} zeL*<4UZPeC3moHSl{}65{!Paxkv#hIG()sv;`VgM?^S1++2zSbjuSQgfffW!7X>dV zWeYd6m=RQN{A@|FS<1UtX=ceYM1(dZQXJbi)R=WYM@JiMFRR}H*c1#w(&vMUe(}*H zw$uCS^5oc`*Ah^Su)Zfbk#t2pzudnze2|WI#74`w38dU>`Oesj0~JMH7i`XTY}xl? zcfQBqv*_{7R;Rz`FCxH9vT_?p;Kude`uI?~>}FhC9HjAGhv>1<<}2424p^yxJ&u*l zbC>=!b56GWzM{|~e@%pv(@*z)T7_PGv592q`^BY+zs9W1#I^JkWp-}s+n!=-b#?F3 z5h&9vM-<4hi&#=kqcII<1^pCWpAV)nSu)FQwG3={Rxxfl;w6O-B(@d1NJ`2RH&>HY z1^_}O>?`%*^OQ27hAYI&215%XoD-GOxddK{>^C2@F zfF^yo++jg!c+KrfR;v_P&N5-#gg3y%V(DrL1&P8<{N}cTIjwjND0Fn(4oZC}E>m|y z((QlI)-}LQ{T?c%&tiGXz#OMn=J|<#RNeNOr7P!$mLHLp+pll6sh9jp5{xJ0?2nlm zL0b7$KR(k2xiUn)uLZnpO*atdhNzzR_LZDTNM!DzR?`+BsN~X83*P|>hVk;{OO{7q z2?aN45l|f>{6U!9Pg_~9!L76p;>ewEskzXfoiQ601c+A-wQ7wvh*=hc+wcolP-RgO zZRTA@xj0dqDeBpCGpwMp5%<-3^1GQ=`z0h-lV3c#`oLV+GZK5 zdQW)9@u~qhc}!Pp^e0`jT|A`A(#(BhD{J-1Zf__7nUk%}98ETYWqPvRts76aaqP55 zZ#vD-O#KFZF7>E(ka()o4V4nx_9*K0gCoXPn93gxEAlVB`r~k(X-@pNIdNBF8iCPKuk)be?%w;j6Aq!QTs@Koa?ILysMxcB>`#r459jQS9($3ARFz_u z!>(Q+Sq1pv%e$aVFPd%v#M#HY0GsS@A2r&PX&NjXY2@?y7Pz}HUCz`qiZqvZMJZcy z8h7WCAm{HijK)l}$We-hByqd;=(`?IA^Ue2_04px!cLTi09~j|75wu0))P-vPfE*Y z1s&DnQ2o|uj5R}b=_=EjCU`2E%);STYB)oxU070b{>3jJO**x-Q}iOl+0_iqvQQRr zN%|P4i-t;SClMw-LG4CkkQiLFO#cJm+E?a{Go)>b?Nk6edJQR^@r{D^5t=qX5gIAm_Bl>2de2T+`H4BcbaahYC+Py z6x!e3{k-UmB7rW>OUbDV*=+fJH!VSEC#$K6>$L5UZ58ifoC|5o+-Y3iIQyiueHtgk z@`g-f;7Xg|N@c!P?Fm0apMAVQz%cMBiZx&Z(#mqb0LhU5=^L778#miKFAwjIVeKz2 ztrZ0D<>MJbk-7ipIQc@R?h{pN=ZcFJR7J(thrpIG?2kNf*FG{(aWe|KjImk>6%^UV zfusx{epV^J3#HzCMVE@FI*n`*uV}L3xdA`j6zcxrjIy|Z+ipmu!P2;AXe9Lz#iS>r;>26qD` zn@X=Kj(oMgK+zGJj#+@!*Zb)cIvp<)2FKH8{OkqLWsce~Kl6*uM z&8RMVS4NtXu%T+AVsFUHYCOML7bSSHsqjUXPoS^rvZ0AxS>~xp8P?4H;&ApJ|9`Io z9K;zGOl*aguy{$$l9`xf@Gi+Iywl?rOHmB;`p{11>S^JuLJkgCxIn$ca zAi0K7jUj1*^^5Vorg6RB&E-=d&?tgx@y|3IL5@pqyUzOz{X@_YZXLwc&Sd5FdXg1SF%=$H8h;~ezCg* z@*2r{HBV|x5RUX?2q|y&)!=2YL!-TW?e2c@)`8%bpY_nZ^{{RCd5G|edaiFTP`|~O zJ~wcJIriL+#^V;9)Vd#R@xomzg=p4Jkihd)eJ9Am1WlEf7I&dR&hKm5Ss?HoSj^aF z8}`?&k9USXh+3jA&qcystC9VQHt3#n{1B|kfRzZgI|hSSV7uJo;Y3!oD(puRL)wH0 zKZ#&a+=^C5_d6qxHmXF-;sShf4yv_xrCpoOjbWu5TZB39h7R+(5)4SBw#^JhXC%u- zDcI!UP(;wE$!H%d)$&uO)ev(T;az@uf6CIkBey@*H+8J85TYESM$KIoe{C1;>Yziz zM3&c0-800EYQrC5acAI78p;K)lJ7q8Xc$fu{C)~W5(_KnsWfdkx;R9^aq|CRPXC)@ z{_5lZ^$E!;bgR()7YA#rv{|LiDsBG$0rjemR&}(hqg5UKojq>G-T@uP%y;tRMoiy6 z&`jrg5V~UUl_k00!2^j_P1*8`cV_crOtp+dibk4QMBm<7UU_vT#oswIG`q1Gi=4tv zO&LrgXDB424Hp;J9ID(5I?G)Rs2UJZ2LQYCOaO-{fRO!PLdAEG?AlNhmBI8t3jpj{ zfD_#l?EimJ0`NTzd24v>Nh`SUhbXA;&0T<>;9WeUyWJ_Oj~9BVE|?oH!2(%&;K<`) zxZQ_p5(@Axdd>WSHxkenaTwr{e2*lTU3VP1LGVS$k8Cl^cFoXVM||2DPZ4w+l3Dac z_`g#IO7Lo```;3XwgQg2e~}~|-sOYEN{Y*2OdI5-oVu-1E4_=xWSvf3)U@b7i69VF^ zO9Z5?`nBWczJ8`pHhC$i3C^R0zI?hhl~euHk2oh@fNzVlWHm1HXUR3G0|qWQ6ncGJ zpA6$fVtYio$vL6B_t_U>Z$l^o@UY(&Kau?w^xH~ywwT+9?GK`W;;1AGl{i!4u)X(!T7ya1KLyC$McW=K15V~2oRrLovPn?CW1I4)y&5B zeX(*ez)v_I1=RlQ$80OJ3CRcx#iLFhtdR8Gw759ir7wo(b~exzWZMd?G1K z`DK@iWI$xM6tyVhCO^ZF!d}u=wYLi_irE2Abk>;#&wBgKSjH{9v40OaW)??CY@LN@ zHiw5Rv%UAZ_S4F1t^6A=iuLotF9C$vNl-(-K}m$WRH9@XYW<>42(HCaHN9zo^<4D+ zdv<;#`$b>9zv9Po=NGx#(_?@T=rOYRamL}aklA^GsYu~f#tzjx97fm;Y-XjO9$;eT&MhGl zTF(0I4VUKGZ&2~;E)2o#=d!TCSR7#r;+%1%DPK^+F_igFqdxOy!=c+dnmqXMe)Hse zgr%3@cS7>x(&G|*M{ub=vn(#r1NoiwbcbuH&8oOwRn8n;`PEX$SZtdu7na60tEpPH zj@q9br9^*RC#h@)(rULXR(F-qj6K?#6yuAq+#1&|S z;HS?%zJZ#wA9u-u-;;&;a?Wg$A+OBr_M}cA-d(>5#PxV8IsM7iLcSPfu5(M9Y?=A9 zk)_I7oZu(UfrMi(i4WqicTs@ zV6jvh!FtWym!>6z+7aB!W49!)BNe<&y(q`wJLWs{K4|6VH8EPui-msxeFZN|=FQN) zyFv(8N|}3x?2dH(Sc@MLE#`d?Qni(BY+~a)VrB+i336KUr$wo#4B_ma>rg(SeD}iWpD# z-!_B2JToIgL$p7?#u(Nlh_}{atf=)^%nz`bp!X{KThq2d^9_+;_lf4nnK?!+F?^`M zq{SJ9{(>3av2hGbw3|~@rx`F%{a_^tlh#<=5GVilrB=;l<5R+{=12<{fa&RL z3t1Opoock*s#vzQb5lLRCIkQEpyY3t2D%JlKC$1!THWk2rL|YaAotYZB;2|-weR{` z3~#Grem{CD*ubz&h6=Lv=~ZICRD)KR zeOLX8_=tg{{8xo*(Z778hi=17Wnn$bp(sHGiAA|P_P}~BdvxWS+dPnR4(UPRZiIjG z4ZwAYtNq$D6G{LdEI(Wi-glaU53GaHXcht$R@;%u)t|@;V!Njc2LNCwiJ2vHSz*3zA2n)enW!bV}leQMper|Q#7qSC; zHB}z+BlM2C;LqLg2f^&e^bbxpDr0|uub!(y`70n4s)yjHAu!l|;*H1!S&dyNh10oB z(8s+^gqm9s$+ReC0Z7MjX*O^Z3Rg_v4&oE}Mwyn@Kqs^>qJU`SHM2(Y!?U<%>k9tF z*+X&~99gbwRRQ`jT$&-e#@z-AiIse?0;6NUmywFUV#1A@Qy8jiOy!gNeixQ@Me2){ z9d5XrY_Womb4rvtfl>v}AkKJO^)=|BDmPSv4}SPo>xCI(vBz@nlT~++?g9;$yNkup zR}X(SPR(dCA$Y`HfQ^SaA)$!?^>X;?Rzn>vuSrjfr)u@isoxvn_? zIAvC+NCIt!Iq8ysvbbOcQS5L&{d~%j^5oUTUv1Z+U$#MhxS(X4n}<;x2(Aw|faLq2 zPQYnB%!(UyYp`{1t&x94fOr^Y;zhLqMhRb@{yZ;ge9}SV+>M2u$zEXWKHF^m5fN`( z2b!k^a^89*du@w#a+T{oKn6{AF7PI4fPZB@_qEazW$m-Z0S&_5(0rr#W9{2Prx7mD zfH@(5DH075dnvhkRR-<%BYUn^H>IKDYc{K|SzUh&v7%oi*{xSItxpK3FLJT2;|mp= zeb*ZfH1aUxJ~;irsc!r%U$k5rgTxL!Dx}<~5#i|+q7oh8hN?&?+VfDXysF<{Pc~3u zpJ_I@&^cl|p@siq%Q@Kv*;&pb`rGOQn4I~tWXgv39Qm;hcA9vRG7;=UzXNTn8e8CJ z+$=c6CzsSHYptBbhk%Ubwpk$`(YErf{7FeiB-DQEw_<`#Lm)@Rqg|PBscyX+(YeV` z!ZYWbB`;fVu&5g66m2|bKEhB%q$srh`+Z*CK}MP8*Q4pt9^0@U4^T zYjPcCQvMN&zMWA)u z6NMOu8EY<~xUr@TF~&j9T+R@-Ec@|Oj`8Hkk%s)yl5nwm1oZ;L&5Fi**YliSpSb16yH*?hwi5{hMb?)M^l}pjnj_i;a$1x(pAe=T49*{!W3di#_A|7 zeum~uad>PmN`FLV=ugmD>j# zkoIhic4;6`_T!OueEmz@=dV^ir274cKRkF%RQ*xrIJH%pBqu_9Kpr0~<@yxTR`Ho> zQTje$o2mhQMoaHraw%`Dv|q%NX5h}*`0%|0cJ5E5?i^xD%4L?Vn_W+-GJ^>+18z1o zjrQZ)_e9$EBk=|~2fw~7mSBE#EAHyy4dKJ2Rl9UWBI%>|a6znnGnz6_z$6#VeJs!%kw?-L$wpb86|8Cvr?BxU}-)+A+)MRA?GW=!AC=Cbz2 zDBOnrZpJ)@o$Sg8O^N%3!-U)^nqd17`-Z#SLJ5%Dpga>fP|;xcSKcfomVY;~&oM)6 zKRwdIg5&KwRBjFa8}-j(al6EhzIioumTwYg_z*f!MC&h&euar^`&Mjvt;XrldI2Ui z>+~SdV%{Al*|qj_qm)dY--jtQ;KZ6QCZXfq*U(h_m)S~))kh~YO_ic}pk-|X7oLT; z5uu{Jv@!)skJ*mZx1J_4nl~>>{OK^&0fPP6S9@N<7T~9dX5_v$kB6J&gp57O>G)B^ z@RsRaptC>zMI20Nhfzc~YDrOKgMnIGSByHLIZVXudiUXJ16DL)`XtYCRkg|_6HY2{>fR;X3Ntg;o(wBaLSL{%o2lD zSqUptbNXVH8^;Ftl%L(nTPO@+`efU=(J^a5_I%$M0SKlYScH4LqJe-1fueuvi zGZqEvd!WlK+i&U`TE>s?H=Pa#L?8NZ2_u5?Z2*lHx1I~NdE(Ms5fS@uwQQ8t!VRgl z1_NQJ`1^*FVSjQTIf@UuDZ4J!I@Srw1{MaysoC*r&dD?V3ABeoy9e6~)qPr;9qF@s zb~ys%m{xc4t5T~Cq@ChYV~vWBu<^J&em3+KuZX7H2y?|YFuJ>g*MNE1IX1OKd@V}b zTj@~_Rz&yMVbffy#|eeDQ&ai3iV1J67i6Nk$2Lf#+=i3GGRKo}EEA1CZ{kfDNT6*z-ebLA@=B%-uYk-D`xJ7iU@PNW1!W!bcI{gzXwrzzS0JaEaF;H8Z! zRY|UsYZ#e|WQQJ*(P{H$Fr0A6-hK*AW%3jIBzep}i-l$qtl<3$7`e6JJ&?sK5RHJT*~QR6ZRRShjNBQOSpPVzYRq{<0Uju*(w^yx}xpmL?O9J|?p{2%NsOE7|@=Q3`A$ zjCr9zikNmyjF)VPLh-kGRFyZ4oKLIFMm4?aVQw3ZxMe4=hTt=YelcRz_%ox{maO9E zX!3T>`}a(80d_G^xtaAKVvL?Zxyg_q!&xrY^#V8HzwTo6DYQd}CJck6VvTuj4v8Gl zPLtd=^cNS>!MG7m1i+FRmw>H%Y!LT~aIw~e2?j+miujD?1tmE(UwzW74N|QGKil*T z&>pF0HLmCdSa`?Rs?^*KkMWMDA|Fe0T@VTiY7f}ZYu6>XtUGQzYrBc4y&?~EFb4(e zH+15gGrA`7sS(BdGh}Xp@P>GUVnFu^l1nFr)wtmsaFchlelWl?!sAUtlX$aA)L_K3 z`nenj9iM@fL7sUH1frN!A&knkA=t9&?g zub~OL)U|J0Ea!p|v_jbDd>vF7kC&Q70;jKC1xU)I`rc+W%8jAoPpX@3_Dxa=ZA~zP zlmQYOMIX%fhoo`NVW9q;fR77z#bDsb``&eVF=;hywaO21ZZ5FFY=IDg^zx2as8&EJ!XC(GF?Ci0)N-om8Dl2Y_nJQ5F`5Dekj@sHJI z%dT}crtN(fZiZh@njaJ-_+Zsh+^v?W7x0Ciiv}sEIvce=D@?%vu=Zs25df{f5D=J0 znSP2%8W-me)R>)`N}MlEtBJIlt58tzmZ$G8TD{C*M3$eq9Sq!isLl)d)hOBw#p1H# znm4PwJYb$-(>0w>$Q?N@&Kcv>@(eL5Ik9&){5kQjp18Vsd!-I=_3~yQ1eiJjXbOUW zmnZ*)e^2m_1^*i1pBDU+!+(zO&kg^Nxgkx!E#O5ykMrs7|Ng6W?-|}Ly90UgKiX!P Ai~s-t literal 0 HcmV?d00001 diff --git a/test/screenshotter/images/MathAtom2-firefox.png b/test/screenshotter/images/MathAtom2-firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..cc0b69629c87e3e9e81aa72ffb58aff39d544d3b GIT binary patch literal 7846 zcmeHsc{J3~|NeV~k!?hgB~;d|MPyf55`{_>V=P5w8Ic)dFk?%$R4OEfkC5z?ov}~Z zrL2Ro%Q9n~!I+tEpWpBQ@BiO(`sY5cbMHORJ?C}reV+R|H`eB+IUlzeHvj;97S~K} z0Ra2o@Cd;5w*_#6*9QSW(#OK&@|~cM>ys$#@!#QuO>J#yfs3Gz>(Lb43{s0s?vZ^{o4@|EkUntxLQ@BR7=2VqJak(=2!hu?sa`!fy z`cjs2s2QU%+4FsT!DPb^pK`)orbIu#<4o_Av$&+%ykcg_1&>O5?lCr-x(nc}bMAoZ zSNC@~mi7aUL)6DQ!>R{xjA3bh>A=^RY8NM0>n(SU=TW_N=bC45tC$f$|+!uB+y9V4$0Fw^;J~|*E z6Ba#*P(dqCw-xSUdT@@OnJ(9*#~NoFdU+>omOZe7Z)Jh*t89KA`T%Zw#C>{W$)-^b z;iR5n^r^%z#z;43L%yzmy3Z~e4pz{)$5y5)160m}QYX@cx>qK-G5lxU$~B1I2n)t- zd{~*b?pKmFAc?VegZJ@V5&27f<21;DC98d@;+uy2``qf_x zoBnSxme=#(CT^3FWLZGP74)KG>SMt4?9KFBzQZ+h$8lXXtrD2cV;!i9+t+6-Az6DB z89X+}#IS-JpEDd5J|rlGs5~RMXl@_+@G(M+wtx(2N8pR)ML=XMman@eq#PqL^uA-1 zV|k(lQ(<)CvAgk)@4{H$Trq$So|1U?bibd`!SRtZbxjlFm4DpJ%edh0FgaHY+k|jS zv)+*+t2KRd==VtCToVavJ#Eue!QoOV$k(jrOPQC_P+?U=51q?1eRB;iemQ;<%N|$Y zbi@zG)BMw_8{?D2cW!EXeF;waIO_vZIJzK)wOni9eBc!J8NatPYcRd{5~;(sp!ftB zR>{;3a9y%el%Fo&K0xGks8BUK6+6&|=)-`Hu2~-e1&)1AmzA){sKm_%V` zxYw=WN&=bxM@?D>ecaqc%!{yD@PPcT+NzbwDY)V zzn`htwg@ioZeYC(H4;WM=u;3F1l_aAj5~7HN>srWMPVln?6tQ`$_0LXxVt)1YuBqc zAznEV;c}RpiSTw<^LPJJ%4_IcU1JcmD~fOHUTaiR`=CBmnLgPn(g~K!mCTzaz&`$Y zk`;d-S~<7f(vKJxvEvxI)aZp|jZ|NeeAa}|db7%w?G?MDVtn;J5HeC{OZkSnMvtLb zPLgW4hZwJ`S|0iq8pRu~H?DKu?EAVGT7Rj{HDdL-c%`TNVfFbI^oyfRwWWF-g$wnT zJ`x?K3v}K61T=_>VXJ2;1aq0S5U&KxqII3Y^fD>*@*Uq4r*V0fmi1_dC_g*%HSI35 zt!ldD>CnU=t7Nvc#i>m-D6AT~weQS+RH5n`=n*epb4*Kj{sAmD2hEX_FULRir}M5! z#%_GxT*{nx{a$}|_o97T9Of%ajGbi0TH3RhfJEu{WFB)$P~v5imAM5NuBro`GKrFl zoM;*72T$MkB7Ry!lXLbD?~|z~@}M$32Vc(T%N_=oK)>}llRcv*yw?e*A&w737-v=z z!rvTM1hPfA<3o?LOYa9RA@)n0M=xERJNBjQ@xXjY^4eDW!VQ^uO(x?I2AYkm57UH%jMBy5A zJ4?co>ut;<5Le?Zk{Ioap&IH}=6m;Gc}UaZ-Nb|9I=aW{omZhtWv`Z_xUcVA;V-0~ z1(t*Td738`a}0F3nxp0iDfN)CACW9oWgxOGQ(@4Sx%EY&>RHa@PvKgp^`Xp>okXX6 zuD8)=I9-a-cCb|a;QJ21l(GU)STR-Hz8>_buc_eddR)xXRuT1%YaiHbL{J6Dmg0@j zI|}=#A8h6T5M2X3g5Qc(pE5s*=yPtilc)FcI969EE&79PX%|W7Yx@Nij+lmk1=vY% z<_Dj;f`aO^fEuCg6+MSJiFz}4u-7HET2w=7TXG#uJ0~Dh#)jXY$9Uy5`V@!s!p6s! zZ0ahlQ3mp3U=|YWW%bod`A1#u4_^^uRc(f&tG$65JkyplhC`Jdf}y)4OWkhGffQC+(C04R+Un4@5r8wvzEgA6TsO05Hx_|xkQCY(MN$n`3a(oSx!$8QIeGhM?cOW+wSSxd~?!7YTkybV(4Im2Z8OrsO>-H{xj}RwnKq~MF*Cu|-r;BetS{7c9z8XAVQ7@n% zb&qXe-dU}{bN$zI4(S@{?|bvMNEw&X`4-Z(X2&x(#-IW_ME;R-`cd=Tq-x*Q%-VXE zrJrVNYSe;=sD}PwnK62JAoH~x@7p3}5EpeVU$VmfgfN!$#zj&7NNoV9P8Pzs#1;h& z(J1tw?dRl#Vp}*sS4w83K0aS2i-*+GQEv2Ej*Ff8$D2B!3_ELX80XtU;@=J3wLQfy zy$}rKOg`E|dm{4a2MwF|9y9;Ywn8p(HNTtczY$67U$=+A3^nJF5#+*{ z!Zs1Mg>#m`)YH<}-EYhzQ-Zs?PuKMH+y2Ob1?2nyFR+)ky&dB8*XT9;+B9c9*FW~| zr<$%HC!sHGNTYPrGMwU_d=|OL5Z?Be_wTE-ohA?q;pk)9`1O#mh<03~Nhx zey@B~o{w)xE|HIX@~*~W3O-|a!z@h0aLDl41A>xIS-oPZr8sPX(l|<$!%J!?H6mF| z22XwCpZAUDiRm7BIT88viPem@=t!*p8y&z0x#>M5pcU+*yfB6BYv0RfnFRXam_kt8 zbOJ32ZbZNDK15(Bz0H^j4RN4iPIP`;P?geOKBmUS(?=aId)QgYwl>Cb8hs+X;w}O- zy4-h_3;)Ml4{cfTYW2AqBLbg=V_a~tvMl<2qaqAk|C=G=LCj=yzJdbFPr6hAU!$B=C)7zK^KvGmg}-y!V4E~XYD-XZ%*b(39CS~bq)_Z ztadI2;_%%M?kgeXTK*#j-yQM+!mRSeynQls{!{j_C zBQQlZ+MMjR(RZ)b>T!|PuzMroi=_zn?-6;AbE+tJHAriw zEtEvOZcyQhVVl|XH^T=DH4}{DP{q<%wujOa+0C+q3}`B&vsGlTaN$`dOmz*^ZvX$D zkqY%dO?skXdSIi-;qPGW6H6A32WauaE=n=C4QH1MaD%EaAFd;jjKSjFR!}|17-Q4J zt{r2-HdngjfE#2pnDvAw&b>LyIQk<_e)T>>FkmLlGg2At7!OWzmbD9 zT-#MG{;j)3A%7)mtat;WB<7r;0?N(RXY)&9P|H_3NF^Bb!j3eWla<>MbRa$li(rFV z-DA%>f2k|zmU2}ii}hH?;7PAB{I^dVWj8$~@oFRAdaG;mazxh|AUWb{plYlNl~q0Y zoG6LN$NQ^}9QM1_;WOww)BHC6f2Wv(K{eWlcou%cixGWkz_Aw70tbDFIqA#&LiLL> zo8Mbq>#jK#!$6;zT)$FECPrAHo_Uj z6#H+{sFVb>-}jW7!sk)GJNh58skcnpbtZVfJZR`;%JSVVjpcnN`cM$drg=w9Lvlp)Nb63IAhyc^QcbEOu(?*Qyw8DXQk6)=PcoP%}_Qh)Vty@2*!f8{!=3hS7 zx9MAimBO3xTQyJZ8YNY!PS{(wegQq|XX9#hfQ+KgAP2W|M&}l(z_XHB@{!Tnjk6Sx zx9($*!`2WZ_!k9LYk*iBbFV6xoaxaoiAE)ksf4uDIVMRCBT3Hk(^dL`7OTl3Qu@#0 zTVkAAWVOR@sQxXeM3BfBqR&Nb;riA|jt8qF{!`=fjXi5+n~nz^l%~P;o$5F5iAMkN z`4M%Pv<0$xH4hZgUltg6O@aHRJgj=RM^eX?jDj#vGRDr*dT(g9{VZ*7q+UzTB5zSO zyxwDmq(uFCP(p;YM?KDouUVqNf3ER2TX;-xFj*sfnjSWR9a8S)`JCv|0ek-`;tJ@G z{o17Z&(trkg-RIvr!T64=2^ zrZG)uo0uR?+B&1)KeJPBvjY-zc23cUV&umh*U~bCCt$cuttnb~)$Xu_%ggU9DL}fe z9nc(3PiskHT5P$~uMf?jaTi0=D^_%_`Y+(yk&RQ( z2AX<+R~I6$9WT(J@1s?k)?#{q1bx4}m)$(Q%QDI5=Rc1c>w~`V(%TMRd43b2w3Z&0 z+dJ&*5jZZ5?GqHk4y!bdEJYXO#4pY-f6;Ys(kC=FIC}kr{q&j~#DJrno**47WkLmv z<&W|;TQXO-Uw=+NoLJ18p4^1pSGsY4_X$~8q-Nrp! zU0S5jP3{tH+^5ojTs~vd1Jsd5tMKYg;8n~3AaP8BL!jffLC@<|p|I)6hF4X6aZFz| zW6H0|Bk@+0ke51uO==nNm3kutGgV>u;9bIds&WcAZv={~S|Ou3u0yw0bO`g4J*QCBwvDV_7Q4MnI zksKlTu3q<@fO`TiLf5&P3z$4x4wRT9jV!p7lz|Q|-K&c15tgcpuFD?&IRK*ya9DC-4QwgLDeeuJ(^-tjmi%){+cl?Xk$HrQU*-LrA7Ju_ zx^47s43_cMFGs1_5YBGtEdC()>2aV;@f+Bsmf=B$GjVHFHINuMy>e@Gyt+4arv-C2 zy?c&Moz`oapr%AZF&ac!!jpanl1kWagfB4~GTJ_Vq^!IzwHF@WkyYT{T=*gMt? zS0(a5w&}ussHY@Ew5f1>?PAU#T5Tg`kO^i{zGXbv_>Lt_V4Ww%4A@dkSxDf8^vqc- zjj-RW5|wz^UW8sZr0x+<*ss}6yDw=3;Ke?Fo3E{0}ErR^tEw literal 0 HcmV?d00001 diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index 6c5cd88..6c596c9 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -79,6 +79,8 @@ LeftRightStyleSizing: | LimitControls: | \displaystyle\int\limits_2^3 3x^2\,dx + \sum\nolimits^n_{i=1}i + \textstyle\int\limits_x^y z +MathAtom: a\mathrel{\mathop{=}\limits^{\blue ?}}b +MathAtom2: \mathop{\overline\mathrm{lim}}\limits_{x\to\infty}f(x) MathDefaultFonts: Ax2k\breve{a}\omega\Omega\imath+\KaTeX MathBb: \mathbb{Ax2k\breve{a}\omega\Omega\imath+\KaTeX} MathBf: \mathbf{Ax2k\breve{a}\omega\Omega\imath+\KaTeX} From f8e0c91de464af514479d53521d77036494145ce Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Sat, 26 Nov 2016 23:00:01 -0500 Subject: [PATCH 06/12] Support \stackrel (#468). --- src/functions.js | 30 ++++++++++++++++++ test/screenshotter/images/StackRel-chrome.png | Bin 0 -> 6103 bytes .../screenshotter/images/StackRel-firefox.png | Bin 0 -> 6045 bytes test/screenshotter/ss_data.yaml | 1 + 4 files changed, 31 insertions(+) create mode 100644 test/screenshotter/images/StackRel-chrome.png create mode 100644 test/screenshotter/images/StackRel-firefox.png diff --git a/src/functions.js b/src/functions.js index deaf4f7..b3f875a 100644 --- a/src/functions.js +++ b/src/functions.js @@ -1,5 +1,7 @@ var utils = require("./utils"); var ParseError = require("./ParseError"); +var parseData = require("./parseData"); +var ParseNode = parseData.ParseNode; /* This file contains a list of functions that we parse, identified by * the calls to defineFunction. @@ -236,6 +238,34 @@ defineFunction([ }; }); +// Build a relation by placing one symbol on top of another +defineFunction("\\stackrel", { + numArgs: 2, +}, function(context, args) { + var top = args[0]; + var bottom = args[1]; + + var bottomop = new ParseNode("op", { + type: "op", + limits: true, + alwaysHandleSupSub: true, + symbol: false, + value: ordargument(bottom), + }, bottom.mode); + + var supsub = new ParseNode("supsub", { + base: bottomop, + sup: top, + sub: null, + }, top.mode); + + return { + type: "mclass", + mclass: "mrel", + value: [supsub], + }; +}); + // Extra data needed for the delimiter handler down below var delimiterSizes = { "\\bigl" : {mclass: "mopen", size: 1}, diff --git a/test/screenshotter/images/StackRel-chrome.png b/test/screenshotter/images/StackRel-chrome.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc2456fb93749705dd73e61b510045de39ac36f GIT binary patch literal 6103 zcmeHLX;ji{xBnw*nI&~BEiLWTdh?W1=1I+oCi9dYZE(Z^PgZ6IDrzbyV0IcbHQ#bb zO;bBLASs!mB7+rTX^ts5AY`Gbp(r8(0@w52Z}+aV?$`UFFVA|`+I#=j{_SV)wV%E3 zo%L|tw83Bl005g#|90{`0I08B!NB^p6Da9B(+2?h#ivgm^GYZZa1!%(#-*@67u>qF z*&_SIdddF0r+0VHRNt*B)82ES$6_LdF=6r4G2!Lzm%K9519!4EyxgExw!7@7Oz(5C zLBfP2zgUpVmX1A}*Gsl^Uuq;&n+!O)A9DJcMSDUkmQSRzte%t*>rLoq^M4zj%V&TN{FqYiyL+6`=#n;1Dt0&Mso|yZ0`n;bC%X=>pz2KJntg zEwR>sw=GIadN^flx>|Dwf!RBUB-Lv)lh^xI@kvB47D7A#bj*~Ke+ zUo-iq#3T#a$nh@9)cw=DG()-#Tu6(E)Ko4}Ey|T$p_$BP0*<6Jq1GdUca!}e_@^2s zFK{r;e_{}KKz3!M@$3xMxHB<2v=iC0VIST?lb1CJ=@%8aNxaMqq))5}88oYNRDN%Fh;#D7D|nkn-2%a7s40@21-8^X{YMTwa?I6-JT7>fuEO z1jLA9n4#WZ4g_A9gZQZ+)I?JDno+ab(V}s6-gum$AzOzm`PxwYI}q|SS{E-l+(?Xf z9D0~{4UL*i8Le%YxJ|)b8M+E;Qaz%w{gFfjg!XMZ_ZVomr>B~bkW%&ur~EW)euQgm zuT`0kVo>*jg)6QV5DtZTS=?)x?qj%&s_u1l(qa_5kY*o-);7L%OpcOfE3@fnVfHMv z{xqpOeH0uukn3UUcVgQxxUGu$t1dF+?=({RD(OQj{~EqKpu%y6fK#~RLl*olKl zHuKpCP(oCBd%u2x_8QwBaMjxK*vBT zFb3P|8?W-#tHgrr8snZF2IddUQ?IlI`5w;IoU4u0{tpyfA53+8w`|-gSScII&IP(K z!OcvFXP8IxB4l<{?P#%)I`93(j5&HoUB;RYo4D5;w1P;SvNxBQbN!qtwEe)>>0^M! z?DUZvp1y1`l2RG(2GIQPPkfa*uRRY$Eh?PkFM(f5p;RMU1g}zafg+#rBZ=Z0`X41) z|8c=I4bh_7qy5o$&vnYPNH@SaV7&Rk^nWwG)2&SW+ZgH#T8WuGyN2wuCWQaiy#<&s zi-GINzI{bG&>G_^H!@6T3i&K7bEF)49_X-c14n(yzSBC3z_ear5pDgF|IBfqlznqs z8QBZ#M7^LtH#AVHA@g$C>IuAZFnH=wC_5-g86J=uLFISNC(UExp?Slv&p(?5HDMZ16#JQG zN2br9X6uxl(ZZ9(XY}78N0#pfX{K@JMw**-|3HbxxxOV^Uo4h!;tS5#L}3rd{x(~& zNnpI^^`RQM1E?0mS=zyZ=9#Jua!p%#hk|!C&vtmvxC&wyR@<^c+l%6rrY7EdI|Y~+ zr#-->0v-$W$fA<`ezsjwS%HggzgH2M5GGcqQzY-Qjej1Gmxh}Z9TL&b8LdB-dlP7- zk0{ySrX?GW-u`PhFxcHZAy5=+nx*c;0$12LP*N3FgumST7Q!IU0!!0{fBx~nbRgez28@WkL(rG?(Y)E5dU94gM~zUfGoxs)tMCtL6x+r z(3MNhAzHAjfRVhd)G{bux`R?YJf(YyT&WiIiN|YwJkPnF!)K3v>AE9#D9xS>iu)dH z=<&E^&P|8bTXo9}q4yJBo*9t*jj8(m8YNyqC?Jx%*bYhZaZB(FCY!Bs>lBByXP(PHs z@lMu*CvRoEYA~q(q?!_~n^Kk8=ST+2;cPOS=3N{Y=sqGZ8_uAsD^X}^3g1EQWU@W$ zoLW?;4Sy7!K6&qDR_nEI`eO==L;XnZiCUVs=qG5F*WPuKP>a2etKG6Y%HC~%UJ=aR zb;-5q(P4ZTG;S!gY&y_glT%R0+aK!0zCg}o=hF}N7>y|56yAXneIJ}|Ag7Hk_#E9c z^;oAku7l&?r7M5iyT})-Dju>Hw)RH$Y+wisA4Pu2iQH))hO_<~}6NqxQ zRk7&xWLo4-Yhhenfbh0ZMP4^i8`1>ZRnztA(HN$5oDv6iEJ zPRtQ;Qab{oPKQB}AAItM_>OKT=U2zYNttRa-JX8KY6*@3jQr_n{rOKeD-|-L;$g4{ zVR}OL*C@`a7FRd_@y@hal=rUZZ(z4+u#B27CxF}o0?^7OYFk4II{wCCn+9Wefj6#- zwNH?0>XWK)bl~0lK-lm8m~+TRHDKt;5eg|X8xy~s2vGio`FF)A+~|RIKB=|er(YEW z2U3?nh)^7HulOdmt75uSyfyIogTI0UfC4)3y^nS#*}l7vTI4+d77xmMkcLJ6o~Sp@ zYl@F$y7)3n)~PrD{%C*?8zOK&!6O686V1A_Fb=h6Vge%RdW>i>uQ55_b0B_ZN6lBl zTmP8`OLz!=evetR73c=4?CnnICavB9-obv6XM)dR{*!)A^@E=xKVQLLeC(N zfVL+*&&ya$;aY!~UzHt&?(<5FI^&dT-5$JcU(*oqQQqik)CDt6k8$@5^Txb#W-dn{ zQrSZf&AJ6|Ze7d!H7qKIyM}tk4KTV&BUy$Al&(3M<5cWBO+Pi->kPl&82U6Xv)ZH% z%iRaKxw`=`!jUk^E8bn7@|)|9tB6+OK}kc#v5L{a``P84qptSq{GbgdztqmyhA z@Xz4E5LZ`F7X{H;!F7JwF(v;^+%Ip;a2j?zBIVlW_l!lC=#2G|^VyhvX%`&)_4hTd zbz&HuZiRztb;-M6kI-kbvAc1u)On@W@?RQtSIt3Jl^ay7A<7g2mO-V%R)oD7 zM$+Tr5d`aBwC4sRwAwr_w7lRAteg`k(F+(Go}FgI^rCm4RRry3lgAZR_8Y>ywF9;? zw>cG!@Nho098_OMTY7c&HWfLqJ|UOxLvhJ9-Bsi zfJp?LMuInnNadZj@tKfE&=q4?!}f0r8nx9B1$(Fc`si_toDQz@2~xzqw;XMsGsEG~ zSZHScZ6^E1u?Hny^aWdJA#UQ!+8>6@A!N+mZkuUpO?FMZ`C_C#X(4rHR6?)1)|U_W z><7nGYn#-JpT`^OJQ>BAt;dB@3St%w22a^qVVSf>+2TijRt?Sha(7lH_H=X8>pstAOz=UE zy%yTa;h8;wgzt5~OWCS3aOC}>vx*IM-M5(?rW)e6=Hho9v&0MY8Do@(U_AP>j5q_$ z^x<4;Uy==>)^YmgPq#H?tX_Ojf(Y8E_)PayfK?)~zm)lP01c(IwXre_oPRBy5G$Gv zNso6qVH?VrIwtW^C^dJx9vPC6Xw9wXFI{|}YYdBWWPD(KZ(9DE!xa{0M=WQfoJ{8X$Mt;pbSMkpp x2+9AwH~Nt!KeFUUmi+Tx^+$dD|E>=ORFRas??z6IhG4Y z?AF@-NKc!lqH=Dj#jzVaeqS|RXHP50>_O^#gQk0S`)+HmC;YVA%`I@-o}XHGWENfD zZhyh8q@^> zR2_kDp8$5pl<l;8t1K4f|>~{JOKxhrb>oXR$RxJlMyQSErw>IPu3)<{7 zHhw^Kf02gjn!p>bSpw}gH2WXM-)M_t5fjocms6mk1soYcI?=@jZd{63A^*`JR0gcolA?tKQ>KzOH$->)z+p`UVp1$ z#=_1rCwZD> zRD()ZafCnZvVcg=q{@+N-HwX^rtuzv_ucuS$ns-9JFD=F&Mm)F^)eqfDcgyvBsdt3 z_G{p|`XjM+<1=Mk2%Q3VTL2x>f}H)sPXeagDE`^H1p+r$ego?ceCV+Q>7`_f*=`+d^OEyMh~3ITRk^(8P{iC8hg7V* z#9Z)2C|SL(k1kw>83SKJf{b{&0TF=*q2As~>*3;35|HOJLhD@5*n9!(4o;We?6PhP zP&$N8x>Ks&s39Qqagrc1aY!2FjZ@hl^nwgO=7s^VoKb0y6|ovIp+{{oR#J zclp~?2>qFqTg%8Fxv85i8c3k5sZT16pQqKtn@>TWPeY z7%ocPnc@Ii>OOBXy{+sw{_yG3*wwRs<_;`}gwU{{$6UunddU2Ep|I?6TjpkXpQ;+f z2@7eY>;1*;Q=P!g5g%CND#D@oG{X(NfD>Yp*gG8~B;f?CUe8H7c|TojVqmM{k3GxF zPQLd^4D>Q6h)ZZ&;y8X*cWTsf`A^DYzev4n@hNe@M;jl z9s=sO>#+rd8}wEqRroF+kh22F^8)i$>@)rcA(N{W=ZV_^r`9z{qsSBRKR$iAG57js zFwa$Jgr5L!#b`K7fxL@g9#zBa8>hZ1h#mGGs~HSe_c7Q4Zg_9w@&111=OgNkqb!>* z6@<>=7_x>c=GGic;0gq*Lq<0S`QgjYz-CrUbH@662O@FujxZRN^*~7F@~4fVrRqIR zYRcu)Sjfx)9Y!nUVh;x=?W&%jsviIIrU^WJF{gmPd+yW| z#-7r*%b=yn*~9v035&H!8~Lsf94gMO!>V%Zxo2^J&$3?#C*7FC* z8T$JEiER#(Yu4Z&{+b+Gua}s7dZaztBPozgTa?+eLRP$Yk0t3D0h|SohEi%+{viyL z_|&q-EG+J7rfo(&J&7e0=Cv1FDmlx0KcwbK%cH&*9Ef&>)8^l2EJ$M? zA&V>scO<1o%WiWCyb2AQ!E}yu_wNkdn(|5+?DPsrkv{pwfl8Wl!|J(E*&Z-Cl~xQ# zu`7#jvhv&98=skI5kY!T6a#C!oQX z@c`Fr9xV$U!RQ_EWO@t6E^**wD4xAD(8_>BVhF8~F)T$D2r1#IZgc18;jOES{9Eh9 z9h=UwPd4O_mnn4G#pp%7Rl@9;`Wm6J(EIF@_~z-nI&F{2UC^N?ftqWoye0I+>F2>y z{1Q~OYDIh)C$x_|n-hN-{@$JlMFzot$ITMsH*5r?)n0Q|i+}i7z?Eu3p3dHZOS6dQ z{1KgrQ3cJ#!@ma9OLxG{86J^X(B?bYNT=XCtLYSQJrSrH1_z$d&GR30vCOLAP?Ywc}5+B01g zI!aAzGbM@ksP6M z4XFNS9zy7?(Haassk|ktjI_4~EJa6=*XTQVq`OQ{^m)oGZZ0Q2K>E%uQok`FG`m{i z#Lyks9!Qx{Yt)|A78#(miy-d_Lv8@oNw~?)WMqsMToe|fr({+14O!L3SQRBBYb5Y^ z`@0hyP5i{Hwv%9C9xskJ_9dp%0$ z%FqQxj*E_%CD7AXAF@R#)ifmi7BGkve{%F#^$&2~jOII>6`6R`vEn?x*g`L*GYU@p>!B^NOzs$+&nML4R&D!t(k~;pKhQBs4R^me2a>D~w z&CAm#6J#ZX11&42#q#f^M{&#_${77gof%*+L_9G26o4({{!lm~Pbm&tp~rR{JSJIK zm^Jx04M~<&)CMlsuj)ZttVG5sKLpP)WsEGQ3H-`#uv61v!LG(np=7SUK~HdJ_#zZ` zSTUv$Yz9qpI(LyIpA@vGZ~ThKI>Xo8Kh&6(jodrK5EJg*AyB5~abo;km6F%|Ti^0M z7uOjcu0yf~-7;Lah@^%@g-M|2mdEdc#hlLC_tAqVCtJ`Ug_topJ)05LHO+rs=VCf> zLRzEr@Efmlixx_@7aGc8Ycnf_3ob{gRPRyDO`%}F8RGONEvNM&=OnyVfxbXPK(W%L zrOe2(hXU?o+kIFsuHD~Llh<9CEj7y8oNbYn80-=~S;}?~tksS7UAj{2KHNVXUbxbu zxZO^!eOT--Al&d&|MJhF(KiiZ0{xkUG9JXL)3UVvefg+$sm(!T|7*X(jY(L5Gl;yx8lVX~i8C+bE`7;_h&%uZ%+nhO<9Sb=fd7NqZ zE~auQ5@ZVJYg(6jc8rY88!$naWW-@hB8@eQu!{S5_fm9=#>pJYhzmHc>bf1sC;7;T zV#u-7`ie-EOP@Z=cYSPWc+7KR^NiIWKmNy%`d_ElufYEr=)acaYf1j^wa?cs`PwC4 myX3#GMZfyv|A{|jwksByX*kyR5C7h~pFijF6Y0mmTmJ&G^N~aV literal 0 HcmV?d00001 diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index 6c596c9..7779912 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -116,6 +116,7 @@ Sqrt: | ^{\sqrt{\sqrt{\sqrt{x}}}}} SqrtRoot: | 1+\sqrt[3]{2}+\sqrt[1923^234]{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^{2^2}}}}}}}}}}} +StackRel: a \stackrel{?}{=} b \stackrel{\text{def}}{=} c StyleSwitching: a\cdot b\scriptstyle a\cdot ba\textstyle\cdot ba\scriptstyle\cdot b SupSubCharacterBox: a_2f_2{f}_2{aa}_2{af}_2\mathbf{y}_Ay_A SupSubHorizSpacing: | From e0407a19a09bc1ed6dada3c90f533f49c32ce478 Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Wed, 23 Nov 2016 09:28:09 -0500 Subject: [PATCH 07/12] Support \atop. Add Jasmine test and update screenshotter test. --- src/functions.js | 9 ++++++++- test/katex-spec.js | 9 +++++++++ .../images/FractionTest-chrome.png | Bin 8081 -> 8261 bytes .../images/FractionTest-firefox.png | Bin 7298 -> 7487 bytes test/screenshotter/ss_data.yaml | 2 +- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/functions.js b/src/functions.js index b3f875a..24cf245 100644 --- a/src/functions.js +++ b/src/functions.js @@ -418,6 +418,7 @@ defineFunction("\\mathop", { defineFunction([ "\\dfrac", "\\frac", "\\tfrac", "\\dbinom", "\\binom", "\\tbinom", + "\\\\atopfrac", // can’t be entered directly ], { numArgs: 2, greediness: 2, @@ -435,6 +436,9 @@ defineFunction([ case "\\tfrac": hasBarLine = true; break; + case "\\\\atopfrac": + hasBarLine = false; + break; case "\\dbinom": case "\\binom": case "\\tbinom": @@ -571,7 +575,7 @@ defineFunction([ }); // Infix generalized fractions -defineFunction(["\\over", "\\choose"], { +defineFunction(["\\over", "\\choose", "\\atop"], { numArgs: 0, infix: true, }, function(context) { @@ -583,6 +587,9 @@ defineFunction(["\\over", "\\choose"], { case "\\choose": replaceWith = "\\binom"; break; + case "\\atop": + replaceWith = "\\\\atopfrac"; + break; default: throw new Error("Unrecognized infix genfrac command"); } diff --git a/test/katex-spec.js b/test/katex-spec.js index b2fa955..de326d6 100644 --- a/test/katex-spec.js +++ b/test/katex-spec.js @@ -606,6 +606,15 @@ describe("A frac parser", function() { expect(tfracParse.value.numer).toBeDefined(); expect(tfracParse.value.denom).toBeDefined(); }); + + it("should parse atop", function() { + var parse = getParsed("x \\atop y")[0]; + + expect(parse.type).toEqual("genfrac"); + expect(parse.value.numer).toBeDefined(); + expect(parse.value.denom).toBeDefined(); + expect(parse.value.hasBarLine).toEqual(false); + }); }); describe("An over parser", function() { diff --git a/test/screenshotter/images/FractionTest-chrome.png b/test/screenshotter/images/FractionTest-chrome.png index b365f94253306af022536b11d32d6b624bcbe034..a54e5b316e8f74bf96877e2927cb67b3b5121a5e 100644 GIT binary patch literal 8261 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 literal 7298 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 E0Qtm${Qv*} diff --git a/test/screenshotter/ss_data.yaml b/test/screenshotter/ss_data.yaml index 7779912..a37a692 100644 --- a/test/screenshotter/ss_data.yaml +++ b/test/screenshotter/ss_data.yaml @@ -62,7 +62,7 @@ DisplayStyle: | {\displaystyle\sqrt{x}}{\sqrt{x}} {\displaystyle \frac12}{\frac12}{\displaystyle x^1_2}{x^1_2} Exponents: a^{a^a_a}_{a^a_a} -FractionTest: \dfrac{a}{b}\frac{a}{b}\tfrac{a}{b}\;-\dfrac12\;1\tfrac12 +FractionTest: \dfrac{a}{b}\frac{a}{b}\tfrac{a}{b}\;-\dfrac12\;1\tfrac12\;{1 \atop 2} Functions: \sin\cos\tan\ln\log GreekLetters: \alpha\beta\gamma\omega KaTeX: \KaTeX From 4297eb127621a64957d10ac29cb5d453e1f90f61 Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Fri, 25 Nov 2016 18:20:39 -0500 Subject: [PATCH 08/12] Unicode punctuation works. --- src/symbols.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/symbols.js b/src/symbols.js index 55301a4..477824e 100644 --- a/src/symbols.js +++ b/src/symbols.js @@ -652,3 +652,11 @@ for (i = 0x0410; i <= 0x044F; i++) { ch = String.fromCharCode(i); defineSymbol(text, main, textord, ch, ch); } + +// Unicode versions of existing characters +defineSymbol(text, main, textord, "\u2013", "–"); +defineSymbol(text, main, textord, "\u2014", "—"); +defineSymbol(text, main, textord, "\u2018", "‘"); +defineSymbol(text, main, textord, "\u2019", "’"); +defineSymbol(text, main, textord, "\u201c", "“"); +defineSymbol(text, main, textord, "\u201d", "”"); From b88bc7723d2d7695d38e0c9cb11be3edac1a28f2 Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Mon, 28 Nov 2016 09:59:28 -0500 Subject: [PATCH 09/12] Italic correction should not be applied to characters in text mode. This requires changes to screenshotter tests that assumed italic correction was applied in text mode. --- src/buildCommon.js | 6 +++++- test/screenshotter/images/Cases-chrome.png | Bin 19968 -> 19962 bytes test/screenshotter/images/Cases-firefox.png | Bin 18776 -> 18774 bytes .../images/DashesAndQuotes-chrome.png | Bin 8466 -> 8472 bytes .../images/DashesAndQuotes-firefox.png | Bin 8203 -> 8202 bytes test/screenshotter/images/StackRel-chrome.png | Bin 6103 -> 6106 bytes .../screenshotter/images/StackRel-firefox.png | Bin 6045 -> 6041 bytes test/screenshotter/images/Unicode-chrome.png | Bin 25212 -> 24821 bytes test/screenshotter/images/Unicode-firefox.png | Bin 24792 -> 24791 bytes .../images/UnsupportedCmds-chrome.png | Bin 24429 -> 24650 bytes .../images/UnsupportedCmds-firefox.png | Bin 21957 -> 21950 bytes 11 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/buildCommon.js b/src/buildCommon.js index 4e22fb1..a045ad3 100644 --- a/src/buildCommon.js +++ b/src/buildCommon.js @@ -49,8 +49,12 @@ var makeSymbol = function(value, fontFamily, mode, options, classes) { var symbolNode; if (metrics) { + var italic = metrics.italic; + if (mode === "text") { + italic = 0; + } symbolNode = new domTree.symbolNode( - value, metrics.height, metrics.depth, metrics.italic, metrics.skew, + value, metrics.height, metrics.depth, italic, metrics.skew, classes); } else { // TODO(emily): Figure out a good way to only print this in development diff --git a/test/screenshotter/images/Cases-chrome.png b/test/screenshotter/images/Cases-chrome.png index 775a3d9246634a146821106d6c12cfc70c230974..d6b1382fc2b9b25e40236c77e3445ad2bb82bf62 100644 GIT binary patch delta 16546 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 diff --git a/test/screenshotter/images/Cases-firefox.png b/test/screenshotter/images/Cases-firefox.png index 4f77c85e00d5248250f296b539fe67aa159810be..901f2b6cdac54b0fd836cd8190339b3b45f8013e 100644 GIT binary patch literal 18774 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 diff --git a/test/screenshotter/images/DashesAndQuotes-chrome.png b/test/screenshotter/images/DashesAndQuotes-chrome.png index 14fdba805131952184af00f006b1a9588a5019c9..122e38151d12a874b5342b606a592c7d9ee21ab4 100644 GIT binary patch literal 8472 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 M&8+_}y6hhPKlc6hDgXcg literal 8203 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

Z7 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 E7mDO^L;wH) delta 3990 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 diff --git a/test/screenshotter/images/StackRel-firefox.png b/test/screenshotter/images/StackRel-firefox.png index 9a861c143a131cd4dc424732c1a3dca96ee6a4e9..deb5e2cfa4017c3c3ce3586a5f79c3ffab68f9b5 100644 GIT binary patch delta 3934 zcmW-jc~p`K+r}Sq8!N>|%ghBEXSBs7bKDbb%zB%0oW>MIO|qFVcQZE(9-Y3)($tzV zx5UbFL)2Vxrz}lPaRW>g&0P=?5l|F(eZTwf-*uhqKIgj6xeF|EEgt^}qA#91do}(A zcQPU8$C&Hg-^Q6)Hy{U^p6J>igt+prtUZZ;eb(sw)z-BS4}!G5fAHNo%Xmm;AaLNI z>w$9`2Q4&;ULRFF3ps0l?gvA08>Pl^xtvW{Hn6_YP>5t) zN()@ntR#z{_zp-@=;y6Dqxj0uP~SR^U_#YQI+>Lk*lFP}o}nuc7>i)?`#%S%fN6Zx zyAQUGnkfx7efA8VC<)JLc6I8?>}?0sy(&gXrm9deS$4NSP5^Y-8G3J|&8Z*;mg|RETsA zX_ETN+m;`abbU9##H*)NH>`k==lMHKM-S$6k3!BY`w&~GxsNhoPnwrCwhEHDg0lR5tqr0I{A@8guh$A`YBv?I4 z+oHc+RrGfByr{zs!D#qhb3dhw^oh=s2cf^e#r8|;>viIcSOf=!wTW`Qfp$77bXJzB zZ2aW@p2!PLDrkCce?@4Ws`9iJ#PBy4$T4W8zjU#`f@7%&9D1D#JY&*r7`8R#4Jp(F zCKwx1QT;v*9@Xg$Aq#4&yl+U3`0^6FS}Sw+I1|qAiR9(Ez7tNmRg}$ExH&8u4#f9y zixf_YU1}Z0;jzCtaTuAQ)=+#SR|l z3w$1N1{MywKFwB~S_3UH`msvWGwTB;ag(-0Yw0IR@otP{;LPt@3?XQyFDU0=#VdDK z_EH#WmUnB~-Tz;{YLP1E$WadAWev-^Eto7w{BJnH*!sXNceXHH0^bdx0Lk&yY834{ zAdwJqS)vyb$T-292wu6c7f8q(Q;qLp=z3r52CY2-*{BooBw&&i7k*k~)Num%=(CE~ z+h|`$0;z<6qbC)rqj9y8ao+J8h(CbORy_)9ZQ?c@56Nxsv$6?@qvh%j6b`x&e8RgC zD+CYa>94~6rul2~aM0Vqfg zH~`H2tdZ1#$y*x<3h*QaaN(Ps?_?)^iw3-M-RY}b#*-A-v zQYa-3X`Y%jaIL2MT9f426X5R6zoA&qkgs3k(l1ZR=ID>U)gB;B<#}^hPZA@1Uu}Bg zICHmuf|`DH{>CrkLE`_czukfY!&WjUHKXJawj_l}z9KBL^H;O{BeH9+r`>g7@z}!hNdZY1JHg;aM1YC5y)ZDknAVSgs zMP~=jg>3$`-so_&&;abYUXpDh4co}b)T5; zek?}J>N@X!?f=fQK@bQB1t+3ecbJ=fW}~-+UI{&$moms(3MUzvUkxtu3kytvsO5{(W)b*}#`5SrzqPE0QnVj6Zx6uq5-evEKjTQ=Bb_x-|VW@ z7J!c__~!Y|xRtu$QBPZ@^z$c&-*t@B{!yIH$b^?gqj#{2jl~gm3$xia4wV@mM9a%9 zoMe}jD)okWsPgH5yL06I+HSh`AUgZ~4h~)RNI$6xiR9K(Xhl$GY}X+N#V025S*0 zS?j%czn@|3dGN_8-wlu~tjJz1nlese0*cDH|V zDeSj*?=mVn=-CSd>F0Q=aN!ec?z}m@MZ=et#vQTd&?U*UT$Pnhv;*AJtW6>;SZ={E zG7I54BDW7ShxL;hkrwl;OPfyhd5s)0RVXk?ulF(Q9i>`;5}gPlQ_z~yvfzY5Y>3mL z#j_Rc+kqbDhY9>Xk>(jpU}j3sjjKR=K*uwSrQD`qYo3u>M)@pL7+J|9Fw`m8%BNoR zS_>QT5qh}-1Q&P#FFpGHU$z$}vTIUA z47DXtoQ1^7bQF$gnEpcmCK~<_&Jdz7)E^>nDln7OPxrb}6)r`F7|EZMDFrOZQ(92&V)ZE*h)j z$k(<|3O@Fx(UXv|I(!UR8uySy%uV^(p?n<5;rlVI1XkSLCOuXWGDN~&m8ff48)uQg zYH$Qsyqp3Hz-7gQ1@Wy zEr3C2yx&`fCsEc75)v{SEcS1-|8J?K8d2d=rh<>7X|z9N^H=E%iyW7{>-3;guLx)p-7NRi44+x41VO!Lt^snfv@9cE$LZj^eoFFk-I!^pi!0==1N$ z>b|1_+V+p;E4guzQgVqcJm=T#xV_y7i@gT0<~@;qpp*@-Ta-Dn{Q+T&oqNJ8K22h? zW|r30b1>gDIFy!kF_qQ%J#(tF@bs#Dtj6H-{08>Dw98-PfAT?im#B`g%@Od6SspC> zpEOtAUHPZpw3Z$>MEC)B+p7gPMiO%i`Z(QTwz9YHvxVpr2vWA*7t8OeS7MZ=RfNQC z@HJsuOkAK{XqVM}E8x+}oOL(8lvlM`&F>he49#~*-0#ff#IXj~(CFn|$$be8=P8~P z*j6sI5%V?|2h#7aT&ctgR_){H*~am4Pm7kWfG2bWqz{-hcN?c8-l$2HJv7GPvOSeM z#X0uE&n?tTYthE8?$y0sPqE$|BnTst=cn-%rLx?=UAoDOA9ugw?BW!KOJ$BgMCr9j z1Se0>kJU!=TW-$`zm6X!GnD+EfN1m57FC$B1Fg()iM!$t%4u}}x6mrJs@ zjTfY{H*Mv!YO#7^qzC%+krr6u0F9*$A>9D9a@4ZH=+Ap3*LiN32eu`5xfyH z{;oeWJZOoU=(fB+i0*6Lb1}Z-D`}}_J)f#8C!foCVIW{838-H&X(orP8aAib_y9w% zrZaEE%SzIccHZLa;}B?~2sMKI8q9mjJ3I(n;hBW8vfp_R)c35A65f)mcycWskdi z(DuE*wC&6)zPZEUlKrLKPZL#k?)a?QvGAs}1p5wq=T69tA(DYu)~M|ELXC*75lQSj zK0aPLE%s%>-4H;{3HaeT@GJ{<2o%`>2?mTs?NzJ6%^n$U>4Pmf)RHzkjY}95KU}1t zyC?8QYgRyqEzRMl@%K8Cc+`aK`_)vqc!4udUF|idu2a~E5@`KQl+?!TxwiBG-oF5~ z-|d`Yg}W$Ur763=6;Bbrva>RxQt#l1=ia|%G`hMUUmvEhZz1_6IM6`X87kLk`VgWW zUNDer-9T~gQurY_ryJ*s_Td*he;`K z`l_EhHZZ>f1O5_T8#(DmCSKRB&QvX*uu4X{GfSN5ET^X=SxFR#j zkzhSf?Akh^s>3DuxndJRM3}a%?QaKyGpCg| zgARlq0n*!%KrH*#jX$n!g^YIsw-2b>qoe2V3#_V0lRJPidkd8#)N&^j=X1%og)@SF zus*U{?2QGNq|2(&9ZVv%r!3=+?fRp`D2wg*a~a$C;*9iQ0XNUrgXzbOV>#r@+X+my zpk_=S;$e9QnlEz;lejHm8PN7bdu*Mn;km$KrBFU^xa(p1Gj^QO(<8+_Zcbx{BavG&-P( z=NjAnCtq76I$#7K3C^!nzC^sL|?{gni#q8#K08vt4j8r9Iq78H;0 zS;Kj*sy%VbRvk=L8~9pzE2q+U)wb~%kn@lK#$Lk&_z7vp@_JO^*FQ9C9T_|N}=-dS;duzUaL6vQOMF8=@hfWCdBp)=e-EGb%dH~MeUKuxh)T=M0JU| z;D=JNe%BCNw2UwTzJ~@I^YsEFgAT(%A0L(V2uT?U$oJ*Zy4Eu{UjutWGGw>AZQ27> zj$o4Sm1#6-3JLw3WSGA4=@vND03X$`VF_&rDnKHt>fw$1 ztaNg)^3(+bNy?Ug29C#0CCrzNCdOo)UPXgHLr~-f6URm8DPNF>@rDAIiw9bG)V`HRyS**AO zDNfs!>IhltxoA7Rz5EZs$l0^F)${%qjx5K-u<+n#T&G2P==^w*sQg)b)@DS%nmWuG z2Wz71|HJJE)h56>;v*ZdG6IfIH`>4pIiaRWebaFw5-4Q#c}>#E2j~)0L%VGOxbys+ zlm}lWKp%sGx`MGIj^k(brbexn|E4_ikJ7)9;JQv*G!+4?nPKce*+3sQhf?HvbZYYh zZq=@%?EpPmPvi0^B-({8A1T@^2CYY3r+TJrI)=V*ay?7wA2@pH#of%OrSo+PuvZ)h*C7GKdX3?t*FT@2@0{Pxh{)$89|4U?Yjq)OK2jJYc25S;~0RbncuQuh~ z{08N_iHz|R(5;ZBiwwxW4CPZb&Hv@xUk$UzJz%v!ks7{+Tf!}$?R@@!_xyTHqiK|7 z`@NFTH4;bGRKxx`hY-2}AsVpJjUhqA@=K_>_0pUPXs~ZE3RHB4BdDxLA}UufZ2~XT z=xtV4t(eBaW)A8y+F+M^IS5J0ZwKH$Op|`y8$2ns#fh}LW`e4A^6%TG$cV+Hl zYX|)@OQ@TAs~nQTMpAm$V6XF+M3q|ky~%VmPu5<**=UZORI@6|U!Hr%^e)L%9gOpK zFB6d&1_l91?T(XcHqf8`nH*kkkeYsdsx#UvEtF4NmOHRQSA6!2CF>gloCVLuGHQ6i z5iFDV!m8Fh{Lb|(yUYf9GD{@N?okw7FG6wUGod_dF;p z8`jiM$R-OToJeW0^1ECDzf#k7D1+nD^A|&}wxUXoIJ-hpW=wu}q>|>`ar&-QwkJYC zrIjGj?5dL6tb%rrrkAEVc>S6(1*$$cj>Vu*o0rM&M&H(b5{D6K#x-#_UV|che~j93Lyx5qB40vVE;YLxtM3^eI>C-BKbIJcy1YjOli ze@g&(o{WlwdDLrL-6*!BlUF@%$~x-TZ=eiFPsu0vqC=2)7q!!XZ$urWB0}Dt?6kPg z#>Zl`ce*%il*Ej6VRvTMK%!gJ4f??Peu!=>&AlQoemj3a{7xhyZjU6vKFN|>CXT}W z%F(O5T#-pFq~TXSO5~&276Lu3x`kDZcCZ1g#K)s=(0B4l_nBUpi`1W{(xn{;M%#D*B1V%R6busc9?7Hx8~7@4DmmqkUGDS0)0Ltecx zR!zyw<^`SX_;`w=g`b%95vOBx2H)mwm_I|4EJAcV;#=E^WS;SD2X;ftEE9 z-eau-$L6)Igj+vIo@>D_1bQy27L!}hD=DdEbKE8$SM=RuHGV^bCC8rar>7pSVcfMt z?^A}CVyz>JIOzr_A6~dxCsenW>2mKOB^<#-*LpZw#uNE8uF9E0*Z8{x(fh1(Bhm56 zE{linn3W=^!s}+c8tYPf#d6G0GdvY2b@Krly%- zN$YIR+ue-Oy*7MFnd_=6VF~pOG=}X^Dz%Nte*_NUBww98R|5iFHe&^j=f$QzbetsL zfA%-chF4$Qj~6MfpIji^%hW=IVNOMZafltBfeuB2gH(`Q82!6tCCWXY%kREFiXzns z@b#e7w+#-JUArK1(>iF&LKtq%4fkPyRV9S<++HcEt@j0PTttOAro>%P8_i!(kxh`DC;|4?q7**)jXX` z;kiQdt8dyvd{d6`l*3MCHrK>zT>A8Rf!i}HqZ3{eo9C>b{9N@EwgP>2Vvn`9+-}7( VD;;DVdJJsM#S5;#kbVyO^FJ3ZO)vle diff --git a/test/screenshotter/images/Unicode-chrome.png b/test/screenshotter/images/Unicode-chrome.png index 6d7472f4a94d7566034152468d5a4ca4d9aa6a8a..4dbd96599b45d39aa85697618b047e2eb7bac432 100644 GIT binary patch literal 24821 zcmbrlWmr^S*f+Xo7^J1U1w^`}q(*6wkd_uCq@_z3P)br-y1Tm>Lb|)VyF1?bKj(eU zxAWydtLG zk$TP*$GX=`+sQoJ1Lp(wrYV27MXyC2j&Fa6rCuKn37QQ#q;wCsm<}bKi_rr>1QFi; z3ji=efdH^hC;-S{{_h|p9GNq^l4T0(v}dI+B&FO&X6rN-AU9Ln(dj76h@+jjvHL!@% zSs31;A7p>fS}R%W9C3N04fw#DUhVlfdlb#D#;VKivGt#z+CGo#j4hs*80(}K-0kms zU3Z(`)_t~G4{vfTl-2&qhI`H~cKj^#9s3>F;e{wM)Nq@3&*#bpF+*5XjJdHqN0{UD z?m^XFd(Dgq-_T{$)jQ`_H9zac_Pqr1Z#s}7nH*lC+xRDu(yBRJ0kPkcKS@?xKoFIQ ze(jdfa+?4a_mP?!VVu*a$5~k&{l%H#)GD)vMGx*}9}&)&ujIp03nUo#6AmqlqBTxg zLI?~%3o(?2GdIFMP47GH)Sz7(%0VV;XjShMc|9}H}k@OIL7l@-5+ ze!ZQKD`%D(FZ9w|a%yb^H>Y?XcpY<`zY&UF7~mV?Pv3raAhiq+tM2~hR=lrOzRt5)p`)RSg_@4UlIZYFY`tRhmgo`k#X_)*^}D$wVl zT1f1C^;qAZoR!|j+^F$c+sTkpmV)@>XSM?Pr9@y=Oouk%^zq-;-gS&utw)OZRoO-P zAARd#>C>kRg#Jytxctap$y$ivBW2s4A~3?sGs69tT+R-qYH}^@AK#ZG#=Zw7l@@Qs zY2nFL;KN6KHqWN8m`*yykWZg#m- z`R*K6u5kOMM%O-kN{g)w?Q9aW}d`%?Tk-A`I~jkLQfcrx)$|i9H@?7T25((%YtJS75E8tME&F5r-bK;kYUBaSVE6-ufr>@&-H!K|edi*gbJ}`V~i7CquDVfpL*omCetT z#{v)F{g{Uru@lu62Wex=3BH!59~1MpWwWW0?$333usN~E9Vl%*1D^T zrLd=`tT~gIWlQ{eAcbIavWgIn_HLSETJ1}UEWq?|@LF$ja6(gJehS*dUG`7+3MP27vc<6l~CgWOq8{l(d6h;DR&Z+#BdpS+r$ z*KFea9LbUfQD-_rKdZ-RqF08C7AEQR>d)`c!(P^a)8abq`NFqfgC24P%gP(vB<7nE zwy7Iqt*4i5isgdyRh*l7!!O@QuI_cA)_m$wVO9Y-s^OjQUd>JF%E}NupU{{hxK*WE zf5mb}ZJ=CpNQFx6Uqn4htXI(QWxjro~9$me;;;topEf&Xvs;wfsIZmCtfmr<6vYO5~2XS z+PA?w#S~KW25ZEOryv^!Ygb=8b3HkEjnPXpYnSZy(|0M$vViIVWCRxRJnI!vkG*2! z)iumx;rL`s(q>CkBKa zY$NZlOgCt2E*YjXFVRa!{bF`(duL`|yPSgNXtE|&P3-mVE1ix}kvSdnXju3DmWvY$ zO(0cJd1Jtq-h^XAZlXLIL)2@y-+T94ihugh)HUje2e;8gA{mHB#u4DU`K?>c_+opF z>PMENz21_y>+jY_@5Ppe$EIn!Ki9Dk?h_*5E6M{KOb1O?00;G>QMch*+lhyO9dBWF zrg8c{+UZ^N9zE|8j1u=306Hv|;DT23xO3{g(Z3%}HH-uPw!V zpCl&pu&TB99)aY-4iCC=_K^rKE2_LrnET=RRKGJ2{ObcCNM?WmlS;`wi#_Fr6;P-&#s z%|K0ZzN;ecm6>HBhnUwQlq@(%wLT{|_>$LqXU*s|my65|1(6Lp z#(VX|fI&e3E1GIa&B=VO*982ex-Sezg64`9HiFqU*H%UDM2+{P<5Scz3|0;s@_b;s z#D3VhT`D=yJ{OehF}eG0zVEuGs!#sCtgzbjgY%A@D*;?g^Y31tNUv_EKJcx3YM8PR zgW4XYlulOwUljS(D5s{OlZa8yFWwjBW}pc)DG)l^%IZT~I1KRg3r8;dB&dC~;hh`v zMOq2FvHc@pLUrpo-&^?{V#v|be}KKIv=Xo!M@4>$ktiI0ef78S`e>2UTVkI+4(yuI zmJGrT{v45{y{>t*__md$Q9Hqm9TjrYLl_ss{JA2{-DdX%x4Mg)%D3`>i=PfT<@LaH zh(Y=GNvqh)%}QEo?&Ys;-VlKnI|-yH0KBVXhHVK3-C$E=thi+)&OQqWVV=(ozR3mG zd4@Tk*qGu6y8E5ox_++sTvaK8F;jQn_(5r}TZ-6)0cMevlGi@Dm(BSk`Be8vx4#f? z%1Vy|;|rR71FN)3@~+b)_kpvv?Eg|8^C3tgOb9C(N|oN ztF6p64m_Ri@r(f^AE1iqj}+*kP4x)b(GO6?T!P3dEMP9AH$zp*J+%tNk z2^0o?0UNS8Q`D3(6{AAE+p~#y^iFQfXV6m;>{jhZcdMsD0S%mVfJ!6Sc_h2c=dSB- zSP3#`crND4YX#>s-&%9D?Lt(={ZR|;F)@FM|0L1?B>Vw0bNW`*s_9LIBvgb2D;=11 zb4sjni%bPHb*>#(Oq^1Ua`*$jN$R2+Rwx5P6P8vB@ASruoVIoSPrEY|;g$C-js33x zQOq|F1+sJ3rKJoZxQ`UO2cr4Kw7CBP*8uXfQJISOBktm^+2)I!8>a}+A_gBYUUobN zqypB(9&-*AWewpb;QeBD$cVukU@B@fg^M!mGv;7l*jB zL5u^{K~RwB*KACT-~VZiWpqOjS23z5r4Wwg@8IXZEU90JmiH}IE#_WhyS(odIp=H2 zKZ-Pb`HPf z9Rgt(RzFq)F23PF!@6q0X{St>qf9v`KNlA*{@Rjb^RfB5*m5Ws@^?;AT{(RKX_cYF zT>g<76AG8+5Kb`8q8Y}11|Aks|B_xcmL-x#2G}m;*zi^m?5E|#O|+u_0_@*<5yI=i zzts4$C^l&isA^_AdW5=u9ske&-i3HhZZ*DE-4%6 zg+QLxL~!8g)9N(QW-0FatOgl*2q#=6B;dv5aQy!>HIUq5L`K~qzD(qha7)!m51W1X z=r$sbzhu_PimEx(49xIz`td*c$4p^wRpZ0KmB5SBaP(HHSKh%9!PdpqLiurJA^c9V z|E<0hoVMM!+(mEwp|$Yy;cL)IWyr{!aE!;^ZcfkByN4F6;xm#6a#^R^D4i znnN@E`xy|{AR{F&2{m(j?+ok$IXA>`c0>u)MCan~9xuNIGX( z_V6-X7JBETR@d%YM!C|+cQx{&rY6Nsq7{@5T%lbp$WV;5l2_rw(JKL03Bxn1I=-WA zbsa|ex|69Eh=pe}Don{H{VdS0cy>4t|+fTM+rCpcW7Ls|t!|&EJ zzH7bE>>@DE$In-w8y1Dq4x@)BiDxOfZ&YWJA5%aPrKfKtCa+ynyO_Y$yhk#8df!g*5s+?SuHweHcv> zUB)pN?j4S)Gx%nb74Yh|aWy4w*F<@>T%kZEt86IFcO%;>oFEUyKOk|*`7dm-S6fP1#SouDP{gr;S1oenKWqf!9f$&pF;*DC(Y$#I^>I9i08!hZ7! zsH)Tv{w~%`Aw-5jrrBdf~yGV5S`0-?jG<; z-o!(WkkkC`v3UAFC1U0;3YMeEe67x25u7T_qb{8I6XQhYB^k%aBcYacL5zpS=_(ISHl6fC(dnxGDrtQc=)RjJ07NvXQOKZlLPdOgRIhU8)zRvvcaBFP>~uV-F<37GZAhyF2S6iK|JCca8Rcw%8EpqF8z zVXC*G<0NdWwl&tFbnUqc`*a+N+hX;PeMQ8(5=iTNFaA4%0PsziK+$sBvIl8~<3sxx zrX}bza@pTf&byNJ0BST5;QYG~B}G3rp8z<#yoyip^7Nb9Ki@)> ztV-!euh>Z8&JjMnv6t+y)7W;h3$Ki{(|?$d2)&bZUcZ>*&1 z!PKPyZR(%KEXitt|69I-xe+e&UmDAc@ts|iBuMX|fLEtCSfG$%6s_huac)KPao^2L zpX3S`b;Xe|@my}$vO%$7spw&c6YC`%4CMnq?zWbhC#Vgq`$BgZIqihsN8!MX?JR=s z((w`EFc~dz-qAy9ioXsmJbhrS4SshfI`|+LVT$Ph0o~v|qrv zNnW6!LU6SHZFP2$W&|YcWRl-^GcFSfZzzl6XaJW^`=pnKk_L_?BN{-zBv{6_O~slH z$=1ZosX}yOTe3!NEioq}YI5RNvVW(laFQ06yq!eM@;43%-YBnlL(FhI92m!GDzIb8 z7_jXq8j~zcCD+iCa)iZ^Apu4m_{vd#R*F8OVjz|inmSiJ$bv=wod`ZFv1m`B%Ou+> zpkdAeGe8hhd<}MI7{b+b4s2z5=!xh%8r>%wo>$`|%*)MxVO{mfxb2_~epm6fpCZdd zWWIx>ofLdR+ky{ZJ#JU|*YahTI9j|370D(Vr%oNlz^(}z0FbRaJd203!{?eKhpX#1 zll0tvR{~zI@6-ovO-A1vT%AwSu%l?rwKJwZY z>F>fnu4#(&w_P!j2S*8fyjgna z(2eh%&{_XwLM$qqes|m!tv7D_3wQ`XAS&exqdiJlM_H##&l>cMP}<$ze&qJAAT^FfxW&FL`l<6PQdM9prL^yO;b0dj=9efO{LHjsvjnTaD(>WidV5+;(_3-hK*cu=o`^ zkX7P&yS4fx#@CX$ z4GGfE&mKxP#r|jfjxGB`Lu{5?)5q2%nyFWjyhAvvwbb*}=K5n#O(UoIEnOy)#mLO3 z9x0UkvEe*h^lJ5fVdAJPF!(O6Nhfv6%s-ogmA!Yd?Izalcu2cZ!NG+bTnbG{#|fA! z&x_}C0}PS1r+BA|H2tT4fPnxFX$POV45SDJOyNZ_0twdPW}WD0l%Mlc#&;+2g=-Q{ zOaTt}pIAOl=dv|Ne)KzY)X&*sCD5QXY)Nm&h_WQH=h)>^y6>6HXx@EPb_GGe#AeH% zI(3=TPy6o=y-%a_aoA*cyZn(_MwKtpY96Ssk9_sfBkc=Fj~CgZy541ge~lFNS)rx6NQ2$G z!$WM`AJ2wt2Ty+cHg&zhK%Lvx(|)u;ulp&(NNPFPh9Rpi+yM#b}BU=?CegnQU4RGre_KsRzqmDBYVQ^h3Rxc z8#$*+!J>St5Rrjknb&FO!=zC7^ii8)>X;q%U#zd}qIl3LhYz3RN^XNSi|3uWbw?A? zWK*uksT(^=@K!L!bc<66aPvL94bB!HBw6@`TF8)Rk@Jxw^cN&$9u0frI*5^I5^1Xe z^Rk0Zi{@55iEhH^k9l+Z{U;2d9z_{8*yzKzn%IsR!_xozKaTl44pi?Is4WXr;HzNJ z;0SO=Vu9Y6P!3qI3+~~?A;?5!*kRBWYCgD$#anrBgkFR`AnYu8Gx=^}MwA`#Kmi6^ z734bc6Ek2pu%kiwKwyE4l&SE#H*W1th*{Ba;GUONDXSS9*Cqc^BVH$-$gT)}=a0U{ zKwi&=26cX~4+=>tH|kzZPUTnQ*ryhV@w{CpoL`KAAQn>!TznVSw`cu4``>J&H~?)- zs}nmZ9yI%Q2!YPDhXwX8oWE3;v)sJdYx!5=YNeG{f1jW3|9u$%Z~%ZC2?Wq^AqIH= zUjtasc)*)2hKh+!ajglwjkh!azEa`OCm|C2&#W{RB76#9nsFHL@uRZRrF&PW`bR(u z3*&#N#PV|8Gq`T9EiH`vNO;j;ACbVE-4`&U!cH|aA1BhA&1?74{q0cLC=q{+d#g6mvqz;vMK+VA7` zY7FqnPe8FnTU@zh0OS6j7`EA^cpSP82^c&wg0`||kSgqAsZMTEK`pAq=d_;mM}(XR z^_&O)tZ=nss3ckNAdKaFmRKoo!Db{n_2pQ_eXHB<6uQM4!=h;l=H&N{`#-hnEC1FD z7P*{**pE*IxR6IE35rf4*kYD*QaI-G+T!wp^koJ1K;j(r_X3MriYRmd=BB zj9vUR#>UI)Yz@hu!};s(L>pxR$*Awg&stMPE<&^TwWnT;fs) zh(#I>n%gLUQh&|AoY)IbX>2ZWZj5RivL5!TlPmsq-Of*KqsJa*Mqq6}yu-m?k+>U7 zz7?|f!y5OnU%lzuicavAWwnBLN&ja3&uS+(=etr1YbNiH-WAs7SrYk{$DTHO8Qzkr z3}dxk=X;Oo#~M|qBAMF-)SfoGjY?Iek!dCyEe}_;)Xz3cLYJ3D!eaFr0gd<9NA{Bp zoMiT*Qb@CNg+yX{U_U7_{p&l78qwu8`%99(@CJ3G2UvhBE?{qL-V6G(kql{P!ZUzWzIic zPK-K)q&=}W6(fHCMYSGf=IDD@fT9`bAz#FG9s@?THz zV<=8K_5UPNwamlt*xS0^?2jmZX6eedqpvtKxcucp11q1h!&IBPH;upiNYn~AWJvtD z+wEqc!erSBfzWg{16SxT!O|d#V4luNvUhBX89zxHNI+sC;U@da@e`Xx81i2EfgtAKDWvC5>C-!T4?*P&dC>x%jB4gXk zD3>|4c#Wt-bN5cGe<~QLUc9K#5EPKGT%aIxY$b4~^=?D0MeSo-OR zY25MzRhjKx&rjWOu_!Ou737|!Q`Dk5!+=g#9C&*qgEtq0Aci42?GH$ARE&uK-!Teg zyM~fTb&FDVNg7zIdG066Hkni7fTEukU8fwkL87DY0rBXKmenp$7W4IK+}|-P8H;c+4a6vI(i}Xn^k-4lI6v z0IKaZrV;Tmz~Zm?fe;2wS;P|IJ{37DSf*8ScA$1hA(6@Ugri&wd3M|XI=l<*V@5bXno><5w|Mf zl>S%T!c46oveEDN3Ex7L$KB8>lGp$-`BOdcDkY72lM zJO4PZEv)-lVQv?HPf4#8b~?gebm$bK(rXCK2T*~QO2ae3Y-3HwBY$8!;S(F zbBKK6%i3}Tng3*`+xt83m)- ziA!ELlX-r5M*IsM48ti}^|Bl43Ti6&+F~Jxk8a43I(`+Oo~I0K?`dP7CvgBRoZ?*F z?;0yV^frWV7uMmA;=M$iLJ=_>*Ce2CtFsJ@dXVLSt9_#Hl?f=0n_XB?eYk$=XkEt> zF9-!vG$N_eyno@t4UH)MX$asnu^Kla>3Od7X;;JLGSTs>$Z(IFL42tY%vI{rRKlJP zAOwdX0OONWCP6tLUE^$F8|o!3pndh((3-ei@Pyqe4GUVXS-~mEDj6o=3cvJ@=S$ zh~cl?-x1^d%dA*E9@`rVO8qqKU6SI)Fn8L@%WWP205s#B%Qe%`~q}f^t^>#_jpsa zYt^MiC9hd71F#S_s;v<(BQ(iZN;FmiAlzYmPHjR8FuQ@T5IcSo)CEc-Ia{mx6!iI$;OS-=a0{!U?t9UG!8Co5Ry&bgE_;YTPujdDn?Cd0T3N zri=;-EGGo$ZX>xhYksVC=w;|3;iAE=PNHkF{E4A*PQ?o1m*6^SdF$1i{9Mds<|orn zaXwH$=}ls|Ir$eznQU+4P|_P5xM0dfQ+{4D;7SAjflBC&M&nvUP*=5DEN&Y70pgDj z$MT2%79OS0{nv@CU+|mOi6K02&a^aN07COR1bAx^O7OBT5DGX1(FkN=fI={87>@QM zfF*R^(NnuoG@6o0$Md$fGIT??CVNk0gDF2;;4r%4LI(qKLajt*#%#d|BiCy1iuDmg zhRd4s4ca47DFQ}GFTgLryG;|>T^sd5to6`m11uL1!idI!m8op0aq~pLppof44sDeV z^c9@e?PBk?FK6T5zv@Q}{^RqF6RuJk z<}&;mFiG}qCguuM*vpyG<}yq=;BLbLO_d1;PMUJz``-bS80{hy&J!N| z%_W3fFzb2HaqCo$u=2wefn-dRVp;gTpGr^ zAO3XruM-mryk2NRmZ2O>EsXTyCPX0MUGuK61FvAWyP4Z=)byo$53}sZw*KK)BKRQz zA8q`6y1)~%`x=y_KGfv;BV?EpoEAmMmw+z`&SMlMw}ROHk?iLC=yX;LfPFBO&iZZt zSU0HIf>%a?z)g2!s7FB|L*GO@n-(H&t@FUT;R)ANpCZuhZUoF>tscd_Um%=`{J;H3 zgzfyUhTV`b+PYJ**Q|(w%TM02r0xh18`5wo$Y9gK3JQu=)wk;r(XHnQ*9x(p%`UlOicPGK+dJk7k5$OODJO1@5FiTPFn zSGX+&`Jg{Q)$-T{4T5(*tKd-@`yj#t4WWgmsWPNYpg&y0+}+vL^Wld@_ig zl;GleD3@|Fav8MO!bFx3%}~tS=hJkkm6AADd80cr_n|hSv z4&(pz?{`q_BbQ0sHt;Hl`5+uY)XHDro6je!h-!6Yb}VO+|DglOe3j_K*x75?coT7Y zc6J>Vo9-N*{Lr&&*cUe_!j0Uo2Y9tAPT8jmfw4Zk)0>x!prWm#QIS<0NQ8E9_C_^% zm6egubL<_h>^o4B#*q>Jz;}#fWT^PH)^s_30Azmv&yw^G(+_;ZGwR9y$&(%C*aFoo zHT>NTqj{jNY)VU}byY^OpGYbX$0BT z%8|URbwu6)0&l6P7^Mk$kHQ zfT+#|9Feczz*1OwpQ^H(UM{hycSp8eCYXCNV*JMpcnVh;i`Y>IE;{#U`|NPwm`gN| zG9+#7G=pwj=M^J-CxUc`PO`KhR+S6oe(s8yPryY@O9AifYt|dxBkD(VA}}avO9b}s zn#AS05zsCRX=sClgX4!R`AWqzw_iOIS4m*q25Di30T9CgOVEjT2iRXC94wQ)-dVKY zjFJSgiwzh5IEKwmhzj*ku9M^JGXMCMz zd!z}5UkKr;o;}L6=N*B|$naw#mKXTK=qsGZx1N$0hXSpqN(Sa~N~ObN=ZRf@9{?j= zj5L0EzOc3PH-NUw5>Ez&2MBZXkgMqsw-~D@vr~HtOdQ#TvETUC7o4{K8^YB^i44s> zX!@p5qeo_iC)On&Hl9L00G=5O=Xj~nUIC3=MjnYY`SqI9U5_*mOWrwQZBRVGz#`Rfsocf$2S{==I=O$Sp zI@ossoruB`ebMxhPmtvm?NKkfI_Tpie#B1<`~3&S2uC&G5G-NSD=io?_^@2x@ZHCV|jaCITE(Z;!B_+(01c9cC zxucCyLU2%%Qm5GCR+6wkJuFd6-rwp0b2N*?KbcbEP_}a|8Q!}Zyhv64Lgii^?1H6H zd4TY05ZXt{^-NK`fFCr{L&>-AGK*+>Xnny`die?w2w`#*d4m?_Tq7+{WQ>q6m$~U- z4ZbKqA;7L-n=S&Q%3!R>a~b~xpyzJ2E@Xa*iFCuq!>juebY^DcQ^8xZFZSJUQCnJ+ z7;YX*MeS~J&I+4w&!L|0G&q=MHuaLKLuBLbY(WSVOfbhMY$LLyO<6#UnPI&q_}mJT zcDeJG)9El6*{+3xqomQs87J&zQ_pk?moC&7ETcFpkvc1E<$k?ie3*1mQq{3)v+bN@sT2j-@a1%GIVufDekUS1%a)dPO?XI` z3EWj|K$4}JF`$XcBWff&hu>qr-S$?esJ0p6Ak-fVD66#{pPG;G>J{Kbi!ypBAjt~L zz3JAjLPRf)OT0yiC?yN~21dKiGripfVZ2!u2=h!df_r-5? z3(|a`EYDtX-Uyw`xljq<+XA3z%WIOf@>50UZ)*L}sWe`qy{(uqT zML5<{*ik{sf}H0Ar>r$_5$;(c!?n)uc{Cb3{AC6KtH2>l79J@v$u}m#$AGzULk&p| z5=I$n8Xg)hN0<~nqB5VFne?ve+vtYJZ;RG$5&!u-8H6yO$T+&Cj0Y$R^8ck~d1S># z>9{q!CRRtd`&{TNBV#Vr#K%Ox6?h4n>vjt@@6L!@)bB$R>epb0W=XSkhI=DY&X;@N zcprXB>dbs;-j70Y&2UrR9`&QEkFp56nY+<=RTg%g%_zzhP#u6xU&Ld$SK2t7lQJV< zhO^ASiq=8vev;c8ell$Ny!Sx4b=ujj(ZnAw%~1EW$-!S)sKch$&(@#JoMdp#)cX5R z+?EYd>+?pE)+LC#H=fhzN{nxqCgd^rwbS==9lWvg7^T>wiKT#S>qP#V^v1`|iyvmY ztI90S&nG$JEPVqL&*-VmaPNG3aZ!EzCact^$939T;uTU6>7gaV$Ej9(w#|myOUXv1 zoMgc=dkbu@o*2I3gZP@$aWgmFH|M7r4-J;BBpsQB+hk|E%QeSDCK8OWI5J{}nrQD? z&dI}Ci=fz7ZWgGiC(}X`%sDe#a2^x!#IBoJx&jgm;szT((MF{=xnui2D=bVHntR>T zUQ=0tw~e~#9tQOXFU}*9H|DM(S|rLtPO-!RQ8xK_whOsKhimVZeg3fZlN2fyjrIz6 zCZDhI)|}c{2j-q?jx|gU9)1_2{a31rl!~37I-IXoecD#}pmxuU)-_Of#y@&rZopC5 zd8AlmdW)-?tA^wC;SX(>kC$<2AATQ&MbEqW$33H*<|vL%XU>G^~dE zja^@>cPwY=D;oXlv89VDWl@8fDoF1~KdoidJWE|gqmy(Am_$&0(f)Mf|K)CJL_CAr z^6({18=bh$;P~6$ewvI;kF&$E_h0#dOwARa>@0gARWd@jn#ca~w+)zzKRqbFXrz_Z<6p0zCySn9mq1Q|S)Ht*u5QQ(+53U99M@A;jL&$)N-r91sxE}Wu;yNRJkolf&Bmu)D4DnWcXBjAxR63 zWau_oTs>Cg3nC{8PF5lybbuHLZvLLz*j_tQ;l^G2ehj`PEYv-P92s>BM$Mx%nc6x0 zFrjXOZf4_=MXP=&R-5Prg3`!C(q1+Zheg*`1jbgg-eA5G4`rHTm?}o}P+&ly(xV&S zDHe#<2!7~j3OdZwVeie6x^yE-H^X0j0A{>Xypj()?X6SF$26}d{-RF(B>*73h#=Ny z<>w+%4n9C;YHIoQm7kOvA!`a6Oo|9Kt!4fTl;9n~&fS1js9M#llqnmOvp>k-G`em! z{HlYQB7zn!9vwQux2{iRC;wng2rk;?r#tLSuV3zfU-_^{@xDVezy1epM8D2l!%+@N zdT9IgSI;6uGW#PD>WcG+B|8Im2<`P(eVwoC?jM%IoXBCR2uK%>BA9^{fe``RrEC>k zov&q(fDl$3sMvG|>`g9S&-&kKqS+gth|jC?AU6a#06d`o?^U<|_s-k@uYu8%*W=$f zVv0~Fmd>nDL@_8)b1J91fszIV0HJ;+k&c@TE_5F54lrIMU=flV@A{*Hr17tTfo2{F zgerLM&f6Ynd+t<3ZcJ-!$}m;;x*tIoG3WzW$)qm(vcRgu$oIRn1o-Ly?0z#U(g9cS z5Hg<8{VZjzU4pt%^$d+pfK-U#z>xBd?eon(S8MUp@0?l!%LJWz%gV#ZFl#D}U!>V-UGj zU!Zi(e2*1wu@9|52HTkui1go?rukO=8Qfd2d!FCtei*aC(u6+Hcnuxr=wQ9d3t}hJ zXUZG|2_m7w|Ds*6dhj6;dbZ!=%3T{Ijn;VTMXFyi&#NJiy!CbOV!mID80~^3fgmd( z%rH%E<@a~tF5Bxbcm9la9pvXujr&>WgX{izu#vN{+=up>>p+K~_Ml%sd^M0G+K`>G zFN2I<%=|5Pk4|9EoV@r#UI4svpL=f2zpkx|uFl@G=6H%7-GUv2Pk;q9{zQ{Gj+F;8 z1Ka6PMuWyo>s${huk!Aeo{Y6U+1l5UQe>_vzuuh)W2`hHOcZqUPcF~GtBB@5+JKom zv)TJ%RYgSW^va7v&jN1v6<(_fn_Z_~=$;;6NFgy7r+YcpaX3^Tkglu#}vitc&Ag3@U zvI4uQ(x~I8)!X&Hq@t*|meNHBsV4|g{oihP3T(uIwI_JhPgdp!>VedOl5YHDSJA(* z;m1{TNtx&?4p+5|pb+JGmqC|w#qcUYg~_V9=Xz_R9-kgI*d;?Wk71Q6nhO{eQZwly z{7)V9)_J*%mvAzQXGmDzEU!dRA9BLZmbfo6ZupC7k2AM$sNR;i=bH=*%zMc*PZh~Y zN?{Rqd3N~L3DKRRuYH2vsH+a}yPGe0W5t8`$fD>7;0cgBNX1NKOASf!IxY4gSP)YX z+0Iiz+j9HqBvy5Ig@C zkd<-NEqbwue_X6j(l1A_z^6E>Q%NEcRpLUVujHu;8Pgpb665RdF(Gy>Zx%Cu3JSgg z6{R5?)buXM@T8uMa7ScDC<2cYC{GGo8$UKDw>LBL*&3#SD9Tw9Qu0m|YSA00f zg{zXj<=~9W_QAhmkqcL^%L$h0JD)hQ2lv@!$1I$`>p7->1VdbLpxRicvy^{;oeP8W z{a-j28tbpG*^mS=W+5Z7DVXhc0vw}B&OY#ZTPe(2*V@=y)YJik zy8Hy9qQ~p5Vj<^45xbq4UY>1^J#LXJkgl37KviZcK@VJhH}X|5m5aQIf>Fr4hA~~} z*6Ack=e~%!}^CaUJFo0~^O{rLzW?XKG3%X_~b zY#ffxLtjzlR}UbD?K2)`O8O3BE=eWL-d}S#EZN`&0qkR3lJ!*9UCYuZvXz7^*eqCuBxycRmB& zqv-42I3^;JEN-JF9nc|hZji2IxJy3`(B+jdJ@6lLy8n>F50B7I8lp^%ytekW2nC(@A-?^Y{p%XE&i5w!H$g< zA?$V%7I6Zun^woK9a;IX89qpx)#9|+Dud)}^+^*ig#2r~uIo-Zx*D*_H+qVkMpLZiIhC?%(}gmfvCH8p4DA zA}*~vb#y(m2=;1DW5fFyMb&R}qwB?V3E}rP1ur=eG1GkNq&sEp)~gN0O3*7r{oa*- zsxqSRR<*S0Qsw!IVa9Y}e2JJCB8b`xfrAY<9y=1gugWEyHwn%*18az;;)GyruQbXl zx=FF!bvg2Jxg{cyYvAVT4??5#ltGqHG#C|VD;Z=>l^4sgA@}C)X#LEzN5~O~j#`WZ zdvOX@Nnfrz#j#d-(&3R1R2n<4IbQ!tvGhp_-6s=7ga@f9NUuTnH2T<_78XNGt@FF_ z7^#O)1K=yAcFL;x^!sv*N_;6-h=J4>R|{fSn3&_IC3bXm_IAV7b9bNW4)r?><_ShE zG6I1b_iVvLQySxUSYBTi$ZZu99&J|jW>ee5;~C;Y%`}&1d;B^W zgcuG5-Ma$ zw@~QId2GpCnxxa+w3&@XF~J-Ulff$9MG$PFA;)cgXtBZR*opD`Y0G1w>-z1m^vNzA zk`82KP_kd8Yk98VUX@xa1EZ-;1BFGjPm+=*;8i9fzkXbp$T57nSeq{>=B!5bXPrDe zq4jSu>7FPRKw0g*ee_dWsZ!{1%CWmxd+RUcgNA?p3jaUJYf_HxfXNDHlp-8>)xp&=l|AKej z56`!=)>$)q&+M7AX7IuL#np$l9qfF{V zwho;5UdCnF&CHbOciUn4!0YsP$Q#!t$p|kaQoKt+055Y8iea-9=2B08_)IZ1ZR<23 znC#wrwNx}d3E*oPE{YfOxD{KKm48E2|PUw;Bmn@v)mG1NsRZ<7o{;%CFYqW;${)GLA#8;W1SBAZuwX2u|>x z>(=z=XYbq}>VJZn?0Q>~^aLsc1`B}?Znei11Lg+5Oq)ZmXZ-`oa5f3WfBooaAn<0TMvE5%7-5xMHt2itvmKbGZC`WG!g41ShPJQex7D4PtvFv4 zkHG30$_ZCw*a1$a1cI@4-IUpi(sI__EBIQl6RsE-@ZImlh7L;S;`$+OI};009whu{ z|Bqe@Gx?eym(U-r84_?G;7^m>ALFXPc}q$?hr21=h}@g~pYCe zqDp|3QSRKCd0GHpq42~JmpeTX{|I&}@SMf@$u2f$;bT_g`As-rhw#jwjx-bFg`-WN z{2RYEx+4vSJz3{-7VbdMC4Uz2YN*&eOwa=8fuhJdi5B+%^t`%3e!U_>M4C+Um!OLV zvy(ONY5*EN2^FhXOODvyL2)I`;(5FMrS6hrl-_lrQ5I5lDMsC~65l*F4r#l`KMa?+ zOS+=|k2*kHPNh~}bIvgE+-xeOv&#NN_~8Bd4kj(JiIm^; zi$;7mtof+@yM@`=FxigJ3lhbtx^)&C=-ha-(Wm|-T_=nE!}K&Y;>=DVQ)2eWO;qlC z%iwfc28e*EAj)ETlqZ@=z@84hk>hs)0;@b>>w6q&C}N^ z1j2w3^-dO+j!;kItfbZA3FqO{vo#^h#i`@`384=Nq)o|$P?|)cWzsy^8-Jx}0!LT8 z4hjJWGb;nGcF5;ED?-+dsz;6Hh{@u4xB13JFQ@pX;Nz|N_4MF#rGq`f&|tsTnn#!S zHRyiro-EvHd?%7Y_Kk>rr{nsv+%eRLwqL4#e~=`DMLe);QYY-(X>x?D*Kjap-s^CF-s?s6q4GilOcCZ1(2j;#l!m zeW=B#V1nB-z{f0LeOHzGjLKwknE2og)w?eE(`@?!?V-k7ttp`HTO$p$ah{P}Sf4oI zcMzBc!1<3hI5$fBZx#ZwmF7V`#6(Nq)mH_B`6ptjzZf{r=vBEB^{nBoxmhpdw&Z#J zXmx?ZJm_!g`0j0N6TZ>20Rw?TVVO`R`{W zPlxf|AO`RjyrOO^NA8w&>R+91&D)k&T+~I`jPyS#%Cnf30eB1JU&rH0g{ObF^Op=l zthVpq>rFwNo7QGhlz73Eh^TMvFB~|uQ{W4GdByb*S1_@1TsJT9-V!&O*%UzKgP#AkPAx^68{4r}G@PShXlk#O~2Br3@j`XtA0A*yl8Wdk%2w!_W9r*Pls8BfDDl zNmAvyy9oK;-o9PcsbnXQFLH9=2K3W^)V)^M`Q(KswgLKhuER7Po#IzCpWeFAS_<|B zXlVMk6jIu|d>K1pz1=^`vNbTU!3!%%=M(#RFt-)`X}ZcCtb%H=leBO}iRbJ*^b1!eb6lN14hx*M6>2(HPN_5>PBQ5!Up z@?bXaMskcPEa&c9=NF6TX_qy5amHR%;ycL8=V1k|VhiC~CV}twC=|T^7X06c*G{+$yL_N1CL2 z_mml(o{~@c;0~|gQ@b|xRR@JX4&%wCH)-<9LGuKki4dTrVA?o~(xsbcbtzT;<^rp1 z^iCuCJ`-PRyyt)hi7=FepHRdZw-kL0w{fr4eI571X7e{#*^{qh6w5yrp;eoa@a}SM zxS3{_HWf`$=|!#cxjE|Scn=m-?G~gF>!SCHmAsX!hcko&UCj{mcr2%~oI^YMN>rn_ zXeV#2xQ`Nf&}tH+cD=@DQSI^2z+g4Lf3m6KP?gNsuV-iYIHMtrr2DF@A%DkSWZNXQ zP$DyW9V2FKV7WK3@vARUXgZU{xOsBD`)$QklEkP@y|iwq>&%7Qv1I7eu_2__uG?z> zREj_2$#~$;q4_#mN8uJ~bfR|n6a`T>q0U)wAw)rm6ce#EBC3~hQj_F&?@<_XVsgGu zt&CrqIth3Ba_N=4%CDV%t=wOvee1}9wkw(mao(Mu3VkUSlKI;_7vD*`gP5N?|ZkX zzKo{tDG4sS6?>bNn&N^NofB0H)EdZHxwB_DshbxEqDL^tCk8%a1ZeY?Ivk>fy^GXqoDlKtb9u_xu zvHJazOjm~MWMt(BJhy!V>`rUKB@~#O_ZvL}u%AV`j$5-r<}>8OBoi!74FD!lWq=6* zX36Gp$@d%QoycNwzogiT`e@$|D`8ud>qbXXX05aM!)Wh*c=BcQ0-Q5G!CUXQR@Ym{ z#PLWIs%sWwtg!3as)Erz>ok{Q;+7_n)?dUe$z8ZF(Vcx&5H8(xz7zo?YOs~etySP) zjdfz)9tphk`NzOhbO06zsy6ZukgIOMWNkwH)~!&Ql?PK{a1P`~@*uxtw*hIL!)i;n zdN0?TnV@aUrllP7jQSjHW}$m7EaxZdM#a1sOi+uzrM;G3LlXTQ)7<^w3LwW11l(Y~ z<`HP~Zs}&VzqnD^Y2mgbfvp5$6pN&GWO7O1=!1<)T7!8Q4=HwYQY+&}QFziD z)1AhJoDHi(H5$n(X}2YwCJJXOXV}cQdvc2R59UusBGmXdnTFVu_I42hOoQoXTL~l{ z6@vB8%=j)m9#8s&J-|Q-2NZ&b(ptLzbT5|W27TQ;d&)?Gsyu)&Jr&O2N4{H0wd z3N;*-M-NgVziZNR=5Q-fEB-|(Hgz0(q+xV`?R2-4NXsI(rjr}OnN)z@5@OkEsyO;nSVE42Q3lrPh*i|-#nsC*g}$&uc_}W-qxUj7 zbLcXL-1xh;<_@wa1N8<}Mg;P2s~Des?{oq_&>RYty1nPC6Qp`HQbskEl3?8~yq26j zuP5OH_DU)qZ<+QXq#6y=I4I}CmNq^y654eDZr*V^5&b4slP>D-z`5vp;QQg;*9h&- zjZ4FmwQ%{2|6!fk?i;o?_RK&slXrYo?s;mTiHhsh`gD3qv>BzO(QE2gJ$FdMOAlvS z=x3<3BO=A8m-`8AvE&j_ziqkcwzP#{J?2JFv@O|G!NhKd&48r zKZ9213pp(4x+ysxO!|zi2-ypwDRlUgaNfZH1t%Z6&oVcKHr2cjvtGy3U?WMFc=22( z!dIprgGloiypx@`7Nx;m1RlK_H=*Ay@^n4pv=OP)9*3h&JbZ4OzkQPxOx()5Wu_#q zR3yygz6U5Ag0!J&`w_VeH(w(Qyv@C%j^6U`QH0U9g{*>DneTy?9G!zSCG$}E4D9Nt z0aQ}L8Kv~;O#@jG4nrOBXr0HSo23dYuphajuWXH{b;_PLe5GpMPSQRij~ndh$G(~6 z-rl{taRVof2SK{HscsEpOB5lMXVix8uWH^UIED^gS9OGwdzV(mGb(weR5~>&a?r_3 z?7FSmGcvjB(L&qN+<}FXnTi3hJw-9`txa{Ucs>brnn0gz52!(In zTg3va4W)#0P<+xjA&OO)z-lY9xblTm!0Jz=`gE*8uCzycR zj|c2<=aS2Piq(0+lGdpTe>;I8avY}4I*}QlicDa^wZ7V2eJ2O&Em7E2#JAFZ`_N1!bO}Bo$XE=JpyOI@Cr*4y52|_r3g%_)VH@Z(U_+k4m=>Gk!_C%xSs6imr^1>=e~u};lWxYPno-IjL= zt~Qd}9ICXeQBMQs_CmB(pY=P~7>sQQ3grufx)x!+oZ2HcRrKmit)NUc4!s(UnsDHT zYLCZSb@IzQuRi!Y=v+$-BhXhtl_1i@^YWn%eTd})73bI|5!Sw$yS-v9Km*?`qbr)% zuq^&(h_|)$#$1V)iEkdj8iHT{vsFBni6>Xf)4N3rkB!m_#JUgh@sQ1Q9f30k<1Y0k zN&HG%c}zpgtrn1t^=!X$=Gw!Sk6i;^`6p>O#QrKAS3}rqIw-J1v!m(3t zq2+B_zXY0mI=D|T>RDU2`zy+KRhE0?&L6(VN5cUzgyIYDmF-OK9e9s6c08|q+9rLf z24Ep&2G7uv+IJvaHUfO{JYdP? zW^d+3#b+^-wQ0=f_2&@eKp#pt%upNN7EM#D$i;_L)Xv_puPWxfgq{hvKh&nBdiws7 z0h77`i!qTwx8ebumWh24arpT=jMVnvqhQ=R>50t%o8-1Fk#*kM4Fu~rSFCU9djFHL zXp!do%akj!9t#R%S=d0iaKXNVAmFoD(?WP_OrIXQufaZiWw6w|5I-$e1ptGB%_rzV zOJ2qgf)`N_`|B!>T+N;%#fppyAXB)X6lOX^BsX!KXOg?=Tv=0!a?V~Om79Uu-Q80SE;Sc~s& zKg6WHCByXehhF+DW(ezCeDan zC@0@reyfz4U+<%EuR2$>tPhyMYowg=o;B}g=`4~we=^-jy(2YP-Ttp@RPGV z+L#i{P5Mb9^6QbT6k#h5BzRVk7Zmbrh`4gp_rUzO*cNOVTb@kX6&%QAqf2J;5w$F4 zYjP!L57h~^f+xv=AELA2@li?z3NxQ=JF^21QcC9^>V8|lZe;*zUx_KlYFl5NKe6;nVhN5@#oTkxx+C5N#uC`3hFa}}NMn8q-Q$d8kW~h>A-e=XtvwHN$R%9<0_Dk`n$`1?NtZ4G_(a#g$M F{{^i`B**{& literal 25212 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%0A!n=?0Vix=ZC1s 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 diff --git a/test/screenshotter/images/Unicode-firefox.png b/test/screenshotter/images/Unicode-firefox.png index bc0fc1bc05984d14afaa2b0df43c05a80ee3f379..18afc71dec5599d11499c970a70beab1a9309184 100644 GIT binary patch delta 13625 zcmX}SbzD`?_dR^>1>^!MT~e102`NFkySqV=?rzRSL8TE8kd{We8?K~)bc3{Xcf*hO z=li^#^Y@;$cFdevduFD8L8g8|V(1|074!_0PvQ>4f6;NrsZ%oJNai6`^YmyI-X86h zksO^t;=(AYpige&iYVWLF|{s}SlqhLPetCCF6hmrSKU*H)(8H3?fIwW;1)k>P!WHh zGkBGR$p;QZ4)-3--3|ObPxst9IFH7L9%{;tV!*-cqxR;U2{I9=AmPAH0z11SIuuqZ zsR4yfJHELodhIY@sC*(o9i8aYcYY)e1a8Z{hWIl%mdlKxl~RF%t1qKRU&9e_K{|Rk zVwhUXW0TR}xNSZo`qh(5?215tW@^MB>5IQ^*F_N*#ouRP+yU!FQI_pep2Ef^pmcGl z;RkNL#k!a}If_P}brZ1Edt-SZQh>dhjKcAIc1RkOmqu?Tp_9LfMpTDg$fEp*+@ zXC73@9)6e&@&P;b_emS?jMPK9^&;K6(iohqMmwK?7>lz-#k)oA<89U5?^_+_`>=nE zt{$_^on){KXvlnFA?wDQ!t&}O`NQSlCC@RsxQflAsyOm_^UQy^!f3Dun?#y+s!V6Jn-M;Cs(Z%y6w*Q8i7$_%rO7orDiFZ zldw;~?fBQH(4>@HMw0-s_-pL&>*PIG>@1~?4N&+<8;Xi!2Vvr{t264sO4vWcK|U{u z;|r*z6(>fTEvGkDT#Gm}&?f;pLg4&Nj}}V@=p>_AOBI%EJ>x-a7@YARL)@w@fEzovgEI6>37h7eF#`&z_rFue5c>}P zFiy!>sb6y?MDA;DuAdU4dDuYtWt%f3JdGyY8R#PbOj8$%F0nV)-zE1gs1YCSpCxjm zdHJML>;|cEk1+O%-ntHE&{DuMNl-JD#-2KVD(RTe2K-d>4aZDyv~w}cvibuD%?Sl` zFAv@PDftH$6R9GBgftqV17)714Fiw_YQ}6~M3tnmVA18|#^A7$ah&TILXB8?^gY!Q zQFU%u*9bGq@Wf3#Z!Tw022Mice>e>_4ChC$x-HJ!ZZf@w5JXz2j`g4W|Ld<243AJj zwvZ(bw5C4@oK=+>zgSYvsRdfCs1}76YP=@hasxKxe8Ryl)%tJBgb<^7unl}*{79V2 ztss4PDPRC$imOqgDE@lU1?3+Wzd27Q)UEdV88#<|-P#@PCgpvpYOhKb=uD6ToL6dN zBn!0|E}Hpa9-ehwLjwP}y7+9NA=yXznvC1H6UvYGD416-b$1(KT0ddP5IHOvHozh_ zVaKRH;JX^|*&P(6C=UT&TvTCB323yp9;GpoZGbKqW=*Z(sj?9Zfj#EPvTYl(V-Z{( zcoVQ-KIimYSJh=7-<+d?kWZr9Vw9Trzlzu1Y?gps zbk`k;zwcs1P|W^*GCKX9af2TrY+TJY(;mcHiG{exs84T6B?k4oRnCJ`u5?)`lYfc< z?AFjriTD*mpbwSJRCVkZJq{B0j?FBu;C5wOqvOC5| zt~K|5mVpH3F4y*l?WQCXvls1sb?`svl4j?p&t(}yERAEe zcQ*HgO{bNQI7(q5K>X*L)I_qhi02T3ZIqgjwo(zj{RN^SzI$0=Hnyh1HV)Gpdfz`q zknB`>j!otgRfL4wyp+kkgr(vUe z0aD2UeJBQ#MVIm7O+eTaYYwWX)BGQUd_5SkVw)E(ZSUHDoEl}A-q-OAt!5E;LF~&4 z^7S$tFwx3CXs?hDu-5@1R)%BkLMX2`=xYH^!^_|e3`crufI50u!ZcI^ih-E_Xx#tQ z3}0-77o07+L8%=u`z}%~BI%yHa@4K6N!!ymcyY4^N}s^|nCH=)DFnSsxM@1$g7k`0 zoeUt&ODJ~2esGVypyKwpc2B~f(;18_Hc(TY&! zp7xG6Nht>x?jkwHtYX&LPw&=1`4c6)+3!5Z{fOA zeD`UA4kkgZZ!%0 z^X0m4+N1vsaYT4BM$cFflGkV##-~oC`A1v6dRF}peiUAz#FbHfU zFfB1u;{zrFyDRggVE{_fdk>zkUErXh*WL;o^uC;#5VffrrO)Umdr*p|)inlL{+;ws zHO89a=GJ4Faf^C897T3Qr#sx{tRxve0{k{J4ccUN4c3?A^jS>kxUeNVlM}@i2_46^ zhP{*auxUM94XeU(Ggl0_l#WW50HbH)yFYeqKI|4ag+O(*G(Ye%69hzFLoY?Fagije z$fKi}&*oS{$uo9Ab~;C78Tmc9#RJ{pm$%1OV?qaCH2$K#isl9RqS`j~$ZGI=La{Fj#7bVE3f?27{)cuL)-TlZ z7R!PktIAMsy6OhwJj06!{BU3pTs4g@Zs!w`rE=5sqVU^0>Ccck`9t_$;83R=wx{31 zfy>Y1Gearman4XR=72PZk#uX+!1Xxba50?nY8A?u{8K_T=oMmyA^%8SEEX zMxhrOC9$ue2wJ9bDeHgrLMDBDXV~;d8U*~!Dg($3xnN6u)Twst0^weNH633srpV9& ziDrR1CjS~1@p38s>ytOw+o@3KzbroPBH+XI?BQ4>-|zxuU{6gZRrL+SGQB4bqnmY@R`Ovb{mL5n;wItq%;iQG?WE8C~q4Fx^QPOg%TUD#by+toJ=+ zpoZv!>TAP+e84fs=bq>>4ND;B{h)mjY48@xCeFU{7dbje!S1e|e^*|S3kWTkLrM{v zL>|ueM{Ten27e4GQ)oPo)ds?j=|Q^JQZXctv!-i27;7FC2WfoU(IOF`KHPKcbCJ7h za&x5Xg>IkTEi>7Y!u}%13S2FoI(n-356FNHr*mR;cs5{|JqOKeLDgPqz(U{A@9^Y3 z0U}GNYtesT*ox?vIg;3$w;gxOQ%C^vY~i0zUy6OYkt$>|9P@S%T~PW3r71w6uWyjF zVhWfZ+r?$qRFxt`V{%U?yIT&{?E>?gWbBVueuwyORbQmp)bfcKfEG=v$5(4(G4!PE z`6Z6f%kVZ;!;4R#9^mJ*-@D)>q128c){xeg@wGb-hI%Mc)}`w-CMi^R^Q^;h6^i^T z{v8TcTdy1!7_>W=LletL)FsNhBto*U?wVve@sEaskQ`#c6_Jf>)b0J}(_)bU_AivL zoT-1Es(;R@a&RHdFcsOeE@V-1p}_b}jMCEEsLzV{c54n+T!hdS0+?4kJI9}#XmJ2+ zbi6gOOq|<~G!9{?hH?6jDy!U0Y50Sqb({QIuzV|;S@EVogwvb$snOlH5lWPL;$w2U-L$aGwl&7&UP#x zJAwuW*#3itKf}whhLX^C>m}W!|_fgnso`YY+ zJ|~~pw+bB~nCS;_54%pg!>9G4O`=L=9;0jNvZYmWAw(YRo-=j`$SAS`BDP3eVqSf; zm?0{()SfyiF48Zi6`!ABD7@`QdBcE0O8)u-64WOqRm6boE_=;IRWV6GSo16f@ffZM zkiPeF{Bx%yx;XfU`S!JJ9A@|)-taF)dl*0XOpxhfCi_N4-HVA}@V)yN*_REN$j!x5 zTpX#lL#{=J<^?Z%Ujn)KimW}NCvvFH>~pi)M!zxZLIMQJe_1C4@l=?g=LG`6j4!%}a;$*H2XF5E6k$GL*1MnY8ob@_;?2`)=K; zU%w@#S}yNfZ>ek&D%$D1AS6{3tSFknP&2FW031YYC-fENa=`CLK17$jU9w+W`Y$X0 z&+K+z2uWqX-xa7lgZxD_NV0|>Z!b2{6I!6(cZRSbh469mh zH7m(E%r)JuSSrp|G;V)>b#n~nkFjQ8#R;Ki+KbAl?wD=+5x_F#Oi6N!neGinF_B+J zdNb-}35ZgM3hIrG`krPS3u>e`H$a_Y%-?R0;~+S1SY@EY3GaP$lm5v9w^rYc-p}t> z@^6L+HNjg!{!1a}8~R3R!13+pyMU`~n}o=AIt~a^k=;(HvBZ#NDiq`|7Hwl;GrH%o zK{M-=T&nwri?JkId&TdS(=aHDLDQEc{jPXCQ)J z-)=hZx(R0H_snEz&ulo;QMT+MO2#a^U)fGa^EVd$+7>HCIrAA0!cNDUO z2NTkj0G21w_s?pnxhivid1s1FX$$k;(u~pv7H}54vieBN#*2z<`|W;{z5g3EGsIj` z6t0BDfoO~HX*~~(8{{Ab`}2#wH2pR7#S)ttkP)?du3zRxpX_l_Xv6L9IA+$fF}rY{xFgPR{hD28jA7iwgs z>WVLB9dF4v1Xw}Y-3v!?#2V*5Qg_K+Oak~)u(h!yrJ8+3tne%N)-c12!MohIvlI;S- z+2AIU9hXCw-s;KI_S8%1LUy?)xA9AnYvLX{gOo>K+m0e;C_@4Qt_%>W8*sbGa;Tc; z!f&cC^&@@4E6U&~=8|55wNU$GHC|4)1SHL5+5c5f2(VF0JGgw+5J81j$V?5GziU~w z<>P`_<3db{^F#0voYfp-4aJBeAij%~m3dD068+<%UWMzqWK!EvVvEAf^>NJ&{x2y- z1#bvbU!RGLkrpJ<($DCGt_ZkaI+(715}^h(do@K^fxk)aht-92R(~JeRuPFP%V9uL z`(nB4p0G0I#Y7eTac!k_` z%nETQwql4v)!d#f;om#F_wvytaidOfqM?Mo`jkr|{*{&xiTiq}B(gk2U~XF54E@N; zrW31_1AOWnhY9tLZj;`KZ~TIq`K(A_o}M!Th&Z?>_@%o}ji8k|g&P{h)m+#7@)@LI zX_^UIGt%Ssgl68Io*9qcVu-1q4>hbd=V`lgU2&LOe(&q?AQfT!OTI}*hQmFRZFM{%5qfvP0@_t9V5k;_=t^56VSEQ%Yi`ixHKfED$XS1u%-W-RpIy8 zm=xjqPjJ?JTcJk`XJ>Cul6{xlrBpeDeXf&+U;G|Q`{>^Prd!cLEyo-F3Kjm->yG)> zkW+ai!U*U~w0ArLmI-ec9nQuL*v-)*-sXL)4dte50(73fUU`2(?9M0+N7U8W<&oE= zu&YAc*BsvH>P>0_(rG?#=f+ac?ANBi!1Ho{)x+nWzuZ=s(9D$Hjju~vHkC9(A=5ka z7r~s{=SpMEb4;k2tc5@GU%Nc-VNdPtP9=XySy*Ua^v96fIF&jSt^6Rv)Rbx=ndC1# zS%pjuke=J9Ft2X6P26YZfCvrDt#D=bXaaqU-2ly8M+70On0-m&fWs^@+GG^eJRHm> z1RBylRk0)&4s3fo)73J9GL7q&EFZy^6I8d*x6;B zps-K39_JQC9>k=YN41ee0`a{5wSM_tY$caYFQ^_y`%Cz`VCw$0il3y2#jFAdaTa|3 zHNJuszB6ndEy;9l5q&n-?$-+bSnMTgaWywgKCf(6zX+Iooxj5&IrgmI@I`-$-RX9* zLwoI1!^X=1|CQDT-IJck_c3b)IBhP5n}@I4m9AGrl>oZ3n@HWw4t%auJ7_cAEfe_= z&C_I<*QV>-PbP|xiJNTcr`tHc64^b4>DW{Sxn=EWW@FyI;W}NV$!@#=Z`@BeDPQ#M zl>Xi6jh@=)uLtLx4x;z|WR(2FNN~(>5TrSi9OOyg$$PqdgToGJSL&fIofsAi^#y+2 z))@}a^WcF_vnpZS4bRgmwT;OQ;pTnT>0g-XnogQIjE^eWu_7(&pW7b_pwKJ{`F<)= z^f7AhLxYq!+OSyCqQ$lX_znxH+Cti*2cG)Ab+tIS*up_%v5IIX#l?Dt1ZaDhnhxW* zIAmaMv%H03Wg0BjrJBoYDgt3#ip|Z2-+!Dd))kcv+% z5jWx)d$|m5!!l9dLiyK)msg3Sn*^olVT}Krx`JZ{6=DCz_VG=z@dG;T?wWSh7>Jm!jBT1Q7Op-Yb4o zwMqj7yPKF<&`$=+o*S3(?JX=3?#(87d-1}daKt++3%ffWKl+7d>gjKib9kw)2TO+& zMhyB(v5m(3W^%d%>OJHjaKy@nGu0kX_=7NVb)x#ydr$vfy(HtEe19Hi<(Jz(y9Bzb zUEu6u06lV9$T#_p&<8EVe2!Q2W_AM%J+B0BkexrTC*-no?fc=^+aH&B*>cwKmh+xS zp`)tdY31cB244C*Hh25t*_qVA`x17y^QW{Tjoa*?NmR}0RO9c~&ZTEaa6mXB7J&(8 z3_F(2F#g&>?(9?T@I5|nqDlgMJPR)L!hk$@>V|tri<%vyKspiS=640a3#q#3Jy3Ux zk$r~5SU8Mp&?u4tVIdwy<$aJ)8d;+*m2>UWu_5hZjDiQi;I@?geU3L3UPLSio%A>N ze$A?h=_oy|dn4+H4S^5$=BUcmYEpK+mZO*~h{fv!dLkBM;+n5wjs#Lc=4WS3Zv;tx9}} z{_P+4;hF#^PL6%51*?CL?ehzLM96YU>5Fa*WmDyOa@lVLV}OLosTX?tm7!P(PI^t7 z-^fyS*c@9&twi0criI(G!9xROe3z zo)itn4*`zv+w$RglaGx$mjh3S@=b{$@#`GJm-qWk`tTo*{BIZk;_A8=%MT&`*je3b zEF}-+1MzJ(+Ki34pe>Z2PwXUb+iN$#K7|$^*_u6`YJ*Qc=apW}Yv5c2iG9qyE0J-G z#n!VTPWuo=l{RR3YRYpcmRN(PovvVX+9fd(mVDwU-tOq2vD^vYgJPhd;xO;b3JP|P zJqgRd(}Yx?YT87gy;8UP7El06L8p}j0Tq5$1p^sjy=Nc_G!_pAmoQd&68xq1R zpYwS$Q@GN#YuWXx5*^=EyN&(K#oB1$bbwL_xy5GKn!iL)7}VWKn+P7UAw0(&qtG!0 z7RMAypMk@#VqS>>xJMt(Pj_7Hgj(*Vtm_~L(LY3+^m9jx>(E_rkmj>d6ts7=xMH{g zQaabv|B41-or- zIfuf<1v7kE+*C&fuejJanr>$J);Wyz#REp#Rl8{1^f2IvnOU?@x1XkT(9AKgm#J<% ze4=yop6m%8It&g?7_Rz}%#?Ru%EGhdCw&#LZ5++PbN$DLaS0>PmMHaTOF!4`m_@q; zRKMA5{DrFKO+K)w+8mb&)l)c`-%6N`3#4p)gn~UnRhu}C(7L>yIv2RnVL`0kjVmeg z-FQsQo`Lr*7B{62=TuzLWf;@whj;@f2Cr(E@F2JHC&s%8v+3SSZ-LOKs5p?>={Aq{ z98v30&hrv2VBmJ#UWAVV6(4yopwH7(l|j?4f;8ea)lNjBOZ&99K8ZmU1Afg&t0wYaEGScTuhZf(FIg z;TQz z|IS0!=Q>NK4dVd3x;y5@#Srt+=I(oH)&8PH@%@iBPcR4-1qzEgSGsji>{PT~@tu=d z6c_KnLMjXCc{5ufenhc?={S3WV7JMi>*G7}$e~e%^ z7Z;&$K*%_%e=>94d!z+K$)eD-W0}R2G1zXLt)j7E_)PdQLQtKTSogBBPApHlZ+o`j zjIPHZwW&5D7zO$T!M(}(korn~2ktKPGaFiPkiUKit?y9fJ=qirRwT5L7ht}L+)()t zj5?R^;T-GQ5wR80raCS|7PtOzSp=aY#}PvnlEuEx4o(EzmB_!_FDjs^4XF++qaA*U zHn{(x8K;_6(KLP{=u|PK0!2e(BhM~#Pn`r;@?7G27X4k!C$p!ud6@9%&>n%vGpDZF zHvp&6V9cnKUv z_oqBfj^Xw7Kl0x3 z449o%ix1RrN)xKKx^iVf7~kNCNfFo%b;=De=W*NhP|P}+Phik?3v+ILx5`Ml{$q|E zQSafLaiVG`SGF4<{3M5Ve`g3xJ>S*Dr}S|i|FT@S!0)~EEx`9|bM|Vtw#0BGSF*DG z(}JOKXw2W?fQN_bPf@QnoMB7EqRLeoUs%GX(2^n{hwfD+Getn632gpAB3$dMh%q>$)V0zmb)Lp?-sB(wn#(v zAt~{86o^zGdd-!*exs#@d2e&=&bQl

$0-?hepInSK8ZYkG=r%7tP#i?Nv)hZWx z`85Zw>IVynXZgAmk{w#k1tkG#>7vy^$kqSw534GtZUO|(nk|mK&aq-t4Y#R&Y5N7| zie)|W{7K)b+G`t<1zR!)60R;FzBIZ`+qqqar#tT#j{t)r(i_LwMz@T>ESs;NCyzVt zwg*~Pzo&o864?%Ht8*mF4ehNCYF)>@<$)AqESA&nQmh-<4hdA&`K6A33-*!gw zY{$tojQ3wY7HW~u_F=q+dmo&HyK zzrzEuuX38&5B?BA4}_vT$}crYDv@{t_g3Lr-DhLrhnIhd^6Z`DY?Ijk+T;pPFD3)K zkchub1-X`k<=Eh?Y*E2#73P0pfgVCAmICXufr5uk`}<6zBYOscJ#OpMnbjI1QTq6Z zlhR)yI=1UVH{HtBVfTSWKq%V(*s8-b$y+=*R=E!j&hl@_<5X4kTDw0pASlvjlv9f= zOYIjgu}W6Z+O!d!P$&~d0U#i)Rw~FG<$ZG++>&-zf`Po?zU`OZyZWHBY{dkT6Z`*U zVQl$KB5p>I6!h(W^`mS-I`yVZ{F&Gz+bAG=X(nM73x&j^Y60`KOnk!!mqB8~ZuiXR z7n$&ur+p|i5G7qc&nW#>vEKi)YN27`8$az7@f>zb?}24PoG4unP7iSC;cpOt z0+a<2gd0!huwBZ1GGy1$RQD!#r$$wpCpsF_4C5vRGc)TT7E20RA0#R#RDS%eD5V_I zL06RxCujce2mL60&Au=#CpvlgeIqMMNO?aW-{wC#5%~rDMT+}pEr0E@9$-Njd=SE? z47{5YrTCbVs0kszcIpu&3p8y#o#PNq6WlmUG_h8eD-;)=dp$_|dI7e;qc-}#U=mGT z*Dxhm$fuT%-(m|3o=oti8RaJI2)kYm@EHYIWSGnk*)29+sq5EP726&n{<`y19b9BX zaoF^;zyS%k{jSVDfrOsQo4;6}z&gZWL>Z2Ek|*!O%&UBwJ|YG~Jo zM~Rq8mkA}|P`NJuHb<_47%&{M!pV69V>SFN#(S1hlKCjGY0(w03 zv+qtHC-sqTO+9f^_O)h@VL;Tj8-ersy?>Lde=@q)|C<%;5xE;}$_S`?*Wo!-fr2)t z8*qL7Y3cv>T**bz|3PY%wP-kN2f4hO-*PuIS~IshwjV-pMcH94(Go)i4nE{TH&DNzo~;!>5H5yS?F{iC@sYLdsSHQm&T^_P zTx_WT5JO@cBXcR`Ysu(zuW8cD62@#;_XbCiqzN6WH{_EBE6c%g(;fhVTTb206|nGkC{C8py|dPiHt{n#?b z;c0Q!tG3Vd2y*^p>2ojYuOD~PQl522wctl|Dr)dv(ZME4>gKUJF+6gdMJ_+;8rQDXqeu%qoxPaEI zPeA%qvJbp`PaVE!3#WcK=uYdgG>O@rqW$?HYD<8_lMPCggM&=J-o~!slmeHW^OAY~ zI7tiI#ed&SmitWL8QT2yxk*t@I>W^2}g23{Ts8kXqxK4hP#Z3RDdmG{#uVXoXU z;5)BYFR~{V$LS!i`Fp`>EylV%b2YhS9x>KxaKOpYdcTdODthD^95l0D@J%VIQW_Z< zkBh85-}_^orq8$uCXPgR8ti^PdwzDn0I|(mePW!2t`6}h^B7~>&1B6VH2>9K$cO!J zgJf59*7tdU=LNGb>n9B>OMKV$=7J5Q*6hhM&+2agv4%`sslp!0hjHAvbVUS;iiTDk zwUQ5to}7AIn$j%_MIm!ss56)+ya%4kr6_&nwj9PjmvvQo7~iSHDNg*;@$l}ECBE0qYY@y0-kHfV+4|h@`KasG-L=T~pysBT#CQ&% zE@VVdVWg>$VZyldxRGhB+Th(8@23KybfupTc$2s*RuT$So~otfLjHs1)o+ZAh#5dd zyM0o~%L(Yl0A@xB>NY7=iptGxwjBCi^j##ZkUVFO2$lK_by&0IpXpmXSN6*{2L7K9ppsm&ye=P#)B6uhrPRo)we$ml64jq#mI#88hNZsU)KM#->%N4rSJ|8N+c%r7}BmvLI&BNvN+CPBe2Ti7#pmxQ)@j;1Zk`$%9vITV8KoKluh_ zWM)7#VK5gx8vv_HpSp`u^KPZ>v7DhVzDS6QI!#+re=B&N2`ZL4Pnv!PhMKX@)h|3! zqrWs&$uFVxjC;nI{x22m;R9>FKel(RW)`K#7fGzK^_{tFL0A*#ImtK?DLwzGtFo0w{un{0&`W+K^OK` zUv|cSe@LpOY)A~SBckf0fbw@Vxu|O62{F&F(OSGcmKFxTBjU#W_x=_MDMwRQa;OTa zKF~-s-q_6v5@Hnc_Lwdphj)_v@UqkIgL%Tm6|MbqBA#7mwArN9`6rg%3lB4%M_e7XxXw>uM zxzVXVH$q(;WeDJ%U8^m}9($p-Qe>P7I6CIMqKKwHddWl$} z0YgwBQUhzH5D}jUr(iZBp$rH3;&tCryS3 zX8y^gY7kQX1M){1y^{6WmCS0x#}e0k$E%y7iYJM_~*lJm~<{uWgBMZ zLR3g05Gf61Dq!-LIHMTYuDqmbA>7N_1$&Er5A7SD$zOjNmJ6H>@qT7Vn)BWJ>0Q%I zA_oyeXIMuh1~c()p}5PWWX~QN8RcHPLF@Ezjr312R$gyaDJ=G`%HK0$8`Mvc zmYavWOc`Ho&_QN-%*RkjihQdT5v%i#g&!)eI_kEN%(E5Vc1kR$ zo{yN}u2?NQSwh^IPxCpKr%YMZmz|$f|_G)o1 zvDtm7OSx)BIq$sfeLE!+Le%FF7s*ak^q1Bx@sAdiI~by zNY3O)TMTXqyWCfbPWnG|PusCK(*8vMSTrseWU!AF{?S^F6f%tiTVj()D7!kIz^FSH zqUJk=l`RlzKI+!{WxR`z-Ndg-o>m%t>!R3gco1Q0ywH`I{To!)eH#$GN_5uqnn)Ee z*N*Ncx;eI?GuK1y&j(#L&6AIotAgZW#DEY{4)2==^v~x4-GN$pd}OzkM0mR#d%22m zL4m}}mEr!nJ{*m;9SLQLV$*s*Q+6Xx)X>uxiFf-{*u(Ox8Fwe35EIYrksc`^N z3sg3~_obZ7KqY+w}ch{wyq=C1f{h4(mRkuMk)lGu+wI_+VjgM;!Yg9&0O zEpZQ;#{cq$x2SXGSexla^UKhis=AaHWc!+)f9VI%I1qy<_CGy&7oPFtj~D>R sDgDGm1%M@#stSD^^f)nt=R{Yc@;|2|YE%x}fyYl?T1BckHnuxJn!OxMvSL z-H4MUh!M{>SI_ruZC(5|TTZ;Mda)tr#jF>YadJ04mgb||1dQ=n5$m3+R8$QZ5X`)3 zSk?SHw4w7%vu?(^r#y|oanjyO2yi_f?*Tp6nzM>7z&Dli?lA-z@}1#82d5V#G$yy? zncVWu<=$;Ts1OPaKV4D9g?J2&EM<>b*tFUWjz3S`61MOZA>;VozxD5u$4Y&Ubdzko z>p9ROu<}CRUrrdjsknY7We|AYck!|Ka?kB%RsY|?zl$Bs7lM!~{>WLQ9sd0TtiVW_ zV5)J#0oI{+!z19{MubXcheIaMzOb)UB8S+y>iML(jg19G!EL@M$FcK{K@jF=h7{L7 z*>`&O$&cmr{s<;Fnm6+Fyh^rjQT2 zRB}z`+>LR{E7XrIaKlJ&lU*#BxP?AXoXe%qERF;{p>d_m_r-hVZoPL6 zj@75(=61%$K>Meke&$HL3B*<^Zr<*H7-BVo<6MG2&O}W51a;eo@Bl z;zBzoEaGQ;eU1BBPxBq?povkd&A6WYwG!szvx+(R7G> zZr#nR>XH1Q0wep~N&gct)`JN#jSo*Npk8`l0+yBn=xmLKf;OfS6*81U%1vf3w@1a{ z^2VX`+jQiCEDeNLO3`N_!eE-Xh!mizZ{(MtjXghqe=xlcqnrAZ72OFU8TDk~$0F zFV3G4D0AnwZD-LUg33^Kg9HrABK=z(56U)Fu7=|OQQpPmyyeMYfi^aScek1#mVks^ zQpD1cXDw8V!!b?Li1i>6_BJ;Jy(Ys`@#a8}qQQ+JAewOlad?`d8xlO?xW!$SC?`)^cyKZ*G-X;G#1|h#I`dA3Eq|mwVO2O#; z3DhUn8TrKY)O0;&wpi-iyS1~N6O)O>55lSW=1+54o@*rLTO-Co_C~*>4lRQ($9T+h zw2M8xaTGcC2xO&Iwoc5-TmjG?zw2M)_f{(l01NN``k~*MzowS@Lk7C6FIM|Fl|Uik zzcCL#aCSEUNw~)C*##l0ObFIXUDF2hc0tpUDeoj<_5s?v4T-Uf165!}fy*2^U8pHh zRR6P9U66P)F6grf+TA7?X#*5dHYf)+`J3#))z(^?}4s2?vT(1^;;N< za=BIH1nA{L1gq8(Bz|Nghs-Btuu+4%&?Wb-k71QL!`#hd^*8pn^erAWaKMVATORoJ z!+5AaTH|>bfOqOP(`jMI$m{JIxj}oEmz|tEKfdT)c|$C-K7r64`bKq$_Id2emAadoo~BER~Ewk7RD8)N8OCaFpO{)F?6t7G)O68{N9q z?+xklB5Ziwn*)dP=AhG^Vi7GCyQUqFQ)(U^ZXxp9si^KXyg?52D{wu9p_Hsfw&rXh zQLn+PQUCB@43nU&v(?YL+c~u+TM5H!(O^MXJXl&GNB-|(-cjafWw_29W>p$vOa1wC zE6DD0(_Rg8qCAjUyE|7BJ!>iwuuZC+8iIp)C|Y^JoRnC9L9Q zH|QFW&7f2zM$7;AxFtvZxRq7KjSMBdpfDRkUJZ~>S}r|2O4ozpXcvr;D_LLT!UvT2 z`KknyH@v!TB)YChRb<%wGULA8FW3s++K+v~LV*xd)q41fITfg%dLZi2`T~dz6`S(d z$#SzIL0!0B@5Jk$_iSuhyKGljR|WM+ZK2DTSjFllYcX3UmtO_@C)G z3(qs2nPF+f&s&(9>LOg$(M8Vl!~+Mh%}2lzX#%Ub)~k?blm z=Wj)a%|hjHR0xsx*T&uLY29)m?VhVE5puPFWg3cafh-%^pXBU-J9z?R` zVkp7~AEo2gF`Cg&y?Dr}D=z{)|CtY?j8ZfWg=!sOn9Eg0ZI~x$0FuZB6i7NuYKEb} z4LEaL1!=1QkX2gU{l(S1+h->{dJ9Wn4k^EM1wynzsAaYFk&0LA(WBGjyVo@n0eDN# z(>GkTBQijMVdY?;KK*H`EP`-(Av8Rc6!B}Qy~o?Bnda;fqM1NVZ+QYopncb80lGz1448K;5;@-li`Nbc7$f}Y-}b$h4R zZ7o}0pZcN2hy3V=s}u+ixqv;A8bPO&3}F3G9JIYkGR4$NUaQBJ(^P?Q{?fgkpL!7Z zhC~`G;JqO$U4lz*9@)r}dUj#!i;WkjzTD&t18+uX{H;qBsO%Op8)9{1?+~{a5l%4ePJiau#I>UM4UH%xrTYkmpym zo}gSn!TW(0iNPAUG6Q5g1ch;zyN*HPXWM&U$uOt z)izcSIPvwhv5atq>^>gahh2VTZ9Cu4^s8pwcb8Sk-QPzLj8FF#{7xdGB2{DbRF<5b zOg_4pAB#yY=_H?uM+69sWRzueLydlda+LlS%HQ#FR@Uy(DEV zx@H4KH62EOb-llJ6W11E-m4D;WUg#Y4q8DD`|5iA+i}H7wSX`DzAJc~PzZS4&x0#M zE-@wA%W~_O=#0yfg$MNsV>f(f3RU1lcy_L6|EL6Pk17w&N9;GEa6F2h46mym6Q=5n z(jA$rxweKAoNlgdI-J~lXHq8CNp1+a9&!O6ms!_#L6`Ed=-jju4S& zz+bkr|Da;pVZHAgXR?X?R$#lht7}7bHrIh?N}B>eJS2lc4cGyjSFR2B0-93kh&A<+wQt748Y;UjC=U&2u53p1vpaR0RhiXH`mB zn~SgMP#7in6U+gknq=+LhNa>Gyo)+oUnV13&zYJ|bbj7Bt;HY~D-p@*->a*A@Y~BC zynBtW2E3}GR7vmrn5!=kYvYv zivfD0W4YxaZ@Qo3BnIHVa^vX#+|bebvQaSHttJlKGM(m+7Og4a|5f7%%&NPjf?s)uRl<5h57LZ@L+by#o>A-^ZC z)GBz;lA}=*z_0d?81en)p-g#5@qsoIf+f&0>HF7n$9rw8&mVz*8MKYw%I5#|O5sRd z(hX9INEA0*B6wG(mPHB`w9V;O24*675AYJNaS(UBiIHWqW|Y`%aduQ)XGGXJST0C~ z1{@UMZWZz%NM!K4cIqlSVB_g5Q?0uB2aM7M!cKb)^FQ?Ga8v?O2%PI=X%@(JpBUrD zXee>ZMJE%#H_$_zbWHz(iy5(VepM4|6srZyOr1sw{tN@6C|){F7hJaByz(b7U)p;$ zs3$)qiw<|Sg(y&y_yICcyDbf+VYy{?RPuw-nxo7J#mkyv?#NIIw)<0cJbWukP|y55 zzr!b2Zc1N9;+lJuJ*Y^iNYE~Xm5&`0h3xaV%G>Y5%vH2jm19!F7eFAReB05!iNgZa zU`t_Xc*~rzA3prg;Bz@U!k3ky9EkWwy3?xy%3a07G6+L4tH3c$VeA_G(34rBmLv^x$f06e zl!0QSv_uPLAO0~NLQddq6R_mimtYXAG+4}pFbjyYj_QG^6)2jz^!>m?C|R;c)2)!2 z!K#LhN;MmyDcBP)pZKGcZhM4n{mId%^NtYNtdKI%PCWP@UsjOm?{l6rggE$<2Vwp4 z>k*EeJf!T^8QQWS^1GYTOLYEI&-Rs-)yF~P-wJ|(s86RcrSt!bAZCDBCZz_@Gt#cM z@f}(L)uObk`sQTuoAE)Ab@#77M3%Qb7HIChotCM6O-wRAuI2k%j>n(cO&cbXzUMZW zSPMN5LE5aa2+Bha_xB!WgF@El&y@*JxsAuP>j(7l%^FL#5y^)ovc&d(|0izkO(xkgMyvvcsNTkw}e@` z+bpCAv65|%lrBN2VEd&m=3;6X5cBYNh?AT8bD#Aj;QLKUNgkfV~)pTGg)&fb1%x*UR5~_u7;6pLdDP)?iSY z$xlCdE5kE7zI@v^ob_W*Pd;|7?lvF7PjOBGC`nWIeP*LTF<39m7xvVL!*Y48Srz9e zWOmB$AY~7ox_<5pY--$d09VHpwI?oTrrFTVU$gHjs>%w12+8Bl z`miTEe>%a+n_bI`>?Qi$;NC86JXC5|(O~3&mx(V7`c|*?0M~kaFRj40K^q7DQb%9Y z`7d3pnM5Li5SBX$`i`{a4Dyklm||sj09A4lMETf-x*|_;0lD?!)q`nSB3W zs(|KkedB}8BXY#Q1|dWrTF@F6No2BPj^Xer4g`{Z-Rn+@vQozBc|UWek>R|af3tf;bWq+$p@ zX9a8sa`qRt%v6PMGkUO5C+~JNgyhL{_7a#oU?VRrV4>a&P5ck!OQtC+J$N`x4>W(& zAA;Ggn}**NE9a(@3)*;H#{+Zf2DdKzM?8M~OYZr%PLn0+m{GOoxqqR;nA7OGKXL8G zO8xo?XP4_7rDSWgU}F0@5gG7vCuoJ@@-XzlMmivXD~H!xgA>BhN#8tI$E~7dd3yVX zBt%l-p(<4iLt=7oR$87YnR8zi9nIzYcx`b0Dq6DHgNR_w({TTEwb#*`ZVtKEaMtU! zPGtBG)3IT=o<8AH$c|>jQ}^RxAdVq|Tbmbpc)@4DV1rclCN!zR_|fC_lKW2Q1IocS-+-DbJy{%4iZlS$s3K3IdjGnLAB zt!8TbfHMJysmFe4owxIKz$576vsX&ac z=6P**M^0>2p)kXOUg#M}^%T8d~3W&GHX>T6L_y6t6AL)~*L#Vt@K~ z+G*fK+_qXE1sq6ZUH^SQs$8)7b)N^`}Q-iSm$@an)lCr0TT0Z$q=F8ergZKSAQ#%~! zeqqv_jQev>V!h?7k9c65qht`l8Sg(%-a zHpY<)UN|i={OJ3|f{Gf1Vj638-F#^;)HI6q)u~-%Mie`02g{fkMT^KmIY!aDD znl(t4%G|e3E$em`SJwi+&AmXzR3m*PjeTvBGqr+6AaQHKhgwsXxp71h0#FJ4b>i`p zC}%i&%1F~{aEDUiPlDOaNqR~3j<-5+95QtrVq7-Y&Pj{$_ugC&dyEw{liE!mr;0UpK1DcIz4a?Y=s9y9|3PCijJg z&{O6Mr6cw2=~Rhp1-L2ow{5^A5}g2wiB6V%{H_SdYM-2*1* zxhd_K(FRO+rFi#8znLPgnUjxpjbvABoG&_Jy~}m-7N~qTy8N_a+v~i zX#X5=g%^uLFssyP2j7kb?M!|k*qV$$Ub#>zvoRrxrp3LxDCiwWg_(|LsFCE2>&INc znyc}|CzoO{9T*}QX)V5__h+14@58J*;1so+!R$q6J#vhuoO3{QVMD`%6{%jo^!wrP zz+^dLtPZ~<$Ot17lC_Bpet-zXYfNZ(5>>zbBf}vZGC8x$*83(*SEo8~zhP1ifo8E4d$_2#gPL9xir-cvfv!_<1~UgbMwOf3aQ?d*+Y z<7ev9PvAfP^Rr9RS$bC{X3u(Sz14Nt9Zl%tv7hmUI)nH6dMtLmU2bD=%62$i$n%%5 zrp)bhV^~iVjqg-61g13|PAOs0n3xMfr{#|cyi{e()XV-NEtxD40Lx!GKS@&-<&mMn z>|b-bweIa|{r&qv=;#YoLjx^~+C$yyJ~{&^&Z~N_r++iIsXhUlCl-%?@ts;ydhKI7BI2Cb36eCOV)Gy7ogL3?)R`8=`-Dhxpf^*Vgb^(3{TbZpY`i|hZY_p3X zgq%U?_>Am;tq4dS4e)NxM}Nx+JNWp%>s}OQ`IO0ta^_%N+fe&wyd@tw(Xr9NAhSBJ zn;g*fPx}t?CTw8E5sHSiD%7M}va3}^uAy^FUnkBeJl!{YgdquE4({(3hF6gZ8V(vxupd6v&aSG2u*nj`F?YW{QrA!E;t)A< zo$dJ*1Tz1?N7X%A7`hShHj`BRf>7G$I`^I@VjK?QC53R#zj>b0SYV8RZ!lTLox=f= z+(dU7DexZsIOhn41DEQH+Bz}WYUgjzL(y3AR)GKTkMbUslrzbVyNbQtl+`Q9s-rjg z*{1~AuUzy2_4sV$_a+1=6Zu?`OAWnBZ$#C{Hxl#*IfXNE9c%gHKitlMFj9ORCTOkQ-@+C)b9u6=WS1)rp^O1x&!!~bHIDkDg%Fiw7D&{%>W)i+*c?2^4 z(}yXGFd>vBLKu#RaT99^<$Loaxe=E^4uk>-scSvq*r8{QdfLg~62C9{?6WB=R|Ohl zKjIP}NHssdQgE&nvcHW*()?#dr~65+oQe-Fytgaf=?$mrpe|T#_h*#;zDTM$CSu^tLRg~Sjra5gJ|;1VtE18_ zUknE53pv*z8x}M? zD&s_Tac{DG@lC&L&eDU7zx8Q*Nu&n5EJhoEw!=Rn$5Nz{5g@&;eS;H=~%@k&mY&=ezZ4;ky zeiF=|-Dx^*;EgMw4Xl0e+aS313 zyl;luktk_ZNuyJEl{U;vgpF-@?szeTlBaE=wwoDfc-12droQ|bmxtB5_D_wRO_CVi z6`+-ola%jhAeKDf*kb;Z(Tv}tv%s)ow$)jQMy#PYM` zz?Y!kgpi0DENo_GYU|<|EspfU|K!W@__r+<>JFQ5fObgWqBj4Q#I#Py2#-yI7{0pO zBs+V16#$Oo&p4%ljJc2A)s>nXw<;nv(DX#Pb?May1?5s_TaVHyec$kD&Q&hVNo8-n zs~6YemwLHwPc`)4=2XWW|jfXMN)Mx9s<&azAJP zx}C(Vk`4HQmh;5(&zRVC#2AiXp9Ah6@FTtw5sh+&z)`g6tnZ z0C-QKy6mQRMLi`C1lzuKoc}}yo#}|g#nCEi;%;uz>uSoCpU|NjI1uWxJ4g*Ol-QNm zo(5;15j0K^4zNQhQ1&EAQi<8dLH^Sd$H-16%U|e^-#%`2W*N+c+?3;@7*KuD!Nv~j z53UXi18XBBWlMoiu>ZJN?Wf#K4iG@@?8mUs&sVH@OWVZ|sPL?4f$4rol@zD>$l_CW7*?dbFg_>=;9=F%`xB&bb2{$zN^V${TDhKIl^sz zXaZB_WI~X>$II2lTx(AJ8{VL)IX(MlF&zky`++na&lY$?5%iH1(FI~aIZ28D7TkLY4pHsW;+e{}%+I=S`bpy_B+ma^#S{GQnY!k#HMY!#Zxq0d@K|Kep}<8{2n#+oaK>QAzxQ5` zW8bZ-tx=Z`^nN*D@(d;zdn3aM7tdoj=we3rhx>NN(ck%BuQQ)%+!1O+6QDS`3c1jS z51%&uF4&h8zH1e0_0Q04HowwSI6l9>5v!2J0QV(-6Pyh}dmhq-!DG?Xj7ux1_E-w9 zGd@`1|9t!yP8xLK)nM3E?a=gMQvIUe&TKv$e3(hnVH#u{6N{eo-`uPzL#lxk{;Uux4v0Y^>U?qf3l>qe7D`|PH;QZjCeVZ-UBL_ z+=!#U--t|_vMi}>cqYrHRzr1%!QJuGzY8g+TmBamhG@pO6R4+C^ByawhG)p#&KSPf z;>`FU=flZwVe3$P=o_Aa)2Xb_1LZGD{p7<`E85(5#{}B0{&@3XPP2I-|_gG3F%~mW@dBv%vuIz_so^!4}_#S#_=z}5d-?phso_=;{8`uBez z)Pk_BgO_P~06PB%Li#?|^7``M@qgGwVoW7e#eaN?hjA~sE`T3j>))Kba?h=gIJAr4 z9*J)>`aU1Igrru-!+0>cp!bqam{!+(8lDdLhe}f)h#}4)_Zx@fX5yo!xgh8%r}$hx z40g!C;(6FdaiJv<#K^+#HeIP2EK4_T0mJ%#~koy7+_yL z@jP=Mp}=K7kl8^uJgSV+3;~omb&LVI2b}5;w&Uo z;}od%-k3)m@9+md@zpu2%Y_@R0Ll+^^Z-!PA!SJO#@gjJU{7i|!0E;CMB-?2cX1%V z24Zn>B7$9?*Q;1R0@H?K`KVt1`C4euB981b!G^QMTR}N5w~qEHl8A$C+iaa0i zbCDN9nFxy65V1<${FOQ96tnZv3AcB}szX$7tO`k;>3~nl+_+0>r)B&TWmBnVVnqV& zXQU`I5x3Vb>Io2`Y@aa?C(h46@t$j65HA;7{kkeN9R~lKpaQL0;zIO@xG8B+92%%tL{PzUb%;!d|nz~ zqf13!X~#W|v>gnvOY0|#^%*CVLTgAH+(>-KW(fCwrbEF6JH%4=m)tfp{Wh5Z{$4&V z+NrK~QzMvZAELdXYWfi4_lutHR9(Gn`xCuIR+-#H8`lEC3;l28s5j~8XX7oLmmg)l zm2+r46}<@M^bE=yN4;-VuV-S~^C^|S&b!}lWByR{CULvFg}OL`7wY5E##Js(&-ySj zB*232QkOm?!o&7K&TZ-KRQkFD*sYJg5=gHcbUEkT=IAP6z=x^kwC+yR@P*xxygaIR zh@|PQS46Phcbx1PT6mHs)zlq!8os*vSGZ}?6-;{Qye1&uQ;`{uWw?EG<9+~h7%as| z%6h(daI!f|T99c*R#Q>ml}qaX7$-!;Y@=wn96oK7%0Scjv)Wi?Uz)Wry| zNlxM4qVa@WyQIFX^sNRjWYqV+2$SP6931M!CGc!r1&Uu%-kYcLdpOp+pOquPWD4pz zI#F#;QpFkuY>LV?MLxPwuxQ(ADR>cj;?`o}!#a7R3yy^W&feGpK8W^Wfjn1u*|zp= z>P!oFbpl#JLA0%avJDi+;)6o(=K=I?4p+SEjVlxGl=h^?aH&@l&;`c2uczuF z{_qDgeSG53bYMM#FdDBpF7N1lSQuEhU~L|7GeMOd^mh#hqh?T>CymY~5`kaLig4bW zP5UibqcL*FpU3#AZklL^etS_JI#vWI~nCr!*!MPLx>=qEC%`C_EL z&`-=%yT+j4;!ey^_r_4s(MzPz2*datpPrbbp^5P?F+K4};}w*NJyBQl6?pRP8z8F} zE5esBUMTQec3U=?tlR+gV@p#0R|^)=pF#u1r>T*en*{LsO@ma~JT_m;N&dyt!wWk! z9eR%Cc(6Cep(znVjMdXZK=Z#3aG{M?GUZE%N)OocWuVmg{)sF@#K2}fiSmI0{7dcObOZHw| zqw*v2v)N06KDaLJ3e#aMK4Lf3>Wr>zqgzrI zHAuPAed~${zrtOTG}e$fRE^HR;jhl_Y0J0Yz0?^3l6DFmig_?nxWQyU{xd&YVni|Z zw*?eW-35%^TAPtLE&{q)!5|bF?E{e23jazS6wi!{2zdVMnC;5Zje>bov0Vw#g# z<-KjHPCLHHUcKp)o{o-I{mwHsm!;Er>ZDzH@?-ADxmA#4lYZOTOrUvGg)<_YoE#M! zs!>P)!=x^wUeZV|0dFs9p6TIha!iQf?%*5=Gv^bvJTfF?klhfP$>guVPekU6o<$)( zJG?)({V;3*J&lT0FATiZ{uYAny?q|4M>y(?4~+|kZWf#Ws}#gtTEd;-%2zs&HT@Vz z{e1FZw9lTwPJB(~fT3vS{j*Jt!ZS9i#)G<|50i6n{E(s(R`3h8>TlvenG!3d?p$W! zXib9~Jn3djxZbyHpxuBd#gUJ>!{9fk;kS0N*fW#Ue={Pq&P>eDT1zt&`heI~tk719 zB45{0o1gseZf*=uek#qF;9%C7@=~6JH)qeMg$@wq@bOZ`iOAx9ieZjW{ET|BjhidV zJmLM)8Y)|or2`)S$ypa%n0@!-19n^g)o*>>W7r2G^L$PAiWAes+*}4{=Mbhk?qAGx z3zr=crZWow3?R{zNzJQaUc9sdrRi_8(3i+u?wZ8C}cW4o!rW@a7uqeQ0D z;m)$CFYPyya}b$eLi(5szLTwKSPAcx!7n6xplpCJrq~02XOPr!(tNGlz?FCC&1J^c zi#?p?nUU@=QjmfY>fAHX?P^6fUds+-?%BM+2(n~)zv9e*^;@~2Q}Mo^w4`E_TM6gI z19^tS#bzM~;a{Ny%I!HZBmIP8KjH}eajd@nEw#g8F6_x=mQvriUOZ``qYY7cAEHNw znh#By__z+fG{kDoiAz5j^7?!k;!2>Zq;#oqSX4#tKZ0a8l-Q|!hOk?}zACzs98&6< z|HF0|Z0#V`SNUHkQo7gQwP|^x@2i0<+pbYCZb}_B09n#db(zaJJA+tkFXbZ;`!KyS zPFGQS%jsX%F_9j3dUCh?7Xg~JUf~Qn<^KKvVqY0=Toz+d-R{*GWbM6#Y)DX9$fS_H zvwdLvRpdcA_VZp77QpBz&KSz+psI|06Kvip`POwq4fVpI-D_VzyFiKPPs*e0LXd=c z{-$m(DdFD7LO z@**6*CEZ9!YE8Irs@ers-HnU%U!%XSRZ7b`beR#UKgo(4yQy``@pH^{8_PbVW?f;E zAGIPO5y3i*Vq=q{#dm#OS3sN@7Y=37B;=`(f<6L5NYV9hT zcZ&a*SX>r<_QhI`pyiGy&cA9SL03D z{64>TdINX#Lu=D_?xHaZWInx8kr$dc#>XxHN=)Hl>v37$FE(KR^j`&v0xlE}sz4tq z^%eIJOML`)<uPA8lsfb}F%T8cB6)6A|LI1&@0KK}u>bzq8fLSFGIZl|> z!vZ1KBbWVh8Ds1D@;Y`Q!b=+suIjJaomE`21uDE@liQPT{aF5BR89Kh?fh;(6+W3& z_i|5Y5KLTYM*tixhRkrtXn`z#xB2NHwL3-JA3IODt2v2+9{G%IQBQWAV=q<(vO6J=@X!*gkg_#$)~}jJ^g`L5>m%z?zz6m3mLYTd?inLy2*od_Bd#qCdGVQsY zqVq};W`e9`#TA3t%P%9av47c7%kEbd4j&kMDS)^?t*7@a_?OLq`7G=}vPkkIV)H&4> zv)4{@_tVTo?#7BPB8AZDk^AA>9ZTG&8o9|=oqw6|bd&%wOsG#}+?r#1fM;j9jAkE! zOlPTg_xNH?A=ub;lY0bH;|bw4v~k1s-$!aj?%#Zl7xP{!6#^NT8x?P=qr1saMiY6} z-R%K1KOa(d{Idt?E>mp-&YhT`uZiKy!}tq9`yF4}VyYQGZw+E0%RXRUsrqk`_Qedb zw@aM-D}NlS*R;N-Nj32B8v!P&DKFz^5KeDOaZ1BhN5qW35 z6>g|daww;(+`}!tyNffhb+#{%W&Wh9kwcPWf=+C+_i`QdtBCEcnhK}Z?9;A(=tXs( z&s|GxiIh5FJlDXlF63vnCrQCt=wkw$JNU?+IJ>0V&>mLIZ$@rhaj6K%?>|P$o{Vdk z6}$_yBKauru7`M(|7$*OWHAE|?INA;)BfiZ?(a%Owml4&mbNlOPG%!}$0(k}$pb6V z?#RwG@!?BQU(o6RBYm?T>$JngPmqL+haODOqx66WjP;1S<5D5JI;lDWQfY$j6~Jm~)0gBpz2{ zFb{ID?{>e4U8P6ugb#54yin9osE~gZ{Qm&?S>sdy diff --git a/test/screenshotter/images/UnsupportedCmds-chrome.png b/test/screenshotter/images/UnsupportedCmds-chrome.png index 4d8a1151eb30d906dd625608fb78ab2fe1749b90..32735c78c927160606088c4679797622ffe3d208 100644 GIT binary patch literal 24650 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 bvl1RZvlOeD>L)bM-kMAd&5w}{oUZ;0(YvpQ literal 24429 zcmaHTWmHvB*X||+6e;O0>5@D&D5cWfB?8jY9inuJ64KJ$-74K(=fFWgy5rCX?&f{J zZ`?8NkNZa$I&iPO&RTOm^9drAh_KV}7B3@eo#|V9=cNG)el&;DLF`I%SEE8#qOngtpg6YI^=z_z8 znm*+eHF02Jp#}&2MGdFR2_IyLiVQ|c_g}uKCxsVoq!bqymsAuVR2*ccY~F~tiwkQS z8!u@tA?~#$h8k5K99U*)82mq*YQ2=Su z=^u%SE=a_-OjzdG4PiSE0Jw3Y1H?1_SC)u_r3g4ST@vc2GkO_WjG~1`o{3geK)UZ0 zpr(Eu1Bv`oM9;`LA%@zmHi69(z9xR39rmo9@qhk@^|1_&C%LOkir`;KKb@f#VTe6V z`1em*PA=!-5fFs?1^Ah>6DK*Ds(?rSYN_UkgVEo- zTcIb;V>bCCg$=Jc^z2Ob5F6a3M<~+j^U2j{ zlJ^l1_$DH34Eu}5T`%PbAu2j*1e_FnHFVUVmdIqz3GPYN%)NCXQm#owzcp5wyPTY9 zcss(>67E+UruszqC^@O%Ia5S##rdyK|6L|3inKA#vLEBnaqqB_s!-7dm!qS5MylsSh-wpz0|=SGu#-MO}!zm<7B|| zs?n!=t4-_ov;NKQ6pNbX_bq>vXTygV%KM(et66^4r=E3fihy31$SuB0rsq&M>?3xsOiN7f_OZe>6)K{rKC+|{)Cuh(5L-; zJbSBAr`=9>*X$kwCqrVORQ5YNxfUoZp2Y$YL|Eu|2-ADP|M^La|NP{aZ~PXav*Ops zeYwk8Gou+kKtCBT1NcyrV&tu>_xtOUlZQwCDKl(TNfNfs^tN(#cFys{l>UPcXz4cl zx7t?|mX*i2Xx8Mry8>hq(C`n#Qr&inSK zfM$Wxo3jq!^>fsq9oZ$GlE8BBv-5p*$C4f7#baQr>TMF&RP3;NZq8yX52Vq4sb#VC zP=!`VNeue^+hiE-NTz7LJ<BEuls~nzVyuY z{18%+F6L@AdbYjroy9tu%-p#7dM!>-r|g4C5)Y3-63WSL(4p$wEj3BRZ_Q#2}QiA0Bvo zL0oJBYjCK!mO`FQxq9US^#s7jn!nY3bsH1>R#;Vb0nMlNYI{agP#bN;fIh3oPKynX$3Q-S1*oR1LYFNHig zJAx8Xmk~FKr?dg{9?A>Yrdl)lgv?){sd_ccDn!S>)`v*#td=|s`^%Y_h$U~z(yw4e zs~Mj5bE>T?q2HB}wLQ6K&0Y2Rx|OS>rqhn)0ye{=xQJ++?QNDcW*DACs&zp9uLlbY?Ids&V zy&`CHt!*D}xrTF_8F^80F|=NBnlML+peMz{no&f=zyE8x%~YhRPw`#Wee{;4jcw;; z&QWn8pM3O-8NCI~f&@;}gY%r+F%}P1t*D3ljwUsUHfT1Wwj@&RO^@!ByK8C2TQG%h~->`xao%Pb$}W^3ZOia zo5pRPRH09JAR{NS^3i{yY2E`{g;sRh!%|%!e0i2eyl7@HG|L+9=UOz>xbDuC-83$)Yvcc@m?}}SwI8D99r{2UhEs*8J zP%fn3AZ4vrWbW+S64oi@IDFp81gi`~ zfWrEc#J#~=G{mfGD}?lnSe9J~mxD97F`Vih_J#!_l=4YdfPvT#T0gZmJyVlRn@!8F zN6Cpcc!AqY@z&9`5kpd6&NE(klvP%#m9g=49yj(TV6V{LUxqyeAbhfv04k6NHqU>> z0*jdP5z-#-EgS~NY-cGqYJ2!Ae(XhbGEj?_>v&$8&IvVVvKw6$qfsw!3R z%#shr@W%*r_QKnHu;V)g*Y6`6mp!~HwN9@#vxas$4I3R57#vVBe{#?R(ouC2}?DduUYU zNT>gS$eO%tGf#=D1=|!fxF|%&o!k*i%YI?m3DiH(X8n`gZvidd=sxW9g;| zi`xDK6FokF9oNUFv=xIFaO`@)Qvtdp7%mIW=jxrPqV4rc*&-p6KVxM4y)FFj(h6Wc zt5L7+Ez=J02L@C`lqJwGo_3Il$02|c7r2yUAtg~zxIUItr(kKKjz52hzp`6XE zI4|s8N#Nb%(!`L?q9SF2*nE?Y%tTnxau2d>} zUKD=PvpwIht7H2zx>KR6caDrg;It?Le*m4e%VIZO0t#M9>4vXaLm!3Gf%KFjZe=0x%IUh zvZW(p8@yvyKe4O~__Obj{7xMU=V+y6YkhIxZWv<(A#W}Wb+NQ`tdvs|czxW88mXn{ z*4Tk9&!ix95F?mivLH!-IIWC-SqAVuVxM%AI;|ua*sDQSD+qIeYdjIf-OAt#E1Q zaW+^K$sPe~5*!eezwZ@cQvL*qo@v%&1H2~AW9^$Xo8=Ko<+PnFj&mYyzsAVT)capxXvsb4V*eBmd{Df*yH{!`>F4jJ8~@j#6wbiOQ9 zi8zui!kY|GLbRj-bU8J}+W!05GS^O)fsZf3(vL}Gd;8;OiIp(T(dQ_lQGU&%0NG0E z!sq!xUID=-2`W32Roa$t0vJB4t*~dfFp!D8;*VQe- zgKURptJGRH9@)?79x09=rfI~t+5!r)(<=81hlzk!F$>S$o{^fiJ`=h8Ry+3h&1aENDPM8XN9B~JnzUjU zXqFV<9>@w({l=~9+T=e+n?(&Wb_)Abn8{b6c|FJxFRn{xR;Hz4v^d@mo^*dpnEY+Q z3HRcg)`z2$n9y-;8@X4qyPDdr@`ZcqqjrNL2#ayk1V`)>j{vh&_WAklQGu?COPANJ zD;UX&vw3fXDl-6l)2Tw$191rM@K&oJZaQs9N;(9!2jnn5kAJ2 z=OQ&R`va}UG#G%Ub@#`Jnqn82(6NDw)o?$V;9Et(P|2E66uRA6!x)CCIVAY z<@mKn`acF+KYFrVLpkJ8KmCHY`yRF)c68pZ^CX-2Y&UOa`a*3Ak$*9zE)kW1NYi_S z>BXY!Sc3zsq}?%jZ)hy}P$p*SC##CDp|SDpq~bpONmb0pZ^dGtTw7DU(1RLWV{9~` z^&j}nt4Oma{P05$6sg~)0aZTk2{%*qiHV8+7p=>QD1Ynm`T5BPB3^1RbnKw~)O>6~ z1NbMbgL@mfgiBw2rt&FA>G4JNV?2PNAjxUojDl~usei>Z9WBVF!(@|}R>tPFBEJ;k z=gWi2OcD^;x~CcQ0O6B?J(0x8MlJ)5P{y4fFsDxAHdMSUV_bd0g({Zc*FN!7;DAK< zcuI?DS8=2;3o1FQH6;dVb{rm#b_ZT4|FpBGw8}KR_>8w`KmKW(?y2W&{C5X5X)&a2 z0>t;+{_41SuVx69`@n7cbGgXVufWeCEJi>JL}s1T8aEf7WH=NVhA&vH8@V1!#G133 zU;ur*uJ#dcCH(vG*Kpq}|4^%WC-*P~M^1(|99_xw%v#}5QkKJb>yPny*cT;4Y{<8n zm~KhLbZ9Vxj(9qJcDE*Sb&Z_mTJt;AFAkOt+fGM);yV1^^XyMc`bV$9Wf|~4Ty9XR zLnsSFRBTeS7d#NXdwW7CznuR-tDx9&&w$|HLZ>LEf&K^u+U-sO+}#C79p^48AeI{2 z6Wak*8s^++re$pGe|NPxgf}|0kF)%I`}DotGTt!BQ#W^Wbin`CzMLJ}%+tUJ}IIgByA@BGb9i5%g zVZ64Qa3+?po1-o8jXrdR;#g<6CsjAy|HcbA>XW)VzTU0uyxu7dJo%m_+#R%hy8%&X zD^fYLiW$|ef4-C5wouC<r&;)(KW(2T8 zRHc@TvX*?EqCK!47m~8}qM$4t@d1mTSvQy@JjS+uCJqec_$+PTh&iB3GHVH_Z1D~J zBoluGs-4f)HYtY0)SE;9`(Bn4IdV%a?%!u3F8h=rOLcvGd)ss1zTYD+vi#2%8p!_! zV{>2riOPKaC{7~j*|kP{JQbtduE3r+dhl|Vpv|{CW{BTuj61RaFk*v!R(Lr?4$(*3 z+KEB?5uRl6<n22@2*CgI&Pij_Gk*qAuwTa*JN!I#muEN@Dwq zDzD>JA?MYVur42BQO(nck5dWSX#oD+i{gnnlg#-VOGWSiTH3fw$dNj@x8-GIWFSFG zVo3-sJ@D>oVi~hY!mH}4#xtPfG!<;Jt$xeVt{AY`f>j=FM?wJZH)U>D@Nw5qiai)G zi{@bSXk@G@RI-uSxkg~m&eXRmo0?}|lC`8@MFaSZ*reRkPGvLAm*2PRVDGs64Txx2 z%QVNwn$ZDSx;Ee=AO1MyYvHWM@nUVqCH7J!XUUKEMPJYXWJN-nVx9vts@;MN*kI>h zs}H%?v~-2V?0!(rHj4G7#3Gv$7#Y+eaj%|ygen~naOb_5!J_!xbyQ?ikratfK|yhM z(|HdQLNoGSPsA~&v9MajE-xPQY`yS4W2=B>_?3W=(-7}PE9VXmhaLD@UX1@5f?rO( zz8&2UQ9}7y-5zjTpXEQhp++mY=rhrX$Wd+eg}n+Tf$8`akSG(>$?$tL7Z6r)WsO~& zX5AYF$kX5ic60`NpQd(x+3#hL3Daos;6eciu=#;-o(pj3LLpsv9lu3XxA4*TLglgR z({vDQM+E}?R8nyN2@8rf(^=~gxd?cPBz`{#wVP7Y?mpJAg*f{xNy~*)>p3r!H(QO- zsD~}6sLeb={dKg`g-DVD$rIPBA}ADUdUuix9?Xi?gGiU;_x0>|tD~jcD0KCzwBQ8Z zmC7d`#pF9kbR&q0A_9|lC8lg)u|s4^^h)WszU(0aT&zdk`YTrX9e3)fc9;{ZKgS3k zQMkHLoxkk15s@zu;;9L_WUaq?AF@oiB%I096$CY?eiw4<=6C43Tv}4{=AWlT$M|Na)EaHt1W~dLFm!T z;(lOfM{%-921J+dDD!lWjP`RSQ!uMPdu!^QuRP+vD%%Ph$P^cu&L644p)_bD31ImP zRv&pb2?=C^rb>MN0MKglj(Tstx=RR154hg;_V%9GOO#{}1jka`hfT;Y9t)B={m{Oh z+%-~kn-o>XmaU+DPE1mONB%BVh1+#cFDw-VC>sB?`Wnc8ZSn^!mW5TszdjN1T$*XY zTk8$k8E1GEa!W__rRj*1FEp*6;MM?Qi1aRW)*hgj8 z-$zsFH!iL&R#sepSFMvEe?h0FZ-aDLNEPfgcA1YYf7mCR(R7hsC=zTpAeTkSXJjhd z1P;Rv{J)kwm#Nod2Rx2OyE4hpg7j(%Rq9ptIqw$buu1Add&hN`>xWpmbZazk&K;_T zoz!l6NXZ%H^UiiGZSxsxO*bx&ADAbQz}QwV0OrE-?$>v7=Tpagl-rCz1zpt%&`=?j+>Jp(srI)MHcl$g%O6CC8Ok+dyB~e)H_9{P9 zpkbR^G25@G#)`iYEN^uy5;(@KjP*JL+HZ~0-DmZgn3&=nWIHR;{rjll2Q+Q@cm~RV zG&;j$AfGGb_4Uz;W12$l)MNC2$%+fmdTv_vYRjnOGb$|Ca~*Xpa%|4zI6j>3IZT+X z6N*Sn%K{9%ckwagC7%1w?nlWaT1Kw(^Bt^SzE!DMXr1%GyzS{RC@0AQ^#I76-r2vA zOlsTdtI%n!1-|Fg(^Un$N-{BSL~rXzO>;d)1n2aIE~0okgkc(QU_SfxbM|PzLP$-v ztiCZ~t~<3SPQt5Ld;t8O#{NiXr|&sYy!NfS>;ji0W6m>WO7W)V>ny?2r3S*@jz0`f z!Auxc-HbD6ndTu@PEWcsiaQ|DjxgWcF zaF}S-2r5doZ;hqd>11u8@JWw?_MYFhGGv?fmo&_Z#lfU_?H#OmPJl4D>luK3kq6T?wyM;B4rUkANyB=rD2UZooaWuH5c^q2-tmTQ%&f&x@-UF_7!Z|}CpyrVjU4niJMILty=9&1nNCIC zSRxKzNO)N2B=P!&JLovVW(z#)$8@g_T5GBmR`|!rXgT1J;}f|Rrt?Jsb4?I)zsnk$ zEsIZa`aTUXE=JC=LyMy zx}Ams`L>ymF-f~?SAlzVW|e7!yQWr720lI4PmcPs?G=#P2w~uZ?iMm2o<%v#`4r{j zl=7-v$js3F`>C*3vP2R)WTeht?LHIf{~<%6b8N6*SXG{CGE;Lh&~LF#^c2J5A@4h4 z`p>=wft*l1t~;KnnEK*SXN`=z-r1rnx9S*pvGr&xAVTgY={Ic{yE`YeKK)G{tZLoy zY%0b%-E($jIix1|GZAfYrwU{F=&BKx94Mh>QhonWnuH;zkA9`Y!lCDUm$YSm^+IFA zbC#$YC87k7$=}{@>w%~46oO>1aYuVYhEHx;ySSE-k-cFnc1~HPyKd;+X5d}nK1pU( z!k?9I)Z;zN0@F`$$jJ?!2rjx4r*-x8kOM3^9z4YQj$NT8 zc#^FzRKtZ z<;0q97v}g9NM_jO@mlU;LO|z)n;j8#nDbLpRDc2B94PX-+20r}3%vh`>HCs}p)y(Q zssB6yYLHf~XJvZFua|ca#F#; z*2HZXZNpOR>*`!2-(5&lR!S(?;+4>kx7xX?&%jY7 zYgTcyQyS?BXESWoNm$Yr^K1~q)+SXmHZC8#x71cs`)kF>Z#7)y?^S8ip0m`M6t9}T zxxW8bNmCUcNH}TiL@EbRh2l_d3}Dncwkp%SmRlKSiuS_7aJ3$N4)SmW7~o->(CwBI zU!-?qh33gAlMcx-Wo-Gs+&nLoLJlw1K&X* zEN5$qm=Mr9-7d@;9DCL1xD@N-_PgU2F}MCHFXrp)8*YFtXXNWRxGn4_fLeZIzRKH^ zh7`(=*g1N} zN+oaA>`jRnMss`m^iPG;1_nMIu_U5L&sG@wg2UEsNbBXr&PQg~cH}t>oG{P)f#)Kn zZkrhD&ZNgOu{clL0KDtCc6^3Ky>D3CA3G1FHi|JtaR(DxJpg5F|>u-}0GqcHI*lA)v zdmaBB%{?uAEL2aQl1a^RVSKsHn^$R#y#rB4@B$|33;p$}CyFFQEH)rIJT8pta?#vM z^H)9yPWNGrl?L@YAmAu}%**tO_5M`q-hvXK@%~4kdaf*#O~BHu;92S2) z$Gh>LFHb(xNz%a`o848;{{7R-h`YT5;W9rCy+fc?=W*{zBb?pqY+|GK{g2uR#hfit z!F*Qh^`ntqCcDYJNnMl2f=S7ekXJ3nq}YKrHs{oyAG+3;Rc{aWumJ^qP?6 zO!AE*iL;Wh(i6KKF6-8QfDShb)aIykI1HM`>zt9julw`Y!-j5&?;sCV10*}hz8}xTm&lSqt3&O8XNBHHGe$c7dyOf0W4iC#7 zvb|dcYhz)$OXMxx-iePiuKN5orgqWeC%N<`8dF+iITS-FlI?$w`{YL0@6yEVk}f0m zuXq;$e6YwoZuTaT3S(j`22WC%=hzb(UnMCXLrBHQ{*sB@gwYztXOMB+s!A0eOJ$Cl zmT#<`tvBaJmQ|?1%v0f z8HjKqYe)YuxfU+}b>dUCV`WUsCVoWsD`d5WOQ7F`5;vNx`60Z$Vdh?r)OdPpNy12^ z*l4A8%%}dho~wwO{Y)4wvyUnPA)`WU0__*6`>V0)`Hldc!4#np7*|wngtNRzJbE2{ zV)kW6Cz(97fj%kwX{;(2l9zDp-+jQhUYKzRRsH z9{$tOU`l{KBE5%iu*V-bYWu%i!3~hznSo4Y&sImX@JX41^v{~f7OSOr#%-Cxr;&K;{*1px>4g_YkY0izufJ={`(|Ru1O~7+LVY1q(rSG@9F_me zc~(`uAPpDmSdgHmt743_s0hE+0anLt-TM@YcF4n(828oUkpbzcCi-WPi~~tc5Csak z8Z)u%LP*}4`fE$RN;CNFI7I!vV!dY0giwr8l0O1YP*l{=Fgx$7cad@E$1*h48}>UC zW8vRVp9@Dk2zK|Ma`0M9Vd)yXYnNqqZBA8AC0FRL&FFv%fj}m{1IxR{Z!zi!e%~8B zEDY={zeyh*;>6PZ?gWag%J&O3vymQi+~xUQM=RxV?mw*P@v)|-!x{44ufMgc{8JV| zn3l%R#55Cd9O5T?N=BKK4+`#K$@!k6j$FEJTj*3U7Y+|6m1K^_RZya*dk=Ss@;i*o z^yR)TC$EncfYy8%8HZ7Rofo|+W?hGQ7f92Uu50U&u8D_dGk3WEc-sIyVLxNKfcqj~ z%nTOu6`DtvYmUp6dMBi$LwFA0@dkMuR_m2NAq~m*hn@EUV_Bu(l-%Q-Ddm*8X^0`7 zkd^h&iwy(tXDdx8c2CrEf~PseAt=8ZUV8V26YRqW$D!8^ z32{93<_B7Dmdls=K1A+f=Di5%#tttqnXZ z7SpV07XG`l=cX=3{Tmaj9D<-ltA2WB2KkRgs#@nh+1Nwh;c2S9kd;*d=)pMt#+2zq zel(r|LK`WpWYYle7fEY6Ghopux1L-BO*TJ^I%77Qs<>NsZ1R=>v+@r;43STg(UOR` zj6V3zdXNLQcrxNt~{V*#%~N6rcLnQaTc|9ndSAAK45(5sb!fz{K!qp!1u z0ljhHFgq)VHZubX?>w0GBOPn8P;f%=3@r1vtV=#UXq^?blSFD!dP79?TQROyqo_+% zeX6R}ztHZ>Oo}MHQLs)(Nnx|~*F-G0`(8kn{rD$ZF`f^%U%)w}ukwnd z|IOru9;ja$%x}$bfD8&`s>Fv9ST%L*IUCugSl99MA_TgtbM99pQdED7zS4aALk3?j z?56x?ha(KZ(O_RKnX4=Ds(Z!q)a6gABAME^{ePxWBwTOL0#F`n>gyMeMO2&p4i*-- zuuzE&*eF@(lo~9r-$q%iBWgbi9_qUu8d|4I#0~KR&2kR@#TVS}Lodd?=TYc5hFZ{| zW)UVwLO^%tL;03zUe5&m0z}B-cHbe0==Jui?%6VneLF7IKjz3U2_hcfYjA*3iQ}bO zns^iHU1`$uKiE8arT3u6i+SSa(ep{hIB^CkY*JG{=k{H@P4&T!HC*qLC#5~HFnLXz2Q0fc%VB>lZ+-PRN%l*wn7x49~3rB$y?s}3h z936N``-UG}iG6Fp=4d+kto#}MtzoArRT!cQ2QXL8-2CMuYhaj%@&elEvAfisEj09l$^nxAv2XI1MuNUDtNGLtQ9od}F3&zj&ck z7mkLf)m~l(nQD?;7wq_v{e5tmCCZ<|Q0VB_b(EIVaWx#>pO|E> zA@r|v(s^dBxFI}A(G$7UnbQ=&;;6tuFe02&wVRCjF)RHL3|9pAe>wnq96X3iU)f@(l&CJf?lJj++6<>AH z-r?sK5-wbRQ{;{xbD1;t?Ag+%LZ_tYwo%XgGbm&q?&JFVPhnQ)0bsmgb71VIOTT7XRP|W^HR|+}0%61@< zbSW`gqWfqA7xfg8cNd*JtgNrkR8WL8G&CyOPTs=)-43v1b+3}^mK!iNJ~T@)sg_s| z0uH|&Ht#1<_G;7|&g|1+_->v5z)QuBHXnw{AKEua#rK9VtVh^WB-oYWQCC zzjqPT=C%s4AJ5J#(8gD{Rr*W{0gE3$>ryt-#1p3pdDlDtw9{*JGzLfCGxnX9-HIq{ zT7_Tj%4tFwz6Z_Oju|*d2M5*MWKZulAf55BtiS5V)Sp0=LZWgWG_X8U70QvluO|7Lm}V*9xa+n~bZkNnOi6nbAu-JER`HlmE8T!5-?nSSkAo^5nl3rJbK zx3>1ZX{+qKYgxQ3F3e1gk6+pE?ZSUrfJY1W(=ch7?!p0`!|cocko%P|2WyvlV_Qk& zbPIJmd9d>~ohQ(Z#|XnAOaoqcySz_(`}%*^b(nT#rJ6FC-prW6Eqfop%Pq&7c{ol1 zfCj`P+qGH78qn!iDTM3hp%6ziV=YAN*s{&s8Fdrp)QLPlOpB(Kf_sF3<|YQp8@wuQ zEv>T$;zCO8{;W`HAKrcgviQ|jK`G|3d2nv$^dYV|Dv?PTS6Jx-rqd9{5AV^uJUJ=x zI3Qv{f-p|=+qYMb0N9GWs0(cntHSF!eYBv{A~D=&8V|iEd(ma=2Ea$U(KlZ#T1W_| z-z3P6fi?I-!p>DzULuxnT=3t<#@(K^)D%adp;NoymgD6TIlonZSTs3*@3o_kCb zbP*SWSxw;mUDn-M;q@m`_Z_XQF_r*HvtNK6&;+V~JAcUA;R|AiZHy2Y*jm3_L^$>L zkE_0~&kCg3EhNAfm((;J#zX{l5u?}I7 z#kkxxy}up{yqh{ZEv@W;QUC#<&A|I4?}3=3+?y>=n@3S?AkRO6z`wH8Oy40HS<5&Y zot!H0585GZn@dd-Zp5P0pKz!l3^Z`W7qPg%+T?1y^9@CmG(yB zKb4zmkn7^zGXSbYs-f}hd=2eWGy!8-pF+0LF_N-xhHTNn*wRH_SeBL^W0;6tFaaHsI3yjB?JG z`Z*JmT&JMwrJ^FD;7WU?vo}&XEj4Zu-rhBW*UWF-;94$rYk+Gkr?zBOMsY5;hyS#h)78EjFVEeIZo%8y9$MVFzqcB23MfJN&O_ z&)xHS?XTsw+Fm#=ohk;Hu)f^bERL2T;>igerNhAyd3 z$y&}M?0=%!@)vP||6QQqg7vN&eRf)b2$q)C7C}xu11&#uFiZm+eIbFWBDm-U7sihM zqKDUj9?$D>R<2L6R3d!-*JsQ3cNZ>;4=&#YXS zgQwOm1zPb54Res|c1O3GgHyIje_$2f4fNa6TqPWJ7SBn zYOj8-EbKKHATW23Z6%#>5fC=Dc@e-Af)MfSy525XY?&#I>1zM;=g;rYm@wR>azYj; z=x7ERjn*12!-li137HNULxexc!@pk~E_XUDcPzDf9zyHwZqE19AWkM=Cjx!fa#~Z3 ze;2uPc=>Cu4EuBStwcGUNg%O7DnNMc>gp>0sBqV{|1+IVkMCeT*frG=>k_}{F{r9g zp|UtJE1ho>DeI#cYbZuuKl+n$Sh? z&PtUkg`=yn>xdxypoHb@j%7tf#;#>i2Q*{f^v&)q+4QrkASX)*Uvxo`y@ok z{(yFNigb@;+1apGJh1!3L8qJ8*tkut#3&(kRUb!%?pEI+m2ngC^SqKCm>&@MN0|dJgicGM z+>UBmcslDgns38sY%lothDK&?8c64H3E@dpyyH!I=LgiYU;n|Kx4DuE2 z=TIj>1O&v=4n>l=m2D@H$8|^$mcc~fv=hr)JD=RsQP^mKKN_zIsErl#R6MkAPIz+mTq`Ty)J z>i0741i73|1UBf(F!-d=rYe5J&=wNB7; zuV}ul`NMBi82vyuZ>p51<3fu&v0=lOVFkRFW!3XBZY+(2tvK!daa`Yb>y>lq1 z?OExHGV#hjS@N`#x>2HH1%=IU>)}jMZPS-ju?z&zz4=g_2I9^%IjZhaUpv^@_y_}^ zTelMd6{k_txSM3Aq<_nP>VwfMy7U2NJHuxx28HcA!;J1el}KJni~R<{Z&7gsfJ@k5EBGHcx~n6Pi$AQf@qYdLw5;SyVw1QZ{SaU>WfF zA@6ibB8jX^1JnXBWGz}X%#)lbA1V7@YefJc|u`To3%&2?$8Jdpcd#*$)s%5XQwE~hMX(|a|2I}(U zvv&Q~1Yw2NN|&qx;RYn;m3DI9YR`_a*6cIhHr*K4vU+FSxU!y?`T1$5WFSt z)-v0qUKCeU+-<7{mSjbM6&GsS5mF7m`KmrOP97M=hmBcjBZ-3isMDXd9RxCP14T`43n-#bWcTO zu=(!S_wLzG?Qo+73CGRRifs&yT_h*l5r-5tQ;*){Yo`S?d zq|UdeSf-nJ$;rtJT+hEeCR}aH3Qv@lPH)%vL*>?H46Xl+J0%O7=lKeJm1a>%ugY*Z z@+Pf?!~HLoT-IrkTM9VwCap2G>E!&Wm2)1=0q5Lkz&Lr2IFK$dY%o`U*qK{v2=cGT z_FO6}rv3=+9M312Z2AqH`8FRaSsT}eMz{P639uDkOpP^$?q`SL{qsE>#yV2BXLLYzD8@?L3L-rTrpeBM2yYw93w2y%L&6Tav?f_1}6s{)J#xnLgILnJr9#{p!b zb8tt&IP#(C4`^#6Rq69~hfQ?#rZC$`+l&H}+iv8bJZM2ags-yXWR6lnMziVd4(dPp`D=rz z04C2#;((t^e#yy$6`dXSOD$gFjQ9m0^F8I2*#SZgc4H-_&!cj<>6=z6RHf3|+MtQ; z#J9|A;29XBJ#PF@)^W~&=?AK`uwXk2iZn-GmY>F5E*MA!Q?wVvB$;PdVD@Bn*&9!M zoPzio;mR*-`2VCG=gmOdVRNn3wjsy?|2`YlvWF6}1K~STo1OotVN4a7ZoZmfcOYe*#os(g31OP3S@2S)!7;6KONS`X4dIk9t5Y{PFMY=@fn#lr;SaiD(6`BAdTVBn?sRQT5#WnD1WW6&Vt&F6plam^`4 zIr`ZjQDnHio|m}nVHZoL*Q<&LAFq~h!{?o#?oZ{kiUxdp?DnX?zS2j)*?v(vKLNmq zVtKNIhQ{h?o;2%kv#ORBgY*c91Jvzw1d`)kVb~KJ;-`b(mR9((S(TRN&T_cpgn>Lf>Yc@Z8ok*YOd`$njJZoQeDbk%w8JBZ zW2rA*nwEouojpXm&g@fh`XH5*iAf1Wg>B|m(%LF@IVMg@sGO1E6a347uzG?XJ3Iik zQs4JdS$X851EifWn)VxDWgJmW7a)*bd302YzBl zX#)6Xiuxc5>E3^XQVJ^E=`Mq8vxKf7|5=0*JZ{-P%LDx}BFH+!|^BiN*zdUS!l z8!6T#q@*nGopSS*nZaL8z&3HSnzG^H)+?s_8I#4Q5OC_|0k$l(>~cTotME%NQVDJFJm@HJ8Xk-k2Aa09 z3_F}H(p>y59H*Xu-k5ox=5{C3uuudj6|d!qHz1#YnX!6eMP>9Fu^V`n zOFKXarmr(a18%*108ec&*$+nT>qDRXH(Hlj_Wwldblco)iimgOsH3!j4=H9d{=kbR z^Zxdm1EI11)6SK@L%Fx{XAqO!L0Pht(jp|;i;3u@h(>meEeRQGVzT6%EJt{wBqWqA zTOm8qC}hhv$daWPgo7FT@ZRHG?{&TJzwloCFs|pio*$mM=lk5>@BP`5W9_QOhF!Py z4a;Vv_7CXU_U!oT&>@k%6QP~+@?If4{e+ddI~)kz)WaC^qv-yc$J$cYRgG%wih3uZ z=~=GjbF%+}4q#8u8Eb=3|9Sji<-o>h1Di>~QGvgJ!z`bElS7fG$ObG#NId4;7tWba zE}tw8VFd~$Ff7|3uE*`u0N&X|m6(Li1v^|6FH)?d;Ab+DAuRFPeNeBIPxnSZzpveA z$t_6GFgH21CuosF_}h14$v=*`y$f|LVtvE-!Q$Jomgf&YXqKtGvi0{wN!LX$Rmk6H z($Lc}5!C9Bzl}9Fe`eNDu}Ae)88dQcFg%Vuk86qDi@PC8L~W@>o+?j)#{N4qIc7Ra z^o}d$H+@f8!;XZ@5909j4W6Ee;ObK0IOyoa96N%zExuL{e?VQ%bua$Pw;x+RL&fQ0 zeQah}GmsI7RYP7o=e`AB*}xg;1z!MPC4z|pWb~L2671~_$caKAHE{9L z*_T3YcHLQq88=YHd!}PfH$>^}^~3~&wT(6-)g1#~==XxvzG~UoB4B}RRZPg)l(sMr z?4ihLm-Ll9fiePFF!U?+u^jRw-<*Gr$ouikr?NR1he5geMXKP*wpy-yv7^&7G_iHT zW%T2P`OAHa99Z8!-LsVRZnJo)x^o~$Ijo!()dnscHK-%yS?C>|0yO)uU*<@4rwLB) zv6VMb@LwrgtL|M?kAZYBLx#2{IF#t#10%|u1t1n%QeEtoka-ee-tf~_jqgzcDg_i8 z%B^9p@U4WET%T;uk@5xrYvHZV6wMl}vD)(fNOSXMVnU7`8Af5mm}TDk;FnxZW71#- zNzm^E#Kzdl$|`MzO?2t!WV37<$asl<)+rSgtLe|aRr4EwM>@5{dRl*EFkg}r_?Sie z@mIPWLrRga)?Z)fwr!|CfM~9ybEfMdrq!xnXyJ)dU6~e)wZMXI;kTFZi{Je>mh~v= zeiEh@Ibw={y{m^xz>z0>JApuuc z<;!zc(G({eqXp2lio8So8+-rkH41j1A;HPdE><}4sl2>h087fOJ@Io?`9!(5#%gUV zvk069XuY`5$~|_-F*qvHpQ)v#1=diXB2x^f=-GI(Kjo3SN0b)(Tzvg4><>>kOEj+4 zRjB4=+KQ)87oUmHernWTy|2E&!JU=8@a(C=#E_ z45&O(1_>s5*Q}Dh`7?!xwNsmYl31Qs&x!E@-8fmFqVp^h;804(+96@qd>u^d zW&e zXbD{^!NO>k(?SYZIe$VbngIjawvuw<-*c52{9vf+2n2iz_f-+(iY^WT`AB8Cn)SR*3mZ5a@5C5_cOt}C|&>6WroWA*#1Z*Tvk zW2BES%~b4!2SKMCZz5wY->a<|fo*b{-|215a7A!dRBGAn=?<&fg3h@a`;f2{rdztheu0Je#q~$T@5(% z>9-Cr>3FolS@KsenhE@u_&i&!75h9$c`%hJ6*jtp5(nYgJaR&fJ8tg!m1 zl9=x`kt!;j0~CI~M*TgX1s{3?=O*w{F4zVGM4@Gkut*p1qmOX1_%gH+!p+8nc)0`Q z+Htk?oFAo(O0u8@1ZF)gs9rW7pIQT3-!XYg_=VnA(O+2VAR8)eB&2K7NFdfk)Ce>SI*y<`Qf7X28@@0KA*Qi+w^xMP06CsS2UFX1q>C zbs-^1m2*x*q3+{CMTIWC>_#Td=e5~H{k!k(@xLEG(a1BWyrBMaVYI_XH|j%D(t+w{ z9sDMiJYI9x7!Wxvm}q)Inh=58)J%4NNtja!RZw#2v(DWDQedmZF4ozLqj10#^pUE$ zcI?Qv9$Ge58+FJ0BHtGn>KplsnNOuUtL1s#X@2^vyT)Jm+O;cE-2n^Q0M#F__IobV z30R27e;avrevpgZB#*;!RU7k4D{g2eAYQKsD;s=wpbxKjLx`oQN+WF`v<=Ya*-hJt zFRQ>&>l0p^nR`YUmwRvJLM=Bw%Ec{R)|TrN7epVCj7>}1?iv~J-1~ut0YyR2OdQtR z(d1)R<=67LX=iUP$T@x$U!Z!-l~1}3lt_1MFkr0UXY$`zncr^nsgY=2M=>%VP`}?- z(Y7)F0iT4z7;Q)FmyO!aKeYAbyWeG_*fjCGW%&gxh~fQA4x!hy%3JLal_Udg^~ump z=ia|`&)oTYWMVpylzW#&SrLq1HW(LOqtP@z87M{nys=TK#|b%4#L*RHIf&>d39)8ZkU7~BVqlhy0_I>;=@U9-`;SLGW1GW@i2M;k@n2sG_hw~dP(8~0u!5;|1&kezK?US)uW6JH#YzU?ogCIe%{}>y1>1lHH2T%xNel(jyq46Ao zSTV!ZndjpTnO<#E=?H>mqhABP>P$3?65#1Ut3dwTJ*d>ze>@3%f+?U_+6lI+hae&( z;pZ@+0F8iuD3Kn3CLV%@TXUz0TtDqAU^>_dQ+uZgkKh19j3F(8-JqJ_vy)h7dJsV{ zIS`MsA4QMh0>cD??A&P_`TY5m(y(cj{iU7sH~Nk6$GZD(w*kDwP`>|Vt-F2}08tk@$-A?#Fo$&ClI6Q_M SZ)`!|GA?QBU&zi0JJbNfijf2jAjB*KxrY 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 Date: Mon, 28 Nov 2016 11:24:12 -0500 Subject: [PATCH 10/12] Text mode: Combine adjacent spans when possible for cleaner HTML. So `\text{Hi}` becomes one Hi, rather than two Hi. This allows the font renderer to apply kerning, which changes some test output. --- src/buildHTML.js | 24 +++++++++---- src/domTree.js | 32 ++++++++++++++++++ .../images/DashesAndQuotes-chrome.png | Bin 8472 -> 8373 bytes .../images/DashesAndQuotes-firefox.png | Bin 8202 -> 8201 bytes test/screenshotter/images/Unicode-chrome.png | Bin 24821 -> 24823 bytes .../images/UnsupportedCmds-chrome.png | Bin 24650 -> 24632 bytes 6 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/buildHTML.js b/src/buildHTML.js index 253b0eb..9e19188 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -249,9 +249,15 @@ groupTypes.ordgroup = function(group, options) { }; groupTypes.text = function(group, options) { + var inner = buildExpression(group.value.body, options, true); + for (var i = 0; i < inner.length - 1; i++) { + if (inner[i].tryCombine(inner[i + 1])) { + inner.splice(i + 1, 1); + i--; + } + } return makeSpan(["mord", "text", options.style.cls()], - buildExpression(group.value.body, options.reset(), true), - options); + inner, options); }; groupTypes.color = function(group, options) { @@ -706,16 +712,20 @@ groupTypes.spacing = function(group, options) { // Spaces are generated by adding an actual space. Each of these // things has an entry in the symbols table, so these will be turned // into appropriate outputs. - return makeSpan( - ["mspace"], - [buildCommon.mathsym(group.value, group.mode)] - ); + if (group.mode === "text") { + return buildCommon.makeOrd(group, options, "textord"); + } else { + return makeSpan(["mspace"], + [buildCommon.mathsym(group.value, group.mode, options)], + options); + } } else { // Other kinds of spaces are of arbitrary width. We use CSS to // generate these. return makeSpan( ["mspace", - buildCommon.spacingFunctions[group.value].className]); + buildCommon.spacingFunctions[group.value].className], + [], options); } }; diff --git a/src/domTree.js b/src/domTree.js index 0517b81..f09ff4e 100644 --- a/src/domTree.js +++ b/src/domTree.js @@ -57,6 +57,10 @@ span.prototype.setAttribute = function(attribute, value) { this.attributes[attribute] = value; }; +span.prototype.tryCombine = function(sibling) { + return false; +}; + /** * Convert the span into an HTML node */ @@ -220,6 +224,34 @@ function symbolNode(value, height, depth, italic, skew, classes, style) { } } +symbolNode.prototype.tryCombine = function(sibling) { + if (!sibling + || !(sibling instanceof symbolNode) + || this.italic > 0 + || createClass(this.classes) !== createClass(sibling.classes) + || this.skew !== sibling.skew + || this.maxFontSize !== sibling.maxFontSize) { + return false; + } + for (var style in this.style) { + if (this.style.hasOwnProperty(style) + && this.style[style] !== sibling.style[style]) { + return false; + } + } + for (style in sibling.style) { + if (sibling.style.hasOwnProperty(style) + && this.style[style] !== sibling.style[style]) { + return false; + } + } + this.value += sibling.value; + this.height = Math.max(this.height, sibling.height); + this.depth = Math.max(this.depth, sibling.depth); + this.italic = sibling.italic; + return true; +}; + /** * Creates a text node or span from a symbol node. Note that a span is only * created if it is needed. diff --git a/test/screenshotter/images/DashesAndQuotes-chrome.png b/test/screenshotter/images/DashesAndQuotes-chrome.png index 122e38151d12a874b5342b606a592c7d9ee21ab4..ea21f6981d143515e7f7c4b8fe8796f3e7f65924 100644 GIT binary patch literal 8373 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 IuDM424^sxz3jhEB diff --git a/test/screenshotter/images/Unicode-chrome.png b/test/screenshotter/images/Unicode-chrome.png index 4dbd96599b45d39aa85697618b047e2eb7bac432..6c4f1ffd0d5869294b5bca5968c7e47c33ab2bc4 100644 GIT binary patch literal 24823 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 literal 24821 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 F{{^i`B**{& diff --git a/test/screenshotter/images/UnsupportedCmds-chrome.png b/test/screenshotter/images/UnsupportedCmds-chrome.png index 32735c78c927160606088c4679797622ffe3d208..7eaba5feb328bfbe3bf2e84480285720feeefd92 100644 GIT binary patch literal 24632 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 bvl1RZvlOeD>L)bM-kMAd&5w}{oUZ;0(YvpQ From e1c5f5db1c699e650990b4be52d95b62029cf83b Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Mon, 28 Nov 2016 11:39:28 -0500 Subject: [PATCH 11/12] Add support for \text{rm,it,bf,tt,sf,normal}. And allow \text to nest inside \text. --- src/Options.js | 2 +- src/buildCommon.js | 4 ++++ src/buildHTML.js | 7 ++++--- src/functions.js | 15 +++++++++++++-- static/katex.less | 8 ++++++++ test/katex-spec.js | 37 +++++++++++++++++++++++++++++++++++++ 6 files changed, 67 insertions(+), 6 deletions(-) diff --git a/src/Options.js b/src/Options.js index e6e0996..e5de594 100644 --- a/src/Options.js +++ b/src/Options.js @@ -99,7 +99,7 @@ Options.prototype.withPhantom = function() { */ Options.prototype.withFont = function(font) { return this.extend({ - font: font, + font: font || this.font, }); }; diff --git a/src/buildCommon.js b/src/buildCommon.js index a045ad3..bbd174d 100644 --- a/src/buildCommon.js +++ b/src/buildCommon.js @@ -430,6 +430,10 @@ var fontMap = { variant: "normal", fontName: "Main-Regular", }, + "textit": { + variant: "italic", + fontName: "Main-Italic", + }, // "mathit" is missing because it requires the use of two fonts: Main-Italic // and Math-Italic. This is handled by a special case in makeOrd which ends diff --git a/src/buildHTML.js b/src/buildHTML.js index 9e19188..dccf161 100644 --- a/src/buildHTML.js +++ b/src/buildHTML.js @@ -249,15 +249,16 @@ groupTypes.ordgroup = function(group, options) { }; groupTypes.text = function(group, options) { - var inner = buildExpression(group.value.body, options, true); + var newOptions = options.withFont(group.value.style); + var inner = buildExpression(group.value.body, newOptions, true); for (var i = 0; i < inner.length - 1; i++) { if (inner[i].tryCombine(inner[i + 1])) { inner.splice(i + 1, 1); i--; } } - return makeSpan(["mord", "text", options.style.cls()], - inner, options); + return makeSpan(["mord", "text", newOptions.style.cls()], + inner, newOptions); }; groupTypes.color = function(group, options) { diff --git a/src/functions.js b/src/functions.js index 24cf245..6966ea7 100644 --- a/src/functions.js +++ b/src/functions.js @@ -126,16 +126,27 @@ defineFunction("\\sqrt", { }; }); -// Some non-mathy text -defineFunction("\\text", { +// Non-mathy text, possibly in a font +var textFunctionStyles = { + "\\text": undefined, "\\textrm": "mathrm", "\\textsf": "mathsf", + "\\texttt": "mathtt", "\\textnormal": "mathrm", "\\textbf": "mathbf", + "\\textit": "textit", +}; + +defineFunction([ + "\\text", "\\textrm", "\\textsf", "\\texttt", "\\textnormal", + "\\textbf", "\\textit", +], { numArgs: 1, argTypes: ["text"], greediness: 2, + allowedInText: true, }, function(context, args) { var body = args[0]; return { type: "text", body: ordargument(body), + style: textFunctionStyles[context.funcName], }; }); diff --git a/static/katex.less b/static/katex.less index 7b8c293..764e446 100644 --- a/static/katex.less +++ b/static/katex.less @@ -49,6 +49,14 @@ display: inline-block; } + .mathrm { + font-style: normal; + } + + .textit { + font-style: italic; + } + .mathit { font-family: KaTeX_Math; font-style: italic; diff --git a/test/katex-spec.js b/test/katex-spec.js index de326d6..2018b91 100644 --- a/test/katex-spec.js +++ b/test/katex-spec.js @@ -1382,6 +1382,43 @@ describe("An HTML font tree-builder", function() { expect(markup).toContain("R"); }); + it("should render \\text{R} with the correct font", function() { + var markup = katex.renderToString("\\text{R}"); + expect(markup).toContain("R"); + }); + + it("should render \\textit{R} with the correct font", function() { + var markup = katex.renderToString("\\textit{R}"); + expect(markup).toContain("R"); + }); + + it("should render \\text{\\textit{R}} with the correct font", function() { + var markup = katex.renderToString("\\text{\\textit{R}}"); + expect(markup).toContain("R"); + }); + + it("should render \\text{R\\textit{S}T} with the correct fonts", function() { + var markup = katex.renderToString("\\text{R\\textit{S}T}"); + expect(markup).toContain("R"); + expect(markup).toContain("S"); + expect(markup).toContain("T"); + }); + + it("should render \\textbf{R} with the correct font", function() { + var markup = katex.renderToString("\\textbf{R}"); + expect(markup).toContain("R"); + }); + + it("should render \\textsf{R} with the correct font", function() { + var markup = katex.renderToString("\\textsf{R}"); + expect(markup).toContain("R"); + }); + + it("should render \\texttt{R} with the correct font", function() { + var markup = katex.renderToString("\\texttt{R}"); + expect(markup).toContain("R"); + }); + it("should render a combination of font and color changes", function() { var markup = katex.renderToString("\\color{blue}{\\mathbb R}"); var span = "R"; From 81f9a410a0183458140129efd78eae53fbf009c9 Mon Sep 17 00:00:00 2001 From: Eddie Kohler Date: Mon, 28 Nov 2016 11:54:37 -0500 Subject: [PATCH 12/12] Add text-mode definitions of symbols like \$. --- src/symbols.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/symbols.js b/src/symbols.js index 477824e..92fbef0 100644 --- a/src/symbols.js +++ b/src/symbols.js @@ -87,7 +87,9 @@ defineSymbol(math, main, punct, "\u22c5", "\\cdotp"); // Misc Symbols defineSymbol(math, main, textord, "\u0023", "\\#"); +defineSymbol(text, main, textord, "\u0023", "\\#"); defineSymbol(math, main, textord, "\u0026", "\\&"); +defineSymbol(text, main, textord, "\u0026", "\\&"); defineSymbol(math, main, textord, "\u2135", "\\aleph"); defineSymbol(math, main, textord, "\u2200", "\\forall"); defineSymbol(math, main, textord, "\u210f", "\\hbar"); @@ -394,8 +396,11 @@ defineSymbol(math, ams, rel, "\u21be", "\\restriction"); defineSymbol(math, main, textord, "\u2018", "`"); defineSymbol(math, main, textord, "$", "\\$"); +defineSymbol(text, main, textord, "$", "\\$"); defineSymbol(math, main, textord, "%", "\\%"); +defineSymbol(text, main, textord, "%", "\\%"); defineSymbol(math, main, textord, "_", "\\_"); +defineSymbol(text, main, textord, "_", "\\_"); defineSymbol(math, main, textord, "\u2220", "\\angle"); defineSymbol(math, main, textord, "\u221e", "\\infty"); defineSymbol(math, main, textord, "\u2032", "\\prime"); @@ -534,7 +539,9 @@ defineSymbol(math, main, bin, "\u22c6", "\\star"); defineSymbol(math, main, bin, "\u25c3", "\\triangleleft"); defineSymbol(math, main, bin, "\u25b9", "\\triangleright"); defineSymbol(math, main, open, "{", "\\{"); +defineSymbol(text, main, textord, "{", "\\{"); defineSymbol(math, main, close, "}", "\\}"); +defineSymbol(text, main, textord, "}", "\\}"); defineSymbol(math, main, open, "{", "\\lbrace"); defineSymbol(math, main, close, "}", "\\rbrace"); defineSymbol(math, main, open, "[", "\\lbrack");