cullmann.io/themes/blowfish/assets/lib/mermaid/add-html-label-f3a0bd34.js.map

1 line
122 KiB
Plaintext

{"version":3,"file":"add-html-label-f3a0bd34.js","sources":["../src/diagrams/flowchart/parser/flow.jison","../src/diagrams/flowchart/flowDb.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/util.js","../../../node_modules/.pnpm/dagre-d3-es@7.0.9/node_modules/dagre-d3-es/src/dagre-js/label/add-html-label.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2015 Knut Sveidqvist\n * MIT license.\n */\n\n/* lexical grammar */\n%lex\n%x string\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x dir\n%x vertex\n%x click\n%x href\n%x callbackname\n%x callbackargs\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n%%\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n<open_directive>((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n<type_directive>\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n<type_directive,arg_directive>\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n<arg_directive>((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n<acc_title>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n<acc_descr>(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\");}\n<acc_descr_multiline>[\\}] { this.popState(); }\n<acc_descr_multiline>[^\\}]* return \"acc_descr_multiline_value\";\n// <acc_descr_multiline>.*[^\\n]* { return \"acc_descr_line\"}\n[\"] this.begin(\"string\");\n<string>[\"] this.popState();\n<string>[^\"]* return \"STR\";\n\"style\" return 'STYLE';\n\"default\" return 'DEFAULT';\n\"linkStyle\" return 'LINKSTYLE';\n\"interpolate\" return 'INTERPOLATE';\n\"classDef\" return 'CLASSDEF';\n\"class\" return 'CLASS';\n\n/*\n---interactivity command---\n'href' adds a link to the specified node. 'href' can only be specified when the\nline was introduced with 'click'.\n'href \"<link>\"' attaches the specified link to the node that was specified by 'click'.\n*/\n\"href\"[\\s]+[\"] this.begin(\"href\");\n<href>[\"] this.popState();\n<href>[^\"]* return 'HREF';\n\n/*\n---interactivity command---\n'call' adds a callback to the specified node. 'call' can only be specified when\nthe line was introduced with 'click'.\n'call <callbackname>(<args>)' attaches the function 'callbackname' with the specified\narguments to the node that was specified by 'click'.\nFunction arguments are optional: 'call <callbackname>()' simply executes 'callbackname' without any arguments.\n*/\n\"call\"[\\s]+ this.begin(\"callbackname\");\n<callbackname>\\([\\s]*\\) this.popState();\n<callbackname>\\( this.popState(); this.begin(\"callbackargs\");\n<callbackname>[^(]* return 'CALLBACKNAME';\n<callbackargs>\\) this.popState();\n<callbackargs>[^)]* return 'CALLBACKARGS';\n\n/*\n'click' is the keyword to introduce a line that contains interactivity commands.\n'click' must be followed by an existing node-id. All commands are attached to\nthat id.\n'click <id>' can be followed by href or call commands in any desired order\n*/\n\"click\"[\\s]+ this.begin(\"click\");\n<click>[\\s\\n] this.popState();\n<click>[^\\s\\n]* return 'CLICK';\n\n\"flowchart-elk\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"graph\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"flowchart\" {if(yy.lex.firstGraph()){this.begin(\"dir\");} return 'GRAPH';}\n\"subgraph\" return 'subgraph';\n\"end\"\\b\\s* return 'end';\n\n\"_self\" return 'LINK_TARGET';\n\"_blank\" return 'LINK_TARGET';\n\"_parent\" return 'LINK_TARGET';\n\"_top\" return 'LINK_TARGET';\n\n<dir>(\\r?\\n)*\\s*\\n { this.popState(); return 'NODIR'; }\n<dir>\\s*\"LR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"RL\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TB\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"BT\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"TD\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"BR\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"<\" { this.popState(); return 'DIR'; }\n<dir>\\s*\">\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"^\" { this.popState(); return 'DIR'; }\n<dir>\\s*\"v\" { this.popState(); return 'DIR'; }\n\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n\n[0-9]+ { return 'NUM';}\n\\# return 'BRKT';\n\":::\" return 'STYLE_SEPARATOR';\n\":\" return 'COLON';\n\"&\" return 'AMP';\n\";\" return 'SEMI';\n\",\" return 'COMMA';\n\"*\" return 'MULT';\n\\s*[xo<]?\\-\\-+[-xo>]\\s* return 'LINK';\n\\s*[xo<]?\\=\\=+[=xo>]\\s* return 'LINK';\n\\s*[xo<]?\\-?\\.+\\-[xo>]?\\s* return 'LINK';\n\\s*\\~\\~[\\~]+\\s* return 'LINK';\n\\s*[xo<]?\\-\\-\\s* return 'START_LINK';\n\\s*[xo<]?\\=\\=\\s* return 'START_LINK';\n\\s*[xo<]?\\-\\.\\s* return 'START_LINK';\n\"(-\" return '(-';\n\"-)\" return '-)';\n\"([\" return 'STADIUMSTART';\n\"])\" return 'STADIUMEND';\n\"[[\" return 'SUBROUTINESTART';\n\"]]\" return 'SUBROUTINEEND';\n\"[|\" return 'VERTEX_WITH_PROPS_START';\n\"[(\" return 'CYLINDERSTART';\n\")]\" return 'CYLINDEREND';\n\"(((\" return 'DOUBLECIRCLESTART';\n\")))\" return 'DOUBLECIRCLEEND';\n\\- return 'MINUS';\n\".\" return 'DOT';\n[\\_] return 'UNDERSCORE';\n\\+ return 'PLUS';\n\\% return 'PCT';\n\"=\" return 'EQUALS';\n\\= return 'EQUALS';\n\"<\" return 'TAGSTART';\n\">\" return 'TAGEND';\n\"^\" return 'UP';\n\"\\|\" return 'SEP';\n\"v\" return 'DOWN';\n[A-Za-z]+ return 'ALPHA';\n\"\\\\]\" return 'TRAPEND';\n\"[/\" return 'TRAPSTART';\n\"/]\" return 'INVTRAPEND';\n\"[\\\\\" return 'INVTRAPSTART';\n[!\"#$%&'*+,-.`?\\\\_/] return 'PUNCTUATION';\n[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|\n[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|\n[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|\n[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|\n[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|\n[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|\n[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|\n[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|\n[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|\n[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|\n[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|\n[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|\n[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|\n[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|\n[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|\n[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|\n[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|\n[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|\n[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|\n[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|\n[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|\n[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|\n[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|\n[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|\n[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|\n[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|\n[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|\n[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|\n[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|\n[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|\n[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|\n[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|\n[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|\n[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|\n[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|\n[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|\n[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|\n[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|\n[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|\n[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|\n[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|\n[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|\n[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|\n[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|\n[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|\n[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|\n[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|\n[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|\n[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|\n[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|\n[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|\n[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|\n[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|\n[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|\n[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|\n[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|\n[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|\n[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|\n[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|\n[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|\n[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]\n return 'UNICODE_TEXT';\n\"|\" return 'PIPE';\n\"(\" return 'PS';\n\")\" return 'PE';\n\"[\" return 'SQS';\n\"]\" return 'SQE';\n\"{\" return 'DIAMOND_START'\n\"}\" return 'DIAMOND_STOP'\n\"\\\"\" return 'QUOTE';\n(\\r?\\n)+ return 'NEWLINE';\n\\s return 'SPACE';\n<<EOF>> return 'EOF';\n\n/lex\n\n/* operator associations and precedence */\n\n%left '^'\n\n%start start\n\n%% /* language grammar */\n\nstart\n : mermaidDoc\n | directive start\n ;\n\ndirective\n : openDirective typeDirective closeDirective separator\n | openDirective typeDirective ':' argDirective closeDirective separator\n ;\n\nopenDirective\n : open_directive { yy.parseDirective('%%{', 'open_directive'); }\n ;\n\ntypeDirective\n : type_directive { yy.parseDirective($1, 'type_directive'); }\n ;\n\nargDirective\n : arg_directive { $1 = $1.trim().replace(/'/g, '\"'); yy.parseDirective($1, 'arg_directive'); }\n ;\n\ncloseDirective\n : close_directive { yy.parseDirective('}%%', 'close_directive', 'flowchart'); }\n ;\n\nmermaidDoc\n : graphConfig document\n ;\n\ndocument\n\t: /* empty */\n\t{ $$ = [];}\n\t| document line\n\t{\n\t if(!Array.isArray($2) || $2.length > 0){\n\t $1.push($2);\n\t }\n\t $$=$1;}\n\t;\n\nline\n\t: statement\n\t{$$=$1;}\n\t| SEMI\n\t| NEWLINE\n\t| SPACE\n\t| EOF\n\t;\n\ngraphConfig\n : SPACE graphConfig\n | NEWLINE graphConfig\n | GRAPH NODIR\n { yy.setDirection('TB');$$ = 'TB';}\n | GRAPH DIR FirstStmtSeperator\n { yy.setDirection($2);$$ = $2;}\n // | GRAPH SPACE TAGEND FirstStmtSeperator\n // { yy.setDirection(\"LR\");$$ = $3;}\n // | GRAPH SPACE TAGSTART FirstStmtSeperator\n // { yy.setDirection(\"RL\");$$ = $3;}\n // | GRAPH SPACE UP FirstStmtSeperator\n // { yy.setDirection(\"BT\");$$ = $3;}\n // | GRAPH SPACE DOWN FirstStmtSeperator\n // { yy.setDirection(\"TB\");$$ = $3;}\n ;\n\nending: endToken ending\n | endToken\n ;\n\nendToken: NEWLINE | SPACE | EOF;\n\nFirstStmtSeperator\n : SEMI | NEWLINE | spaceList NEWLINE ;\n\n\nspaceListNewline\n : SPACE spaceListNewline\n | NEWLINE spaceListNewline\n | NEWLINE\n | SPACE\n ;\n\n\nspaceList\n : SPACE spaceList\n | SPACE\n ;\n\nstatement\n : verticeStatement separator\n { /* console.warn('finat vs', $1.nodes); */ $$=$1.nodes}\n | styleStatement separator\n {$$=[];}\n | linkStyleStatement separator\n {$$=[];}\n | classDefStatement separator\n {$$=[];}\n | classStatement separator\n {$$=[];}\n | clickStatement separator\n {$$=[];}\n | subgraph SPACE text SQS text SQE separator document end\n {$$=yy.addSubGraph($3,$8,$5);}\n | subgraph SPACE text separator document end\n {$$=yy.addSubGraph($3,$5,$3);}\n // | subgraph SPACE text separator document end\n // {$$=yy.addSubGraph($3,$5,$3);}\n | subgraph separator document end\n {$$=yy.addSubGraph(undefined,$3,undefined);}\n | direction\n | acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); }\n | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }\n | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); }\n ;\n\nseparator: NEWLINE | SEMI | EOF ;\n\n\nverticeStatement: verticeStatement link node\n { /* console.warn('vs',$1.stmt,$3); */ yy.addLink($1.stmt,$3,$2); $$ = { stmt: $3, nodes: $3.concat($1.nodes) } }\n | verticeStatement link node spaceList\n { /* console.warn('vs',$1.stmt,$3); */ yy.addLink($1.stmt,$3,$2); $$ = { stmt: $3, nodes: $3.concat($1.nodes) } }\n |node spaceList {/*console.warn('noda', $1);*/ $$ = {stmt: $1, nodes:$1 }}\n |node { /*console.warn('noda', $1);*/ $$ = {stmt: $1, nodes:$1 }}\n ;\n\nnode: vertex\n { /* console.warn('nod', $1); */ $$ = [$1];}\n | node spaceList AMP spaceList vertex\n { $$ = $1.concat($5); /* console.warn('pip', $1[0], $5, $$); */ }\n | vertex STYLE_SEPARATOR idString\n {$$ = [$1];yy.setClass($1,$3)}\n ;\n\nvertex: idString SQS text SQE\n {$$ = $1;yy.addVertex($1,$3,'square');}\n | idString DOUBLECIRCLESTART text DOUBLECIRCLEEND\n {$$ = $1;yy.addVertex($1,$3,'doublecircle');}\n | idString PS PS text PE PE\n {$$ = $1;yy.addVertex($1,$4,'circle');}\n | idString '(-' text '-)'\n {$$ = $1;yy.addVertex($1,$3,'ellipse');}\n | idString STADIUMSTART text STADIUMEND\n {$$ = $1;yy.addVertex($1,$3,'stadium');}\n | idString SUBROUTINESTART text SUBROUTINEEND\n {$$ = $1;yy.addVertex($1,$3,'subroutine');}\n | idString VERTEX_WITH_PROPS_START ALPHA COLON ALPHA PIPE text SQE\n {$$ = $1;yy.addVertex($1,$7,'rect',undefined,undefined,undefined, Object.fromEntries([[$3, $5]]));}\n | idString CYLINDERSTART text CYLINDEREND\n {$$ = $1;yy.addVertex($1,$3,'cylinder');}\n | idString PS text PE\n {$$ = $1;yy.addVertex($1,$3,'round');}\n | idString DIAMOND_START text DIAMOND_STOP\n {$$ = $1;yy.addVertex($1,$3,'diamond');}\n | idString DIAMOND_START DIAMOND_START text DIAMOND_STOP DIAMOND_STOP\n {$$ = $1;yy.addVertex($1,$4,'hexagon');}\n | idString TAGEND text SQE\n {$$ = $1;yy.addVertex($1,$3,'odd');}\n | idString TRAPSTART text TRAPEND\n {$$ = $1;yy.addVertex($1,$3,'trapezoid');}\n | idString INVTRAPSTART text INVTRAPEND\n {$$ = $1;yy.addVertex($1,$3,'inv_trapezoid');}\n | idString TRAPSTART text INVTRAPEND\n {$$ = $1;yy.addVertex($1,$3,'lean_right');}\n | idString INVTRAPSTART text TRAPEND\n {$$ = $1;yy.addVertex($1,$3,'lean_left');}\n | idString\n { /*console.warn('h: ', $1);*/$$ = $1;yy.addVertex($1);}\n ;\n\n\n\nlink: linkStatement arrowText\n {$1.text = $2;$$ = $1;}\n | linkStatement TESTSTR SPACE\n {$1.text = $2;$$ = $1;}\n | linkStatement arrowText SPACE\n {$1.text = $2;$$ = $1;}\n | linkStatement\n {$$ = $1;}\n | START_LINK text LINK\n {var inf = yy.destructLink($3, $1); $$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length,\"text\":$2};}\n ;\n\nlinkStatement: LINK\n {var inf = yy.destructLink($1);$$ = {\"type\":inf.type,\"stroke\":inf.stroke,\"length\":inf.length};}\n ;\n\narrowText:\n PIPE text PIPE\n {$$ = $2;}\n ;\n\ntext: textToken\n {$$=$1;}\n | text textToken\n {$$=$1+''+$2;}\n | STR\n {$$=$1;}\n ;\n\n\n\nkeywords\n : STYLE | LINKSTYLE | CLASSDEF | CLASS | CLICK | GRAPH | DIR | subgraph | end | DOWN | UP;\n\n\ntextNoTags: textNoTagsToken\n {$$=$1;}\n | textNoTags textNoTagsToken\n {$$=$1+''+$2;}\n ;\n\n\nclassDefStatement:CLASSDEF SPACE DEFAULT SPACE stylesOpt\n {$$ = $1;yy.addClass($3,$5);}\n | CLASSDEF SPACE alphaNum SPACE stylesOpt\n {$$ = $1;yy.addClass($3,$5);}\n ;\n\nclassStatement:CLASS SPACE alphaNum SPACE alphaNum\n {$$ = $1;yy.setClass($3, $5);}\n ;\n\nclickStatement\n : CLICK CALLBACKNAME {$$ = $1;yy.setClickEvent($1, $2);}\n | CLICK CALLBACKNAME SPACE STR {$$ = $1;yy.setClickEvent($1, $2);yy.setTooltip($1, $4);}\n | CLICK CALLBACKNAME CALLBACKARGS {$$ = $1;yy.setClickEvent($1, $2, $3);}\n | CLICK CALLBACKNAME CALLBACKARGS SPACE STR {$$ = $1;yy.setClickEvent($1, $2, $3);yy.setTooltip($1, $5);}\n | CLICK HREF {$$ = $1;yy.setLink($1, $2);}\n | CLICK HREF SPACE STR {$$ = $1;yy.setLink($1, $2);yy.setTooltip($1, $4);}\n | CLICK HREF SPACE LINK_TARGET {$$ = $1;yy.setLink($1, $2, $4);}\n | CLICK HREF SPACE STR SPACE LINK_TARGET {$$ = $1;yy.setLink($1, $2, $6);yy.setTooltip($1, $4);}\n | CLICK alphaNum {$$ = $1;yy.setClickEvent($1, $2);}\n | CLICK alphaNum SPACE STR {$$ = $1;yy.setClickEvent($1, $2);yy.setTooltip($1, $4);}\n | CLICK STR {$$ = $1;yy.setLink($1, $2);}\n | CLICK STR SPACE STR {$$ = $1;yy.setLink($1, $2);yy.setTooltip($1, $4);}\n | CLICK STR SPACE LINK_TARGET {$$ = $1;yy.setLink($1, $2, $4);}\n | CLICK STR SPACE STR SPACE LINK_TARGET {$$ = $1;yy.setLink($1, $2, $6);yy.setTooltip($1, $4);}\n ;\n\nstyleStatement:STYLE SPACE alphaNum SPACE stylesOpt\n {$$ = $1;yy.addVertex($3,undefined,undefined,$5);}\n | STYLE SPACE HEX SPACE stylesOpt\n {$$ = $1;yy.updateLink($3,$5);}\n ;\n\nlinkStyleStatement\n : LINKSTYLE SPACE DEFAULT SPACE stylesOpt\n {$$ = $1;yy.updateLink([$3],$5);}\n | LINKSTYLE SPACE numList SPACE stylesOpt\n {$$ = $1;yy.updateLink($3,$5);}\n | LINKSTYLE SPACE DEFAULT SPACE INTERPOLATE SPACE alphaNum SPACE stylesOpt\n {$$ = $1;yy.updateLinkInterpolate([$3],$7);yy.updateLink([$3],$9);}\n | LINKSTYLE SPACE numList SPACE INTERPOLATE SPACE alphaNum SPACE stylesOpt\n {$$ = $1;yy.updateLinkInterpolate($3,$7);yy.updateLink($3,$9);}\n | LINKSTYLE SPACE DEFAULT SPACE INTERPOLATE SPACE alphaNum\n {$$ = $1;yy.updateLinkInterpolate([$3],$7);}\n | LINKSTYLE SPACE numList SPACE INTERPOLATE SPACE alphaNum\n {$$ = $1;yy.updateLinkInterpolate($3,$7);}\n ;\n\nnumList: NUM\n {$$ = [$1]}\n | numList COMMA NUM\n {$1.push($3);$$ = $1;}\n ;\n\nstylesOpt: style\n {$$ = [$1]}\n | stylesOpt COMMA style\n {$1.push($3);$$ = $1;}\n ;\n\nstyle: styleComponent\n |style styleComponent\n {$$ = $1 + $2;}\n ;\n\nstyleComponent: ALPHA | COLON | MINUS | NUM | UNIT | SPACE | HEX | BRKT | DOT | STYLE | PCT ;\n\n/* Token lists */\n\ntextToken : textNoTagsToken | TAGSTART | TAGEND | START_LINK | PCT | DEFAULT;\n\ntextNoTagsToken: alphaNumToken | SPACE | MINUS | keywords ;\n\nidString\n :idStringToken\n {$$=$1}\n | idString idStringToken\n {$$=$1+''+$2}\n ;\n\nalphaNum\n : alphaNumStatement\n {$$=$1;}\n | alphaNum alphaNumStatement\n {$$=$1+''+$2;}\n ;\n\nalphaNumStatement\n : DIR\n {$$=$1;}\n | alphaNumToken\n {$$=$1;}\n | DOWN\n {$$='v';}\n | MINUS\n {$$='-';}\n ;\n\ndirection\n : direction_tb\n { $$={stmt:'dir', value:'TB'};}\n | direction_bt\n { $$={stmt:'dir', value:'BT'};}\n | direction_rl\n { $$={stmt:'dir', value:'RL'};}\n | direction_lr\n { $$={stmt:'dir', value:'LR'};}\n ;\n\nalphaNumToken : PUNCTUATION | AMP | UNICODE_TEXT | NUM| ALPHA | COLON | COMMA | PLUS | EQUALS | MULT | DOT | BRKT| UNDERSCORE ;\n\nidStringToken : ALPHA|UNDERSCORE |UNICODE_TEXT | NUM| COLON | COMMA | PLUS | MINUS | DOWN |EQUALS | MULT | BRKT | DOT | PUNCTUATION | AMP | DEFAULT;\n\ngraphCodeTokens: STADIUMSTART | STADIUMEND | SUBROUTINESTART | SUBROUTINEEND | VERTEX_WITH_PROPS_START | CYLINDERSTART | CYLINDEREND | TRAPSTART | TRAPEND | INVTRAPSTART | INVTRAPEND | PIPE | PS | PE | SQS | SQE | DIAMOND_START | DIAMOND_STOP | TAGSTART | TAGEND | ARROW_CROSS | ARROW_POINT | ARROW_CIRCLE | ARROW_OPEN | QUOTE | SEMI;\n%%\n","import { select } from 'd3';\nimport utils from '../../utils';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport mermaidAPI from '../../mermaidAPI';\nimport { log } from '../../logger';\nimport {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n clear as commonClear,\n setDiagramTitle,\n getDiagramTitle,\n} from '../../commonDb';\n\nconst MERMAID_DOM_ID_PREFIX = 'flowchart-';\nlet vertexCounter = 0;\nlet config = configApi.getConfig();\nlet vertices = {};\nlet edges = [];\nlet classes = {};\nlet subGraphs = [];\nlet subGraphLookup = {};\nlet tooltips = {};\nlet subCount = 0;\nlet firstGraphFlag = true;\nlet direction;\n\nlet version; // As in graph\n\n// Functions to be run after graph rendering\nlet funs = [];\n\nconst sanitizeText = (txt) => common.sanitizeText(txt, config);\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const veritceKeys = Object.keys(vertices);\n for (const veritceKey of veritceKeys) {\n if (vertices[veritceKey].id === id) {\n return vertices[veritceKey].domId;\n }\n }\n return id;\n};\n\n/**\n * Function called by parser when a node definition has been found\n *\n * @param _id\n * @param text\n * @param type\n * @param style\n * @param classes\n * @param dir\n * @param props\n */\nexport const addVertex = function (_id, text, type, style, classes, dir, props = {}) {\n let txt;\n let id = _id;\n if (id === undefined) {\n return;\n }\n if (id.trim().length === 0) {\n return;\n }\n\n // if (id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n\n if (vertices[id] === undefined) {\n vertices[id] = {\n id: id,\n domId: MERMAID_DOM_ID_PREFIX + id + '-' + vertexCounter,\n styles: [],\n classes: [],\n };\n }\n vertexCounter++;\n if (text !== undefined) {\n config = configApi.getConfig();\n txt = sanitizeText(text.trim());\n\n // strip quotes if string starts and ends with a quote\n if (txt[0] === '\"' && txt[txt.length - 1] === '\"') {\n txt = txt.substring(1, txt.length - 1);\n }\n\n vertices[id].text = txt;\n } else {\n if (vertices[id].text === undefined) {\n vertices[id].text = _id;\n }\n }\n if (type !== undefined) {\n vertices[id].type = type;\n }\n if (style !== undefined && style !== null) {\n style.forEach(function (s) {\n vertices[id].styles.push(s);\n });\n }\n if (classes !== undefined && classes !== null) {\n classes.forEach(function (s) {\n vertices[id].classes.push(s);\n });\n }\n if (dir !== undefined) {\n vertices[id].dir = dir;\n }\n if (vertices[id].props === undefined) {\n vertices[id].props = props;\n } else if (props !== undefined) {\n Object.assign(vertices[id].props, props);\n }\n};\n\n/**\n * Function called by parser when a link/edge definition has been found\n *\n * @param _start\n * @param _end\n * @param type\n * @param linkText\n */\nexport const addSingleLink = function (_start, _end, type, linkText) {\n let start = _start;\n let end = _end;\n // if (start[0].match(/\\d/)) start = MERMAID_DOM_ID_PREFIX + start;\n // if (end[0].match(/\\d/)) end = MERMAID_DOM_ID_PREFIX + end;\n // log.info('Got edge...', start, end);\n\n const edge = { start: start, end: end, type: undefined, text: '' };\n linkText = type.text;\n\n if (linkText !== undefined) {\n edge.text = sanitizeText(linkText.trim());\n\n // strip quotes if string starts and ends with a quote\n if (edge.text[0] === '\"' && edge.text[edge.text.length - 1] === '\"') {\n edge.text = edge.text.substring(1, edge.text.length - 1);\n }\n }\n\n if (type !== undefined) {\n edge.type = type.type;\n edge.stroke = type.stroke;\n edge.length = type.length;\n }\n edges.push(edge);\n};\nexport const addLink = function (_start, _end, type, linktext) {\n let i, j;\n for (i = 0; i < _start.length; i++) {\n for (j = 0; j < _end.length; j++) {\n addSingleLink(_start[i], _end[j], type, linktext);\n }\n }\n};\n\n/**\n * Updates a link's line interpolation algorithm\n *\n * @param positions\n * @param interp\n */\nexport const updateLinkInterpolate = function (positions, interp) {\n positions.forEach(function (pos) {\n if (pos === 'default') {\n edges.defaultInterpolate = interp;\n } else {\n edges[pos].interpolate = interp;\n }\n });\n};\n\n/**\n * Updates a link with a style\n *\n * @param positions\n * @param style\n */\nexport const updateLink = function (positions, style) {\n positions.forEach(function (pos) {\n if (pos === 'default') {\n edges.defaultStyle = style;\n } else {\n if (utils.isSubstringInArray('fill', style) === -1) {\n style.push('fill:none');\n }\n edges[pos].style = style;\n }\n });\n};\n\nexport const addClass = function (id, style) {\n if (classes[id] === undefined) {\n classes[id] = { id: id, styles: [], textStyles: [] };\n }\n\n if (style !== undefined && style !== null) {\n style.forEach(function (s) {\n if (s.match('color')) {\n const newStyle1 = s.replace('fill', 'bgFill');\n const newStyle2 = newStyle1.replace('color', 'fill');\n classes[id].textStyles.push(newStyle2);\n }\n classes[id].styles.push(s);\n });\n }\n};\n\n/**\n * Called by parser when a graph definition is found, stores the direction of the chart.\n *\n * @param dir\n */\nexport const setDirection = function (dir) {\n direction = dir;\n if (direction.match(/.*</)) {\n direction = 'RL';\n }\n if (direction.match(/.*\\^/)) {\n direction = 'BT';\n }\n if (direction.match(/.*>/)) {\n direction = 'LR';\n }\n if (direction.match(/.*v/)) {\n direction = 'TB';\n }\n if (direction === 'TD') {\n direction = 'TB';\n }\n};\n\n/**\n * Called by parser when a special node is found, e.g. a clickable element.\n *\n * @param ids Comma separated list of ids\n * @param className Class to add\n */\nexport const setClass = function (ids, className) {\n ids.split(',').forEach(function (_id) {\n // let id = version === 'gen-2' ? lookUpDomId(_id) : _id;\n let id = _id;\n // if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (vertices[id] !== undefined) {\n vertices[id].classes.push(className);\n }\n\n if (subGraphLookup[id] !== undefined) {\n subGraphLookup[id].classes.push(className);\n }\n });\n};\n\nconst setTooltip = function (ids, tooltip) {\n ids.split(',').forEach(function (id) {\n if (tooltip !== undefined) {\n tooltips[version === 'gen-1' ? lookUpDomId(id) : id] = sanitizeText(tooltip);\n }\n });\n};\n\nconst setClickFun = function (id, functionName, functionArgs) {\n let domId = lookUpDomId(id);\n // if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (configApi.getConfig().securityLevel !== 'loose') {\n return;\n }\n if (functionName === undefined) {\n return;\n }\n let argList = [];\n if (typeof functionArgs === 'string') {\n /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n /* Removes all double quotes at the start and end of an argument */\n /* This preserves all starting and ending whitespace inside */\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n\n /* if no arguments passed into callback, default to passing in id */\n if (argList.length === 0) {\n argList.push(id);\n }\n\n if (vertices[id] !== undefined) {\n vertices[id].haveCallback = true;\n funs.push(function () {\n const elem = document.querySelector(`[id=\"${domId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n 'click',\n function () {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\n\n/**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n *\n * @param ids Comma separated list of ids\n * @param linkStr URL to create a link for\n * @param target\n */\nexport const setLink = function (ids, linkStr, target) {\n ids.split(',').forEach(function (id) {\n if (vertices[id] !== undefined) {\n vertices[id].link = utils.formatUrl(linkStr, config);\n vertices[id].linkTarget = target;\n }\n });\n setClass(ids, 'clickable');\n};\nexport const getTooltip = function (id) {\n return tooltips[id];\n};\n\n/**\n * Called by parser when a click definition is found. Registers an event handler.\n *\n * @param ids Comma separated list of ids\n * @param functionName Function to be called on click\n * @param functionArgs\n */\nexport const setClickEvent = function (ids, functionName, functionArgs) {\n ids.split(',').forEach(function (id) {\n setClickFun(id, functionName, functionArgs);\n });\n setClass(ids, 'clickable');\n};\n\nexport const bindFunctions = function (element) {\n funs.forEach(function (fun) {\n fun(element);\n });\n};\nexport const getDirection = function () {\n return direction.trim();\n};\n/**\n * Retrieval function for fetching the found nodes after parsing has completed.\n *\n * @returns {{} | any | vertices}\n */\nexport const getVertices = function () {\n return vertices;\n};\n\n/**\n * Retrieval function for fetching the found links after parsing has completed.\n *\n * @returns {{} | any | edges}\n */\nexport const getEdges = function () {\n return edges;\n};\n\n/**\n * Retrieval function for fetching the found class definitions after parsing has completed.\n *\n * @returns {{} | any | classes}\n */\nexport const getClasses = function () {\n return classes;\n};\n\nconst setupToolTips = function (element) {\n let tooltipElem = select('.mermaidTooltip');\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);\n }\n\n const svg = select(element).select('svg');\n\n const nodes = svg.selectAll('g.node');\n nodes\n .on('mouseover', function () {\n const el = select(this);\n const title = el.attr('title');\n\n // Dont try to draw a tooltip if no data is provided\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n\n tooltipElem.transition().duration(200).style('opacity', '.9');\n tooltipElem\n .text(el.attr('title'))\n .style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px')\n .style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');\n tooltipElem.html(tooltipElem.html().replace(/&lt;br\\/&gt;/g, '<br/>'));\n el.classed('hover', true);\n })\n .on('mouseout', function () {\n tooltipElem.transition().duration(500).style('opacity', 0);\n const el = select(this);\n el.classed('hover', false);\n });\n};\nfuns.push(setupToolTips);\n\n/**\n * Clears the internal graph db so that a new graph can be parsed.\n *\n * @param ver\n */\nexport const clear = function (ver = 'gen-1') {\n vertices = {};\n classes = {};\n edges = [];\n funs = [setupToolTips];\n subGraphs = [];\n subGraphLookup = {};\n subCount = 0;\n tooltips = [];\n firstGraphFlag = true;\n version = ver;\n commonClear();\n};\nexport const setGen = (ver) => {\n version = ver || 'gen-2';\n};\n/** @returns {string} */\nexport const defaultStyle = function () {\n return 'fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;';\n};\n\n/**\n * Clears the internal graph db so that a new graph can be parsed.\n *\n * @param _id\n * @param list\n * @param _title\n */\nexport const addSubGraph = function (_id, list, _title) {\n // console.log('addSubGraph', _id, list, _title);\n let id = _id.trim();\n let title = _title;\n if (_id === _title && _title.match(/\\s/)) {\n id = undefined;\n }\n /** @param a */\n function uniq(a) {\n const prims = { boolean: {}, number: {}, string: {} };\n const objs = [];\n\n let dir; // = undefined; direction.trim();\n const nodeList = a.filter(function (item) {\n const type = typeof item;\n if (item.stmt && item.stmt === 'dir') {\n dir = item.value;\n return false;\n }\n if (item.trim() === '') {\n return false;\n }\n if (type in prims) {\n return prims[type].hasOwnProperty(item) ? false : (prims[type][item] = true);\n } else {\n return objs.includes(item) ? false : objs.push(item);\n }\n });\n return { nodeList, dir };\n }\n\n let nodeList = [];\n\n const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list));\n nodeList = nl;\n if (version === 'gen-1') {\n for (let i = 0; i < nodeList.length; i++) {\n nodeList[i] = lookUpDomId(nodeList[i]);\n }\n }\n\n id = id || 'subGraph' + subCount;\n // if (id[0].match(/\\d/)) id = lookUpDomId(id);\n title = title || '';\n title = sanitizeText(title);\n subCount = subCount + 1;\n const subGraph = { id: id, nodes: nodeList, title: title.trim(), classes: [], dir };\n\n log.info('Adding', subGraph.id, subGraph.nodes, subGraph.dir);\n\n /** Deletes an id from all subgraphs */\n // const del = _id => {\n // subGraphs.forEach(sg => {\n // const pos = sg.nodes.indexOf(_id);\n // if (pos >= 0) {\n // sg.nodes.splice(pos, 1);\n // }\n // });\n // };\n\n // // Removes the members of this subgraph from any other subgraphs, a node only belong to one subgraph\n // subGraph.nodes.forEach(_id => del(_id));\n\n // Remove the members in the new subgraph if they already belong to another subgraph\n subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;\n subGraphs.push(subGraph);\n subGraphLookup[id] = subGraph;\n return id;\n};\n\nconst getPosForId = function (id) {\n for (const [i, subGraph] of subGraphs.entries()) {\n if (subGraph.id === id) {\n return i;\n }\n }\n return -1;\n};\nlet secCount = -1;\nconst posCrossRef = [];\nconst indexNodes2 = function (id, pos) {\n const nodes = subGraphs[pos].nodes;\n secCount = secCount + 1;\n if (secCount > 2000) {\n return;\n }\n posCrossRef[secCount] = pos;\n // Check if match\n if (subGraphs[pos].id === id) {\n return {\n result: true,\n count: 0,\n };\n }\n\n let count = 0;\n let posCount = 1;\n while (count < nodes.length) {\n const childPos = getPosForId(nodes[count]);\n // Ignore regular nodes (pos will be -1)\n if (childPos >= 0) {\n const res = indexNodes2(id, childPos);\n if (res.result) {\n return {\n result: true,\n count: posCount + res.count,\n };\n } else {\n posCount = posCount + res.count;\n }\n }\n count = count + 1;\n }\n\n return {\n result: false,\n count: posCount,\n };\n};\n\nexport const getDepthFirstPos = function (pos) {\n return posCrossRef[pos];\n};\nexport const indexNodes = function () {\n secCount = -1;\n if (subGraphs.length > 0) {\n indexNodes2('none', subGraphs.length - 1, 0);\n }\n};\n\nexport const getSubGraphs = function () {\n return subGraphs;\n};\n\nexport const firstGraph = () => {\n if (firstGraphFlag) {\n firstGraphFlag = false;\n return true;\n }\n return false;\n};\n\nconst destructStartLink = (_str) => {\n let str = _str.trim();\n let type = 'arrow_open';\n\n switch (str[0]) {\n case '<':\n type = 'arrow_point';\n str = str.slice(1);\n break;\n case 'x':\n type = 'arrow_cross';\n str = str.slice(1);\n break;\n case 'o':\n type = 'arrow_circle';\n str = str.slice(1);\n break;\n }\n\n let stroke = 'normal';\n\n if (str.includes('=')) {\n stroke = 'thick';\n }\n\n if (str.includes('.')) {\n stroke = 'dotted';\n }\n\n return { type, stroke };\n};\n\nconst countChar = (char, str) => {\n const length = str.length;\n let count = 0;\n for (let i = 0; i < length; ++i) {\n if (str[i] === char) {\n ++count;\n }\n }\n return count;\n};\n\nconst destructEndLink = (_str) => {\n const str = _str.trim();\n let line = str.slice(0, -1);\n let type = 'arrow_open';\n\n switch (str.slice(-1)) {\n case 'x':\n type = 'arrow_cross';\n if (str[0] === 'x') {\n type = 'double_' + type;\n line = line.slice(1);\n }\n break;\n case '>':\n type = 'arrow_point';\n if (str[0] === '<') {\n type = 'double_' + type;\n line = line.slice(1);\n }\n break;\n case 'o':\n type = 'arrow_circle';\n if (str[0] === 'o') {\n type = 'double_' + type;\n line = line.slice(1);\n }\n break;\n }\n\n let stroke = 'normal';\n let length = line.length - 1;\n\n if (line[0] === '=') {\n stroke = 'thick';\n }\n\n if (line[0] === '~') {\n stroke = 'invisible';\n }\n\n let dots = countChar('.', line);\n\n if (dots) {\n stroke = 'dotted';\n length = dots;\n }\n\n return { type, stroke, length };\n};\n\nexport const destructLink = (_str, _startStr) => {\n const info = destructEndLink(_str);\n let startInfo;\n if (_startStr) {\n startInfo = destructStartLink(_startStr);\n\n if (startInfo.stroke !== info.stroke) {\n return { type: 'INVALID', stroke: 'INVALID' };\n }\n\n if (startInfo.type === 'arrow_open') {\n // -- xyz --> - take arrow type from ending\n startInfo.type = info.type;\n } else {\n // x-- xyz --> - not supported\n if (startInfo.type !== info.type) {\n return { type: 'INVALID', stroke: 'INVALID' };\n }\n\n startInfo.type = 'double_' + startInfo.type;\n }\n\n if (startInfo.type === 'double_arrow') {\n startInfo.type = 'double_arrow_point';\n }\n\n startInfo.length = info.length;\n return startInfo;\n }\n\n return info;\n};\n\n// Todo optimizer this by caching existing nodes\nconst exists = (allSgs, _id) => {\n let res = false;\n allSgs.forEach((sg) => {\n const pos = sg.nodes.indexOf(_id);\n if (pos >= 0) {\n res = true;\n }\n });\n return res;\n};\n/**\n * Deletes an id from all subgraphs\n *\n * @param sg\n * @param allSubgraphs\n */\nconst makeUniq = (sg, allSubgraphs) => {\n const res = [];\n sg.nodes.forEach((_id, pos) => {\n if (!exists(allSubgraphs, _id)) {\n res.push(sg.nodes[pos]);\n }\n });\n return { nodes: res };\n};\n\nexport const lex = {\n firstGraph,\n};\nexport default {\n parseDirective,\n defaultConfig: () => configApi.defaultConfig.flowchart,\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n addVertex,\n lookUpDomId,\n addLink,\n updateLinkInterpolate,\n updateLink,\n addClass,\n setDirection,\n setClass,\n setTooltip,\n getTooltip,\n setClickEvent,\n setLink,\n bindFunctions,\n getDirection,\n getVertices,\n getEdges,\n getClasses,\n clear,\n setGen,\n defaultStyle,\n addSubGraph,\n getDepthFirstPos,\n indexNodes,\n getSubGraphs,\n destructLink,\n lex,\n exists,\n makeUniq,\n setDiagramTitle,\n getDiagramTitle,\n};\n","import * as _ from 'lodash-es';\n\n// Public utility functions\nexport { isSubgraph, edgeToId, applyStyle, applyClass, applyTransition };\n\n/*\n * Returns true if the specified node in the graph is a subgraph node. A\n * subgraph node is one that contains other nodes.\n */\nfunction isSubgraph(g, v) {\n return !!g.children(v).length;\n}\n\nfunction edgeToId(e) {\n return escapeId(e.v) + ':' + escapeId(e.w) + ':' + escapeId(e.name);\n}\n\nvar ID_DELIM = /:/g;\nfunction escapeId(str) {\n return str ? String(str).replace(ID_DELIM, '\\\\:') : '';\n}\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction applyClass(dom, classFn, otherClasses) {\n if (classFn) {\n dom.attr('class', classFn).attr('class', otherClasses + ' ' + dom.attr('class'));\n }\n}\n\nfunction applyTransition(selection, g) {\n var graph = g.graph();\n\n if (_.isPlainObject(graph)) {\n var transition = graph.transition;\n if (_.isFunction(transition)) {\n return transition(selection);\n }\n }\n\n return selection;\n}\n","import * as util from '../util.js';\n\nexport { addHtmlLabel };\n\nfunction addHtmlLabel(root, node) {\n var fo = root.append('foreignObject').attr('width', '100000');\n\n var div = fo.append('xhtml:div');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n var label = node.label;\n switch (typeof label) {\n case 'function':\n div.insert(label);\n break;\n case 'object':\n // Currently we assume this is a DOM object.\n div.insert(function () {\n return label;\n });\n break;\n default:\n div.html(label);\n }\n\n util.applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n\n var client = div.node().getBoundingClientRect();\n fo.attr('width', client.width).attr('height', client.height);\n\n return fo;\n}\n"],"names":["o","parser","lexer","lex","configApi.getConfig","classes","commonClear","dir","nodeList","configApi.defaultConfig","_.isPlainObject","_.isFunction","util.applyStyle"],"mappings":";;;;;AAyEA,IAAI,SAAU,WAAU;AACxB,MAAI,IAAE,SAAS,GAAE,GAAEA,IAAE,GAAE;AAAC,SAAIA,KAAEA,MAAG,CAAA,GAAG,IAAE,EAAE,QAAO,KAAIA,GAAE,EAAE,CAAC,CAAC,IAAE;AAAE;AAAC,WAAOA;AAAA,EAAC,GAAE,MAAI,CAAC,GAAE,CAAC,GAAE,MAAI,CAAC,GAAE,CAAC,GAAE,MAAI,CAAC,GAAE,CAAC,GAAE,MAAI,CAAC,GAAE,CAAC,GAAE,MAAI,CAAC,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,MAAI,CAAC,GAAE,EAAE,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,GAAE,GAAG,GAAE,MAAI,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,MAAI,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,OAAK,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAAK,CAAC,IAAG,IAAG,EAAE,GAAE,OAAK,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAAK,CAAC,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAAK,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAAK,CAAC,GAAE,GAAG,GAAE,OAAK,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,OAA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AAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,C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C,GAAE,CAAC,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,IAAG,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,KAAI,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,KAAI,EAAC,IAAG,GAAE,CAAC,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,IAAG,GAAE,EAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,KAAI,IAAG,IAAG,IAAG,GAAE,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,KAAI,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,KAAI,CAAC,GAAE,EAAE,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,KAAI,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,GAAE,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,KAAI,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,KAAI,EAAC,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,KAAI,CAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,CAAC,GAAE,GAAG,GAAE,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,KAAI,KAAI,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,CAAC,CAAC,GAAE,EAAC,GAAE,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,CAAC,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,KAAI,IAAG,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,GAAE,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,GAAE,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,GAAE,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,KAAI,EAAC,IAAG,IAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,CAAC,GAAE,GAAG,GAAE,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,CAAC,GAAE,GAAG,GAAE,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,CAAC,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,EAAE,GAAE,EAAC,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,KAAI,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,GAAG,EAAC,GAAE,EAAC,GAAE,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,MAAK,KAAI,EAAC,IAAG,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAE,MAAK,CAAC,GAAE,GAAG,GAAE,EAAC,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,CAAC,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,KAAI,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,IAAG,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,CAAC,GAAE,GAAG,GAAE,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,IAAG,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAC,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,MAAK,IAAG,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,KAAI,KAAI,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,MAAK,KAAI,KAAI,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAA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"}