From 832a3cde092aba0af979a24073862fb85bfabe33 Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Tue, 19 Jul 2016 03:05:11 +1000 Subject: [PATCH 1/9] Added support for UML ExecutionSpecifications I've added support for UML ExecutionSpecifications, which are the grey bars commonly seen in UML Sequence Diagrams, and indicate the execution of an action. Using them is quite simple, all you need to do is prepend a `+` or `-` character before the actor/lifeline that will be executing an action. The `+` character will begin the ExecutionSpecification, and the `-` character will end it. Example ------- The following example shows an API executing a function in response to a user calling function foo(). User->+API: foo() note right of foo: Processing foo. -API-->User: Result. --- src/diagram.js | 79 +++++++++++++++++++++++++++++++++- src/grammar.jison | 13 ++++-- src/sequence-diagram.js | 94 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 178 insertions(+), 8 deletions(-) diff --git a/src/diagram.js b/src/diagram.js index e1fdc5d..c3d018d 100644 --- a/src/diagram.js +++ b/src/diagram.js @@ -50,6 +50,8 @@ }; Diagram.prototype.addSignal = function(signal) { + // Set the numerical index of the signal. + signal.index = this.signals.length; this.signals.push( signal ); }; @@ -57,15 +59,24 @@ this.alias = alias; this.name = name; this.index = index; + this.executionSpecificationStack = []; + this.executionSpecifications = []; + // A value of -1 indicates that this actor/lifeline has no execution + // specifications. + this.maxExecutionSpecificationLevel = -1; }; - Diagram.Signal = function(actorA, signaltype, actorB, message) { + Diagram.Signal = function(actorA, signaltype, actorB, message, + execSpecLevelChangeA, execSpecLevelChangeB) { this.type = "Signal"; this.actorA = actorA; this.actorB = actorB; this.linetype = signaltype & 3; this.arrowtype = (signaltype >> 2) & 3; this.message = message; + this.index = null; + this.actorA.changeExecSpecLevel(execSpecLevelChangeA, this); + this.actorB.changeExecSpecLevel(execSpecLevelChangeB, this); }; Diagram.Signal.prototype.isSelf = function() { @@ -83,6 +94,66 @@ } }; + Diagram.ExecutionSpecification = function(actor, startSignal, level) { + this.actor = actor; + this.startSignal = startSignal; + this.endSignal = null; + this.level = level; + }; + + Diagram.Actor.prototype.changeExecSpecLevel = function(change, signal) { + switch (change) { + case Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED: + break; + case Diagram.EXEC_SPEC_LVL_CHANGE.INCREASE_LEVEL: + var newLevel = this.executionSpecificationStack.length; + this.maxExecutionSpecificationLevel = + Math.max(this.maxExecutionSpecificationLevel, newLevel); + var executionSpecification = + new Diagram.ExecutionSpecification(this, signal, newLevel); + this.executionSpecificationStack.push(executionSpecification); + this.executionSpecifications.push(executionSpecification); + break; + case Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL: + if (this.executionSpecificationStack.length >= 0) { + this.executionSpecificationStack.pop().setEndSignal(signal); + } else { + throw new Error("The execution specification level for actor " + this.name + " was dropped below 0."); + } + break; + } + }; + + /* + * Returns the execution specification level for the actor at the point in + * the sequence that the given signal is executed. + */ + Diagram.Actor.prototype.execSpecLevelAtSignal = function (signal) { + var level = -1; + _.each(this.executionSpecifications, function (e) { + if ((e.startSignal.index <= signal.index) && + (e.endSignal === null || (e.endSignal.index >= signal.index))) { + level += 1; + } + }); + return level; + }; + + Diagram.Actor.prototype.topExecSpecAtSignal = function (signal) { + var execSpec = null; + _.each(this.executionSpecifications, function (e) { + if ((e.startSignal.index <= signal.index) && + (e.endSignal === null || (e.endSignal.index >= signal.index))) { + execSpec = e; + } + }); + return execSpec; + }; + + Diagram.ExecutionSpecification.prototype.setEndSignal = function (signal) { + this.endSignal = signal; + }; + Diagram.Note.prototype.hasManyActors = function() { return _.isArray(this.actor); }; @@ -108,6 +179,12 @@ OVER : 2 }; + Diagram.EXEC_SPEC_LVL_CHANGE = { + UNCHANGED : 0, + INCREASE_LEVEL : 1, + DECREASE_LEVEL : -1 + }; + // Some older browsers don't have getPrototypeOf, thus we polyfill it // https://github.com/bramp/js-sequence-diagrams/issues/57 diff --git a/src/grammar.jison b/src/grammar.jison index d74a4f8..0aeac64 100644 --- a/src/grammar.jison +++ b/src/grammar.jison @@ -23,10 +23,11 @@ "note" return 'note'; "title" return 'title'; "," return ','; -[^\->:,\r\n"]+ return 'ACTOR'; +[^\->:,\r\n"+]+ return 'ACTOR'; \"[^"]+\" return 'ACTOR'; "--" return 'DOTLINE'; "-" return 'LINE'; +"+" return 'PLUS'; ">>" return 'OPENARROW'; ">" return 'ARROW'; :[^\r\n]+ return 'MESSAGE'; @@ -76,8 +77,14 @@ placement ; signal - : actor signaltype actor message - { $$ = new Diagram.Signal($1, $2, $3, $4); } + : execution_modifier actor signaltype execution_modifier actor message + { $$ = new Diagram.Signal($2, $3, $5, $6, $1, $4); } + ; + +execution_modifier + : /* empty */ { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED} + | LINE { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL } + | PLUS { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.INCREASE_LEVEL } ; actor diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index a64abdf..53617e9 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -34,6 +34,9 @@ var SELF_SIGNAL_WIDTH = 20; // How far out a self signal goes + var EXECUTION_SPECIFICATION_WIDTH = 10; + var OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET = EXECUTION_SPECIFICATION_WIDTH * 0.5; + var PLACEMENT = Diagram.PLACEMENT; var LINETYPE = Diagram.LINETYPE; var ARROWTYPE = Diagram.ARROWTYPE; @@ -47,6 +50,12 @@ 'fill': "#fff" }; + var EXECUTION_SPECIFICATION_RECT = { + 'stroke': '#000', + 'stroke-width': 2, + 'fill': '#e6e6e6' // Color taken from the UML specification examples + }; + function AssertException(message) { this.message = message; } AssertException.prototype.toString = function () { return 'AssertException: ' + this.message; @@ -76,6 +85,28 @@ return box.y + box.height / 2; } +/****************** + * Drawing related extra diagram methods. + ******************/ + + Diagram.Actor.prototype.execSpecMarginLeft = function(signal) { + var level = this.execSpecLevelAtSignal(signal); + if (level < 0) { + return 0; + } else { + return -(EXECUTION_SPECIFICATION_WIDTH * 0.5) + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + } + }; + + Diagram.Actor.prototype.execSpecMarginRight = function(signal) { + var level = this.execSpecLevelAtSignal(signal); + if (level < 0) { + return 0; + } else { + return (EXECUTION_SPECIFICATION_WIDTH * 0.5) + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + } + }; + /****************** * Raphaël extras ******************/ @@ -133,14 +164,17 @@ /** * Draws a wobbly (hand drawn) rect */ - Raphael.fn.handRect = function (x, y, w, h) { + Raphael.fn.handRect = function (x, y, w, h, rect) { assert(_.every([x, y, w, h], _.isFinite), "x, y, w, h must be numeric"); + if (!rect) { + rect = RECT; + } return this.path("M" + x + "," + y + this.wobble(x, y, x + w, y) + this.wobble(x + w, y, x + w, y + h) + this.wobble(x + w, y + h, x, y + h) + this.wobble(x, y + h, x, y)) - .attr(RECT); + .attr(rect); }; /** @@ -231,6 +265,7 @@ this.draw_title(); this.draw_actors(y); this.draw_signals(y + this._actors_height); + this.draw_execution_specifications(); this._paper.setFinish(); }, @@ -274,6 +309,9 @@ a.distances = []; a.padding_right = 0; + if (a.maxExecutionSpecificationLevel >= 0) { + a.padding_right = (EXECUTION_SPECIFICATION_WIDTH/2.0) + a.maxExecutionSpecificationLevel * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + } self._actors_height = Math.max(a.height, self._actors_height); }); @@ -418,6 +456,29 @@ this.draw_text_box(actor, actor.name, ACTOR_MARGIN, ACTOR_PADDING, this._font); }, + draw_execution_specifications : function () { + var self = this; + _.each(this.diagram.actors, function(a) { + self.draw_actors_execution_specifications(a); + }); + }, + + draw_actors_execution_specifications : function (actor) { + var self = this; + _.each(actor.executionSpecifications, function (e) { + var aX = getCenterX(actor); + aX += e.level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + var x = aX - EXECUTION_SPECIFICATION_WIDTH/2.0; + var y = e.startSignal.endY; + var w = EXECUTION_SPECIFICATION_WIDTH; + var h = e.endSignal ? e.endSignal.startY - y : (actor.y - y); + + // Draw inner box + var rect = self.draw_rect(x, y, w, h); + rect.attr(EXECUTION_SPECIFICATION_RECT); + }); + }, + draw_signals : function (offsetY) { var y = offsetY; var self = this; @@ -442,6 +503,7 @@ var text_bb = signal.text_bb; var aX = getCenterX(signal.actorA); + aX += signal.actorA.execSpecMarginRight(signal); var x = aX + SELF_SIGNAL_WIDTH + SIGNAL_PADDING - text_bb.x; var y = offsetY + signal.height / 2; @@ -452,26 +514,47 @@ 'stroke-dasharray': this.line_types[signal.linetype] }); + var x1 = aX; + var x2 = aX; var y1 = offsetY + SIGNAL_MARGIN; var y2 = y1 + signal.height - SIGNAL_MARGIN; + var topExecSpec = signal.actorA.topExecSpecAtSignal(signal); + if (topExecSpec.startSignal === signal) { + x1 -= OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + } + if (topExecSpec.endSignal === signal) { + x2 -= OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + } + // Draw three lines, the last one with a arrow var line; - line = this.draw_line(aX, y1, aX + SELF_SIGNAL_WIDTH, y1); + line = this.draw_line(x1, y1, aX + SELF_SIGNAL_WIDTH, y1); line.attr(attr); line = this.draw_line(aX + SELF_SIGNAL_WIDTH, y1, aX + SELF_SIGNAL_WIDTH, y2); line.attr(attr); - line = this.draw_line(aX + SELF_SIGNAL_WIDTH, y2, aX, y2); + line = this.draw_line(aX + SELF_SIGNAL_WIDTH, y2, x2, y2); attr['arrow-end'] = this.arrow_types[signal.arrowtype] + '-wide-long'; line.attr(attr); + + signal.startY = y1; + signal.endY = y2; }, draw_signal : function (signal, offsetY) { var aX = getCenterX( signal.actorA ); var bX = getCenterX( signal.actorB ); + if (bX > aX) { + aX += signal.actorA.execSpecMarginRight(signal); + bX += signal.actorB.execSpecMarginLeft(signal); + } else { + aX += signal.actorA.execSpecMarginLeft(signal); + bX += signal.actorB.execSpecMarginRight(signal); + } + // Mid point between actors var x = (bX - aX) / 2 + aX; var y = offsetY + SIGNAL_MARGIN + 2*SIGNAL_PADDING; @@ -488,6 +571,9 @@ 'stroke-dasharray': this.line_types[signal.linetype] }); + signal.startY = y; + signal.endY = y; + //var ARROW_SIZE = 16; //var dir = this.actorA.x < this.actorB.x ? 1 : -1; //draw_arrowhead(bX, offsetY, ARROW_SIZE, dir); From 51d1e12a353c3c944ff974167617122a9547c1a8 Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Tue, 19 Jul 2016 03:40:41 +1000 Subject: [PATCH 2/9] Fixed whitespace inconsistencies in grammar.jison --- src/grammar.jison | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/grammar.jison b/src/grammar.jison index 0aeac64..e2117d2 100644 --- a/src/grammar.jison +++ b/src/grammar.jison @@ -23,11 +23,11 @@ "note" return 'note'; "title" return 'title'; "," return ','; -[^\->:,\r\n"+]+ return 'ACTOR'; +[^\->:,\r\n"+]+ return 'ACTOR'; \"[^"]+\" return 'ACTOR'; "--" return 'DOTLINE'; "-" return 'LINE'; -"+" return 'PLUS'; +"+" return 'PLUS'; ">>" return 'OPENARROW'; ">" return 'ARROW'; :[^\r\n]+ return 'MESSAGE'; @@ -82,7 +82,7 @@ signal ; execution_modifier - : /* empty */ { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED} + : /* empty */ { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED } | LINE { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL } | PLUS { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.INCREASE_LEVEL } ; From 8169191fc5cc2452768d89c348e247ff1c8b83db Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Tue, 19 Jul 2016 08:03:16 +1000 Subject: [PATCH 3/9] Deferred signal rendering post exec specifications Signals were being rendered before execution specifications because I was using the signal draw code to calculate the y position of each signal. Signal y-positions are now calculated independently by the execution specification drawing code. This means execution specifications no longer overlay signal arrows and/or labels. --- src/sequence-diagram.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index 53617e9..6f8d31a 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -264,8 +264,8 @@ this.draw_title(); this.draw_actors(y); + this.draw_execution_specifications(y + this._actors_height); this.draw_signals(y + this._actors_height); - this.draw_execution_specifications(); this._paper.setFinish(); }, @@ -456,8 +456,23 @@ this.draw_text_box(actor, actor.name, ACTOR_MARGIN, ACTOR_PADDING, this._font); }, - draw_execution_specifications : function () { + draw_execution_specifications : function (offsetY) { + var y = offsetY; var self = this; + + _.each(this.diagram.signals, function(s) { + if (s.type == "Signal") { + if (s.isSelf()) { + s.startY = y + SIGNAL_MARGIN; + s.endY = s.startY + s.height - SIGNAL_MARGIN; + } else { + s.startY = s.endY = y + s.height - SIGNAL_MARGIN - SIGNAL_PADDING; + } + } + + y += s.height; + }); + _.each(this.diagram.actors, function(a) { self.draw_actors_execution_specifications(a); }); @@ -538,9 +553,6 @@ line = this.draw_line(aX + SELF_SIGNAL_WIDTH, y2, x2, y2); attr['arrow-end'] = this.arrow_types[signal.arrowtype] + '-wide-long'; line.attr(attr); - - signal.startY = y1; - signal.endY = y2; }, draw_signal : function (signal, offsetY) { @@ -571,9 +583,6 @@ 'stroke-dasharray': this.line_types[signal.linetype] }); - signal.startY = y; - signal.endY = y; - //var ARROW_SIZE = 16; //var dir = this.actorA.x < this.actorB.x ? 1 : -1; //draw_arrowhead(bX, offsetY, ARROW_SIZE, dir); From 85e9c6b9c1372c386c11b55c792de032f9c15a58 Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Wed, 20 Jul 2016 07:59:28 +1000 Subject: [PATCH 4/9] Added Regression tests for ExecutionSpecifcations Tests syntax changes, and makes sure it doesn't break anything else. --- test/grammar-tests.js | 46 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/test/grammar-tests.js b/test/grammar-tests.js index d9be9f0..3dd276f 100644 --- a/test/grammar-tests.js +++ b/test/grammar-tests.js @@ -67,6 +67,13 @@ function assertEmptyDocument(d) { equal(d.signals.length, 0, "Zero signals"); } +function testExecutionSpecification(execSpec, affectedActorName, startSignal, endSignal, level) { + equal(execSpec.actor.name, affectedActorName, "Correct actor"); + equal(execSpec.startSignal, startSignal, "Start signal of ExecutionSpecification"); + equal(execSpec.endSignal, endSignal, "End signal of ExecutionSpecification"); + equal(execSpec.level, level, "Nesting level of ExecutionSpecification"); +} + var LINETYPE = Diagram.LINETYPE; var ARROWTYPE = Diagram.ARROWTYPE; @@ -185,6 +192,45 @@ test( "Quoted names", function() { assertSingleArrow(Diagram.parse("\"->:\"->B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "->:", "B", "M"); assertSingleArrow(Diagram.parse("A->\"->:\": M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "->:", "M"); assertSingleActor(Diagram.parse("Participant \"->:\""), "->:"); + assertSingleArrow(Diagram.parse("A->\"+B\": M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "+B", "M"); + assertSingleArrow(Diagram.parse("\"+A\"->B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "+A", "B", "M"); + assertSingleArrow(Diagram.parse("\"+A\"->\"+B\": M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "+A", "+B", "M"); +}); + +test( "ExecutionSpecifications", function () { + assertSingleArrow(Diagram.parse("A->+B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "B", "M"); + assertSingleArrow(Diagram.parse("+A->B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "B", "M"); + assertSingleArrow(Diagram.parse("+A-->+B: M"), ARROWTYPE.FILLED, LINETYPE.DOTTED, "A", "B", "M"); + assertSingleArrow(Diagram.parse("+\"+A\"-->+B: M"), ARROWTYPE.FILLED, LINETYPE.DOTTED, "+A", "B", "M"); + + var d = Diagram.parse("A->+B: M1\n+B-->-B: M2\n-B-->>+A: M3"); + equal(d.actors.length, 2, "Correct actors count"); + + var a = d.actors[0]; + var b = d.actors[1]; + equal(a.name, "A", "Actors A name"); + equal(b.name, "B", "Actors B name"); + var execSpecsA = a.executionSpecifications; + var execSpecsB = b.executionSpecifications; + + equal(d.signals.length, 3, "Correct signals count"); + equal(execSpecsA.length, 1, "Correct actor A ExecutionSpecification count"); + equal(execSpecsB.length, 2, "Correct actor B ExecutionSpecification count"); + + // More or less normal ExecutionSpecification + testExecutionSpecification(execSpecsB[0], "B", d.signals[0], d.signals[2], 0); + // Self-signalled ExecutionSpecification + testExecutionSpecification(execSpecsB[1], "B", d.signals[1], d.signals[1], 1); + // Endless ExecutionSpecification + testExecutionSpecification(execSpecsA[0], "A", d.signals[2], null, 0); + + // Make sure we haven't broken the different arrow types. + equal(d.signals[0].arrowtype, ARROWTYPE.FILLED, "Signal 1 Arrow Type"); + equal(d.signals[0].linetype, LINETYPE.SOLID, "Signal 1 Line Type"); + equal(d.signals[1].arrowtype, ARROWTYPE.FILLED, "Signal 2 Arrow Type"); + equal(d.signals[1].linetype, LINETYPE.DOTTED, "Signal 2 Line Type"); + equal(d.signals[2].arrowtype, ARROWTYPE.OPEN, "Signal 3 Arrow Type"); + equal(d.signals[2].linetype, LINETYPE.DOTTED, "Signal 3 Line Type"); }); test( "API", function() { From 5772d402bc3e704ef8182f290ece3b5f1188d960 Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Thu, 21 Jul 2016 00:08:51 +1000 Subject: [PATCH 5/9] Addressed self-signal execution specification rendring issues Also did some cleanup and updated the EBNF grammar. --- src/diagram.js | 21 ++++++++++++++------- src/grammar.ebnf | 2 +- src/sequence-diagram.js | 22 ++++++++++++---------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/diagram.js b/src/diagram.js index c3d018d..7e935fd 100644 --- a/src/diagram.js +++ b/src/diagram.js @@ -61,8 +61,6 @@ this.index = index; this.executionSpecificationStack = []; this.executionSpecifications = []; - // A value of -1 indicates that this actor/lifeline has no execution - // specifications. this.maxExecutionSpecificationLevel = -1; }; @@ -118,7 +116,8 @@ if (this.executionSpecificationStack.length >= 0) { this.executionSpecificationStack.pop().setEndSignal(signal); } else { - throw new Error("The execution specification level for actor " + this.name + " was dropped below 0."); + throw new Error("The execution specification level for actor " + this.name + + " was dropped below 0."); } break; } @@ -126,24 +125,32 @@ /* * Returns the execution specification level for the actor at the point in - * the sequence that the given signal is executed. + * the sequence that the given signal is processed. */ Diagram.Actor.prototype.execSpecLevelAtSignal = function (signal) { var level = -1; - _.each(this.executionSpecifications, function (e) { + _.each(this.executionSpecifications, function (e, i) { if ((e.startSignal.index <= signal.index) && (e.endSignal === null || (e.endSignal.index >= signal.index))) { - level += 1; + level = Math.max(e.level, level); } }); return level; }; + /* + * Returns the top level executionSpecification at the point in the sequence + * that the given sequence is processed. Since the matching is inclusive, it + * is used to identify if the signal is at the start or end of the + * executionSpecification. + */ Diagram.Actor.prototype.topExecSpecAtSignal = function (signal) { var execSpec = null; _.each(this.executionSpecifications, function (e) { if ((e.startSignal.index <= signal.index) && - (e.endSignal === null || (e.endSignal.index >= signal.index))) { + (e.endSignal === null || (e.endSignal.index >= signal.index)) && + (execSpec === null || e.level >= execSpec.level)) + { execSpec = e; } }); diff --git a/src/grammar.ebnf b/src/grammar.ebnf index 1be778d..28f013e 100644 --- a/src/grammar.ebnf +++ b/src/grammar.ebnf @@ -15,7 +15,7 @@ statement ::= ( 'left of' | 'right of') actor | 'over' (actor | actor ',' actor) ) ':' message - | actor ( '-' | '--' ) ( '>' | '>>' )? actor ':' message + | ( '-' | '+' )? actor ( '-' | '--' ) ( '>' | '>>' )? ( '-' | '+' )? actor ':' message ) /* diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index 6f8d31a..58f2ecb 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -86,7 +86,7 @@ } /****************** - * Drawing related extra diagram methods. + * Drawing-related extra diagram methods. ******************/ Diagram.Actor.prototype.execSpecMarginLeft = function(signal) { @@ -94,7 +94,8 @@ if (level < 0) { return 0; } else { - return -(EXECUTION_SPECIFICATION_WIDTH * 0.5) + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + return -EXECUTION_SPECIFICATION_WIDTH * 0.5 + + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; } }; @@ -103,7 +104,8 @@ if (level < 0) { return 0; } else { - return (EXECUTION_SPECIFICATION_WIDTH * 0.5) + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + return EXECUTION_SPECIFICATION_WIDTH * 0.5 + + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; } }; @@ -164,17 +166,14 @@ /** * Draws a wobbly (hand drawn) rect */ - Raphael.fn.handRect = function (x, y, w, h, rect) { + Raphael.fn.handRect = function (x, y, w, h) { assert(_.every([x, y, w, h], _.isFinite), "x, y, w, h must be numeric"); - if (!rect) { - rect = RECT; - } return this.path("M" + x + "," + y + this.wobble(x, y, x + w, y) + this.wobble(x + w, y, x + w, y + h) + this.wobble(x + w, y + h, x, y + h) + this.wobble(x, y + h, x, y)) - .attr(rect); + .attr(RECT); }; /** @@ -310,7 +309,9 @@ a.distances = []; a.padding_right = 0; if (a.maxExecutionSpecificationLevel >= 0) { - a.padding_right = (EXECUTION_SPECIFICATION_WIDTH/2.0) + a.maxExecutionSpecificationLevel * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + a.padding_right = (EXECUTION_SPECIFICATION_WIDTH / 2.0) + + (a.maxExecutionSpecificationLevel * + OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET); } self._actors_height = Math.max(a.height, self._actors_height); }); @@ -460,6 +461,7 @@ var y = offsetY; var self = this; + // Calculate the y-positions of each signal before we attempt to draw the executionSpecificaitons. _.each(this.diagram.signals, function(s) { if (s.type == "Signal") { if (s.isSelf()) { @@ -488,7 +490,7 @@ var w = EXECUTION_SPECIFICATION_WIDTH; var h = e.endSignal ? e.endSignal.startY - y : (actor.y - y); - // Draw inner box + // Draw actual execution specification. var rect = self.draw_rect(x, y, w, h); rect.attr(EXECUTION_SPECIFICATION_RECT); }); From a1127b8f368951254b851dbb402b40176938b5be Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Thu, 21 Jul 2016 01:14:25 +1000 Subject: [PATCH 6/9] refactoring --- src/diagram.js | 61 ++++++++++++++++++----------------------- src/sequence-diagram.js | 34 +++++++++-------------- 2 files changed, 39 insertions(+), 56 deletions(-) diff --git a/src/diagram.js b/src/diagram.js index 7e935fd..3972c83 100644 --- a/src/diagram.js +++ b/src/diagram.js @@ -73,14 +73,39 @@ this.arrowtype = (signaltype >> 2) & 3; this.message = message; this.index = null; + // If this is a self-signal and an ExecutionSpecification level modifier was only applied to the + // left-hand side of the signal, move it to the right-hand side to prevent rendering issues. + if (actorA === actorB && execSpecLevelChangeB === Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED) { + execSpecLevelChangeB = execSpecLevelChangeA; + execSpecLevelChangeA = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED; + } + + if (actorA === actorB && execSpecLevelChangeA === execSpecLevelChangeB && + execSpecLevelChangeA !== Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED) { + throw new Error("You cannot move the ExecutionSpecification nesting level in the same " + + "direction twice on a single self-signal."); + } this.actorA.changeExecSpecLevel(execSpecLevelChangeA, this); + this.startLevel = this.actorA.executionSpecificationStack.length - 1; this.actorB.changeExecSpecLevel(execSpecLevelChangeB, this); + this.endLevel = this.actorB.executionSpecificationStack.length - 1; }; Diagram.Signal.prototype.isSelf = function() { return this.actorA.index == this.actorB.index; }; + /* + * If the signal is a self signal, this method returns the higher ExecutionSpecification nesting level + * between the start and end of the signal. + */ + Diagram.Signal.prototype.maxExecSpecLevel = function () { + if (!this.isSelf()) { + throw new Error("maxExecSpecLevel() was called on a non-self signal."); + } + return Math.max(this.startLevel, this.endLevel); + }; + Diagram.Note = function(actor, placement, message) { this.type = "Note"; this.actor = actor; @@ -113,7 +138,7 @@ this.executionSpecifications.push(executionSpecification); break; case Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL: - if (this.executionSpecificationStack.length >= 0) { + if (this.executionSpecificationStack.length > 0) { this.executionSpecificationStack.pop().setEndSignal(signal); } else { throw new Error("The execution specification level for actor " + this.name + @@ -123,40 +148,6 @@ } }; - /* - * Returns the execution specification level for the actor at the point in - * the sequence that the given signal is processed. - */ - Diagram.Actor.prototype.execSpecLevelAtSignal = function (signal) { - var level = -1; - _.each(this.executionSpecifications, function (e, i) { - if ((e.startSignal.index <= signal.index) && - (e.endSignal === null || (e.endSignal.index >= signal.index))) { - level = Math.max(e.level, level); - } - }); - return level; - }; - - /* - * Returns the top level executionSpecification at the point in the sequence - * that the given sequence is processed. Since the matching is inclusive, it - * is used to identify if the signal is at the start or end of the - * executionSpecification. - */ - Diagram.Actor.prototype.topExecSpecAtSignal = function (signal) { - var execSpec = null; - _.each(this.executionSpecifications, function (e) { - if ((e.startSignal.index <= signal.index) && - (e.endSignal === null || (e.endSignal.index >= signal.index)) && - (execSpec === null || e.level >= execSpec.level)) - { - execSpec = e; - } - }); - return execSpec; - }; - Diagram.ExecutionSpecification.prototype.setEndSignal = function (signal) { this.endSignal = signal; }; diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index 58f2ecb..a374f8e 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -89,25 +89,25 @@ * Drawing-related extra diagram methods. ******************/ - Diagram.Actor.prototype.execSpecMarginLeft = function(signal) { - var level = this.execSpecLevelAtSignal(signal); + // These functions return the x-offset from the lifeline centre given the current ExecutionSpecification + // nesting-level. + function execSpecMarginLeft(level) { if (level < 0) { return 0; } else { return -EXECUTION_SPECIFICATION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; } - }; + } - Diagram.Actor.prototype.execSpecMarginRight = function(signal) { - var level = this.execSpecLevelAtSignal(signal); + function execSpecMarginRight(level) { if (level < 0) { return 0; } else { return EXECUTION_SPECIFICATION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; } - }; + } /****************** * Raphaël extras @@ -520,7 +520,7 @@ var text_bb = signal.text_bb; var aX = getCenterX(signal.actorA); - aX += signal.actorA.execSpecMarginRight(signal); + aX += execSpecMarginRight(signal.maxExecSpecLevel()); var x = aX + SELF_SIGNAL_WIDTH + SIGNAL_PADDING - text_bb.x; var y = offsetY + signal.height / 2; @@ -531,19 +531,11 @@ 'stroke-dasharray': this.line_types[signal.linetype] }); - var x1 = aX; - var x2 = aX; + var x1 = getCenterX(signal.actorA) + execSpecMarginRight(signal.startLevel); + var x2 = getCenterX(signal.actorA) + execSpecMarginRight(signal.endLevel); var y1 = offsetY + SIGNAL_MARGIN; var y2 = y1 + signal.height - SIGNAL_MARGIN; - var topExecSpec = signal.actorA.topExecSpecAtSignal(signal); - if (topExecSpec.startSignal === signal) { - x1 -= OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; - } - if (topExecSpec.endSignal === signal) { - x2 -= OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; - } - // Draw three lines, the last one with a arrow var line; line = this.draw_line(x1, y1, aX + SELF_SIGNAL_WIDTH, y1); @@ -562,11 +554,11 @@ var bX = getCenterX( signal.actorB ); if (bX > aX) { - aX += signal.actorA.execSpecMarginRight(signal); - bX += signal.actorB.execSpecMarginLeft(signal); + aX += execSpecMarginRight(signal.startLevel); + bX += execSpecMarginLeft(signal.endLevel); } else { - aX += signal.actorA.execSpecMarginLeft(signal); - bX += signal.actorB.execSpecMarginRight(signal); + aX += execSpecMarginLeft(signal.startLevel); + bX += execSpecMarginRight(signal.endLevel); } // Mid point between actors From 9cb04c77b6298c7c0de68ec68d833a4cb6e34790 Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Thu, 21 Jul 2016 01:50:26 +1000 Subject: [PATCH 7/9] more refactoring --- src/sequence-diagram.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index a374f8e..05ce43c 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -486,9 +486,16 @@ var aX = getCenterX(actor); aX += e.level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; var x = aX - EXECUTION_SPECIFICATION_WIDTH/2.0; - var y = e.startSignal.endY; + var y; var w = EXECUTION_SPECIFICATION_WIDTH; - var h = e.endSignal ? e.endSignal.startY - y : (actor.y - y); + var h; + if (e.startSignal === e.endSignal) { + y = e.startSignal.startY; + h = e.endSignal ? e.endSignal.endY - y : (actor.y - y); + } else { + y = e.startSignal.endY; + h = e.endSignal ? e.endSignal.startY - y : (actor.y - y); + } // Draw actual execution specification. var rect = self.draw_rect(x, y, w, h); From f7199d94d4a9fbe68a61fd65cc746c6e789d4b3f Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Thu, 21 Jul 2016 02:08:14 +1000 Subject: [PATCH 8/9] Renamed ExecutionSpecification to just: Execution --- build/sequence-diagram-min.js | 6 +-- build/sequence-diagram-min.js.map | 2 +- src/diagram.js | 69 +++++++++++++++---------------- src/grammar.jison | 6 +-- src/sequence-diagram.js | 65 ++++++++++++++--------------- test/grammar-tests.js | 34 +++++++-------- 6 files changed, 89 insertions(+), 93 deletions(-) diff --git a/build/sequence-diagram-min.js b/build/sequence-diagram-min.js index fa21e33..c7dc6a6 100644 --- a/build/sequence-diagram-min.js +++ b/build/sequence-diagram-min.js @@ -3,7 +3,7 @@ * (c) 2012-2015 Andrew Brampton (bramp.net) * @license Simplified BSD license. */ -!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index},Diagram.Signal=function(actorA,signaltype,actorB,message){this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[5,8,9,13,15,24],$V1=[1,13],$V2=[1,17],$V3=[24,29,30],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,signaltype:23,ACTOR:24,linetype:25,arrowtype:26,LINE:27,DOTLINE:28,ARROW:29,OPENARROW:30,MESSAGE:31,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",24:"ACTOR",27:"LINE",28:"DOTLINE",29:"ARROW",30:"OPENARROW",31:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,4],[17,1],[10,1],[23,2],[23,1],[25,1],[25,1],[26,1],[26,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 20:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-3],$$[$0-2],$$[$0-1],$$[$0]);break;case 17:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 18:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 19:this.$=$$[$0-1]|$$[$0]<<2;break;case 21:this.$=Diagram.LINETYPE.SOLID;break;case 22:this.$=Diagram.LINETYPE.DOTTED;break;case 23:this.$=Diagram.ARROWTYPE.FILLED;break;case 24:this.$=Diagram.ARROWTYPE.OPEN;break;case 25:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],17:11,24:$V1},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:14,24:[1,15]},o($V0,[2,7]),o($V0,[2,8]),{14:16,31:$V2},{23:18,25:19,27:[1,20],28:[1,21]},{16:22,18:[1,23],21:[1,24],22:[1,25]},o([20,27,28,31],[2,17]),o($V0,[2,6]),o($V0,[2,18]),o($V0,[2,9]),o($V0,[2,25]),{17:26,24:$V1},{24:[2,20],26:27,29:[1,28],30:[1,29]},o($V3,[2,21]),o($V3,[2,22]),{17:30,24:$V1},{17:32,19:31,24:$V1},{24:[2,14]},{24:[2,15]},{14:33,31:$V2},{24:[2,19]},{24:[2,23]},{24:[2,24]},{14:34,31:$V2},{14:35,31:$V2},{20:[1,36],31:[2,12]},o($V0,[2,16]),o($V0,[2,10]),o($V0,[2,11]),{17:37,24:$V1},{31:[2,13]}],defaultActions:{3:[2,1],24:[2,14],25:[2,15],27:[2,19],28:[2,23],29:[2,24],37:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((null===symbol||"undefined"==typeof symbol)&&(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 24;case 11:return 24;case 12:return 28;case 13:return 27;case 14:return 30;case 15:return 29;case 16:return 31;case 17:return 5;case 18:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram},Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179}," ":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15",w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59",w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81", -w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"236,38v20,-18,-8,-74,-13,-90v-44,-78,-112,-190,-200,-253v-2,0,-5,4,-7,12v-11,31,13,36,24,58v74,61,174,219,180,273r16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199}," ":{w:179},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29",w:331},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28",w:171},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18", -w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199}}});var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,LINE={stroke:"#000","stroke-width":2},RECT={fill:"#fff"};AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)},Raphael.fn.wobble=function(x1,y1,x2,y2){assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var wobble=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=Math.random(),r2=Math.random(),xfactor=Math.random()>.5?wobble:-wobble,yfactor=Math.random()>.5?wobble:-wobble,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x+","+p1.y+" "+p2.x+","+p2.y+" "+x2+","+y2},Raphael.fn.text_bbox=function(text,font){var p;font._obj?p=this.print_center(0,0,text,font._obj,font["font-size"]):(p=this.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},Raphael.fn.handRect=function(x,y,w,h){return assert(_.every([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),this.path("M"+x+","+y+this.wobble(x,y,x+w,y)+this.wobble(x+w,y,x+w,y+h)+this.wobble(x+w,y+h,x,y+h)+this.wobble(x,y+h,x,y)).attr(RECT)},Raphael.fn.handLine=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M"+x1+","+y1+this.wobble(x1,y1,x2,y2))},Raphael.fn.print_center=function(x,y,string,font,size,letter_spacing){var path=this.print(x,y,string,font,size,"baseline",letter_spacing),bb=path.getBBox(),dx=x-bb.x-bb.width/2,dy=y-bb.y-bb.height/2,m=new Raphael.matrix;return m.translate(dx,dy),path.attr("path",Raphael.mapPath(path.attr("path"),m))};var BaseTheme=function(diagram){this.init(diagram)};_.extend(BaseTheme.prototype,{init:function(diagram){this.diagram=diagram,this._paper=void 0,this._font=void 0,this._title=void 0,this._actors_height=0,this._signals_height=0;var a=this.arrow_types={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.line_types={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-"},init_paper:function(container){this._paper=new Raphael(container,320,200)},init_font:function(){},draw_line:function(x1,y1,x2,y2){return this._paper.line(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.rect(x,y,w,h)},draw:function(container){var diagram=this.diagram;this.init_paper(container),this.init_font(),this.layout();var title_height=this._title?this._title.height:0;this._paper.setStart(),this._paper.setSize(diagram.width,diagram.height);var y=DIAGRAM_MARGIN+title_height;this.draw_title(),this.draw_actors(y),this.draw_signals(y+this._actors_height),this._paper.setFinish()},layout:function(){function actor_ensure_distance(a,b,d){assert(b>a,"a must be less than or equal to b"),0>a?(b=actors[b],b.x=Math.max(d-b.width/2,b.x)):b>=actors.length?(a=actors[a],a.padding_right=Math.max(d,a.padding_right)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,paper=this._paper,font=this._font,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this._title={},bb=paper.text_bbox(diagram.title,font);title.text_bb=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}var self=this;_.each(actors,function(a){var bb=paper.text_bbox(a.name,font);a.text_bb=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.padding_right=0,self._actors_height=Math.max(a.height,self._actors_height)}),_.each(signals,function(s){var a,b,bb=paper.text_bbox(s.message,font);s.text_bb=bb,s.width=bb.width,s.height=bb.height;var extra_width=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extra_width=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extra_width=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actor_ensure_distance(a-1,a,s.width/2),actor_ensure_distance(a,a+1,s.width/2),void(self._signals_height+=s.height)}actor_ensure_distance(a,b,s.width+extra_width),self._signals_height+=s.height});var actors_x=0;return _.each(actors,function(a){a.x=Math.max(actors_x,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actors_x=a.x+a.width+a.padding_right},this),diagram.width=Math.max(actors_x,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this._actors_height+this._signals_height,this},draw_title:function(){var title=this._title;title&&this.draw_text_box(title,title.message,TITLE_MARGIN,TITLE_PADDING,this._font)},draw_actors:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.actors,function(a){self.draw_actor(a,y,self._actors_height),self.draw_actor(a,y+self._actors_height+self._signals_height,self._actors_height);var aX=getCenterX(a),line=self.draw_line(aX,y+self._actors_height-ACTOR_MARGIN,aX,y+self._actors_height+ACTOR_MARGIN+self._signals_height);line.attr(LINE)})},draw_actor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.draw_text_box(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this._font)},draw_signals:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?self.draw_self_signal(s,y):self.draw_signal(s,y):"Note"==s.type&&self.draw_note(s,y),y+=s.height})},draw_self_signal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var text_bb=signal.text_bb,aX=getCenterX(signal.actorA),x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING-text_bb.x,y=offsetY+signal.height/2;this.draw_text(x,y,signal.message,this._font);var line,attr=_.extend({},LINE,{"stroke-dasharray":this.line_types[signal.linetype]}),y1=offsetY+SIGNAL_MARGIN,y2=y1+signal.height-SIGNAL_MARGIN;line=this.draw_line(aX,y1,aX+SELF_SIGNAL_WIDTH,y1),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y2,aX,y2),attr["arrow-end"]=this.arrow_types[signal.arrowtype]+"-wide-long",line.attr(attr)},draw_signal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB),x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.draw_text(x,y,signal.message,this._font),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING;var line=this.draw_line(aX,y,bX,y);line.attr(LINE),line.attr({"arrow-end":this.arrow_types[signal.arrowtype]+"-wide-long","stroke-dasharray":this.line_types[signal.linetype]})},draw_note:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=Math.min(aX,bX)-overlap,note.width=Math.max(aX,bX)+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement:"+note.placement)}this.draw_text_box(note,note.message,NOTE_MARGIN,NOTE_PADDING,this._font)},draw_text:function(x,y,text,font){var t,paper=this._paper,f=font||{};f._obj?t=paper.print_center(x,y,text,f._obj,f["font-size"]):(t=paper.text(x,y,text),t.attr(f));var bb=t.getBBox(),r=paper.rect(bb.x,bb.y,bb.width,bb.height);r.attr({fill:"#fff",stroke:"none"}),t.toFront()},draw_text_box:function(box,text,margin,padding,font){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin,rect=this.draw_rect(x,y,w,h);rect.attr(LINE),x=getCenterX(box),y=getCenterY(box),this.draw_text(x,y,text,font)}});var RaphaelTheme=function(diagram){this.init(diagram)};_.extend(RaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"Andale Mono, monospace"}}});var HandRaphaelTheme=function(diagram){this.init(diagram)};_.extend(HandRaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"daniel"},this._font._obj=this._paper.getFont("daniel")},draw_line:function(x1,y1,x2,y2){return this._paper.handLine(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.handRect(x,y,w,h)}});var themes={simple:RaphaelTheme,hand:HandRaphaelTheme};Diagram.prototype.drawSVG=function(container,options){var default_options={theme:"hand"};if(options=_.defaults(options||{},default_options),!(options.theme in themes))throw new Error("Unsupported theme: "+options.theme);var drawing=new themes[options.theme](this);drawing.draw(container)},"undefined"!=typeof jQuery&&!function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery);var root="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=Diagram),exports.Diagram=Diagram):root.Diagram=Diagram}(); +!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}function executionMarginLeft(level){return 0>level?0:.5*-EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}function executionMarginRight(level){return 0>level?0:.5*EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){signal.index=this.signals.length,this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index,this.executionStack=[],this.executions=[],this.maxExecutionsLevel=-1},Diagram.Signal=function(actorA,signaltype,actorB,message,executionLevelChangeA,executionLevelChangeB){if(this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message,this.index=null,actorA===actorB&&executionLevelChangeB===Diagram.EXECUTION_LVL_CHANGE.UNCHANGED&&(executionLevelChangeB=executionLevelChangeA,executionLevelChangeA=Diagram.EXECUTION_LVL_CHANGE.UNCHANGED),actorA===actorB&&executionLevelChangeA===executionLevelChangeB&&executionLevelChangeA!==Diagram.EXECUTION_LVL_CHANGE.UNCHANGED)throw new Error("You cannot move the Execution nesting level in the same direction twice on a single self-signal.");this.actorA.changeExecutionLevel(executionLevelChangeA,this),this.startLevel=this.actorA.executionStack.length-1,this.actorB.changeExecutionLevel(executionLevelChangeB,this),this.endLevel=this.actorB.executionStack.length-1},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Signal.prototype.maxExecutionLevel=function(){if(!this.isSelf())throw new Error("maxExecutionLevel() was called on a non-self signal.");return Math.max(this.startLevel,this.endLevel)},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Execution=function(actor,startSignal,level){this.actor=actor,this.startSignal=startSignal,this.endSignal=null,this.level=level},Diagram.Actor.prototype.changeExecutionLevel=function(change,signal){switch(change){case Diagram.EXECUTION_LVL_CHANGE.UNCHANGED:break;case Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL:var newLevel=this.executionStack.length;this.maxExecutionsLevel=Math.max(this.maxExecutionsLevel,newLevel);var execution=new Diagram.Execution(this,signal,newLevel);this.executionStack.push(execution),this.executions.push(execution);break;case Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL:if(!(this.executionStack.length>0))throw new Error("The execution level for actor "+this.name+" was dropped below 0.");this.executionStack.pop().setEndSignal(signal)}},Diagram.Execution.prototype.setEndSignal=function(signal){this.endSignal=signal},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},Diagram.EXECUTION_LVL_CHANGE={UNCHANGED:0,INCREASE_LEVEL:1,DECREASE_LEVEL:-1},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[5,8,9,13,15,25,26,27],$V1=[1,13],$V2=[1,14],$V3=[2,17],$V4=[1,18],$V5=[1,20],$V6=[25,26,27],$V7=[25,26,27,31,32],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,execution_modifier:23,signaltype:24,LINE:25,PLUS:26,ACTOR:27,linetype:28,arrowtype:29,DOTLINE:30,ARROW:31,OPENARROW:32,MESSAGE:33,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",25:"LINE",26:"PLUS",27:"ACTOR",30:"DOTLINE",31:"ARROW",32:"OPENARROW",33:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,6],[23,0],[23,1],[23,1],[17,1],[10,1],[24,2],[24,1],[28,1],[28,1],[29,1],[29,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 23:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-4],$$[$0-3],$$[$0-1],$$[$0],$$[$0-5],$$[$0-2]);break;case 17:this.$=Diagram.EXECUTION_LVL_CHANGE.UNCHANGED;break;case 18:this.$=Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL;break;case 19:this.$=Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL;break;case 20:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 21:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 22:this.$=$$[$0-1]|$$[$0]<<2;break;case 24:this.$=Diagram.LINETYPE.SOLID;break;case 25:this.$=Diagram.LINETYPE.DOTTED;break;case 26:this.$=Diagram.ARROWTYPE.FILLED;break;case 27:this.$=Diagram.ARROWTYPE.OPEN;break;case 28:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],23:11,25:$V1,26:$V2,27:$V3},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:15,27:[1,16]},o($V0,[2,7]),o($V0,[2,8]),{14:17,33:$V4},{17:19,27:$V5},{16:21,18:[1,22],21:[1,23],22:[1,24]},{27:[2,18]},{27:[2,19]},o($V0,[2,6]),o($V0,[2,21]),o($V0,[2,9]),o($V0,[2,28]),{24:25,25:[1,27],28:26,30:[1,28]},o([20,25,30,33],[2,20]),{17:29,27:$V5},{17:31,19:30,27:$V5},{27:[2,14]},{27:[2,15]},{23:32,25:$V1,26:$V2,27:$V3},o($V6,[2,23],{29:33,31:[1,34],32:[1,35]}),o($V7,[2,24]),o($V7,[2,25]),{14:36,33:$V4},{14:37,33:$V4},{20:[1,38],33:[2,12]},{17:39,27:$V5},o($V6,[2,22]),o($V6,[2,26]),o($V6,[2,27]),o($V0,[2,10]),o($V0,[2,11]),{17:40,27:$V5},{14:41,33:$V4},{33:[2,13]},o($V0,[2,16])],defaultActions:{3:[2,1],13:[2,18],14:[2,19],23:[2,14],24:[2,15],40:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((null===symbol||"undefined"==typeof symbol)&&(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 27;case 11:return 27;case 12:return 30;case 13:return 25;case 14:return 26;case 15:return 32;case 16:return 31;case 17:return 33;case 18:return 5;case 19:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"+]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:\+)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram},Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179}," ":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15",w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59", +w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81",w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"236,38v20,-18,-8,-74,-13,-90v-44,-78,-112,-190,-200,-253v-2,0,-5,4,-7,12v-11,31,13,36,24,58v74,61,174,219,180,273r16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199}," ":{w:179},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29",w:331},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28", +w:171},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18",w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199}}});var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,EXECUTION_WIDTH=10,OVERLAPPING_EXECUTION_OFFSET=.5*EXECUTION_WIDTH,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,LINE={stroke:"#000","stroke-width":2},RECT={fill:"#fff"},EXECUTION_RECT={stroke:"#000","stroke-width":2,fill:"#e6e6e6"};AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)},Raphael.fn.wobble=function(x1,y1,x2,y2){assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var wobble=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=Math.random(),r2=Math.random(),xfactor=Math.random()>.5?wobble:-wobble,yfactor=Math.random()>.5?wobble:-wobble,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x+","+p1.y+" "+p2.x+","+p2.y+" "+x2+","+y2},Raphael.fn.text_bbox=function(text,font){var p;font._obj?p=this.print_center(0,0,text,font._obj,font["font-size"]):(p=this.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},Raphael.fn.handRect=function(x,y,w,h){return assert(_.every([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),this.path("M"+x+","+y+this.wobble(x,y,x+w,y)+this.wobble(x+w,y,x+w,y+h)+this.wobble(x+w,y+h,x,y+h)+this.wobble(x,y+h,x,y)).attr(RECT)},Raphael.fn.handLine=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M"+x1+","+y1+this.wobble(x1,y1,x2,y2))},Raphael.fn.print_center=function(x,y,string,font,size,letter_spacing){var path=this.print(x,y,string,font,size,"baseline",letter_spacing),bb=path.getBBox(),dx=x-bb.x-bb.width/2,dy=y-bb.y-bb.height/2,m=new Raphael.matrix;return m.translate(dx,dy),path.attr("path",Raphael.mapPath(path.attr("path"),m))};var BaseTheme=function(diagram){this.init(diagram)};_.extend(BaseTheme.prototype,{init:function(diagram){this.diagram=diagram,this._paper=void 0,this._font=void 0,this._title=void 0,this._actors_height=0,this._signals_height=0;var a=this.arrow_types={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.line_types={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-"},init_paper:function(container){this._paper=new Raphael(container,320,200)},init_font:function(){},draw_line:function(x1,y1,x2,y2){return this._paper.line(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.rect(x,y,w,h)},draw:function(container){var diagram=this.diagram;this.init_paper(container),this.init_font(),this.layout();var title_height=this._title?this._title.height:0;this._paper.setStart(),this._paper.setSize(diagram.width,diagram.height);var y=DIAGRAM_MARGIN+title_height;this.draw_title(),this.draw_actors(y),this.draw_executions(y+this._actors_height),this.draw_signals(y+this._actors_height),this._paper.setFinish()},layout:function(){function actor_ensure_distance(a,b,d){assert(b>a,"a must be less than or equal to b"),0>a?(b=actors[b],b.x=Math.max(d-b.width/2,b.x)):b>=actors.length?(a=actors[a],a.padding_right=Math.max(d,a.padding_right)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,paper=this._paper,font=this._font,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this._title={},bb=paper.text_bbox(diagram.title,font);title.text_bb=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}var self=this;_.each(actors,function(a){var bb=paper.text_bbox(a.name,font);a.text_bb=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.padding_right=0,a.maxExecutionsLevel>=0&&(a.padding_right=EXECUTION_WIDTH/2+a.maxExecutionsLevel*OVERLAPPING_EXECUTION_OFFSET),self._actors_height=Math.max(a.height,self._actors_height)}),_.each(signals,function(s){var a,b,bb=paper.text_bbox(s.message,font);s.text_bb=bb,s.width=bb.width,s.height=bb.height;var extra_width=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extra_width=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extra_width=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actor_ensure_distance(a-1,a,s.width/2),actor_ensure_distance(a,a+1,s.width/2),void(self._signals_height+=s.height)}actor_ensure_distance(a,b,s.width+extra_width),self._signals_height+=s.height});var actors_x=0;return _.each(actors,function(a){a.x=Math.max(actors_x,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actors_x=a.x+a.width+a.padding_right},this),diagram.width=Math.max(actors_x,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this._actors_height+this._signals_height,this},draw_title:function(){var title=this._title;title&&this.draw_text_box(title,title.message,TITLE_MARGIN,TITLE_PADDING,this._font)},draw_actors:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.actors,function(a){self.draw_actor(a,y,self._actors_height),self.draw_actor(a,y+self._actors_height+self._signals_height,self._actors_height);var aX=getCenterX(a),line=self.draw_line(aX,y+self._actors_height-ACTOR_MARGIN,aX,y+self._actors_height+ACTOR_MARGIN+self._signals_height);line.attr(LINE)})},draw_actor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.draw_text_box(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this._font)},draw_executions:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.signals,function(s){"Signal"==s.type&&(s.isSelf()?(s.startY=y+SIGNAL_MARGIN,s.endY=s.startY+s.height-SIGNAL_MARGIN):s.startY=s.endY=y+s.height-SIGNAL_MARGIN-SIGNAL_PADDING),y+=s.height}),_.each(this.diagram.actors,function(a){self.draw_actors_executions(a)})},draw_actors_executions:function(actor){var self=this;_.each(actor.executions,function(e){var aX=getCenterX(actor);aX+=e.level*OVERLAPPING_EXECUTION_OFFSET;var y,h,x=aX-EXECUTION_WIDTH/2,w=EXECUTION_WIDTH;e.startSignal===e.endSignal?(y=e.startSignal.startY,h=e.endSignal?e.endSignal.endY-y:actor.y-y):(y=e.startSignal.endY,h=e.endSignal?e.endSignal.startY-y:actor.y-y);var rect=self.draw_rect(x,y,w,h);rect.attr(EXECUTION_RECT)})},draw_signals:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?self.draw_self_signal(s,y):self.draw_signal(s,y):"Note"==s.type&&self.draw_note(s,y),y+=s.height})},draw_self_signal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var text_bb=signal.text_bb,aX=getCenterX(signal.actorA);aX+=executionMarginRight(signal.maxExecutionLevel());var x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING-text_bb.x,y=offsetY+signal.height/2;this.draw_text(x,y,signal.message,this._font);var line,attr=_.extend({},LINE,{"stroke-dasharray":this.line_types[signal.linetype]}),x1=getCenterX(signal.actorA)+executionMarginRight(signal.startLevel),x2=getCenterX(signal.actorA)+executionMarginRight(signal.endLevel),y1=offsetY+SIGNAL_MARGIN,y2=y1+signal.height-SIGNAL_MARGIN;line=this.draw_line(x1,y1,aX+SELF_SIGNAL_WIDTH,y1),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y2,x2,y2),attr["arrow-end"]=this.arrow_types[signal.arrowtype]+"-wide-long",line.attr(attr)},draw_signal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB);bX>aX?(aX+=executionMarginRight(signal.startLevel),bX+=executionMarginLeft(signal.endLevel)):(aX+=executionMarginLeft(signal.startLevel),bX+=executionMarginRight(signal.endLevel));var x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.draw_text(x,y,signal.message,this._font),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING;var line=this.draw_line(aX,y,bX,y);line.attr(LINE),line.attr({"arrow-end":this.arrow_types[signal.arrowtype]+"-wide-long","stroke-dasharray":this.line_types[signal.linetype]})},draw_note:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=Math.min(aX,bX)-overlap,note.width=Math.max(aX,bX)+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement:"+note.placement)}this.draw_text_box(note,note.message,NOTE_MARGIN,NOTE_PADDING,this._font)},draw_text:function(x,y,text,font){var t,paper=this._paper,f=font||{};f._obj?t=paper.print_center(x,y,text,f._obj,f["font-size"]):(t=paper.text(x,y,text),t.attr(f));var bb=t.getBBox(),r=paper.rect(bb.x,bb.y,bb.width,bb.height);r.attr({fill:"#fff",stroke:"none"}),t.toFront()},draw_text_box:function(box,text,margin,padding,font){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin,rect=this.draw_rect(x,y,w,h);rect.attr(LINE),x=getCenterX(box),y=getCenterY(box),this.draw_text(x,y,text,font)}});var RaphaelTheme=function(diagram){this.init(diagram)};_.extend(RaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"Andale Mono, monospace"}}});var HandRaphaelTheme=function(diagram){this.init(diagram)};_.extend(HandRaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"daniel"},this._font._obj=this._paper.getFont("daniel")},draw_line:function(x1,y1,x2,y2){return this._paper.handLine(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.handRect(x,y,w,h)}});var themes={simple:RaphaelTheme,hand:HandRaphaelTheme};Diagram.prototype.drawSVG=function(container,options){var default_options={theme:"hand"};if(options=_.defaults(options||{},default_options),!(options.theme in themes))throw new Error("Unsupported theme: "+options.theme);var drawing=new themes[options.theme](this);drawing.draw(container)},"undefined"!=typeof jQuery&&!function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery);var root="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=Diagram),exports.Diagram=Diagram):root.Diagram=Diagram}(); //# sourceMappingURL=sequence-diagram-min.js.map \ No newline at end of file diff --git a/build/sequence-diagram-min.js.map b/build/sequence-diagram-min.js.map index eeddc67..80b5472 100644 --- a/build/sequence-diagram-min.js.map +++ b/build/sequence-diagram-min.js.map @@ -1 +1 @@ -{"version":3,"file":"build/sequence-diagram-min.js","sources":["build/sequence-diagram.js"],"names":["Diagram","this","title","undefined","actors","signals","ParseError","message","hash","_","extend","name","AssertException","assert","exp","getCenterX","box","x","width","getCenterY","y","height","prototype","getActor","alias","trim","i","push","Actor","length","getActorWithAlias","input","s","exec","setTitle","addSignal","signal","index","Signal","actorA","signaltype","actorB","type","linetype","arrowtype","isSelf","Note","actor","placement","hasManyActors","Error","isArray","unescape","replace","LINETYPE","SOLID","DOTTED","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","Object","getPrototypeOf","__proto__","object","constructor","parser","Parser","yy","o","k","v","l","$V0","$V1","$V2","$V3","trace","symbols_","error","start","document","EOF","line","statement","NL","participant","actor_alias","note_statement","note","over","actor_pair",",","left_of","right_of","ACTOR","LINE","DOTLINE","ARROW","OPENARROW","MESSAGE","$accept","$end","terminals_",2,5,8,9,13,15,18,20,21,22,24,27,28,29,30,31,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","substring","table",3,4,1,6,7,11,12,17,10,14,23,25,16,26,19,"defaultActions",37,"parseError","str","recoverable","parse","lex","token","lexer","self","stack","vstack","lstack","recovering","TERROR","args","slice","call","arguments","create","sharedState","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","symbol","preErrorSymbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","text","match","loc","Array","first_line","last_line","first_column","last_column","range","apply","concat","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","lines","unput","split","substr","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","rules","_currentRules","flex","begin","condition","popState","pop","conditions","INITIAL","topState","Math","abs","pushState","stateStackSize","case-insensitive","yy_","$avoiding_name_collisions","YY_START","inclusive","require","exports","main","console","log","process","exit","source","readFileSync","normalize","module","argv","diagram","Raphael","registerFont","w","face","font-family","font-weight","font-stretch","units-per-em","panose-1","ascent","descent","x-height","bbox","underline-thickness","underline-position","unicode-range","glyphs"," ","\t","\r","!","d","\"","#","%","&","'","(",")","*","+","-",".","/","0",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","`","a","b","e","f","g","h","j","m","q","t","u","z","{","|","}","~"," ","¡","¢","£","¤","€","¥","§","¨","©","ª","«","¬","®","¯","°","±","´","¶","¸","º","»","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ÿ","ı","Œ","œ","Ÿ","ƒ","ˆ","ˇ","˘","˙","˚","˛","˜","˝","–","—","‘","’","‚","“","”","„","†","‡","•","…","‰","‹","›","⁄","™","∆","∙","√","∞","∫","≈","≠","≤","≥","◊","DIAGRAM_MARGIN","ACTOR_MARGIN","ACTOR_PADDING","SIGNAL_MARGIN","SIGNAL_PADDING","NOTE_MARGIN","NOTE_PADDING","NOTE_OVERLAP","TITLE_MARGIN","TITLE_PADDING","SELF_SIGNAL_WIDTH","stroke","stroke-width","RECT","fill","toString","String","fn","x1","y1","x2","y2","every","isFinite","path","wobble","sqrt","r1","random","r2","xfactor","yfactor","p1","p2","text_bbox","font","_obj","print_center","attr","bb","getBBox","remove","handRect","handLine","string","size","letter_spacing","print","dx","dy","matrix","translate","mapPath","BaseTheme","init","_paper","_font","_title","_actors_height","_signals_height","arrow_types","line_types","init_paper","container","init_font","draw_line","draw_rect","rect","draw","layout","title_height","setStart","setSize","draw_title","draw_actors","draw_signals","setFinish","actor_ensure_distance","max","padding_right","distances","paper","text_bb","each","extra_width","min","actors_x","distance","draw_text_box","offsetY","draw_actor","aX","draw_self_signal","draw_signal","draw_note","draw_text","stroke-dasharray","bX","arrow-end","overlap","toFront","margin","padding","RaphaelTheme","font-size","HandRaphaelTheme","getFont","themes","simple","hand","drawSVG","default_options","theme","defaults","drawing","jQuery","sequenceDiagram","$this","html","root","global"],"mappings":"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AAK,uFACLnB,EAAK,IAET6B,KACIV,EAAK,yFACLnB,EAAK,KAET8B,KACIX,EAAK,sDACLnB,EAAK,IAET+B,KACIZ,EAAK,wHACLnB,EAAK,KAETgC,GACIb,EAAK,0QACLnB,EAAK,KAET/H,GACIkJ,EAAK,iGACLnB,EAAK,IAET7J,GACIgL,EAAK,2UACLnB,EAAK,KAETjI,GACIoJ,EAAK,sVACLnB,EAAK,KAEThI,GACImJ,EAAK,0TACLnB,EAAK,KAET5J,GACI+K,EAAK,+SACLnB,EAAK,KAET9H,GACIiJ,EAAK,yVACLnB,EAAK,KAET7H,GACIgJ,EAAK,+OACLnB,EAAK,KAET3J,GACI8K,EAAK,iXACLnB,EAAK,KAET1J,GACI6K,EAAK,kPACLnB,EAAK,KAETiC,KACId,EAAK,mIACLnB,EAAK,IAETkC,KACIf,EAAK,wKACLnB,EAAK,KAETmC,KACIhB,EAAK,qIACLnB,EAAK,KAEToC,KACIjB,EAAK,sMACLnB,EAAK,KAETqC,KACIlB,EAAK,gLACLnB,EAAK,KAETsC,KACInB,EAAK,iQACLnB,EAAK,KAETuC,KACIpB,EAAK,sXACLnB,EAAK,KAETwC,GACIrB,EAAK,+WACLnB,EAAK,KAETyC,GACItB,EAAK,ioBACLnB,EAAK,KAET0C,GACIvB,EAAK,yQACLnB,EAAK,KAET2C,GACIxB,EAAK,msBACLnB,EAAK,KAET4C,GACIzB,EAAK,wXACLnB,EAAK,KAET6C,GACI1B,EAAK,+TACLnB,EAAK,KAET8C,GACI3B,EAAK,qVACLnB,EAAK,KAET+C,GACI5B,EAAK,+RACLnB,EAAK,KAETgD,GACI7B,EAAK,uHACLnB,EAAK,IAETiD,GACI9B,EAAK,iLACLnB,EAAK,KAETkD,GACI/B,EAAK,iVACLnB,EAAK,KAETmD,GACIhC,EAAK,iNACLnB,EAAK,KAEToD,GACIjC,EAAK,iWACLnB,EAAK,KAETqD,GACIlC,EAAK,2PACLnB,EAAK,KAETsD,GACInC,EAAK,8SACLnB,EAAK,KAETuD,GACIpC,EAAK,sUACLnB,EAAK,KAETwD,GACIrC,EAAK,kcACLnB,EAAK,KAETyD,GACItC,EAAK,4bACLnB,EAAK,KAET0D,GACIvC,EAAK,4TACLnB,EAAK,KAET2D,GACIxC,EAAK,oPACLnB,EAAK,KAET4D,GACIzC,EAAK,0RACLnB,EAAK,KAET6D,GACI1C,EAAK,4QACLnB,EAAK,KAET8D,GACI3C,EAAK,0WACLnB,EAAK,KAET+D,GACI5C,EAAK,4RACLnB,EAAK,KAETgE,GACI7C,EAAK;AACLnB,EAAK,KAETiE,GACI9C,EAAK,uRACLnB,EAAK,KAETkE,KACI/C,EAAK,8LACLnB,EAAK,KAETmE,MACIhD,EAAK,yHACLnB,EAAK,KAEToE,KACIjD,EAAK,qOACLnB,EAAK,KAETqE,KACIlD,EAAK,4HACLnB,EAAK,KAET/P,GACIkR,EAAK,sGACLnB,EAAK,KAETsE,KACInD,EAAK,uFACLnB,EAAK,KAETuE,GACIpD,EAAK,6KACLnB,EAAK,KAETwE,GACIrD,EAAK,4VACLnB,EAAK,KAETxC,GACI2D,EAAK,qJACLnB,EAAK,KAETmB,GACIA,EAAK,yOACLnB,EAAK,KAETyE,GACItD,EAAK,+OACLnB,EAAK,KAET0E,GACIvD,EAAK,qQACLnB,EAAK,KAET2E,GACIxD,EAAK,wXACLnB,EAAK,KAET4E,GACIzD,EAAK,uQACLnB,EAAK,KAET9O,GACIiQ,EAAK,kJACLnB,EAAK,IAET6E,GACI1D,EAAK,4MACLnB,EAAK,KAET/L,GACIkN,EAAK,6PACLnB,EAAK,KAET7L,GACIgN,EAAK,sHACLnB,EAAK,KAET8E,GACI3D,EAAK,wRACLnB,EAAK,KAET9C,GACIiE,EAAK,yJACLnB,EAAK,KAEThM,GACImN,EAAK,uJACLnB,EAAK,KAETlF,GACIqG,EAAK,uTACLnB,EAAK,KAET+E,GACI5D,EAAK,wRACLnB,EAAK,KAETnF,GACIsG,EAAK,kJACLnB,EAAK,KAETxO,GACI2P,EAAK,wPACLnB,EAAK,KAETgF,GACI7D,EAAK,+OACLnB,EAAK,KAETiF,GACI9D,EAAK,yKACLnB,EAAK,KAET9L,GACIiN,EAAK,qJACLnB,EAAK,KAETA,GACImB,EAAK,mOACLnB,EAAK,KAETvP,GACI0Q,EAAK,+PACLnB,EAAK,KAETpP,GACIuQ,EAAK,6PACLnB,EAAK,KAETkF,GACI/D,EAAK,8NACLnB,EAAK,KAETmF,KACIhE,EAAK,sTACLnB,EAAK,KAEToF,KACIjE,EAAK,mIACLnB,EAAK,IAETqF,KACIlE,EAAK,mQACLnB,EAAK,KAETsF,KACInE,EAAK,kKACLnB,EAAK,KAETuF,KACIvF,EAAK,KAETwF,KACIrE,EAAK,+MACLnB,EAAK,IAETyF,KACItE,EAAK,+QACLnB,EAAK,KAET0F,KACIvE,EAAK,uZACLnB,EAAK,KAET2F,KACIxE,EAAK,4YACLnB,EAAK,KAET4F,KACIzE,EAAK,4YACLnB,EAAK,KAET6F,KACI1E,EAAK,qaACLnB,EAAK,KAET8F,KACI3E,EAAK,oVACLnB,EAAK,KAET+F,KACI5E,EAAK,mIACLnB,EAAK,KAETgG,KACI7E,EAAK,6TACLnB,EAAK,KAETiG,KACI9E,EAAK,uIACLnB,EAAK,KAETkG,KACI/E,EAAK,+SACLnB,EAAK,KAETmG,KACIhF,EAAK,8LACLnB,EAAK,KAEToG,KACIjF,EAAK,6VACLnB,EAAK,KAETqG,KACIlF,EAAK,wGACLnB,EAAK,KAETsG,KACInF,EAAK,qIACLnB,EAAK,KAETuG,KACIpF,EAAK,oOACLnB,EAAK,KAETwG,KACIrF,EAAK,4FACLnB,EAAK,KAETyG,KACItF,EAAK,4UACLnB,EAAK,KAET0G,KACIvF,EAAK,iKACLnB,EAAK,KAET2G,KACIxF,EAAK,kHACLnB,EAAK,KAET4G,KACIzF,EAAK,0RACLnB,EAAK,KAET6G,KACI1F,EAAK,iTACLnB,EAAK,KAET8G,KACI3F,EAAK,qWAET4F,KACI5F,EAAK,uWAET6F,KACI7F,EAAK,2ZAET8F,KACI9F,EAAK,qcAET+F,KACI/F,EAAK,+YAETgG,KACIhG,EAAK,kZAETiG,KACIjG,EAAK,8YACLnB,EAAK,KAETqH,KACIlG,EAAK,uaACLnB,EAAK,KAETsH,KACInG,EAAK,mZACLnB,EAAK,KAETuH,KACIpG,EAAK,0ZACLnB,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"} \ No newline at end of file +{"version":3,"file":"build/sequence-diagram-min.js","sources":["build/sequence-diagram.js"],"names":["Diagram","this","title","undefined","actors","signals","ParseError","message","hash","_","extend","name","AssertException","assert","exp","getCenterX","box","x","width","getCenterY","y","height","executionMarginLeft","level","EXECUTION_WIDTH","OVERLAPPING_EXECUTION_OFFSET","executionMarginRight","prototype","getActor","alias","trim","i","push","Actor","length","getActorWithAlias","input","s","exec","setTitle","addSignal","signal","index","executionStack","executions","maxExecutionsLevel","Signal","actorA","signaltype","actorB","executionLevelChangeA","executionLevelChangeB","type","linetype","arrowtype","EXECUTION_LVL_CHANGE","UNCHANGED","Error","changeExecutionLevel","startLevel","endLevel","isSelf","maxExecutionLevel","Math","max","Note","actor","placement","hasManyActors","Execution","startSignal","endSignal","change","INCREASE_LEVEL","newLevel","execution","DECREASE_LEVEL","pop","setEndSignal","isArray","unescape","replace","LINETYPE","SOLID","DOTTED","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","Object","getPrototypeOf","__proto__","object","constructor","parser","Parser","yy","o","k","v","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","trace","symbols_","error","start","document","EOF","line","statement","NL","participant","actor_alias","note_statement","note","over","actor_pair",",","left_of","right_of","execution_modifier","LINE","PLUS","ACTOR","DOTLINE","ARROW","OPENARROW","MESSAGE","$accept","$end","terminals_",2,5,8,9,13,15,18,20,21,22,25,26,27,30,31,32,33,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","substring","table",3,4,1,6,7,11,12,23,10,14,17,16,24,28,19,29,"defaultActions",40,"parseError","str","recoverable","parse","lex","token","lexer","self","stack","vstack","lstack","recovering","TERROR","args","slice","call","arguments","create","sharedState","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","symbol","preErrorSymbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","text","match","loc","Array","first_line","last_line","first_column","last_column","range","apply","concat","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","lines","unput","split","substr","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","rules","_currentRules","flex","begin","condition","popState","conditions","INITIAL","topState","abs","pushState","stateStackSize","case-insensitive","yy_","$avoiding_name_collisions","YY_START","inclusive","require","exports","main","console","log","process","exit","source","readFileSync","normalize","module","argv","diagram","Raphael","registerFont","w","face","font-family","font-weight","font-stretch","units-per-em","panose-1","ascent","descent","x-height","bbox","underline-thickness","underline-position","unicode-range","glyphs"," ","\t","\r","!","d","\"","#","%","&","'","(",")","*","+","-",".","/","0",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","`","a","b","e","f","g","h","j","m","q","t","u","z","{","|","}","~"," ","¡","¢","£","¤","€","¥","§","¨","©","ª","«","¬","®","¯","°","±","´","¶","¸","º","»","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ÿ","ı","Œ","œ","Ÿ","ƒ","ˆ","ˇ","˘","˙","˚","˛","˜","˝","–","—","‘","’","‚","“","”","„","†","‡","•","…","‰","‹","›","⁄","™","∆","∙","√","∞","∫","≈","≠","≤","≥","◊","DIAGRAM_MARGIN","ACTOR_MARGIN","ACTOR_PADDING","SIGNAL_MARGIN","SIGNAL_PADDING","NOTE_MARGIN","NOTE_PADDING","NOTE_OVERLAP","TITLE_MARGIN","TITLE_PADDING","SELF_SIGNAL_WIDTH","stroke","stroke-width","RECT","fill","EXECUTION_RECT","toString","String","fn","x1","y1","x2","y2","every","isFinite","path","wobble","sqrt","r1","random","r2","xfactor","yfactor","p1","p2","text_bbox","font","_obj","print_center","attr","bb","getBBox","remove","handRect","handLine","string","size","letter_spacing","print","dx","dy","matrix","translate","mapPath","BaseTheme","init","_paper","_font","_title","_actors_height","_signals_height","arrow_types","line_types","init_paper","container","init_font","draw_line","draw_rect","rect","draw","layout","title_height","setStart","setSize","draw_title","draw_actors","draw_executions","draw_signals","setFinish","actor_ensure_distance","padding_right","distances","paper","text_bb","each","extra_width","min","actors_x","distance","draw_text_box","offsetY","draw_actor","aX","startY","endY","draw_actors_executions","draw_self_signal","draw_signal","draw_note","draw_text","stroke-dasharray","bX","arrow-end","overlap","toFront","margin","padding","RaphaelTheme","font-size","HandRaphaelTheme","getFont","themes","simple","hand","drawSVG","default_options","theme","defaults","drawing","jQuery","sequenceDiagram","$this","html","root","global"],"mappings":"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,EAAK,mIACLnB,EAAK,IAETkC,KACIf,EAAK,wKACLnB,EAAK,KAETmC,KACIhB,EAAK,qIACLnB,EAAK,KAEToC,KACIjB,EAAK,sMACLnB,EAAK,KAETqC,KACIlB,EAAK,gLACLnB,EAAK,KAETsC,KACInB,EAAK,iQACLnB,EAAK,KAETuC,KACIpB,EAAK,sXACLnB,EAAK,KAETwC,GACIrB,EAAK,+WACLnB,EAAK,KAETyC,GACItB,EAAK,ioBACLnB,EAAK,KAET0C,GACIvB,EAAK,yQACLnB,EAAK,KAET2C,GACIxB,EAAK,msBACLnB,EAAK,KAET4C,GACIzB,EAAK,wXACLnB,EAAK,KAET6C,GACI1B,EAAK,+TACLnB,EAAK,KAET8C,GACI3B,EAAK,qVACLnB,EAAK,KAET+C,GACI5B,EAAK,+RACLnB,EAAK,KAETgD,GACI7B,EAAK,uHACLnB,EAAK,IAETiD,GACI9B,EAAK,iLACLnB,EAAK,KAETkD,GACI/B,EAAK,iVACLnB,EAAK,KAETmD,GACIhC,EAAK,iNACLnB,EAAK,KAEToD,GACIjC,EAAK,iWACLnB,EAAK,KAETqD,GACIlC,EAAK,2PACLnB,EAAK,KAETsD,GACInC,EAAK,8SACLnB,EAAK,KAETuD,GACIpC,EAAK,sUACLnB,EAAK,KAETwD,GACIrC,EAAK;AACLnB,EAAK,KAETyD,GACItC,EAAK,4bACLnB,EAAK,KAET0D,GACIvC,EAAK,4TACLnB,EAAK,KAET2D,GACIxC,EAAK,oPACLnB,EAAK,KAET4D,GACIzC,EAAK,0RACLnB,EAAK,KAET6D,GACI1C,EAAK,4QACLnB,EAAK,KAET8D,GACI3C,EAAK,0WACLnB,EAAK,KAET+D,GACI5C,EAAK,4RACLnB,EAAK,KAETgE,GACI7C,EAAK,oNACLnB,EAAK,KAETiE,GACI9C,EAAK,uRACLnB,EAAK,KAETkE,KACI/C,EAAK,8LACLnB,EAAK,KAETmE,MACIhD,EAAK,yHACLnB,EAAK,KAEToE,KACIjD,EAAK,qOACLnB,EAAK,KAETqE,KACIlD,EAAK,4HACLnB,EAAK,KAETjS,GACIoT,EAAK,sGACLnB,EAAK,KAETsE,KACInD,EAAK,uFACLnB,EAAK,KAETuE,GACIpD,EAAK,6KACLnB,EAAK,KAETwE,GACIrD,EAAK,4VACLnB,EAAK,KAETtC,GACIyD,EAAK,qJACLnB,EAAK,KAETmB,GACIA,EAAK,yOACLnB,EAAK,KAETyE,GACItD,EAAK,+OACLnB,EAAK,KAET0E,GACIvD,EAAK,qQACLnB,EAAK,KAET2E,GACIxD,EAAK,wXACLnB,EAAK,KAET4E,GACIzD,EAAK,uQACLnB,EAAK,KAET3Q,GACI8R,EAAK,kJACLnB,EAAK,IAET6E,GACI1D,EAAK,4MACLnB,EAAK,KAETrM,GACIwN,EAAK,6PACLnB,EAAK,KAETnM,GACIsN,EAAK,sHACLnB,EAAK,KAET8E,GACI3D,EAAK,wRACLnB,EAAK,KAET5C,GACI+D,EAAK,yJACLnB,EAAK,KAETtM,GACIyN,EAAK,uJACLnB,EAAK,KAEThF,GACImG,EAAK,uTACLnB,EAAK,KAET+E,GACI5D,EAAK,wRACLnB,EAAK,KAETjF,GACIoG,EAAK,kJACLnB,EAAK,KAETrQ,GACIwR,EAAK,wPACLnB,EAAK,KAETgF,GACI7D,EAAK,+OACLnB,EAAK,KAETiF,GACI9D,EAAK,yKACLnB,EAAK,KAETpM,GACIuN,EAAK,qJACLnB,EAAK,KAETA,GACImB,EAAK,mOACLnB,EAAK,KAETzR,GACI4S,EAAK,+PACLnB,EAAK,KAETtR,GACIyS,EAAK,6PACLnB,EAAK,KAETkF,GACI/D,EAAK,8NACLnB,EAAK,KAETmF,KACIhE,EAAK,sTACLnB,EAAK,KAEToF,KACIjE,EAAK,mIACLnB,EAAK,IAETqF,KACIlE,EAAK,mQACLnB,EAAK,KAETsF,KACInE,EAAK,kKACLnB,EAAK,KAETuF,KACIvF,EAAK,KAETwF,KACIrE,EAAK,+MACLnB,EAAK,IAETyF,KACItE,EAAK,+QACLnB,EAAK,KAET0F,KACIvE,EAAK,uZACLnB,EAAK,KAET2F,KACIxE,EAAK,4YACLnB,EAAK,KAET4F,KACIzE,EAAK,4YACLnB,EAAK,KAET6F,KACI1E,EAAK,qaACLnB,EAAK,KAET8F,KACI3E,EAAK,oVACLnB,EAAK,KAET+F,KACI5E,EAAK,mIACLnB,EAAK,KAETgG,KACI7E,EAAK,6TACLnB,EAAK,KAETiG,KACI9E,EAAK,uIACLnB,EAAK,KAETkG,KACI/E,EAAK,+SACLnB,EAAK,KAETmG,KACIhF,EAAK,8LACLnB,EAAK,KAEToG,KACIjF,EAAK,6VACLnB,EAAK,KAETqG,KACIlF,EAAK,wGACLnB,EAAK,KAETsG,KACInF,EAAK,qIACLnB,EAAK,KAETuG,KACIpF,EAAK,oOACLnB,EAAK,KAETwG,KACIrF,EAAK,4FACLnB,EAAK,KAETyG,KACItF,EAAK,4UACLnB,EAAK,KAET0G,KACIvF,EAAK,iKACLnB,EAAK,KAET2G,KACIxF,EAAK,kHACLnB,EAAK,KAET4G,KACIzF,EAAK,0RACLnB,EAAK,KAET6G,KACI1F,EAAK,iTACLnB,EAAK,KAET8G,KACI3F,EAAK,qWAET4F,KACI5F,EAAK,uWAET6F,KACI7F,EAAK,2ZAET8F,KACI9F,EAAK,qcAET+F,KACI/F,EAAK,+YAETgG,KACIhG,EAAK,kZAETiG,KACIjG,EAAK,8YACLnB,EAAK,KAETqH,KACIlG,EAAK,uaACLnB,EAAK,KAETsH,KACInG,EAAK,mZACLnB,EAAK,KAETuH,KACIpG,EAAK,0ZACLnB,EAAK,KAETwH,KACIrG,EAAK,2cACLnB,EAAK,KAETyH,KACItG,EAAK,8bACLnB,EAAK,KAET0H,KACIvG,EAAK,oMACLnB,EAAK,KAET2H,KACIxG,EAAK,iMACLnB,EAAK,KAET4H,KACIzG,EAAK,wPACLnB,EAAK,KAET6H,KACI1G,EAAK,6OACLnB,EAAK,KAET8H,KACI3G,EAAK,8aACLnB,EAAK,KAET+H,KACI5G,EAAK,+TACLnB,EAAK,KAETgI,KACI7G,EAAK,mUACLnB,EAAK,KAETiI,KACI9G,EAAK,uUACLnB,EAAK,KAETkI,KACI/G,EAAK,iaACLnB,EAAK,KAETmI,KACIhH,EAAK,yWACLnB,EAAK,KAEToI,KACIjH,EAAK,mXACLnB,EAAK,KAETqI,KACIlH,EAAK,+SACLnB,EAAK,KAETsI,KACInH,EAAK,yRACLnB,EAAK,KAETuI,KACIpH,EAAK,oVACLnB,EAAK,KAETwI,KACIrH,EAAK,2VACLnB,EAAK,KAETyI,KACItH,EAAK,gUAETuH,KACIvH,EAAK,mRACLnB,EAAK,KAET2I,KACIxH,EAAK,qQACLnB,EAAK,KAET4I,KACIzH,EAAK,2UACLnB,EAAK,KAET6I,KACI1H,EAAK,oVACLnB,EAAK,KAET8I,KACI3H,EAAK,4SACLnB,EAAK,KAET+I,KACI5H,EAAK,kUACLnB,EAAK,KAETgJ,KACI7H,EAAK,2RACLnB,EAAK,KAETiJ,KACI9H,EAAK,oTACLnB,EAAK,KAETkJ,KACI/H,EAAK,kSACLnB,EAAK,KAETmJ,KACIhI,EAAK,uSACLnB,EAAK,KAEToJ,KACIjI,EAAK,yVACLnB,EAAK,KAETqJ,KACIlI,EAAK,oUACLnB,EAAK,KAETsJ,KACInI,EAAK,2KACLnB,EAAK,KAETuJ,KACIpI,EAAK,+KACLnB,EAAK,KAETwJ,KACIrI,EAAK,gOACLnB,EAAK,KAETyJ,KACItI,EAAK,qMACLnB,EAAK,KAET0J,KACIvI,EAAK;AACLnB,EAAK,KAET2J,KACIxI,EAAK,iQACLnB,EAAK,KAET4J,KACIzI,EAAK,+OACLnB,EAAK,KAET6J,KACI1I,EAAK,kSACLnB,EAAK,KAET8J,KACI3I,EAAK,iWACLnB,EAAK,KAET+J,KACI5I,EAAK,0SACLnB,EAAK,KAETgK,KACI7I,EAAK,yQACLnB,EAAK,KAETiK,KACI9I,EAAK,6UACLnB,EAAK,KAETkK,KACI/I,EAAK,2QACLnB,EAAK,KAETmK,KACIhJ,EAAK,gRACLnB,EAAK,KAEToK,KACIjJ,EAAK,iUACLnB,EAAK,KAETqK,KACIlJ,EAAK,sTACLnB,EAAK,KAETsK,KACInJ,EAAK,6ZACLnB,EAAK,KAETuK,KACIpJ,EAAK,uFACLnB,EAAK,IAETwK,KACIrJ,EAAK,0cACLnB,EAAK,KAETyK,KACItJ,EAAK,wWACLnB,EAAK,KAET0K,KACIvJ,EAAK,+TACLnB,EAAK,KAET2K,KACIxJ,EAAK,4SACLnB,EAAK,KAET4K,KACIzJ,EAAK,gKACLnB,EAAK,KAET6K,KACI1J,EAAK,sGACLnB,EAAK,KAET8K,KACI3J,EAAK,4GACLnB,EAAK,KAET+K,KACI5J,EAAK,6DACLnB,EAAK,IAETgL,KACI7J,EAAK,wIACLnB,EAAK,KAETiL,KACI9J,EAAK,8KACLnB,EAAK,KAETkL,KACI/J,EAAK,0LACLnB,EAAK,KAETmL,KACIhK,EAAK,qOACLnB,EAAK,KAEToL,KACIjK,EAAK,wGACLnB,EAAK,KAETqL,KACIlK,EAAK,oIACLnB,EAAK,KAETsL,KACInK,EAAK,0FACLnB,EAAK,IAETuL,KACIpK,EAAK,wGACLnB,EAAK,IAETwL,KACIrK,EAAK,uFACLnB,EAAK,IAETyL,KACItK,EAAK,0MACLnB,EAAK,KAET0L,KACIvK,EAAK,oMACLnB,EAAK,KAET2L,KACIxK,EAAK,4KACLnB,EAAK,KAET4L,KACIzK,EAAK,4JACLnB,EAAK,IAET6L,KACI1K,EAAK,+NACLnB,EAAK,KAET8L,KACI3K,EAAK,0EACLnB,EAAK,KAET+L,KACI5K,EAAK,iLACLnB,EAAK,KAETgM,KACI7K,EAAK,yuBACLnB,EAAK,KAETiM,KACI9K,EAAK,mIACLnB,EAAK,KAETkM,KACI/K,EAAK,yGACLnB,EAAK,KAETmM,KACIhL,EAAK,2HACLnB,EAAK,KAEToM,KACIjL,EAAK,6SACLnB,EAAK,KAETqM,KACIlL,EAAK,uMACLnB,EAAK,KAETsM,KACInL,EAAK,iEACLnB,EAAK,IAETuM,KACIpL,EAAK,4LACLnB,EAAK,KAETwM,KACIrL,EAAK,4UACLnB,EAAK,KAETyM,KACItL,EAAK,qOACLnB,EAAK,KAET0M,KACIvL,EAAK,wQACLnB,EAAK,KAET2M,KACIxL,EAAK,kQACLnB,EAAK,KAET4M,KACIzL,EAAK,qOACLnB,EAAK,KAET6M,KACI1L,EAAK,kOACLnB,EAAK,KAET8M,KACI3L,EAAK,mOACLnB,EAAK,OAsBhB,IAAI+M,gBAAiB,GAEjBC,aAAiB,GACjBC,cAAiB,GAEjBC,cAAiB,EACj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"} \ No newline at end of file diff --git a/src/diagram.js b/src/diagram.js index 3972c83..5bccc79 100644 --- a/src/diagram.js +++ b/src/diagram.js @@ -59,13 +59,13 @@ this.alias = alias; this.name = name; this.index = index; - this.executionSpecificationStack = []; - this.executionSpecifications = []; - this.maxExecutionSpecificationLevel = -1; + this.executionStack = []; + this.executions = []; + this.maxExecutionsLevel = -1; }; Diagram.Signal = function(actorA, signaltype, actorB, message, - execSpecLevelChangeA, execSpecLevelChangeB) { + executionLevelChangeA, executionLevelChangeB) { this.type = "Signal"; this.actorA = actorA; this.actorB = actorB; @@ -73,22 +73,22 @@ this.arrowtype = (signaltype >> 2) & 3; this.message = message; this.index = null; - // If this is a self-signal and an ExecutionSpecification level modifier was only applied to the + // If this is a self-signal and an Execution level modifier was only applied to the // left-hand side of the signal, move it to the right-hand side to prevent rendering issues. - if (actorA === actorB && execSpecLevelChangeB === Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED) { - execSpecLevelChangeB = execSpecLevelChangeA; - execSpecLevelChangeA = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED; + if (actorA === actorB && executionLevelChangeB === Diagram.EXECUTION_LVL_CHANGE.UNCHANGED) { + executionLevelChangeB = executionLevelChangeA; + executionLevelChangeA = Diagram.EXECUTION_LVL_CHANGE.UNCHANGED; } - if (actorA === actorB && execSpecLevelChangeA === execSpecLevelChangeB && - execSpecLevelChangeA !== Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED) { - throw new Error("You cannot move the ExecutionSpecification nesting level in the same " + + if (actorA === actorB && executionLevelChangeA === executionLevelChangeB && + executionLevelChangeA !== Diagram.EXECUTION_LVL_CHANGE.UNCHANGED) { + throw new Error("You cannot move the Execution nesting level in the same " + "direction twice on a single self-signal."); } - this.actorA.changeExecSpecLevel(execSpecLevelChangeA, this); - this.startLevel = this.actorA.executionSpecificationStack.length - 1; - this.actorB.changeExecSpecLevel(execSpecLevelChangeB, this); - this.endLevel = this.actorB.executionSpecificationStack.length - 1; + this.actorA.changeExecutionLevel(executionLevelChangeA, this); + this.startLevel = this.actorA.executionStack.length - 1; + this.actorB.changeExecutionLevel(executionLevelChangeB, this); + this.endLevel = this.actorB.executionStack.length - 1; }; Diagram.Signal.prototype.isSelf = function() { @@ -96,12 +96,12 @@ }; /* - * If the signal is a self signal, this method returns the higher ExecutionSpecification nesting level + * If the signal is a self signal, this method returns the higher Execution nesting level * between the start and end of the signal. */ - Diagram.Signal.prototype.maxExecSpecLevel = function () { + Diagram.Signal.prototype.maxExecutionLevel = function () { if (!this.isSelf()) { - throw new Error("maxExecSpecLevel() was called on a non-self signal."); + throw new Error("maxExecutionLevel() was called on a non-self signal."); } return Math.max(this.startLevel, this.endLevel); }; @@ -117,38 +117,37 @@ } }; - Diagram.ExecutionSpecification = function(actor, startSignal, level) { + Diagram.Execution = function(actor, startSignal, level) { this.actor = actor; this.startSignal = startSignal; this.endSignal = null; this.level = level; }; - Diagram.Actor.prototype.changeExecSpecLevel = function(change, signal) { + Diagram.Actor.prototype.changeExecutionLevel = function(change, signal) { switch (change) { - case Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED: + case Diagram.EXECUTION_LVL_CHANGE.UNCHANGED: break; - case Diagram.EXEC_SPEC_LVL_CHANGE.INCREASE_LEVEL: - var newLevel = this.executionSpecificationStack.length; - this.maxExecutionSpecificationLevel = - Math.max(this.maxExecutionSpecificationLevel, newLevel); - var executionSpecification = - new Diagram.ExecutionSpecification(this, signal, newLevel); - this.executionSpecificationStack.push(executionSpecification); - this.executionSpecifications.push(executionSpecification); + case Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL: + var newLevel = this.executionStack.length; + this.maxExecutionsLevel = + Math.max(this.maxExecutionsLevel, newLevel); + var execution = new Diagram.Execution(this, signal, newLevel); + this.executionStack.push(execution); + this.executions.push(execution); break; - case Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL: - if (this.executionSpecificationStack.length > 0) { - this.executionSpecificationStack.pop().setEndSignal(signal); + case Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL: + if (this.executionStack.length > 0) { + this.executionStack.pop().setEndSignal(signal); } else { - throw new Error("The execution specification level for actor " + this.name + + throw new Error("The execution level for actor " + this.name + " was dropped below 0."); } break; } }; - Diagram.ExecutionSpecification.prototype.setEndSignal = function (signal) { + Diagram.Execution.prototype.setEndSignal = function (signal) { this.endSignal = signal; }; @@ -177,7 +176,7 @@ OVER : 2 }; - Diagram.EXEC_SPEC_LVL_CHANGE = { + Diagram.EXECUTION_LVL_CHANGE = { UNCHANGED : 0, INCREASE_LEVEL : 1, DECREASE_LEVEL : -1 diff --git a/src/grammar.jison b/src/grammar.jison index e2117d2..c746073 100644 --- a/src/grammar.jison +++ b/src/grammar.jison @@ -82,9 +82,9 @@ signal ; execution_modifier - : /* empty */ { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.UNCHANGED } - | LINE { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.DECREASE_LEVEL } - | PLUS { $$ = Diagram.EXEC_SPEC_LVL_CHANGE.INCREASE_LEVEL } + : /* empty */ { $$ = Diagram.EXECUTION_LVL_CHANGE.UNCHANGED } + | LINE { $$ = Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL } + | PLUS { $$ = Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL } ; actor diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index 05ce43c..2e4e273 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -34,8 +34,8 @@ var SELF_SIGNAL_WIDTH = 20; // How far out a self signal goes - var EXECUTION_SPECIFICATION_WIDTH = 10; - var OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET = EXECUTION_SPECIFICATION_WIDTH * 0.5; + var EXECUTION_WIDTH = 10; + var OVERLAPPING_EXECUTION_OFFSET = EXECUTION_WIDTH * 0.5; var PLACEMENT = Diagram.PLACEMENT; var LINETYPE = Diagram.LINETYPE; @@ -50,10 +50,10 @@ 'fill': "#fff" }; - var EXECUTION_SPECIFICATION_RECT = { + var EXECUTION_RECT = { 'stroke': '#000', 'stroke-width': 2, - 'fill': '#e6e6e6' // Color taken from the UML specification examples + 'fill': '#e6e6e6' // Color taken from the UML examples }; function AssertException(message) { this.message = message; } @@ -89,23 +89,20 @@ * Drawing-related extra diagram methods. ******************/ - // These functions return the x-offset from the lifeline centre given the current ExecutionSpecification - // nesting-level. - function execSpecMarginLeft(level) { + // These functions return the x-offset from the lifeline centre given the current Execution nesting-level. + function executionMarginLeft(level) { if (level < 0) { return 0; } else { - return -EXECUTION_SPECIFICATION_WIDTH * 0.5 + - level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + return -EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } } - function execSpecMarginRight(level) { + function executionMarginRight(level) { if (level < 0) { return 0; } else { - return EXECUTION_SPECIFICATION_WIDTH * 0.5 + - level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; + return EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } } @@ -263,7 +260,7 @@ this.draw_title(); this.draw_actors(y); - this.draw_execution_specifications(y + this._actors_height); + this.draw_executions(y + this._actors_height); this.draw_signals(y + this._actors_height); this._paper.setFinish(); @@ -308,10 +305,10 @@ a.distances = []; a.padding_right = 0; - if (a.maxExecutionSpecificationLevel >= 0) { - a.padding_right = (EXECUTION_SPECIFICATION_WIDTH / 2.0) + - (a.maxExecutionSpecificationLevel * - OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET); + if (a.maxExecutionsLevel >= 0) { + a.padding_right = (EXECUTION_WIDTH / 2.0) + + (a.maxExecutionsLevel * + OVERLAPPING_EXECUTION_OFFSET); } self._actors_height = Math.max(a.height, self._actors_height); }); @@ -457,11 +454,11 @@ this.draw_text_box(actor, actor.name, ACTOR_MARGIN, ACTOR_PADDING, this._font); }, - draw_execution_specifications : function (offsetY) { + draw_executions : function (offsetY) { var y = offsetY; var self = this; - // Calculate the y-positions of each signal before we attempt to draw the executionSpecificaitons. + // Calculate the y-positions of each signal before we attempt to draw the executions. _.each(this.diagram.signals, function(s) { if (s.type == "Signal") { if (s.isSelf()) { @@ -476,18 +473,18 @@ }); _.each(this.diagram.actors, function(a) { - self.draw_actors_execution_specifications(a); + self.draw_actors_executions(a); }); }, - draw_actors_execution_specifications : function (actor) { + draw_actors_executions : function (actor) { var self = this; - _.each(actor.executionSpecifications, function (e) { + _.each(actor.executions, function (e) { var aX = getCenterX(actor); - aX += e.level * OVERLAPPING_EXECUTION_SPECIFICATION_OFFSET; - var x = aX - EXECUTION_SPECIFICATION_WIDTH/2.0; + aX += e.level * OVERLAPPING_EXECUTION_OFFSET; + var x = aX - EXECUTION_WIDTH / 2.0; var y; - var w = EXECUTION_SPECIFICATION_WIDTH; + var w = EXECUTION_WIDTH; var h; if (e.startSignal === e.endSignal) { y = e.startSignal.startY; @@ -497,9 +494,9 @@ h = e.endSignal ? e.endSignal.startY - y : (actor.y - y); } - // Draw actual execution specification. + // Draw actual execution. var rect = self.draw_rect(x, y, w, h); - rect.attr(EXECUTION_SPECIFICATION_RECT); + rect.attr(EXECUTION_RECT); }); }, @@ -527,7 +524,7 @@ var text_bb = signal.text_bb; var aX = getCenterX(signal.actorA); - aX += execSpecMarginRight(signal.maxExecSpecLevel()); + aX += executionMarginRight(signal.maxExecutionLevel()); var x = aX + SELF_SIGNAL_WIDTH + SIGNAL_PADDING - text_bb.x; var y = offsetY + signal.height / 2; @@ -538,8 +535,8 @@ 'stroke-dasharray': this.line_types[signal.linetype] }); - var x1 = getCenterX(signal.actorA) + execSpecMarginRight(signal.startLevel); - var x2 = getCenterX(signal.actorA) + execSpecMarginRight(signal.endLevel); + var x1 = getCenterX(signal.actorA) + executionMarginRight(signal.startLevel); + var x2 = getCenterX(signal.actorA) + executionMarginRight(signal.endLevel); var y1 = offsetY + SIGNAL_MARGIN; var y2 = y1 + signal.height - SIGNAL_MARGIN; @@ -561,11 +558,11 @@ var bX = getCenterX( signal.actorB ); if (bX > aX) { - aX += execSpecMarginRight(signal.startLevel); - bX += execSpecMarginLeft(signal.endLevel); + aX += executionMarginRight(signal.startLevel); + bX += executionMarginLeft(signal.endLevel); } else { - aX += execSpecMarginLeft(signal.startLevel); - bX += execSpecMarginRight(signal.endLevel); + aX += executionMarginLeft(signal.startLevel); + bX += executionMarginRight(signal.endLevel); } // Mid point between actors diff --git a/test/grammar-tests.js b/test/grammar-tests.js index 3dd276f..47cec42 100644 --- a/test/grammar-tests.js +++ b/test/grammar-tests.js @@ -67,11 +67,11 @@ function assertEmptyDocument(d) { equal(d.signals.length, 0, "Zero signals"); } -function testExecutionSpecification(execSpec, affectedActorName, startSignal, endSignal, level) { - equal(execSpec.actor.name, affectedActorName, "Correct actor"); - equal(execSpec.startSignal, startSignal, "Start signal of ExecutionSpecification"); - equal(execSpec.endSignal, endSignal, "End signal of ExecutionSpecification"); - equal(execSpec.level, level, "Nesting level of ExecutionSpecification"); +function testExecutions(execution, affectedActorName, startSignal, endSignal, level) { + equal(execution.actor.name, affectedActorName, "Correct actor"); + equal(execution.startSignal, startSignal, "Start signal of Execution"); + equal(execution.endSignal, endSignal, "End signal of Execution"); + equal(execution.level, level, "Nesting level of Execution"); } @@ -197,7 +197,7 @@ test( "Quoted names", function() { assertSingleArrow(Diagram.parse("\"+A\"->\"+B\": M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "+A", "+B", "M"); }); -test( "ExecutionSpecifications", function () { +test( "Executions", function () { assertSingleArrow(Diagram.parse("A->+B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "B", "M"); assertSingleArrow(Diagram.parse("+A->B: M"), ARROWTYPE.FILLED, LINETYPE.SOLID, "A", "B", "M"); assertSingleArrow(Diagram.parse("+A-->+B: M"), ARROWTYPE.FILLED, LINETYPE.DOTTED, "A", "B", "M"); @@ -210,19 +210,19 @@ test( "ExecutionSpecifications", function () { var b = d.actors[1]; equal(a.name, "A", "Actors A name"); equal(b.name, "B", "Actors B name"); - var execSpecsA = a.executionSpecifications; - var execSpecsB = b.executionSpecifications; + var execsA = a.executions; + var execsB = b.executions; equal(d.signals.length, 3, "Correct signals count"); - equal(execSpecsA.length, 1, "Correct actor A ExecutionSpecification count"); - equal(execSpecsB.length, 2, "Correct actor B ExecutionSpecification count"); - - // More or less normal ExecutionSpecification - testExecutionSpecification(execSpecsB[0], "B", d.signals[0], d.signals[2], 0); - // Self-signalled ExecutionSpecification - testExecutionSpecification(execSpecsB[1], "B", d.signals[1], d.signals[1], 1); - // Endless ExecutionSpecification - testExecutionSpecification(execSpecsA[0], "A", d.signals[2], null, 0); + equal(execsA.length, 1, "Correct actor A Execution count"); + equal(execsB.length, 2, "Correct actor B Execution count"); + + // More or less normal Execution + testExecutions(execsB[0], "B", d.signals[0], d.signals[2], 0); + // Self-signalled Execution + testExecutions(execsB[1], "B", d.signals[1], d.signals[1], 1); + // Endless Execution + testExecutions(execsA[0], "A", d.signals[2], null, 0); // Make sure we haven't broken the different arrow types. equal(d.signals[0].arrowtype, ARROWTYPE.FILLED, "Signal 1 Arrow Type"); From d64d749145538e0bd6013e85e5966efa1bf5dddf Mon Sep 17 00:00:00 2001 From: Andrew Dunn Date: Fri, 22 Jul 2016 00:25:38 +1000 Subject: [PATCH 9/9] Addressed issues brought up in pull request --- build/sequence-diagram-min.js | 2 +- build/sequence-diagram-min.js.map | 2 +- src/diagram.js | 20 ++++++++++---------- src/grammar.ebnf | 2 +- src/grammar.jison | 6 +++--- src/sequence-diagram.js | 6 ++---- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/build/sequence-diagram-min.js b/build/sequence-diagram-min.js index c7dc6a6..bce93e8 100644 --- a/build/sequence-diagram-min.js +++ b/build/sequence-diagram-min.js @@ -3,7 +3,7 @@ * (c) 2012-2015 Andrew Brampton (bramp.net) * @license Simplified BSD license. */ -!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}function executionMarginLeft(level){return 0>level?0:.5*-EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}function executionMarginRight(level){return 0>level?0:.5*EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){signal.index=this.signals.length,this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index,this.executionStack=[],this.executions=[],this.maxExecutionsLevel=-1},Diagram.Signal=function(actorA,signaltype,actorB,message,executionLevelChangeA,executionLevelChangeB){if(this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message,this.index=null,actorA===actorB&&executionLevelChangeB===Diagram.EXECUTION_LVL_CHANGE.UNCHANGED&&(executionLevelChangeB=executionLevelChangeA,executionLevelChangeA=Diagram.EXECUTION_LVL_CHANGE.UNCHANGED),actorA===actorB&&executionLevelChangeA===executionLevelChangeB&&executionLevelChangeA!==Diagram.EXECUTION_LVL_CHANGE.UNCHANGED)throw new Error("You cannot move the Execution nesting level in the same direction twice on a single self-signal.");this.actorA.changeExecutionLevel(executionLevelChangeA,this),this.startLevel=this.actorA.executionStack.length-1,this.actorB.changeExecutionLevel(executionLevelChangeB,this),this.endLevel=this.actorB.executionStack.length-1},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Signal.prototype.maxExecutionLevel=function(){if(!this.isSelf())throw new Error("maxExecutionLevel() was called on a non-self signal.");return Math.max(this.startLevel,this.endLevel)},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Execution=function(actor,startSignal,level){this.actor=actor,this.startSignal=startSignal,this.endSignal=null,this.level=level},Diagram.Actor.prototype.changeExecutionLevel=function(change,signal){switch(change){case Diagram.EXECUTION_LVL_CHANGE.UNCHANGED:break;case Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL:var newLevel=this.executionStack.length;this.maxExecutionsLevel=Math.max(this.maxExecutionsLevel,newLevel);var execution=new Diagram.Execution(this,signal,newLevel);this.executionStack.push(execution),this.executions.push(execution);break;case Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL:if(!(this.executionStack.length>0))throw new Error("The execution level for actor "+this.name+" was dropped below 0.");this.executionStack.pop().setEndSignal(signal)}},Diagram.Execution.prototype.setEndSignal=function(signal){this.endSignal=signal},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},Diagram.EXECUTION_LVL_CHANGE={UNCHANGED:0,INCREASE_LEVEL:1,DECREASE_LEVEL:-1},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[5,8,9,13,15,25,26,27],$V1=[1,13],$V2=[1,14],$V3=[2,17],$V4=[1,18],$V5=[1,20],$V6=[25,26,27],$V7=[25,26,27,31,32],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,execution_modifier:23,signaltype:24,LINE:25,PLUS:26,ACTOR:27,linetype:28,arrowtype:29,DOTLINE:30,ARROW:31,OPENARROW:32,MESSAGE:33,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",25:"LINE",26:"PLUS",27:"ACTOR",30:"DOTLINE",31:"ARROW",32:"OPENARROW",33:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,6],[23,0],[23,1],[23,1],[17,1],[10,1],[24,2],[24,1],[28,1],[28,1],[29,1],[29,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 23:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-4],$$[$0-3],$$[$0-1],$$[$0],$$[$0-5],$$[$0-2]);break;case 17:this.$=Diagram.EXECUTION_LVL_CHANGE.UNCHANGED;break;case 18:this.$=Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL;break;case 19:this.$=Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL;break;case 20:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 21:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 22:this.$=$$[$0-1]|$$[$0]<<2;break;case 24:this.$=Diagram.LINETYPE.SOLID;break;case 25:this.$=Diagram.LINETYPE.DOTTED;break;case 26:this.$=Diagram.ARROWTYPE.FILLED;break;case 27:this.$=Diagram.ARROWTYPE.OPEN;break;case 28:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],23:11,25:$V1,26:$V2,27:$V3},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:15,27:[1,16]},o($V0,[2,7]),o($V0,[2,8]),{14:17,33:$V4},{17:19,27:$V5},{16:21,18:[1,22],21:[1,23],22:[1,24]},{27:[2,18]},{27:[2,19]},o($V0,[2,6]),o($V0,[2,21]),o($V0,[2,9]),o($V0,[2,28]),{24:25,25:[1,27],28:26,30:[1,28]},o([20,25,30,33],[2,20]),{17:29,27:$V5},{17:31,19:30,27:$V5},{27:[2,14]},{27:[2,15]},{23:32,25:$V1,26:$V2,27:$V3},o($V6,[2,23],{29:33,31:[1,34],32:[1,35]}),o($V7,[2,24]),o($V7,[2,25]),{14:36,33:$V4},{14:37,33:$V4},{20:[1,38],33:[2,12]},{17:39,27:$V5},o($V6,[2,22]),o($V6,[2,26]),o($V6,[2,27]),o($V0,[2,10]),o($V0,[2,11]),{17:40,27:$V5},{14:41,33:$V4},{33:[2,13]},o($V0,[2,16])],defaultActions:{3:[2,1],13:[2,18],14:[2,19],23:[2,14],24:[2,15],40:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((null===symbol||"undefined"==typeof symbol)&&(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 27;case 11:return 27;case 12:return 30;case 13:return 25;case 14:return 26;case 15:return 32;case 16:return 31;case 17:return 33;case 18:return 5;case 19:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"+]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:\+)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram},Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179}," ":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15",w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59", +!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}function executionMarginLeft(level){return 0>level?0:.5*-EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}function executionMarginRight(level){return 0>level?0:.5*EXECUTION_WIDTH+level*OVERLAPPING_EXECUTION_OFFSET}Diagram.prototype.getActor=function(alias,name){alias=alias.trim();var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name||alias,actors.length)),actors[i-1]},Diagram.prototype.getActorWithAlias=function(input){input=input.trim();var alias,name,s=/([\s\S]+) as (\S+)$/im.exec(input);return s?(name=s[1].trim(),alias=s[2].trim()):name=alias=input,this.getActor(alias,name)},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){signal.index=this.signals.length,this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index,this.executionStack=[],this.executions=[],this.maxExecutionsLevel=-1},Diagram.Signal=function(actorA,signaltype,actorB,message,executionLevelChangeA,executionLevelChangeB){if(this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=signaltype>>2&3,this.message=message,this.index=null,actorA===actorB&&executionLevelChangeB===Diagram.EXECUTION_CHANGE.NONE&&(executionLevelChangeB=executionLevelChangeA,executionLevelChangeA=Diagram.EXECUTION_CHANGE.NONE),actorA===actorB&&executionLevelChangeA===executionLevelChangeB&&executionLevelChangeA!==Diagram.EXECUTION_CHANGE.NONE)throw new Error("You cannot move the Execution nesting level in the same direction twice on a single self-signal.");this.actorA.changeExecutionLevel(executionLevelChangeA,this),this.startLevel=this.actorA.executionStack.length-1,this.actorB.changeExecutionLevel(executionLevelChangeB,this),this.endLevel=this.actorB.executionStack.length-1},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Signal.prototype.maxExecutionLevel=function(){if(!this.isSelf())throw new Error("maxExecutionLevel() was called on a non-self signal.");return Math.max(this.startLevel,this.endLevel)},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Execution=function(actor,startSignal,level){this.actor=actor,this.startSignal=startSignal,this.endSignal=null,this.level=level},Diagram.Actor.prototype.changeExecutionLevel=function(change,signal){switch(change){case Diagram.EXECUTION_CHANGE.NONE:break;case Diagram.EXECUTION_CHANGE.INCREASE_LEVEL:var newLevel=this.executionStack.length;this.maxExecutionsLevel=Math.max(this.maxExecutionsLevel,newLevel);var execution=new Diagram.Execution(this,signal,newLevel);this.executionStack.push(execution),this.executions.push(execution);break;case Diagram.EXECUTION_CHANGE.DECREASE:if(!(this.executionStack.length>0))throw new Error("The execution level for actor "+this.name+" was dropped below 0.");this.executionStack.pop().setEndSignal(signal)}},Diagram.Execution.prototype.setEndSignal=function(signal){this.endSignal=signal},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.unescape=function(s){return s.trim().replace(/^"(.*)"$/m,"$1").replace(/\\n/gm,"\n")},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},Diagram.EXECUTION_CHANGE={NONE:0,INCREASE_LEVEL:1,DECREASE:2},"function"!=typeof Object.getPrototypeOf&&("object"==typeof"test".__proto__?Object.getPrototypeOf=function(object){return object.__proto__}:Object.getPrototypeOf=function(object){return object.constructor.prototype});var parser=function(){function Parser(){this.yy={}}var o=function(k, v, o, l){for(o=o||{},l=k.length; l--; o[k[l]]=v);return o},$V0=[5,8,9,13,15,25,26,27],$V1=[1,13],$V2=[1,14],$V3=[2,17],$V4=[1,18],$V5=[1,20],$V6=[25,26,27],$V7=[25,26,27,31,32],parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor_alias:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,actor:17,over:18,actor_pair:19,",":20,left_of:21,right_of:22,execution_modifier:23,signaltype:24,LINE:25,PLUS:26,ACTOR:27,linetype:28,arrowtype:29,DOTLINE:30,ARROW:31,OPENARROW:32,MESSAGE:33,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",18:"over",20:",",21:"left_of",22:"right_of",25:"LINE",26:"PLUS",27:"ACTOR",30:"DOTLINE",31:"ARROW",32:"OPENARROW",33:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[19,1],[19,3],[16,1],[16,1],[11,6],[23,0],[23,1],[23,1],[17,1],[10,1],[24,2],[24,1],[28,1],[28,1],[29,1],[29,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:return yy.parser.yy;case 4:break;case 6:$$[$0];break;case 7:case 8:yy.parser.yy.addSignal($$[$0]);break;case 9:yy.parser.yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:case 23:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-4],$$[$0-3],$$[$0-1],$$[$0],$$[$0-5],$$[$0-2]);break;case 17:this.$=Diagram.EXECUTION_CHANGE.NONE;break;case 18:this.$=Diagram.EXECUTION_CHANGE.DECREASE;break;case 19:this.$=Diagram.EXECUTION_CHANGE.INCREASE_LEVEL;break;case 20:this.$=yy.parser.yy.getActor(Diagram.unescape($$[$0]));break;case 21:this.$=yy.parser.yy.getActorWithAlias(Diagram.unescape($$[$0]));break;case 22:this.$=$$[$0-1]|$$[$0]<<2;break;case 24:this.$=Diagram.LINETYPE.SOLID;break;case 25:this.$=Diagram.LINETYPE.DOTTED;break;case 26:this.$=Diagram.ARROWTYPE.FILLED;break;case 27:this.$=Diagram.ARROWTYPE.OPEN;break;case 28:this.$=Diagram.unescape($$[$0].substring(1))}},table:[o($V0,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],11:8,12:9,13:[1,10],15:[1,12],23:11,25:$V1,26:$V2,27:$V3},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),{10:15,27:[1,16]},o($V0,[2,7]),o($V0,[2,8]),{14:17,33:$V4},{17:19,27:$V5},{16:21,18:[1,22],21:[1,23],22:[1,24]},{27:[2,18]},{27:[2,19]},o($V0,[2,6]),o($V0,[2,21]),o($V0,[2,9]),o($V0,[2,28]),{24:25,25:[1,27],28:26,30:[1,28]},o([20,25,30,33],[2,20]),{17:29,27:$V5},{17:31,19:30,27:$V5},{27:[2,14]},{27:[2,15]},{23:32,25:$V1,26:$V2,27:$V3},o($V6,[2,23],{29:33,31:[1,34],32:[1,35]}),o($V7,[2,24]),o($V7,[2,25]),{14:36,33:$V4},{14:37,33:$V4},{20:[1,38],33:[2,12]},{17:39,27:$V5},o($V6,[2,22]),o($V6,[2,26]),o($V6,[2,27]),o($V0,[2,10]),o($V0,[2,11]),{17:40,27:$V5},{14:41,33:$V4},{33:[2,13]},o($V0,[2,16])],defaultActions:{3:[2,1],13:[2,18],14:[2,19],23:[2,14],24:[2,15],40:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1,args=lstack.slice.call(arguments,1),lexer=Object.create(this.lexer),sharedState={yy:{}};for(var k in this.yy)Object.prototype.hasOwnProperty.call(this.yy,k)&&(sharedState.yy[k]=this.yy[k]);lexer.setInput(input,sharedState.yy),sharedState.yy.lexer=lexer,sharedState.yy.parser=this,"undefined"==typeof lexer.yylloc&&(lexer.yylloc={});var yyloc=lexer.yylloc;lstack.push(yyloc);var ranges=lexer.options&&lexer.options.ranges;"function"==typeof sharedState.yy.parseError?this.parseError=sharedState.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((null===symbol||"undefined"==typeof symbol)&&(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:lexer.match,token:this.terminals_[symbol]||symbol,line:lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(lexer.yytext),lstack.push(lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=lexer.yyleng,yytext=lexer.yytext,yylineno=lexer.yylineno,yyloc=lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.apply(yyval,[yytext,yyleng,yylineno,sharedState.yy,action[1],vstack,lstack].concat(args)),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,-1*len*2),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input,yy){return this.yy=yy||this.yy||{},this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 21;case 5:return 22;case 6:return 18;case 7:return 15;case 8:return 13;case 9:return 20;case 10:return 27;case 11:return 27;case 12:return 30;case 13:return 25;case 14:return 26;case 15:return 32;case 16:return 31;case 17:return 33;case 18:return 5;case 19:return"INVALID"}},rules:[/^(?:[\r\n]+)/i,/^(?:\s+)/i,/^(?:#[^\r\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:,\r\n"+]+)/i,/^(?:"[^"]+")/i,/^(?:--)/i,/^(?:-)/i,/^(?:\+)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^\r\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=parser,exports.Parser=parser.Parser,exports.parse=function(){return parser.parse.apply(parser,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,Diagram.parse=function(input){parser.yy=new Diagram,parser.yy.parseError=function(message,hash){throw new ParseError(message,hash)};var diagram=parser.parse(input);return delete diagram.parseError,diagram},Raphael.registerFont({w:209,face:{"font-family":"Daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 519 184.967","underline-thickness":"3.51562","underline-position":"-25.1367","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179}," ":{w:179},"\r":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15",w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59", w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81",w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"236,38v20,-18,-8,-74,-13,-90v-44,-78,-112,-190,-200,-253v-2,0,-5,4,-7,12v-11,31,13,36,24,58v74,61,174,219,180,273r16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199}," ":{w:179},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29",w:331},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28", w:171},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18",w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199}}});var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,EXECUTION_WIDTH=10,OVERLAPPING_EXECUTION_OFFSET=.5*EXECUTION_WIDTH,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,LINE={stroke:"#000","stroke-width":2},RECT={fill:"#fff"},EXECUTION_RECT={stroke:"#000","stroke-width":2,fill:"#e6e6e6"};AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)},Raphael.fn.wobble=function(x1,y1,x2,y2){assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var wobble=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=Math.random(),r2=Math.random(),xfactor=Math.random()>.5?wobble:-wobble,yfactor=Math.random()>.5?wobble:-wobble,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x+","+p1.y+" "+p2.x+","+p2.y+" "+x2+","+y2},Raphael.fn.text_bbox=function(text,font){var p;font._obj?p=this.print_center(0,0,text,font._obj,font["font-size"]):(p=this.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},Raphael.fn.handRect=function(x,y,w,h){return assert(_.every([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),this.path("M"+x+","+y+this.wobble(x,y,x+w,y)+this.wobble(x+w,y,x+w,y+h)+this.wobble(x+w,y+h,x,y+h)+this.wobble(x,y+h,x,y)).attr(RECT)},Raphael.fn.handLine=function(x1,y1,x2,y2){return assert(_.every([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M"+x1+","+y1+this.wobble(x1,y1,x2,y2))},Raphael.fn.print_center=function(x,y,string,font,size,letter_spacing){var path=this.print(x,y,string,font,size,"baseline",letter_spacing),bb=path.getBBox(),dx=x-bb.x-bb.width/2,dy=y-bb.y-bb.height/2,m=new Raphael.matrix;return m.translate(dx,dy),path.attr("path",Raphael.mapPath(path.attr("path"),m))};var BaseTheme=function(diagram){this.init(diagram)};_.extend(BaseTheme.prototype,{init:function(diagram){this.diagram=diagram,this._paper=void 0,this._font=void 0,this._title=void 0,this._actors_height=0,this._signals_height=0;var a=this.arrow_types={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.line_types={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-"},init_paper:function(container){this._paper=new Raphael(container,320,200)},init_font:function(){},draw_line:function(x1,y1,x2,y2){return this._paper.line(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.rect(x,y,w,h)},draw:function(container){var diagram=this.diagram;this.init_paper(container),this.init_font(),this.layout();var title_height=this._title?this._title.height:0;this._paper.setStart(),this._paper.setSize(diagram.width,diagram.height);var y=DIAGRAM_MARGIN+title_height;this.draw_title(),this.draw_actors(y),this.draw_executions(y+this._actors_height),this.draw_signals(y+this._actors_height),this._paper.setFinish()},layout:function(){function actor_ensure_distance(a,b,d){assert(b>a,"a must be less than or equal to b"),0>a?(b=actors[b],b.x=Math.max(d-b.width/2,b.x)):b>=actors.length?(a=actors[a],a.padding_right=Math.max(d,a.padding_right)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,paper=this._paper,font=this._font,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this._title={},bb=paper.text_bbox(diagram.title,font);title.text_bb=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}var self=this;_.each(actors,function(a){var bb=paper.text_bbox(a.name,font);a.text_bb=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.padding_right=0,a.maxExecutionsLevel>=0&&(a.padding_right=EXECUTION_WIDTH/2+a.maxExecutionsLevel*OVERLAPPING_EXECUTION_OFFSET),self._actors_height=Math.max(a.height,self._actors_height)}),_.each(signals,function(s){var a,b,bb=paper.text_bbox(s.message,font);s.text_bb=bb,s.width=bb.width,s.height=bb.height;var extra_width=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extra_width=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extra_width=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actor_ensure_distance(a-1,a,s.width/2),actor_ensure_distance(a,a+1,s.width/2),void(self._signals_height+=s.height)}actor_ensure_distance(a,b,s.width+extra_width),self._signals_height+=s.height});var actors_x=0;return _.each(actors,function(a){a.x=Math.max(actors_x,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actors_x=a.x+a.width+a.padding_right},this),diagram.width=Math.max(actors_x,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this._actors_height+this._signals_height,this},draw_title:function(){var title=this._title;title&&this.draw_text_box(title,title.message,TITLE_MARGIN,TITLE_PADDING,this._font)},draw_actors:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.actors,function(a){self.draw_actor(a,y,self._actors_height),self.draw_actor(a,y+self._actors_height+self._signals_height,self._actors_height);var aX=getCenterX(a),line=self.draw_line(aX,y+self._actors_height-ACTOR_MARGIN,aX,y+self._actors_height+ACTOR_MARGIN+self._signals_height);line.attr(LINE)})},draw_actor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.draw_text_box(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this._font)},draw_executions:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.signals,function(s){"Signal"==s.type&&(s.isSelf()?(s.startY=y+SIGNAL_MARGIN,s.endY=s.startY+s.height-SIGNAL_MARGIN):s.startY=s.endY=y+s.height-SIGNAL_MARGIN-SIGNAL_PADDING),y+=s.height}),_.each(this.diagram.actors,function(a){self.draw_actors_executions(a)})},draw_actors_executions:function(actor){var self=this;_.each(actor.executions,function(e){var aX=getCenterX(actor);aX+=e.level*OVERLAPPING_EXECUTION_OFFSET;var y,h,x=aX-EXECUTION_WIDTH/2,w=EXECUTION_WIDTH;e.startSignal===e.endSignal?(y=e.startSignal.startY,h=e.endSignal?e.endSignal.endY-y:actor.y-y):(y=e.startSignal.endY,h=e.endSignal?e.endSignal.startY-y:actor.y-y);var rect=self.draw_rect(x,y,w,h);rect.attr(EXECUTION_RECT)})},draw_signals:function(offsetY){var y=offsetY,self=this;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?self.draw_self_signal(s,y):self.draw_signal(s,y):"Note"==s.type&&self.draw_note(s,y),y+=s.height})},draw_self_signal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var text_bb=signal.text_bb,aX=getCenterX(signal.actorA);aX+=executionMarginRight(signal.maxExecutionLevel());var x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING-text_bb.x,y=offsetY+signal.height/2;this.draw_text(x,y,signal.message,this._font);var line,attr=_.extend({},LINE,{"stroke-dasharray":this.line_types[signal.linetype]}),x1=getCenterX(signal.actorA)+executionMarginRight(signal.startLevel),x2=getCenterX(signal.actorA)+executionMarginRight(signal.endLevel),y1=offsetY+SIGNAL_MARGIN,y2=y1+signal.height-SIGNAL_MARGIN;line=this.draw_line(x1,y1,aX+SELF_SIGNAL_WIDTH,y1),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y2,x2,y2),attr["arrow-end"]=this.arrow_types[signal.arrowtype]+"-wide-long",line.attr(attr)},draw_signal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB);bX>aX?(aX+=executionMarginRight(signal.startLevel),bX+=executionMarginLeft(signal.endLevel)):(aX+=executionMarginLeft(signal.startLevel),bX+=executionMarginRight(signal.endLevel));var x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.draw_text(x,y,signal.message,this._font),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING;var line=this.draw_line(aX,y,bX,y);line.attr(LINE),line.attr({"arrow-end":this.arrow_types[signal.arrowtype]+"-wide-long","stroke-dasharray":this.line_types[signal.linetype]})},draw_note:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=Math.min(aX,bX)-overlap,note.width=Math.max(aX,bX)+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement:"+note.placement)}this.draw_text_box(note,note.message,NOTE_MARGIN,NOTE_PADDING,this._font)},draw_text:function(x,y,text,font){var t,paper=this._paper,f=font||{};f._obj?t=paper.print_center(x,y,text,f._obj,f["font-size"]):(t=paper.text(x,y,text),t.attr(f));var bb=t.getBBox(),r=paper.rect(bb.x,bb.y,bb.width,bb.height);r.attr({fill:"#fff",stroke:"none"}),t.toFront()},draw_text_box:function(box,text,margin,padding,font){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin,rect=this.draw_rect(x,y,w,h);rect.attr(LINE),x=getCenterX(box),y=getCenterY(box),this.draw_text(x,y,text,font)}});var RaphaelTheme=function(diagram){this.init(diagram)};_.extend(RaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"Andale Mono, monospace"}}});var HandRaphaelTheme=function(diagram){this.init(diagram)};_.extend(HandRaphaelTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"daniel"},this._font._obj=this._paper.getFont("daniel")},draw_line:function(x1,y1,x2,y2){return this._paper.handLine(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.handRect(x,y,w,h)}});var themes={simple:RaphaelTheme,hand:HandRaphaelTheme};Diagram.prototype.drawSVG=function(container,options){var default_options={theme:"hand"};if(options=_.defaults(options||{},default_options),!(options.theme in themes))throw new Error("Unsupported theme: "+options.theme);var drawing=new themes[options.theme](this);drawing.draw(container)},"undefined"!=typeof jQuery&&!function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery);var root="object"==typeof self&&self.self==self&&self||"object"==typeof global&&global.global==global&&global;"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=Diagram),exports.Diagram=Diagram):root.Diagram=Diagram}(); //# sourceMappingURL=sequence-diagram-min.js.map \ No newline at end of file diff --git a/build/sequence-diagram-min.js.map b/build/sequence-diagram-min.js.map index 80b5472..c99dbb1 100644 --- a/build/sequence-diagram-min.js.map +++ b/build/sequence-diagram-min.js.map @@ -1 +1 @@ -{"version":3,"file":"build/sequence-diagram-min.js","sources":["build/sequence-diagram.js"],"names":["Diagram","this","title","undefined","actors","signals","ParseError","message","hash","_","extend","name","AssertException","assert","exp","getCenterX","box","x","width","getCenterY","y","height","executionMarginLeft","level","EXECUTION_WIDTH","OVERLAPPING_EXECUTION_OFFSET","executionMarginRight","prototype","getActor","alias","trim","i","push","Actor","length","getActorWithAlias","input","s","exec","setTitle","addSignal","signal","index","executionStack","executions","maxExecutionsLevel","Signal","actorA","signaltype","actorB","executionLevelChangeA","executionLevelChangeB","type","linetype","arrowtype","EXECUTION_LVL_CHANGE","UNCHANGED","Error","changeExecutionLevel","startLevel","endLevel","isSelf","maxExecutionLevel","Math","max","Note","actor","placement","hasManyActors","Execution","startSignal","endSignal","change","INCREASE_LEVEL","newLevel","execution","DECREASE_LEVEL","pop","setEndSignal","isArray","unescape","replace","LINETYPE","SOLID","DOTTED","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","Object","getPrototypeOf","__proto__","object","constructor","parser","Parser","yy","o","k","v","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","trace","symbols_","error","start","document","EOF","line","statement","NL","participant","actor_alias","note_statement","note","over","actor_pair",",","left_of","right_of","execution_modifier","LINE","PLUS","ACTOR","DOTLINE","ARROW","OPENARROW","MESSAGE","$accept","$end","terminals_",2,5,8,9,13,15,18,20,21,22,25,26,27,30,31,32,33,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","substring","table",3,4,1,6,7,11,12,23,10,14,17,16,24,28,19,29,"defaultActions",40,"parseError","str","recoverable","parse","lex","token","lexer","self","stack","vstack","lstack","recovering","TERROR","args","slice","call","arguments","create","sharedState","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","symbol","preErrorSymbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","text","match","loc","Array","first_line","last_line","first_column","last_column","range","apply","concat","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","lines","unput","split","substr","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","rules","_currentRules","flex","begin","condition","popState","conditions","INITIAL","topState","abs","pushState","stateStackSize","case-insensitive","yy_","$avoiding_name_collisions","YY_START","inclusive","require","exports","main","console","log","process","exit","source","readFileSync","normalize","module","argv","diagram","Raphael","registerFont","w","face","font-family","font-weight","font-stretch","units-per-em","panose-1","ascent","descent","x-height","bbox","underline-thickness","underline-position","unicode-range","glyphs"," ","\t","\r","!","d","\"","#","%","&","'","(",")","*","+","-",".","/","0",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","`","a","b","e","f","g","h","j","m","q","t","u","z","{","|","}","~"," ","¡","¢","£","¤","€","¥","§","¨","©","ª","«","¬","®","¯","°","±","´","¶","¸","º","»","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ÿ","ı","Œ","œ","Ÿ","ƒ","ˆ","ˇ","˘","˙","˚","˛","˜","˝","–","—","‘","’","‚","“","”","„","†","‡","•","…","‰","‹","›","⁄","™","∆","∙","√","∞","∫","≈","≠","≤","≥","◊","DIAGRAM_MARGIN","ACTOR_MARGIN","ACTOR_PADDING","SIGNAL_MARGIN","SIGNAL_PADDING","NOTE_MARGIN","NOTE_PADDING","NOTE_OVERLAP","TITLE_MARGIN","TITLE_PADDING","SELF_SIGNAL_WIDTH","stroke","stroke-width","RECT","fill","EXECUTION_RECT","toString","String","fn","x1","y1","x2","y2","every","isFinite","path","wobble","sqrt","r1","random","r2","xfactor","yfactor","p1","p2","text_bbox","font","_obj","print_center","attr","bb","getBBox","remove","handRect","handLine","string","size","letter_spacing","print","dx","dy","matrix","translate","mapPath","BaseTheme","init","_paper","_font","_title","_actors_height","_signals_height","arrow_types","line_types","init_paper","container","init_font","draw_line","draw_rect","rect","draw","layout","title_height","setStart","setSize","draw_title","draw_actors","draw_executions","draw_signals","setFinish","actor_ensure_distance","padding_right","distances","paper","text_bb","each","extra_width","min","actors_x","distance","draw_text_box","offsetY","draw_actor","aX","startY","endY","draw_actors_executions","draw_self_signal","draw_signal","draw_note","draw_text","stroke-dasharray","bX","arrow-end","overlap","toFront","margin","padding","RaphaelTheme","font-size","HandRaphaelTheme","getFont","themes","simple","hand","drawSVG","default_options","theme","defaults","drawing","jQuery","sequenceDiagram","$this","html","root","global"],"mappings":"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,EAAK,mIACLnB,EAAK,IAETkC,KACIf,EAAK,wKACLnB,EAAK,KAETmC,KACIhB,EAAK,qIACLnB,EAAK,KAEToC,KACIjB,EAAK,sMACLnB,EAAK,KAETqC,KACIlB,EAAK,gLACLnB,EAAK,KAETsC,KACInB,EAAK,iQACLnB,EAAK,KAETuC,KACIpB,EAAK,sXACLnB,EAAK,KAETwC,GACIrB,EAAK,+WACLnB,EAAK,KAETyC,GACItB,EAAK,ioBACLnB,EAAK,KAET0C,GACIvB,EAAK,yQACLnB,EAAK,KAET2C,GACIxB,EAAK,msBACLnB,EAAK,KAET4C,GACIzB,EAAK,wXACLnB,EAAK,KAET6C,GACI1B,EAAK,+TACLnB,EAAK,KAET8C,GACI3B,EAAK,qVACLnB,EAAK,KAET+C,GACI5B,EAAK,+RACLnB,EAAK,KAETgD,GACI7B,EAAK,uHACLnB,EAAK,IAETiD,GACI9B,EAAK,iLACLnB,EAAK,KAETkD,GACI/B,EAAK,iVACLnB,EAAK,KAETmD,GACIhC,EAAK,iNACLnB,EAAK,KAEToD,GACIjC,EAAK,iWACLnB,EAAK,KAETqD,GACIlC,EAAK,2PACLnB,EAAK,KAETsD,GACInC,EAAK,8SACLnB,EAAK,KAETuD,GACIpC,EAAK,sUACLnB,EAAK,KAETwD,GACIrC,EAAK;AACLnB,EAAK,KAETyD,GACItC,EAAK,4bACLnB,EAAK,KAET0D,GACIvC,EAAK,4TACLnB,EAAK,KAET2D,GACIxC,EAAK,oPACLnB,EAAK,KAET4D,GACIzC,EAAK,0RACLnB,EAAK,KAET6D,GACI1C,EAAK,4QACLnB,EAAK,KAET8D,GACI3C,EAAK,0WACLnB,EAAK,KAET+D,GACI5C,EAAK,4RACLnB,EAAK,KAETgE,GACI7C,EAAK,oNACLnB,EAAK,KAETiE,GACI9C,EAAK,uRACLnB,EAAK,KAETkE,KACI/C,EAAK,8LACLnB,EAAK,KAETmE,MACIhD,EAAK,yHACLnB,EAAK,KAEToE,KACIjD,EAAK,qOACLnB,EAAK,KAETqE,KACIlD,EAAK,4HACLnB,EAAK,KAETjS,GACIoT,EAAK,sGACLnB,EAAK,KAETsE,KACInD,EAAK,uFACLnB,EAAK,KAETuE,GACIpD,EAAK,6KACLnB,EAAK,KAETwE,GACIrD,EAAK,4VACLnB,EAAK,KAETtC,GACIyD,EAAK,qJACLnB,EAAK,KAETmB,GACIA,EAAK,yOACLnB,EAAK,KAETyE,GACItD,EAAK,+OACLnB,EAAK,KAET0E,GACIvD,EAAK,qQACLnB,EAAK,KAET2E,GACIxD,EAAK,wXACLnB,EAAK,KAET4E,GACIzD,EAAK,uQACLnB,EAAK,KAET3Q,GACI8R,EAAK,kJACLnB,EAAK,IAET6E,GACI1D,EAAK,4MACLnB,EAAK,KAETrM,GACIwN,EAAK,6PACLnB,EAAK,KAETnM,GACIsN,EAAK,sHACLnB,EAAK,KAET8E,GACI3D,EAAK,wRACLnB,EAAK,KAET5C,GACI+D,EAAK,yJACLnB,EAAK,KAETtM,GACIyN,EAAK,uJACLnB,EAAK,KAEThF,GACImG,EAAK,uTACLnB,EAAK,KAET+E,GACI5D,EAAK,wRACLnB,EAAK,KAETjF,GACIoG,EAAK,kJACLnB,EAAK,KAETrQ,GACIwR,EAAK,wPACLnB,EAAK,KAETgF,GACI7D,EAAK,+OACLnB,EAAK,KAETiF,GACI9D,EAAK,yKACLnB,EAAK,KAETpM,GACIuN,EAAK,qJACLnB,EAAK,KAETA,GACImB,EAAK,mOACLnB,EAAK,KAETzR,GACI4S,EAAK,+PACLnB,EAAK,KAETtR,GACIyS,EAAK,6PACLnB,EAAK,KAETkF,GACI/D,EAAK,8NACLnB,EAAK,KAETmF,KACIhE,EAAK,sTACLnB,EAAK,KAEToF,KACIjE,EAAK,mIACLnB,EAAK,IAETqF,KACIlE,EAAK,mQACLnB,EAAK,KAETsF,KACInE,EAAK,kKACLnB,EAAK,KAETuF,KACIvF,EAAK,KAETwF,KACIrE,EAAK,+MACLnB,EAAK,IAETyF,KACItE,EAAK,+QACLnB,EAAK,KAET0F,KACIvE,EAAK,uZACLnB,EAAK,KAET2F,KACIxE,EAAK,4YACLnB,EAAK,KAET4F,KACIzE,EAAK,4YACLnB,EAAK,KAET6F,KACI1E,EAAK,qaACLnB,EAAK,KAET8F,KACI3E,EAAK,oVACLnB,EAAK,KAET+F,KACI5E,EAAK,mIACLnB,EAAK,KAETgG,KACI7E,EAAK,6TACLnB,EAAK,KAETiG,KACI9E,EAAK,uIACLnB,EAAK,KAETkG,KACI/E,EAAK,+SACLnB,EAAK,KAETmG,KACIhF,EAAK,8LACLnB,EAAK,KAEToG,KACIjF,EAAK,6VACLnB,EAAK,KAETqG,KACIlF,EAAK,wGACLnB,EAAK,KAETsG,KACInF,EAAK,qIACLnB,EAAK,KAETuG,KACIpF,EAAK,oOACLnB,EAAK,KAETwG,KACIrF,EAAK,4FACLnB,EAAK,KAETyG,KACItF,EAAK,4UACLnB,EAAK,KAET0G,KACIvF,EAAK,iKACLnB,EAAK,KAET2G,KACIxF,EAAK,kHACLnB,EAAK,KAET4G,KACIzF,EAAK,0RACLnB,EAAK,KAET6G,KACI1F,EAAK,iTACLnB,EAAK,KAET8G,KACI3F,EAAK,qWAET4F,KACI5F,EAAK,uWAET6F,KACI7F,EAAK,2ZAET8F,KACI9F,EAAK,qcAET+F,KACI/F,EAAK,+YAETgG,KACIhG,EAAK,kZAETiG,KACIjG,EAAK,8YACLnB,EAAK,KAETqH,KACIlG,EAAK,uaACLnB,EAAK,KAETsH,KACInG,EAAK,mZACLnB,EAAK,KAETuH,KACIpG,EAAK,0ZACLnB,EAAK,KAETwH,KACIrG,EAAK,2cACLnB,EAAK,KAETyH,KACItG,EAAK,8bACLnB,EAAK,KAET0H,KACIvG,EAAK,oMACLnB,EAAK,KAET2H,KACIxG,EAAK,iMACLnB,EAAK,KAET4H,KACIzG,EAAK,wPACLnB,EAAK,KAET6H,KACI1G,EAAK,6OACLnB,EAAK,KAET8H,KACI3G,EAAK,8aACLnB,EAAK,KAET+H,KACI5G,EAAK,+TACLnB,EAAK,KAETgI,KACI7G,EAAK,mUACLnB,EAAK,KAETiI,KACI9G,EAAK,uUACLnB,EAAK,KAETkI,KACI/G,EAAK,iaACLnB,EAAK,KAETmI,KACIhH,EAAK,yWACLnB,EAAK,KAEToI,KACIjH,EAAK,mXACLnB,EAAK,KAETqI,KACIlH,EAAK,+SACLnB,EAAK,KAETsI,KACInH,EAAK,yRACLnB,EAAK,KAETuI,KACIpH,EAAK,oVACLnB,EAAK,KAETwI,KACIrH,EAAK,2VACLnB,EAAK,KAETyI,KACItH,EAAK,gUAETuH,KACIvH,EAAK,mRACLnB,EAAK,KAET2I,KACIxH,EAAK,qQACLnB,EAAK,KAET4I,KACIzH,EAAK,2UACLnB,EAAK,KAET6I,KACI1H,EAAK,oVACLnB,EAAK,KAET8I,KACI3H,EAAK,4SACLnB,EAAK,KAET+I,KACI5H,EAAK,kUACLnB,EAAK,KAETgJ,KACI7H,EAAK,2RACLnB,EAAK,KAETiJ,KACI9H,EAAK,oTACLnB,EAAK,KAETkJ,KACI/H,EAAK,kSACLnB,EAAK,KAETmJ,KACIhI,EAAK,uSACLnB,EAAK,KAEToJ,KACIjI,EAAK,yVACLnB,EAAK,KAETqJ,KACIlI,EAAK,oUACLnB,EAAK,KAETsJ,KACInI,EAAK,2KACLnB,EAAK,KAETuJ,KACIpI,EAAK,+KACLnB,EAAK,KAETwJ,KACIrI,EAAK,gOACLnB,EAAK,KAETyJ,KACItI,EAAK,qMACLnB,EAAK,KAET0J,KACIvI,EAAK;AACLnB,EAAK,KAET2J,KACIxI,EAAK,iQACLnB,EAAK,KAET4J,KACIzI,EAAK,+OACLnB,EAAK,KAET6J,KACI1I,EAAK,kSACLnB,EAAK,KAET8J,KACI3I,EAAK,iWACLnB,EAAK,KAET+J,KACI5I,EAAK,0SACLnB,EAAK,KAETgK,KACI7I,EAAK,yQACLnB,EAAK,KAETiK,KACI9I,EAAK,6UACLnB,EAAK,KAETkK,KACI/I,EAAK,2QACLnB,EAAK,KAETmK,KACIhJ,EAAK,gRACLnB,EAAK,KAEToK,KACIjJ,EAAK,iUACLnB,EAAK,KAETqK,KACIlJ,EAAK,sTACLnB,EAAK,KAETsK,KACInJ,EAAK,6ZACLnB,EAAK,KAETuK,KACIpJ,EAAK,uFACLnB,EAAK,IAETwK,KACIrJ,EAAK,0cACLnB,EAAK,KAETyK,KACItJ,EAAK,wWACLnB,EAAK,KAET0K,KACIvJ,EAAK,+TACLnB,EAAK,KAET2K,KACIxJ,EAAK,4SACLnB,EAAK,KAET4K,KACIzJ,EAAK,gKACLnB,EAAK,KAET6K,KACI1J,EAAK,sGACLnB,EAAK,KAET8K,KACI3J,EAAK,4GACLnB,EAAK,KAET+K,KACI5J,EAAK,6DACLnB,EAAK,IAETgL,KACI7J,EAAK,wIACLnB,EAAK,KAETiL,KACI9J,EAAK,8KACLnB,EAAK,KAETkL,KACI/J,EAAK,0LACLnB,EAAK,KAETmL,KACIhK,EAAK,qOACLnB,EAAK,KAEToL,KACIjK,EAAK,wGACLnB,EAAK,KAETqL,KACIlK,EAAK,oIACLnB,EAAK,KAETsL,KACInK,EAAK,0FACLnB,EAAK,IAETuL,KACIpK,EAAK,wGACLnB,EAAK,IAETwL,KACIrK,EAAK,uFACLnB,EAAK,IAETyL,KACItK,EAAK,0MACLnB,EAAK,KAET0L,KACIvK,EAAK,oMACLnB,EAAK,KAET2L,KACIxK,EAAK,4KACLnB,EAAK,KAET4L,KACIzK,EAAK,4JACLnB,EAAK,IAET6L,KACI1K,EAAK,+NACLnB,EAAK,KAET8L,KACI3K,EAAK,0EACLnB,EAAK,KAET+L,KACI5K,EAAK,iLACLnB,EAAK,KAETgM,KACI7K,EAAK,yuBACLnB,EAAK,KAETiM,KACI9K,EAAK,mIACLnB,EAAK,KAETkM,KACI/K,EAAK,yGACLnB,EAAK,KAETmM,KACIhL,EAAK,2HACLnB,EAAK,KAEToM,KACIjL,EAAK,6SACLnB,EAAK,KAETqM,KACIlL,EAAK,uMACLnB,EAAK,KAETsM,KACInL,EAAK,iEACLnB,EAAK,IAETuM,KACIpL,EAAK,4LACLnB,EAAK,KAETwM,KACIrL,EAAK,4UACLnB,EAAK,KAETyM,KACItL,EAAK,qOACLnB,EAAK,KAET0M,KACIvL,EAAK,wQACLnB,EAAK,KAET2M,KACIxL,EAAK,kQACLnB,EAAK,KAET4M,KACIzL,EAAK,qOACLnB,EAAK,KAET6M,KACI1L,EAAK,kOACLnB,EAAK,KAET8M,KACI3L,EAAK,mOACLnB,EAAK,OAsBhB,IAAI+M,gBAAiB,GAEjBC,aAAiB,GACjBC,cAAiB,GAEjBC,cAAiB,EACj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"} \ No newline at end of file +{"version":3,"file":"build/sequence-diagram-min.js","sources":["build/sequence-diagram.js"],"names":["Diagram","this","title","undefined","actors","signals","ParseError","message","hash","_","extend","name","AssertException","assert","exp","getCenterX","box","x","width","getCenterY","y","height","executionMarginLeft","level","EXECUTION_WIDTH","OVERLAPPING_EXECUTION_OFFSET","executionMarginRight","prototype","getActor","alias","trim","i","push","Actor","length","getActorWithAlias","input","s","exec","setTitle","addSignal","signal","index","executionStack","executions","maxExecutionsLevel","Signal","actorA","signaltype","actorB","executionLevelChangeA","executionLevelChangeB","type","linetype","arrowtype","EXECUTION_CHANGE","NONE","Error","changeExecutionLevel","startLevel","endLevel","isSelf","maxExecutionLevel","Math","max","Note","actor","placement","hasManyActors","Execution","startSignal","endSignal","change","INCREASE_LEVEL","newLevel","execution","DECREASE_LEVEL","pop","setEndSignal","isArray","unescape","replace","LINETYPE","SOLID","DOTTED","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","Object","getPrototypeOf","__proto__","object","constructor","parser","Parser","yy","o","k","v","l","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","trace","symbols_","error","start","document","EOF","line","statement","NL","participant","actor_alias","note_statement","note","over","actor_pair",",","left_of","right_of","execution_modifier","LINE","PLUS","ACTOR","DOTLINE","ARROW","OPENARROW","MESSAGE","$accept","$end","terminals_",2,5,8,9,13,15,18,20,21,22,25,26,27,30,31,32,33,"productions_","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","substring","table",3,4,1,6,7,11,12,23,10,14,17,16,24,28,19,29,"defaultActions",40,"parseError","str","recoverable","parse","lex","token","lexer","self","stack","vstack","lstack","recovering","TERROR","args","slice","call","arguments","create","sharedState","hasOwnProperty","setInput","yylloc","yyloc","ranges","options","symbol","preErrorSymbol","state","action","r","p","len","newState","expected","yyval","errStr","showPosition","join","text","match","loc","Array","first_line","last_line","first_column","last_column","range","apply","concat","_input","_more","_backtrack","done","matched","conditionStack","offset","ch","lines","unput","split","substr","oldLines","more","reject","backtrack_lexer","less","n","pastInput","past","upcomingInput","next","pre","c","test_match","indexed_rule","backup","matches","tempMatch","rules","_currentRules","flex","begin","condition","popState","conditions","INITIAL","topState","abs","pushState","stateStackSize","case-insensitive","yy_","$avoiding_name_collisions","YY_START","inclusive","require","exports","main","console","log","process","exit","source","readFileSync","normalize","module","argv","diagram","Raphael","registerFont","w","face","font-family","font-weight","font-stretch","units-per-em","panose-1","ascent","descent","x-height","bbox","underline-thickness","underline-position","unicode-range","glyphs"," ","\t","\r","!","d","\"","#","%","&","'","(",")","*","+","-",".","/","0",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","`","a","b","e","f","g","h","j","m","q","t","u","z","{","|","}","~"," ","¡","¢","£","¤","€","¥","§","¨","©","ª","«","¬","®","¯","°","±","´","¶","¸","º","»","¿","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","÷","ø","ù","ú","û","ü","ÿ","ı","Œ","œ","Ÿ","ƒ","ˆ","ˇ","˘","˙","˚","˛","˜","˝","–","—","‘","’","‚","“","”","„","†","‡","•","…","‰","‹","›","⁄","™","∆","∙","√","∞","∫","≈","≠","≤","≥","◊","DIAGRAM_MARGIN","ACTOR_MARGIN","ACTOR_PADDING","SIGNAL_MARGIN","SIGNAL_PADDING","NOTE_MARGIN","NOTE_PADDING","NOTE_OVERLAP","TITLE_MARGIN","TITLE_PADDING","SELF_SIGNAL_WIDTH","stroke","stroke-width","RECT","fill","EXECUTION_RECT","toString","String","fn","x1","y1","x2","y2","every","isFinite","path","wobble","sqrt","r1","random","r2","xfactor","yfactor","p1","p2","text_bbox","font","_obj","print_center","attr","bb","getBBox","remove","handRect","handLine","string","size","letter_spacing","print","dx","dy","matrix","translate","mapPath","BaseTheme","init","_paper","_font","_title","_actors_height","_signals_height","arrow_types","line_types","init_paper","container","init_font","draw_line","draw_rect","rect","draw","layout","title_height","setStart","setSize","draw_title","draw_actors","draw_executions","draw_signals","setFinish","actor_ensure_distance","padding_right","distances","paper","text_bb","each","extra_width","min","actors_x","distance","draw_text_box","offsetY","draw_actor","aX","startY","endY","draw_actors_executions","draw_self_signal","draw_signal","draw_note","draw_text","stroke-dasharray","bX","arrow-end","overlap","toFront","margin","padding","RaphaelTheme","font-size","HandRaphaelTheme","getFont","themes","simple","hand","drawSVG","default_options","theme","defaults","drawing","jQuery","sequenceDiagram","$this","html","root","global"],"mappings":"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,EAAK,mIACLnB,EAAK,IAETkC,KACIf,EAAK,wKACLnB,EAAK,KAETmC,KACIhB,EAAK,qIACLnB,EAAK,KAEToC,KACIjB,EAAK,sMACLnB,EAAK,KAETqC,KACIlB,EAAK,gLACLnB,EAAK,KAETsC,KACInB,EAAK,iQACLnB,EAAK,KAETuC,KACIpB,EAAK,sXACLnB,EAAK,KAETwC,GACIrB,EAAK,+WACLnB,EAAK,KAETyC,GACItB,EAAK,ioBACLnB,EAAK,KAET0C,GACIvB,EAAK,yQACLnB,EAAK,KAET2C,GACIxB,EAAK,msBACLnB,EAAK,KAET4C,GACIzB,EAAK,wXACLnB,EAAK,KAET6C,GACI1B,EAAK,+TACLnB,EAAK,KAET8C,GACI3B,EAAK,qVACLnB,EAAK,KAET+C,GACI5B,EAAK,+RACLnB,EAAK,KAETgD,GACI7B,EAAK,uHACLnB,EAAK,IAETiD,GACI9B,EAAK,iLACLnB,EAAK,KAETkD,GACI/B,EAAK,iVACLnB,EAAK,KAETmD,GACIhC,EAAK,iNACLnB,EAAK,KAEToD,GACIjC,EAAK,iWACLnB,EAAK,KAETqD,GACIlC,EAAK,2PACLnB,EAAK,KAETsD,GACInC,EAAK,8SACLnB,EAAK,KAETuD,GACIpC,EAAK,sUACLnB,EAAK,KAETwD,GACIrC,EAAK;AACLnB,EAAK,KAETyD,GACItC,EAAK,4bACLnB,EAAK,KAET0D,GACIvC,EAAK,4TACLnB,EAAK,KAET2D,GACIxC,EAAK,oPACLnB,EAAK,KAET4D,GACIzC,EAAK,0RACLnB,EAAK,KAET6D,GACI1C,EAAK,4QACLnB,EAAK,KAET8D,GACI3C,EAAK,0WACLnB,EAAK,KAET+D,GACI5C,EAAK,4RACLnB,EAAK,KAETgE,GACI7C,EAAK,oNACLnB,EAAK,KAETiE,GACI9C,EAAK,uRACLnB,EAAK,KAETkE,KACI/C,EAAK,8LACLnB,EAAK,KAETmE,MACIhD,EAAK,yHACLnB,EAAK,KAEToE,KACIjD,EAAK,qOACLnB,EAAK,KAETqE,KACIlD,EAAK,4HACLnB,EAAK,KAETjS,GACIoT,EAAK,sGACLnB,EAAK,KAETsE,KACInD,EAAK,uFACLnB,EAAK,KAETuE,GACIpD,EAAK,6KACLnB,EAAK,KAETwE,GACIrD,EAAK,4VACLnB,EAAK,KAETtC,GACIyD,EAAK,qJACLnB,EAAK,KAETmB,GACIA,EAAK,yOACLnB,EAAK,KAETyE,GACItD,EAAK,+OACLnB,EAAK,KAET0E,GACIvD,EAAK,qQACLnB,EAAK,KAET2E,GACIxD,EAAK,wXACLnB,EAAK,KAET4E,GACIzD,EAAK,uQACLnB,EAAK,KAET3Q,GACI8R,EAAK,kJACLnB,EAAK,IAET6E,GACI1D,EAAK,4MACLnB,EAAK,KAETrM,GACIwN,EAAK,6PACLnB,EAAK,KAETnM,GACIsN,EAAK,sHACLnB,EAAK,KAET8E,GACI3D,EAAK,wRACLnB,EAAK,KAET5C,GACI+D,EAAK,yJACLnB,EAAK,KAETtM,GACIyN,EAAK,uJACLnB,EAAK,KAEThF,GACImG,EAAK,uTACLnB,EAAK,KAET+E,GACI5D,EAAK,wRACLnB,EAAK,KAETjF,GACIoG,EAAK,kJACLnB,EAAK,KAETrQ,GACIwR,EAAK,wPACLnB,EAAK,KAETgF,GACI7D,EAAK,+OACLnB,EAAK,KAETiF,GACI9D,EAAK,yKACLnB,EAAK,KAETpM,GACIuN,EAAK,qJACLnB,EAAK,KAETA,GACImB,EAAK,mOACLnB,EAAK,KAETzR,GACI4S,EAAK,+PACLnB,EAAK,KAETtR,GACIyS,EAAK,6PACLnB,EAAK,KAETkF,GACI/D,EAAK,8NACLnB,EAAK,KAETmF,KACIhE,EAAK,sTACLnB,EAAK,KAEToF,KACIjE,EAAK,mIACLnB,EAAK,IAETqF,KACIlE,EAAK,mQACLnB,EAAK,KAETsF,KACInE,EAAK,kKACLnB,EAAK,KAETuF,KACIvF,EAAK,KAETwF,KACIrE,EAAK,+MACLnB,EAAK,IAETyF,KACItE,EAAK,+QACLnB,EAAK,KAET0F,KACIvE,EAAK,uZACLnB,EAAK,KAET2F,KACIxE,EAAK,4YACLnB,EAAK,KAET4F,KACIzE,EAAK,4YACLnB,EAAK,KAET6F,KACI1E,EAAK,qaACLnB,EAAK,KAET8F,KACI3E,EAAK,oVACLnB,EAAK,KAET+F,KACI5E,EAAK,mIACLnB,EAAK,KAETgG,KACI7E,EAAK,6TACLnB,EAAK,KAETiG,KACI9E,EAAK,uIACLnB,EAAK,KAETkG,KACI/E,EAAK,+SACLnB,EAAK,KAETmG,KACIhF,EAAK,8LACLnB,EAAK,KAEToG,KACIjF,EAAK,6VACLnB,EAAK,KAETqG,KACIlF,EAAK,wGACLnB,EAAK,KAETsG,KACInF,EAAK,qIACLnB,EAAK,KAETuG,KACIpF,EAAK,oOACLnB,EAAK,KAETwG,KACIrF,EAAK,4FACLnB,EAAK,KAETyG,KACItF,EAAK,4UACLnB,EAAK,KAET0G,KACIvF,EAAK,iKACLnB,EAAK,KAET2G,KACIxF,EAAK,kHACLnB,EAAK,KAET4G,KACIzF,EAAK,0RACLnB,EAAK,KAET6G,KACI1F,EAAK,iTACLnB,EAAK,KAET8G,KACI3F,EAAK,qWAET4F,KACI5F,EAAK,uWAET6F,KACI7F,EAAK,2ZAET8F,KACI9F,EAAK,qcAET+F,KACI/F,EAAK,+YAETgG,KACIhG,EAAK,kZAETiG,KACIjG,EAAK,8YACLnB,EAAK,KAETqH,KACIlG,EAAK,uaACLnB,EAAK,KAETsH,KACInG,EAAK,mZACLnB,EAAK,KAETuH,KACIpG,EAAK,0ZACLnB,EAAK,KAETwH,KACIrG,EAAK,2cACLnB,EAAK,KAETyH,KACItG,EAAK,8bACLnB,EAAK,KAET0H,KACIvG,EAAK,oMACLnB,EAAK,KAET2H,KACIxG,EAAK,iMACLnB,EAAK,KAET4H,KACIzG,EAAK,wPACLnB,EAAK,KAET6H,KACI1G,EAAK,6OACLnB,EAAK,KAET8H,KACI3G,EAAK,8aACLnB,EAAK,KAET+H,KACI5G,EAAK,+TACLnB,EAAK,KAETgI,KACI7G,EAAK,mUACLnB,EAAK,KAETiI,KACI9G,EAAK,uUACLnB,EAAK,KAETkI,KACI/G,EAAK,iaACLnB,EAAK,KAETmI,KACIhH,EAAK,yWACLnB,EAAK,KAEToI,KACIjH,EAAK,mXACLnB,EAAK,KAETqI,KACIlH,EAAK,+SACLnB,EAAK,KAETsI,KACInH,EAAK,yRACLnB,EAAK,KAETuI,KACIpH,EAAK,oVACLnB,EAAK,KAETwI,KACIrH,EAAK,2VACLnB,EAAK,KAETyI,KACItH,EAAK,gUAETuH,KACIvH,EAAK,mRACLnB,EAAK,KAET2I,KACIxH,EAAK,qQACLnB,EAAK,KAET4I,KACIzH,EAAK,2UACLnB,EAAK,KAET6I,KACI1H,EAAK,oVACLnB,EAAK,KAET8I,KACI3H,EAAK,4SACLnB,EAAK,KAET+I,KACI5H,EAAK,kUACLnB,EAAK,KAETgJ,KACI7H,EAAK,2RACLnB,EAAK,KAETiJ,KACI9H,EAAK,oTACLnB,EAAK,KAETkJ,KACI/H,EAAK,kSACLnB,EAAK,KAETmJ,KACIhI,EAAK,uSACLnB,EAAK,KAEToJ,KACIjI,EAAK,yVACLnB,EAAK,KAETqJ,KACIlI,EAAK,oUACLnB,EAAK,KAETsJ,KACInI,EAAK,2KACLnB,EAAK,KAETuJ,KACIpI,EAAK,+KACLnB,EAAK,KAETwJ,KACIrI,EAAK,gOACLnB,EAAK,KAETyJ,KACItI,EAAK,qMACLnB,EAAK,KAET0J,KACIvI,EAAK;AACLnB,EAAK,KAET2J,KACIxI,EAAK,iQACLnB,EAAK,KAET4J,KACIzI,EAAK,+OACLnB,EAAK,KAET6J,KACI1I,EAAK,kSACLnB,EAAK,KAET8J,KACI3I,EAAK,iWACLnB,EAAK,KAET+J,KACI5I,EAAK,0SACLnB,EAAK,KAETgK,KACI7I,EAAK,yQACLnB,EAAK,KAETiK,KACI9I,EAAK,6UACLnB,EAAK,KAETkK,KACI/I,EAAK,2QACLnB,EAAK,KAETmK,KACIhJ,EAAK,gRACLnB,EAAK,KAEToK,KACIjJ,EAAK,iUACLnB,EAAK,KAETqK,KACIlJ,EAAK,sTACLnB,EAAK,KAETsK,KACInJ,EAAK,6ZACLnB,EAAK,KAETuK,KACIpJ,EAAK,uFACLnB,EAAK,IAETwK,KACIrJ,EAAK,0cACLnB,EAAK,KAETyK,KACItJ,EAAK,wWACLnB,EAAK,KAET0K,KACIvJ,EAAK,+TACLnB,EAAK,KAET2K,KACIxJ,EAAK,4SACLnB,EAAK,KAET4K,KACIzJ,EAAK,gKACLnB,EAAK,KAET6K,KACI1J,EAAK,sGACLnB,EAAK,KAET8K,KACI3J,EAAK,4GACLnB,EAAK,KAET+K,KACI5J,EAAK,6DACLnB,EAAK,IAETgL,KACI7J,EAAK,wIACLnB,EAAK,KAETiL,KACI9J,EAAK,8KACLnB,EAAK,KAETkL,KACI/J,EAAK,0LACLnB,EAAK,KAETmL,KACIhK,EAAK,qOACLnB,EAAK,KAEToL,KACIjK,EAAK,wGACLnB,EAAK,KAETqL,KACIlK,EAAK,oIACLnB,EAAK,KAETsL,KACInK,EAAK,0FACLnB,EAAK,IAETuL,KACIpK,EAAK,wGACLnB,EAAK,IAETwL,KACIrK,EAAK,uFACLnB,EAAK,IAETyL,KACItK,EAAK,0MACLnB,EAAK,KAET0L,KACIvK,EAAK,oMACLnB,EAAK,KAET2L,KACIxK,EAAK,4KACLnB,EAAK,KAET4L,KACIzK,EAAK,4JACLnB,EAAK,IAET6L,KACI1K,EAAK,+NACLnB,EAAK,KAET8L,KACI3K,EAAK,0EACLnB,EAAK,KAET+L,KACI5K,EAAK,iLACLnB,EAAK,KAETgM,KACI7K,EAAK,yuBACLnB,EAAK,KAETiM,KACI9K,EAAK,mIACLnB,EAAK,KAETkM,KACI/K,EAAK,yGACLnB,EAAK,KAETmM,KACIhL,EAAK,2HACLnB,EAAK,KAEToM,KACIjL,EAAK,6SACLnB,EAAK,KAETqM,KACIlL,EAAK,uMACLnB,EAAK,KAETsM,KACInL,EAAK,iEACLnB,EAAK,IAETuM,KACIpL,EAAK,4LACLnB,EAAK,KAETwM,KACIrL,EAAK,4UACLnB,EAAK,KAETyM,KACItL,EAAK,qOACLnB,EAAK,KAET0M,KACIvL,EAAK,wQACLnB,EAAK,KAET2M,KACIxL,EAAK,kQACLnB,EAAK,KAET4M,KACIzL,EAAK,qOACLnB,EAAK,KAET6M,KACI1L,EAAK,kOACLnB,EAAK,KAET8M,KACI3L,EAAK,mOACLnB,EAAK,OAsBhB,IAAI+M,gBAAiB,GAEjBC,aAAiB,GACjBC,cAAiB,GAEjBC,cAAiB,EACj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"} \ No newline at end of file diff --git a/src/diagram.js b/src/diagram.js index 5bccc79..3c7f9b7 100644 --- a/src/diagram.js +++ b/src/diagram.js @@ -75,13 +75,13 @@ this.index = null; // If this is a self-signal and an Execution level modifier was only applied to the // left-hand side of the signal, move it to the right-hand side to prevent rendering issues. - if (actorA === actorB && executionLevelChangeB === Diagram.EXECUTION_LVL_CHANGE.UNCHANGED) { + if (actorA === actorB && executionLevelChangeB === Diagram.EXECUTION_CHANGE.NONE) { executionLevelChangeB = executionLevelChangeA; - executionLevelChangeA = Diagram.EXECUTION_LVL_CHANGE.UNCHANGED; + executionLevelChangeA = Diagram.EXECUTION_CHANGE.NONE; } if (actorA === actorB && executionLevelChangeA === executionLevelChangeB && - executionLevelChangeA !== Diagram.EXECUTION_LVL_CHANGE.UNCHANGED) { + executionLevelChangeA !== Diagram.EXECUTION_CHANGE.NONE) { throw new Error("You cannot move the Execution nesting level in the same " + "direction twice on a single self-signal."); } @@ -126,9 +126,9 @@ Diagram.Actor.prototype.changeExecutionLevel = function(change, signal) { switch (change) { - case Diagram.EXECUTION_LVL_CHANGE.UNCHANGED: + case Diagram.EXECUTION_CHANGE.NONE: break; - case Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL: + case Diagram.EXECUTION_CHANGE.INCREASE: var newLevel = this.executionStack.length; this.maxExecutionsLevel = Math.max(this.maxExecutionsLevel, newLevel); @@ -136,7 +136,7 @@ this.executionStack.push(execution); this.executions.push(execution); break; - case Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL: + case Diagram.EXECUTION_CHANGE.DECREASE: if (this.executionStack.length > 0) { this.executionStack.pop().setEndSignal(signal); } else { @@ -176,10 +176,10 @@ OVER : 2 }; - Diagram.EXECUTION_LVL_CHANGE = { - UNCHANGED : 0, - INCREASE_LEVEL : 1, - DECREASE_LEVEL : -1 + Diagram.EXECUTION_CHANGE = { + NONE : 0, + INCREASE : 1, + DECREASE : 2 }; diff --git a/src/grammar.ebnf b/src/grammar.ebnf index 28f013e..55387a5 100644 --- a/src/grammar.ebnf +++ b/src/grammar.ebnf @@ -21,5 +21,5 @@ statement ::= /* message ::= [^\n]+ -actor ::= [^\->:\n,]+ +actor ::= [^\->:\n,+]+ */ \ No newline at end of file diff --git a/src/grammar.jison b/src/grammar.jison index c746073..73de434 100644 --- a/src/grammar.jison +++ b/src/grammar.jison @@ -82,9 +82,9 @@ signal ; execution_modifier - : /* empty */ { $$ = Diagram.EXECUTION_LVL_CHANGE.UNCHANGED } - | LINE { $$ = Diagram.EXECUTION_LVL_CHANGE.DECREASE_LEVEL } - | PLUS { $$ = Diagram.EXECUTION_LVL_CHANGE.INCREASE_LEVEL } + : /* empty */ { $$ = Diagram.EXECUTION_CHANGE.NONE } + | LINE { $$ = Diagram.EXECUTION_CHANGE.DECREASE } + | PLUS { $$ = Diagram.EXECUTION_CHANGE.INCREASE } ; actor diff --git a/src/sequence-diagram.js b/src/sequence-diagram.js index 2e4e273..b4942b7 100644 --- a/src/sequence-diagram.js +++ b/src/sequence-diagram.js @@ -93,17 +93,15 @@ function executionMarginLeft(level) { if (level < 0) { return 0; - } else { - return -EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } + return -EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } function executionMarginRight(level) { if (level < 0) { return 0; - } else { - return EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } + return EXECUTION_WIDTH * 0.5 + level * OVERLAPPING_EXECUTION_OFFSET; } /******************