@plurnk/plurnk-contracts 1.16.5 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -29
- package/SPEC.md +600 -519
- package/dist/conformance/agui-v1.json +3 -3
- package/dist/schema/CapabilityProjection.json +2 -4
- package/dist/schema/ClientStatement.json +5 -52
- package/dist/schema/FunctionalityDefinitionState.json +2 -2
- package/dist/schema/LineMarker.json +1 -1
- package/dist/schema/LoopPolicy.json +2 -3
- package/dist/schema/MatcherBody.json +6 -6
- package/dist/schema/McpServerDefinition.json +17 -0
- package/dist/schema/ModelCatalogPage.json +10 -1
- package/dist/schema/ModelRoute.json +9 -0
- package/dist/schema/Notice.json +1 -1
- package/dist/schema/ParsedPath.json +3 -2
- package/dist/schema/Plan.json +9 -5
- package/dist/schema/PlurnkStatement.json +86 -134
- package/dist/schema/ProposalProjection.json +2 -1
- package/dist/schema/ResourceSelection.json +51 -27
- package/dist/schema/SkillDefinition.json +3 -3
- package/dist/src/AcpPlanValue.d.ts +0 -1
- package/dist/src/AcpPlanValue.d.ts.map +1 -1
- package/dist/src/AcpPlanValue.js +14 -13
- package/dist/src/AcpPlanValue.js.map +1 -1
- package/dist/src/ApplicationPort.d.ts +16 -14
- package/dist/src/ApplicationPort.d.ts.map +1 -1
- package/dist/src/AstBuilder.d.ts +3 -2
- package/dist/src/AstBuilder.d.ts.map +1 -1
- package/dist/src/AstBuilder.js +340 -187
- package/dist/src/AstBuilder.js.map +1 -1
- package/dist/src/JsonDocument.d.ts +2 -0
- package/dist/src/JsonDocument.d.ts.map +1 -0
- package/dist/src/JsonDocument.js +14 -0
- package/dist/src/JsonDocument.js.map +1 -0
- package/dist/src/LoopLifecycle.d.ts +3 -0
- package/dist/src/LoopLifecycle.d.ts.map +1 -0
- package/dist/src/LoopLifecycle.js +14 -0
- package/dist/src/LoopLifecycle.js.map +1 -0
- package/dist/src/PlanValue.d.ts +1 -1
- package/dist/src/PlanValue.d.ts.map +1 -1
- package/dist/src/PlanValue.js +10 -6
- package/dist/src/PlanValue.js.map +1 -1
- package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
- package/dist/src/PlurnkErrorStrategy.js +37 -142
- package/dist/src/PlurnkErrorStrategy.js.map +1 -1
- package/dist/src/PlurnkParseError.d.ts +3 -1
- package/dist/src/PlurnkParseError.d.ts.map +1 -1
- package/dist/src/PlurnkParseError.js +4 -1
- package/dist/src/PlurnkParseError.js.map +1 -1
- package/dist/src/PlurnkParser.d.ts +9 -5
- package/dist/src/PlurnkParser.d.ts.map +1 -1
- package/dist/src/PlurnkParser.js +175 -180
- package/dist/src/PlurnkParser.js.map +1 -1
- package/dist/src/RecordingListener.d.ts +1 -1
- package/dist/src/RecordingListener.d.ts.map +1 -1
- package/dist/src/RecordingListener.js +24 -6
- package/dist/src/RecordingListener.js.map +1 -1
- package/dist/src/TurnDisposition.d.ts +11 -0
- package/dist/src/TurnDisposition.d.ts.map +1 -0
- package/dist/src/TurnDisposition.js +32 -0
- package/dist/src/TurnDisposition.js.map +1 -0
- package/dist/src/Validator.js +1 -1
- package/dist/src/Validator.js.map +1 -1
- package/dist/src/generated/plurnkLexer.d.ts +93 -105
- package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
- package/dist/src/generated/plurnkLexer.js +673 -828
- package/dist/src/generated/plurnkLexer.js.map +1 -1
- package/dist/src/generated/plurnkParser.d.ts +111 -152
- package/dist/src/generated/plurnkParser.d.ts.map +1 -1
- package/dist/src/generated/plurnkParser.js +756 -1082
- package/dist/src/generated/plurnkParser.js.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.d.ts +15 -36
- package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.js +12 -30
- package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +3 -7
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.generated.d.ts +147 -80
- package/dist/src/types.generated.d.ts.map +1 -1
- package/dist/src/types.js +3 -3
- package/dist/src/types.js.map +1 -1
- package/package.json +4 -8
- package/plurnk.md +103 -119
- package/dist/plurnk.gemma.gbnf +0 -141
- package/dist/plurnk.qwen.gbnf +0 -130
|
@@ -1,40 +1,37 @@
|
|
|
1
1
|
import * as antlr from "antlr4ng";
|
|
2
2
|
export class plurnkLexer extends antlr.Lexer {
|
|
3
|
-
static
|
|
4
|
-
static
|
|
5
|
-
static
|
|
6
|
-
static
|
|
7
|
-
static
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static
|
|
11
|
-
static
|
|
12
|
-
static
|
|
13
|
-
static
|
|
14
|
-
static
|
|
15
|
-
static
|
|
16
|
-
static
|
|
17
|
-
static
|
|
18
|
-
static
|
|
19
|
-
static
|
|
20
|
-
static
|
|
21
|
-
static
|
|
22
|
-
static
|
|
23
|
-
static
|
|
24
|
-
static
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
-
static
|
|
28
|
-
static
|
|
29
|
-
static
|
|
30
|
-
static
|
|
31
|
-
static
|
|
32
|
-
static
|
|
33
|
-
static
|
|
34
|
-
static
|
|
35
|
-
static SLOTS_WS = 33;
|
|
36
|
-
static TEXT_HASH = 34;
|
|
37
|
-
static TARGET_BACKSLASH = 35;
|
|
3
|
+
static OPEN_FIND = 1;
|
|
4
|
+
static OPEN_READ = 2;
|
|
5
|
+
static OPEN_EDIT = 3;
|
|
6
|
+
static OPEN_COPY = 4;
|
|
7
|
+
static OPEN_MOVE = 5;
|
|
8
|
+
static OPEN_SEND = 6;
|
|
9
|
+
static OPEN_TASK = 7;
|
|
10
|
+
static OPEN_EXEC = 8;
|
|
11
|
+
static OPEN_BARE = 9;
|
|
12
|
+
static OPEN_WORK = 10;
|
|
13
|
+
static OPEN_FORK = 11;
|
|
14
|
+
static OPEN_KILL = 12;
|
|
15
|
+
static OPEN_LOOK = 13;
|
|
16
|
+
static LPAREN = 14;
|
|
17
|
+
static RPAREN = 15;
|
|
18
|
+
static LBRACKET = 16;
|
|
19
|
+
static RBRACKET = 17;
|
|
20
|
+
static L_MARKER = 18;
|
|
21
|
+
static BODY_OPEN = 19;
|
|
22
|
+
static SECTION_END = 20;
|
|
23
|
+
static TARGET_TEXT = 21;
|
|
24
|
+
static METADATA_TEXT = 22;
|
|
25
|
+
static BODY_TEXT = 23;
|
|
26
|
+
static TEXT = 24;
|
|
27
|
+
static ASIDE = 25;
|
|
28
|
+
static OPEN = 26;
|
|
29
|
+
static WS = 27;
|
|
30
|
+
static SLOTS_WS = 28;
|
|
31
|
+
static TARGET_BACKSLASH = 29;
|
|
32
|
+
static TARGET_TICK = 30;
|
|
33
|
+
static METADATA_QUOTE = 31;
|
|
34
|
+
static B_CR = 32;
|
|
38
35
|
static SLOTS = 1;
|
|
39
36
|
static TARGET = 2;
|
|
40
37
|
static METADATA = 3;
|
|
@@ -45,167 +42,278 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
45
42
|
static literalNames = [
|
|
46
43
|
null, null, null, null, null, null, null, null, null, null, null,
|
|
47
44
|
null, null, null, null, null, null, null, null, null, null, null,
|
|
48
|
-
null, null, null, null, null, null, null,
|
|
49
|
-
|
|
45
|
+
null, null, null, null, null, null, null, "'\\'", null, "'\"'",
|
|
46
|
+
"'\\r'"
|
|
50
47
|
];
|
|
51
48
|
static symbolicNames = [
|
|
52
|
-
null, "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"TEXT_HASH", "TARGET_BACKSLASH"
|
|
49
|
+
null, "OPEN_FIND", "OPEN_READ", "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE",
|
|
50
|
+
"OPEN_SEND", "OPEN_TASK", "OPEN_EXEC", "OPEN_BARE", "OPEN_WORK",
|
|
51
|
+
"OPEN_FORK", "OPEN_KILL", "OPEN_LOOK", "LPAREN", "RPAREN", "LBRACKET",
|
|
52
|
+
"RBRACKET", "L_MARKER", "BODY_OPEN", "SECTION_END", "TARGET_TEXT",
|
|
53
|
+
"METADATA_TEXT", "BODY_TEXT", "TEXT", "ASIDE", "OPEN", "WS", "SLOTS_WS",
|
|
54
|
+
"TARGET_BACKSLASH", "TARGET_TICK", "METADATA_QUOTE", "B_CR"
|
|
59
55
|
];
|
|
60
56
|
static modeNames = [
|
|
61
57
|
"DEFAULT_MODE", "SLOTS", "TARGET", "METADATA", "BODY",
|
|
62
58
|
];
|
|
63
59
|
static ruleNames = [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"SLOTS_LBRACE", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
|
|
72
|
-
"SLOTS_ANNOTATION", "SLOTS_INLINE_BODY", "SLOTS_DIRECT_END", "SLOTS_BODY_OPEN",
|
|
60
|
+
"FENCE", "NAME", "NUM", "L_PATTERN", "LINE_ANCHOR", "DIGIT_ANCHOR",
|
|
61
|
+
"TEXT_COORD", "TEXT_L_PATTERN", "COMBINED_LINE_COORD", "COMBINED_TEXT_COORD",
|
|
62
|
+
"COMBINED_TEXT_L_PATTERN", "EOL", "OPEN", "UNKNOWN_TAG", "WS", "THINK_BLOCK",
|
|
63
|
+
"CHANNEL_BLOCK", "TEXT_RUN", "TEXT_TICK", "SLOTS_NEXT_OPENER", "SLOTS_WS",
|
|
64
|
+
"SLOTS_LPAREN", "SLOTS_LBRACKET", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
|
|
65
|
+
"SLOTS_ASIDE", "SLOTS_ASIDE_OPEN", "SLOTS_END", "SLOTS_INLINE_BODY",
|
|
66
|
+
"SLOTS_NEXT_HEADING", "SLOTS_BODY_OPEN", "TARGET_FENCE", "TARGET_BODY_OPEN",
|
|
73
67
|
"TARGET_ESCAPE", "TARGET_INNER", "TARGET_BACKSLASH", "TARGET_NEST_OPEN",
|
|
74
|
-
"TARGET_NEST_END", "
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
68
|
+
"TARGET_NEST_END", "TARGET_TEXT_SCOPE", "TARGET_SCOPE", "TARGET_TICK",
|
|
69
|
+
"TARGET_END", "METADATA_FENCE", "METADATA_BODY_OPEN", "METADATA_STRING",
|
|
70
|
+
"METADATA_INNER", "METADATA_TICK", "METADATA_QUOTE", "METADATA_NEST_OPEN",
|
|
71
|
+
"METADATA_NEST_END", "METADATA_END", "B_END", "B_EMPTY_END", "B_NEXT_HEADING",
|
|
72
|
+
"B_RUN", "B_TICK", "B_CRLF", "B_LF", "B_CR",
|
|
78
73
|
];
|
|
79
|
-
activeDelimiter = null;
|
|
80
74
|
openOp = "";
|
|
81
75
|
openHeading = "";
|
|
82
76
|
openHeadingLine = 0;
|
|
83
77
|
openHeadingColumn = 0;
|
|
78
|
+
fenceLength = 0;
|
|
79
|
+
fenceDelimiter = "";
|
|
80
|
+
started = false;
|
|
81
|
+
// {§inline-chain} — a closer on the heading line may be followed by the next opener on the same line.
|
|
82
|
+
inlineChain = false;
|
|
83
|
+
unclosedAsides = [];
|
|
84
|
+
// After a closer's text, does an opener (backticks, digits, a known name) follow on the same line?
|
|
85
|
+
openerFollows() {
|
|
86
|
+
let cursor = 1;
|
|
87
|
+
while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
|
|
88
|
+
cursor++;
|
|
89
|
+
let ticks = 0;
|
|
90
|
+
while (this.inputStream.LA(cursor) === 0x60) {
|
|
91
|
+
ticks++;
|
|
92
|
+
cursor++;
|
|
93
|
+
}
|
|
94
|
+
if (ticks < 3)
|
|
95
|
+
return false;
|
|
96
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
|
|
97
|
+
cursor++;
|
|
98
|
+
let name = "";
|
|
99
|
+
for (;;) {
|
|
100
|
+
const c = this.inputStream.LA(cursor);
|
|
101
|
+
if (c <= 0)
|
|
102
|
+
break;
|
|
103
|
+
const ch = String.fromCharCode(c);
|
|
104
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
105
|
+
break;
|
|
106
|
+
name += ch;
|
|
107
|
+
cursor++;
|
|
108
|
+
}
|
|
109
|
+
return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
|
|
110
|
+
}
|
|
111
|
+
noteUnclosedAside() {
|
|
112
|
+
this.unclosedAsides.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn });
|
|
113
|
+
}
|
|
114
|
+
takeUnclosedAsides() {
|
|
115
|
+
const taken = this.unclosedAsides;
|
|
116
|
+
this.unclosedAsides = [];
|
|
117
|
+
return taken;
|
|
118
|
+
}
|
|
119
|
+
asideClosesOnLine() {
|
|
120
|
+
let cursor = 1;
|
|
121
|
+
for (;;) {
|
|
122
|
+
const c = this.inputStream.LA(cursor);
|
|
123
|
+
if (c <= 0 || c === 0x0A || c === 0x0D)
|
|
124
|
+
return false;
|
|
125
|
+
if (c === 0x2D && this.inputStream.LA(cursor + 1) === 0x2D && this.inputStream.LA(cursor + 2) === 0x3E)
|
|
126
|
+
return true;
|
|
127
|
+
cursor++;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// {§fence-heading-in-body} - tags that end an open block from inside it; the host adds executors.
|
|
131
|
+
knownExecutors = new Set(["sh"]);
|
|
132
|
+
// {§executor-case} - an executor tag matches its registered name in any case (`SH` is `sh`).
|
|
133
|
+
knownExecutor(name) {
|
|
134
|
+
if (this.knownExecutors.has(name))
|
|
135
|
+
return true;
|
|
136
|
+
const lower = name.toLowerCase();
|
|
137
|
+
for (const known of this.knownExecutors)
|
|
138
|
+
if (known.toLowerCase() === lower)
|
|
139
|
+
return true;
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
84
142
|
slotReady = false;
|
|
85
143
|
targetDepth = 0;
|
|
86
144
|
metadataDepth = 0;
|
|
87
145
|
metadataReady = false;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
for (let i = 0; i < literal.length; i++) {
|
|
104
|
-
if (this.inputStream.LA(offset + i) !== literal.charCodeAt(i))
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
146
|
+
inlineBody = false;
|
|
147
|
+
inlineBodies = [];
|
|
148
|
+
unknownTags = [];
|
|
149
|
+
// {§interstitial-fence} - only a native operation or a known executor opens a block.
|
|
150
|
+
knownHeading() {
|
|
151
|
+
const name = this.text.replace(/^\x60+[0-9]*/, "");
|
|
152
|
+
return Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name);
|
|
153
|
+
}
|
|
154
|
+
noteUnknownTag() {
|
|
155
|
+
this.unknownTags.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn, tag: this.text.replace(/^\x60+[0-9]*/, "") });
|
|
156
|
+
}
|
|
157
|
+
takeUnknownTags() {
|
|
158
|
+
const taken = this.unknownTags;
|
|
159
|
+
this.unknownTags = [];
|
|
160
|
+
return taken;
|
|
108
161
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
let delimiter = "";
|
|
132
|
-
while (this.isDelimiterChar(this.inputStream.LA(cursor))) {
|
|
133
|
-
delimiter += String.fromCharCode(this.inputStream.LA(cursor));
|
|
134
|
-
cursor++;
|
|
135
|
-
}
|
|
136
|
-
const next = this.inputStream.LA(cursor);
|
|
137
|
-
const headerContinues = next <= 0
|
|
138
|
-
|| next === 0x20 || next === 0x09
|
|
139
|
-
|| next === 0x5B || next === 0x28 || next === 0x7B || next === 0x3C
|
|
140
|
-
|| next === 0x0A || next === 0x0D;
|
|
141
|
-
if (!headerContinues)
|
|
142
|
-
return null;
|
|
143
|
-
const startsNextTurn = this.terminalSend;
|
|
144
|
-
if (this.activeDelimiter !== null && delimiter !== this.activeDelimiter && !startsNextTurn)
|
|
145
|
-
return null;
|
|
146
|
-
return { level, op, delimiter };
|
|
147
|
-
}
|
|
148
|
-
matchesHeading(level, op) {
|
|
149
|
-
// The initial PLAN terminates tolerated provider preamble text, even when
|
|
150
|
-
// the provider omitted a separating newline. Once PLAN establishes the
|
|
151
|
-
// lane, every heading retains the ordinary column-zero boundary.
|
|
152
|
-
const initialPlan = level === 1 && op === "PLAN" && this.activeDelimiter === null;
|
|
153
|
-
if (this.column !== 0 && !initialPlan)
|
|
154
|
-
return false;
|
|
155
|
-
const heading = this.headingAt(1);
|
|
156
|
-
return heading !== null && heading.level === level && heading.op === op;
|
|
157
|
-
}
|
|
158
|
-
open(level, op) {
|
|
159
|
-
const prefixLength = (level === 1 ? "## " : "### ").length + op.length;
|
|
160
|
-
const delimiter = this.text.slice(prefixLength);
|
|
161
|
-
const startsNextTurn = this.terminalSend;
|
|
162
|
-
if (this.activeDelimiter === null || startsNextTurn)
|
|
163
|
-
this.activeDelimiter = delimiter;
|
|
164
|
-
this.openOp = op;
|
|
162
|
+
static OPERATIONS = {
|
|
163
|
+
FIND: plurnkLexer.OPEN_FIND, READ: plurnkLexer.OPEN_READ,
|
|
164
|
+
EDIT: plurnkLexer.OPEN_EDIT, COPY: plurnkLexer.OPEN_COPY, MOVE: plurnkLexer.OPEN_MOVE,
|
|
165
|
+
SEND: plurnkLexer.OPEN_SEND, EXEC: plurnkLexer.OPEN_EXEC, BARE: plurnkLexer.OPEN_BARE,
|
|
166
|
+
TASK: plurnkLexer.OPEN_TASK,
|
|
167
|
+
WORK: plurnkLexer.OPEN_WORK, FORK: plurnkLexer.OPEN_FORK, KILL: plurnkLexer.OPEN_KILL,
|
|
168
|
+
LOOK: plurnkLexer.OPEN_LOOK,
|
|
169
|
+
};
|
|
170
|
+
open(implicitName) {
|
|
171
|
+
this.fenceLength = 0;
|
|
172
|
+
while (this.text.charCodeAt(this.fenceLength) === 0x60)
|
|
173
|
+
this.fenceLength++;
|
|
174
|
+
// {§numeric-delimiter} - digits between the backticks and the name identify the block.
|
|
175
|
+
let digits = this.fenceLength;
|
|
176
|
+
while (this.text.charCodeAt(digits) >= 0x30 && this.text.charCodeAt(digits) <= 0x39)
|
|
177
|
+
digits++;
|
|
178
|
+
this.fenceDelimiter = this.text.slice(this.fenceLength, digits);
|
|
179
|
+
const name = implicitName ?? this.text.slice(digits);
|
|
180
|
+
const native = Object.hasOwn(plurnkLexer.OPERATIONS, name) ? plurnkLexer.OPERATIONS[name] : undefined;
|
|
181
|
+
this.openOp = native === undefined ? "EXEC" : name;
|
|
182
|
+
this.type = native ?? plurnkLexer.OPEN_EXEC;
|
|
183
|
+
this.inlineChain = false;
|
|
165
184
|
this.openHeading = this.text;
|
|
166
185
|
this.openHeadingLine = this.currentTokenStartLine;
|
|
167
186
|
this.openHeadingColumn = this.currentTokenColumn;
|
|
187
|
+
this.started = true;
|
|
168
188
|
this.slotReady = true;
|
|
169
|
-
// {§
|
|
170
|
-
this.metadataReady =
|
|
171
|
-
this.
|
|
172
|
-
|
|
189
|
+
// {§one-line-turn} - TASK takes its inventory as a heading-line block; a bracket there is a slot.
|
|
190
|
+
this.metadataReady = this.openOp === "EXEC" || this.openOp === "TASK";
|
|
191
|
+
this.inlineBody = false;
|
|
192
|
+
}
|
|
193
|
+
// {§indented-fences} - a fence line may carry leading horizontal whitespace; the line still
|
|
194
|
+
// starts there for every fence purpose (CommonMark allows three spaces; this allows any).
|
|
195
|
+
atLineStart() {
|
|
196
|
+
for (let back = 1;; back++) {
|
|
197
|
+
const c = this.inputStream.LA(-back);
|
|
198
|
+
if (c <= 0 || c === 0x0A || c === 0x0D)
|
|
199
|
+
return true;
|
|
200
|
+
if (c !== 0x20 && c !== 0x09)
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
skipHorizontal(offset) {
|
|
205
|
+
while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
|
|
206
|
+
offset++;
|
|
207
|
+
return offset;
|
|
173
208
|
}
|
|
174
209
|
offsetAfterEol(offset) {
|
|
175
210
|
if (this.inputStream.LA(offset) === 0x0D && this.inputStream.LA(offset + 1) === 0x0A)
|
|
176
211
|
return offset + 2;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
212
|
+
return this.inputStream.LA(offset) === 0x0A ? offset + 1 : null;
|
|
213
|
+
}
|
|
214
|
+
// {§fence-closer} - a closer is a line of at least the opener's backticks carrying exactly the
|
|
215
|
+
// opener's numeric delimiter (none when the opener had none). Count is CommonMark's rule; the
|
|
216
|
+
// delimiter is what lets an equal-count block nest ({§numeric-delimiter}).
|
|
217
|
+
closingAt(offset) {
|
|
218
|
+
if (this.inputStream.LA(offset === 1 ? -1 : offset - 1) === 0x60)
|
|
219
|
+
return false;
|
|
220
|
+
offset = this.skipHorizontal(offset);
|
|
221
|
+
let cursor = offset;
|
|
222
|
+
while (this.inputStream.LA(cursor) === 0x60)
|
|
223
|
+
cursor++;
|
|
224
|
+
if (cursor - offset < this.fenceLength)
|
|
225
|
+
return false;
|
|
226
|
+
let digits = "";
|
|
227
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39) {
|
|
228
|
+
digits += String.fromCharCode(this.inputStream.LA(cursor));
|
|
229
|
+
cursor++;
|
|
230
|
+
}
|
|
231
|
+
if (digits !== this.fenceDelimiter)
|
|
232
|
+
return false;
|
|
233
|
+
while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
|
|
234
|
+
cursor++;
|
|
235
|
+
if (this.inputStream.LA(cursor) <= 0 || this.offsetAfterEol(cursor) !== null)
|
|
236
|
+
return true;
|
|
237
|
+
// {§inline-chain} — a closer followed on its line by the next opener still closes.
|
|
238
|
+
let ticks = 0;
|
|
239
|
+
while (this.inputStream.LA(cursor + ticks) === 0x60)
|
|
240
|
+
ticks++;
|
|
241
|
+
if (ticks < 3)
|
|
242
|
+
return false;
|
|
243
|
+
let at = cursor + ticks;
|
|
244
|
+
while (this.inputStream.LA(at) >= 0x30 && this.inputStream.LA(at) <= 0x39)
|
|
245
|
+
at++;
|
|
246
|
+
let name = "";
|
|
247
|
+
for (;;) {
|
|
248
|
+
const c = this.inputStream.LA(at);
|
|
249
|
+
if (c <= 0)
|
|
250
|
+
break;
|
|
251
|
+
const ch = String.fromCharCode(c);
|
|
252
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
253
|
+
break;
|
|
254
|
+
name += ch;
|
|
255
|
+
at++;
|
|
256
|
+
}
|
|
257
|
+
return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
|
|
258
|
+
}
|
|
259
|
+
// {§fence-heading-in-body} - a fence line of four or more backticks naming an operation or a known
|
|
260
|
+
// executor is a heading wherever it stands: it ends the open block without closing it, so a
|
|
261
|
+
// glued opener (eight backticks then READ) can never swallow the turn. A delimited block is exempt: its
|
|
262
|
+
// delimiter says everything up to its own closer is body ({§numeric-delimiter}).
|
|
263
|
+
headingAt(offset) {
|
|
264
|
+
let cursor = offset;
|
|
265
|
+
while (this.inputStream.LA(cursor) === 0x60)
|
|
266
|
+
cursor++;
|
|
267
|
+
if (cursor - offset < 4)
|
|
268
|
+
return false;
|
|
269
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
|
|
270
|
+
cursor++;
|
|
271
|
+
let name = "";
|
|
272
|
+
for (;;) {
|
|
273
|
+
const c = this.inputStream.LA(cursor);
|
|
274
|
+
if (c <= 0)
|
|
275
|
+
break;
|
|
276
|
+
const ch = String.fromCharCode(c);
|
|
277
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
278
|
+
break;
|
|
279
|
+
name += ch;
|
|
280
|
+
cursor++;
|
|
281
|
+
}
|
|
282
|
+
if (name === "")
|
|
283
|
+
return false;
|
|
284
|
+
if (!Object.hasOwn(plurnkLexer.OPERATIONS, name) && !this.knownExecutor(name))
|
|
285
|
+
return false;
|
|
286
|
+
const next = this.inputStream.LA(cursor);
|
|
287
|
+
return next <= 0 || next === 0x20 || next === 0x09 || next === 0x28 || next === 0x3C || next === 0x5B
|
|
288
|
+
|| this.offsetAfterEol(cursor) !== null;
|
|
180
289
|
}
|
|
181
|
-
|
|
290
|
+
headingAfterEol() {
|
|
182
291
|
const after = this.offsetAfterEol(1);
|
|
183
|
-
return after !== null && this.headingAt(after)
|
|
292
|
+
return after !== null && this.headingAt(this.skipHorizontal(after));
|
|
184
293
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
294
|
+
closingAfterEol() {
|
|
295
|
+
const after = this.offsetAfterEol(1);
|
|
296
|
+
return after !== null && this.closingAt(this.skipHorizontal(after));
|
|
297
|
+
}
|
|
298
|
+
targetScopeEnd() {
|
|
299
|
+
let offset = 1;
|
|
300
|
+
while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
|
|
301
|
+
offset++;
|
|
302
|
+
return this.targetDepth === 0 && this.inputStream.LA(offset) === 0x29;
|
|
303
|
+
}
|
|
304
|
+
inlineBodyAhead() {
|
|
305
|
+
const previous = this.inputStream.LA(-1);
|
|
306
|
+
return previous === 0x20 || previous === 0x09;
|
|
193
307
|
}
|
|
194
|
-
headingAfterEmptySpacedLine() {
|
|
195
|
-
if (!this.bodyAtStart)
|
|
196
|
-
return false;
|
|
197
|
-
let after = 1;
|
|
198
|
-
while (this.inputStream.LA(after) === 0x20 || this.inputStream.LA(after) === 0x09)
|
|
199
|
-
after++;
|
|
200
|
-
const lineEnd = this.offsetAfterEol(after);
|
|
201
|
-
return lineEnd !== null && this.headingAt(lineEnd) !== null;
|
|
202
|
-
}
|
|
203
|
-
beginBody() { this.bodyAtStart = true; }
|
|
204
|
-
retainBody() { this.bodyAtStart = false; }
|
|
205
|
-
// {§heading-inline-body} — body text on the heading line is tolerated AND announced: the
|
|
206
|
-
// parser turns each note into one warning-severity advisory after the statement.
|
|
207
|
-
inlineBodies = [];
|
|
208
308
|
noteInlineBody() {
|
|
309
|
+
this.inlineBody = true;
|
|
310
|
+
// {§naked-pattern} - a sigil is a matcher on any heading, and every heading-line word on FIND,
|
|
311
|
+
// READ or KILL is one, so only a bodied operation's stray heading text is worth an advisory.
|
|
312
|
+
const first = this.text.charCodeAt(0);
|
|
313
|
+
if (first === 0x2F || first === 0x24 || first === 0x7E || first === 0x26 || first === 0x5E)
|
|
314
|
+
return;
|
|
315
|
+
if (this.openOp === "FIND" || this.openOp === "READ" || this.openOp === "KILL")
|
|
316
|
+
return;
|
|
209
317
|
this.inlineBodies.push({ line: this.getOpenTagLine(), column: this.getOpenTagColumn(), heading: this.getOpenHeading() });
|
|
210
318
|
}
|
|
211
319
|
takeInlineBodies() {
|
|
@@ -213,27 +321,16 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
213
321
|
this.inlineBodies = [];
|
|
214
322
|
return taken;
|
|
215
323
|
}
|
|
216
|
-
|
|
217
|
-
closeDocumentFence() { this.documentFence = false; }
|
|
218
|
-
inDocumentFence() { return this.documentFence; }
|
|
219
|
-
fenceAfterDirectEol() {
|
|
220
|
-
const after = this.offsetAfterEol(1);
|
|
221
|
-
return after !== null && this.matchesLiteral(after, "```");
|
|
222
|
-
}
|
|
223
|
-
getOpenTag() { return this.openOp + (this.activeDelimiter ?? ""); }
|
|
324
|
+
getOpenTag() { return this.openOp; }
|
|
224
325
|
getOpenOp() { return this.openOp; }
|
|
225
326
|
getOpenTagLine() { return this.openHeadingLine; }
|
|
226
327
|
getOpenTagColumn() { return this.openHeadingColumn; }
|
|
227
328
|
getOpenHeading() { return this.openHeading; }
|
|
228
|
-
|
|
329
|
+
getFenceLength() { return this.fenceLength; }
|
|
229
330
|
isTextCoordinateOp() {
|
|
230
331
|
return this.openOp === "READ" || this.openOp === "EDIT" || this.openOp === "COPY" || this.openOp === "MOVE"
|
|
231
332
|
|| this.openOp === "KILL" || this.openOp === "LOOK";
|
|
232
333
|
}
|
|
233
|
-
inlineBodyAhead() {
|
|
234
|
-
const previous = this.inputStream.LA(-1);
|
|
235
|
-
return previous === 0x20 || previous === 0x09;
|
|
236
|
-
}
|
|
237
334
|
constructor(input) {
|
|
238
335
|
super(input);
|
|
239
336
|
this.interpreter = new antlr.LexerATNSimulator(this, plurnkLexer._ATN, plurnkLexer.decisionsToDFA, new antlr.PredictionContextCache());
|
|
@@ -247,659 +344,452 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
247
344
|
get modeNames() { return plurnkLexer.modeNames; }
|
|
248
345
|
action(localContext, ruleIndex, actionIndex) {
|
|
249
346
|
switch (ruleIndex) {
|
|
250
|
-
case 10:
|
|
251
|
-
this.OPEN_PLAN_action(localContext, actionIndex);
|
|
252
|
-
break;
|
|
253
|
-
case 11:
|
|
254
|
-
this.OPEN_FIND_action(localContext, actionIndex);
|
|
255
|
-
break;
|
|
256
347
|
case 12:
|
|
257
|
-
this.
|
|
348
|
+
this.OPEN_action(localContext, actionIndex);
|
|
258
349
|
break;
|
|
259
350
|
case 13:
|
|
260
|
-
this.
|
|
261
|
-
break;
|
|
262
|
-
case 14:
|
|
263
|
-
this.OPEN_COPY_action(localContext, actionIndex);
|
|
264
|
-
break;
|
|
265
|
-
case 15:
|
|
266
|
-
this.OPEN_MOVE_action(localContext, actionIndex);
|
|
267
|
-
break;
|
|
268
|
-
case 16:
|
|
269
|
-
this.OPEN_SEND_action(localContext, actionIndex);
|
|
351
|
+
this.UNKNOWN_TAG_action(localContext, actionIndex);
|
|
270
352
|
break;
|
|
271
353
|
case 17:
|
|
272
|
-
this.
|
|
354
|
+
this.TEXT_RUN_action(localContext, actionIndex);
|
|
273
355
|
break;
|
|
274
356
|
case 18:
|
|
275
|
-
this.
|
|
357
|
+
this.TEXT_TICK_action(localContext, actionIndex);
|
|
276
358
|
break;
|
|
277
359
|
case 19:
|
|
278
|
-
this.
|
|
360
|
+
this.SLOTS_NEXT_OPENER_action(localContext, actionIndex);
|
|
279
361
|
break;
|
|
280
362
|
case 20:
|
|
281
|
-
this.
|
|
363
|
+
this.SLOTS_WS_action(localContext, actionIndex);
|
|
282
364
|
break;
|
|
283
365
|
case 21:
|
|
284
|
-
this.
|
|
366
|
+
this.SLOTS_LPAREN_action(localContext, actionIndex);
|
|
285
367
|
break;
|
|
286
368
|
case 22:
|
|
287
|
-
this.
|
|
288
|
-
break;
|
|
289
|
-
case 23:
|
|
290
|
-
this.OPEN_BUFF_action(localContext, actionIndex);
|
|
291
|
-
break;
|
|
292
|
-
case 24:
|
|
293
|
-
this.FENCE_OPEN_action(localContext, actionIndex);
|
|
294
|
-
break;
|
|
295
|
-
case 25:
|
|
296
|
-
this.FENCE_CLOSE_action(localContext, actionIndex);
|
|
297
|
-
break;
|
|
298
|
-
case 31:
|
|
299
|
-
this.SLOTS_WS_action(localContext, actionIndex);
|
|
369
|
+
this.SLOTS_LBRACKET_action(localContext, actionIndex);
|
|
300
370
|
break;
|
|
301
|
-
case
|
|
302
|
-
this.
|
|
303
|
-
break;
|
|
304
|
-
case 33:
|
|
305
|
-
this.SLOTS_EXECUTOR_action(localContext, actionIndex);
|
|
306
|
-
break;
|
|
307
|
-
case 34:
|
|
308
|
-
this.SLOTS_LPAREN_action(localContext, actionIndex);
|
|
371
|
+
case 27:
|
|
372
|
+
this.SLOTS_ASIDE_OPEN_action(localContext, actionIndex);
|
|
309
373
|
break;
|
|
310
|
-
case
|
|
311
|
-
this.
|
|
374
|
+
case 28:
|
|
375
|
+
this.SLOTS_END_action(localContext, actionIndex);
|
|
312
376
|
break;
|
|
313
|
-
case
|
|
377
|
+
case 29:
|
|
314
378
|
this.SLOTS_INLINE_BODY_action(localContext, actionIndex);
|
|
315
379
|
break;
|
|
316
|
-
case
|
|
317
|
-
this.
|
|
380
|
+
case 32:
|
|
381
|
+
this.TARGET_FENCE_action(localContext, actionIndex);
|
|
318
382
|
break;
|
|
319
|
-
case
|
|
383
|
+
case 37:
|
|
320
384
|
this.TARGET_NEST_OPEN_action(localContext, actionIndex);
|
|
321
385
|
break;
|
|
322
|
-
case
|
|
386
|
+
case 38:
|
|
323
387
|
this.TARGET_NEST_END_action(localContext, actionIndex);
|
|
324
388
|
break;
|
|
325
|
-
case
|
|
389
|
+
case 42:
|
|
326
390
|
this.TARGET_END_action(localContext, actionIndex);
|
|
327
391
|
break;
|
|
328
|
-
case
|
|
392
|
+
case 43:
|
|
393
|
+
this.METADATA_FENCE_action(localContext, actionIndex);
|
|
394
|
+
break;
|
|
395
|
+
case 49:
|
|
329
396
|
this.METADATA_NEST_OPEN_action(localContext, actionIndex);
|
|
330
397
|
break;
|
|
331
|
-
case
|
|
398
|
+
case 50:
|
|
332
399
|
this.METADATA_NEST_END_action(localContext, actionIndex);
|
|
333
400
|
break;
|
|
334
|
-
case
|
|
401
|
+
case 51:
|
|
335
402
|
this.METADATA_END_action(localContext, actionIndex);
|
|
336
403
|
break;
|
|
337
|
-
case
|
|
338
|
-
this.
|
|
404
|
+
case 52:
|
|
405
|
+
this.B_END_action(localContext, actionIndex);
|
|
339
406
|
break;
|
|
340
|
-
case
|
|
341
|
-
this.
|
|
407
|
+
case 53:
|
|
408
|
+
this.B_EMPTY_END_action(localContext, actionIndex);
|
|
342
409
|
break;
|
|
343
|
-
case
|
|
410
|
+
case 57:
|
|
344
411
|
this.B_CRLF_action(localContext, actionIndex);
|
|
345
412
|
break;
|
|
346
|
-
case
|
|
413
|
+
case 58:
|
|
347
414
|
this.B_LF_action(localContext, actionIndex);
|
|
348
415
|
break;
|
|
349
|
-
case 61:
|
|
350
|
-
this.B_CR_action(localContext, actionIndex);
|
|
351
|
-
break;
|
|
352
416
|
}
|
|
353
417
|
}
|
|
354
|
-
|
|
418
|
+
OPEN_action(localContext, actionIndex) {
|
|
355
419
|
switch (actionIndex) {
|
|
356
420
|
case 0:
|
|
357
|
-
this.open(
|
|
421
|
+
this.open();
|
|
358
422
|
break;
|
|
359
423
|
}
|
|
360
424
|
}
|
|
361
|
-
|
|
425
|
+
UNKNOWN_TAG_action(localContext, actionIndex) {
|
|
362
426
|
switch (actionIndex) {
|
|
363
427
|
case 1:
|
|
364
|
-
this.
|
|
428
|
+
this.noteUnknownTag();
|
|
365
429
|
break;
|
|
366
430
|
}
|
|
367
431
|
}
|
|
368
|
-
|
|
432
|
+
TEXT_RUN_action(localContext, actionIndex) {
|
|
369
433
|
switch (actionIndex) {
|
|
370
434
|
case 2:
|
|
371
|
-
this.
|
|
435
|
+
this.inlineChain = false;
|
|
372
436
|
break;
|
|
373
437
|
}
|
|
374
438
|
}
|
|
375
|
-
|
|
439
|
+
TEXT_TICK_action(localContext, actionIndex) {
|
|
376
440
|
switch (actionIndex) {
|
|
377
441
|
case 3:
|
|
378
|
-
this.
|
|
442
|
+
this.inlineChain = false;
|
|
379
443
|
break;
|
|
380
444
|
}
|
|
381
445
|
}
|
|
382
|
-
|
|
446
|
+
SLOTS_NEXT_OPENER_action(localContext, actionIndex) {
|
|
383
447
|
switch (actionIndex) {
|
|
384
448
|
case 4:
|
|
385
|
-
this.
|
|
449
|
+
this.inlineChain = true;
|
|
386
450
|
break;
|
|
387
451
|
}
|
|
388
452
|
}
|
|
389
|
-
|
|
453
|
+
SLOTS_WS_action(localContext, actionIndex) {
|
|
390
454
|
switch (actionIndex) {
|
|
391
455
|
case 5:
|
|
392
|
-
this.
|
|
456
|
+
this.slotReady = true;
|
|
393
457
|
break;
|
|
394
458
|
}
|
|
395
459
|
}
|
|
396
|
-
|
|
460
|
+
SLOTS_LPAREN_action(localContext, actionIndex) {
|
|
397
461
|
switch (actionIndex) {
|
|
398
462
|
case 6:
|
|
399
|
-
this.
|
|
463
|
+
this.targetDepth = 0;
|
|
464
|
+
this.metadataReady = false;
|
|
400
465
|
break;
|
|
401
466
|
}
|
|
402
467
|
}
|
|
403
|
-
|
|
468
|
+
SLOTS_LBRACKET_action(localContext, actionIndex) {
|
|
404
469
|
switch (actionIndex) {
|
|
405
470
|
case 7:
|
|
406
|
-
this.
|
|
471
|
+
this.metadataDepth = 0;
|
|
407
472
|
break;
|
|
408
473
|
}
|
|
409
474
|
}
|
|
410
|
-
|
|
475
|
+
SLOTS_ASIDE_OPEN_action(localContext, actionIndex) {
|
|
411
476
|
switch (actionIndex) {
|
|
412
477
|
case 8:
|
|
413
|
-
this.
|
|
478
|
+
this.noteUnclosedAside();
|
|
414
479
|
break;
|
|
415
480
|
}
|
|
416
481
|
}
|
|
417
|
-
|
|
482
|
+
SLOTS_END_action(localContext, actionIndex) {
|
|
418
483
|
switch (actionIndex) {
|
|
419
484
|
case 9:
|
|
420
|
-
this.
|
|
485
|
+
this.inlineChain = this.openerFollows();
|
|
421
486
|
break;
|
|
422
487
|
}
|
|
423
488
|
}
|
|
424
|
-
|
|
489
|
+
SLOTS_INLINE_BODY_action(localContext, actionIndex) {
|
|
425
490
|
switch (actionIndex) {
|
|
426
491
|
case 10:
|
|
427
|
-
this.
|
|
492
|
+
this.noteInlineBody();
|
|
428
493
|
break;
|
|
429
494
|
}
|
|
430
495
|
}
|
|
431
|
-
|
|
496
|
+
TARGET_FENCE_action(localContext, actionIndex) {
|
|
432
497
|
switch (actionIndex) {
|
|
433
498
|
case 11:
|
|
434
|
-
this.
|
|
499
|
+
this.inlineChain = this.openerFollows();
|
|
435
500
|
break;
|
|
436
501
|
}
|
|
437
502
|
}
|
|
438
|
-
|
|
503
|
+
TARGET_NEST_OPEN_action(localContext, actionIndex) {
|
|
439
504
|
switch (actionIndex) {
|
|
440
505
|
case 12:
|
|
441
|
-
this.
|
|
506
|
+
this.targetDepth++;
|
|
442
507
|
break;
|
|
443
508
|
}
|
|
444
509
|
}
|
|
445
|
-
|
|
510
|
+
TARGET_NEST_END_action(localContext, actionIndex) {
|
|
446
511
|
switch (actionIndex) {
|
|
447
512
|
case 13:
|
|
448
|
-
this.
|
|
513
|
+
this.targetDepth--;
|
|
449
514
|
break;
|
|
450
515
|
}
|
|
451
516
|
}
|
|
452
|
-
|
|
517
|
+
TARGET_END_action(localContext, actionIndex) {
|
|
453
518
|
switch (actionIndex) {
|
|
454
519
|
case 14:
|
|
455
|
-
this.openDocumentFence();
|
|
456
|
-
break;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
FENCE_CLOSE_action(localContext, actionIndex) {
|
|
460
|
-
switch (actionIndex) {
|
|
461
|
-
case 15:
|
|
462
|
-
this.closeDocumentFence();
|
|
463
|
-
break;
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
SLOTS_WS_action(localContext, actionIndex) {
|
|
467
|
-
switch (actionIndex) {
|
|
468
|
-
case 16:
|
|
469
|
-
this.slotReady = true;
|
|
470
|
-
break;
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
SLOTS_SEND_LABEL_action(localContext, actionIndex) {
|
|
474
|
-
switch (actionIndex) {
|
|
475
|
-
case 17:
|
|
476
|
-
this.terminalSend = true;
|
|
477
|
-
this.slotReady = true;
|
|
478
|
-
this.metadataReady = false;
|
|
479
|
-
break;
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
SLOTS_EXECUTOR_action(localContext, actionIndex) {
|
|
483
|
-
switch (actionIndex) {
|
|
484
|
-
case 18:
|
|
485
520
|
this.slotReady = true;
|
|
486
521
|
this.metadataReady = true;
|
|
487
522
|
break;
|
|
488
523
|
}
|
|
489
524
|
}
|
|
490
|
-
|
|
491
|
-
switch (actionIndex) {
|
|
492
|
-
case 19:
|
|
493
|
-
this.targetDepth = 0;
|
|
494
|
-
this.metadataReady = false;
|
|
495
|
-
break;
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
SLOTS_LBRACE_action(localContext, actionIndex) {
|
|
525
|
+
METADATA_FENCE_action(localContext, actionIndex) {
|
|
499
526
|
switch (actionIndex) {
|
|
500
|
-
case
|
|
501
|
-
this.
|
|
502
|
-
break;
|
|
503
|
-
}
|
|
504
|
-
}
|
|
505
|
-
SLOTS_INLINE_BODY_action(localContext, actionIndex) {
|
|
506
|
-
switch (actionIndex) {
|
|
507
|
-
case 21:
|
|
508
|
-
this.noteInlineBody();
|
|
509
|
-
this.retainBody();
|
|
510
|
-
break;
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
SLOTS_BODY_OPEN_action(localContext, actionIndex) {
|
|
514
|
-
switch (actionIndex) {
|
|
515
|
-
case 22:
|
|
516
|
-
this.beginBody();
|
|
517
|
-
break;
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
TARGET_NEST_OPEN_action(localContext, actionIndex) {
|
|
521
|
-
switch (actionIndex) {
|
|
522
|
-
case 23:
|
|
523
|
-
this.targetDepth++;
|
|
524
|
-
break;
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
TARGET_NEST_END_action(localContext, actionIndex) {
|
|
528
|
-
switch (actionIndex) {
|
|
529
|
-
case 24:
|
|
530
|
-
this.targetDepth--;
|
|
531
|
-
break;
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
TARGET_END_action(localContext, actionIndex) {
|
|
535
|
-
switch (actionIndex) {
|
|
536
|
-
case 25:
|
|
537
|
-
this.slotReady = true;
|
|
538
|
-
this.metadataReady = true;
|
|
527
|
+
case 15:
|
|
528
|
+
this.inlineChain = this.openerFollows();
|
|
539
529
|
break;
|
|
540
530
|
}
|
|
541
531
|
}
|
|
542
532
|
METADATA_NEST_OPEN_action(localContext, actionIndex) {
|
|
543
533
|
switch (actionIndex) {
|
|
544
|
-
case
|
|
534
|
+
case 16:
|
|
545
535
|
this.metadataDepth++;
|
|
546
536
|
break;
|
|
547
537
|
}
|
|
548
538
|
}
|
|
549
539
|
METADATA_NEST_END_action(localContext, actionIndex) {
|
|
550
540
|
switch (actionIndex) {
|
|
551
|
-
case
|
|
541
|
+
case 17:
|
|
552
542
|
this.metadataDepth--;
|
|
553
543
|
break;
|
|
554
544
|
}
|
|
555
545
|
}
|
|
556
546
|
METADATA_END_action(localContext, actionIndex) {
|
|
557
547
|
switch (actionIndex) {
|
|
558
|
-
case
|
|
548
|
+
case 18:
|
|
559
549
|
this.slotReady = true;
|
|
560
550
|
this.metadataReady = true;
|
|
561
551
|
break;
|
|
562
552
|
}
|
|
563
553
|
}
|
|
564
|
-
|
|
554
|
+
B_END_action(localContext, actionIndex) {
|
|
565
555
|
switch (actionIndex) {
|
|
566
|
-
case
|
|
567
|
-
this.
|
|
556
|
+
case 19:
|
|
557
|
+
this.inlineChain = this.openerFollows();
|
|
568
558
|
break;
|
|
569
559
|
}
|
|
570
560
|
}
|
|
571
|
-
|
|
561
|
+
B_EMPTY_END_action(localContext, actionIndex) {
|
|
572
562
|
switch (actionIndex) {
|
|
573
|
-
case
|
|
574
|
-
this.
|
|
563
|
+
case 20:
|
|
564
|
+
this.inlineChain = this.openerFollows();
|
|
575
565
|
break;
|
|
576
566
|
}
|
|
577
567
|
}
|
|
578
568
|
B_CRLF_action(localContext, actionIndex) {
|
|
579
569
|
switch (actionIndex) {
|
|
580
|
-
case
|
|
581
|
-
this.
|
|
570
|
+
case 21:
|
|
571
|
+
this.inlineBody = false;
|
|
582
572
|
break;
|
|
583
573
|
}
|
|
584
574
|
}
|
|
585
575
|
B_LF_action(localContext, actionIndex) {
|
|
586
576
|
switch (actionIndex) {
|
|
587
|
-
case
|
|
588
|
-
this.
|
|
589
|
-
break;
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
B_CR_action(localContext, actionIndex) {
|
|
593
|
-
switch (actionIndex) {
|
|
594
|
-
case 33:
|
|
595
|
-
this.retainBody();
|
|
577
|
+
case 22:
|
|
578
|
+
this.inlineBody = false;
|
|
596
579
|
break;
|
|
597
580
|
}
|
|
598
581
|
}
|
|
599
582
|
sempred(localContext, ruleIndex, predIndex) {
|
|
600
583
|
switch (ruleIndex) {
|
|
601
|
-
case 10:
|
|
602
|
-
return this.OPEN_PLAN_sempred(localContext, predIndex);
|
|
603
|
-
case 11:
|
|
604
|
-
return this.OPEN_FIND_sempred(localContext, predIndex);
|
|
605
584
|
case 12:
|
|
606
|
-
return this.
|
|
585
|
+
return this.OPEN_sempred(localContext, predIndex);
|
|
607
586
|
case 13:
|
|
608
|
-
return this.
|
|
609
|
-
case 14:
|
|
610
|
-
return this.OPEN_COPY_sempred(localContext, predIndex);
|
|
611
|
-
case 15:
|
|
612
|
-
return this.OPEN_MOVE_sempred(localContext, predIndex);
|
|
613
|
-
case 16:
|
|
614
|
-
return this.OPEN_SEND_sempred(localContext, predIndex);
|
|
615
|
-
case 17:
|
|
616
|
-
return this.OPEN_EXEC_sempred(localContext, predIndex);
|
|
617
|
-
case 18:
|
|
618
|
-
return this.OPEN_BARE_sempred(localContext, predIndex);
|
|
587
|
+
return this.UNKNOWN_TAG_sempred(localContext, predIndex);
|
|
619
588
|
case 19:
|
|
620
|
-
return this.
|
|
621
|
-
case 20:
|
|
622
|
-
return this.OPEN_FORK_sempred(localContext, predIndex);
|
|
589
|
+
return this.SLOTS_NEXT_OPENER_sempred(localContext, predIndex);
|
|
623
590
|
case 21:
|
|
624
|
-
return this.
|
|
591
|
+
return this.SLOTS_LPAREN_sempred(localContext, predIndex);
|
|
625
592
|
case 22:
|
|
626
|
-
return this.
|
|
593
|
+
return this.SLOTS_LBRACKET_sempred(localContext, predIndex);
|
|
627
594
|
case 23:
|
|
628
|
-
return this.
|
|
595
|
+
return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
|
|
629
596
|
case 24:
|
|
630
|
-
return this.
|
|
597
|
+
return this.SLOTS_L_sempred(localContext, predIndex);
|
|
631
598
|
case 25:
|
|
632
|
-
return this.
|
|
599
|
+
return this.SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex);
|
|
600
|
+
case 26:
|
|
601
|
+
return this.SLOTS_ASIDE_sempred(localContext, predIndex);
|
|
602
|
+
case 27:
|
|
603
|
+
return this.SLOTS_ASIDE_OPEN_sempred(localContext, predIndex);
|
|
604
|
+
case 28:
|
|
605
|
+
return this.SLOTS_END_sempred(localContext, predIndex);
|
|
606
|
+
case 29:
|
|
607
|
+
return this.SLOTS_INLINE_BODY_sempred(localContext, predIndex);
|
|
608
|
+
case 30:
|
|
609
|
+
return this.SLOTS_NEXT_HEADING_sempred(localContext, predIndex);
|
|
633
610
|
case 32:
|
|
634
|
-
return this.
|
|
635
|
-
case 33:
|
|
636
|
-
return this.SLOTS_EXECUTOR_sempred(localContext, predIndex);
|
|
637
|
-
case 34:
|
|
638
|
-
return this.SLOTS_LPAREN_sempred(localContext, predIndex);
|
|
639
|
-
case 35:
|
|
640
|
-
return this.SLOTS_LBRACE_sempred(localContext, predIndex);
|
|
641
|
-
case 36:
|
|
642
|
-
return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
|
|
643
|
-
case 37:
|
|
644
|
-
return this.SLOTS_L_sempred(localContext, predIndex);
|
|
611
|
+
return this.TARGET_FENCE_sempred(localContext, predIndex);
|
|
645
612
|
case 38:
|
|
646
|
-
return this.
|
|
613
|
+
return this.TARGET_NEST_END_sempred(localContext, predIndex);
|
|
647
614
|
case 39:
|
|
648
|
-
return this.
|
|
615
|
+
return this.TARGET_TEXT_SCOPE_sempred(localContext, predIndex);
|
|
649
616
|
case 40:
|
|
650
|
-
return this.
|
|
651
|
-
case
|
|
652
|
-
return this.
|
|
653
|
-
case
|
|
654
|
-
return this.TARGET_NEST_END_sempred(localContext, predIndex);
|
|
655
|
-
case 51:
|
|
617
|
+
return this.TARGET_SCOPE_sempred(localContext, predIndex);
|
|
618
|
+
case 43:
|
|
619
|
+
return this.METADATA_FENCE_sempred(localContext, predIndex);
|
|
620
|
+
case 50:
|
|
656
621
|
return this.METADATA_NEST_END_sempred(localContext, predIndex);
|
|
622
|
+
case 52:
|
|
623
|
+
return this.B_END_sempred(localContext, predIndex);
|
|
657
624
|
case 53:
|
|
658
|
-
return this.
|
|
625
|
+
return this.B_EMPTY_END_sempred(localContext, predIndex);
|
|
659
626
|
case 54:
|
|
660
|
-
return this.
|
|
661
|
-
case 55:
|
|
662
|
-
return this.B_SECTION_END_sempred(localContext, predIndex);
|
|
663
|
-
case 56:
|
|
664
|
-
return this.B_DIRECT_END_sempred(localContext, predIndex);
|
|
665
|
-
case 57:
|
|
666
|
-
return this.B_EMPTY_SPACED_END_sempred(localContext, predIndex);
|
|
627
|
+
return this.B_NEXT_HEADING_sempred(localContext, predIndex);
|
|
667
628
|
}
|
|
668
629
|
return true;
|
|
669
630
|
}
|
|
670
|
-
|
|
631
|
+
OPEN_sempred(localContext, predIndex) {
|
|
671
632
|
switch (predIndex) {
|
|
672
633
|
case 0:
|
|
673
|
-
return this.
|
|
674
|
-
}
|
|
675
|
-
return true;
|
|
676
|
-
}
|
|
677
|
-
OPEN_FIND_sempred(localContext, predIndex) {
|
|
678
|
-
switch (predIndex) {
|
|
634
|
+
return this.atLineStart() || !this.started || this.inlineChain;
|
|
679
635
|
case 1:
|
|
680
|
-
return this.
|
|
636
|
+
return this.knownHeading();
|
|
681
637
|
}
|
|
682
638
|
return true;
|
|
683
639
|
}
|
|
684
|
-
|
|
640
|
+
UNKNOWN_TAG_sempred(localContext, predIndex) {
|
|
685
641
|
switch (predIndex) {
|
|
686
642
|
case 2:
|
|
687
|
-
return this.
|
|
643
|
+
return this.atLineStart() || !this.started;
|
|
688
644
|
}
|
|
689
645
|
return true;
|
|
690
646
|
}
|
|
691
|
-
|
|
647
|
+
SLOTS_NEXT_OPENER_sempred(localContext, predIndex) {
|
|
692
648
|
switch (predIndex) {
|
|
693
649
|
case 3:
|
|
694
|
-
return this.
|
|
650
|
+
return this.slotReady && this.openerFollows();
|
|
695
651
|
}
|
|
696
652
|
return true;
|
|
697
653
|
}
|
|
698
|
-
|
|
654
|
+
SLOTS_LPAREN_sempred(localContext, predIndex) {
|
|
699
655
|
switch (predIndex) {
|
|
700
656
|
case 4:
|
|
701
|
-
return this.
|
|
657
|
+
return this.slotReady;
|
|
702
658
|
}
|
|
703
659
|
return true;
|
|
704
660
|
}
|
|
705
|
-
|
|
661
|
+
SLOTS_LBRACKET_sempred(localContext, predIndex) {
|
|
706
662
|
switch (predIndex) {
|
|
707
663
|
case 5:
|
|
708
|
-
return this.
|
|
664
|
+
return this.slotReady && this.metadataReady;
|
|
709
665
|
}
|
|
710
666
|
return true;
|
|
711
667
|
}
|
|
712
|
-
|
|
668
|
+
SLOTS_TEXT_L_sempred(localContext, predIndex) {
|
|
713
669
|
switch (predIndex) {
|
|
714
670
|
case 6:
|
|
715
|
-
return this.
|
|
671
|
+
return this.slotReady && this.isTextCoordinateOp();
|
|
716
672
|
}
|
|
717
673
|
return true;
|
|
718
674
|
}
|
|
719
|
-
|
|
675
|
+
SLOTS_L_sempred(localContext, predIndex) {
|
|
720
676
|
switch (predIndex) {
|
|
721
677
|
case 7:
|
|
722
|
-
return this.
|
|
678
|
+
return this.slotReady;
|
|
723
679
|
}
|
|
724
680
|
return true;
|
|
725
681
|
}
|
|
726
|
-
|
|
682
|
+
SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex) {
|
|
727
683
|
switch (predIndex) {
|
|
728
684
|
case 8:
|
|
729
|
-
return this.
|
|
685
|
+
return this.slotReady && this.isTextCoordinateOp();
|
|
730
686
|
}
|
|
731
687
|
return true;
|
|
732
688
|
}
|
|
733
|
-
|
|
689
|
+
SLOTS_ASIDE_sempred(localContext, predIndex) {
|
|
734
690
|
switch (predIndex) {
|
|
735
691
|
case 9:
|
|
736
|
-
return this.
|
|
692
|
+
return this.slotReady;
|
|
737
693
|
}
|
|
738
694
|
return true;
|
|
739
695
|
}
|
|
740
|
-
|
|
696
|
+
SLOTS_ASIDE_OPEN_sempred(localContext, predIndex) {
|
|
741
697
|
switch (predIndex) {
|
|
742
698
|
case 10:
|
|
743
|
-
return this.
|
|
699
|
+
return this.slotReady && !this.asideClosesOnLine();
|
|
744
700
|
}
|
|
745
701
|
return true;
|
|
746
702
|
}
|
|
747
|
-
|
|
703
|
+
SLOTS_END_sempred(localContext, predIndex) {
|
|
748
704
|
switch (predIndex) {
|
|
749
705
|
case 11:
|
|
750
|
-
return this.
|
|
706
|
+
return this.closingAt(1);
|
|
751
707
|
}
|
|
752
708
|
return true;
|
|
753
709
|
}
|
|
754
|
-
|
|
710
|
+
SLOTS_INLINE_BODY_sempred(localContext, predIndex) {
|
|
755
711
|
switch (predIndex) {
|
|
756
712
|
case 12:
|
|
757
|
-
return this.
|
|
713
|
+
return this.slotReady && this.inlineBodyAhead();
|
|
758
714
|
}
|
|
759
715
|
return true;
|
|
760
716
|
}
|
|
761
|
-
|
|
717
|
+
SLOTS_NEXT_HEADING_sempred(localContext, predIndex) {
|
|
762
718
|
switch (predIndex) {
|
|
763
719
|
case 13:
|
|
764
|
-
return this.
|
|
720
|
+
return this.fenceDelimiter === "" && this.headingAfterEol();
|
|
765
721
|
}
|
|
766
722
|
return true;
|
|
767
723
|
}
|
|
768
|
-
|
|
724
|
+
TARGET_FENCE_sempred(localContext, predIndex) {
|
|
769
725
|
switch (predIndex) {
|
|
770
726
|
case 14:
|
|
771
|
-
return this.
|
|
727
|
+
return this.closingAt(1);
|
|
772
728
|
}
|
|
773
729
|
return true;
|
|
774
730
|
}
|
|
775
|
-
|
|
731
|
+
TARGET_NEST_END_sempred(localContext, predIndex) {
|
|
776
732
|
switch (predIndex) {
|
|
777
733
|
case 15:
|
|
778
|
-
return this.
|
|
734
|
+
return this.targetDepth > 0;
|
|
779
735
|
}
|
|
780
736
|
return true;
|
|
781
737
|
}
|
|
782
|
-
|
|
738
|
+
TARGET_TEXT_SCOPE_sempred(localContext, predIndex) {
|
|
783
739
|
switch (predIndex) {
|
|
784
740
|
case 16:
|
|
785
|
-
return this.
|
|
786
|
-
}
|
|
787
|
-
return true;
|
|
788
|
-
}
|
|
789
|
-
SLOTS_EXECUTOR_sempred(localContext, predIndex) {
|
|
790
|
-
switch (predIndex) {
|
|
741
|
+
return this.isTextCoordinateOp();
|
|
791
742
|
case 17:
|
|
792
|
-
return this.
|
|
743
|
+
return this.targetScopeEnd();
|
|
793
744
|
}
|
|
794
745
|
return true;
|
|
795
746
|
}
|
|
796
|
-
|
|
747
|
+
TARGET_SCOPE_sempred(localContext, predIndex) {
|
|
797
748
|
switch (predIndex) {
|
|
798
749
|
case 18:
|
|
799
|
-
return this.
|
|
800
|
-
}
|
|
801
|
-
return true;
|
|
802
|
-
}
|
|
803
|
-
SLOTS_LBRACE_sempred(localContext, predIndex) {
|
|
804
|
-
switch (predIndex) {
|
|
750
|
+
return this.openOp === "FIND" || this.openOp === "EXEC" || this.openOp === "SEND";
|
|
805
751
|
case 19:
|
|
806
|
-
return this.
|
|
752
|
+
return this.targetScopeEnd();
|
|
807
753
|
}
|
|
808
754
|
return true;
|
|
809
755
|
}
|
|
810
|
-
|
|
756
|
+
METADATA_FENCE_sempred(localContext, predIndex) {
|
|
811
757
|
switch (predIndex) {
|
|
812
758
|
case 20:
|
|
813
|
-
return this.
|
|
759
|
+
return this.closingAt(1);
|
|
814
760
|
}
|
|
815
761
|
return true;
|
|
816
762
|
}
|
|
817
|
-
|
|
763
|
+
METADATA_NEST_END_sempred(localContext, predIndex) {
|
|
818
764
|
switch (predIndex) {
|
|
819
765
|
case 21:
|
|
820
|
-
return this.
|
|
766
|
+
return this.metadataDepth > 0;
|
|
821
767
|
}
|
|
822
768
|
return true;
|
|
823
769
|
}
|
|
824
|
-
|
|
770
|
+
B_END_sempred(localContext, predIndex) {
|
|
825
771
|
switch (predIndex) {
|
|
826
772
|
case 22:
|
|
827
|
-
return this.
|
|
773
|
+
return this.closingAfterEol();
|
|
828
774
|
}
|
|
829
775
|
return true;
|
|
830
776
|
}
|
|
831
|
-
|
|
777
|
+
B_EMPTY_END_sempred(localContext, predIndex) {
|
|
832
778
|
switch (predIndex) {
|
|
833
779
|
case 23:
|
|
834
|
-
return this.
|
|
780
|
+
return (this.atLineStart() || this.inlineBody) && this.closingAt(1);
|
|
835
781
|
}
|
|
836
782
|
return true;
|
|
837
783
|
}
|
|
838
|
-
|
|
784
|
+
B_NEXT_HEADING_sempred(localContext, predIndex) {
|
|
839
785
|
switch (predIndex) {
|
|
840
786
|
case 24:
|
|
841
|
-
return this.
|
|
842
|
-
}
|
|
843
|
-
return true;
|
|
844
|
-
}
|
|
845
|
-
SLOTS_DIRECT_END_sempred(localContext, predIndex) {
|
|
846
|
-
switch (predIndex) {
|
|
847
|
-
case 25:
|
|
848
|
-
return this.headingAfterDirectEol();
|
|
849
|
-
}
|
|
850
|
-
return true;
|
|
851
|
-
}
|
|
852
|
-
TARGET_NEST_END_sempred(localContext, predIndex) {
|
|
853
|
-
switch (predIndex) {
|
|
854
|
-
case 26:
|
|
855
|
-
return this.targetDepth > 0;
|
|
856
|
-
}
|
|
857
|
-
return true;
|
|
858
|
-
}
|
|
859
|
-
METADATA_NEST_END_sempred(localContext, predIndex) {
|
|
860
|
-
switch (predIndex) {
|
|
861
|
-
case 27:
|
|
862
|
-
return this.metadataDepth > 0;
|
|
863
|
-
}
|
|
864
|
-
return true;
|
|
865
|
-
}
|
|
866
|
-
B_FENCE_CLOSE_sempred(localContext, predIndex) {
|
|
867
|
-
switch (predIndex) {
|
|
868
|
-
case 28:
|
|
869
|
-
return this.column === 0 && this.inDocumentFence();
|
|
870
|
-
}
|
|
871
|
-
return true;
|
|
872
|
-
}
|
|
873
|
-
B_FENCE_END_sempred(localContext, predIndex) {
|
|
874
|
-
switch (predIndex) {
|
|
875
|
-
case 29:
|
|
876
|
-
return this.inDocumentFence() && this.fenceAfterDirectEol();
|
|
877
|
-
}
|
|
878
|
-
return true;
|
|
879
|
-
}
|
|
880
|
-
B_SECTION_END_sempred(localContext, predIndex) {
|
|
881
|
-
switch (predIndex) {
|
|
882
|
-
case 30:
|
|
883
|
-
return this.headingAfterBlankLine();
|
|
884
|
-
}
|
|
885
|
-
return true;
|
|
886
|
-
}
|
|
887
|
-
B_DIRECT_END_sempred(localContext, predIndex) {
|
|
888
|
-
switch (predIndex) {
|
|
889
|
-
case 31:
|
|
890
|
-
return this.headingAfterDirectEol();
|
|
891
|
-
}
|
|
892
|
-
return true;
|
|
893
|
-
}
|
|
894
|
-
B_EMPTY_SPACED_END_sempred(localContext, predIndex) {
|
|
895
|
-
switch (predIndex) {
|
|
896
|
-
case 32:
|
|
897
|
-
return this.headingAfterEmptySpacedLine();
|
|
787
|
+
return this.fenceDelimiter === "" && this.headingAfterEol();
|
|
898
788
|
}
|
|
899
789
|
return true;
|
|
900
790
|
}
|
|
901
791
|
static _serializedATN = [
|
|
902
|
-
4, 0,
|
|
792
|
+
4, 0, 32, 684, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3,
|
|
903
793
|
7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2,
|
|
904
794
|
11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7,
|
|
905
795
|
17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2,
|
|
@@ -908,296 +798,251 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
908
798
|
37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7,
|
|
909
799
|
43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2,
|
|
910
800
|
50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7,
|
|
911
|
-
56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59,
|
|
912
|
-
|
|
913
|
-
1,
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
1, 5, 3, 5,
|
|
917
|
-
6,
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
1, 11, 1,
|
|
922
|
-
1,
|
|
923
|
-
|
|
924
|
-
1,
|
|
925
|
-
|
|
926
|
-
1,
|
|
927
|
-
1,
|
|
928
|
-
1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16,
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
1,
|
|
932
|
-
1,
|
|
933
|
-
1,
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
1,
|
|
937
|
-
1,
|
|
938
|
-
|
|
939
|
-
1,
|
|
940
|
-
1,
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
1,
|
|
945
|
-
1,
|
|
946
|
-
1,
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
1,
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
1,
|
|
957
|
-
1,
|
|
958
|
-
1,
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
1, 0,
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
0, 0, 0,
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
0, 0,
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
0, 0,
|
|
986
|
-
|
|
987
|
-
1, 0, 0, 0,
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
0, 0,
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
0, 0,
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
0,
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
0,
|
|
1002
|
-
0,
|
|
1003
|
-
|
|
1004
|
-
0,
|
|
1005
|
-
0,
|
|
1006
|
-
0,
|
|
1007
|
-
0,
|
|
1008
|
-
0,
|
|
1009
|
-
0,
|
|
1010
|
-
0,
|
|
1011
|
-
0,
|
|
1012
|
-
0,
|
|
1013
|
-
0,
|
|
1014
|
-
0, 0, 0,
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
0, 0,
|
|
1019
|
-
0, 0,
|
|
1020
|
-
0, 0,
|
|
1021
|
-
0, 0,
|
|
1022
|
-
|
|
1023
|
-
0, 0,
|
|
1024
|
-
0, 0,
|
|
1025
|
-
|
|
1026
|
-
0, 0,
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
0, 0, 0,
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
0, 0,
|
|
1044
|
-
0, 0, 0,
|
|
1045
|
-
|
|
1046
|
-
5,
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
0,
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
0,
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
0,
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
0, 0,
|
|
1086
|
-
0, 0, 0,
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
0,
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
0, 0,
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
0, 0,
|
|
1110
|
-
0, 0, 0,
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
0, 0,
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
0, 0,
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
1, 0, 0, 0,
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
1, 0, 0, 0,
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
1, 0, 0, 0,
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
0,
|
|
1141
|
-
1, 0, 0, 0,
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
0,
|
|
1147
|
-
0, 0,
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
0,
|
|
1155
|
-
|
|
1156
|
-
11, 0, 0, 681, 682, 1, 0, 0, 0, 682, 683, 6, 43, 41, 0, 683, 92, 1, 0, 0, 0, 684, 686,
|
|
1157
|
-
8, 12, 0, 0, 685, 684, 1, 0, 0, 0, 686, 687, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687, 688,
|
|
1158
|
-
1, 0, 0, 0, 688, 689, 1, 0, 0, 0, 689, 690, 6, 44, 41, 0, 690, 94, 1, 0, 0, 0, 691, 692,
|
|
1159
|
-
5, 92, 0, 0, 692, 693, 1, 0, 0, 0, 693, 694, 6, 45, 41, 0, 694, 96, 1, 0, 0, 0, 695, 696,
|
|
1160
|
-
5, 40, 0, 0, 696, 697, 6, 46, 42, 0, 697, 698, 1, 0, 0, 0, 698, 699, 6, 46, 41, 0, 699,
|
|
1161
|
-
98, 1, 0, 0, 0, 700, 701, 4, 47, 26, 0, 701, 702, 5, 41, 0, 0, 702, 703, 6, 47, 43, 0,
|
|
1162
|
-
703, 704, 1, 0, 0, 0, 704, 705, 6, 47, 41, 0, 705, 100, 1, 0, 0, 0, 706, 707, 5, 41, 0,
|
|
1163
|
-
0, 707, 708, 6, 48, 44, 0, 708, 709, 1, 0, 0, 0, 709, 710, 6, 48, 45, 0, 710, 711, 6,
|
|
1164
|
-
48, 1, 0, 711, 102, 1, 0, 0, 0, 712, 714, 8, 13, 0, 0, 713, 712, 1, 0, 0, 0, 714, 715,
|
|
1165
|
-
1, 0, 0, 0, 715, 713, 1, 0, 0, 0, 715, 716, 1, 0, 0, 0, 716, 717, 1, 0, 0, 0, 717, 718,
|
|
1166
|
-
6, 49, 46, 0, 718, 104, 1, 0, 0, 0, 719, 720, 5, 123, 0, 0, 720, 721, 6, 50, 47, 0, 721,
|
|
1167
|
-
722, 1, 0, 0, 0, 722, 723, 6, 50, 46, 0, 723, 106, 1, 0, 0, 0, 724, 725, 4, 51, 27, 0,
|
|
1168
|
-
725, 726, 5, 125, 0, 0, 726, 727, 6, 51, 48, 0, 727, 728, 1, 0, 0, 0, 728, 729, 6, 51,
|
|
1169
|
-
46, 0, 729, 108, 1, 0, 0, 0, 730, 731, 5, 125, 0, 0, 731, 732, 6, 52, 49, 0, 732, 733,
|
|
1170
|
-
1, 0, 0, 0, 733, 734, 6, 52, 50, 0, 734, 735, 6, 52, 1, 0, 735, 110, 1, 0, 0, 0, 736, 737,
|
|
1171
|
-
4, 53, 28, 0, 737, 738, 5, 96, 0, 0, 738, 739, 5, 96, 0, 0, 739, 740, 5, 96, 0, 0, 740,
|
|
1172
|
-
742, 1, 0, 0, 0, 741, 743, 3, 23, 9, 0, 742, 741, 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743,
|
|
1173
|
-
744, 1, 0, 0, 0, 744, 745, 6, 53, 51, 0, 745, 746, 1, 0, 0, 0, 746, 747, 6, 53, 52, 0,
|
|
1174
|
-
747, 748, 6, 53, 38, 0, 748, 112, 1, 0, 0, 0, 749, 750, 4, 54, 29, 0, 750, 751, 3, 23,
|
|
1175
|
-
9, 0, 751, 752, 1, 0, 0, 0, 752, 753, 6, 54, 37, 0, 753, 754, 6, 54, 38, 0, 754, 114,
|
|
1176
|
-
1, 0, 0, 0, 755, 756, 4, 55, 30, 0, 756, 760, 3, 23, 9, 0, 757, 759, 7, 7, 0, 0, 758, 757,
|
|
1177
|
-
1, 0, 0, 0, 759, 762, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 760, 761, 1, 0, 0, 0, 761, 763,
|
|
1178
|
-
1, 0, 0, 0, 762, 760, 1, 0, 0, 0, 763, 764, 3, 23, 9, 0, 764, 765, 1, 0, 0, 0, 765, 766,
|
|
1179
|
-
6, 55, 37, 0, 766, 767, 6, 55, 38, 0, 767, 116, 1, 0, 0, 0, 768, 769, 4, 56, 31, 0, 769,
|
|
1180
|
-
770, 3, 23, 9, 0, 770, 771, 1, 0, 0, 0, 771, 772, 6, 56, 37, 0, 772, 773, 6, 56, 38, 0,
|
|
1181
|
-
773, 118, 1, 0, 0, 0, 774, 776, 4, 57, 32, 0, 775, 777, 7, 7, 0, 0, 776, 775, 1, 0, 0,
|
|
1182
|
-
0, 777, 778, 1, 0, 0, 0, 778, 776, 1, 0, 0, 0, 778, 779, 1, 0, 0, 0, 779, 780, 1, 0, 0,
|
|
1183
|
-
0, 780, 781, 3, 23, 9, 0, 781, 782, 1, 0, 0, 0, 782, 783, 6, 57, 37, 0, 783, 784, 6, 57,
|
|
1184
|
-
38, 0, 784, 120, 1, 0, 0, 0, 785, 787, 8, 9, 0, 0, 786, 785, 1, 0, 0, 0, 787, 788, 1, 0,
|
|
1185
|
-
0, 0, 788, 786, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 6, 58,
|
|
1186
|
-
53, 0, 791, 792, 1, 0, 0, 0, 792, 793, 6, 58, 35, 0, 793, 122, 1, 0, 0, 0, 794, 795, 5,
|
|
1187
|
-
13, 0, 0, 795, 796, 5, 10, 0, 0, 796, 797, 1, 0, 0, 0, 797, 798, 6, 59, 54, 0, 798, 799,
|
|
1188
|
-
1, 0, 0, 0, 799, 800, 6, 59, 35, 0, 800, 124, 1, 0, 0, 0, 801, 802, 5, 10, 0, 0, 802, 803,
|
|
1189
|
-
6, 60, 55, 0, 803, 804, 1, 0, 0, 0, 804, 805, 6, 60, 35, 0, 805, 126, 1, 0, 0, 0, 806,
|
|
1190
|
-
807, 5, 13, 0, 0, 807, 808, 6, 61, 56, 0, 808, 809, 1, 0, 0, 0, 809, 810, 6, 61, 35, 0,
|
|
1191
|
-
810, 128, 1, 0, 0, 0, 51, 0, 1, 2, 3, 4, 132, 135, 140, 146, 148, 155, 157, 162, 176,
|
|
1192
|
-
182, 187, 198, 203, 209, 214, 220, 234, 251, 268, 285, 302, 319, 336, 353, 370,
|
|
1193
|
-
387, 404, 421, 438, 455, 481, 492, 499, 514, 542, 561, 570, 594, 606, 651, 687,
|
|
1194
|
-
715, 742, 760, 778, 788, 57, 1, 10, 0, 2, 1, 0, 1, 11, 1, 1, 12, 2, 1, 13, 3, 1, 14, 4,
|
|
1195
|
-
1, 15, 5, 1, 16, 6, 1, 17, 7, 1, 18, 8, 1, 19, 9, 1, 20, 10, 1, 21, 11, 1, 22, 12, 1, 23,
|
|
1196
|
-
13, 1, 24, 14, 1, 25, 15, 0, 1, 0, 7, 12, 0, 1, 31, 16, 6, 0, 0, 1, 32, 17, 7, 14, 0, 1, 33,
|
|
1197
|
-
18, 7, 15, 0, 1, 34, 19, 7, 1, 0, 2, 2, 0, 1, 35, 20, 7, 3, 0, 2, 3, 0, 7, 5, 0, 7, 6, 0, 7,
|
|
1198
|
-
13, 0, 1, 40, 21, 7, 11, 0, 2, 4, 0, 7, 8, 0, 2, 0, 0, 1, 42, 22, 7, 7, 0, 7, 9, 0, 1, 46, 23,
|
|
1199
|
-
1, 47, 24, 1, 48, 25, 7, 2, 0, 7, 10, 0, 1, 50, 26, 1, 51, 27, 1, 52, 28, 7, 4, 0, 1, 53,
|
|
1200
|
-
29, 7, 31, 0, 1, 58, 30, 1, 59, 31, 1, 60, 32, 1, 61, 33
|
|
801
|
+
56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 131, 8, 0,
|
|
802
|
+
10, 0, 12, 0, 134, 9, 0, 1, 1, 4, 1, 137, 8, 1, 11, 1, 12, 1, 138, 1, 2, 3, 2, 142, 8, 2,
|
|
803
|
+
1, 2, 4, 2, 145, 8, 2, 11, 2, 12, 2, 146, 1, 2, 1, 2, 4, 2, 151, 8, 2, 11, 2, 12, 2, 152,
|
|
804
|
+
3, 2, 155, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 162, 8, 3, 3, 3, 164, 8, 3, 1, 3, 5, 3,
|
|
805
|
+
167, 8, 3, 10, 3, 12, 3, 170, 9, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1,
|
|
806
|
+
5, 1, 5, 1, 5, 3, 5, 184, 8, 5, 1, 5, 3, 5, 187, 8, 5, 1, 5, 3, 5, 190, 8, 5, 1, 6, 1, 6, 1,
|
|
807
|
+
6, 3, 6, 195, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 201, 8, 7, 1, 7, 5, 7, 204, 8, 7, 10, 7, 12,
|
|
808
|
+
7, 207, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 215, 8, 8, 10, 8, 12, 8, 218, 9, 8,
|
|
809
|
+
1, 9, 1, 9, 3, 9, 222, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 228, 8, 10, 1, 10, 5, 10,
|
|
810
|
+
231, 8, 10, 10, 10, 12, 10, 234, 9, 10, 1, 10, 1, 10, 1, 11, 3, 11, 239, 8, 11, 1, 11,
|
|
811
|
+
1, 11, 1, 12, 1, 12, 1, 12, 5, 12, 246, 8, 12, 10, 12, 12, 12, 249, 9, 12, 1, 12, 1, 12,
|
|
812
|
+
1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 260, 8, 13, 10, 13, 12, 13, 263,
|
|
813
|
+
9, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 4, 14, 272, 8, 14, 11, 14, 12, 14,
|
|
814
|
+
273, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15,
|
|
815
|
+
287, 8, 15, 10, 15, 12, 15, 290, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
|
|
816
|
+
1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16,
|
|
817
|
+
1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 316, 8, 16, 10, 16, 12, 16, 319, 9, 16, 1, 16, 1, 16,
|
|
818
|
+
1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17,
|
|
819
|
+
4, 17, 336, 8, 17, 11, 17, 12, 17, 337, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18,
|
|
820
|
+
1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 4, 19, 353, 8, 19, 11, 19, 12, 19, 354, 1, 19,
|
|
821
|
+
1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 4, 20, 363, 8, 20, 11, 20, 12, 20, 364, 1, 20, 1, 20,
|
|
822
|
+
1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22,
|
|
823
|
+
1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24,
|
|
824
|
+
1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26,
|
|
825
|
+
407, 8, 26, 10, 26, 12, 26, 410, 9, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27,
|
|
826
|
+
1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 425, 8, 27, 10, 27, 12, 27, 428, 9, 27,
|
|
827
|
+
1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 437, 8, 28, 10, 28, 12, 28, 440,
|
|
828
|
+
9, 28, 1, 28, 5, 28, 443, 8, 28, 10, 28, 12, 28, 446, 9, 28, 1, 28, 1, 28, 1, 28, 1, 28,
|
|
829
|
+
1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
|
|
830
|
+
1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 5, 32, 474, 8, 32, 10, 32,
|
|
831
|
+
12, 32, 477, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
|
|
832
|
+
1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 4, 35, 495, 8, 35, 11, 35, 12, 35, 496, 1, 35,
|
|
833
|
+
1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38,
|
|
834
|
+
1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40,
|
|
835
|
+
1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43,
|
|
836
|
+
1, 43, 1, 43, 5, 43, 541, 8, 43, 10, 43, 12, 43, 544, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43,
|
|
837
|
+
1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 560, 8, 45,
|
|
838
|
+
10, 45, 12, 45, 563, 9, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 4, 46, 570, 8, 46, 11, 46,
|
|
839
|
+
12, 46, 571, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49,
|
|
840
|
+
1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51,
|
|
841
|
+
1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 5, 52, 604, 8, 52, 10, 52, 12, 52, 607, 9, 52,
|
|
842
|
+
1, 52, 1, 52, 5, 52, 611, 8, 52, 10, 52, 12, 52, 614, 9, 52, 1, 52, 5, 52, 617, 8, 52,
|
|
843
|
+
10, 52, 12, 52, 620, 9, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 5, 53, 629,
|
|
844
|
+
8, 53, 10, 53, 12, 53, 632, 9, 53, 1, 53, 1, 53, 5, 53, 636, 8, 53, 10, 53, 12, 53, 639,
|
|
845
|
+
9, 53, 1, 53, 5, 53, 642, 8, 53, 10, 53, 12, 53, 645, 9, 53, 1, 53, 1, 53, 1, 53, 1, 53,
|
|
846
|
+
1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 4, 55, 659, 8, 55, 11, 55, 12, 55,
|
|
847
|
+
660, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57,
|
|
848
|
+
1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 3, 288, 317, 408,
|
|
849
|
+
0, 60, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29,
|
|
850
|
+
26, 31, 0, 33, 27, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 28, 47, 0, 49, 0, 51, 0, 53, 0,
|
|
851
|
+
55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 29, 79,
|
|
852
|
+
0, 81, 0, 83, 0, 85, 0, 87, 30, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 31, 103,
|
|
853
|
+
0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 32, 5,
|
|
854
|
+
0, 1, 2, 3, 4, 15, 6, 0, 43, 43, 45, 46, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57,
|
|
855
|
+
3, 0, 48, 57, 65, 90, 97, 122, 2, 0, 32, 32, 58, 58, 1, 0, 49, 57, 3, 0, 9, 10, 13, 13,
|
|
856
|
+
32, 32, 4, 0, 9, 10, 13, 13, 32, 32, 96, 96, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 13, 13, 7,
|
|
857
|
+
0, 9, 10, 13, 13, 32, 32, 40, 40, 60, 60, 91, 91, 96, 96, 2, 0, 40, 41, 92, 92, 6, 0, 10,
|
|
858
|
+
10, 13, 13, 40, 41, 60, 60, 92, 92, 96, 96, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 6, 0,
|
|
859
|
+
10, 10, 13, 13, 34, 34, 91, 91, 93, 93, 96, 96, 3, 0, 10, 10, 13, 13, 96, 96, 713, 0,
|
|
860
|
+
29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0,
|
|
861
|
+
39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 1, 43, 1, 0, 0, 0, 1, 45, 1, 0, 0, 0, 1, 47, 1, 0, 0, 0, 1,
|
|
862
|
+
49, 1, 0, 0, 0, 1, 51, 1, 0, 0, 0, 1, 53, 1, 0, 0, 0, 1, 55, 1, 0, 0, 0, 1, 57, 1, 0, 0, 0, 1,
|
|
863
|
+
59, 1, 0, 0, 0, 1, 61, 1, 0, 0, 0, 1, 63, 1, 0, 0, 0, 1, 65, 1, 0, 0, 0, 1, 67, 1, 0, 0, 0, 2,
|
|
864
|
+
69, 1, 0, 0, 0, 2, 71, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 2, 75, 1, 0, 0, 0, 2, 77, 1, 0, 0, 0, 2,
|
|
865
|
+
79, 1, 0, 0, 0, 2, 81, 1, 0, 0, 0, 2, 83, 1, 0, 0, 0, 2, 85, 1, 0, 0, 0, 2, 87, 1, 0, 0, 0, 2,
|
|
866
|
+
89, 1, 0, 0, 0, 3, 91, 1, 0, 0, 0, 3, 93, 1, 0, 0, 0, 3, 95, 1, 0, 0, 0, 3, 97, 1, 0, 0, 0, 3,
|
|
867
|
+
99, 1, 0, 0, 0, 3, 101, 1, 0, 0, 0, 3, 103, 1, 0, 0, 0, 3, 105, 1, 0, 0, 0, 3, 107, 1, 0, 0,
|
|
868
|
+
0, 4, 109, 1, 0, 0, 0, 4, 111, 1, 0, 0, 0, 4, 113, 1, 0, 0, 0, 4, 115, 1, 0, 0, 0, 4, 117,
|
|
869
|
+
1, 0, 0, 0, 4, 119, 1, 0, 0, 0, 4, 121, 1, 0, 0, 0, 4, 123, 1, 0, 0, 0, 5, 125, 1, 0, 0, 0,
|
|
870
|
+
7, 136, 1, 0, 0, 0, 9, 141, 1, 0, 0, 0, 11, 156, 1, 0, 0, 0, 13, 173, 1, 0, 0, 0, 15, 180,
|
|
871
|
+
1, 0, 0, 0, 17, 194, 1, 0, 0, 0, 19, 196, 1, 0, 0, 0, 21, 210, 1, 0, 0, 0, 23, 221, 1, 0,
|
|
872
|
+
0, 0, 25, 223, 1, 0, 0, 0, 27, 238, 1, 0, 0, 0, 29, 242, 1, 0, 0, 0, 31, 256, 1, 0, 0, 0,
|
|
873
|
+
33, 271, 1, 0, 0, 0, 35, 277, 1, 0, 0, 0, 37, 303, 1, 0, 0, 0, 39, 335, 1, 0, 0, 0, 41, 344,
|
|
874
|
+
1, 0, 0, 0, 43, 350, 1, 0, 0, 0, 45, 362, 1, 0, 0, 0, 47, 370, 1, 0, 0, 0, 49, 377, 1, 0,
|
|
875
|
+
0, 0, 51, 384, 1, 0, 0, 0, 53, 389, 1, 0, 0, 0, 55, 394, 1, 0, 0, 0, 57, 399, 1, 0, 0, 0,
|
|
876
|
+
59, 417, 1, 0, 0, 0, 61, 433, 1, 0, 0, 0, 63, 452, 1, 0, 0, 0, 65, 459, 1, 0, 0, 0, 67, 465,
|
|
877
|
+
1, 0, 0, 0, 69, 470, 1, 0, 0, 0, 71, 483, 1, 0, 0, 0, 73, 488, 1, 0, 0, 0, 75, 494, 1, 0,
|
|
878
|
+
0, 0, 77, 500, 1, 0, 0, 0, 79, 504, 1, 0, 0, 0, 81, 509, 1, 0, 0, 0, 83, 515, 1, 0, 0, 0,
|
|
879
|
+
85, 521, 1, 0, 0, 0, 87, 527, 1, 0, 0, 0, 89, 531, 1, 0, 0, 0, 91, 537, 1, 0, 0, 0, 93, 550,
|
|
880
|
+
1, 0, 0, 0, 95, 555, 1, 0, 0, 0, 97, 569, 1, 0, 0, 0, 99, 575, 1, 0, 0, 0, 101, 579, 1, 0,
|
|
881
|
+
0, 0, 103, 583, 1, 0, 0, 0, 105, 588, 1, 0, 0, 0, 107, 594, 1, 0, 0, 0, 109, 600, 1, 0,
|
|
882
|
+
0, 0, 111, 626, 1, 0, 0, 0, 113, 651, 1, 0, 0, 0, 115, 658, 1, 0, 0, 0, 117, 664, 1, 0,
|
|
883
|
+
0, 0, 119, 668, 1, 0, 0, 0, 121, 675, 1, 0, 0, 0, 123, 680, 1, 0, 0, 0, 125, 126, 5, 96,
|
|
884
|
+
0, 0, 126, 127, 5, 96, 0, 0, 127, 128, 5, 96, 0, 0, 128, 132, 1, 0, 0, 0, 129, 131, 5,
|
|
885
|
+
96, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0, 132, 133, 1,
|
|
886
|
+
0, 0, 0, 133, 6, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 137, 7, 0, 0, 0, 136, 135, 1, 0,
|
|
887
|
+
0, 0, 137, 138, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 8, 1, 0, 0,
|
|
888
|
+
0, 140, 142, 5, 45, 0, 0, 141, 140, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 144, 1, 0, 0,
|
|
889
|
+
0, 143, 145, 7, 1, 0, 0, 144, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 144, 1, 0, 0,
|
|
890
|
+
0, 146, 147, 1, 0, 0, 0, 147, 154, 1, 0, 0, 0, 148, 150, 5, 46, 0, 0, 149, 151, 7, 1, 0,
|
|
891
|
+
0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0,
|
|
892
|
+
0, 153, 155, 1, 0, 0, 0, 154, 148, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 10, 1, 0, 0, 0,
|
|
893
|
+
156, 157, 5, 60, 0, 0, 157, 168, 3, 9, 2, 0, 158, 164, 5, 45, 0, 0, 159, 161, 5, 44, 0,
|
|
894
|
+
0, 160, 162, 5, 32, 0, 0, 161, 160, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 164, 1, 0, 0,
|
|
895
|
+
0, 163, 158, 1, 0, 0, 0, 163, 159, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 167, 3, 9, 2,
|
|
896
|
+
0, 166, 163, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 169, 1, 0, 0,
|
|
897
|
+
0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 172, 5, 62, 0, 0, 172, 12, 1, 0, 0,
|
|
898
|
+
0, 173, 174, 5, 64, 0, 0, 174, 175, 7, 2, 0, 0, 175, 176, 7, 2, 0, 0, 176, 177, 7, 2, 0,
|
|
899
|
+
0, 177, 178, 7, 2, 0, 0, 178, 179, 7, 2, 0, 0, 179, 14, 1, 0, 0, 0, 180, 181, 5, 64, 0,
|
|
900
|
+
0, 181, 183, 7, 1, 0, 0, 182, 184, 7, 1, 0, 0, 183, 182, 1, 0, 0, 0, 183, 184, 1, 0, 0,
|
|
901
|
+
0, 184, 186, 1, 0, 0, 0, 185, 187, 7, 1, 0, 0, 186, 185, 1, 0, 0, 0, 186, 187, 1, 0, 0,
|
|
902
|
+
0, 187, 189, 1, 0, 0, 0, 188, 190, 7, 1, 0, 0, 189, 188, 1, 0, 0, 0, 189, 190, 1, 0, 0,
|
|
903
|
+
0, 190, 16, 1, 0, 0, 0, 191, 195, 3, 9, 2, 0, 192, 195, 3, 13, 4, 0, 193, 195, 3, 15, 5,
|
|
904
|
+
0, 194, 191, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 193, 1, 0, 0, 0, 195, 18, 1, 0, 0, 0,
|
|
905
|
+
196, 197, 5, 60, 0, 0, 197, 205, 3, 17, 6, 0, 198, 200, 5, 44, 0, 0, 199, 201, 5, 32,
|
|
906
|
+
0, 0, 200, 199, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 204, 3, 17,
|
|
907
|
+
6, 0, 203, 198, 1, 0, 0, 0, 204, 207, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0,
|
|
908
|
+
0, 0, 206, 208, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 208, 209, 5, 62, 0, 0, 209, 20, 1, 0,
|
|
909
|
+
0, 0, 210, 211, 3, 13, 4, 0, 211, 212, 7, 3, 0, 0, 212, 216, 7, 4, 0, 0, 213, 215, 7, 1,
|
|
910
|
+
0, 0, 214, 213, 1, 0, 0, 0, 215, 218, 1, 0, 0, 0, 216, 214, 1, 0, 0, 0, 216, 217, 1, 0,
|
|
911
|
+
0, 0, 217, 22, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 219, 222, 3, 17, 6, 0, 220, 222, 3, 21,
|
|
912
|
+
8, 0, 221, 219, 1, 0, 0, 0, 221, 220, 1, 0, 0, 0, 222, 24, 1, 0, 0, 0, 223, 224, 5, 60,
|
|
913
|
+
0, 0, 224, 232, 3, 23, 9, 0, 225, 227, 5, 44, 0, 0, 226, 228, 5, 32, 0, 0, 227, 226, 1,
|
|
914
|
+
0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 231, 3, 23, 9, 0, 230, 225, 1,
|
|
915
|
+
0, 0, 0, 231, 234, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 235, 1,
|
|
916
|
+
0, 0, 0, 234, 232, 1, 0, 0, 0, 235, 236, 5, 62, 0, 0, 236, 26, 1, 0, 0, 0, 237, 239, 5,
|
|
917
|
+
13, 0, 0, 238, 237, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 5,
|
|
918
|
+
10, 0, 0, 241, 28, 1, 0, 0, 0, 242, 243, 4, 12, 0, 0, 243, 247, 3, 5, 0, 0, 244, 246, 7,
|
|
919
|
+
1, 0, 0, 245, 244, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1,
|
|
920
|
+
0, 0, 0, 248, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 3, 7, 1, 0, 251, 252, 4,
|
|
921
|
+
12, 1, 0, 252, 253, 6, 12, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 6, 12, 1, 0, 255, 30,
|
|
922
|
+
1, 0, 0, 0, 256, 257, 4, 13, 2, 0, 257, 261, 3, 5, 0, 0, 258, 260, 7, 1, 0, 0, 259, 258,
|
|
923
|
+
1, 0, 0, 0, 260, 263, 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 264,
|
|
924
|
+
1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 264, 265, 3, 7, 1, 0, 265, 266, 6, 13, 2, 0, 266, 267,
|
|
925
|
+
1, 0, 0, 0, 267, 268, 6, 13, 3, 0, 268, 269, 6, 13, 4, 0, 269, 32, 1, 0, 0, 0, 270, 272,
|
|
926
|
+
7, 5, 0, 0, 271, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 273, 274,
|
|
927
|
+
1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 276, 6, 14, 4, 0, 276, 34, 1, 0, 0, 0, 277, 278,
|
|
928
|
+
5, 60, 0, 0, 278, 279, 5, 116, 0, 0, 279, 280, 5, 104, 0, 0, 280, 281, 5, 105, 0, 0, 281,
|
|
929
|
+
282, 5, 110, 0, 0, 282, 283, 5, 107, 0, 0, 283, 284, 5, 62, 0, 0, 284, 288, 1, 0, 0, 0,
|
|
930
|
+
285, 287, 9, 0, 0, 0, 286, 285, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0,
|
|
931
|
+
288, 286, 1, 0, 0, 0, 289, 291, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 292, 5, 60, 0, 0,
|
|
932
|
+
292, 293, 5, 47, 0, 0, 293, 294, 5, 116, 0, 0, 294, 295, 5, 104, 0, 0, 295, 296, 5, 105,
|
|
933
|
+
0, 0, 296, 297, 5, 110, 0, 0, 297, 298, 5, 107, 0, 0, 298, 299, 5, 62, 0, 0, 299, 300,
|
|
934
|
+
1, 0, 0, 0, 300, 301, 6, 15, 3, 0, 301, 302, 6, 15, 4, 0, 302, 36, 1, 0, 0, 0, 303, 304,
|
|
935
|
+
5, 60, 0, 0, 304, 305, 5, 124, 0, 0, 305, 306, 5, 99, 0, 0, 306, 307, 5, 104, 0, 0, 307,
|
|
936
|
+
308, 5, 97, 0, 0, 308, 309, 5, 110, 0, 0, 309, 310, 5, 110, 0, 0, 310, 311, 5, 101, 0,
|
|
937
|
+
0, 311, 312, 5, 108, 0, 0, 312, 313, 5, 62, 0, 0, 313, 317, 1, 0, 0, 0, 314, 316, 9, 0,
|
|
938
|
+
0, 0, 315, 314, 1, 0, 0, 0, 316, 319, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 317, 315, 1, 0,
|
|
939
|
+
0, 0, 318, 320, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 321, 5, 60, 0, 0, 321, 322, 5, 99,
|
|
940
|
+
0, 0, 322, 323, 5, 104, 0, 0, 323, 324, 5, 97, 0, 0, 324, 325, 5, 110, 0, 0, 325, 326,
|
|
941
|
+
5, 110, 0, 0, 326, 327, 5, 101, 0, 0, 327, 328, 5, 108, 0, 0, 328, 329, 5, 124, 0, 0,
|
|
942
|
+
329, 330, 5, 62, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332, 6, 16, 3, 0, 332, 333, 6, 16, 4,
|
|
943
|
+
0, 333, 38, 1, 0, 0, 0, 334, 336, 8, 6, 0, 0, 335, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0,
|
|
944
|
+
337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 340, 6, 17, 5, 0,
|
|
945
|
+
340, 341, 1, 0, 0, 0, 341, 342, 6, 17, 3, 0, 342, 343, 6, 17, 4, 0, 343, 40, 1, 0, 0, 0,
|
|
946
|
+
344, 345, 5, 96, 0, 0, 345, 346, 6, 18, 6, 0, 346, 347, 1, 0, 0, 0, 347, 348, 6, 18, 3,
|
|
947
|
+
0, 348, 349, 6, 18, 4, 0, 349, 42, 1, 0, 0, 0, 350, 352, 4, 19, 3, 0, 351, 353, 7, 7, 0,
|
|
948
|
+
0, 352, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0,
|
|
949
|
+
0, 355, 356, 1, 0, 0, 0, 356, 357, 6, 19, 7, 0, 357, 358, 1, 0, 0, 0, 358, 359, 6, 19,
|
|
950
|
+
8, 0, 359, 360, 6, 19, 9, 0, 360, 44, 1, 0, 0, 0, 361, 363, 7, 7, 0, 0, 362, 361, 1, 0,
|
|
951
|
+
0, 0, 363, 364, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 366, 1, 0,
|
|
952
|
+
0, 0, 366, 367, 6, 20, 10, 0, 367, 368, 1, 0, 0, 0, 368, 369, 6, 20, 11, 0, 369, 46, 1,
|
|
953
|
+
0, 0, 0, 370, 371, 4, 21, 4, 0, 371, 372, 5, 40, 0, 0, 372, 373, 6, 21, 12, 0, 373, 374,
|
|
954
|
+
1, 0, 0, 0, 374, 375, 6, 21, 13, 0, 375, 376, 6, 21, 14, 0, 376, 48, 1, 0, 0, 0, 377, 378,
|
|
955
|
+
4, 22, 5, 0, 378, 379, 5, 91, 0, 0, 379, 380, 6, 22, 15, 0, 380, 381, 1, 0, 0, 0, 381,
|
|
956
|
+
382, 6, 22, 16, 0, 382, 383, 6, 22, 17, 0, 383, 50, 1, 0, 0, 0, 384, 385, 4, 23, 6, 0,
|
|
957
|
+
385, 386, 3, 19, 7, 0, 386, 387, 1, 0, 0, 0, 387, 388, 6, 23, 18, 0, 388, 52, 1, 0, 0,
|
|
958
|
+
0, 389, 390, 4, 24, 7, 0, 390, 391, 3, 11, 3, 0, 391, 392, 1, 0, 0, 0, 392, 393, 6, 24,
|
|
959
|
+
18, 0, 393, 54, 1, 0, 0, 0, 394, 395, 4, 25, 8, 0, 395, 396, 3, 25, 10, 0, 396, 397, 1,
|
|
960
|
+
0, 0, 0, 397, 398, 6, 25, 18, 0, 398, 56, 1, 0, 0, 0, 399, 400, 4, 26, 9, 0, 400, 401,
|
|
961
|
+
5, 60, 0, 0, 401, 402, 5, 33, 0, 0, 402, 403, 5, 45, 0, 0, 403, 404, 5, 45, 0, 0, 404,
|
|
962
|
+
408, 1, 0, 0, 0, 405, 407, 8, 8, 0, 0, 406, 405, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408,
|
|
963
|
+
409, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 411, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 411,
|
|
964
|
+
412, 5, 45, 0, 0, 412, 413, 5, 45, 0, 0, 413, 414, 5, 62, 0, 0, 414, 415, 1, 0, 0, 0, 415,
|
|
965
|
+
416, 6, 26, 19, 0, 416, 58, 1, 0, 0, 0, 417, 418, 4, 27, 10, 0, 418, 419, 5, 60, 0, 0,
|
|
966
|
+
419, 420, 5, 33, 0, 0, 420, 421, 5, 45, 0, 0, 421, 422, 5, 45, 0, 0, 422, 426, 1, 0, 0,
|
|
967
|
+
0, 423, 425, 8, 8, 0, 0, 424, 423, 1, 0, 0, 0, 425, 428, 1, 0, 0, 0, 426, 424, 1, 0, 0,
|
|
968
|
+
0, 426, 427, 1, 0, 0, 0, 427, 429, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 429, 430, 6, 27, 20,
|
|
969
|
+
0, 430, 431, 1, 0, 0, 0, 431, 432, 6, 27, 19, 0, 432, 60, 1, 0, 0, 0, 433, 434, 4, 28,
|
|
970
|
+
11, 0, 434, 438, 3, 5, 0, 0, 435, 437, 7, 1, 0, 0, 436, 435, 1, 0, 0, 0, 437, 440, 1, 0,
|
|
971
|
+
0, 0, 438, 436, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 444, 1, 0, 0, 0, 440, 438, 1, 0,
|
|
972
|
+
0, 0, 441, 443, 7, 7, 0, 0, 442, 441, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0,
|
|
973
|
+
0, 0, 444, 445, 1, 0, 0, 0, 445, 447, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 448, 6, 28,
|
|
974
|
+
21, 0, 448, 449, 1, 0, 0, 0, 449, 450, 6, 28, 8, 0, 450, 451, 6, 28, 9, 0, 451, 62, 1,
|
|
975
|
+
0, 0, 0, 452, 453, 4, 29, 12, 0, 453, 454, 8, 9, 0, 0, 454, 455, 6, 29, 22, 0, 455, 456,
|
|
976
|
+
1, 0, 0, 0, 456, 457, 6, 29, 23, 0, 457, 458, 6, 29, 24, 0, 458, 64, 1, 0, 0, 0, 459, 460,
|
|
977
|
+
4, 30, 13, 0, 460, 461, 3, 27, 11, 0, 461, 462, 1, 0, 0, 0, 462, 463, 6, 30, 8, 0, 463,
|
|
978
|
+
464, 6, 30, 9, 0, 464, 66, 1, 0, 0, 0, 465, 466, 3, 27, 11, 0, 466, 467, 1, 0, 0, 0, 467,
|
|
979
|
+
468, 6, 31, 25, 0, 468, 469, 6, 31, 24, 0, 469, 68, 1, 0, 0, 0, 470, 471, 4, 32, 14, 0,
|
|
980
|
+
471, 475, 3, 5, 0, 0, 472, 474, 7, 7, 0, 0, 473, 472, 1, 0, 0, 0, 474, 477, 1, 0, 0, 0,
|
|
981
|
+
475, 473, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 478, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0,
|
|
982
|
+
478, 479, 6, 32, 26, 0, 479, 480, 1, 0, 0, 0, 480, 481, 6, 32, 8, 0, 481, 482, 6, 32,
|
|
983
|
+
9, 0, 482, 70, 1, 0, 0, 0, 483, 484, 3, 27, 11, 0, 484, 485, 1, 0, 0, 0, 485, 486, 6, 33,
|
|
984
|
+
8, 0, 486, 487, 6, 33, 9, 0, 487, 72, 1, 0, 0, 0, 488, 489, 5, 92, 0, 0, 489, 490, 7, 10,
|
|
985
|
+
0, 0, 490, 491, 1, 0, 0, 0, 491, 492, 6, 34, 27, 0, 492, 74, 1, 0, 0, 0, 493, 495, 8, 11,
|
|
986
|
+
0, 0, 494, 493, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 494, 1, 0, 0, 0, 496, 497, 1, 0,
|
|
987
|
+
0, 0, 497, 498, 1, 0, 0, 0, 498, 499, 6, 35, 27, 0, 499, 76, 1, 0, 0, 0, 500, 501, 5, 92,
|
|
988
|
+
0, 0, 501, 502, 1, 0, 0, 0, 502, 503, 6, 36, 27, 0, 503, 78, 1, 0, 0, 0, 504, 505, 5, 40,
|
|
989
|
+
0, 0, 505, 506, 6, 37, 28, 0, 506, 507, 1, 0, 0, 0, 507, 508, 6, 37, 27, 0, 508, 80, 1,
|
|
990
|
+
0, 0, 0, 509, 510, 4, 38, 15, 0, 510, 511, 5, 41, 0, 0, 511, 512, 6, 38, 29, 0, 512, 513,
|
|
991
|
+
1, 0, 0, 0, 513, 514, 6, 38, 27, 0, 514, 82, 1, 0, 0, 0, 515, 516, 4, 39, 16, 0, 516, 517,
|
|
992
|
+
3, 19, 7, 0, 517, 518, 4, 39, 17, 0, 518, 519, 1, 0, 0, 0, 519, 520, 6, 39, 18, 0, 520,
|
|
993
|
+
84, 1, 0, 0, 0, 521, 522, 4, 40, 18, 0, 522, 523, 3, 11, 3, 0, 523, 524, 4, 40, 19, 0,
|
|
994
|
+
524, 525, 1, 0, 0, 0, 525, 526, 6, 40, 18, 0, 526, 86, 1, 0, 0, 0, 527, 528, 5, 96, 0,
|
|
995
|
+
0, 528, 529, 1, 0, 0, 0, 529, 530, 6, 41, 27, 0, 530, 88, 1, 0, 0, 0, 531, 532, 5, 41,
|
|
996
|
+
0, 0, 532, 533, 6, 42, 30, 0, 533, 534, 1, 0, 0, 0, 534, 535, 6, 42, 31, 0, 535, 536,
|
|
997
|
+
6, 42, 1, 0, 536, 90, 1, 0, 0, 0, 537, 538, 4, 43, 20, 0, 538, 542, 3, 5, 0, 0, 539, 541,
|
|
998
|
+
7, 7, 0, 0, 540, 539, 1, 0, 0, 0, 541, 544, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543,
|
|
999
|
+
1, 0, 0, 0, 543, 545, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 545, 546, 6, 43, 32, 0, 546, 547,
|
|
1000
|
+
1, 0, 0, 0, 547, 548, 6, 43, 8, 0, 548, 549, 6, 43, 9, 0, 549, 92, 1, 0, 0, 0, 550, 551,
|
|
1001
|
+
3, 27, 11, 0, 551, 552, 1, 0, 0, 0, 552, 553, 6, 44, 8, 0, 553, 554, 6, 44, 9, 0, 554,
|
|
1002
|
+
94, 1, 0, 0, 0, 555, 561, 5, 34, 0, 0, 556, 557, 5, 92, 0, 0, 557, 560, 8, 8, 0, 0, 558,
|
|
1003
|
+
560, 8, 12, 0, 0, 559, 556, 1, 0, 0, 0, 559, 558, 1, 0, 0, 0, 560, 563, 1, 0, 0, 0, 561,
|
|
1004
|
+
559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 564, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 564,
|
|
1005
|
+
565, 5, 34, 0, 0, 565, 566, 1, 0, 0, 0, 566, 567, 6, 45, 33, 0, 567, 96, 1, 0, 0, 0, 568,
|
|
1006
|
+
570, 8, 13, 0, 0, 569, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 569, 1, 0, 0, 0, 571,
|
|
1007
|
+
572, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 6, 46, 33, 0, 574, 98, 1, 0, 0, 0, 575,
|
|
1008
|
+
576, 5, 96, 0, 0, 576, 577, 1, 0, 0, 0, 577, 578, 6, 47, 33, 0, 578, 100, 1, 0, 0, 0, 579,
|
|
1009
|
+
580, 5, 34, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 6, 48, 33, 0, 582, 102, 1, 0, 0, 0, 583,
|
|
1010
|
+
584, 5, 91, 0, 0, 584, 585, 6, 49, 34, 0, 585, 586, 1, 0, 0, 0, 586, 587, 6, 49, 33, 0,
|
|
1011
|
+
587, 104, 1, 0, 0, 0, 588, 589, 4, 50, 21, 0, 589, 590, 5, 93, 0, 0, 590, 591, 6, 50,
|
|
1012
|
+
35, 0, 591, 592, 1, 0, 0, 0, 592, 593, 6, 50, 33, 0, 593, 106, 1, 0, 0, 0, 594, 595, 5,
|
|
1013
|
+
93, 0, 0, 595, 596, 6, 51, 36, 0, 596, 597, 1, 0, 0, 0, 597, 598, 6, 51, 37, 0, 598, 599,
|
|
1014
|
+
6, 51, 1, 0, 599, 108, 1, 0, 0, 0, 600, 601, 4, 52, 22, 0, 601, 605, 3, 27, 11, 0, 602,
|
|
1015
|
+
604, 7, 7, 0, 0, 603, 602, 1, 0, 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605,
|
|
1016
|
+
606, 1, 0, 0, 0, 606, 608, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 608, 612, 3, 5, 0, 0, 609,
|
|
1017
|
+
611, 7, 1, 0, 0, 610, 609, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 612,
|
|
1018
|
+
613, 1, 0, 0, 0, 613, 618, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 615, 617, 7, 7, 0, 0, 616,
|
|
1019
|
+
615, 1, 0, 0, 0, 617, 620, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619,
|
|
1020
|
+
621, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 621, 622, 6, 52, 38, 0, 622, 623, 1, 0, 0, 0, 623,
|
|
1021
|
+
624, 6, 52, 8, 0, 624, 625, 6, 52, 9, 0, 625, 110, 1, 0, 0, 0, 626, 630, 4, 53, 23, 0,
|
|
1022
|
+
627, 629, 7, 7, 0, 0, 628, 627, 1, 0, 0, 0, 629, 632, 1, 0, 0, 0, 630, 628, 1, 0, 0, 0,
|
|
1023
|
+
630, 631, 1, 0, 0, 0, 631, 633, 1, 0, 0, 0, 632, 630, 1, 0, 0, 0, 633, 637, 3, 5, 0, 0,
|
|
1024
|
+
634, 636, 7, 1, 0, 0, 635, 634, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0,
|
|
1025
|
+
637, 638, 1, 0, 0, 0, 638, 643, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 642, 7, 7, 0, 0,
|
|
1026
|
+
641, 640, 1, 0, 0, 0, 642, 645, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0,
|
|
1027
|
+
644, 646, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 646, 647, 6, 53, 39, 0, 647, 648, 1, 0, 0,
|
|
1028
|
+
0, 648, 649, 6, 53, 8, 0, 649, 650, 6, 53, 9, 0, 650, 112, 1, 0, 0, 0, 651, 652, 4, 54,
|
|
1029
|
+
24, 0, 652, 653, 3, 27, 11, 0, 653, 654, 1, 0, 0, 0, 654, 655, 6, 54, 8, 0, 655, 656,
|
|
1030
|
+
6, 54, 9, 0, 656, 114, 1, 0, 0, 0, 657, 659, 8, 14, 0, 0, 658, 657, 1, 0, 0, 0, 659, 660,
|
|
1031
|
+
1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663,
|
|
1032
|
+
6, 55, 23, 0, 663, 116, 1, 0, 0, 0, 664, 665, 5, 96, 0, 0, 665, 666, 1, 0, 0, 0, 666, 667,
|
|
1033
|
+
6, 56, 23, 0, 667, 118, 1, 0, 0, 0, 668, 669, 5, 13, 0, 0, 669, 670, 5, 10, 0, 0, 670,
|
|
1034
|
+
671, 1, 0, 0, 0, 671, 672, 6, 57, 40, 0, 672, 673, 1, 0, 0, 0, 673, 674, 6, 57, 23, 0,
|
|
1035
|
+
674, 120, 1, 0, 0, 0, 675, 676, 5, 10, 0, 0, 676, 677, 6, 58, 41, 0, 677, 678, 1, 0, 0,
|
|
1036
|
+
0, 678, 679, 6, 58, 23, 0, 679, 122, 1, 0, 0, 0, 680, 681, 5, 13, 0, 0, 681, 682, 1, 0,
|
|
1037
|
+
0, 0, 682, 683, 6, 59, 23, 0, 683, 124, 1, 0, 0, 0, 50, 0, 1, 2, 3, 4, 132, 138, 141, 146,
|
|
1038
|
+
152, 154, 161, 163, 168, 183, 186, 189, 194, 200, 205, 216, 221, 227, 232, 238,
|
|
1039
|
+
247, 261, 273, 288, 317, 337, 354, 364, 408, 426, 438, 444, 475, 496, 542, 559,
|
|
1040
|
+
561, 571, 605, 612, 618, 630, 637, 643, 660, 42, 1, 12, 0, 2, 1, 0, 1, 13, 1, 7, 24,
|
|
1041
|
+
0, 0, 1, 0, 1, 17, 2, 1, 18, 3, 1, 19, 4, 7, 20, 0, 2, 0, 0, 1, 20, 5, 6, 0, 0, 1, 21, 6, 7,
|
|
1042
|
+
14, 0, 2, 2, 0, 1, 22, 7, 7, 16, 0, 2, 3, 0, 7, 18, 0, 7, 25, 0, 1, 27, 8, 1, 28, 9, 1, 29,
|
|
1043
|
+
10, 7, 23, 0, 2, 4, 0, 7, 19, 0, 1, 32, 11, 7, 21, 0, 1, 37, 12, 1, 38, 13, 1, 42, 14, 7,
|
|
1044
|
+
15, 0, 1, 43, 15, 7, 22, 0, 1, 49, 16, 1, 50, 17, 1, 51, 18, 7, 17, 0, 1, 52, 19, 1, 53,
|
|
1045
|
+
20, 1, 57, 21, 1, 58, 22
|
|
1201
1046
|
];
|
|
1202
1047
|
static __ATN;
|
|
1203
1048
|
static get _ATN() {
|