~galaxyabstractor/lenasys/ace

« back to all changes in this revision

Viewing changes to js/ace/worker-xquery.js

  • Committer: galaxyAbstractor
  • Date: 2013-04-04 16:19:07 UTC
  • Revision ID: galaxyabstractor@gmail.com-20130404161907-eo1wnb7ac2rnizg8
Started implementation of a new codeviewer using Ace

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"no use strict";
 
2
;(function(window) {
 
3
if (typeof window.window != "undefined" && window.document) {
 
4
    return;
 
5
}
 
6
 
 
7
window.console = {
 
8
    log: function() {
 
9
        var msgs = Array.prototype.slice.call(arguments, 0);
 
10
        postMessage({type: "log", data: msgs});
 
11
    },
 
12
    error: function() {
 
13
        var msgs = Array.prototype.slice.call(arguments, 0);
 
14
        postMessage({type: "log", data: msgs});
 
15
    }
 
16
};
 
17
window.window = window;
 
18
window.ace = window;
 
19
 
 
20
window.normalizeModule = function(parentId, moduleName) {
 
21
    // normalize plugin requires
 
22
    if (moduleName.indexOf("!") !== -1) {
 
23
        var chunks = moduleName.split("!");
 
24
        return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
 
25
    }
 
26
    // normalize relative requires
 
27
    if (moduleName.charAt(0) == ".") {
 
28
        var base = parentId.split("/").slice(0, -1).join("/");
 
29
        moduleName = base + "/" + moduleName;
 
30
        
 
31
        while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
 
32
            var previous = moduleName;
 
33
            moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
 
34
        }
 
35
    }
 
36
    
 
37
    return moduleName;
 
38
};
 
39
 
 
40
window.require = function(parentId, id) {
 
41
    if (!id.charAt)
 
42
        throw new Error("worker.js require() accepts only (parentId, id) as arguments");
 
43
 
 
44
    id = normalizeModule(parentId, id);
 
45
 
 
46
    var module = require.modules[id];
 
47
    if (module) {
 
48
        if (!module.initialized) {
 
49
            module.initialized = true;
 
50
            module.exports = module.factory().exports;
 
51
        }
 
52
        return module.exports;
 
53
    }
 
54
    
 
55
    var chunks = id.split("/");
 
56
    chunks[0] = require.tlns[chunks[0]] || chunks[0];
 
57
    var path = chunks.join("/") + ".js";
 
58
    
 
59
    require.id = id;
 
60
    importScripts(path);
 
61
    return require(parentId, id);    
 
62
};
 
63
 
 
64
require.modules = {};
 
65
require.tlns = {};
 
66
 
 
67
window.define = function(id, deps, factory) {
 
68
    if (arguments.length == 2) {
 
69
        factory = deps;
 
70
        if (typeof id != "string") {
 
71
            deps = id;
 
72
            id = require.id;
 
73
        }
 
74
    } else if (arguments.length == 1) {
 
75
        factory = id;
 
76
        id = require.id;
 
77
    }
 
78
 
 
79
    if (id.indexOf("text!") === 0) 
 
80
        return;
 
81
    
 
82
    var req = function(deps, factory) {
 
83
        return require(id, deps, factory);
 
84
    };
 
85
 
 
86
    require.modules[id] = {
 
87
        factory: function() {
 
88
            var module = {
 
89
                exports: {}
 
90
            };
 
91
            var returnExports = factory(req, module.exports, module);
 
92
            if (returnExports)
 
93
                module.exports = returnExports;
 
94
            return module;
 
95
        }
 
96
    };
 
97
};
 
98
 
 
99
window.initBaseUrls  = function initBaseUrls(topLevelNamespaces) {
 
100
    require.tlns = topLevelNamespaces;
 
101
}
 
102
 
 
103
window.initSender = function initSender() {
 
104
 
 
105
    var EventEmitter = require(null, "ace/lib/event_emitter").EventEmitter;
 
106
    var oop = require(null, "ace/lib/oop");
 
107
    
 
108
    var Sender = function() {};
 
109
    
 
110
    (function() {
 
111
        
 
112
        oop.implement(this, EventEmitter);
 
113
                
 
114
        this.callback = function(data, callbackId) {
 
115
            postMessage({
 
116
                type: "call",
 
117
                id: callbackId,
 
118
                data: data
 
119
            });
 
120
        };
 
121
    
 
122
        this.emit = function(name, data) {
 
123
            postMessage({
 
124
                type: "event",
 
125
                name: name,
 
126
                data: data
 
127
            });
 
128
        };
 
129
        
 
130
    }).call(Sender.prototype);
 
131
    
 
132
    return new Sender();
 
133
}
 
134
 
 
135
window.main = null;
 
136
window.sender = null;
 
137
 
 
138
window.onmessage = function(e) {
 
139
    var msg = e.data;
 
140
    if (msg.command) {
 
141
        if (main[msg.command])
 
142
            main[msg.command].apply(main, msg.args);
 
143
        else
 
144
            throw new Error("Unknown command:" + msg.command);
 
145
    }
 
146
    else if (msg.init) {        
 
147
        initBaseUrls(msg.tlns);
 
148
        require(null, "ace/lib/fixoldbrowsers");
 
149
        sender = initSender();
 
150
        var clazz = require(null, msg.module)[msg.classname];
 
151
        main = new clazz(sender);
 
152
    } 
 
153
    else if (msg.event && sender) {
 
154
        sender._emit(msg.event, msg.data);
 
155
    }
 
156
};
 
157
})(this);// vim:set ts=4 sts=4 sw=4 st:
 
158
 
 
159
define('ace/lib/fixoldbrowsers', ['require', 'exports', 'module' , 'ace/lib/regexp', 'ace/lib/es5-shim'], function(require, exports, module) {
 
160
 
 
161
 
 
162
require("./regexp");
 
163
require("./es5-shim");
 
164
 
 
165
});
 
166
 
 
167
define('ace/lib/regexp', ['require', 'exports', 'module' ], function(require, exports, module) {
 
168
 
 
169
    var real = {
 
170
            exec: RegExp.prototype.exec,
 
171
            test: RegExp.prototype.test,
 
172
            match: String.prototype.match,
 
173
            replace: String.prototype.replace,
 
174
            split: String.prototype.split
 
175
        },
 
176
        compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups
 
177
        compliantLastIndexIncrement = function () {
 
178
            var x = /^/g;
 
179
            real.test.call(x, "");
 
180
            return !x.lastIndex;
 
181
        }();
 
182
 
 
183
    if (compliantLastIndexIncrement && compliantExecNpcg)
 
184
        return;
 
185
    RegExp.prototype.exec = function (str) {
 
186
        var match = real.exec.apply(this, arguments),
 
187
            name, r2;
 
188
        if ( typeof(str) == 'string' && match) {
 
189
            if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) {
 
190
                r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", ""));
 
191
                real.replace.call(str.slice(match.index), r2, function () {
 
192
                    for (var i = 1; i < arguments.length - 2; i++) {
 
193
                        if (arguments[i] === undefined)
 
194
                            match[i] = undefined;
 
195
                    }
 
196
                });
 
197
            }
 
198
            if (this._xregexp && this._xregexp.captureNames) {
 
199
                for (var i = 1; i < match.length; i++) {
 
200
                    name = this._xregexp.captureNames[i - 1];
 
201
                    if (name)
 
202
                       match[name] = match[i];
 
203
                }
 
204
            }
 
205
            if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
 
206
                this.lastIndex--;
 
207
        }
 
208
        return match;
 
209
    };
 
210
    if (!compliantLastIndexIncrement) {
 
211
        RegExp.prototype.test = function (str) {
 
212
            var match = real.exec.call(this, str);
 
213
            if (match && this.global && !match[0].length && (this.lastIndex > match.index))
 
214
                this.lastIndex--;
 
215
            return !!match;
 
216
        };
 
217
    }
 
218
 
 
219
    function getNativeFlags (regex) {
 
220
        return (regex.global     ? "g" : "") +
 
221
               (regex.ignoreCase ? "i" : "") +
 
222
               (regex.multiline  ? "m" : "") +
 
223
               (regex.extended   ? "x" : "") + // Proposed for ES4; included in AS3
 
224
               (regex.sticky     ? "y" : "");
 
225
    }
 
226
 
 
227
    function indexOf (array, item, from) {
 
228
        if (Array.prototype.indexOf) // Use the native array method if available
 
229
            return array.indexOf(item, from);
 
230
        for (var i = from || 0; i < array.length; i++) {
 
231
            if (array[i] === item)
 
232
                return i;
 
233
        }
 
234
        return -1;
 
235
    }
 
236
 
 
237
});
 
238
 
 
239
define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
 
240
 
 
241
function Empty() {}
 
242
 
 
243
if (!Function.prototype.bind) {
 
244
    Function.prototype.bind = function bind(that) { // .length is 1
 
245
        var target = this;
 
246
        if (typeof target != "function") {
 
247
            throw new TypeError("Function.prototype.bind called on incompatible " + target);
 
248
        }
 
249
        var args = slice.call(arguments, 1); // for normal call
 
250
        var bound = function () {
 
251
 
 
252
            if (this instanceof bound) {
 
253
 
 
254
                var result = target.apply(
 
255
                    this,
 
256
                    args.concat(slice.call(arguments))
 
257
                );
 
258
                if (Object(result) === result) {
 
259
                    return result;
 
260
                }
 
261
                return this;
 
262
 
 
263
            } else {
 
264
                return target.apply(
 
265
                    that,
 
266
                    args.concat(slice.call(arguments))
 
267
                );
 
268
 
 
269
            }
 
270
 
 
271
        };
 
272
        if(target.prototype) {
 
273
            Empty.prototype = target.prototype;
 
274
            bound.prototype = new Empty();
 
275
            Empty.prototype = null;
 
276
        }
 
277
        return bound;
 
278
    };
 
279
}
 
280
var call = Function.prototype.call;
 
281
var prototypeOfArray = Array.prototype;
 
282
var prototypeOfObject = Object.prototype;
 
283
var slice = prototypeOfArray.slice;
 
284
var _toString = call.bind(prototypeOfObject.toString);
 
285
var owns = call.bind(prototypeOfObject.hasOwnProperty);
 
286
var defineGetter;
 
287
var defineSetter;
 
288
var lookupGetter;
 
289
var lookupSetter;
 
290
var supportsAccessors;
 
291
if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
 
292
    defineGetter = call.bind(prototypeOfObject.__defineGetter__);
 
293
    defineSetter = call.bind(prototypeOfObject.__defineSetter__);
 
294
    lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
 
295
    lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
 
296
}
 
297
if ([1,2].splice(0).length != 2) {
 
298
    if(function() { // test IE < 9 to splice bug - see issue #138
 
299
        function makeArray(l) {
 
300
            var a = new Array(l+2);
 
301
            a[0] = a[1] = 0;
 
302
            return a;
 
303
        }
 
304
        var array = [], lengthBefore;
 
305
        
 
306
        array.splice.apply(array, makeArray(20));
 
307
        array.splice.apply(array, makeArray(26));
 
308
 
 
309
        lengthBefore = array.length; //46
 
310
        array.splice(5, 0, "XXX"); // add one element
 
311
 
 
312
        lengthBefore + 1 == array.length
 
313
 
 
314
        if (lengthBefore + 1 == array.length) {
 
315
            return true;// has right splice implementation without bugs
 
316
        }
 
317
    }()) {//IE 6/7
 
318
        var array_splice = Array.prototype.splice;
 
319
        Array.prototype.splice = function(start, deleteCount) {
 
320
            if (!arguments.length) {
 
321
                return [];
 
322
            } else {
 
323
                return array_splice.apply(this, [
 
324
                    start === void 0 ? 0 : start,
 
325
                    deleteCount === void 0 ? (this.length - start) : deleteCount
 
326
                ].concat(slice.call(arguments, 2)))
 
327
            }
 
328
        };
 
329
    } else {//IE8
 
330
        Array.prototype.splice = function(pos, removeCount){
 
331
            var length = this.length;
 
332
            if (pos > 0) {
 
333
                if (pos > length)
 
334
                    pos = length;
 
335
            } else if (pos == void 0) {
 
336
                pos = 0;
 
337
            } else if (pos < 0) {
 
338
                pos = Math.max(length + pos, 0);
 
339
            }
 
340
 
 
341
            if (!(pos+removeCount < length))
 
342
                removeCount = length - pos;
 
343
 
 
344
            var removed = this.slice(pos, pos+removeCount);
 
345
            var insert = slice.call(arguments, 2);
 
346
            var add = insert.length;            
 
347
            if (pos === length) {
 
348
                if (add) {
 
349
                    this.push.apply(this, insert);
 
350
                }
 
351
            } else {
 
352
                var remove = Math.min(removeCount, length - pos);
 
353
                var tailOldPos = pos + remove;
 
354
                var tailNewPos = tailOldPos + add - remove;
 
355
                var tailCount = length - tailOldPos;
 
356
                var lengthAfterRemove = length - remove;
 
357
 
 
358
                if (tailNewPos < tailOldPos) { // case A
 
359
                    for (var i = 0; i < tailCount; ++i) {
 
360
                        this[tailNewPos+i] = this[tailOldPos+i];
 
361
                    }
 
362
                } else if (tailNewPos > tailOldPos) { // case B
 
363
                    for (i = tailCount; i--; ) {
 
364
                        this[tailNewPos+i] = this[tailOldPos+i];
 
365
                    }
 
366
                } // else, add == remove (nothing to do)
 
367
 
 
368
                if (add && pos === lengthAfterRemove) {
 
369
                    this.length = lengthAfterRemove; // truncate array
 
370
                    this.push.apply(this, insert);
 
371
                } else {
 
372
                    this.length = lengthAfterRemove + add; // reserves space
 
373
                    for (i = 0; i < add; ++i) {
 
374
                        this[pos+i] = insert[i];
 
375
                    }
 
376
                }
 
377
            }
 
378
            return removed;
 
379
        };
 
380
    }
 
381
}
 
382
if (!Array.isArray) {
 
383
    Array.isArray = function isArray(obj) {
 
384
        return _toString(obj) == "[object Array]";
 
385
    };
 
386
}
 
387
var boxedString = Object("a"),
 
388
    splitString = boxedString[0] != "a" || !(0 in boxedString);
 
389
 
 
390
if (!Array.prototype.forEach) {
 
391
    Array.prototype.forEach = function forEach(fun /*, thisp*/) {
 
392
        var object = toObject(this),
 
393
            self = splitString && _toString(this) == "[object String]" ?
 
394
                this.split("") :
 
395
                object,
 
396
            thisp = arguments[1],
 
397
            i = -1,
 
398
            length = self.length >>> 0;
 
399
        if (_toString(fun) != "[object Function]") {
 
400
            throw new TypeError(); // TODO message
 
401
        }
 
402
 
 
403
        while (++i < length) {
 
404
            if (i in self) {
 
405
                fun.call(thisp, self[i], i, object);
 
406
            }
 
407
        }
 
408
    };
 
409
}
 
410
if (!Array.prototype.map) {
 
411
    Array.prototype.map = function map(fun /*, thisp*/) {
 
412
        var object = toObject(this),
 
413
            self = splitString && _toString(this) == "[object String]" ?
 
414
                this.split("") :
 
415
                object,
 
416
            length = self.length >>> 0,
 
417
            result = Array(length),
 
418
            thisp = arguments[1];
 
419
        if (_toString(fun) != "[object Function]") {
 
420
            throw new TypeError(fun + " is not a function");
 
421
        }
 
422
 
 
423
        for (var i = 0; i < length; i++) {
 
424
            if (i in self)
 
425
                result[i] = fun.call(thisp, self[i], i, object);
 
426
        }
 
427
        return result;
 
428
    };
 
429
}
 
430
if (!Array.prototype.filter) {
 
431
    Array.prototype.filter = function filter(fun /*, thisp */) {
 
432
        var object = toObject(this),
 
433
            self = splitString && _toString(this) == "[object String]" ?
 
434
                this.split("") :
 
435
                    object,
 
436
            length = self.length >>> 0,
 
437
            result = [],
 
438
            value,
 
439
            thisp = arguments[1];
 
440
        if (_toString(fun) != "[object Function]") {
 
441
            throw new TypeError(fun + " is not a function");
 
442
        }
 
443
 
 
444
        for (var i = 0; i < length; i++) {
 
445
            if (i in self) {
 
446
                value = self[i];
 
447
                if (fun.call(thisp, value, i, object)) {
 
448
                    result.push(value);
 
449
                }
 
450
            }
 
451
        }
 
452
        return result;
 
453
    };
 
454
}
 
455
if (!Array.prototype.every) {
 
456
    Array.prototype.every = function every(fun /*, thisp */) {
 
457
        var object = toObject(this),
 
458
            self = splitString && _toString(this) == "[object String]" ?
 
459
                this.split("") :
 
460
                object,
 
461
            length = self.length >>> 0,
 
462
            thisp = arguments[1];
 
463
        if (_toString(fun) != "[object Function]") {
 
464
            throw new TypeError(fun + " is not a function");
 
465
        }
 
466
 
 
467
        for (var i = 0; i < length; i++) {
 
468
            if (i in self && !fun.call(thisp, self[i], i, object)) {
 
469
                return false;
 
470
            }
 
471
        }
 
472
        return true;
 
473
    };
 
474
}
 
475
if (!Array.prototype.some) {
 
476
    Array.prototype.some = function some(fun /*, thisp */) {
 
477
        var object = toObject(this),
 
478
            self = splitString && _toString(this) == "[object String]" ?
 
479
                this.split("") :
 
480
                object,
 
481
            length = self.length >>> 0,
 
482
            thisp = arguments[1];
 
483
        if (_toString(fun) != "[object Function]") {
 
484
            throw new TypeError(fun + " is not a function");
 
485
        }
 
486
 
 
487
        for (var i = 0; i < length; i++) {
 
488
            if (i in self && fun.call(thisp, self[i], i, object)) {
 
489
                return true;
 
490
            }
 
491
        }
 
492
        return false;
 
493
    };
 
494
}
 
495
if (!Array.prototype.reduce) {
 
496
    Array.prototype.reduce = function reduce(fun /*, initial*/) {
 
497
        var object = toObject(this),
 
498
            self = splitString && _toString(this) == "[object String]" ?
 
499
                this.split("") :
 
500
                object,
 
501
            length = self.length >>> 0;
 
502
        if (_toString(fun) != "[object Function]") {
 
503
            throw new TypeError(fun + " is not a function");
 
504
        }
 
505
        if (!length && arguments.length == 1) {
 
506
            throw new TypeError("reduce of empty array with no initial value");
 
507
        }
 
508
 
 
509
        var i = 0;
 
510
        var result;
 
511
        if (arguments.length >= 2) {
 
512
            result = arguments[1];
 
513
        } else {
 
514
            do {
 
515
                if (i in self) {
 
516
                    result = self[i++];
 
517
                    break;
 
518
                }
 
519
                if (++i >= length) {
 
520
                    throw new TypeError("reduce of empty array with no initial value");
 
521
                }
 
522
            } while (true);
 
523
        }
 
524
 
 
525
        for (; i < length; i++) {
 
526
            if (i in self) {
 
527
                result = fun.call(void 0, result, self[i], i, object);
 
528
            }
 
529
        }
 
530
 
 
531
        return result;
 
532
    };
 
533
}
 
534
if (!Array.prototype.reduceRight) {
 
535
    Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
 
536
        var object = toObject(this),
 
537
            self = splitString && _toString(this) == "[object String]" ?
 
538
                this.split("") :
 
539
                object,
 
540
            length = self.length >>> 0;
 
541
        if (_toString(fun) != "[object Function]") {
 
542
            throw new TypeError(fun + " is not a function");
 
543
        }
 
544
        if (!length && arguments.length == 1) {
 
545
            throw new TypeError("reduceRight of empty array with no initial value");
 
546
        }
 
547
 
 
548
        var result, i = length - 1;
 
549
        if (arguments.length >= 2) {
 
550
            result = arguments[1];
 
551
        } else {
 
552
            do {
 
553
                if (i in self) {
 
554
                    result = self[i--];
 
555
                    break;
 
556
                }
 
557
                if (--i < 0) {
 
558
                    throw new TypeError("reduceRight of empty array with no initial value");
 
559
                }
 
560
            } while (true);
 
561
        }
 
562
 
 
563
        do {
 
564
            if (i in this) {
 
565
                result = fun.call(void 0, result, self[i], i, object);
 
566
            }
 
567
        } while (i--);
 
568
 
 
569
        return result;
 
570
    };
 
571
}
 
572
if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
 
573
    Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
 
574
        var self = splitString && _toString(this) == "[object String]" ?
 
575
                this.split("") :
 
576
                toObject(this),
 
577
            length = self.length >>> 0;
 
578
 
 
579
        if (!length) {
 
580
            return -1;
 
581
        }
 
582
 
 
583
        var i = 0;
 
584
        if (arguments.length > 1) {
 
585
            i = toInteger(arguments[1]);
 
586
        }
 
587
        i = i >= 0 ? i : Math.max(0, length + i);
 
588
        for (; i < length; i++) {
 
589
            if (i in self && self[i] === sought) {
 
590
                return i;
 
591
            }
 
592
        }
 
593
        return -1;
 
594
    };
 
595
}
 
596
if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
 
597
    Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
 
598
        var self = splitString && _toString(this) == "[object String]" ?
 
599
                this.split("") :
 
600
                toObject(this),
 
601
            length = self.length >>> 0;
 
602
 
 
603
        if (!length) {
 
604
            return -1;
 
605
        }
 
606
        var i = length - 1;
 
607
        if (arguments.length > 1) {
 
608
            i = Math.min(i, toInteger(arguments[1]));
 
609
        }
 
610
        i = i >= 0 ? i : length - Math.abs(i);
 
611
        for (; i >= 0; i--) {
 
612
            if (i in self && sought === self[i]) {
 
613
                return i;
 
614
            }
 
615
        }
 
616
        return -1;
 
617
    };
 
618
}
 
619
if (!Object.getPrototypeOf) {
 
620
    Object.getPrototypeOf = function getPrototypeOf(object) {
 
621
        return object.__proto__ || (
 
622
            object.constructor ?
 
623
            object.constructor.prototype :
 
624
            prototypeOfObject
 
625
        );
 
626
    };
 
627
}
 
628
if (!Object.getOwnPropertyDescriptor) {
 
629
    var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
 
630
                         "non-object: ";
 
631
    Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
 
632
        if ((typeof object != "object" && typeof object != "function") || object === null)
 
633
            throw new TypeError(ERR_NON_OBJECT + object);
 
634
        if (!owns(object, property))
 
635
            return;
 
636
 
 
637
        var descriptor, getter, setter;
 
638
        descriptor =  { enumerable: true, configurable: true };
 
639
        if (supportsAccessors) {
 
640
            var prototype = object.__proto__;
 
641
            object.__proto__ = prototypeOfObject;
 
642
 
 
643
            var getter = lookupGetter(object, property);
 
644
            var setter = lookupSetter(object, property);
 
645
            object.__proto__ = prototype;
 
646
 
 
647
            if (getter || setter) {
 
648
                if (getter) descriptor.get = getter;
 
649
                if (setter) descriptor.set = setter;
 
650
                return descriptor;
 
651
            }
 
652
        }
 
653
        descriptor.value = object[property];
 
654
        return descriptor;
 
655
    };
 
656
}
 
657
if (!Object.getOwnPropertyNames) {
 
658
    Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
 
659
        return Object.keys(object);
 
660
    };
 
661
}
 
662
if (!Object.create) {
 
663
    var createEmpty;
 
664
    if (Object.prototype.__proto__ === null) {
 
665
        createEmpty = function () {
 
666
            return { "__proto__": null };
 
667
        };
 
668
    } else {
 
669
        createEmpty = function () {
 
670
            var empty = {};
 
671
            for (var i in empty)
 
672
                empty[i] = null;
 
673
            empty.constructor =
 
674
            empty.hasOwnProperty =
 
675
            empty.propertyIsEnumerable =
 
676
            empty.isPrototypeOf =
 
677
            empty.toLocaleString =
 
678
            empty.toString =
 
679
            empty.valueOf =
 
680
            empty.__proto__ = null;
 
681
            return empty;
 
682
        }
 
683
    }
 
684
 
 
685
    Object.create = function create(prototype, properties) {
 
686
        var object;
 
687
        if (prototype === null) {
 
688
            object = createEmpty();
 
689
        } else {
 
690
            if (typeof prototype != "object")
 
691
                throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
 
692
            var Type = function () {};
 
693
            Type.prototype = prototype;
 
694
            object = new Type();
 
695
            object.__proto__ = prototype;
 
696
        }
 
697
        if (properties !== void 0)
 
698
            Object.defineProperties(object, properties);
 
699
        return object;
 
700
    };
 
701
}
 
702
 
 
703
function doesDefinePropertyWork(object) {
 
704
    try {
 
705
        Object.defineProperty(object, "sentinel", {});
 
706
        return "sentinel" in object;
 
707
    } catch (exception) {
 
708
    }
 
709
}
 
710
if (Object.defineProperty) {
 
711
    var definePropertyWorksOnObject = doesDefinePropertyWork({});
 
712
    var definePropertyWorksOnDom = typeof document == "undefined" ||
 
713
        doesDefinePropertyWork(document.createElement("div"));
 
714
    if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
 
715
        var definePropertyFallback = Object.defineProperty;
 
716
    }
 
717
}
 
718
 
 
719
if (!Object.defineProperty || definePropertyFallback) {
 
720
    var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
 
721
    var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
 
722
    var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
 
723
                                      "on this javascript engine";
 
724
 
 
725
    Object.defineProperty = function defineProperty(object, property, descriptor) {
 
726
        if ((typeof object != "object" && typeof object != "function") || object === null)
 
727
            throw new TypeError(ERR_NON_OBJECT_TARGET + object);
 
728
        if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
 
729
            throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
 
730
        if (definePropertyFallback) {
 
731
            try {
 
732
                return definePropertyFallback.call(Object, object, property, descriptor);
 
733
            } catch (exception) {
 
734
            }
 
735
        }
 
736
        if (owns(descriptor, "value")) {
 
737
 
 
738
            if (supportsAccessors && (lookupGetter(object, property) ||
 
739
                                      lookupSetter(object, property)))
 
740
            {
 
741
                var prototype = object.__proto__;
 
742
                object.__proto__ = prototypeOfObject;
 
743
                delete object[property];
 
744
                object[property] = descriptor.value;
 
745
                object.__proto__ = prototype;
 
746
            } else {
 
747
                object[property] = descriptor.value;
 
748
            }
 
749
        } else {
 
750
            if (!supportsAccessors)
 
751
                throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
 
752
            if (owns(descriptor, "get"))
 
753
                defineGetter(object, property, descriptor.get);
 
754
            if (owns(descriptor, "set"))
 
755
                defineSetter(object, property, descriptor.set);
 
756
        }
 
757
 
 
758
        return object;
 
759
    };
 
760
}
 
761
if (!Object.defineProperties) {
 
762
    Object.defineProperties = function defineProperties(object, properties) {
 
763
        for (var property in properties) {
 
764
            if (owns(properties, property))
 
765
                Object.defineProperty(object, property, properties[property]);
 
766
        }
 
767
        return object;
 
768
    };
 
769
}
 
770
if (!Object.seal) {
 
771
    Object.seal = function seal(object) {
 
772
        return object;
 
773
    };
 
774
}
 
775
if (!Object.freeze) {
 
776
    Object.freeze = function freeze(object) {
 
777
        return object;
 
778
    };
 
779
}
 
780
try {
 
781
    Object.freeze(function () {});
 
782
} catch (exception) {
 
783
    Object.freeze = (function freeze(freezeObject) {
 
784
        return function freeze(object) {
 
785
            if (typeof object == "function") {
 
786
                return object;
 
787
            } else {
 
788
                return freezeObject(object);
 
789
            }
 
790
        };
 
791
    })(Object.freeze);
 
792
}
 
793
if (!Object.preventExtensions) {
 
794
    Object.preventExtensions = function preventExtensions(object) {
 
795
        return object;
 
796
    };
 
797
}
 
798
if (!Object.isSealed) {
 
799
    Object.isSealed = function isSealed(object) {
 
800
        return false;
 
801
    };
 
802
}
 
803
if (!Object.isFrozen) {
 
804
    Object.isFrozen = function isFrozen(object) {
 
805
        return false;
 
806
    };
 
807
}
 
808
if (!Object.isExtensible) {
 
809
    Object.isExtensible = function isExtensible(object) {
 
810
        if (Object(object) === object) {
 
811
            throw new TypeError(); // TODO message
 
812
        }
 
813
        var name = '';
 
814
        while (owns(object, name)) {
 
815
            name += '?';
 
816
        }
 
817
        object[name] = true;
 
818
        var returnValue = owns(object, name);
 
819
        delete object[name];
 
820
        return returnValue;
 
821
    };
 
822
}
 
823
if (!Object.keys) {
 
824
    var hasDontEnumBug = true,
 
825
        dontEnums = [
 
826
            "toString",
 
827
            "toLocaleString",
 
828
            "valueOf",
 
829
            "hasOwnProperty",
 
830
            "isPrototypeOf",
 
831
            "propertyIsEnumerable",
 
832
            "constructor"
 
833
        ],
 
834
        dontEnumsLength = dontEnums.length;
 
835
 
 
836
    for (var key in {"toString": null}) {
 
837
        hasDontEnumBug = false;
 
838
    }
 
839
 
 
840
    Object.keys = function keys(object) {
 
841
 
 
842
        if (
 
843
            (typeof object != "object" && typeof object != "function") ||
 
844
            object === null
 
845
        ) {
 
846
            throw new TypeError("Object.keys called on a non-object");
 
847
        }
 
848
 
 
849
        var keys = [];
 
850
        for (var name in object) {
 
851
            if (owns(object, name)) {
 
852
                keys.push(name);
 
853
            }
 
854
        }
 
855
 
 
856
        if (hasDontEnumBug) {
 
857
            for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
 
858
                var dontEnum = dontEnums[i];
 
859
                if (owns(object, dontEnum)) {
 
860
                    keys.push(dontEnum);
 
861
                }
 
862
            }
 
863
        }
 
864
        return keys;
 
865
    };
 
866
 
 
867
}
 
868
if (!Date.now) {
 
869
    Date.now = function now() {
 
870
        return new Date().getTime();
 
871
    };
 
872
}
 
873
var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
 
874
    "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
 
875
    "\u2029\uFEFF";
 
876
if (!String.prototype.trim || ws.trim()) {
 
877
    ws = "[" + ws + "]";
 
878
    var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
 
879
        trimEndRegexp = new RegExp(ws + ws + "*$");
 
880
    String.prototype.trim = function trim() {
 
881
        return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
 
882
    };
 
883
}
 
884
 
 
885
function toInteger(n) {
 
886
    n = +n;
 
887
    if (n !== n) { // isNaN
 
888
        n = 0;
 
889
    } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
 
890
        n = (n > 0 || -1) * Math.floor(Math.abs(n));
 
891
    }
 
892
    return n;
 
893
}
 
894
 
 
895
function isPrimitive(input) {
 
896
    var type = typeof input;
 
897
    return (
 
898
        input === null ||
 
899
        type === "undefined" ||
 
900
        type === "boolean" ||
 
901
        type === "number" ||
 
902
        type === "string"
 
903
    );
 
904
}
 
905
 
 
906
function toPrimitive(input) {
 
907
    var val, valueOf, toString;
 
908
    if (isPrimitive(input)) {
 
909
        return input;
 
910
    }
 
911
    valueOf = input.valueOf;
 
912
    if (typeof valueOf === "function") {
 
913
        val = valueOf.call(input);
 
914
        if (isPrimitive(val)) {
 
915
            return val;
 
916
        }
 
917
    }
 
918
    toString = input.toString;
 
919
    if (typeof toString === "function") {
 
920
        val = toString.call(input);
 
921
        if (isPrimitive(val)) {
 
922
            return val;
 
923
        }
 
924
    }
 
925
    throw new TypeError();
 
926
}
 
927
var toObject = function (o) {
 
928
    if (o == null) { // this matches both null and undefined
 
929
        throw new TypeError("can't convert "+o+" to object");
 
930
    }
 
931
    return Object(o);
 
932
};
 
933
 
 
934
});
 
935
 
 
936
define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
 
937
 
 
938
 
 
939
var EventEmitter = {};
 
940
var stopPropagation = function() { this.propagationStopped = true; };
 
941
var preventDefault = function() { this.defaultPrevented = true; };
 
942
 
 
943
EventEmitter._emit =
 
944
EventEmitter._dispatchEvent = function(eventName, e) {
 
945
    this._eventRegistry || (this._eventRegistry = {});
 
946
    this._defaultHandlers || (this._defaultHandlers = {});
 
947
 
 
948
    var listeners = this._eventRegistry[eventName] || [];
 
949
    var defaultHandler = this._defaultHandlers[eventName];
 
950
    if (!listeners.length && !defaultHandler)
 
951
        return;
 
952
 
 
953
    if (typeof e != "object" || !e)
 
954
        e = {};
 
955
 
 
956
    if (!e.type)
 
957
        e.type = eventName;
 
958
    if (!e.stopPropagation)
 
959
        e.stopPropagation = stopPropagation;
 
960
    if (!e.preventDefault)
 
961
        e.preventDefault = preventDefault;
 
962
    if (!e.target)
 
963
        e.target = this;
 
964
 
 
965
    for (var i=0; i<listeners.length; i++) {
 
966
        listeners[i](e);
 
967
        if (e.propagationStopped)
 
968
            break;
 
969
    }
 
970
    
 
971
    if (defaultHandler && !e.defaultPrevented)
 
972
        return defaultHandler(e);
 
973
};
 
974
 
 
975
 
 
976
EventEmitter._signal = function(eventName, e) {
 
977
    var listeners = (this._eventRegistry || {})[eventName];
 
978
    if (!listeners)
 
979
        return;
 
980
 
 
981
    for (var i=0; i<listeners.length; i++)
 
982
        listeners[i](e);
 
983
};
 
984
 
 
985
EventEmitter.once = function(eventName, callback) {
 
986
    var _self = this;
 
987
    var newCallback = function() {
 
988
        fun && fun.apply(null, arguments);
 
989
        _self.removeEventListener(event, newCallback);
 
990
    };
 
991
    this.addEventListener(event, newCallback);
 
992
};
 
993
 
 
994
 
 
995
EventEmitter.setDefaultHandler = function(eventName, callback) {
 
996
    this._defaultHandlers = this._defaultHandlers || {};
 
997
    
 
998
    if (this._defaultHandlers[eventName])
 
999
        throw new Error("The default handler for '" + eventName + "' is already set");
 
1000
        
 
1001
    this._defaultHandlers[eventName] = callback;
 
1002
};
 
1003
 
 
1004
EventEmitter.on =
 
1005
EventEmitter.addEventListener = function(eventName, callback, capturing) {
 
1006
    this._eventRegistry = this._eventRegistry || {};
 
1007
 
 
1008
    var listeners = this._eventRegistry[eventName];
 
1009
    if (!listeners)
 
1010
        listeners = this._eventRegistry[eventName] = [];
 
1011
 
 
1012
    if (listeners.indexOf(callback) == -1)
 
1013
        listeners[capturing ? "unshift" : "push"](callback);
 
1014
    return callback;
 
1015
};
 
1016
 
 
1017
EventEmitter.removeListener =
 
1018
EventEmitter.removeEventListener = function(eventName, callback) {
 
1019
    this._eventRegistry = this._eventRegistry || {};
 
1020
 
 
1021
    var listeners = this._eventRegistry[eventName];
 
1022
    if (!listeners)
 
1023
        return;
 
1024
 
 
1025
    var index = listeners.indexOf(callback);
 
1026
    if (index !== -1)
 
1027
        listeners.splice(index, 1);
 
1028
};
 
1029
 
 
1030
EventEmitter.removeAllListeners = function(eventName) {
 
1031
    if (this._eventRegistry) this._eventRegistry[eventName] = [];
 
1032
};
 
1033
 
 
1034
exports.EventEmitter = EventEmitter;
 
1035
 
 
1036
});
 
1037
 
 
1038
define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
 
1039
 
 
1040
 
 
1041
exports.inherits = (function() {
 
1042
    var tempCtor = function() {};
 
1043
    return function(ctor, superCtor) {
 
1044
        tempCtor.prototype = superCtor.prototype;
 
1045
        ctor.super_ = superCtor.prototype;
 
1046
        ctor.prototype = new tempCtor();
 
1047
        ctor.prototype.constructor = ctor;
 
1048
    };
 
1049
}());
 
1050
 
 
1051
exports.mixin = function(obj, mixin) {
 
1052
    for (var key in mixin) {
 
1053
        obj[key] = mixin[key];
 
1054
    }
 
1055
};
 
1056
 
 
1057
exports.implement = function(proto, mixin) {
 
1058
    exports.mixin(proto, mixin);
 
1059
};
 
1060
 
 
1061
});
 
1062
 
 
1063
define('ace/mode/xquery_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/xquery/JSONParseTreeHandler', 'ace/mode/xquery/XQueryParser', 'ace/mode/xquery/visitors/SemanticHighlighter'], function(require, exports, module) {
 
1064
 
 
1065
    
 
1066
var oop = require("../lib/oop");
 
1067
var Mirror = require("../worker/mirror").Mirror;
 
1068
var JSONParseTreeHandler  = require("./xquery/JSONParseTreeHandler").JSONParseTreeHandler;
 
1069
var XQueryParser  = require("./xquery/XQueryParser").XQueryParser;
 
1070
var SemanticHighlighter = require("./xquery/visitors/SemanticHighlighter").SemanticHighlighter;
 
1071
 
 
1072
var XQueryWorker = exports.XQueryWorker = function(sender) {
 
1073
    Mirror.call(this, sender);
 
1074
    this.setTimeout(200);
 
1075
};
 
1076
 
 
1077
oop.inherits(XQueryWorker, Mirror);
 
1078
 
 
1079
(function() {
 
1080
    
 
1081
  this.onUpdate = function() {
 
1082
    this.sender.emit("start");
 
1083
    var value = this.doc.getValue();    
 
1084
    var h = new JSONParseTreeHandler(value);
 
1085
    var parser = new XQueryParser(value, h);
 
1086
    try {
 
1087
      parser.parse_XQuery();
 
1088
      this.sender.emit("ok");
 
1089
      var ast = h.getParseTree();
 
1090
      var highlighter = new SemanticHighlighter(ast, value);
 
1091
      var tokens = highlighter.getTokens();
 
1092
      this.sender.emit("highlight", { tokens: tokens, lines: highlighter.lines });
 
1093
    } catch(e) {
 
1094
      if(e instanceof parser.ParseException) {
 
1095
        var prefix = value.substring(0, e.getBegin());
 
1096
        var line = prefix.split("\n").length;
 
1097
        var column = e.getBegin() - prefix.lastIndexOf("\n");
 
1098
        var message = parser.getErrorMessage(e);
 
1099
        this.sender.emit("error", {
 
1100
          row: line - 1,
 
1101
          column: column,
 
1102
          text: message,
 
1103
          type: "error"
 
1104
        });
 
1105
      } else {
 
1106
        throw e;
 
1107
      }
 
1108
    }
 
1109
 };
 
1110
    
 
1111
}).call(XQueryWorker.prototype);
 
1112
 
 
1113
});
 
1114
define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
 
1115
 
 
1116
 
 
1117
var Document = require("../document").Document;
 
1118
var lang = require("../lib/lang");
 
1119
    
 
1120
var Mirror = exports.Mirror = function(sender) {
 
1121
    this.sender = sender;
 
1122
    var doc = this.doc = new Document("");
 
1123
    
 
1124
    var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
 
1125
    
 
1126
    var _self = this;
 
1127
    sender.on("change", function(e) {
 
1128
        doc.applyDeltas([e.data]);        
 
1129
        deferredUpdate.schedule(_self.$timeout);
 
1130
    });
 
1131
};
 
1132
 
 
1133
(function() {
 
1134
    
 
1135
    this.$timeout = 500;
 
1136
    
 
1137
    this.setTimeout = function(timeout) {
 
1138
        this.$timeout = timeout;
 
1139
    };
 
1140
    
 
1141
    this.setValue = function(value) {
 
1142
        this.doc.setValue(value);
 
1143
        this.deferredUpdate.schedule(this.$timeout);
 
1144
    };
 
1145
    
 
1146
    this.getValue = function(callbackId) {
 
1147
        this.sender.callback(this.doc.getValue(), callbackId);
 
1148
    };
 
1149
    
 
1150
    this.onUpdate = function() {
 
1151
    };
 
1152
    
 
1153
}).call(Mirror.prototype);
 
1154
 
 
1155
});
 
1156
 
 
1157
define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
 
1158
 
 
1159
 
 
1160
var oop = require("./lib/oop");
 
1161
var EventEmitter = require("./lib/event_emitter").EventEmitter;
 
1162
var Range = require("./range").Range;
 
1163
var Anchor = require("./anchor").Anchor;
 
1164
 
 
1165
var Document = function(text) {
 
1166
    this.$lines = [];
 
1167
    if (text.length == 0) {
 
1168
        this.$lines = [""];
 
1169
    } else if (Array.isArray(text)) {
 
1170
        this.insertLines(0, text);
 
1171
    } else {
 
1172
        this.insert({row: 0, column:0}, text);
 
1173
    }
 
1174
};
 
1175
 
 
1176
(function() {
 
1177
 
 
1178
    oop.implement(this, EventEmitter);
 
1179
    this.setValue = function(text) {
 
1180
        var len = this.getLength();
 
1181
        this.remove(new Range(0, 0, len, this.getLine(len-1).length));
 
1182
        this.insert({row: 0, column:0}, text);
 
1183
    };
 
1184
    this.getValue = function() {
 
1185
        return this.getAllLines().join(this.getNewLineCharacter());
 
1186
    };
 
1187
    this.createAnchor = function(row, column) {
 
1188
        return new Anchor(this, row, column);
 
1189
    };
 
1190
    if ("aaa".split(/a/).length == 0)
 
1191
        this.$split = function(text) {
 
1192
            return text.replace(/\r\n|\r/g, "\n").split("\n");
 
1193
        }
 
1194
    else
 
1195
        this.$split = function(text) {
 
1196
            return text.split(/\r\n|\r|\n/);
 
1197
        };
 
1198
 
 
1199
 
 
1200
 
 
1201
    this.$detectNewLine = function(text) {
 
1202
        var match = text.match(/^.*?(\r\n|\r|\n)/m);
 
1203
        if (match) {
 
1204
            this.$autoNewLine = match[1];
 
1205
        } else {
 
1206
            this.$autoNewLine = "\n";
 
1207
        }
 
1208
    };
 
1209
    this.getNewLineCharacter = function() {
 
1210
        switch (this.$newLineMode) {
 
1211
          case "windows":
 
1212
            return "\r\n";
 
1213
 
 
1214
          case "unix":
 
1215
            return "\n";
 
1216
 
 
1217
          default:
 
1218
            return this.$autoNewLine;
 
1219
        }
 
1220
    };
 
1221
 
 
1222
    this.$autoNewLine = "\n";
 
1223
    this.$newLineMode = "auto";
 
1224
    this.setNewLineMode = function(newLineMode) {
 
1225
        if (this.$newLineMode === newLineMode)
 
1226
            return;
 
1227
 
 
1228
        this.$newLineMode = newLineMode;
 
1229
    };
 
1230
    this.getNewLineMode = function() {
 
1231
        return this.$newLineMode;
 
1232
    };
 
1233
    this.isNewLine = function(text) {
 
1234
        return (text == "\r\n" || text == "\r" || text == "\n");
 
1235
    };
 
1236
    this.getLine = function(row) {
 
1237
        return this.$lines[row] || "";
 
1238
    };
 
1239
    this.getLines = function(firstRow, lastRow) {
 
1240
        return this.$lines.slice(firstRow, lastRow + 1);
 
1241
    };
 
1242
    this.getAllLines = function() {
 
1243
        return this.getLines(0, this.getLength());
 
1244
    };
 
1245
    this.getLength = function() {
 
1246
        return this.$lines.length;
 
1247
    };
 
1248
    this.getTextRange = function(range) {
 
1249
        if (range.start.row == range.end.row) {
 
1250
            return this.$lines[range.start.row].substring(range.start.column,
 
1251
                                                         range.end.column);
 
1252
        }
 
1253
        else {
 
1254
            var lines = this.getLines(range.start.row+1, range.end.row-1);
 
1255
            lines.unshift((this.$lines[range.start.row] || "").substring(range.start.column));
 
1256
            lines.push((this.$lines[range.end.row] || "").substring(0, range.end.column));
 
1257
            return lines.join(this.getNewLineCharacter());
 
1258
        }
 
1259
    };
 
1260
 
 
1261
    this.$clipPosition = function(position) {
 
1262
        var length = this.getLength();
 
1263
        if (position.row >= length) {
 
1264
            position.row = Math.max(0, length - 1);
 
1265
            position.column = this.getLine(length-1).length;
 
1266
        }
 
1267
        return position;
 
1268
    };
 
1269
    this.insert = function(position, text) {
 
1270
        if (!text || text.length === 0)
 
1271
            return position;
 
1272
 
 
1273
        position = this.$clipPosition(position);
 
1274
        if (this.getLength() <= 1)
 
1275
            this.$detectNewLine(text);
 
1276
 
 
1277
        var lines = this.$split(text);
 
1278
        var firstLine = lines.splice(0, 1)[0];
 
1279
        var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
 
1280
 
 
1281
        position = this.insertInLine(position, firstLine);
 
1282
        if (lastLine !== null) {
 
1283
            position = this.insertNewLine(position); // terminate first line
 
1284
            position = this.insertLines(position.row, lines);
 
1285
            position = this.insertInLine(position, lastLine || "");
 
1286
        }
 
1287
        return position;
 
1288
    };
 
1289
    this.insertLines = function(row, lines) {
 
1290
        if (lines.length == 0)
 
1291
            return {row: row, column: 0};
 
1292
        if (lines.length > 0xFFFF) {
 
1293
            var end = this.insertLines(row, lines.slice(0xFFFF));
 
1294
            lines = lines.slice(0, 0xFFFF);
 
1295
        }
 
1296
 
 
1297
        var args = [row, 0];
 
1298
        args.push.apply(args, lines);
 
1299
        this.$lines.splice.apply(this.$lines, args);
 
1300
 
 
1301
        var range = new Range(row, 0, row + lines.length, 0);
 
1302
        var delta = {
 
1303
            action: "insertLines",
 
1304
            range: range,
 
1305
            lines: lines
 
1306
        };
 
1307
        this._emit("change", { data: delta });
 
1308
        return end || range.end;
 
1309
    };
 
1310
    this.insertNewLine = function(position) {
 
1311
        position = this.$clipPosition(position);
 
1312
        var line = this.$lines[position.row] || "";
 
1313
 
 
1314
        this.$lines[position.row] = line.substring(0, position.column);
 
1315
        this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
 
1316
 
 
1317
        var end = {
 
1318
            row : position.row + 1,
 
1319
            column : 0
 
1320
        };
 
1321
 
 
1322
        var delta = {
 
1323
            action: "insertText",
 
1324
            range: Range.fromPoints(position, end),
 
1325
            text: this.getNewLineCharacter()
 
1326
        };
 
1327
        this._emit("change", { data: delta });
 
1328
 
 
1329
        return end;
 
1330
    };
 
1331
    this.insertInLine = function(position, text) {
 
1332
        if (text.length == 0)
 
1333
            return position;
 
1334
 
 
1335
        var line = this.$lines[position.row] || "";
 
1336
 
 
1337
        this.$lines[position.row] = line.substring(0, position.column) + text
 
1338
                + line.substring(position.column);
 
1339
 
 
1340
        var end = {
 
1341
            row : position.row,
 
1342
            column : position.column + text.length
 
1343
        };
 
1344
 
 
1345
        var delta = {
 
1346
            action: "insertText",
 
1347
            range: Range.fromPoints(position, end),
 
1348
            text: text
 
1349
        };
 
1350
        this._emit("change", { data: delta });
 
1351
 
 
1352
        return end;
 
1353
    };
 
1354
    this.remove = function(range) {
 
1355
        range.start = this.$clipPosition(range.start);
 
1356
        range.end = this.$clipPosition(range.end);
 
1357
 
 
1358
        if (range.isEmpty())
 
1359
            return range.start;
 
1360
 
 
1361
        var firstRow = range.start.row;
 
1362
        var lastRow = range.end.row;
 
1363
 
 
1364
        if (range.isMultiLine()) {
 
1365
            var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
 
1366
            var lastFullRow = lastRow - 1;
 
1367
 
 
1368
            if (range.end.column > 0)
 
1369
                this.removeInLine(lastRow, 0, range.end.column);
 
1370
 
 
1371
            if (lastFullRow >= firstFullRow)
 
1372
                this.removeLines(firstFullRow, lastFullRow);
 
1373
 
 
1374
            if (firstFullRow != firstRow) {
 
1375
                this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
 
1376
                this.removeNewLine(range.start.row);
 
1377
            }
 
1378
        }
 
1379
        else {
 
1380
            this.removeInLine(firstRow, range.start.column, range.end.column);
 
1381
        }
 
1382
        return range.start;
 
1383
    };
 
1384
    this.removeInLine = function(row, startColumn, endColumn) {
 
1385
        if (startColumn == endColumn)
 
1386
            return;
 
1387
 
 
1388
        var range = new Range(row, startColumn, row, endColumn);
 
1389
        var line = this.getLine(row);
 
1390
        var removed = line.substring(startColumn, endColumn);
 
1391
        var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
 
1392
        this.$lines.splice(row, 1, newLine);
 
1393
 
 
1394
        var delta = {
 
1395
            action: "removeText",
 
1396
            range: range,
 
1397
            text: removed
 
1398
        };
 
1399
        this._emit("change", { data: delta });
 
1400
        return range.start;
 
1401
    };
 
1402
    this.removeLines = function(firstRow, lastRow) {
 
1403
        var range = new Range(firstRow, 0, lastRow + 1, 0);
 
1404
        var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
 
1405
 
 
1406
        var delta = {
 
1407
            action: "removeLines",
 
1408
            range: range,
 
1409
            nl: this.getNewLineCharacter(),
 
1410
            lines: removed
 
1411
        };
 
1412
        this._emit("change", { data: delta });
 
1413
        return removed;
 
1414
    };
 
1415
    this.removeNewLine = function(row) {
 
1416
        var firstLine = this.getLine(row);
 
1417
        var secondLine = this.getLine(row+1);
 
1418
 
 
1419
        var range = new Range(row, firstLine.length, row+1, 0);
 
1420
        var line = firstLine + secondLine;
 
1421
 
 
1422
        this.$lines.splice(row, 2, line);
 
1423
 
 
1424
        var delta = {
 
1425
            action: "removeText",
 
1426
            range: range,
 
1427
            text: this.getNewLineCharacter()
 
1428
        };
 
1429
        this._emit("change", { data: delta });
 
1430
    };
 
1431
    this.replace = function(range, text) {
 
1432
        if (text.length == 0 && range.isEmpty())
 
1433
            return range.start;
 
1434
        if (text == this.getTextRange(range))
 
1435
            return range.end;
 
1436
 
 
1437
        this.remove(range);
 
1438
        if (text) {
 
1439
            var end = this.insert(range.start, text);
 
1440
        }
 
1441
        else {
 
1442
            end = range.start;
 
1443
        }
 
1444
 
 
1445
        return end;
 
1446
    };
 
1447
    this.applyDeltas = function(deltas) {
 
1448
        for (var i=0; i<deltas.length; i++) {
 
1449
            var delta = deltas[i];
 
1450
            var range = Range.fromPoints(delta.range.start, delta.range.end);
 
1451
 
 
1452
            if (delta.action == "insertLines")
 
1453
                this.insertLines(range.start.row, delta.lines);
 
1454
            else if (delta.action == "insertText")
 
1455
                this.insert(range.start, delta.text);
 
1456
            else if (delta.action == "removeLines")
 
1457
                this.removeLines(range.start.row, range.end.row - 1);
 
1458
            else if (delta.action == "removeText")
 
1459
                this.remove(range);
 
1460
        }
 
1461
    };
 
1462
    this.revertDeltas = function(deltas) {
 
1463
        for (var i=deltas.length-1; i>=0; i--) {
 
1464
            var delta = deltas[i];
 
1465
 
 
1466
            var range = Range.fromPoints(delta.range.start, delta.range.end);
 
1467
 
 
1468
            if (delta.action == "insertLines")
 
1469
                this.removeLines(range.start.row, range.end.row - 1);
 
1470
            else if (delta.action == "insertText")
 
1471
                this.remove(range);
 
1472
            else if (delta.action == "removeLines")
 
1473
                this.insertLines(range.start.row, delta.lines);
 
1474
            else if (delta.action == "removeText")
 
1475
                this.insert(range.start, delta.text);
 
1476
        }
 
1477
    };
 
1478
    this.indexToPosition = function(index, startRow) {
 
1479
        var lines = this.$lines || this.getAllLines();
 
1480
        var newlineLength = this.getNewLineCharacter().length;
 
1481
        for (var i = startRow || 0, l = lines.length; i < l; i++) {
 
1482
            index -= lines[i].length + newlineLength;
 
1483
            if (index < 0)
 
1484
                return {row: i, column: index + lines[i].length + newlineLength};
 
1485
        }
 
1486
        return {row: l-1, column: lines[l-1].length};
 
1487
    };
 
1488
    this.positionToIndex = function(pos, startRow) {
 
1489
        var lines = this.$lines || this.getAllLines();
 
1490
        var newlineLength = this.getNewLineCharacter().length;
 
1491
        var index = 0;
 
1492
        var row = Math.min(pos.row, lines.length);
 
1493
        for (var i = startRow || 0; i < row; ++i)
 
1494
            index += lines[i].length;
 
1495
 
 
1496
        return index + newlineLength * i + pos.column;
 
1497
    };
 
1498
 
 
1499
}).call(Document.prototype);
 
1500
 
 
1501
exports.Document = Document;
 
1502
});
 
1503
 
 
1504
define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
 
1505
 
 
1506
var comparePoints = function(p1, p2) {
 
1507
    return p1.row - p2.row || p1.column - p2.column;
 
1508
};
 
1509
var Range = function(startRow, startColumn, endRow, endColumn) {
 
1510
    this.start = {
 
1511
        row: startRow,
 
1512
        column: startColumn
 
1513
    };
 
1514
 
 
1515
    this.end = {
 
1516
        row: endRow,
 
1517
        column: endColumn
 
1518
    };
 
1519
};
 
1520
 
 
1521
(function() {
 
1522
    this.isEqual = function(range) {
 
1523
        return this.start.row === range.start.row &&
 
1524
            this.end.row === range.end.row &&
 
1525
            this.start.column === range.start.column &&
 
1526
            this.end.column === range.end.column;
 
1527
    };
 
1528
    this.toString = function() {
 
1529
        return ("Range: [" + this.start.row + "/" + this.start.column +
 
1530
            "] -> [" + this.end.row + "/" + this.end.column + "]");
 
1531
    };
 
1532
 
 
1533
    this.contains = function(row, column) {
 
1534
        return this.compare(row, column) == 0;
 
1535
    };
 
1536
    this.compareRange = function(range) {
 
1537
        var cmp,
 
1538
            end = range.end,
 
1539
            start = range.start;
 
1540
 
 
1541
        cmp = this.compare(end.row, end.column);
 
1542
        if (cmp == 1) {
 
1543
            cmp = this.compare(start.row, start.column);
 
1544
            if (cmp == 1) {
 
1545
                return 2;
 
1546
            } else if (cmp == 0) {
 
1547
                return 1;
 
1548
            } else {
 
1549
                return 0;
 
1550
            }
 
1551
        } else if (cmp == -1) {
 
1552
            return -2;
 
1553
        } else {
 
1554
            cmp = this.compare(start.row, start.column);
 
1555
            if (cmp == -1) {
 
1556
                return -1;
 
1557
            } else if (cmp == 1) {
 
1558
                return 42;
 
1559
            } else {
 
1560
                return 0;
 
1561
            }
 
1562
        }
 
1563
    };
 
1564
    this.comparePoint = function(p) {
 
1565
        return this.compare(p.row, p.column);
 
1566
    };
 
1567
    this.containsRange = function(range) {
 
1568
        return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
 
1569
    };
 
1570
    this.intersects = function(range) {
 
1571
        var cmp = this.compareRange(range);
 
1572
        return (cmp == -1 || cmp == 0 || cmp == 1);
 
1573
    };
 
1574
    this.isEnd = function(row, column) {
 
1575
        return this.end.row == row && this.end.column == column;
 
1576
    };
 
1577
    this.isStart = function(row, column) {
 
1578
        return this.start.row == row && this.start.column == column;
 
1579
    };
 
1580
    this.setStart = function(row, column) {
 
1581
        if (typeof row == "object") {
 
1582
            this.start.column = row.column;
 
1583
            this.start.row = row.row;
 
1584
        } else {
 
1585
            this.start.row = row;
 
1586
            this.start.column = column;
 
1587
        }
 
1588
    };
 
1589
    this.setEnd = function(row, column) {
 
1590
        if (typeof row == "object") {
 
1591
            this.end.column = row.column;
 
1592
            this.end.row = row.row;
 
1593
        } else {
 
1594
            this.end.row = row;
 
1595
            this.end.column = column;
 
1596
        }
 
1597
    };
 
1598
    this.inside = function(row, column) {
 
1599
        if (this.compare(row, column) == 0) {
 
1600
            if (this.isEnd(row, column) || this.isStart(row, column)) {
 
1601
                return false;
 
1602
            } else {
 
1603
                return true;
 
1604
            }
 
1605
        }
 
1606
        return false;
 
1607
    };
 
1608
    this.insideStart = function(row, column) {
 
1609
        if (this.compare(row, column) == 0) {
 
1610
            if (this.isEnd(row, column)) {
 
1611
                return false;
 
1612
            } else {
 
1613
                return true;
 
1614
            }
 
1615
        }
 
1616
        return false;
 
1617
    };
 
1618
    this.insideEnd = function(row, column) {
 
1619
        if (this.compare(row, column) == 0) {
 
1620
            if (this.isStart(row, column)) {
 
1621
                return false;
 
1622
            } else {
 
1623
                return true;
 
1624
            }
 
1625
        }
 
1626
        return false;
 
1627
    };
 
1628
    this.compare = function(row, column) {
 
1629
        if (!this.isMultiLine()) {
 
1630
            if (row === this.start.row) {
 
1631
                return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
 
1632
            };
 
1633
        }
 
1634
 
 
1635
        if (row < this.start.row)
 
1636
            return -1;
 
1637
 
 
1638
        if (row > this.end.row)
 
1639
            return 1;
 
1640
 
 
1641
        if (this.start.row === row)
 
1642
            return column >= this.start.column ? 0 : -1;
 
1643
 
 
1644
        if (this.end.row === row)
 
1645
            return column <= this.end.column ? 0 : 1;
 
1646
 
 
1647
        return 0;
 
1648
    };
 
1649
    this.compareStart = function(row, column) {
 
1650
        if (this.start.row == row && this.start.column == column) {
 
1651
            return -1;
 
1652
        } else {
 
1653
            return this.compare(row, column);
 
1654
        }
 
1655
    };
 
1656
    this.compareEnd = function(row, column) {
 
1657
        if (this.end.row == row && this.end.column == column) {
 
1658
            return 1;
 
1659
        } else {
 
1660
            return this.compare(row, column);
 
1661
        }
 
1662
    };
 
1663
    this.compareInside = function(row, column) {
 
1664
        if (this.end.row == row && this.end.column == column) {
 
1665
            return 1;
 
1666
        } else if (this.start.row == row && this.start.column == column) {
 
1667
            return -1;
 
1668
        } else {
 
1669
            return this.compare(row, column);
 
1670
        }
 
1671
    };
 
1672
    this.clipRows = function(firstRow, lastRow) {
 
1673
        if (this.end.row > lastRow)
 
1674
            var end = {row: lastRow + 1, column: 0};
 
1675
        else if (this.end.row < firstRow)
 
1676
            var end = {row: firstRow, column: 0};
 
1677
 
 
1678
        if (this.start.row > lastRow)
 
1679
            var start = {row: lastRow + 1, column: 0};
 
1680
        else if (this.start.row < firstRow)
 
1681
            var start = {row: firstRow, column: 0};
 
1682
 
 
1683
        return Range.fromPoints(start || this.start, end || this.end);
 
1684
    };
 
1685
    this.extend = function(row, column) {
 
1686
        var cmp = this.compare(row, column);
 
1687
 
 
1688
        if (cmp == 0)
 
1689
            return this;
 
1690
        else if (cmp == -1)
 
1691
            var start = {row: row, column: column};
 
1692
        else
 
1693
            var end = {row: row, column: column};
 
1694
 
 
1695
        return Range.fromPoints(start || this.start, end || this.end);
 
1696
    };
 
1697
 
 
1698
    this.isEmpty = function() {
 
1699
        return (this.start.row === this.end.row && this.start.column === this.end.column);
 
1700
    };
 
1701
    this.isMultiLine = function() {
 
1702
        return (this.start.row !== this.end.row);
 
1703
    };
 
1704
    this.clone = function() {
 
1705
        return Range.fromPoints(this.start, this.end);
 
1706
    };
 
1707
    this.collapseRows = function() {
 
1708
        if (this.end.column == 0)
 
1709
            return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
 
1710
        else
 
1711
            return new Range(this.start.row, 0, this.end.row, 0)
 
1712
    };
 
1713
    this.toScreenRange = function(session) {
 
1714
        var screenPosStart = session.documentToScreenPosition(this.start);
 
1715
        var screenPosEnd = session.documentToScreenPosition(this.end);
 
1716
 
 
1717
        return new Range(
 
1718
            screenPosStart.row, screenPosStart.column,
 
1719
            screenPosEnd.row, screenPosEnd.column
 
1720
        );
 
1721
    };
 
1722
    this.moveBy = function(row, column) {
 
1723
        this.start.row += row;
 
1724
        this.start.column += column;
 
1725
        this.end.row += row;
 
1726
        this.end.column += column;
 
1727
    };
 
1728
 
 
1729
}).call(Range.prototype);
 
1730
Range.fromPoints = function(start, end) {
 
1731
    return new Range(start.row, start.column, end.row, end.column);
 
1732
};
 
1733
Range.comparePoints = comparePoints;
 
1734
 
 
1735
exports.Range = Range;
 
1736
});
 
1737
 
 
1738
define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
 
1739
 
 
1740
 
 
1741
var oop = require("./lib/oop");
 
1742
var EventEmitter = require("./lib/event_emitter").EventEmitter;
 
1743
 
 
1744
var Anchor = exports.Anchor = function(doc, row, column) {
 
1745
    this.document = doc;
 
1746
    
 
1747
    if (typeof column == "undefined")
 
1748
        this.setPosition(row.row, row.column);
 
1749
    else
 
1750
        this.setPosition(row, column);
 
1751
 
 
1752
    this.$onChange = this.onChange.bind(this);
 
1753
    doc.on("change", this.$onChange);
 
1754
};
 
1755
 
 
1756
(function() {
 
1757
 
 
1758
    oop.implement(this, EventEmitter);
 
1759
 
 
1760
    this.getPosition = function() {
 
1761
        return this.$clipPositionToDocument(this.row, this.column);
 
1762
    };
 
1763
        
 
1764
    this.getDocument = function() {
 
1765
        return this.document;
 
1766
    };
 
1767
 
 
1768
    this.onChange = function(e) {
 
1769
        var delta = e.data;
 
1770
        var range = delta.range;
 
1771
            
 
1772
        if (range.start.row == range.end.row && range.start.row != this.row)
 
1773
            return;
 
1774
            
 
1775
        if (range.start.row > this.row)
 
1776
            return;
 
1777
            
 
1778
        if (range.start.row == this.row && range.start.column > this.column)
 
1779
            return;
 
1780
    
 
1781
        var row = this.row;
 
1782
        var column = this.column;
 
1783
        
 
1784
        if (delta.action === "insertText") {
 
1785
            if (range.start.row === row && range.start.column <= column) {
 
1786
                if (range.start.row === range.end.row) {
 
1787
                    column += range.end.column - range.start.column;
 
1788
                }
 
1789
                else {
 
1790
                    column -= range.start.column;
 
1791
                    row += range.end.row - range.start.row;
 
1792
                }
 
1793
            }
 
1794
            else if (range.start.row !== range.end.row && range.start.row < row) {
 
1795
                row += range.end.row - range.start.row;
 
1796
            }
 
1797
        } else if (delta.action === "insertLines") {
 
1798
            if (range.start.row <= row) {
 
1799
                row += range.end.row - range.start.row;
 
1800
            }
 
1801
        }
 
1802
        else if (delta.action == "removeText") {
 
1803
            if (range.start.row == row && range.start.column < column) {
 
1804
                if (range.end.column >= column)
 
1805
                    column = range.start.column;
 
1806
                else
 
1807
                    column = Math.max(0, column - (range.end.column - range.start.column));
 
1808
                
 
1809
            } else if (range.start.row !== range.end.row && range.start.row < row) {
 
1810
                if (range.end.row == row) {
 
1811
                    column = Math.max(0, column - range.end.column) + range.start.column;
 
1812
                }
 
1813
                row -= (range.end.row - range.start.row);
 
1814
            }
 
1815
            else if (range.end.row == row) {
 
1816
                row -= range.end.row - range.start.row;
 
1817
                column = Math.max(0, column - range.end.column) + range.start.column;
 
1818
            }
 
1819
        } else if (delta.action == "removeLines") {
 
1820
            if (range.start.row <= row) {
 
1821
                if (range.end.row <= row)
 
1822
                    row -= range.end.row - range.start.row;
 
1823
                else {
 
1824
                    row = range.start.row;
 
1825
                    column = 0;
 
1826
                }
 
1827
            }
 
1828
        }
 
1829
 
 
1830
        this.setPosition(row, column, true);
 
1831
    };
 
1832
 
 
1833
    this.setPosition = function(row, column, noClip) {
 
1834
        var pos;
 
1835
        if (noClip) {
 
1836
            pos = {
 
1837
                row: row,
 
1838
                column: column
 
1839
            };
 
1840
        }
 
1841
        else {
 
1842
            pos = this.$clipPositionToDocument(row, column);
 
1843
        }
 
1844
        
 
1845
        if (this.row == pos.row && this.column == pos.column)
 
1846
            return;
 
1847
            
 
1848
        var old = {
 
1849
            row: this.row,
 
1850
            column: this.column
 
1851
        };
 
1852
        
 
1853
        this.row = pos.row;
 
1854
        this.column = pos.column;
 
1855
        this._emit("change", {
 
1856
            old: old,
 
1857
            value: pos
 
1858
        });
 
1859
    };
 
1860
 
 
1861
    this.detach = function() {
 
1862
        this.document.removeEventListener("change", this.$onChange);
 
1863
    };
 
1864
    this.$clipPositionToDocument = function(row, column) {
 
1865
        var pos = {};
 
1866
    
 
1867
        if (row >= this.document.getLength()) {
 
1868
            pos.row = Math.max(0, this.document.getLength() - 1);
 
1869
            pos.column = this.document.getLine(pos.row).length;
 
1870
        }
 
1871
        else if (row < 0) {
 
1872
            pos.row = 0;
 
1873
            pos.column = 0;
 
1874
        }
 
1875
        else {
 
1876
            pos.row = row;
 
1877
            pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
 
1878
        }
 
1879
        
 
1880
        if (column < 0)
 
1881
            pos.column = 0;
 
1882
            
 
1883
        return pos;
 
1884
    };
 
1885
    
 
1886
}).call(Anchor.prototype);
 
1887
 
 
1888
});
 
1889
 
 
1890
define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
 
1891
 
 
1892
 
 
1893
exports.stringReverse = function(string) {
 
1894
    return string.split("").reverse().join("");
 
1895
};
 
1896
 
 
1897
exports.stringRepeat = function (string, count) {
 
1898
    var result = '';
 
1899
    while (count > 0) {
 
1900
        if (count & 1)
 
1901
            result += string;
 
1902
 
 
1903
        if (count >>= 1)
 
1904
            string += string;
 
1905
    }
 
1906
    return result;
 
1907
};
 
1908
 
 
1909
var trimBeginRegexp = /^\s\s*/;
 
1910
var trimEndRegexp = /\s\s*$/;
 
1911
 
 
1912
exports.stringTrimLeft = function (string) {
 
1913
    return string.replace(trimBeginRegexp, '');
 
1914
};
 
1915
 
 
1916
exports.stringTrimRight = function (string) {
 
1917
    return string.replace(trimEndRegexp, '');
 
1918
};
 
1919
 
 
1920
exports.copyObject = function(obj) {
 
1921
    var copy = {};
 
1922
    for (var key in obj) {
 
1923
        copy[key] = obj[key];
 
1924
    }
 
1925
    return copy;
 
1926
};
 
1927
 
 
1928
exports.copyArray = function(array){
 
1929
    var copy = [];
 
1930
    for (var i=0, l=array.length; i<l; i++) {
 
1931
        if (array[i] && typeof array[i] == "object")
 
1932
            copy[i] = this.copyObject( array[i] );
 
1933
        else 
 
1934
            copy[i] = array[i];
 
1935
    }
 
1936
    return copy;
 
1937
};
 
1938
 
 
1939
exports.deepCopy = function (obj) {
 
1940
    if (typeof obj != "object") {
 
1941
        return obj;
 
1942
    }
 
1943
    
 
1944
    var copy = obj.constructor();
 
1945
    for (var key in obj) {
 
1946
        if (typeof obj[key] == "object") {
 
1947
            copy[key] = this.deepCopy(obj[key]);
 
1948
        } else {
 
1949
            copy[key] = obj[key];
 
1950
        }
 
1951
    }
 
1952
    return copy;
 
1953
};
 
1954
 
 
1955
exports.arrayToMap = function(arr) {
 
1956
    var map = {};
 
1957
    for (var i=0; i<arr.length; i++) {
 
1958
        map[arr[i]] = 1;
 
1959
    }
 
1960
    return map;
 
1961
 
 
1962
};
 
1963
 
 
1964
exports.createMap = function(props) {
 
1965
    var map = Object.create(null);
 
1966
    for (var i in props) {
 
1967
        map[i] = props[i];
 
1968
    }
 
1969
    return map;
 
1970
};
 
1971
exports.arrayRemove = function(array, value) {
 
1972
  for (var i = 0; i <= array.length; i++) {
 
1973
    if (value === array[i]) {
 
1974
      array.splice(i, 1);
 
1975
    }
 
1976
  }
 
1977
};
 
1978
 
 
1979
exports.escapeRegExp = function(str) {
 
1980
    return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
 
1981
};
 
1982
 
 
1983
exports.escapeHTML = function(str) {
 
1984
    return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
 
1985
};
 
1986
 
 
1987
exports.getMatchOffsets = function(string, regExp) {
 
1988
    var matches = [];
 
1989
 
 
1990
    string.replace(regExp, function(str) {
 
1991
        matches.push({
 
1992
            offset: arguments[arguments.length-2],
 
1993
            length: str.length
 
1994
        });
 
1995
    });
 
1996
 
 
1997
    return matches;
 
1998
};
 
1999
exports.deferredCall = function(fcn) {
 
2000
 
 
2001
    var timer = null;
 
2002
    var callback = function() {
 
2003
        timer = null;
 
2004
        fcn();
 
2005
    };
 
2006
 
 
2007
    var deferred = function(timeout) {
 
2008
        deferred.cancel();
 
2009
        timer = setTimeout(callback, timeout || 0);
 
2010
        return deferred;
 
2011
    };
 
2012
 
 
2013
    deferred.schedule = deferred;
 
2014
 
 
2015
    deferred.call = function() {
 
2016
        this.cancel();
 
2017
        fcn();
 
2018
        return deferred;
 
2019
    };
 
2020
 
 
2021
    deferred.cancel = function() {
 
2022
        clearTimeout(timer);
 
2023
        timer = null;
 
2024
        return deferred;
 
2025
    };
 
2026
 
 
2027
    return deferred;
 
2028
};
 
2029
 
 
2030
 
 
2031
exports.delayedCall = function(fcn, defaultTimeout) {
 
2032
    var timer = null;
 
2033
    var callback = function() {
 
2034
        timer = null;
 
2035
        fcn();
 
2036
    };
 
2037
 
 
2038
    var _self = function(timeout) {
 
2039
        timer && clearTimeout(timer);
 
2040
        timer = setTimeout(callback, timeout || defaultTimeout);
 
2041
    };
 
2042
 
 
2043
    _self.delay = _self;
 
2044
    _self.schedule = function(timeout) {
 
2045
        if (timer == null)
 
2046
            timer = setTimeout(callback, timeout || 0);
 
2047
    };
 
2048
 
 
2049
    _self.call = function() {
 
2050
        this.cancel();
 
2051
        fcn();
 
2052
    };
 
2053
 
 
2054
    _self.cancel = function() {
 
2055
        timer && clearTimeout(timer);
 
2056
        timer = null;
 
2057
    };
 
2058
 
 
2059
    _self.isPending = function() {
 
2060
        return timer;
 
2061
    };
 
2062
 
 
2063
    return _self;
 
2064
};
 
2065
});
 
2066
 
 
2067
define('ace/mode/xquery/JSONParseTreeHandler', ['require', 'exports', 'module' ], function(require, exports, module) {
 
2068
 
 
2069
  var JSONParseTreeHandler = exports.JSONParseTreeHandler = function(code) {
 
2070
    var list = [
 
2071
        "OrExpr", "AndExpr", "ComparisonExpr", "StringConcatExpr", "RangeExpr"
 
2072
        , "UnionExpr", "IntersectExceptExpr", "InstanceofExpr", "TreatExpr", "CastableExpr"
 
2073
        , "CastExpr", "UnaryExpr", "ValueExpr", "FTContainsExpr", "SimpleMapExpr", "PathExpr", "RelativePathExpr"
 
2074
        , "PostfixExpr", "StepExpr"
 
2075
    ];
 
2076
    
 
2077
    var ast = null;
 
2078
    var ptr = null;
 
2079
    var remains = code;
 
2080
    var cursor = 0;
 
2081
    var lineCursor = 0;
 
2082
    var line = 0;
 
2083
    var col = 0;
 
2084
 
 
2085
    function createNode(name){
 
2086
      return { name: name, children: [], getParent: null, pos: { sl: 0, sc: 0, el: 0, ec: 0 } };
 
2087
    }
 
2088
  
 
2089
    function pushNode(name, begin){
 
2090
      var node = createNode(name);
 
2091
      if(ast === null) {
 
2092
        ast = node;
 
2093
        ptr = node;
 
2094
      } else {
 
2095
        node.getParent = ptr;
 
2096
        ptr.children.push(node);
 
2097
        ptr = ptr.children[ptr.children.length - 1];
 
2098
      }
 
2099
    }
 
2100
    
 
2101
    function popNode(){
 
2102
     
 
2103
      if(ptr.children.length > 0) {
 
2104
        var s = ptr.children[0];
 
2105
        var e = null;
 
2106
        for(var i= ptr.children.length - 1; i >= 0;i--) {
 
2107
          e = ptr.children[i];
 
2108
          if(e.pos.el !== 0 || e.pos.ec !== 0) {
 
2109
            break;
 
2110
          }
 
2111
        }
 
2112
        ptr.pos.sl = s.pos.sl;
 
2113
        ptr.pos.sc = s.pos.sc;
 
2114
        ptr.pos.el = e.pos.el;
 
2115
        ptr.pos.ec = e.pos.ec;
 
2116
      }
 
2117
      if(ptr.name === "FunctionName") {
 
2118
        ptr.name = "EQName";  
 
2119
      }
 
2120
      if(ptr.name === "EQName" && ptr.value === undefined) {
 
2121
        ptr.value = ptr.children[0].value;
 
2122
        ptr.children.pop();
 
2123
      }
 
2124
      
 
2125
      if(ptr.getParent !== null) {
 
2126
        ptr = ptr.getParent;
 
2127
      } else {
 
2128
      }
 
2129
      if(ptr.children.length > 0) {
 
2130
        var lastChild = ptr.children[ptr.children.length - 1];
 
2131
        if(lastChild.children.length === 1 && list.indexOf(lastChild.name) !== -1) {
 
2132
          ptr.children[ptr.children.length - 1] = lastChild.children[0];
 
2133
        }
 
2134
      }
 
2135
    }
 
2136
    
 
2137
    this.closeParseTree = function() {
 
2138
      while(ptr.getParent !== null) {
 
2139
        popNode();
 
2140
      }
 
2141
      popNode();
 
2142
    };
 
2143
 
 
2144
    this.peek = function() {
 
2145
      return ptr;    
 
2146
    };
 
2147
    
 
2148
    this.getParseTree = function() {
 
2149
      return ast;
 
2150
    };
 
2151
 
 
2152
    this.reset = function(input) {};
 
2153
 
 
2154
    this.startNonterminal = function(name, begin) {
 
2155
      pushNode(name, begin);
 
2156
    };
 
2157
 
 
2158
    this.endNonterminal = function(name, end) {
 
2159
      popNode();
 
2160
    };
 
2161
 
 
2162
    this.terminal = function(name, begin, end) {
 
2163
      name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name;
 
2164
      pushNode(name, begin); 
 
2165
      setValue(ptr, begin, end);
 
2166
      popNode();
 
2167
    };
 
2168
 
 
2169
    this.whitespace = function(begin, end) {
 
2170
      var name = "WS";
 
2171
      pushNode(name, begin);
 
2172
      setValue(ptr, begin, end);
 
2173
      popNode();
 
2174
    };
 
2175
 
 
2176
    function setValue(node, begin, end) {
 
2177
      
 
2178
      var e = end - cursor;
 
2179
      ptr.value = remains.substring(0, e); 
 
2180
      remains = remains.substring(e);
 
2181
      cursor = end;
 
2182
      
 
2183
      var sl = line;
 
2184
      var sc = lineCursor;
 
2185
      var el = sl + ptr.value.split("\n").length - 1;
 
2186
      var lastIdx = ptr.value.lastIndexOf("\n");
 
2187
      var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx + 1).length;
 
2188
      
 
2189
      line = el;
 
2190
      lineCursor = ec;
 
2191
 
 
2192
      ptr.pos.sl = sl; 
 
2193
      ptr.pos.sc = sc; 
 
2194
      ptr.pos.el = el; 
 
2195
      ptr.pos.ec = ec; 
 
2196
    } 
 
2197
  };
 
2198
});
 
2199
 
 
2200
                                                            define('ace/mode/xquery/XQueryParser', ['require', 'exports', 'module' ], function(require, exports, module) {
 
2201
                                                            var XQueryParser = exports.XQueryParser = function XQueryParser(string, parsingEventHandler)
 
2202
                                                            {
 
2203
                                                              init(string, parsingEventHandler);
 
2204
  var self = this;
 
2205
 
 
2206
  this.ParseException = function(b, e, s, o, x)
 
2207
  {
 
2208
    var
 
2209
      begin = b,
 
2210
      end = e,
 
2211
      state = s,
 
2212
      offending = o,
 
2213
      expected = x;
 
2214
 
 
2215
    this.getBegin = function() {return begin;};
 
2216
    this.getEnd = function() {return end;};
 
2217
    this.getState = function() {return state;};
 
2218
    this.getExpected = function() {return expected;};
 
2219
    this.getOffending = function() {return offending;};
 
2220
 
 
2221
    this.getMessage = function()
 
2222
    {
 
2223
      return offending < 0 ? "lexical analysis failed" : "syntax error";
 
2224
    };
 
2225
  };
 
2226
 
 
2227
  function init(string, parsingEventHandler)
 
2228
  {
 
2229
    eventHandler = parsingEventHandler;
 
2230
    input = string;
 
2231
    size = string.length;
 
2232
    reset(0, 0, 0);
 
2233
  }
 
2234
 
 
2235
  this.getInput = function()
 
2236
  {
 
2237
    return input;
 
2238
  };
 
2239
 
 
2240
  function reset(l, b, e)
 
2241
  {
 
2242
                 b0 = b; e0 = b;
 
2243
    l1 = l; b1 = b; e1 = e;
 
2244
    l2 = 0;
 
2245
    end = e;
 
2246
    ex = -1;
 
2247
    memo = {};
 
2248
    eventHandler.reset(input);
 
2249
  }
 
2250
 
 
2251
  this.getOffendingToken = function(e)
 
2252
  {
 
2253
    var o = e.getOffending();
 
2254
    return o >= 0 ? XQueryParser.TOKEN[o] : null;
 
2255
  };
 
2256
 
 
2257
  this.getExpectedTokenSet = function(e)
 
2258
  {
 
2259
    var expected;
 
2260
    if (e.getExpected() < 0)
 
2261
    {
 
2262
      expected = XQueryParser.getTokenSet(- e.getState());
 
2263
    }
 
2264
    else
 
2265
    {
 
2266
      expected = [XQueryParser.TOKEN[e.getExpected()]];
 
2267
    }
 
2268
    return expected;
 
2269
  };
 
2270
 
 
2271
  this.getErrorMessage = function(e)
 
2272
  {
 
2273
    var tokenSet = this.getExpectedTokenSet(e);
 
2274
    var found = this.getOffendingToken(e);
 
2275
    var prefix = input.substring(0, e.getBegin());
 
2276
    var lines = prefix.split("\n");
 
2277
    var line = lines.length;
 
2278
    var column = lines[line - 1].length + 1;
 
2279
    var size = e.getEnd() - e.getBegin();
 
2280
    return e.getMessage()
 
2281
         + (found == null ? "" : ", found " + found)
 
2282
         + "\nwhile expecting "
 
2283
         + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]"))
 
2284
         + "\n"
 
2285
         + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ")
 
2286
         + "at line " + line + ", column " + column + ":\n..."
 
2287
         + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))
 
2288
         + "...";
 
2289
  };
 
2290
 
 
2291
  this.parse_XQuery = function()
 
2292
  {
 
2293
    eventHandler.startNonterminal("XQuery", e0);
 
2294
    lookahead1W(268);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
2295
    whitespace();
 
2296
    parse_Module();
 
2297
    shift(25);                      // EOF
 
2298
    eventHandler.endNonterminal("XQuery", e0);
 
2299
  };
 
2300
 
 
2301
  function parse_Module()
 
2302
  {
 
2303
    eventHandler.startNonterminal("Module", e0);
 
2304
    switch (l1)
 
2305
    {
 
2306
    case 274:                       // 'xquery'
 
2307
      lookahead2W(199);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
2308
      break;
 
2309
    default:
 
2310
      lk = l1;
 
2311
    }
 
2312
    if (lk == 64274                 // 'xquery' 'encoding'
 
2313
     || lk == 134930)               // 'xquery' 'version'
 
2314
    {
 
2315
      parse_VersionDecl();
 
2316
    }
 
2317
    lookahead1W(268);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
2318
    switch (l1)
 
2319
    {
 
2320
    case 182:                       // 'module'
 
2321
      lookahead2W(194);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
2322
      break;
 
2323
    default:
 
2324
      lk = l1;
 
2325
    }
 
2326
    switch (lk)
 
2327
    {
 
2328
    case 94390:                     // 'module' 'namespace'
 
2329
      whitespace();
 
2330
      parse_LibraryModule();
 
2331
      break;
 
2332
    default:
 
2333
      whitespace();
 
2334
      parse_MainModule();
 
2335
    }
 
2336
    eventHandler.endNonterminal("Module", e0);
 
2337
  }
 
2338
 
 
2339
  function parse_VersionDecl()
 
2340
  {
 
2341
    eventHandler.startNonterminal("VersionDecl", e0);
 
2342
    shift(274);                     // 'xquery'
 
2343
    lookahead1W(116);               // S^WS | '(:' | 'encoding' | 'version'
 
2344
    switch (l1)
 
2345
    {
 
2346
    case 125:                       // 'encoding'
 
2347
      shift(125);                   // 'encoding'
 
2348
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
2349
      shift(11);                    // StringLiteral
 
2350
      break;
 
2351
    default:
 
2352
      shift(263);                   // 'version'
 
2353
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
2354
      shift(11);                    // StringLiteral
 
2355
      lookahead1W(109);             // S^WS | '(:' | ';' | 'encoding'
 
2356
      if (l1 == 125)                // 'encoding'
 
2357
      {
 
2358
        shift(125);                 // 'encoding'
 
2359
        lookahead1W(17);            // StringLiteral | S^WS | '(:'
 
2360
        shift(11);                  // StringLiteral
 
2361
      }
 
2362
    }
 
2363
    lookahead1W(28);                // S^WS | '(:' | ';'
 
2364
    whitespace();
 
2365
    parse_Separator();
 
2366
    eventHandler.endNonterminal("VersionDecl", e0);
 
2367
  }
 
2368
 
 
2369
  function parse_LibraryModule()
 
2370
  {
 
2371
    eventHandler.startNonterminal("LibraryModule", e0);
 
2372
    parse_ModuleDecl();
 
2373
    lookahead1W(138);               // S^WS | EOF | '(:' | 'declare' | 'import'
 
2374
    whitespace();
 
2375
    parse_Prolog();
 
2376
    eventHandler.endNonterminal("LibraryModule", e0);
 
2377
  }
 
2378
 
 
2379
  function parse_ModuleDecl()
 
2380
  {
 
2381
    eventHandler.startNonterminal("ModuleDecl", e0);
 
2382
    shift(182);                     // 'module'
 
2383
    lookahead1W(61);                // S^WS | '(:' | 'namespace'
 
2384
    shift(184);                     // 'namespace'
 
2385
    lookahead1W(247);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
2386
    whitespace();
 
2387
    parse_NCName();
 
2388
    lookahead1W(29);                // S^WS | '(:' | '='
 
2389
    shift(60);                      // '='
 
2390
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2391
    shift(7);                       // URILiteral
 
2392
    lookahead1W(28);                // S^WS | '(:' | ';'
 
2393
    whitespace();
 
2394
    parse_Separator();
 
2395
    eventHandler.endNonterminal("ModuleDecl", e0);
 
2396
  }
 
2397
 
 
2398
  function parse_Prolog()
 
2399
  {
 
2400
    eventHandler.startNonterminal("Prolog", e0);
 
2401
    for (;;)
 
2402
    {
 
2403
      lookahead1W(268);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
2404
      switch (l1)
 
2405
      {
 
2406
      case 108:                     // 'declare'
 
2407
        lookahead2W(213);           // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
2408
        break;
 
2409
      case 153:                     // 'import'
 
2410
        lookahead2W(201);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
2411
        break;
 
2412
      default:
 
2413
        lk = l1;
 
2414
      }
 
2415
      if (lk != 42604               // 'declare' 'base-uri'
 
2416
       && lk != 43628               // 'declare' 'boundary-space'
 
2417
       && lk != 50284               // 'declare' 'construction'
 
2418
       && lk != 53356               // 'declare' 'copy-namespaces'
 
2419
       && lk != 54380               // 'declare' 'decimal-format'
 
2420
       && lk != 55916               // 'declare' 'default'
 
2421
       && lk != 72300               // 'declare' 'ft-option'
 
2422
       && lk != 93337               // 'import' 'module'
 
2423
       && lk != 94316               // 'declare' 'namespace'
 
2424
       && lk != 104044              // 'declare' 'ordering'
 
2425
       && lk != 113772              // 'declare' 'revalidation'
 
2426
       && lk != 115353)             // 'import' 'schema'
 
2427
      {
 
2428
        break;
 
2429
      }
 
2430
      switch (l1)
 
2431
      {
 
2432
      case 108:                     // 'declare'
 
2433
        lookahead2W(178);           // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |
 
2434
        break;
 
2435
      default:
 
2436
        lk = l1;
 
2437
      }
 
2438
      if (lk == 55916)              // 'declare' 'default'
 
2439
      {
 
2440
        lk = memoized(0, e0);
 
2441
        if (lk == 0)
 
2442
        {
 
2443
          var b0A = b0; var e0A = e0; var l1A = l1;
 
2444
          var b1A = b1; var e1A = e1; var l2A = l2;
 
2445
          var b2A = b2; var e2A = e2;
 
2446
          try
 
2447
          {
 
2448
            try_DefaultNamespaceDecl();
 
2449
            lk = -1;
 
2450
          }
 
2451
          catch (p1A)
 
2452
          {
 
2453
            lk = -2;
 
2454
          }
 
2455
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
2456
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
2457
          b2 = b2A; e2 = e2A; end = e2A; }}
 
2458
          memoize(0, e0, lk);
 
2459
        }
 
2460
      }
 
2461
      switch (lk)
 
2462
      {
 
2463
      case -1:
 
2464
        whitespace();
 
2465
        parse_DefaultNamespaceDecl();
 
2466
        break;
 
2467
      case 94316:                   // 'declare' 'namespace'
 
2468
        whitespace();
 
2469
        parse_NamespaceDecl();
 
2470
        break;
 
2471
      case 153:                     // 'import'
 
2472
        whitespace();
 
2473
        parse_Import();
 
2474
        break;
 
2475
      case 72300:                   // 'declare' 'ft-option'
 
2476
        whitespace();
 
2477
        parse_FTOptionDecl();
 
2478
        break;
 
2479
      default:
 
2480
        whitespace();
 
2481
        parse_Setter();
 
2482
      }
 
2483
      lookahead1W(28);              // S^WS | '(:' | ';'
 
2484
      whitespace();
 
2485
      parse_Separator();
 
2486
    }
 
2487
    for (;;)
 
2488
    {
 
2489
      lookahead1W(268);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
2490
      switch (l1)
 
2491
      {
 
2492
      case 108:                     // 'declare'
 
2493
        lookahead2W(210);           // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
2494
        break;
 
2495
      default:
 
2496
        lk = l1;
 
2497
      }
 
2498
      if (lk != 16492               // 'declare' '%'
 
2499
       && lk != 48748               // 'declare' 'collection'
 
2500
       && lk != 51820               // 'declare' 'context'
 
2501
       && lk != 74348               // 'declare' 'function'
 
2502
       && lk != 79468               // 'declare' 'index'
 
2503
       && lk != 82540               // 'declare' 'integrity'
 
2504
       && lk != 101996              // 'declare' 'option'
 
2505
       && lk != 131692              // 'declare' 'updating'
 
2506
       && lk != 134252)             // 'declare' 'variable'
 
2507
      {
 
2508
        break;
 
2509
      }
 
2510
      switch (l1)
 
2511
      {
 
2512
      case 108:                     // 'declare'
 
2513
        lookahead2W(175);           // S^WS | '%' | '(:' | 'collection' | 'context' | 'function' | 'index' |
 
2514
        break;
 
2515
      default:
 
2516
        lk = l1;
 
2517
      }
 
2518
      switch (lk)
 
2519
      {
 
2520
      case 51820:                   // 'declare' 'context'
 
2521
        whitespace();
 
2522
        parse_ContextItemDecl();
 
2523
        break;
 
2524
      case 101996:                  // 'declare' 'option'
 
2525
        whitespace();
 
2526
        parse_OptionDecl();
 
2527
        break;
 
2528
      default:
 
2529
        whitespace();
 
2530
        parse_AnnotatedDecl();
 
2531
      }
 
2532
      lookahead1W(28);              // S^WS | '(:' | ';'
 
2533
      whitespace();
 
2534
      parse_Separator();
 
2535
    }
 
2536
    eventHandler.endNonterminal("Prolog", e0);
 
2537
  }
 
2538
 
 
2539
  function parse_Separator()
 
2540
  {
 
2541
    eventHandler.startNonterminal("Separator", e0);
 
2542
    shift(53);                      // ';'
 
2543
    eventHandler.endNonterminal("Separator", e0);
 
2544
  }
 
2545
 
 
2546
  function parse_Setter()
 
2547
  {
 
2548
    eventHandler.startNonterminal("Setter", e0);
 
2549
    switch (l1)
 
2550
    {
 
2551
    case 108:                       // 'declare'
 
2552
      lookahead2W(172);             // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |
 
2553
      break;
 
2554
    default:
 
2555
      lk = l1;
 
2556
    }
 
2557
    if (lk == 55916)                // 'declare' 'default'
 
2558
    {
 
2559
      lk = memoized(1, e0);
 
2560
      if (lk == 0)
 
2561
      {
 
2562
        var b0A = b0; var e0A = e0; var l1A = l1;
 
2563
        var b1A = b1; var e1A = e1; var l2A = l2;
 
2564
        var b2A = b2; var e2A = e2;
 
2565
        try
 
2566
        {
 
2567
          try_DefaultCollationDecl();
 
2568
          lk = -2;
 
2569
        }
 
2570
        catch (p2A)
 
2571
        {
 
2572
          try
 
2573
          {
 
2574
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
2575
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
2576
            b2 = b2A; e2 = e2A; end = e2A; }}
 
2577
            try_EmptyOrderDecl();
 
2578
            lk = -6;
 
2579
          }
 
2580
          catch (p6A)
 
2581
          {
 
2582
            lk = -9;
 
2583
          }
 
2584
        }
 
2585
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
2586
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
2587
        b2 = b2A; e2 = e2A; end = e2A; }}
 
2588
        memoize(1, e0, lk);
 
2589
      }
 
2590
    }
 
2591
    switch (lk)
 
2592
    {
 
2593
    case 43628:                     // 'declare' 'boundary-space'
 
2594
      parse_BoundarySpaceDecl();
 
2595
      break;
 
2596
    case -2:
 
2597
      parse_DefaultCollationDecl();
 
2598
      break;
 
2599
    case 42604:                     // 'declare' 'base-uri'
 
2600
      parse_BaseURIDecl();
 
2601
      break;
 
2602
    case 50284:                     // 'declare' 'construction'
 
2603
      parse_ConstructionDecl();
 
2604
      break;
 
2605
    case 104044:                    // 'declare' 'ordering'
 
2606
      parse_OrderingModeDecl();
 
2607
      break;
 
2608
    case -6:
 
2609
      parse_EmptyOrderDecl();
 
2610
      break;
 
2611
    case 113772:                    // 'declare' 'revalidation'
 
2612
      parse_RevalidationDecl();
 
2613
      break;
 
2614
    case 53356:                     // 'declare' 'copy-namespaces'
 
2615
      parse_CopyNamespacesDecl();
 
2616
      break;
 
2617
    default:
 
2618
      parse_DecimalFormatDecl();
 
2619
    }
 
2620
    eventHandler.endNonterminal("Setter", e0);
 
2621
  }
 
2622
 
 
2623
  function parse_BoundarySpaceDecl()
 
2624
  {
 
2625
    eventHandler.startNonterminal("BoundarySpaceDecl", e0);
 
2626
    shift(108);                     // 'declare'
 
2627
    lookahead1W(33);                // S^WS | '(:' | 'boundary-space'
 
2628
    shift(85);                      // 'boundary-space'
 
2629
    lookahead1W(133);               // S^WS | '(:' | 'preserve' | 'strip'
 
2630
    switch (l1)
 
2631
    {
 
2632
    case 214:                       // 'preserve'
 
2633
      shift(214);                   // 'preserve'
 
2634
      break;
 
2635
    default:
 
2636
      shift(241);                   // 'strip'
 
2637
    }
 
2638
    eventHandler.endNonterminal("BoundarySpaceDecl", e0);
 
2639
  }
 
2640
 
 
2641
  function parse_DefaultCollationDecl()
 
2642
  {
 
2643
    eventHandler.startNonterminal("DefaultCollationDecl", e0);
 
2644
    shift(108);                     // 'declare'
 
2645
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
2646
    shift(109);                     // 'default'
 
2647
    lookahead1W(38);                // S^WS | '(:' | 'collation'
 
2648
    shift(94);                      // 'collation'
 
2649
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2650
    shift(7);                       // URILiteral
 
2651
    eventHandler.endNonterminal("DefaultCollationDecl", e0);
 
2652
  }
 
2653
 
 
2654
  function try_DefaultCollationDecl()
 
2655
  {
 
2656
    shiftT(108);                    // 'declare'
 
2657
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
2658
    shiftT(109);                    // 'default'
 
2659
    lookahead1W(38);                // S^WS | '(:' | 'collation'
 
2660
    shiftT(94);                     // 'collation'
 
2661
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2662
    shiftT(7);                      // URILiteral
 
2663
  }
 
2664
 
 
2665
  function parse_BaseURIDecl()
 
2666
  {
 
2667
    eventHandler.startNonterminal("BaseURIDecl", e0);
 
2668
    shift(108);                     // 'declare'
 
2669
    lookahead1W(32);                // S^WS | '(:' | 'base-uri'
 
2670
    shift(83);                      // 'base-uri'
 
2671
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2672
    shift(7);                       // URILiteral
 
2673
    eventHandler.endNonterminal("BaseURIDecl", e0);
 
2674
  }
 
2675
 
 
2676
  function parse_ConstructionDecl()
 
2677
  {
 
2678
    eventHandler.startNonterminal("ConstructionDecl", e0);
 
2679
    shift(108);                     // 'declare'
 
2680
    lookahead1W(41);                // S^WS | '(:' | 'construction'
 
2681
    shift(98);                      // 'construction'
 
2682
    lookahead1W(133);               // S^WS | '(:' | 'preserve' | 'strip'
 
2683
    switch (l1)
 
2684
    {
 
2685
    case 241:                       // 'strip'
 
2686
      shift(241);                   // 'strip'
 
2687
      break;
 
2688
    default:
 
2689
      shift(214);                   // 'preserve'
 
2690
    }
 
2691
    eventHandler.endNonterminal("ConstructionDecl", e0);
 
2692
  }
 
2693
 
 
2694
  function parse_OrderingModeDecl()
 
2695
  {
 
2696
    eventHandler.startNonterminal("OrderingModeDecl", e0);
 
2697
    shift(108);                     // 'declare'
 
2698
    lookahead1W(68);                // S^WS | '(:' | 'ordering'
 
2699
    shift(203);                     // 'ordering'
 
2700
    lookahead1W(131);               // S^WS | '(:' | 'ordered' | 'unordered'
 
2701
    switch (l1)
 
2702
    {
 
2703
    case 202:                       // 'ordered'
 
2704
      shift(202);                   // 'ordered'
 
2705
      break;
 
2706
    default:
 
2707
      shift(256);                   // 'unordered'
 
2708
    }
 
2709
    eventHandler.endNonterminal("OrderingModeDecl", e0);
 
2710
  }
 
2711
 
 
2712
  function parse_EmptyOrderDecl()
 
2713
  {
 
2714
    eventHandler.startNonterminal("EmptyOrderDecl", e0);
 
2715
    shift(108);                     // 'declare'
 
2716
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
2717
    shift(109);                     // 'default'
 
2718
    lookahead1W(67);                // S^WS | '(:' | 'order'
 
2719
    shift(201);                     // 'order'
 
2720
    lookahead1W(49);                // S^WS | '(:' | 'empty'
 
2721
    shift(123);                     // 'empty'
 
2722
    lookahead1W(121);               // S^WS | '(:' | 'greatest' | 'least'
 
2723
    switch (l1)
 
2724
    {
 
2725
    case 147:                       // 'greatest'
 
2726
      shift(147);                   // 'greatest'
 
2727
      break;
 
2728
    default:
 
2729
      shift(173);                   // 'least'
 
2730
    }
 
2731
    eventHandler.endNonterminal("EmptyOrderDecl", e0);
 
2732
  }
 
2733
 
 
2734
  function try_EmptyOrderDecl()
 
2735
  {
 
2736
    shiftT(108);                    // 'declare'
 
2737
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
2738
    shiftT(109);                    // 'default'
 
2739
    lookahead1W(67);                // S^WS | '(:' | 'order'
 
2740
    shiftT(201);                    // 'order'
 
2741
    lookahead1W(49);                // S^WS | '(:' | 'empty'
 
2742
    shiftT(123);                    // 'empty'
 
2743
    lookahead1W(121);               // S^WS | '(:' | 'greatest' | 'least'
 
2744
    switch (l1)
 
2745
    {
 
2746
    case 147:                       // 'greatest'
 
2747
      shiftT(147);                  // 'greatest'
 
2748
      break;
 
2749
    default:
 
2750
      shiftT(173);                  // 'least'
 
2751
    }
 
2752
  }
 
2753
 
 
2754
  function parse_CopyNamespacesDecl()
 
2755
  {
 
2756
    eventHandler.startNonterminal("CopyNamespacesDecl", e0);
 
2757
    shift(108);                     // 'declare'
 
2758
    lookahead1W(44);                // S^WS | '(:' | 'copy-namespaces'
 
2759
    shift(104);                     // 'copy-namespaces'
 
2760
    lookahead1W(128);               // S^WS | '(:' | 'no-preserve' | 'preserve'
 
2761
    whitespace();
 
2762
    parse_PreserveMode();
 
2763
    lookahead1W(25);                // S^WS | '(:' | ','
 
2764
    shift(41);                      // ','
 
2765
    lookahead1W(123);               // S^WS | '(:' | 'inherit' | 'no-inherit'
 
2766
    whitespace();
 
2767
    parse_InheritMode();
 
2768
    eventHandler.endNonterminal("CopyNamespacesDecl", e0);
 
2769
  }
 
2770
 
 
2771
  function parse_PreserveMode()
 
2772
  {
 
2773
    eventHandler.startNonterminal("PreserveMode", e0);
 
2774
    switch (l1)
 
2775
    {
 
2776
    case 214:                       // 'preserve'
 
2777
      shift(214);                   // 'preserve'
 
2778
      break;
 
2779
    default:
 
2780
      shift(190);                   // 'no-preserve'
 
2781
    }
 
2782
    eventHandler.endNonterminal("PreserveMode", e0);
 
2783
  }
 
2784
 
 
2785
  function parse_InheritMode()
 
2786
  {
 
2787
    eventHandler.startNonterminal("InheritMode", e0);
 
2788
    switch (l1)
 
2789
    {
 
2790
    case 157:                       // 'inherit'
 
2791
      shift(157);                   // 'inherit'
 
2792
      break;
 
2793
    default:
 
2794
      shift(189);                   // 'no-inherit'
 
2795
    }
 
2796
    eventHandler.endNonterminal("InheritMode", e0);
 
2797
  }
 
2798
 
 
2799
  function parse_DecimalFormatDecl()
 
2800
  {
 
2801
    eventHandler.startNonterminal("DecimalFormatDecl", e0);
 
2802
    shift(108);                     // 'declare'
 
2803
    lookahead1W(114);               // S^WS | '(:' | 'decimal-format' | 'default'
 
2804
    switch (l1)
 
2805
    {
 
2806
    case 106:                       // 'decimal-format'
 
2807
      shift(106);                   // 'decimal-format'
 
2808
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
2809
      whitespace();
 
2810
      parse_EQName();
 
2811
      break;
 
2812
    default:
 
2813
      shift(109);                   // 'default'
 
2814
      lookahead1W(45);              // S^WS | '(:' | 'decimal-format'
 
2815
      shift(106);                   // 'decimal-format'
 
2816
    }
 
2817
    for (;;)
 
2818
    {
 
2819
      lookahead1W(180);             // S^WS | '(:' | ';' | 'NaN' | 'decimal-separator' | 'digit' |
 
2820
      if (l1 == 53)                 // ';'
 
2821
      {
 
2822
        break;
 
2823
      }
 
2824
      whitespace();
 
2825
      parse_DFPropertyName();
 
2826
      lookahead1W(29);              // S^WS | '(:' | '='
 
2827
      shift(60);                    // '='
 
2828
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
2829
      shift(11);                    // StringLiteral
 
2830
    }
 
2831
    eventHandler.endNonterminal("DecimalFormatDecl", e0);
 
2832
  }
 
2833
 
 
2834
  function parse_DFPropertyName()
 
2835
  {
 
2836
    eventHandler.startNonterminal("DFPropertyName", e0);
 
2837
    switch (l1)
 
2838
    {
 
2839
    case 107:                       // 'decimal-separator'
 
2840
      shift(107);                   // 'decimal-separator'
 
2841
      break;
 
2842
    case 149:                       // 'grouping-separator'
 
2843
      shift(149);                   // 'grouping-separator'
 
2844
      break;
 
2845
    case 156:                       // 'infinity'
 
2846
      shift(156);                   // 'infinity'
 
2847
      break;
 
2848
    case 179:                       // 'minus-sign'
 
2849
      shift(179);                   // 'minus-sign'
 
2850
      break;
 
2851
    case 67:                        // 'NaN'
 
2852
      shift(67);                    // 'NaN'
 
2853
      break;
 
2854
    case 209:                       // 'percent'
 
2855
      shift(209);                   // 'percent'
 
2856
      break;
 
2857
    case 208:                       // 'per-mille'
 
2858
      shift(208);                   // 'per-mille'
 
2859
      break;
 
2860
    case 275:                       // 'zero-digit'
 
2861
      shift(275);                   // 'zero-digit'
 
2862
      break;
 
2863
    case 116:                       // 'digit'
 
2864
      shift(116);                   // 'digit'
 
2865
      break;
 
2866
    default:
 
2867
      shift(207);                   // 'pattern-separator'
 
2868
    }
 
2869
    eventHandler.endNonterminal("DFPropertyName", e0);
 
2870
  }
 
2871
 
 
2872
  function parse_Import()
 
2873
  {
 
2874
    eventHandler.startNonterminal("Import", e0);
 
2875
    switch (l1)
 
2876
    {
 
2877
    case 153:                       // 'import'
 
2878
      lookahead2W(126);             // S^WS | '(:' | 'module' | 'schema'
 
2879
      break;
 
2880
    default:
 
2881
      lk = l1;
 
2882
    }
 
2883
    switch (lk)
 
2884
    {
 
2885
    case 115353:                    // 'import' 'schema'
 
2886
      parse_SchemaImport();
 
2887
      break;
 
2888
    default:
 
2889
      parse_ModuleImport();
 
2890
    }
 
2891
    eventHandler.endNonterminal("Import", e0);
 
2892
  }
 
2893
 
 
2894
  function parse_SchemaImport()
 
2895
  {
 
2896
    eventHandler.startNonterminal("SchemaImport", e0);
 
2897
    shift(153);                     // 'import'
 
2898
    lookahead1W(73);                // S^WS | '(:' | 'schema'
 
2899
    shift(225);                     // 'schema'
 
2900
    lookahead1W(137);               // URILiteral | S^WS | '(:' | 'default' | 'namespace'
 
2901
    if (l1 != 7)                    // URILiteral
 
2902
    {
 
2903
      whitespace();
 
2904
      parse_SchemaPrefix();
 
2905
    }
 
2906
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2907
    shift(7);                       // URILiteral
 
2908
    lookahead1W(108);               // S^WS | '(:' | ';' | 'at'
 
2909
    if (l1 == 81)                   // 'at'
 
2910
    {
 
2911
      shift(81);                    // 'at'
 
2912
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
2913
      shift(7);                     // URILiteral
 
2914
      for (;;)
 
2915
      {
 
2916
        lookahead1W(103);           // S^WS | '(:' | ',' | ';'
 
2917
        if (l1 != 41)               // ','
 
2918
        {
 
2919
          break;
 
2920
        }
 
2921
        shift(41);                  // ','
 
2922
        lookahead1W(15);            // URILiteral | S^WS | '(:'
 
2923
        shift(7);                   // URILiteral
 
2924
      }
 
2925
    }
 
2926
    eventHandler.endNonterminal("SchemaImport", e0);
 
2927
  }
 
2928
 
 
2929
  function parse_SchemaPrefix()
 
2930
  {
 
2931
    eventHandler.startNonterminal("SchemaPrefix", e0);
 
2932
    switch (l1)
 
2933
    {
 
2934
    case 184:                       // 'namespace'
 
2935
      shift(184);                   // 'namespace'
 
2936
      lookahead1W(247);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
2937
      whitespace();
 
2938
      parse_NCName();
 
2939
      lookahead1W(29);              // S^WS | '(:' | '='
 
2940
      shift(60);                    // '='
 
2941
      break;
 
2942
    default:
 
2943
      shift(109);                   // 'default'
 
2944
      lookahead1W(47);              // S^WS | '(:' | 'element'
 
2945
      shift(121);                   // 'element'
 
2946
      lookahead1W(61);              // S^WS | '(:' | 'namespace'
 
2947
      shift(184);                   // 'namespace'
 
2948
    }
 
2949
    eventHandler.endNonterminal("SchemaPrefix", e0);
 
2950
  }
 
2951
 
 
2952
  function parse_ModuleImport()
 
2953
  {
 
2954
    eventHandler.startNonterminal("ModuleImport", e0);
 
2955
    shift(153);                     // 'import'
 
2956
    lookahead1W(60);                // S^WS | '(:' | 'module'
 
2957
    shift(182);                     // 'module'
 
2958
    lookahead1W(90);                // URILiteral | S^WS | '(:' | 'namespace'
 
2959
    if (l1 == 184)                  // 'namespace'
 
2960
    {
 
2961
      shift(184);                   // 'namespace'
 
2962
      lookahead1W(247);             // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
2963
      whitespace();
 
2964
      parse_NCName();
 
2965
      lookahead1W(29);              // S^WS | '(:' | '='
 
2966
      shift(60);                    // '='
 
2967
    }
 
2968
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
2969
    shift(7);                       // URILiteral
 
2970
    lookahead1W(108);               // S^WS | '(:' | ';' | 'at'
 
2971
    if (l1 == 81)                   // 'at'
 
2972
    {
 
2973
      shift(81);                    // 'at'
 
2974
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
2975
      shift(7);                     // URILiteral
 
2976
      for (;;)
 
2977
      {
 
2978
        lookahead1W(103);           // S^WS | '(:' | ',' | ';'
 
2979
        if (l1 != 41)               // ','
 
2980
        {
 
2981
          break;
 
2982
        }
 
2983
        shift(41);                  // ','
 
2984
        lookahead1W(15);            // URILiteral | S^WS | '(:'
 
2985
        shift(7);                   // URILiteral
 
2986
      }
 
2987
    }
 
2988
    eventHandler.endNonterminal("ModuleImport", e0);
 
2989
  }
 
2990
 
 
2991
  function parse_NamespaceDecl()
 
2992
  {
 
2993
    eventHandler.startNonterminal("NamespaceDecl", e0);
 
2994
    shift(108);                     // 'declare'
 
2995
    lookahead1W(61);                // S^WS | '(:' | 'namespace'
 
2996
    shift(184);                     // 'namespace'
 
2997
    lookahead1W(247);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
2998
    whitespace();
 
2999
    parse_NCName();
 
3000
    lookahead1W(29);                // S^WS | '(:' | '='
 
3001
    shift(60);                      // '='
 
3002
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
3003
    shift(7);                       // URILiteral
 
3004
    eventHandler.endNonterminal("NamespaceDecl", e0);
 
3005
  }
 
3006
 
 
3007
  function parse_DefaultNamespaceDecl()
 
3008
  {
 
3009
    eventHandler.startNonterminal("DefaultNamespaceDecl", e0);
 
3010
    shift(108);                     // 'declare'
 
3011
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
3012
    shift(109);                     // 'default'
 
3013
    lookahead1W(115);               // S^WS | '(:' | 'element' | 'function'
 
3014
    switch (l1)
 
3015
    {
 
3016
    case 121:                       // 'element'
 
3017
      shift(121);                   // 'element'
 
3018
      break;
 
3019
    default:
 
3020
      shift(145);                   // 'function'
 
3021
    }
 
3022
    lookahead1W(61);                // S^WS | '(:' | 'namespace'
 
3023
    shift(184);                     // 'namespace'
 
3024
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
3025
    shift(7);                       // URILiteral
 
3026
    eventHandler.endNonterminal("DefaultNamespaceDecl", e0);
 
3027
  }
 
3028
 
 
3029
  function try_DefaultNamespaceDecl()
 
3030
  {
 
3031
    shiftT(108);                    // 'declare'
 
3032
    lookahead1W(46);                // S^WS | '(:' | 'default'
 
3033
    shiftT(109);                    // 'default'
 
3034
    lookahead1W(115);               // S^WS | '(:' | 'element' | 'function'
 
3035
    switch (l1)
 
3036
    {
 
3037
    case 121:                       // 'element'
 
3038
      shiftT(121);                  // 'element'
 
3039
      break;
 
3040
    default:
 
3041
      shiftT(145);                  // 'function'
 
3042
    }
 
3043
    lookahead1W(61);                // S^WS | '(:' | 'namespace'
 
3044
    shiftT(184);                    // 'namespace'
 
3045
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
3046
    shiftT(7);                      // URILiteral
 
3047
  }
 
3048
 
 
3049
  function parse_FTOptionDecl()
 
3050
  {
 
3051
    eventHandler.startNonterminal("FTOptionDecl", e0);
 
3052
    shift(108);                     // 'declare'
 
3053
    lookahead1W(52);                // S^WS | '(:' | 'ft-option'
 
3054
    shift(141);                     // 'ft-option'
 
3055
    lookahead1W(81);                // S^WS | '(:' | 'using'
 
3056
    whitespace();
 
3057
    parse_FTMatchOptions();
 
3058
    eventHandler.endNonterminal("FTOptionDecl", e0);
 
3059
  }
 
3060
 
 
3061
  function parse_AnnotatedDecl()
 
3062
  {
 
3063
    eventHandler.startNonterminal("AnnotatedDecl", e0);
 
3064
    shift(108);                     // 'declare'
 
3065
    for (;;)
 
3066
    {
 
3067
      lookahead1W(170);             // S^WS | '%' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
 
3068
      if (l1 != 32                  // '%'
 
3069
       && l1 != 257)                // 'updating'
 
3070
      {
 
3071
        break;
 
3072
      }
 
3073
      switch (l1)
 
3074
      {
 
3075
      case 257:                     // 'updating'
 
3076
        whitespace();
 
3077
        parse_CompatibilityAnnotation();
 
3078
        break;
 
3079
      default:
 
3080
        whitespace();
 
3081
        parse_Annotation();
 
3082
      }
 
3083
    }
 
3084
    switch (l1)
 
3085
    {
 
3086
    case 262:                       // 'variable'
 
3087
      whitespace();
 
3088
      parse_VarDecl();
 
3089
      break;
 
3090
    case 145:                       // 'function'
 
3091
      whitespace();
 
3092
      parse_FunctionDecl();
 
3093
      break;
 
3094
    case 95:                        // 'collection'
 
3095
      whitespace();
 
3096
      parse_CollectionDecl();
 
3097
      break;
 
3098
    case 155:                       // 'index'
 
3099
      whitespace();
 
3100
      parse_IndexDecl();
 
3101
      break;
 
3102
    default:
 
3103
      whitespace();
 
3104
      parse_ICDecl();
 
3105
    }
 
3106
    eventHandler.endNonterminal("AnnotatedDecl", e0);
 
3107
  }
 
3108
 
 
3109
  function parse_CompatibilityAnnotation()
 
3110
  {
 
3111
    eventHandler.startNonterminal("CompatibilityAnnotation", e0);
 
3112
    shift(257);                     // 'updating'
 
3113
    eventHandler.endNonterminal("CompatibilityAnnotation", e0);
 
3114
  }
 
3115
 
 
3116
  function parse_Annotation()
 
3117
  {
 
3118
    eventHandler.startNonterminal("Annotation", e0);
 
3119
    shift(32);                      // '%'
 
3120
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3121
    whitespace();
 
3122
    parse_EQName();
 
3123
    lookahead1W(171);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
 
3124
    if (l1 == 34)                   // '('
 
3125
    {
 
3126
      shift(34);                    // '('
 
3127
      lookahead1W(154);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
 
3128
      whitespace();
 
3129
      parse_Literal();
 
3130
      for (;;)
 
3131
      {
 
3132
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
3133
        if (l1 != 41)               // ','
 
3134
        {
 
3135
          break;
 
3136
        }
 
3137
        shift(41);                  // ','
 
3138
        lookahead1W(154);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
 
3139
        whitespace();
 
3140
        parse_Literal();
 
3141
      }
 
3142
      shift(37);                    // ')'
 
3143
    }
 
3144
    eventHandler.endNonterminal("Annotation", e0);
 
3145
  }
 
3146
 
 
3147
  function try_Annotation()
 
3148
  {
 
3149
    shiftT(32);                     // '%'
 
3150
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3151
    try_EQName();
 
3152
    lookahead1W(171);               // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
 
3153
    if (l1 == 34)                   // '('
 
3154
    {
 
3155
      shiftT(34);                   // '('
 
3156
      lookahead1W(154);             // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
 
3157
      try_Literal();
 
3158
      for (;;)
 
3159
      {
 
3160
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
3161
        if (l1 != 41)               // ','
 
3162
        {
 
3163
          break;
 
3164
        }
 
3165
        shiftT(41);                 // ','
 
3166
        lookahead1W(154);           // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
 
3167
        try_Literal();
 
3168
      }
 
3169
      shiftT(37);                   // ')'
 
3170
    }
 
3171
  }
 
3172
 
 
3173
  function parse_VarDecl()
 
3174
  {
 
3175
    eventHandler.startNonterminal("VarDecl", e0);
 
3176
    shift(262);                     // 'variable'
 
3177
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3178
    shift(31);                      // '$'
 
3179
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3180
    whitespace();
 
3181
    parse_VarName();
 
3182
    lookahead1W(147);               // S^WS | '(:' | ':=' | 'as' | 'external'
 
3183
    if (l1 == 79)                   // 'as'
 
3184
    {
 
3185
      whitespace();
 
3186
      parse_TypeDeclaration();
 
3187
    }
 
3188
    lookahead1W(106);               // S^WS | '(:' | ':=' | 'external'
 
3189
    switch (l1)
 
3190
    {
 
3191
    case 52:                        // ':='
 
3192
      shift(52);                    // ':='
 
3193
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3194
      whitespace();
 
3195
      parse_VarValue();
 
3196
      break;
 
3197
    default:
 
3198
      shift(133);                   // 'external'
 
3199
      lookahead1W(104);             // S^WS | '(:' | ':=' | ';'
 
3200
      if (l1 == 52)                 // ':='
 
3201
      {
 
3202
        shift(52);                  // ':='
 
3203
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3204
        whitespace();
 
3205
        parse_VarDefaultValue();
 
3206
      }
 
3207
    }
 
3208
    eventHandler.endNonterminal("VarDecl", e0);
 
3209
  }
 
3210
 
 
3211
  function parse_VarValue()
 
3212
  {
 
3213
    eventHandler.startNonterminal("VarValue", e0);
 
3214
    parse_ExprSingle();
 
3215
    eventHandler.endNonterminal("VarValue", e0);
 
3216
  }
 
3217
 
 
3218
  function parse_VarDefaultValue()
 
3219
  {
 
3220
    eventHandler.startNonterminal("VarDefaultValue", e0);
 
3221
    parse_ExprSingle();
 
3222
    eventHandler.endNonterminal("VarDefaultValue", e0);
 
3223
  }
 
3224
 
 
3225
  function parse_ContextItemDecl()
 
3226
  {
 
3227
    eventHandler.startNonterminal("ContextItemDecl", e0);
 
3228
    shift(108);                     // 'declare'
 
3229
    lookahead1W(43);                // S^WS | '(:' | 'context'
 
3230
    shift(101);                     // 'context'
 
3231
    lookahead1W(55);                // S^WS | '(:' | 'item'
 
3232
    shift(165);                     // 'item'
 
3233
    lookahead1W(147);               // S^WS | '(:' | ':=' | 'as' | 'external'
 
3234
    if (l1 == 79)                   // 'as'
 
3235
    {
 
3236
      shift(79);                    // 'as'
 
3237
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3238
      whitespace();
 
3239
      parse_ItemType();
 
3240
    }
 
3241
    lookahead1W(106);               // S^WS | '(:' | ':=' | 'external'
 
3242
    switch (l1)
 
3243
    {
 
3244
    case 52:                        // ':='
 
3245
      shift(52);                    // ':='
 
3246
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3247
      whitespace();
 
3248
      parse_VarValue();
 
3249
      break;
 
3250
    default:
 
3251
      shift(133);                   // 'external'
 
3252
      lookahead1W(104);             // S^WS | '(:' | ':=' | ';'
 
3253
      if (l1 == 52)                 // ':='
 
3254
      {
 
3255
        shift(52);                  // ':='
 
3256
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3257
        whitespace();
 
3258
        parse_VarDefaultValue();
 
3259
      }
 
3260
    }
 
3261
    eventHandler.endNonterminal("ContextItemDecl", e0);
 
3262
  }
 
3263
 
 
3264
  function parse_ParamList()
 
3265
  {
 
3266
    eventHandler.startNonterminal("ParamList", e0);
 
3267
    parse_Param();
 
3268
    for (;;)
 
3269
    {
 
3270
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
3271
      if (l1 != 41)                 // ','
 
3272
      {
 
3273
        break;
 
3274
      }
 
3275
      shift(41);                    // ','
 
3276
      lookahead1W(21);              // S^WS | '$' | '(:'
 
3277
      whitespace();
 
3278
      parse_Param();
 
3279
    }
 
3280
    eventHandler.endNonterminal("ParamList", e0);
 
3281
  }
 
3282
 
 
3283
  function try_ParamList()
 
3284
  {
 
3285
    try_Param();
 
3286
    for (;;)
 
3287
    {
 
3288
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
3289
      if (l1 != 41)                 // ','
 
3290
      {
 
3291
        break;
 
3292
      }
 
3293
      shiftT(41);                   // ','
 
3294
      lookahead1W(21);              // S^WS | '$' | '(:'
 
3295
      try_Param();
 
3296
    }
 
3297
  }
 
3298
 
 
3299
  function parse_Param()
 
3300
  {
 
3301
    eventHandler.startNonterminal("Param", e0);
 
3302
    shift(31);                      // '$'
 
3303
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3304
    whitespace();
 
3305
    parse_EQName();
 
3306
    lookahead1W(143);               // S^WS | '(:' | ')' | ',' | 'as'
 
3307
    if (l1 == 79)                   // 'as'
 
3308
    {
 
3309
      whitespace();
 
3310
      parse_TypeDeclaration();
 
3311
    }
 
3312
    eventHandler.endNonterminal("Param", e0);
 
3313
  }
 
3314
 
 
3315
  function try_Param()
 
3316
  {
 
3317
    shiftT(31);                     // '$'
 
3318
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3319
    try_EQName();
 
3320
    lookahead1W(143);               // S^WS | '(:' | ')' | ',' | 'as'
 
3321
    if (l1 == 79)                   // 'as'
 
3322
    {
 
3323
      try_TypeDeclaration();
 
3324
    }
 
3325
  }
 
3326
 
 
3327
  function parse_FunctionBody()
 
3328
  {
 
3329
    eventHandler.startNonterminal("FunctionBody", e0);
 
3330
    parse_EnclosedExpr();
 
3331
    eventHandler.endNonterminal("FunctionBody", e0);
 
3332
  }
 
3333
 
 
3334
  function try_FunctionBody()
 
3335
  {
 
3336
    try_EnclosedExpr();
 
3337
  }
 
3338
 
 
3339
  function parse_EnclosedExpr()
 
3340
  {
 
3341
    eventHandler.startNonterminal("EnclosedExpr", e0);
 
3342
    shift(276);                     // '{'
 
3343
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3344
    whitespace();
 
3345
    parse_Expr();
 
3346
    shift(282);                     // '}'
 
3347
    eventHandler.endNonterminal("EnclosedExpr", e0);
 
3348
  }
 
3349
 
 
3350
  function try_EnclosedExpr()
 
3351
  {
 
3352
    shiftT(276);                    // '{'
 
3353
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3354
    try_Expr();
 
3355
    shiftT(282);                    // '}'
 
3356
  }
 
3357
 
 
3358
  function parse_OptionDecl()
 
3359
  {
 
3360
    eventHandler.startNonterminal("OptionDecl", e0);
 
3361
    shift(108);                     // 'declare'
 
3362
    lookahead1W(66);                // S^WS | '(:' | 'option'
 
3363
    shift(199);                     // 'option'
 
3364
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3365
    whitespace();
 
3366
    parse_EQName();
 
3367
    lookahead1W(17);                // StringLiteral | S^WS | '(:'
 
3368
    shift(11);                      // StringLiteral
 
3369
    eventHandler.endNonterminal("OptionDecl", e0);
 
3370
  }
 
3371
 
 
3372
  function parse_Expr()
 
3373
  {
 
3374
    eventHandler.startNonterminal("Expr", e0);
 
3375
    parse_ExprSingle();
 
3376
    for (;;)
 
3377
    {
 
3378
      if (l1 != 41)                 // ','
 
3379
      {
 
3380
        break;
 
3381
      }
 
3382
      shift(41);                    // ','
 
3383
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3384
      whitespace();
 
3385
      parse_ExprSingle();
 
3386
    }
 
3387
    eventHandler.endNonterminal("Expr", e0);
 
3388
  }
 
3389
 
 
3390
  function try_Expr()
 
3391
  {
 
3392
    try_ExprSingle();
 
3393
    for (;;)
 
3394
    {
 
3395
      if (l1 != 41)                 // ','
 
3396
      {
 
3397
        break;
 
3398
      }
 
3399
      shiftT(41);                   // ','
 
3400
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3401
      try_ExprSingle();
 
3402
    }
 
3403
  }
 
3404
 
 
3405
  function parse_FLWORExpr()
 
3406
  {
 
3407
    eventHandler.startNonterminal("FLWORExpr", e0);
 
3408
    parse_InitialClause();
 
3409
    for (;;)
 
3410
    {
 
3411
      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
 
3412
      if (l1 == 220)                // 'return'
 
3413
      {
 
3414
        break;
 
3415
      }
 
3416
      whitespace();
 
3417
      parse_IntermediateClause();
 
3418
    }
 
3419
    whitespace();
 
3420
    parse_ReturnClause();
 
3421
    eventHandler.endNonterminal("FLWORExpr", e0);
 
3422
  }
 
3423
 
 
3424
  function try_FLWORExpr()
 
3425
  {
 
3426
    try_InitialClause();
 
3427
    for (;;)
 
3428
    {
 
3429
      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
 
3430
      if (l1 == 220)                // 'return'
 
3431
      {
 
3432
        break;
 
3433
      }
 
3434
      try_IntermediateClause();
 
3435
    }
 
3436
    try_ReturnClause();
 
3437
  }
 
3438
 
 
3439
  function parse_InitialClause()
 
3440
  {
 
3441
    eventHandler.startNonterminal("InitialClause", e0);
 
3442
    switch (l1)
 
3443
    {
 
3444
    case 137:                       // 'for'
 
3445
      lookahead2W(141);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'
 
3446
      break;
 
3447
    default:
 
3448
      lk = l1;
 
3449
    }
 
3450
    switch (lk)
 
3451
    {
 
3452
    case 16009:                     // 'for' '$'
 
3453
      parse_ForClause();
 
3454
      break;
 
3455
    case 174:                       // 'let'
 
3456
      parse_LetClause();
 
3457
      break;
 
3458
    default:
 
3459
      parse_WindowClause();
 
3460
    }
 
3461
    eventHandler.endNonterminal("InitialClause", e0);
 
3462
  }
 
3463
 
 
3464
  function try_InitialClause()
 
3465
  {
 
3466
    switch (l1)
 
3467
    {
 
3468
    case 137:                       // 'for'
 
3469
      lookahead2W(141);             // S^WS | '$' | '(:' | 'sliding' | 'tumbling'
 
3470
      break;
 
3471
    default:
 
3472
      lk = l1;
 
3473
    }
 
3474
    switch (lk)
 
3475
    {
 
3476
    case 16009:                     // 'for' '$'
 
3477
      try_ForClause();
 
3478
      break;
 
3479
    case 174:                       // 'let'
 
3480
      try_LetClause();
 
3481
      break;
 
3482
    default:
 
3483
      try_WindowClause();
 
3484
    }
 
3485
  }
 
3486
 
 
3487
  function parse_IntermediateClause()
 
3488
  {
 
3489
    eventHandler.startNonterminal("IntermediateClause", e0);
 
3490
    switch (l1)
 
3491
    {
 
3492
    case 137:                       // 'for'
 
3493
    case 174:                       // 'let'
 
3494
      parse_InitialClause();
 
3495
      break;
 
3496
    case 266:                       // 'where'
 
3497
      parse_WhereClause();
 
3498
      break;
 
3499
    case 148:                       // 'group'
 
3500
      parse_GroupByClause();
 
3501
      break;
 
3502
    case 105:                       // 'count'
 
3503
      parse_CountClause();
 
3504
      break;
 
3505
    default:
 
3506
      parse_OrderByClause();
 
3507
    }
 
3508
    eventHandler.endNonterminal("IntermediateClause", e0);
 
3509
  }
 
3510
 
 
3511
  function try_IntermediateClause()
 
3512
  {
 
3513
    switch (l1)
 
3514
    {
 
3515
    case 137:                       // 'for'
 
3516
    case 174:                       // 'let'
 
3517
      try_InitialClause();
 
3518
      break;
 
3519
    case 266:                       // 'where'
 
3520
      try_WhereClause();
 
3521
      break;
 
3522
    case 148:                       // 'group'
 
3523
      try_GroupByClause();
 
3524
      break;
 
3525
    case 105:                       // 'count'
 
3526
      try_CountClause();
 
3527
      break;
 
3528
    default:
 
3529
      try_OrderByClause();
 
3530
    }
 
3531
  }
 
3532
 
 
3533
  function parse_ForClause()
 
3534
  {
 
3535
    eventHandler.startNonterminal("ForClause", e0);
 
3536
    shift(137);                     // 'for'
 
3537
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3538
    whitespace();
 
3539
    parse_ForBinding();
 
3540
    for (;;)
 
3541
    {
 
3542
      if (l1 != 41)                 // ','
 
3543
      {
 
3544
        break;
 
3545
      }
 
3546
      shift(41);                    // ','
 
3547
      lookahead1W(21);              // S^WS | '$' | '(:'
 
3548
      whitespace();
 
3549
      parse_ForBinding();
 
3550
    }
 
3551
    eventHandler.endNonterminal("ForClause", e0);
 
3552
  }
 
3553
 
 
3554
  function try_ForClause()
 
3555
  {
 
3556
    shiftT(137);                    // 'for'
 
3557
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3558
    try_ForBinding();
 
3559
    for (;;)
 
3560
    {
 
3561
      if (l1 != 41)                 // ','
 
3562
      {
 
3563
        break;
 
3564
      }
 
3565
      shiftT(41);                   // ','
 
3566
      lookahead1W(21);              // S^WS | '$' | '(:'
 
3567
      try_ForBinding();
 
3568
    }
 
3569
  }
 
3570
 
 
3571
  function parse_ForBinding()
 
3572
  {
 
3573
    eventHandler.startNonterminal("ForBinding", e0);
 
3574
    shift(31);                      // '$'
 
3575
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3576
    whitespace();
 
3577
    parse_VarName();
 
3578
    lookahead1W(164);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'
 
3579
    if (l1 == 79)                   // 'as'
 
3580
    {
 
3581
      whitespace();
 
3582
      parse_TypeDeclaration();
 
3583
    }
 
3584
    lookahead1W(158);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'
 
3585
    if (l1 == 72)                   // 'allowing'
 
3586
    {
 
3587
      whitespace();
 
3588
      parse_AllowingEmpty();
 
3589
    }
 
3590
    lookahead1W(150);               // S^WS | '(:' | 'at' | 'in' | 'score'
 
3591
    if (l1 == 81)                   // 'at'
 
3592
    {
 
3593
      whitespace();
 
3594
      parse_PositionalVar();
 
3595
    }
 
3596
    lookahead1W(122);               // S^WS | '(:' | 'in' | 'score'
 
3597
    if (l1 == 228)                  // 'score'
 
3598
    {
 
3599
      whitespace();
 
3600
      parse_FTScoreVar();
 
3601
    }
 
3602
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3603
    shift(154);                     // 'in'
 
3604
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3605
    whitespace();
 
3606
    parse_ExprSingle();
 
3607
    eventHandler.endNonterminal("ForBinding", e0);
 
3608
  }
 
3609
 
 
3610
  function try_ForBinding()
 
3611
  {
 
3612
    shiftT(31);                     // '$'
 
3613
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3614
    try_VarName();
 
3615
    lookahead1W(164);               // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'
 
3616
    if (l1 == 79)                   // 'as'
 
3617
    {
 
3618
      try_TypeDeclaration();
 
3619
    }
 
3620
    lookahead1W(158);               // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'
 
3621
    if (l1 == 72)                   // 'allowing'
 
3622
    {
 
3623
      try_AllowingEmpty();
 
3624
    }
 
3625
    lookahead1W(150);               // S^WS | '(:' | 'at' | 'in' | 'score'
 
3626
    if (l1 == 81)                   // 'at'
 
3627
    {
 
3628
      try_PositionalVar();
 
3629
    }
 
3630
    lookahead1W(122);               // S^WS | '(:' | 'in' | 'score'
 
3631
    if (l1 == 228)                  // 'score'
 
3632
    {
 
3633
      try_FTScoreVar();
 
3634
    }
 
3635
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3636
    shiftT(154);                    // 'in'
 
3637
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3638
    try_ExprSingle();
 
3639
  }
 
3640
 
 
3641
  function parse_AllowingEmpty()
 
3642
  {
 
3643
    eventHandler.startNonterminal("AllowingEmpty", e0);
 
3644
    shift(72);                      // 'allowing'
 
3645
    lookahead1W(49);                // S^WS | '(:' | 'empty'
 
3646
    shift(123);                     // 'empty'
 
3647
    eventHandler.endNonterminal("AllowingEmpty", e0);
 
3648
  }
 
3649
 
 
3650
  function try_AllowingEmpty()
 
3651
  {
 
3652
    shiftT(72);                     // 'allowing'
 
3653
    lookahead1W(49);                // S^WS | '(:' | 'empty'
 
3654
    shiftT(123);                    // 'empty'
 
3655
  }
 
3656
 
 
3657
  function parse_PositionalVar()
 
3658
  {
 
3659
    eventHandler.startNonterminal("PositionalVar", e0);
 
3660
    shift(81);                      // 'at'
 
3661
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3662
    shift(31);                      // '$'
 
3663
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3664
    whitespace();
 
3665
    parse_VarName();
 
3666
    eventHandler.endNonterminal("PositionalVar", e0);
 
3667
  }
 
3668
 
 
3669
  function try_PositionalVar()
 
3670
  {
 
3671
    shiftT(81);                     // 'at'
 
3672
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3673
    shiftT(31);                     // '$'
 
3674
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3675
    try_VarName();
 
3676
  }
 
3677
 
 
3678
  function parse_FTScoreVar()
 
3679
  {
 
3680
    eventHandler.startNonterminal("FTScoreVar", e0);
 
3681
    shift(228);                     // 'score'
 
3682
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3683
    shift(31);                      // '$'
 
3684
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3685
    whitespace();
 
3686
    parse_VarName();
 
3687
    eventHandler.endNonterminal("FTScoreVar", e0);
 
3688
  }
 
3689
 
 
3690
  function try_FTScoreVar()
 
3691
  {
 
3692
    shiftT(228);                    // 'score'
 
3693
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3694
    shiftT(31);                     // '$'
 
3695
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3696
    try_VarName();
 
3697
  }
 
3698
 
 
3699
  function parse_LetClause()
 
3700
  {
 
3701
    eventHandler.startNonterminal("LetClause", e0);
 
3702
    shift(174);                     // 'let'
 
3703
    lookahead1W(96);                // S^WS | '$' | '(:' | 'score'
 
3704
    whitespace();
 
3705
    parse_LetBinding();
 
3706
    for (;;)
 
3707
    {
 
3708
      if (l1 != 41)                 // ','
 
3709
      {
 
3710
        break;
 
3711
      }
 
3712
      shift(41);                    // ','
 
3713
      lookahead1W(96);              // S^WS | '$' | '(:' | 'score'
 
3714
      whitespace();
 
3715
      parse_LetBinding();
 
3716
    }
 
3717
    eventHandler.endNonterminal("LetClause", e0);
 
3718
  }
 
3719
 
 
3720
  function try_LetClause()
 
3721
  {
 
3722
    shiftT(174);                    // 'let'
 
3723
    lookahead1W(96);                // S^WS | '$' | '(:' | 'score'
 
3724
    try_LetBinding();
 
3725
    for (;;)
 
3726
    {
 
3727
      if (l1 != 41)                 // ','
 
3728
      {
 
3729
        break;
 
3730
      }
 
3731
      shiftT(41);                   // ','
 
3732
      lookahead1W(96);              // S^WS | '$' | '(:' | 'score'
 
3733
      try_LetBinding();
 
3734
    }
 
3735
  }
 
3736
 
 
3737
  function parse_LetBinding()
 
3738
  {
 
3739
    eventHandler.startNonterminal("LetBinding", e0);
 
3740
    switch (l1)
 
3741
    {
 
3742
    case 31:                        // '$'
 
3743
      shift(31);                    // '$'
 
3744
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3745
      whitespace();
 
3746
      parse_VarName();
 
3747
      lookahead1W(105);             // S^WS | '(:' | ':=' | 'as'
 
3748
      if (l1 == 79)                 // 'as'
 
3749
      {
 
3750
        whitespace();
 
3751
        parse_TypeDeclaration();
 
3752
      }
 
3753
      break;
 
3754
    default:
 
3755
      parse_FTScoreVar();
 
3756
    }
 
3757
    lookahead1W(27);                // S^WS | '(:' | ':='
 
3758
    shift(52);                      // ':='
 
3759
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3760
    whitespace();
 
3761
    parse_ExprSingle();
 
3762
    eventHandler.endNonterminal("LetBinding", e0);
 
3763
  }
 
3764
 
 
3765
  function try_LetBinding()
 
3766
  {
 
3767
    switch (l1)
 
3768
    {
 
3769
    case 31:                        // '$'
 
3770
      shiftT(31);                   // '$'
 
3771
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3772
      try_VarName();
 
3773
      lookahead1W(105);             // S^WS | '(:' | ':=' | 'as'
 
3774
      if (l1 == 79)                 // 'as'
 
3775
      {
 
3776
        try_TypeDeclaration();
 
3777
      }
 
3778
      break;
 
3779
    default:
 
3780
      try_FTScoreVar();
 
3781
    }
 
3782
    lookahead1W(27);                // S^WS | '(:' | ':='
 
3783
    shiftT(52);                     // ':='
 
3784
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3785
    try_ExprSingle();
 
3786
  }
 
3787
 
 
3788
  function parse_WindowClause()
 
3789
  {
 
3790
    eventHandler.startNonterminal("WindowClause", e0);
 
3791
    shift(137);                     // 'for'
 
3792
    lookahead1W(135);               // S^WS | '(:' | 'sliding' | 'tumbling'
 
3793
    switch (l1)
 
3794
    {
 
3795
    case 251:                       // 'tumbling'
 
3796
      whitespace();
 
3797
      parse_TumblingWindowClause();
 
3798
      break;
 
3799
    default:
 
3800
      whitespace();
 
3801
      parse_SlidingWindowClause();
 
3802
    }
 
3803
    eventHandler.endNonterminal("WindowClause", e0);
 
3804
  }
 
3805
 
 
3806
  function try_WindowClause()
 
3807
  {
 
3808
    shiftT(137);                    // 'for'
 
3809
    lookahead1W(135);               // S^WS | '(:' | 'sliding' | 'tumbling'
 
3810
    switch (l1)
 
3811
    {
 
3812
    case 251:                       // 'tumbling'
 
3813
      try_TumblingWindowClause();
 
3814
      break;
 
3815
    default:
 
3816
      try_SlidingWindowClause();
 
3817
    }
 
3818
  }
 
3819
 
 
3820
  function parse_TumblingWindowClause()
 
3821
  {
 
3822
    eventHandler.startNonterminal("TumblingWindowClause", e0);
 
3823
    shift(251);                     // 'tumbling'
 
3824
    lookahead1W(85);                // S^WS | '(:' | 'window'
 
3825
    shift(269);                     // 'window'
 
3826
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3827
    shift(31);                      // '$'
 
3828
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3829
    whitespace();
 
3830
    parse_VarName();
 
3831
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
3832
    if (l1 == 79)                   // 'as'
 
3833
    {
 
3834
      whitespace();
 
3835
      parse_TypeDeclaration();
 
3836
    }
 
3837
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3838
    shift(154);                     // 'in'
 
3839
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3840
    whitespace();
 
3841
    parse_ExprSingle();
 
3842
    whitespace();
 
3843
    parse_WindowStartCondition();
 
3844
    if (l1 == 126                   // 'end'
 
3845
     || l1 == 198)                  // 'only'
 
3846
    {
 
3847
      whitespace();
 
3848
      parse_WindowEndCondition();
 
3849
    }
 
3850
    eventHandler.endNonterminal("TumblingWindowClause", e0);
 
3851
  }
 
3852
 
 
3853
  function try_TumblingWindowClause()
 
3854
  {
 
3855
    shiftT(251);                    // 'tumbling'
 
3856
    lookahead1W(85);                // S^WS | '(:' | 'window'
 
3857
    shiftT(269);                    // 'window'
 
3858
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3859
    shiftT(31);                     // '$'
 
3860
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3861
    try_VarName();
 
3862
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
3863
    if (l1 == 79)                   // 'as'
 
3864
    {
 
3865
      try_TypeDeclaration();
 
3866
    }
 
3867
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3868
    shiftT(154);                    // 'in'
 
3869
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3870
    try_ExprSingle();
 
3871
    try_WindowStartCondition();
 
3872
    if (l1 == 126                   // 'end'
 
3873
     || l1 == 198)                  // 'only'
 
3874
    {
 
3875
      try_WindowEndCondition();
 
3876
    }
 
3877
  }
 
3878
 
 
3879
  function parse_SlidingWindowClause()
 
3880
  {
 
3881
    eventHandler.startNonterminal("SlidingWindowClause", e0);
 
3882
    shift(234);                     // 'sliding'
 
3883
    lookahead1W(85);                // S^WS | '(:' | 'window'
 
3884
    shift(269);                     // 'window'
 
3885
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3886
    shift(31);                      // '$'
 
3887
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3888
    whitespace();
 
3889
    parse_VarName();
 
3890
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
3891
    if (l1 == 79)                   // 'as'
 
3892
    {
 
3893
      whitespace();
 
3894
      parse_TypeDeclaration();
 
3895
    }
 
3896
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3897
    shift(154);                     // 'in'
 
3898
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3899
    whitespace();
 
3900
    parse_ExprSingle();
 
3901
    whitespace();
 
3902
    parse_WindowStartCondition();
 
3903
    whitespace();
 
3904
    parse_WindowEndCondition();
 
3905
    eventHandler.endNonterminal("SlidingWindowClause", e0);
 
3906
  }
 
3907
 
 
3908
  function try_SlidingWindowClause()
 
3909
  {
 
3910
    shiftT(234);                    // 'sliding'
 
3911
    lookahead1W(85);                // S^WS | '(:' | 'window'
 
3912
    shiftT(269);                    // 'window'
 
3913
    lookahead1W(21);                // S^WS | '$' | '(:'
 
3914
    shiftT(31);                     // '$'
 
3915
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3916
    try_VarName();
 
3917
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
3918
    if (l1 == 79)                   // 'as'
 
3919
    {
 
3920
      try_TypeDeclaration();
 
3921
    }
 
3922
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
3923
    shiftT(154);                    // 'in'
 
3924
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3925
    try_ExprSingle();
 
3926
    try_WindowStartCondition();
 
3927
    try_WindowEndCondition();
 
3928
  }
 
3929
 
 
3930
  function parse_WindowStartCondition()
 
3931
  {
 
3932
    eventHandler.startNonterminal("WindowStartCondition", e0);
 
3933
    shift(237);                     // 'start'
 
3934
    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
 
3935
    whitespace();
 
3936
    parse_WindowVars();
 
3937
    lookahead1W(83);                // S^WS | '(:' | 'when'
 
3938
    shift(265);                     // 'when'
 
3939
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3940
    whitespace();
 
3941
    parse_ExprSingle();
 
3942
    eventHandler.endNonterminal("WindowStartCondition", e0);
 
3943
  }
 
3944
 
 
3945
  function try_WindowStartCondition()
 
3946
  {
 
3947
    shiftT(237);                    // 'start'
 
3948
    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
 
3949
    try_WindowVars();
 
3950
    lookahead1W(83);                // S^WS | '(:' | 'when'
 
3951
    shiftT(265);                    // 'when'
 
3952
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3953
    try_ExprSingle();
 
3954
  }
 
3955
 
 
3956
  function parse_WindowEndCondition()
 
3957
  {
 
3958
    eventHandler.startNonterminal("WindowEndCondition", e0);
 
3959
    if (l1 == 198)                  // 'only'
 
3960
    {
 
3961
      shift(198);                   // 'only'
 
3962
    }
 
3963
    lookahead1W(50);                // S^WS | '(:' | 'end'
 
3964
    shift(126);                     // 'end'
 
3965
    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
 
3966
    whitespace();
 
3967
    parse_WindowVars();
 
3968
    lookahead1W(83);                // S^WS | '(:' | 'when'
 
3969
    shift(265);                     // 'when'
 
3970
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3971
    whitespace();
 
3972
    parse_ExprSingle();
 
3973
    eventHandler.endNonterminal("WindowEndCondition", e0);
 
3974
  }
 
3975
 
 
3976
  function try_WindowEndCondition()
 
3977
  {
 
3978
    if (l1 == 198)                  // 'only'
 
3979
    {
 
3980
      shiftT(198);                  // 'only'
 
3981
    }
 
3982
    lookahead1W(50);                // S^WS | '(:' | 'end'
 
3983
    shiftT(126);                    // 'end'
 
3984
    lookahead1W(163);               // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
 
3985
    try_WindowVars();
 
3986
    lookahead1W(83);                // S^WS | '(:' | 'when'
 
3987
    shiftT(265);                    // 'when'
 
3988
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
3989
    try_ExprSingle();
 
3990
  }
 
3991
 
 
3992
  function parse_WindowVars()
 
3993
  {
 
3994
    eventHandler.startNonterminal("WindowVars", e0);
 
3995
    if (l1 == 31)                   // '$'
 
3996
    {
 
3997
      shift(31);                    // '$'
 
3998
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
3999
      whitespace();
 
4000
      parse_CurrentItem();
 
4001
    }
 
4002
    lookahead1W(159);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'
 
4003
    if (l1 == 81)                   // 'at'
 
4004
    {
 
4005
      whitespace();
 
4006
      parse_PositionalVar();
 
4007
    }
 
4008
    lookahead1W(153);               // S^WS | '(:' | 'next' | 'previous' | 'when'
 
4009
    if (l1 == 215)                  // 'previous'
 
4010
    {
 
4011
      shift(215);                   // 'previous'
 
4012
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4013
      shift(31);                    // '$'
 
4014
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4015
      whitespace();
 
4016
      parse_PreviousItem();
 
4017
    }
 
4018
    lookahead1W(127);               // S^WS | '(:' | 'next' | 'when'
 
4019
    if (l1 == 187)                  // 'next'
 
4020
    {
 
4021
      shift(187);                   // 'next'
 
4022
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4023
      shift(31);                    // '$'
 
4024
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4025
      whitespace();
 
4026
      parse_NextItem();
 
4027
    }
 
4028
    eventHandler.endNonterminal("WindowVars", e0);
 
4029
  }
 
4030
 
 
4031
  function try_WindowVars()
 
4032
  {
 
4033
    if (l1 == 31)                   // '$'
 
4034
    {
 
4035
      shiftT(31);                   // '$'
 
4036
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4037
      try_CurrentItem();
 
4038
    }
 
4039
    lookahead1W(159);               // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'
 
4040
    if (l1 == 81)                   // 'at'
 
4041
    {
 
4042
      try_PositionalVar();
 
4043
    }
 
4044
    lookahead1W(153);               // S^WS | '(:' | 'next' | 'previous' | 'when'
 
4045
    if (l1 == 215)                  // 'previous'
 
4046
    {
 
4047
      shiftT(215);                  // 'previous'
 
4048
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4049
      shiftT(31);                   // '$'
 
4050
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4051
      try_PreviousItem();
 
4052
    }
 
4053
    lookahead1W(127);               // S^WS | '(:' | 'next' | 'when'
 
4054
    if (l1 == 187)                  // 'next'
 
4055
    {
 
4056
      shiftT(187);                  // 'next'
 
4057
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4058
      shiftT(31);                   // '$'
 
4059
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4060
      try_NextItem();
 
4061
    }
 
4062
  }
 
4063
 
 
4064
  function parse_CurrentItem()
 
4065
  {
 
4066
    eventHandler.startNonterminal("CurrentItem", e0);
 
4067
    parse_EQName();
 
4068
    eventHandler.endNonterminal("CurrentItem", e0);
 
4069
  }
 
4070
 
 
4071
  function try_CurrentItem()
 
4072
  {
 
4073
    try_EQName();
 
4074
  }
 
4075
 
 
4076
  function parse_PreviousItem()
 
4077
  {
 
4078
    eventHandler.startNonterminal("PreviousItem", e0);
 
4079
    parse_EQName();
 
4080
    eventHandler.endNonterminal("PreviousItem", e0);
 
4081
  }
 
4082
 
 
4083
  function try_PreviousItem()
 
4084
  {
 
4085
    try_EQName();
 
4086
  }
 
4087
 
 
4088
  function parse_NextItem()
 
4089
  {
 
4090
    eventHandler.startNonterminal("NextItem", e0);
 
4091
    parse_EQName();
 
4092
    eventHandler.endNonterminal("NextItem", e0);
 
4093
  }
 
4094
 
 
4095
  function try_NextItem()
 
4096
  {
 
4097
    try_EQName();
 
4098
  }
 
4099
 
 
4100
  function parse_CountClause()
 
4101
  {
 
4102
    eventHandler.startNonterminal("CountClause", e0);
 
4103
    shift(105);                     // 'count'
 
4104
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4105
    shift(31);                      // '$'
 
4106
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4107
    whitespace();
 
4108
    parse_VarName();
 
4109
    eventHandler.endNonterminal("CountClause", e0);
 
4110
  }
 
4111
 
 
4112
  function try_CountClause()
 
4113
  {
 
4114
    shiftT(105);                    // 'count'
 
4115
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4116
    shiftT(31);                     // '$'
 
4117
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4118
    try_VarName();
 
4119
  }
 
4120
 
 
4121
  function parse_WhereClause()
 
4122
  {
 
4123
    eventHandler.startNonterminal("WhereClause", e0);
 
4124
    shift(266);                     // 'where'
 
4125
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4126
    whitespace();
 
4127
    parse_ExprSingle();
 
4128
    eventHandler.endNonterminal("WhereClause", e0);
 
4129
  }
 
4130
 
 
4131
  function try_WhereClause()
 
4132
  {
 
4133
    shiftT(266);                    // 'where'
 
4134
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4135
    try_ExprSingle();
 
4136
  }
 
4137
 
 
4138
  function parse_GroupByClause()
 
4139
  {
 
4140
    eventHandler.startNonterminal("GroupByClause", e0);
 
4141
    shift(148);                     // 'group'
 
4142
    lookahead1W(34);                // S^WS | '(:' | 'by'
 
4143
    shift(87);                      // 'by'
 
4144
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4145
    whitespace();
 
4146
    parse_GroupingSpecList();
 
4147
    eventHandler.endNonterminal("GroupByClause", e0);
 
4148
  }
 
4149
 
 
4150
  function try_GroupByClause()
 
4151
  {
 
4152
    shiftT(148);                    // 'group'
 
4153
    lookahead1W(34);                // S^WS | '(:' | 'by'
 
4154
    shiftT(87);                     // 'by'
 
4155
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4156
    try_GroupingSpecList();
 
4157
  }
 
4158
 
 
4159
  function parse_GroupingSpecList()
 
4160
  {
 
4161
    eventHandler.startNonterminal("GroupingSpecList", e0);
 
4162
    parse_GroupingSpec();
 
4163
    for (;;)
 
4164
    {
 
4165
      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
 
4166
      if (l1 != 41)                 // ','
 
4167
      {
 
4168
        break;
 
4169
      }
 
4170
      shift(41);                    // ','
 
4171
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4172
      whitespace();
 
4173
      parse_GroupingSpec();
 
4174
    }
 
4175
    eventHandler.endNonterminal("GroupingSpecList", e0);
 
4176
  }
 
4177
 
 
4178
  function try_GroupingSpecList()
 
4179
  {
 
4180
    try_GroupingSpec();
 
4181
    for (;;)
 
4182
    {
 
4183
      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
 
4184
      if (l1 != 41)                 // ','
 
4185
      {
 
4186
        break;
 
4187
      }
 
4188
      shiftT(41);                   // ','
 
4189
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4190
      try_GroupingSpec();
 
4191
    }
 
4192
  }
 
4193
 
 
4194
  function parse_GroupingSpec()
 
4195
  {
 
4196
    eventHandler.startNonterminal("GroupingSpec", e0);
 
4197
    parse_GroupingVariable();
 
4198
    lookahead1W(182);               // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |
 
4199
    if (l1 == 52                    // ':='
 
4200
     || l1 == 79)                   // 'as'
 
4201
    {
 
4202
      if (l1 == 79)                 // 'as'
 
4203
      {
 
4204
        whitespace();
 
4205
        parse_TypeDeclaration();
 
4206
      }
 
4207
      lookahead1W(27);              // S^WS | '(:' | ':='
 
4208
      shift(52);                    // ':='
 
4209
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4210
      whitespace();
 
4211
      parse_ExprSingle();
 
4212
    }
 
4213
    if (l1 == 94)                   // 'collation'
 
4214
    {
 
4215
      shift(94);                    // 'collation'
 
4216
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
4217
      shift(7);                     // URILiteral
 
4218
    }
 
4219
    eventHandler.endNonterminal("GroupingSpec", e0);
 
4220
  }
 
4221
 
 
4222
  function try_GroupingSpec()
 
4223
  {
 
4224
    try_GroupingVariable();
 
4225
    lookahead1W(182);               // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |
 
4226
    if (l1 == 52                    // ':='
 
4227
     || l1 == 79)                   // 'as'
 
4228
    {
 
4229
      if (l1 == 79)                 // 'as'
 
4230
      {
 
4231
        try_TypeDeclaration();
 
4232
      }
 
4233
      lookahead1W(27);              // S^WS | '(:' | ':='
 
4234
      shiftT(52);                   // ':='
 
4235
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4236
      try_ExprSingle();
 
4237
    }
 
4238
    if (l1 == 94)                   // 'collation'
 
4239
    {
 
4240
      shiftT(94);                   // 'collation'
 
4241
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
4242
      shiftT(7);                    // URILiteral
 
4243
    }
 
4244
  }
 
4245
 
 
4246
  function parse_GroupingVariable()
 
4247
  {
 
4248
    eventHandler.startNonterminal("GroupingVariable", e0);
 
4249
    shift(31);                      // '$'
 
4250
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4251
    whitespace();
 
4252
    parse_VarName();
 
4253
    eventHandler.endNonterminal("GroupingVariable", e0);
 
4254
  }
 
4255
 
 
4256
  function try_GroupingVariable()
 
4257
  {
 
4258
    shiftT(31);                     // '$'
 
4259
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4260
    try_VarName();
 
4261
  }
 
4262
 
 
4263
  function parse_OrderByClause()
 
4264
  {
 
4265
    eventHandler.startNonterminal("OrderByClause", e0);
 
4266
    switch (l1)
 
4267
    {
 
4268
    case 201:                       // 'order'
 
4269
      shift(201);                   // 'order'
 
4270
      lookahead1W(34);              // S^WS | '(:' | 'by'
 
4271
      shift(87);                    // 'by'
 
4272
      break;
 
4273
    default:
 
4274
      shift(236);                   // 'stable'
 
4275
      lookahead1W(67);              // S^WS | '(:' | 'order'
 
4276
      shift(201);                   // 'order'
 
4277
      lookahead1W(34);              // S^WS | '(:' | 'by'
 
4278
      shift(87);                    // 'by'
 
4279
    }
 
4280
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4281
    whitespace();
 
4282
    parse_OrderSpecList();
 
4283
    eventHandler.endNonterminal("OrderByClause", e0);
 
4284
  }
 
4285
 
 
4286
  function try_OrderByClause()
 
4287
  {
 
4288
    switch (l1)
 
4289
    {
 
4290
    case 201:                       // 'order'
 
4291
      shiftT(201);                  // 'order'
 
4292
      lookahead1W(34);              // S^WS | '(:' | 'by'
 
4293
      shiftT(87);                   // 'by'
 
4294
      break;
 
4295
    default:
 
4296
      shiftT(236);                  // 'stable'
 
4297
      lookahead1W(67);              // S^WS | '(:' | 'order'
 
4298
      shiftT(201);                  // 'order'
 
4299
      lookahead1W(34);              // S^WS | '(:' | 'by'
 
4300
      shiftT(87);                   // 'by'
 
4301
    }
 
4302
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4303
    try_OrderSpecList();
 
4304
  }
 
4305
 
 
4306
  function parse_OrderSpecList()
 
4307
  {
 
4308
    eventHandler.startNonterminal("OrderSpecList", e0);
 
4309
    parse_OrderSpec();
 
4310
    for (;;)
 
4311
    {
 
4312
      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
 
4313
      if (l1 != 41)                 // ','
 
4314
      {
 
4315
        break;
 
4316
      }
 
4317
      shift(41);                    // ','
 
4318
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4319
      whitespace();
 
4320
      parse_OrderSpec();
 
4321
    }
 
4322
    eventHandler.endNonterminal("OrderSpecList", e0);
 
4323
  }
 
4324
 
 
4325
  function try_OrderSpecList()
 
4326
  {
 
4327
    try_OrderSpec();
 
4328
    for (;;)
 
4329
    {
 
4330
      lookahead1W(176);             // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
 
4331
      if (l1 != 41)                 // ','
 
4332
      {
 
4333
        break;
 
4334
      }
 
4335
      shiftT(41);                   // ','
 
4336
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4337
      try_OrderSpec();
 
4338
    }
 
4339
  }
 
4340
 
 
4341
  function parse_OrderSpec()
 
4342
  {
 
4343
    eventHandler.startNonterminal("OrderSpec", e0);
 
4344
    parse_ExprSingle();
 
4345
    whitespace();
 
4346
    parse_OrderModifier();
 
4347
    eventHandler.endNonterminal("OrderSpec", e0);
 
4348
  }
 
4349
 
 
4350
  function try_OrderSpec()
 
4351
  {
 
4352
    try_ExprSingle();
 
4353
    try_OrderModifier();
 
4354
  }
 
4355
 
 
4356
  function parse_OrderModifier()
 
4357
  {
 
4358
    eventHandler.startNonterminal("OrderModifier", e0);
 
4359
    if (l1 == 80                    // 'ascending'
 
4360
     || l1 == 113)                  // 'descending'
 
4361
    {
 
4362
      switch (l1)
 
4363
      {
 
4364
      case 80:                      // 'ascending'
 
4365
        shift(80);                  // 'ascending'
 
4366
        break;
 
4367
      default:
 
4368
        shift(113);                 // 'descending'
 
4369
      }
 
4370
    }
 
4371
    lookahead1W(179);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |
 
4372
    if (l1 == 123)                  // 'empty'
 
4373
    {
 
4374
      shift(123);                   // 'empty'
 
4375
      lookahead1W(121);             // S^WS | '(:' | 'greatest' | 'least'
 
4376
      switch (l1)
 
4377
      {
 
4378
      case 147:                     // 'greatest'
 
4379
        shift(147);                 // 'greatest'
 
4380
        break;
 
4381
      default:
 
4382
        shift(173);                 // 'least'
 
4383
      }
 
4384
    }
 
4385
    lookahead1W(177);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |
 
4386
    if (l1 == 94)                   // 'collation'
 
4387
    {
 
4388
      shift(94);                    // 'collation'
 
4389
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
4390
      shift(7);                     // URILiteral
 
4391
    }
 
4392
    eventHandler.endNonterminal("OrderModifier", e0);
 
4393
  }
 
4394
 
 
4395
  function try_OrderModifier()
 
4396
  {
 
4397
    if (l1 == 80                    // 'ascending'
 
4398
     || l1 == 113)                  // 'descending'
 
4399
    {
 
4400
      switch (l1)
 
4401
      {
 
4402
      case 80:                      // 'ascending'
 
4403
        shiftT(80);                 // 'ascending'
 
4404
        break;
 
4405
      default:
 
4406
        shiftT(113);                // 'descending'
 
4407
      }
 
4408
    }
 
4409
    lookahead1W(179);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |
 
4410
    if (l1 == 123)                  // 'empty'
 
4411
    {
 
4412
      shiftT(123);                  // 'empty'
 
4413
      lookahead1W(121);             // S^WS | '(:' | 'greatest' | 'least'
 
4414
      switch (l1)
 
4415
      {
 
4416
      case 147:                     // 'greatest'
 
4417
        shiftT(147);                // 'greatest'
 
4418
        break;
 
4419
      default:
 
4420
        shiftT(173);                // 'least'
 
4421
      }
 
4422
    }
 
4423
    lookahead1W(177);               // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |
 
4424
    if (l1 == 94)                   // 'collation'
 
4425
    {
 
4426
      shiftT(94);                   // 'collation'
 
4427
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
4428
      shiftT(7);                    // URILiteral
 
4429
    }
 
4430
  }
 
4431
 
 
4432
  function parse_ReturnClause()
 
4433
  {
 
4434
    eventHandler.startNonterminal("ReturnClause", e0);
 
4435
    shift(220);                     // 'return'
 
4436
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4437
    whitespace();
 
4438
    parse_ExprSingle();
 
4439
    eventHandler.endNonterminal("ReturnClause", e0);
 
4440
  }
 
4441
 
 
4442
  function try_ReturnClause()
 
4443
  {
 
4444
    shiftT(220);                    // 'return'
 
4445
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4446
    try_ExprSingle();
 
4447
  }
 
4448
 
 
4449
  function parse_QuantifiedExpr()
 
4450
  {
 
4451
    eventHandler.startNonterminal("QuantifiedExpr", e0);
 
4452
    switch (l1)
 
4453
    {
 
4454
    case 235:                       // 'some'
 
4455
      shift(235);                   // 'some'
 
4456
      break;
 
4457
    default:
 
4458
      shift(129);                   // 'every'
 
4459
    }
 
4460
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4461
    shift(31);                      // '$'
 
4462
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4463
    whitespace();
 
4464
    parse_VarName();
 
4465
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
4466
    if (l1 == 79)                   // 'as'
 
4467
    {
 
4468
      whitespace();
 
4469
      parse_TypeDeclaration();
 
4470
    }
 
4471
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
4472
    shift(154);                     // 'in'
 
4473
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4474
    whitespace();
 
4475
    parse_ExprSingle();
 
4476
    for (;;)
 
4477
    {
 
4478
      if (l1 != 41)                 // ','
 
4479
      {
 
4480
        break;
 
4481
      }
 
4482
      shift(41);                    // ','
 
4483
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4484
      shift(31);                    // '$'
 
4485
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4486
      whitespace();
 
4487
      parse_VarName();
 
4488
      lookahead1W(110);             // S^WS | '(:' | 'as' | 'in'
 
4489
      if (l1 == 79)                 // 'as'
 
4490
      {
 
4491
        whitespace();
 
4492
        parse_TypeDeclaration();
 
4493
      }
 
4494
      lookahead1W(53);              // S^WS | '(:' | 'in'
 
4495
      shift(154);                   // 'in'
 
4496
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4497
      whitespace();
 
4498
      parse_ExprSingle();
 
4499
    }
 
4500
    shift(224);                     // 'satisfies'
 
4501
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4502
    whitespace();
 
4503
    parse_ExprSingle();
 
4504
    eventHandler.endNonterminal("QuantifiedExpr", e0);
 
4505
  }
 
4506
 
 
4507
  function try_QuantifiedExpr()
 
4508
  {
 
4509
    switch (l1)
 
4510
    {
 
4511
    case 235:                       // 'some'
 
4512
      shiftT(235);                  // 'some'
 
4513
      break;
 
4514
    default:
 
4515
      shiftT(129);                  // 'every'
 
4516
    }
 
4517
    lookahead1W(21);                // S^WS | '$' | '(:'
 
4518
    shiftT(31);                     // '$'
 
4519
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4520
    try_VarName();
 
4521
    lookahead1W(110);               // S^WS | '(:' | 'as' | 'in'
 
4522
    if (l1 == 79)                   // 'as'
 
4523
    {
 
4524
      try_TypeDeclaration();
 
4525
    }
 
4526
    lookahead1W(53);                // S^WS | '(:' | 'in'
 
4527
    shiftT(154);                    // 'in'
 
4528
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4529
    try_ExprSingle();
 
4530
    for (;;)
 
4531
    {
 
4532
      if (l1 != 41)                 // ','
 
4533
      {
 
4534
        break;
 
4535
      }
 
4536
      shiftT(41);                   // ','
 
4537
      lookahead1W(21);              // S^WS | '$' | '(:'
 
4538
      shiftT(31);                   // '$'
 
4539
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4540
      try_VarName();
 
4541
      lookahead1W(110);             // S^WS | '(:' | 'as' | 'in'
 
4542
      if (l1 == 79)                 // 'as'
 
4543
      {
 
4544
        try_TypeDeclaration();
 
4545
      }
 
4546
      lookahead1W(53);              // S^WS | '(:' | 'in'
 
4547
      shiftT(154);                  // 'in'
 
4548
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4549
      try_ExprSingle();
 
4550
    }
 
4551
    shiftT(224);                    // 'satisfies'
 
4552
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4553
    try_ExprSingle();
 
4554
  }
 
4555
 
 
4556
  function parse_SwitchExpr()
 
4557
  {
 
4558
    eventHandler.startNonterminal("SwitchExpr", e0);
 
4559
    shift(243);                     // 'switch'
 
4560
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4561
    shift(34);                      // '('
 
4562
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4563
    whitespace();
 
4564
    parse_Expr();
 
4565
    shift(37);                      // ')'
 
4566
    for (;;)
 
4567
    {
 
4568
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
4569
      whitespace();
 
4570
      parse_SwitchCaseClause();
 
4571
      if (l1 != 88)                 // 'case'
 
4572
      {
 
4573
        break;
 
4574
      }
 
4575
    }
 
4576
    shift(109);                     // 'default'
 
4577
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
4578
    shift(220);                     // 'return'
 
4579
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4580
    whitespace();
 
4581
    parse_ExprSingle();
 
4582
    eventHandler.endNonterminal("SwitchExpr", e0);
 
4583
  }
 
4584
 
 
4585
  function try_SwitchExpr()
 
4586
  {
 
4587
    shiftT(243);                    // 'switch'
 
4588
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4589
    shiftT(34);                     // '('
 
4590
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4591
    try_Expr();
 
4592
    shiftT(37);                     // ')'
 
4593
    for (;;)
 
4594
    {
 
4595
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
4596
      try_SwitchCaseClause();
 
4597
      if (l1 != 88)                 // 'case'
 
4598
      {
 
4599
        break;
 
4600
      }
 
4601
    }
 
4602
    shiftT(109);                    // 'default'
 
4603
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
4604
    shiftT(220);                    // 'return'
 
4605
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4606
    try_ExprSingle();
 
4607
  }
 
4608
 
 
4609
  function parse_SwitchCaseClause()
 
4610
  {
 
4611
    eventHandler.startNonterminal("SwitchCaseClause", e0);
 
4612
    for (;;)
 
4613
    {
 
4614
      shift(88);                    // 'case'
 
4615
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4616
      whitespace();
 
4617
      parse_SwitchCaseOperand();
 
4618
      if (l1 != 88)                 // 'case'
 
4619
      {
 
4620
        break;
 
4621
      }
 
4622
    }
 
4623
    shift(220);                     // 'return'
 
4624
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4625
    whitespace();
 
4626
    parse_ExprSingle();
 
4627
    eventHandler.endNonterminal("SwitchCaseClause", e0);
 
4628
  }
 
4629
 
 
4630
  function try_SwitchCaseClause()
 
4631
  {
 
4632
    for (;;)
 
4633
    {
 
4634
      shiftT(88);                   // 'case'
 
4635
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4636
      try_SwitchCaseOperand();
 
4637
      if (l1 != 88)                 // 'case'
 
4638
      {
 
4639
        break;
 
4640
      }
 
4641
    }
 
4642
    shiftT(220);                    // 'return'
 
4643
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4644
    try_ExprSingle();
 
4645
  }
 
4646
 
 
4647
  function parse_SwitchCaseOperand()
 
4648
  {
 
4649
    eventHandler.startNonterminal("SwitchCaseOperand", e0);
 
4650
    parse_ExprSingle();
 
4651
    eventHandler.endNonterminal("SwitchCaseOperand", e0);
 
4652
  }
 
4653
 
 
4654
  function try_SwitchCaseOperand()
 
4655
  {
 
4656
    try_ExprSingle();
 
4657
  }
 
4658
 
 
4659
  function parse_TypeswitchExpr()
 
4660
  {
 
4661
    eventHandler.startNonterminal("TypeswitchExpr", e0);
 
4662
    shift(253);                     // 'typeswitch'
 
4663
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4664
    shift(34);                      // '('
 
4665
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4666
    whitespace();
 
4667
    parse_Expr();
 
4668
    shift(37);                      // ')'
 
4669
    for (;;)
 
4670
    {
 
4671
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
4672
      whitespace();
 
4673
      parse_CaseClause();
 
4674
      if (l1 != 88)                 // 'case'
 
4675
      {
 
4676
        break;
 
4677
      }
 
4678
    }
 
4679
    shift(109);                     // 'default'
 
4680
    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'
 
4681
    if (l1 == 31)                   // '$'
 
4682
    {
 
4683
      shift(31);                    // '$'
 
4684
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4685
      whitespace();
 
4686
      parse_VarName();
 
4687
    }
 
4688
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
4689
    shift(220);                     // 'return'
 
4690
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4691
    whitespace();
 
4692
    parse_ExprSingle();
 
4693
    eventHandler.endNonterminal("TypeswitchExpr", e0);
 
4694
  }
 
4695
 
 
4696
  function try_TypeswitchExpr()
 
4697
  {
 
4698
    shiftT(253);                    // 'typeswitch'
 
4699
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4700
    shiftT(34);                     // '('
 
4701
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4702
    try_Expr();
 
4703
    shiftT(37);                     // ')'
 
4704
    for (;;)
 
4705
    {
 
4706
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
4707
      try_CaseClause();
 
4708
      if (l1 != 88)                 // 'case'
 
4709
      {
 
4710
        break;
 
4711
      }
 
4712
    }
 
4713
    shiftT(109);                    // 'default'
 
4714
    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'
 
4715
    if (l1 == 31)                   // '$'
 
4716
    {
 
4717
      shiftT(31);                   // '$'
 
4718
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4719
      try_VarName();
 
4720
    }
 
4721
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
4722
    shiftT(220);                    // 'return'
 
4723
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4724
    try_ExprSingle();
 
4725
  }
 
4726
 
 
4727
  function parse_CaseClause()
 
4728
  {
 
4729
    eventHandler.startNonterminal("CaseClause", e0);
 
4730
    shift(88);                      // 'case'
 
4731
    lookahead1W(260);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
 
4732
    if (l1 == 31)                   // '$'
 
4733
    {
 
4734
      shift(31);                    // '$'
 
4735
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4736
      whitespace();
 
4737
      parse_VarName();
 
4738
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
4739
      shift(79);                    // 'as'
 
4740
    }
 
4741
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4742
    whitespace();
 
4743
    parse_SequenceTypeUnion();
 
4744
    shift(220);                     // 'return'
 
4745
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4746
    whitespace();
 
4747
    parse_ExprSingle();
 
4748
    eventHandler.endNonterminal("CaseClause", e0);
 
4749
  }
 
4750
 
 
4751
  function try_CaseClause()
 
4752
  {
 
4753
    shiftT(88);                     // 'case'
 
4754
    lookahead1W(260);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
 
4755
    if (l1 == 31)                   // '$'
 
4756
    {
 
4757
      shiftT(31);                   // '$'
 
4758
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4759
      try_VarName();
 
4760
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
4761
      shiftT(79);                   // 'as'
 
4762
    }
 
4763
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4764
    try_SequenceTypeUnion();
 
4765
    shiftT(220);                    // 'return'
 
4766
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4767
    try_ExprSingle();
 
4768
  }
 
4769
 
 
4770
  function parse_SequenceTypeUnion()
 
4771
  {
 
4772
    eventHandler.startNonterminal("SequenceTypeUnion", e0);
 
4773
    parse_SequenceType();
 
4774
    for (;;)
 
4775
    {
 
4776
      lookahead1W(134);             // S^WS | '(:' | 'return' | '|'
 
4777
      if (l1 != 279)                // '|'
 
4778
      {
 
4779
        break;
 
4780
      }
 
4781
      shift(279);                   // '|'
 
4782
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4783
      whitespace();
 
4784
      parse_SequenceType();
 
4785
    }
 
4786
    eventHandler.endNonterminal("SequenceTypeUnion", e0);
 
4787
  }
 
4788
 
 
4789
  function try_SequenceTypeUnion()
 
4790
  {
 
4791
    try_SequenceType();
 
4792
    for (;;)
 
4793
    {
 
4794
      lookahead1W(134);             // S^WS | '(:' | 'return' | '|'
 
4795
      if (l1 != 279)                // '|'
 
4796
      {
 
4797
        break;
 
4798
      }
 
4799
      shiftT(279);                  // '|'
 
4800
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4801
      try_SequenceType();
 
4802
    }
 
4803
  }
 
4804
 
 
4805
  function parse_IfExpr()
 
4806
  {
 
4807
    eventHandler.startNonterminal("IfExpr", e0);
 
4808
    shift(152);                     // 'if'
 
4809
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4810
    shift(34);                      // '('
 
4811
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4812
    whitespace();
 
4813
    parse_Expr();
 
4814
    shift(37);                      // ')'
 
4815
    lookahead1W(77);                // S^WS | '(:' | 'then'
 
4816
    shift(245);                     // 'then'
 
4817
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4818
    whitespace();
 
4819
    parse_ExprSingle();
 
4820
    shift(122);                     // 'else'
 
4821
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4822
    whitespace();
 
4823
    parse_ExprSingle();
 
4824
    eventHandler.endNonterminal("IfExpr", e0);
 
4825
  }
 
4826
 
 
4827
  function try_IfExpr()
 
4828
  {
 
4829
    shiftT(152);                    // 'if'
 
4830
    lookahead1W(22);                // S^WS | '(' | '(:'
 
4831
    shiftT(34);                     // '('
 
4832
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4833
    try_Expr();
 
4834
    shiftT(37);                     // ')'
 
4835
    lookahead1W(77);                // S^WS | '(:' | 'then'
 
4836
    shiftT(245);                    // 'then'
 
4837
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4838
    try_ExprSingle();
 
4839
    shiftT(122);                    // 'else'
 
4840
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4841
    try_ExprSingle();
 
4842
  }
 
4843
 
 
4844
  function parse_TryCatchExpr()
 
4845
  {
 
4846
    eventHandler.startNonterminal("TryCatchExpr", e0);
 
4847
    parse_TryClause();
 
4848
    for (;;)
 
4849
    {
 
4850
      lookahead1W(36);              // S^WS | '(:' | 'catch'
 
4851
      whitespace();
 
4852
      parse_CatchClause();
 
4853
      lookahead1W(184);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |
 
4854
      if (l1 != 91)                 // 'catch'
 
4855
      {
 
4856
        break;
 
4857
      }
 
4858
    }
 
4859
    eventHandler.endNonterminal("TryCatchExpr", e0);
 
4860
  }
 
4861
 
 
4862
  function try_TryCatchExpr()
 
4863
  {
 
4864
    try_TryClause();
 
4865
    for (;;)
 
4866
    {
 
4867
      lookahead1W(36);              // S^WS | '(:' | 'catch'
 
4868
      try_CatchClause();
 
4869
      lookahead1W(184);             // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |
 
4870
      if (l1 != 91)                 // 'catch'
 
4871
      {
 
4872
        break;
 
4873
      }
 
4874
    }
 
4875
  }
 
4876
 
 
4877
  function parse_TryClause()
 
4878
  {
 
4879
    eventHandler.startNonterminal("TryClause", e0);
 
4880
    shift(250);                     // 'try'
 
4881
    lookahead1W(87);                // S^WS | '(:' | '{'
 
4882
    shift(276);                     // '{'
 
4883
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4884
    whitespace();
 
4885
    parse_TryTargetExpr();
 
4886
    shift(282);                     // '}'
 
4887
    eventHandler.endNonterminal("TryClause", e0);
 
4888
  }
 
4889
 
 
4890
  function try_TryClause()
 
4891
  {
 
4892
    shiftT(250);                    // 'try'
 
4893
    lookahead1W(87);                // S^WS | '(:' | '{'
 
4894
    shiftT(276);                    // '{'
 
4895
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4896
    try_TryTargetExpr();
 
4897
    shiftT(282);                    // '}'
 
4898
  }
 
4899
 
 
4900
  function parse_TryTargetExpr()
 
4901
  {
 
4902
    eventHandler.startNonterminal("TryTargetExpr", e0);
 
4903
    parse_Expr();
 
4904
    eventHandler.endNonterminal("TryTargetExpr", e0);
 
4905
  }
 
4906
 
 
4907
  function try_TryTargetExpr()
 
4908
  {
 
4909
    try_Expr();
 
4910
  }
 
4911
 
 
4912
  function parse_CatchClause()
 
4913
  {
 
4914
    eventHandler.startNonterminal("CatchClause", e0);
 
4915
    shift(91);                      // 'catch'
 
4916
    lookahead1W(255);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4917
    whitespace();
 
4918
    parse_CatchErrorList();
 
4919
    shift(276);                     // '{'
 
4920
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4921
    whitespace();
 
4922
    parse_Expr();
 
4923
    shift(282);                     // '}'
 
4924
    eventHandler.endNonterminal("CatchClause", e0);
 
4925
  }
 
4926
 
 
4927
  function try_CatchClause()
 
4928
  {
 
4929
    shiftT(91);                     // 'catch'
 
4930
    lookahead1W(255);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4931
    try_CatchErrorList();
 
4932
    shiftT(276);                    // '{'
 
4933
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4934
    try_Expr();
 
4935
    shiftT(282);                    // '}'
 
4936
  }
 
4937
 
 
4938
  function parse_CatchErrorList()
 
4939
  {
 
4940
    eventHandler.startNonterminal("CatchErrorList", e0);
 
4941
    parse_NameTest();
 
4942
    for (;;)
 
4943
    {
 
4944
      lookahead1W(136);             // S^WS | '(:' | '{' | '|'
 
4945
      if (l1 != 279)                // '|'
 
4946
      {
 
4947
        break;
 
4948
      }
 
4949
      shift(279);                   // '|'
 
4950
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4951
      whitespace();
 
4952
      parse_NameTest();
 
4953
    }
 
4954
    eventHandler.endNonterminal("CatchErrorList", e0);
 
4955
  }
 
4956
 
 
4957
  function try_CatchErrorList()
 
4958
  {
 
4959
    try_NameTest();
 
4960
    for (;;)
 
4961
    {
 
4962
      lookahead1W(136);             // S^WS | '(:' | '{' | '|'
 
4963
      if (l1 != 279)                // '|'
 
4964
      {
 
4965
        break;
 
4966
      }
 
4967
      shiftT(279);                  // '|'
 
4968
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
4969
      try_NameTest();
 
4970
    }
 
4971
  }
 
4972
 
 
4973
  function parse_OrExpr()
 
4974
  {
 
4975
    eventHandler.startNonterminal("OrExpr", e0);
 
4976
    parse_AndExpr();
 
4977
    for (;;)
 
4978
    {
 
4979
      if (l1 != 200)                // 'or'
 
4980
      {
 
4981
        break;
 
4982
      }
 
4983
      shift(200);                   // 'or'
 
4984
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
4985
      whitespace();
 
4986
      parse_AndExpr();
 
4987
    }
 
4988
    eventHandler.endNonterminal("OrExpr", e0);
 
4989
  }
 
4990
 
 
4991
  function try_OrExpr()
 
4992
  {
 
4993
    try_AndExpr();
 
4994
    for (;;)
 
4995
    {
 
4996
      if (l1 != 200)                // 'or'
 
4997
      {
 
4998
        break;
 
4999
      }
 
5000
      shiftT(200);                  // 'or'
 
5001
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5002
      try_AndExpr();
 
5003
    }
 
5004
  }
 
5005
 
 
5006
  function parse_AndExpr()
 
5007
  {
 
5008
    eventHandler.startNonterminal("AndExpr", e0);
 
5009
    parse_ComparisonExpr();
 
5010
    for (;;)
 
5011
    {
 
5012
      if (l1 != 75)                 // 'and'
 
5013
      {
 
5014
        break;
 
5015
      }
 
5016
      shift(75);                    // 'and'
 
5017
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5018
      whitespace();
 
5019
      parse_ComparisonExpr();
 
5020
    }
 
5021
    eventHandler.endNonterminal("AndExpr", e0);
 
5022
  }
 
5023
 
 
5024
  function try_AndExpr()
 
5025
  {
 
5026
    try_ComparisonExpr();
 
5027
    for (;;)
 
5028
    {
 
5029
      if (l1 != 75)                 // 'and'
 
5030
      {
 
5031
        break;
 
5032
      }
 
5033
      shiftT(75);                   // 'and'
 
5034
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5035
      try_ComparisonExpr();
 
5036
    }
 
5037
  }
 
5038
 
 
5039
  function parse_ComparisonExpr()
 
5040
  {
 
5041
    eventHandler.startNonterminal("ComparisonExpr", e0);
 
5042
    parse_FTContainsExpr();
 
5043
    if (l1 == 27                    // '!='
 
5044
     || l1 == 54                    // '<'
 
5045
     || l1 == 57                    // '<<'
 
5046
     || l1 == 58                    // '<='
 
5047
     || l1 == 60                    // '='
 
5048
     || l1 == 61                    // '>'
 
5049
     || l1 == 62                    // '>='
 
5050
     || l1 == 63                    // '>>'
 
5051
     || l1 == 128                   // 'eq'
 
5052
     || l1 == 146                   // 'ge'
 
5053
     || l1 == 150                   // 'gt'
 
5054
     || l1 == 164                   // 'is'
 
5055
     || l1 == 172                   // 'le'
 
5056
     || l1 == 178                   // 'lt'
 
5057
     || l1 == 186)                  // 'ne'
 
5058
    {
 
5059
      switch (l1)
 
5060
      {
 
5061
      case 128:                     // 'eq'
 
5062
      case 146:                     // 'ge'
 
5063
      case 150:                     // 'gt'
 
5064
      case 172:                     // 'le'
 
5065
      case 178:                     // 'lt'
 
5066
      case 186:                     // 'ne'
 
5067
        whitespace();
 
5068
        parse_ValueComp();
 
5069
        break;
 
5070
      case 57:                      // '<<'
 
5071
      case 63:                      // '>>'
 
5072
      case 164:                     // 'is'
 
5073
        whitespace();
 
5074
        parse_NodeComp();
 
5075
        break;
 
5076
      default:
 
5077
        whitespace();
 
5078
        parse_GeneralComp();
 
5079
      }
 
5080
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5081
      whitespace();
 
5082
      parse_FTContainsExpr();
 
5083
    }
 
5084
    eventHandler.endNonterminal("ComparisonExpr", e0);
 
5085
  }
 
5086
 
 
5087
  function try_ComparisonExpr()
 
5088
  {
 
5089
    try_FTContainsExpr();
 
5090
    if (l1 == 27                    // '!='
 
5091
     || l1 == 54                    // '<'
 
5092
     || l1 == 57                    // '<<'
 
5093
     || l1 == 58                    // '<='
 
5094
     || l1 == 60                    // '='
 
5095
     || l1 == 61                    // '>'
 
5096
     || l1 == 62                    // '>='
 
5097
     || l1 == 63                    // '>>'
 
5098
     || l1 == 128                   // 'eq'
 
5099
     || l1 == 146                   // 'ge'
 
5100
     || l1 == 150                   // 'gt'
 
5101
     || l1 == 164                   // 'is'
 
5102
     || l1 == 172                   // 'le'
 
5103
     || l1 == 178                   // 'lt'
 
5104
     || l1 == 186)                  // 'ne'
 
5105
    {
 
5106
      switch (l1)
 
5107
      {
 
5108
      case 128:                     // 'eq'
 
5109
      case 146:                     // 'ge'
 
5110
      case 150:                     // 'gt'
 
5111
      case 172:                     // 'le'
 
5112
      case 178:                     // 'lt'
 
5113
      case 186:                     // 'ne'
 
5114
        try_ValueComp();
 
5115
        break;
 
5116
      case 57:                      // '<<'
 
5117
      case 63:                      // '>>'
 
5118
      case 164:                     // 'is'
 
5119
        try_NodeComp();
 
5120
        break;
 
5121
      default:
 
5122
        try_GeneralComp();
 
5123
      }
 
5124
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5125
      try_FTContainsExpr();
 
5126
    }
 
5127
  }
 
5128
 
 
5129
  function parse_FTContainsExpr()
 
5130
  {
 
5131
    eventHandler.startNonterminal("FTContainsExpr", e0);
 
5132
    parse_StringConcatExpr();
 
5133
    if (l1 == 99)                   // 'contains'
 
5134
    {
 
5135
      shift(99);                    // 'contains'
 
5136
      lookahead1W(76);              // S^WS | '(:' | 'text'
 
5137
      shift(244);                   // 'text'
 
5138
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
5139
      whitespace();
 
5140
      parse_FTSelection();
 
5141
      if (l1 == 271)                // 'without'
 
5142
      {
 
5143
        whitespace();
 
5144
        parse_FTIgnoreOption();
 
5145
      }
 
5146
    }
 
5147
    eventHandler.endNonterminal("FTContainsExpr", e0);
 
5148
  }
 
5149
 
 
5150
  function try_FTContainsExpr()
 
5151
  {
 
5152
    try_StringConcatExpr();
 
5153
    if (l1 == 99)                   // 'contains'
 
5154
    {
 
5155
      shiftT(99);                   // 'contains'
 
5156
      lookahead1W(76);              // S^WS | '(:' | 'text'
 
5157
      shiftT(244);                  // 'text'
 
5158
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
5159
      try_FTSelection();
 
5160
      if (l1 == 271)                // 'without'
 
5161
      {
 
5162
        try_FTIgnoreOption();
 
5163
      }
 
5164
    }
 
5165
  }
 
5166
 
 
5167
  function parse_StringConcatExpr()
 
5168
  {
 
5169
    eventHandler.startNonterminal("StringConcatExpr", e0);
 
5170
    parse_RangeExpr();
 
5171
    for (;;)
 
5172
    {
 
5173
      if (l1 != 280)                // '||'
 
5174
      {
 
5175
        break;
 
5176
      }
 
5177
      shift(280);                   // '||'
 
5178
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5179
      whitespace();
 
5180
      parse_RangeExpr();
 
5181
    }
 
5182
    eventHandler.endNonterminal("StringConcatExpr", e0);
 
5183
  }
 
5184
 
 
5185
  function try_StringConcatExpr()
 
5186
  {
 
5187
    try_RangeExpr();
 
5188
    for (;;)
 
5189
    {
 
5190
      if (l1 != 280)                // '||'
 
5191
      {
 
5192
        break;
 
5193
      }
 
5194
      shiftT(280);                  // '||'
 
5195
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5196
      try_RangeExpr();
 
5197
    }
 
5198
  }
 
5199
 
 
5200
  function parse_RangeExpr()
 
5201
  {
 
5202
    eventHandler.startNonterminal("RangeExpr", e0);
 
5203
    parse_AdditiveExpr();
 
5204
    if (l1 == 248)                  // 'to'
 
5205
    {
 
5206
      shift(248);                   // 'to'
 
5207
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5208
      whitespace();
 
5209
      parse_AdditiveExpr();
 
5210
    }
 
5211
    eventHandler.endNonterminal("RangeExpr", e0);
 
5212
  }
 
5213
 
 
5214
  function try_RangeExpr()
 
5215
  {
 
5216
    try_AdditiveExpr();
 
5217
    if (l1 == 248)                  // 'to'
 
5218
    {
 
5219
      shiftT(248);                  // 'to'
 
5220
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5221
      try_AdditiveExpr();
 
5222
    }
 
5223
  }
 
5224
 
 
5225
  function parse_AdditiveExpr()
 
5226
  {
 
5227
    eventHandler.startNonterminal("AdditiveExpr", e0);
 
5228
    parse_MultiplicativeExpr();
 
5229
    for (;;)
 
5230
    {
 
5231
      if (l1 != 40                  // '+'
 
5232
       && l1 != 42)                 // '-'
 
5233
      {
 
5234
        break;
 
5235
      }
 
5236
      switch (l1)
 
5237
      {
 
5238
      case 40:                      // '+'
 
5239
        shift(40);                  // '+'
 
5240
        break;
 
5241
      default:
 
5242
        shift(42);                  // '-'
 
5243
      }
 
5244
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5245
      whitespace();
 
5246
      parse_MultiplicativeExpr();
 
5247
    }
 
5248
    eventHandler.endNonterminal("AdditiveExpr", e0);
 
5249
  }
 
5250
 
 
5251
  function try_AdditiveExpr()
 
5252
  {
 
5253
    try_MultiplicativeExpr();
 
5254
    for (;;)
 
5255
    {
 
5256
      if (l1 != 40                  // '+'
 
5257
       && l1 != 42)                 // '-'
 
5258
      {
 
5259
        break;
 
5260
      }
 
5261
      switch (l1)
 
5262
      {
 
5263
      case 40:                      // '+'
 
5264
        shiftT(40);                 // '+'
 
5265
        break;
 
5266
      default:
 
5267
        shiftT(42);                 // '-'
 
5268
      }
 
5269
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5270
      try_MultiplicativeExpr();
 
5271
    }
 
5272
  }
 
5273
 
 
5274
  function parse_MultiplicativeExpr()
 
5275
  {
 
5276
    eventHandler.startNonterminal("MultiplicativeExpr", e0);
 
5277
    parse_UnionExpr();
 
5278
    for (;;)
 
5279
    {
 
5280
      if (l1 != 38                  // '*'
 
5281
       && l1 != 118                 // 'div'
 
5282
       && l1 != 151                 // 'idiv'
 
5283
       && l1 != 180)                // 'mod'
 
5284
      {
 
5285
        break;
 
5286
      }
 
5287
      switch (l1)
 
5288
      {
 
5289
      case 38:                      // '*'
 
5290
        shift(38);                  // '*'
 
5291
        break;
 
5292
      case 118:                     // 'div'
 
5293
        shift(118);                 // 'div'
 
5294
        break;
 
5295
      case 151:                     // 'idiv'
 
5296
        shift(151);                 // 'idiv'
 
5297
        break;
 
5298
      default:
 
5299
        shift(180);                 // 'mod'
 
5300
      }
 
5301
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5302
      whitespace();
 
5303
      parse_UnionExpr();
 
5304
    }
 
5305
    eventHandler.endNonterminal("MultiplicativeExpr", e0);
 
5306
  }
 
5307
 
 
5308
  function try_MultiplicativeExpr()
 
5309
  {
 
5310
    try_UnionExpr();
 
5311
    for (;;)
 
5312
    {
 
5313
      if (l1 != 38                  // '*'
 
5314
       && l1 != 118                 // 'div'
 
5315
       && l1 != 151                 // 'idiv'
 
5316
       && l1 != 180)                // 'mod'
 
5317
      {
 
5318
        break;
 
5319
      }
 
5320
      switch (l1)
 
5321
      {
 
5322
      case 38:                      // '*'
 
5323
        shiftT(38);                 // '*'
 
5324
        break;
 
5325
      case 118:                     // 'div'
 
5326
        shiftT(118);                // 'div'
 
5327
        break;
 
5328
      case 151:                     // 'idiv'
 
5329
        shiftT(151);                // 'idiv'
 
5330
        break;
 
5331
      default:
 
5332
        shiftT(180);                // 'mod'
 
5333
      }
 
5334
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5335
      try_UnionExpr();
 
5336
    }
 
5337
  }
 
5338
 
 
5339
  function parse_UnionExpr()
 
5340
  {
 
5341
    eventHandler.startNonterminal("UnionExpr", e0);
 
5342
    parse_IntersectExceptExpr();
 
5343
    for (;;)
 
5344
    {
 
5345
      if (l1 != 254                 // 'union'
 
5346
       && l1 != 279)                // '|'
 
5347
      {
 
5348
        break;
 
5349
      }
 
5350
      switch (l1)
 
5351
      {
 
5352
      case 254:                     // 'union'
 
5353
        shift(254);                 // 'union'
 
5354
        break;
 
5355
      default:
 
5356
        shift(279);                 // '|'
 
5357
      }
 
5358
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5359
      whitespace();
 
5360
      parse_IntersectExceptExpr();
 
5361
    }
 
5362
    eventHandler.endNonterminal("UnionExpr", e0);
 
5363
  }
 
5364
 
 
5365
  function try_UnionExpr()
 
5366
  {
 
5367
    try_IntersectExceptExpr();
 
5368
    for (;;)
 
5369
    {
 
5370
      if (l1 != 254                 // 'union'
 
5371
       && l1 != 279)                // '|'
 
5372
      {
 
5373
        break;
 
5374
      }
 
5375
      switch (l1)
 
5376
      {
 
5377
      case 254:                     // 'union'
 
5378
        shiftT(254);                // 'union'
 
5379
        break;
 
5380
      default:
 
5381
        shiftT(279);                // '|'
 
5382
      }
 
5383
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5384
      try_IntersectExceptExpr();
 
5385
    }
 
5386
  }
 
5387
 
 
5388
  function parse_IntersectExceptExpr()
 
5389
  {
 
5390
    eventHandler.startNonterminal("IntersectExceptExpr", e0);
 
5391
    parse_InstanceofExpr();
 
5392
    for (;;)
 
5393
    {
 
5394
      lookahead1W(222);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5395
      if (l1 != 131                 // 'except'
 
5396
       && l1 != 162)                // 'intersect'
 
5397
      {
 
5398
        break;
 
5399
      }
 
5400
      switch (l1)
 
5401
      {
 
5402
      case 162:                     // 'intersect'
 
5403
        shift(162);                 // 'intersect'
 
5404
        break;
 
5405
      default:
 
5406
        shift(131);                 // 'except'
 
5407
      }
 
5408
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5409
      whitespace();
 
5410
      parse_InstanceofExpr();
 
5411
    }
 
5412
    eventHandler.endNonterminal("IntersectExceptExpr", e0);
 
5413
  }
 
5414
 
 
5415
  function try_IntersectExceptExpr()
 
5416
  {
 
5417
    try_InstanceofExpr();
 
5418
    for (;;)
 
5419
    {
 
5420
      lookahead1W(222);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5421
      if (l1 != 131                 // 'except'
 
5422
       && l1 != 162)                // 'intersect'
 
5423
      {
 
5424
        break;
 
5425
      }
 
5426
      switch (l1)
 
5427
      {
 
5428
      case 162:                     // 'intersect'
 
5429
        shiftT(162);                // 'intersect'
 
5430
        break;
 
5431
      default:
 
5432
        shiftT(131);                // 'except'
 
5433
      }
 
5434
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5435
      try_InstanceofExpr();
 
5436
    }
 
5437
  }
 
5438
 
 
5439
  function parse_InstanceofExpr()
 
5440
  {
 
5441
    eventHandler.startNonterminal("InstanceofExpr", e0);
 
5442
    parse_TreatExpr();
 
5443
    lookahead1W(223);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5444
    if (l1 == 160)                  // 'instance'
 
5445
    {
 
5446
      shift(160);                   // 'instance'
 
5447
      lookahead1W(64);              // S^WS | '(:' | 'of'
 
5448
      shift(196);                   // 'of'
 
5449
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5450
      whitespace();
 
5451
      parse_SequenceType();
 
5452
    }
 
5453
    eventHandler.endNonterminal("InstanceofExpr", e0);
 
5454
  }
 
5455
 
 
5456
  function try_InstanceofExpr()
 
5457
  {
 
5458
    try_TreatExpr();
 
5459
    lookahead1W(223);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5460
    if (l1 == 160)                  // 'instance'
 
5461
    {
 
5462
      shiftT(160);                  // 'instance'
 
5463
      lookahead1W(64);              // S^WS | '(:' | 'of'
 
5464
      shiftT(196);                  // 'of'
 
5465
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5466
      try_SequenceType();
 
5467
    }
 
5468
  }
 
5469
 
 
5470
  function parse_TreatExpr()
 
5471
  {
 
5472
    eventHandler.startNonterminal("TreatExpr", e0);
 
5473
    parse_CastableExpr();
 
5474
    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5475
    if (l1 == 249)                  // 'treat'
 
5476
    {
 
5477
      shift(249);                   // 'treat'
 
5478
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5479
      shift(79);                    // 'as'
 
5480
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5481
      whitespace();
 
5482
      parse_SequenceType();
 
5483
    }
 
5484
    eventHandler.endNonterminal("TreatExpr", e0);
 
5485
  }
 
5486
 
 
5487
  function try_TreatExpr()
 
5488
  {
 
5489
    try_CastableExpr();
 
5490
    lookahead1W(224);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5491
    if (l1 == 249)                  // 'treat'
 
5492
    {
 
5493
      shiftT(249);                  // 'treat'
 
5494
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5495
      shiftT(79);                   // 'as'
 
5496
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5497
      try_SequenceType();
 
5498
    }
 
5499
  }
 
5500
 
 
5501
  function parse_CastableExpr()
 
5502
  {
 
5503
    eventHandler.startNonterminal("CastableExpr", e0);
 
5504
    parse_CastExpr();
 
5505
    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5506
    if (l1 == 90)                   // 'castable'
 
5507
    {
 
5508
      shift(90);                    // 'castable'
 
5509
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5510
      shift(79);                    // 'as'
 
5511
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5512
      whitespace();
 
5513
      parse_SingleType();
 
5514
    }
 
5515
    eventHandler.endNonterminal("CastableExpr", e0);
 
5516
  }
 
5517
 
 
5518
  function try_CastableExpr()
 
5519
  {
 
5520
    try_CastExpr();
 
5521
    lookahead1W(225);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5522
    if (l1 == 90)                   // 'castable'
 
5523
    {
 
5524
      shiftT(90);                   // 'castable'
 
5525
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5526
      shiftT(79);                   // 'as'
 
5527
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5528
      try_SingleType();
 
5529
    }
 
5530
  }
 
5531
 
 
5532
  function parse_CastExpr()
 
5533
  {
 
5534
    eventHandler.startNonterminal("CastExpr", e0);
 
5535
    parse_UnaryExpr();
 
5536
    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5537
    if (l1 == 89)                   // 'cast'
 
5538
    {
 
5539
      shift(89);                    // 'cast'
 
5540
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5541
      shift(79);                    // 'as'
 
5542
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5543
      whitespace();
 
5544
      parse_SingleType();
 
5545
    }
 
5546
    eventHandler.endNonterminal("CastExpr", e0);
 
5547
  }
 
5548
 
 
5549
  function try_CastExpr()
 
5550
  {
 
5551
    try_UnaryExpr();
 
5552
    lookahead1W(227);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
5553
    if (l1 == 89)                   // 'cast'
 
5554
    {
 
5555
      shiftT(89);                   // 'cast'
 
5556
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
5557
      shiftT(79);                   // 'as'
 
5558
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5559
      try_SingleType();
 
5560
    }
 
5561
  }
 
5562
 
 
5563
  function parse_UnaryExpr()
 
5564
  {
 
5565
    eventHandler.startNonterminal("UnaryExpr", e0);
 
5566
    for (;;)
 
5567
    {
 
5568
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5569
      if (l1 != 40                  // '+'
 
5570
       && l1 != 42)                 // '-'
 
5571
      {
 
5572
        break;
 
5573
      }
 
5574
      switch (l1)
 
5575
      {
 
5576
      case 42:                      // '-'
 
5577
        shift(42);                  // '-'
 
5578
        break;
 
5579
      default:
 
5580
        shift(40);                  // '+'
 
5581
      }
 
5582
    }
 
5583
    whitespace();
 
5584
    parse_ValueExpr();
 
5585
    eventHandler.endNonterminal("UnaryExpr", e0);
 
5586
  }
 
5587
 
 
5588
  function try_UnaryExpr()
 
5589
  {
 
5590
    for (;;)
 
5591
    {
 
5592
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5593
      if (l1 != 40                  // '+'
 
5594
       && l1 != 42)                 // '-'
 
5595
      {
 
5596
        break;
 
5597
      }
 
5598
      switch (l1)
 
5599
      {
 
5600
      case 42:                      // '-'
 
5601
        shiftT(42);                 // '-'
 
5602
        break;
 
5603
      default:
 
5604
        shiftT(40);                 // '+'
 
5605
      }
 
5606
    }
 
5607
    try_ValueExpr();
 
5608
  }
 
5609
 
 
5610
  function parse_ValueExpr()
 
5611
  {
 
5612
    eventHandler.startNonterminal("ValueExpr", e0);
 
5613
    switch (l1)
 
5614
    {
 
5615
    case 260:                       // 'validate'
 
5616
      lookahead2W(246);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
5617
      break;
 
5618
    default:
 
5619
      lk = l1;
 
5620
    }
 
5621
    switch (lk)
 
5622
    {
 
5623
    case 87812:                     // 'validate' 'lax'
 
5624
    case 123140:                    // 'validate' 'strict'
 
5625
    case 129284:                    // 'validate' 'type'
 
5626
    case 141572:                    // 'validate' '{'
 
5627
      parse_ValidateExpr();
 
5628
      break;
 
5629
    case 35:                        // '(#'
 
5630
      parse_ExtensionExpr();
 
5631
      break;
 
5632
    default:
 
5633
      parse_SimpleMapExpr();
 
5634
    }
 
5635
    eventHandler.endNonterminal("ValueExpr", e0);
 
5636
  }
 
5637
 
 
5638
  function try_ValueExpr()
 
5639
  {
 
5640
    switch (l1)
 
5641
    {
 
5642
    case 260:                       // 'validate'
 
5643
      lookahead2W(246);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
5644
      break;
 
5645
    default:
 
5646
      lk = l1;
 
5647
    }
 
5648
    switch (lk)
 
5649
    {
 
5650
    case 87812:                     // 'validate' 'lax'
 
5651
    case 123140:                    // 'validate' 'strict'
 
5652
    case 129284:                    // 'validate' 'type'
 
5653
    case 141572:                    // 'validate' '{'
 
5654
      try_ValidateExpr();
 
5655
      break;
 
5656
    case 35:                        // '(#'
 
5657
      try_ExtensionExpr();
 
5658
      break;
 
5659
    default:
 
5660
      try_SimpleMapExpr();
 
5661
    }
 
5662
  }
 
5663
 
 
5664
  function parse_SimpleMapExpr()
 
5665
  {
 
5666
    eventHandler.startNonterminal("SimpleMapExpr", e0);
 
5667
    parse_PathExpr();
 
5668
    for (;;)
 
5669
    {
 
5670
      if (l1 != 26)                 // '!'
 
5671
      {
 
5672
        break;
 
5673
      }
 
5674
      shift(26);                    // '!'
 
5675
      lookahead1W(264);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5676
      whitespace();
 
5677
      parse_PathExpr();
 
5678
    }
 
5679
    eventHandler.endNonterminal("SimpleMapExpr", e0);
 
5680
  }
 
5681
 
 
5682
  function try_SimpleMapExpr()
 
5683
  {
 
5684
    try_PathExpr();
 
5685
    for (;;)
 
5686
    {
 
5687
      if (l1 != 26)                 // '!'
 
5688
      {
 
5689
        break;
 
5690
      }
 
5691
      shiftT(26);                   // '!'
 
5692
      lookahead1W(264);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5693
      try_PathExpr();
 
5694
    }
 
5695
  }
 
5696
 
 
5697
  function parse_GeneralComp()
 
5698
  {
 
5699
    eventHandler.startNonterminal("GeneralComp", e0);
 
5700
    switch (l1)
 
5701
    {
 
5702
    case 60:                        // '='
 
5703
      shift(60);                    // '='
 
5704
      break;
 
5705
    case 27:                        // '!='
 
5706
      shift(27);                    // '!='
 
5707
      break;
 
5708
    case 54:                        // '<'
 
5709
      shift(54);                    // '<'
 
5710
      break;
 
5711
    case 58:                        // '<='
 
5712
      shift(58);                    // '<='
 
5713
      break;
 
5714
    case 61:                        // '>'
 
5715
      shift(61);                    // '>'
 
5716
      break;
 
5717
    default:
 
5718
      shift(62);                    // '>='
 
5719
    }
 
5720
    eventHandler.endNonterminal("GeneralComp", e0);
 
5721
  }
 
5722
 
 
5723
  function try_GeneralComp()
 
5724
  {
 
5725
    switch (l1)
 
5726
    {
 
5727
    case 60:                        // '='
 
5728
      shiftT(60);                   // '='
 
5729
      break;
 
5730
    case 27:                        // '!='
 
5731
      shiftT(27);                   // '!='
 
5732
      break;
 
5733
    case 54:                        // '<'
 
5734
      shiftT(54);                   // '<'
 
5735
      break;
 
5736
    case 58:                        // '<='
 
5737
      shiftT(58);                   // '<='
 
5738
      break;
 
5739
    case 61:                        // '>'
 
5740
      shiftT(61);                   // '>'
 
5741
      break;
 
5742
    default:
 
5743
      shiftT(62);                   // '>='
 
5744
    }
 
5745
  }
 
5746
 
 
5747
  function parse_ValueComp()
 
5748
  {
 
5749
    eventHandler.startNonterminal("ValueComp", e0);
 
5750
    switch (l1)
 
5751
    {
 
5752
    case 128:                       // 'eq'
 
5753
      shift(128);                   // 'eq'
 
5754
      break;
 
5755
    case 186:                       // 'ne'
 
5756
      shift(186);                   // 'ne'
 
5757
      break;
 
5758
    case 178:                       // 'lt'
 
5759
      shift(178);                   // 'lt'
 
5760
      break;
 
5761
    case 172:                       // 'le'
 
5762
      shift(172);                   // 'le'
 
5763
      break;
 
5764
    case 150:                       // 'gt'
 
5765
      shift(150);                   // 'gt'
 
5766
      break;
 
5767
    default:
 
5768
      shift(146);                   // 'ge'
 
5769
    }
 
5770
    eventHandler.endNonterminal("ValueComp", e0);
 
5771
  }
 
5772
 
 
5773
  function try_ValueComp()
 
5774
  {
 
5775
    switch (l1)
 
5776
    {
 
5777
    case 128:                       // 'eq'
 
5778
      shiftT(128);                  // 'eq'
 
5779
      break;
 
5780
    case 186:                       // 'ne'
 
5781
      shiftT(186);                  // 'ne'
 
5782
      break;
 
5783
    case 178:                       // 'lt'
 
5784
      shiftT(178);                  // 'lt'
 
5785
      break;
 
5786
    case 172:                       // 'le'
 
5787
      shiftT(172);                  // 'le'
 
5788
      break;
 
5789
    case 150:                       // 'gt'
 
5790
      shiftT(150);                  // 'gt'
 
5791
      break;
 
5792
    default:
 
5793
      shiftT(146);                  // 'ge'
 
5794
    }
 
5795
  }
 
5796
 
 
5797
  function parse_NodeComp()
 
5798
  {
 
5799
    eventHandler.startNonterminal("NodeComp", e0);
 
5800
    switch (l1)
 
5801
    {
 
5802
    case 164:                       // 'is'
 
5803
      shift(164);                   // 'is'
 
5804
      break;
 
5805
    case 57:                        // '<<'
 
5806
      shift(57);                    // '<<'
 
5807
      break;
 
5808
    default:
 
5809
      shift(63);                    // '>>'
 
5810
    }
 
5811
    eventHandler.endNonterminal("NodeComp", e0);
 
5812
  }
 
5813
 
 
5814
  function try_NodeComp()
 
5815
  {
 
5816
    switch (l1)
 
5817
    {
 
5818
    case 164:                       // 'is'
 
5819
      shiftT(164);                  // 'is'
 
5820
      break;
 
5821
    case 57:                        // '<<'
 
5822
      shiftT(57);                   // '<<'
 
5823
      break;
 
5824
    default:
 
5825
      shiftT(63);                   // '>>'
 
5826
    }
 
5827
  }
 
5828
 
 
5829
  function parse_ValidateExpr()
 
5830
  {
 
5831
    eventHandler.startNonterminal("ValidateExpr", e0);
 
5832
    shift(260);                     // 'validate'
 
5833
    lookahead1W(160);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'
 
5834
    if (l1 != 276)                  // '{'
 
5835
    {
 
5836
      switch (l1)
 
5837
      {
 
5838
      case 252:                     // 'type'
 
5839
        shift(252);                 // 'type'
 
5840
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5841
        whitespace();
 
5842
        parse_TypeName();
 
5843
        break;
 
5844
      default:
 
5845
        whitespace();
 
5846
        parse_ValidationMode();
 
5847
      }
 
5848
    }
 
5849
    lookahead1W(87);                // S^WS | '(:' | '{'
 
5850
    shift(276);                     // '{'
 
5851
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5852
    whitespace();
 
5853
    parse_Expr();
 
5854
    shift(282);                     // '}'
 
5855
    eventHandler.endNonterminal("ValidateExpr", e0);
 
5856
  }
 
5857
 
 
5858
  function try_ValidateExpr()
 
5859
  {
 
5860
    shiftT(260);                    // 'validate'
 
5861
    lookahead1W(160);               // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'
 
5862
    if (l1 != 276)                  // '{'
 
5863
    {
 
5864
      switch (l1)
 
5865
      {
 
5866
      case 252:                     // 'type'
 
5867
        shiftT(252);                // 'type'
 
5868
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
5869
        try_TypeName();
 
5870
        break;
 
5871
      default:
 
5872
        try_ValidationMode();
 
5873
      }
 
5874
    }
 
5875
    lookahead1W(87);                // S^WS | '(:' | '{'
 
5876
    shiftT(276);                    // '{'
 
5877
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5878
    try_Expr();
 
5879
    shiftT(282);                    // '}'
 
5880
  }
 
5881
 
 
5882
  function parse_ValidationMode()
 
5883
  {
 
5884
    eventHandler.startNonterminal("ValidationMode", e0);
 
5885
    switch (l1)
 
5886
    {
 
5887
    case 171:                       // 'lax'
 
5888
      shift(171);                   // 'lax'
 
5889
      break;
 
5890
    default:
 
5891
      shift(240);                   // 'strict'
 
5892
    }
 
5893
    eventHandler.endNonterminal("ValidationMode", e0);
 
5894
  }
 
5895
 
 
5896
  function try_ValidationMode()
 
5897
  {
 
5898
    switch (l1)
 
5899
    {
 
5900
    case 171:                       // 'lax'
 
5901
      shiftT(171);                  // 'lax'
 
5902
      break;
 
5903
    default:
 
5904
      shiftT(240);                  // 'strict'
 
5905
    }
 
5906
  }
 
5907
 
 
5908
  function parse_ExtensionExpr()
 
5909
  {
 
5910
    eventHandler.startNonterminal("ExtensionExpr", e0);
 
5911
    for (;;)
 
5912
    {
 
5913
      whitespace();
 
5914
      parse_Pragma();
 
5915
      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'
 
5916
      if (l1 != 35)                 // '(#'
 
5917
      {
 
5918
        break;
 
5919
      }
 
5920
    }
 
5921
    shift(276);                     // '{'
 
5922
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5923
    if (l1 != 282)                  // '}'
 
5924
    {
 
5925
      whitespace();
 
5926
      parse_Expr();
 
5927
    }
 
5928
    shift(282);                     // '}'
 
5929
    eventHandler.endNonterminal("ExtensionExpr", e0);
 
5930
  }
 
5931
 
 
5932
  function try_ExtensionExpr()
 
5933
  {
 
5934
    for (;;)
 
5935
    {
 
5936
      try_Pragma();
 
5937
      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'
 
5938
      if (l1 != 35)                 // '(#'
 
5939
      {
 
5940
        break;
 
5941
      }
 
5942
    }
 
5943
    shiftT(276);                    // '{'
 
5944
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
5945
    if (l1 != 282)                  // '}'
 
5946
    {
 
5947
      try_Expr();
 
5948
    }
 
5949
    shiftT(282);                    // '}'
 
5950
  }
 
5951
 
 
5952
  function parse_Pragma()
 
5953
  {
 
5954
    eventHandler.startNonterminal("Pragma", e0);
 
5955
    shift(35);                      // '(#'
 
5956
    lookahead1(250);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 
5957
    if (l1 == 21)                   // S
 
5958
    {
 
5959
      shift(21);                    // S
 
5960
    }
 
5961
    parse_EQName();
 
5962
    lookahead1(10);                 // S | '#)'
 
5963
    if (l1 == 21)                   // S
 
5964
    {
 
5965
      shift(21);                    // S
 
5966
      lookahead1(0);                // PragmaContents
 
5967
      shift(1);                     // PragmaContents
 
5968
    }
 
5969
    lookahead1(5);                  // '#)'
 
5970
    shift(30);                      // '#)'
 
5971
    eventHandler.endNonterminal("Pragma", e0);
 
5972
  }
 
5973
 
 
5974
  function try_Pragma()
 
5975
  {
 
5976
    shiftT(35);                     // '(#'
 
5977
    lookahead1(250);                // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 
5978
    if (l1 == 21)                   // S
 
5979
    {
 
5980
      shiftT(21);                   // S
 
5981
    }
 
5982
    try_EQName();
 
5983
    lookahead1(10);                 // S | '#)'
 
5984
    if (l1 == 21)                   // S
 
5985
    {
 
5986
      shiftT(21);                   // S
 
5987
      lookahead1(0);                // PragmaContents
 
5988
      shiftT(1);                    // PragmaContents
 
5989
    }
 
5990
    lookahead1(5);                  // '#)'
 
5991
    shiftT(30);                     // '#)'
 
5992
  }
 
5993
 
 
5994
  function parse_PathExpr()
 
5995
  {
 
5996
    eventHandler.startNonterminal("PathExpr", e0);
 
5997
    switch (l1)
 
5998
    {
 
5999
    case 46:                        // '/'
 
6000
      shift(46);                    // '/'
 
6001
      lookahead1W(283);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6002
      switch (l1)
 
6003
      {
 
6004
      case 25:                      // EOF
 
6005
      case 26:                      // '!'
 
6006
      case 27:                      // '!='
 
6007
      case 37:                      // ')'
 
6008
      case 38:                      // '*'
 
6009
      case 40:                      // '+'
 
6010
      case 41:                      // ','
 
6011
      case 42:                      // '-'
 
6012
      case 49:                      // ':'
 
6013
      case 53:                      // ';'
 
6014
      case 57:                      // '<<'
 
6015
      case 58:                      // '<='
 
6016
      case 60:                      // '='
 
6017
      case 61:                      // '>'
 
6018
      case 62:                      // '>='
 
6019
      case 63:                      // '>>'
 
6020
      case 69:                      // ']'
 
6021
      case 87:                      // 'by'
 
6022
      case 99:                      // 'contains'
 
6023
      case 205:                     // 'paragraphs'
 
6024
      case 232:                     // 'sentences'
 
6025
      case 247:                     // 'times'
 
6026
      case 273:                     // 'words'
 
6027
      case 279:                     // '|'
 
6028
      case 280:                     // '||'
 
6029
      case 281:                     // '|}'
 
6030
      case 282:                     // '}'
 
6031
        break;
 
6032
      default:
 
6033
        whitespace();
 
6034
        parse_RelativePathExpr();
 
6035
      }
 
6036
      break;
 
6037
    case 47:                        // '//'
 
6038
      shift(47);                    // '//'
 
6039
      lookahead1W(263);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6040
      whitespace();
 
6041
      parse_RelativePathExpr();
 
6042
      break;
 
6043
    default:
 
6044
      parse_RelativePathExpr();
 
6045
    }
 
6046
    eventHandler.endNonterminal("PathExpr", e0);
 
6047
  }
 
6048
 
 
6049
  function try_PathExpr()
 
6050
  {
 
6051
    switch (l1)
 
6052
    {
 
6053
    case 46:                        // '/'
 
6054
      shiftT(46);                   // '/'
 
6055
      lookahead1W(283);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6056
      switch (l1)
 
6057
      {
 
6058
      case 25:                      // EOF
 
6059
      case 26:                      // '!'
 
6060
      case 27:                      // '!='
 
6061
      case 37:                      // ')'
 
6062
      case 38:                      // '*'
 
6063
      case 40:                      // '+'
 
6064
      case 41:                      // ','
 
6065
      case 42:                      // '-'
 
6066
      case 49:                      // ':'
 
6067
      case 53:                      // ';'
 
6068
      case 57:                      // '<<'
 
6069
      case 58:                      // '<='
 
6070
      case 60:                      // '='
 
6071
      case 61:                      // '>'
 
6072
      case 62:                      // '>='
 
6073
      case 63:                      // '>>'
 
6074
      case 69:                      // ']'
 
6075
      case 87:                      // 'by'
 
6076
      case 99:                      // 'contains'
 
6077
      case 205:                     // 'paragraphs'
 
6078
      case 232:                     // 'sentences'
 
6079
      case 247:                     // 'times'
 
6080
      case 273:                     // 'words'
 
6081
      case 279:                     // '|'
 
6082
      case 280:                     // '||'
 
6083
      case 281:                     // '|}'
 
6084
      case 282:                     // '}'
 
6085
        break;
 
6086
      default:
 
6087
        try_RelativePathExpr();
 
6088
      }
 
6089
      break;
 
6090
    case 47:                        // '//'
 
6091
      shiftT(47);                   // '//'
 
6092
      lookahead1W(263);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6093
      try_RelativePathExpr();
 
6094
      break;
 
6095
    default:
 
6096
      try_RelativePathExpr();
 
6097
    }
 
6098
  }
 
6099
 
 
6100
  function parse_RelativePathExpr()
 
6101
  {
 
6102
    eventHandler.startNonterminal("RelativePathExpr", e0);
 
6103
    parse_StepExpr();
 
6104
    for (;;)
 
6105
    {
 
6106
      switch (l1)
 
6107
      {
 
6108
      case 26:                      // '!'
 
6109
        lookahead2W(264);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6110
        break;
 
6111
      default:
 
6112
        lk = l1;
 
6113
      }
 
6114
      if (lk != 25                  // EOF
 
6115
       && lk != 27                  // '!='
 
6116
       && lk != 37                  // ')'
 
6117
       && lk != 38                  // '*'
 
6118
       && lk != 40                  // '+'
 
6119
       && lk != 41                  // ','
 
6120
       && lk != 42                  // '-'
 
6121
       && lk != 46                  // '/'
 
6122
       && lk != 47                  // '//'
 
6123
       && lk != 49                  // ':'
 
6124
       && lk != 53                  // ';'
 
6125
       && lk != 54                  // '<'
 
6126
       && lk != 57                  // '<<'
 
6127
       && lk != 58                  // '<='
 
6128
       && lk != 60                  // '='
 
6129
       && lk != 61                  // '>'
 
6130
       && lk != 62                  // '>='
 
6131
       && lk != 63                  // '>>'
 
6132
       && lk != 69                  // ']'
 
6133
       && lk != 70                  // 'after'
 
6134
       && lk != 75                  // 'and'
 
6135
       && lk != 79                  // 'as'
 
6136
       && lk != 80                  // 'ascending'
 
6137
       && lk != 81                  // 'at'
 
6138
       && lk != 84                  // 'before'
 
6139
       && lk != 87                  // 'by'
 
6140
       && lk != 88                  // 'case'
 
6141
       && lk != 89                  // 'cast'
 
6142
       && lk != 90                  // 'castable'
 
6143
       && lk != 94                  // 'collation'
 
6144
       && lk != 99                  // 'contains'
 
6145
       && lk != 105                 // 'count'
 
6146
       && lk != 109                 // 'default'
 
6147
       && lk != 113                 // 'descending'
 
6148
       && lk != 118                 // 'div'
 
6149
       && lk != 122                 // 'else'
 
6150
       && lk != 123                 // 'empty'
 
6151
       && lk != 126                 // 'end'
 
6152
       && lk != 128                 // 'eq'
 
6153
       && lk != 131                 // 'except'
 
6154
       && lk != 137                 // 'for'
 
6155
       && lk != 146                 // 'ge'
 
6156
       && lk != 148                 // 'group'
 
6157
       && lk != 150                 // 'gt'
 
6158
       && lk != 151                 // 'idiv'
 
6159
       && lk != 160                 // 'instance'
 
6160
       && lk != 162                 // 'intersect'
 
6161
       && lk != 163                 // 'into'
 
6162
       && lk != 164                 // 'is'
 
6163
       && lk != 172                 // 'le'
 
6164
       && lk != 174                 // 'let'
 
6165
       && lk != 178                 // 'lt'
 
6166
       && lk != 180                 // 'mod'
 
6167
       && lk != 181                 // 'modify'
 
6168
       && lk != 186                 // 'ne'
 
6169
       && lk != 198                 // 'only'
 
6170
       && lk != 200                 // 'or'
 
6171
       && lk != 201                 // 'order'
 
6172
       && lk != 205                 // 'paragraphs'
 
6173
       && lk != 220                 // 'return'
 
6174
       && lk != 224                 // 'satisfies'
 
6175
       && lk != 232                 // 'sentences'
 
6176
       && lk != 236                 // 'stable'
 
6177
       && lk != 237                 // 'start'
 
6178
       && lk != 247                 // 'times'
 
6179
       && lk != 248                 // 'to'
 
6180
       && lk != 249                 // 'treat'
 
6181
       && lk != 254                 // 'union'
 
6182
       && lk != 266                 // 'where'
 
6183
       && lk != 270                 // 'with'
 
6184
       && lk != 273                 // 'words'
 
6185
       && lk != 279                 // '|'
 
6186
       && lk != 280                 // '||'
 
6187
       && lk != 281                 // '|}'
 
6188
       && lk != 282                 // '}'
 
6189
       && lk != 23578               // '!' '/'
 
6190
       && lk != 24090)              // '!' '//'
 
6191
      {
 
6192
        lk = memoized(2, e0);
 
6193
        if (lk == 0)
 
6194
        {
 
6195
          var b0A = b0; var e0A = e0; var l1A = l1;
 
6196
          var b1A = b1; var e1A = e1; var l2A = l2;
 
6197
          var b2A = b2; var e2A = e2;
 
6198
          try
 
6199
          {
 
6200
            switch (l1)
 
6201
            {
 
6202
            case 46:                // '/'
 
6203
              shiftT(46);           // '/'
 
6204
              break;
 
6205
            case 47:                // '//'
 
6206
              shiftT(47);           // '//'
 
6207
              break;
 
6208
            default:
 
6209
              shiftT(26);           // '!'
 
6210
            }
 
6211
            lookahead1W(263);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6212
            try_StepExpr();
 
6213
            lk = -1;
 
6214
          }
 
6215
          catch (p1A)
 
6216
          {
 
6217
            lk = -2;
 
6218
          }
 
6219
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
6220
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
6221
          b2 = b2A; e2 = e2A; end = e2A; }}
 
6222
          memoize(2, e0, lk);
 
6223
        }
 
6224
      }
 
6225
      if (lk != -1
 
6226
       && lk != 46                  // '/'
 
6227
       && lk != 47)                 // '//'
 
6228
      {
 
6229
        break;
 
6230
      }
 
6231
      switch (l1)
 
6232
      {
 
6233
      case 46:                      // '/'
 
6234
        shift(46);                  // '/'
 
6235
        break;
 
6236
      case 47:                      // '//'
 
6237
        shift(47);                  // '//'
 
6238
        break;
 
6239
      default:
 
6240
        shift(26);                  // '!'
 
6241
      }
 
6242
      lookahead1W(263);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6243
      whitespace();
 
6244
      parse_StepExpr();
 
6245
    }
 
6246
    eventHandler.endNonterminal("RelativePathExpr", e0);
 
6247
  }
 
6248
 
 
6249
  function try_RelativePathExpr()
 
6250
  {
 
6251
    try_StepExpr();
 
6252
    for (;;)
 
6253
    {
 
6254
      switch (l1)
 
6255
      {
 
6256
      case 26:                      // '!'
 
6257
        lookahead2W(264);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6258
        break;
 
6259
      default:
 
6260
        lk = l1;
 
6261
      }
 
6262
      if (lk != 25                  // EOF
 
6263
       && lk != 27                  // '!='
 
6264
       && lk != 37                  // ')'
 
6265
       && lk != 38                  // '*'
 
6266
       && lk != 40                  // '+'
 
6267
       && lk != 41                  // ','
 
6268
       && lk != 42                  // '-'
 
6269
       && lk != 46                  // '/'
 
6270
       && lk != 47                  // '//'
 
6271
       && lk != 49                  // ':'
 
6272
       && lk != 53                  // ';'
 
6273
       && lk != 54                  // '<'
 
6274
       && lk != 57                  // '<<'
 
6275
       && lk != 58                  // '<='
 
6276
       && lk != 60                  // '='
 
6277
       && lk != 61                  // '>'
 
6278
       && lk != 62                  // '>='
 
6279
       && lk != 63                  // '>>'
 
6280
       && lk != 69                  // ']'
 
6281
       && lk != 70                  // 'after'
 
6282
       && lk != 75                  // 'and'
 
6283
       && lk != 79                  // 'as'
 
6284
       && lk != 80                  // 'ascending'
 
6285
       && lk != 81                  // 'at'
 
6286
       && lk != 84                  // 'before'
 
6287
       && lk != 87                  // 'by'
 
6288
       && lk != 88                  // 'case'
 
6289
       && lk != 89                  // 'cast'
 
6290
       && lk != 90                  // 'castable'
 
6291
       && lk != 94                  // 'collation'
 
6292
       && lk != 99                  // 'contains'
 
6293
       && lk != 105                 // 'count'
 
6294
       && lk != 109                 // 'default'
 
6295
       && lk != 113                 // 'descending'
 
6296
       && lk != 118                 // 'div'
 
6297
       && lk != 122                 // 'else'
 
6298
       && lk != 123                 // 'empty'
 
6299
       && lk != 126                 // 'end'
 
6300
       && lk != 128                 // 'eq'
 
6301
       && lk != 131                 // 'except'
 
6302
       && lk != 137                 // 'for'
 
6303
       && lk != 146                 // 'ge'
 
6304
       && lk != 148                 // 'group'
 
6305
       && lk != 150                 // 'gt'
 
6306
       && lk != 151                 // 'idiv'
 
6307
       && lk != 160                 // 'instance'
 
6308
       && lk != 162                 // 'intersect'
 
6309
       && lk != 163                 // 'into'
 
6310
       && lk != 164                 // 'is'
 
6311
       && lk != 172                 // 'le'
 
6312
       && lk != 174                 // 'let'
 
6313
       && lk != 178                 // 'lt'
 
6314
       && lk != 180                 // 'mod'
 
6315
       && lk != 181                 // 'modify'
 
6316
       && lk != 186                 // 'ne'
 
6317
       && lk != 198                 // 'only'
 
6318
       && lk != 200                 // 'or'
 
6319
       && lk != 201                 // 'order'
 
6320
       && lk != 205                 // 'paragraphs'
 
6321
       && lk != 220                 // 'return'
 
6322
       && lk != 224                 // 'satisfies'
 
6323
       && lk != 232                 // 'sentences'
 
6324
       && lk != 236                 // 'stable'
 
6325
       && lk != 237                 // 'start'
 
6326
       && lk != 247                 // 'times'
 
6327
       && lk != 248                 // 'to'
 
6328
       && lk != 249                 // 'treat'
 
6329
       && lk != 254                 // 'union'
 
6330
       && lk != 266                 // 'where'
 
6331
       && lk != 270                 // 'with'
 
6332
       && lk != 273                 // 'words'
 
6333
       && lk != 279                 // '|'
 
6334
       && lk != 280                 // '||'
 
6335
       && lk != 281                 // '|}'
 
6336
       && lk != 282                 // '}'
 
6337
       && lk != 23578               // '!' '/'
 
6338
       && lk != 24090)              // '!' '//'
 
6339
      {
 
6340
        lk = memoized(2, e0);
 
6341
        if (lk == 0)
 
6342
        {
 
6343
          var b0A = b0; var e0A = e0; var l1A = l1;
 
6344
          var b1A = b1; var e1A = e1; var l2A = l2;
 
6345
          var b2A = b2; var e2A = e2;
 
6346
          try
 
6347
          {
 
6348
            switch (l1)
 
6349
            {
 
6350
            case 46:                // '/'
 
6351
              shiftT(46);           // '/'
 
6352
              break;
 
6353
            case 47:                // '//'
 
6354
              shiftT(47);           // '//'
 
6355
              break;
 
6356
            default:
 
6357
              shiftT(26);           // '!'
 
6358
            }
 
6359
            lookahead1W(263);       // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6360
            try_StepExpr();
 
6361
            memoize(2, e0A, -1);
 
6362
            continue;
 
6363
          }
 
6364
          catch (p1A)
 
6365
          {
 
6366
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
6367
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
6368
            b2 = b2A; e2 = e2A; end = e2A; }}
 
6369
            memoize(2, e0A, -2);
 
6370
            break;
 
6371
          }
 
6372
        }
 
6373
      }
 
6374
      if (lk != -1
 
6375
       && lk != 46                  // '/'
 
6376
       && lk != 47)                 // '//'
 
6377
      {
 
6378
        break;
 
6379
      }
 
6380
      switch (l1)
 
6381
      {
 
6382
      case 46:                      // '/'
 
6383
        shiftT(46);                 // '/'
 
6384
        break;
 
6385
      case 47:                      // '//'
 
6386
        shiftT(47);                 // '//'
 
6387
        break;
 
6388
      default:
 
6389
        shiftT(26);                 // '!'
 
6390
      }
 
6391
      lookahead1W(263);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
6392
      try_StepExpr();
 
6393
    }
 
6394
  }
 
6395
 
 
6396
  function parse_StepExpr()
 
6397
  {
 
6398
    eventHandler.startNonterminal("StepExpr", e0);
 
6399
    switch (l1)
 
6400
    {
 
6401
    case 82:                        // 'attribute'
 
6402
      lookahead2W(282);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
6403
      break;
 
6404
    case 121:                       // 'element'
 
6405
      lookahead2W(280);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
6406
      break;
 
6407
    case 184:                       // 'namespace'
 
6408
    case 216:                       // 'processing-instruction'
 
6409
      lookahead2W(279);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
6410
      break;
 
6411
    case 96:                        // 'comment'
 
6412
    case 119:                       // 'document'
 
6413
    case 202:                       // 'ordered'
 
6414
    case 244:                       // 'text'
 
6415
    case 256:                       // 'unordered'
 
6416
      lookahead2W(245);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
6417
      break;
 
6418
    case 124:                       // 'empty-sequence'
 
6419
    case 152:                       // 'if'
 
6420
    case 165:                       // 'item'
 
6421
    case 243:                       // 'switch'
 
6422
    case 253:                       // 'typeswitch'
 
6423
      lookahead2W(238);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
6424
      break;
 
6425
    case 73:                        // 'ancestor'
 
6426
    case 74:                        // 'ancestor-or-self'
 
6427
    case 93:                        // 'child'
 
6428
    case 111:                       // 'descendant'
 
6429
    case 112:                       // 'descendant-or-self'
 
6430
    case 135:                       // 'following'
 
6431
    case 136:                       // 'following-sibling'
 
6432
    case 206:                       // 'parent'
 
6433
    case 212:                       // 'preceding'
 
6434
    case 213:                       // 'preceding-sibling'
 
6435
    case 229:                       // 'self'
 
6436
      lookahead2W(244);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
6437
      break;
 
6438
    case 6:                         // EQName^Token
 
6439
    case 70:                        // 'after'
 
6440
    case 72:                        // 'allowing'
 
6441
    case 75:                        // 'and'
 
6442
    case 78:                        // 'array'
 
6443
    case 79:                        // 'as'
 
6444
    case 80:                        // 'ascending'
 
6445
    case 81:                        // 'at'
 
6446
    case 83:                        // 'base-uri'
 
6447
    case 84:                        // 'before'
 
6448
    case 85:                        // 'boundary-space'
 
6449
    case 86:                        // 'break'
 
6450
    case 88:                        // 'case'
 
6451
    case 89:                        // 'cast'
 
6452
    case 90:                        // 'castable'
 
6453
    case 91:                        // 'catch'
 
6454
    case 94:                        // 'collation'
 
6455
    case 97:                        // 'constraint'
 
6456
    case 98:                        // 'construction'
 
6457
    case 101:                       // 'context'
 
6458
    case 102:                       // 'continue'
 
6459
    case 103:                       // 'copy'
 
6460
    case 104:                       // 'copy-namespaces'
 
6461
    case 105:                       // 'count'
 
6462
    case 106:                       // 'decimal-format'
 
6463
    case 108:                       // 'declare'
 
6464
    case 109:                       // 'default'
 
6465
    case 110:                       // 'delete'
 
6466
    case 113:                       // 'descending'
 
6467
    case 118:                       // 'div'
 
6468
    case 120:                       // 'document-node'
 
6469
    case 122:                       // 'else'
 
6470
    case 123:                       // 'empty'
 
6471
    case 125:                       // 'encoding'
 
6472
    case 126:                       // 'end'
 
6473
    case 128:                       // 'eq'
 
6474
    case 129:                       // 'every'
 
6475
    case 131:                       // 'except'
 
6476
    case 132:                       // 'exit'
 
6477
    case 133:                       // 'external'
 
6478
    case 134:                       // 'first'
 
6479
    case 137:                       // 'for'
 
6480
    case 141:                       // 'ft-option'
 
6481
    case 145:                       // 'function'
 
6482
    case 146:                       // 'ge'
 
6483
    case 148:                       // 'group'
 
6484
    case 150:                       // 'gt'
 
6485
    case 151:                       // 'idiv'
 
6486
    case 153:                       // 'import'
 
6487
    case 154:                       // 'in'
 
6488
    case 155:                       // 'index'
 
6489
    case 159:                       // 'insert'
 
6490
    case 160:                       // 'instance'
 
6491
    case 161:                       // 'integrity'
 
6492
    case 162:                       // 'intersect'
 
6493
    case 163:                       // 'into'
 
6494
    case 164:                       // 'is'
 
6495
    case 167:                       // 'json-item'
 
6496
    case 170:                       // 'last'
 
6497
    case 171:                       // 'lax'
 
6498
    case 172:                       // 'le'
 
6499
    case 174:                       // 'let'
 
6500
    case 176:                       // 'loop'
 
6501
    case 178:                       // 'lt'
 
6502
    case 180:                       // 'mod'
 
6503
    case 181:                       // 'modify'
 
6504
    case 182:                       // 'module'
 
6505
    case 185:                       // 'namespace-node'
 
6506
    case 186:                       // 'ne'
 
6507
    case 191:                       // 'node'
 
6508
    case 192:                       // 'nodes'
 
6509
    case 194:                       // 'object'
 
6510
    case 198:                       // 'only'
 
6511
    case 199:                       // 'option'
 
6512
    case 200:                       // 'or'
 
6513
    case 201:                       // 'order'
 
6514
    case 203:                       // 'ordering'
 
6515
    case 218:                       // 'rename'
 
6516
    case 219:                       // 'replace'
 
6517
    case 220:                       // 'return'
 
6518
    case 221:                       // 'returning'
 
6519
    case 222:                       // 'revalidation'
 
6520
    case 224:                       // 'satisfies'
 
6521
    case 225:                       // 'schema'
 
6522
    case 226:                       // 'schema-attribute'
 
6523
    case 227:                       // 'schema-element'
 
6524
    case 228:                       // 'score'
 
6525
    case 234:                       // 'sliding'
 
6526
    case 235:                       // 'some'
 
6527
    case 236:                       // 'stable'
 
6528
    case 237:                       // 'start'
 
6529
    case 240:                       // 'strict'
 
6530
    case 248:                       // 'to'
 
6531
    case 249:                       // 'treat'
 
6532
    case 250:                       // 'try'
 
6533
    case 251:                       // 'tumbling'
 
6534
    case 252:                       // 'type'
 
6535
    case 254:                       // 'union'
 
6536
    case 257:                       // 'updating'
 
6537
    case 260:                       // 'validate'
 
6538
    case 261:                       // 'value'
 
6539
    case 262:                       // 'variable'
 
6540
    case 263:                       // 'version'
 
6541
    case 266:                       // 'where'
 
6542
    case 267:                       // 'while'
 
6543
    case 270:                       // 'with'
 
6544
    case 274:                       // 'xquery'
 
6545
      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
6546
      break;
 
6547
    default:
 
6548
      lk = l1;
 
6549
    }
 
6550
    if (lk == 17486                 // 'array' '('
 
6551
     || lk == 17575                 // 'json-item' '('
 
6552
     || lk == 17602                 // 'object' '('
 
6553
     || lk == 35922                 // 'attribute' 'after'
 
6554
     || lk == 35961                 // 'element' 'after'
 
6555
     || lk == 36024                 // 'namespace' 'after'
 
6556
     || lk == 36056                 // 'processing-instruction' 'after'
 
6557
     || lk == 38482                 // 'attribute' 'and'
 
6558
     || lk == 38521                 // 'element' 'and'
 
6559
     || lk == 38584                 // 'namespace' 'and'
 
6560
     || lk == 38616                 // 'processing-instruction' 'and'
 
6561
     || lk == 40530                 // 'attribute' 'as'
 
6562
     || lk == 40569                 // 'element' 'as'
 
6563
     || lk == 40632                 // 'namespace' 'as'
 
6564
     || lk == 40664                 // 'processing-instruction' 'as'
 
6565
     || lk == 41042                 // 'attribute' 'ascending'
 
6566
     || lk == 41081                 // 'element' 'ascending'
 
6567
     || lk == 41144                 // 'namespace' 'ascending'
 
6568
     || lk == 41176                 // 'processing-instruction' 'ascending'
 
6569
     || lk == 41554                 // 'attribute' 'at'
 
6570
     || lk == 41593                 // 'element' 'at'
 
6571
     || lk == 41656                 // 'namespace' 'at'
 
6572
     || lk == 41688                 // 'processing-instruction' 'at'
 
6573
     || lk == 43090                 // 'attribute' 'before'
 
6574
     || lk == 43129                 // 'element' 'before'
 
6575
     || lk == 43192                 // 'namespace' 'before'
 
6576
     || lk == 43224                 // 'processing-instruction' 'before'
 
6577
     || lk == 45138                 // 'attribute' 'case'
 
6578
     || lk == 45177                 // 'element' 'case'
 
6579
     || lk == 45240                 // 'namespace' 'case'
 
6580
     || lk == 45272                 // 'processing-instruction' 'case'
 
6581
     || lk == 45650                 // 'attribute' 'cast'
 
6582
     || lk == 45689                 // 'element' 'cast'
 
6583
     || lk == 45752                 // 'namespace' 'cast'
 
6584
     || lk == 45784                 // 'processing-instruction' 'cast'
 
6585
     || lk == 46162                 // 'attribute' 'castable'
 
6586
     || lk == 46201                 // 'element' 'castable'
 
6587
     || lk == 46264                 // 'namespace' 'castable'
 
6588
     || lk == 46296                 // 'processing-instruction' 'castable'
 
6589
     || lk == 48210                 // 'attribute' 'collation'
 
6590
     || lk == 48249                 // 'element' 'collation'
 
6591
     || lk == 48312                 // 'namespace' 'collation'
 
6592
     || lk == 48344                 // 'processing-instruction' 'collation'
 
6593
     || lk == 53842                 // 'attribute' 'count'
 
6594
     || lk == 53881                 // 'element' 'count'
 
6595
     || lk == 53944                 // 'namespace' 'count'
 
6596
     || lk == 53976                 // 'processing-instruction' 'count'
 
6597
     || lk == 55890                 // 'attribute' 'default'
 
6598
     || lk == 55929                 // 'element' 'default'
 
6599
     || lk == 55992                 // 'namespace' 'default'
 
6600
     || lk == 56024                 // 'processing-instruction' 'default'
 
6601
     || lk == 57938                 // 'attribute' 'descending'
 
6602
     || lk == 57977                 // 'element' 'descending'
 
6603
     || lk == 58040                 // 'namespace' 'descending'
 
6604
     || lk == 58072                 // 'processing-instruction' 'descending'
 
6605
     || lk == 60498                 // 'attribute' 'div'
 
6606
     || lk == 60537                 // 'element' 'div'
 
6607
     || lk == 60600                 // 'namespace' 'div'
 
6608
     || lk == 60632                 // 'processing-instruction' 'div'
 
6609
     || lk == 62546                 // 'attribute' 'else'
 
6610
     || lk == 62585                 // 'element' 'else'
 
6611
     || lk == 62648                 // 'namespace' 'else'
 
6612
     || lk == 62680                 // 'processing-instruction' 'else'
 
6613
     || lk == 63058                 // 'attribute' 'empty'
 
6614
     || lk == 63097                 // 'element' 'empty'
 
6615
     || lk == 63160                 // 'namespace' 'empty'
 
6616
     || lk == 63192                 // 'processing-instruction' 'empty'
 
6617
     || lk == 64594                 // 'attribute' 'end'
 
6618
     || lk == 64633                 // 'element' 'end'
 
6619
     || lk == 64696                 // 'namespace' 'end'
 
6620
     || lk == 64728                 // 'processing-instruction' 'end'
 
6621
     || lk == 65618                 // 'attribute' 'eq'
 
6622
     || lk == 65657                 // 'element' 'eq'
 
6623
     || lk == 65720                 // 'namespace' 'eq'
 
6624
     || lk == 65752                 // 'processing-instruction' 'eq'
 
6625
     || lk == 67154                 // 'attribute' 'except'
 
6626
     || lk == 67193                 // 'element' 'except'
 
6627
     || lk == 67256                 // 'namespace' 'except'
 
6628
     || lk == 67288                 // 'processing-instruction' 'except'
 
6629
     || lk == 70226                 // 'attribute' 'for'
 
6630
     || lk == 70265                 // 'element' 'for'
 
6631
     || lk == 70328                 // 'namespace' 'for'
 
6632
     || lk == 70360                 // 'processing-instruction' 'for'
 
6633
     || lk == 74834                 // 'attribute' 'ge'
 
6634
     || lk == 74873                 // 'element' 'ge'
 
6635
     || lk == 74936                 // 'namespace' 'ge'
 
6636
     || lk == 74968                 // 'processing-instruction' 'ge'
 
6637
     || lk == 75858                 // 'attribute' 'group'
 
6638
     || lk == 75897                 // 'element' 'group'
 
6639
     || lk == 75960                 // 'namespace' 'group'
 
6640
     || lk == 75992                 // 'processing-instruction' 'group'
 
6641
     || lk == 76882                 // 'attribute' 'gt'
 
6642
     || lk == 76921                 // 'element' 'gt'
 
6643
     || lk == 76984                 // 'namespace' 'gt'
 
6644
     || lk == 77016                 // 'processing-instruction' 'gt'
 
6645
     || lk == 77394                 // 'attribute' 'idiv'
 
6646
     || lk == 77433                 // 'element' 'idiv'
 
6647
     || lk == 77496                 // 'namespace' 'idiv'
 
6648
     || lk == 77528                 // 'processing-instruction' 'idiv'
 
6649
     || lk == 82002                 // 'attribute' 'instance'
 
6650
     || lk == 82041                 // 'element' 'instance'
 
6651
     || lk == 82104                 // 'namespace' 'instance'
 
6652
     || lk == 82136                 // 'processing-instruction' 'instance'
 
6653
     || lk == 83026                 // 'attribute' 'intersect'
 
6654
     || lk == 83065                 // 'element' 'intersect'
 
6655
     || lk == 83128                 // 'namespace' 'intersect'
 
6656
     || lk == 83160                 // 'processing-instruction' 'intersect'
 
6657
     || lk == 83538                 // 'attribute' 'into'
 
6658
     || lk == 83577                 // 'element' 'into'
 
6659
     || lk == 83640                 // 'namespace' 'into'
 
6660
     || lk == 83672                 // 'processing-instruction' 'into'
 
6661
     || lk == 84050                 // 'attribute' 'is'
 
6662
     || lk == 84089                 // 'element' 'is'
 
6663
     || lk == 84152                 // 'namespace' 'is'
 
6664
     || lk == 84184                 // 'processing-instruction' 'is'
 
6665
     || lk == 88146                 // 'attribute' 'le'
 
6666
     || lk == 88185                 // 'element' 'le'
 
6667
     || lk == 88248                 // 'namespace' 'le'
 
6668
     || lk == 88280                 // 'processing-instruction' 'le'
 
6669
     || lk == 89170                 // 'attribute' 'let'
 
6670
     || lk == 89209                 // 'element' 'let'
 
6671
     || lk == 89272                 // 'namespace' 'let'
 
6672
     || lk == 89304                 // 'processing-instruction' 'let'
 
6673
     || lk == 91218                 // 'attribute' 'lt'
 
6674
     || lk == 91257                 // 'element' 'lt'
 
6675
     || lk == 91320                 // 'namespace' 'lt'
 
6676
     || lk == 91352                 // 'processing-instruction' 'lt'
 
6677
     || lk == 92242                 // 'attribute' 'mod'
 
6678
     || lk == 92281                 // 'element' 'mod'
 
6679
     || lk == 92344                 // 'namespace' 'mod'
 
6680
     || lk == 92376                 // 'processing-instruction' 'mod'
 
6681
     || lk == 92754                 // 'attribute' 'modify'
 
6682
     || lk == 92793                 // 'element' 'modify'
 
6683
     || lk == 92856                 // 'namespace' 'modify'
 
6684
     || lk == 92888                 // 'processing-instruction' 'modify'
 
6685
     || lk == 95314                 // 'attribute' 'ne'
 
6686
     || lk == 95353                 // 'element' 'ne'
 
6687
     || lk == 95416                 // 'namespace' 'ne'
 
6688
     || lk == 95448                 // 'processing-instruction' 'ne'
 
6689
     || lk == 101458                // 'attribute' 'only'
 
6690
     || lk == 101497                // 'element' 'only'
 
6691
     || lk == 101560                // 'namespace' 'only'
 
6692
     || lk == 101592                // 'processing-instruction' 'only'
 
6693
     || lk == 102482                // 'attribute' 'or'
 
6694
     || lk == 102521                // 'element' 'or'
 
6695
     || lk == 102584                // 'namespace' 'or'
 
6696
     || lk == 102616                // 'processing-instruction' 'or'
 
6697
     || lk == 102994                // 'attribute' 'order'
 
6698
     || lk == 103033                // 'element' 'order'
 
6699
     || lk == 103096                // 'namespace' 'order'
 
6700
     || lk == 103128                // 'processing-instruction' 'order'
 
6701
     || lk == 112722                // 'attribute' 'return'
 
6702
     || lk == 112761                // 'element' 'return'
 
6703
     || lk == 112824                // 'namespace' 'return'
 
6704
     || lk == 112856                // 'processing-instruction' 'return'
 
6705
     || lk == 114770                // 'attribute' 'satisfies'
 
6706
     || lk == 114809                // 'element' 'satisfies'
 
6707
     || lk == 114872                // 'namespace' 'satisfies'
 
6708
     || lk == 114904                // 'processing-instruction' 'satisfies'
 
6709
     || lk == 120914                // 'attribute' 'stable'
 
6710
     || lk == 120953                // 'element' 'stable'
 
6711
     || lk == 121016                // 'namespace' 'stable'
 
6712
     || lk == 121048                // 'processing-instruction' 'stable'
 
6713
     || lk == 121426                // 'attribute' 'start'
 
6714
     || lk == 121465                // 'element' 'start'
 
6715
     || lk == 121528                // 'namespace' 'start'
 
6716
     || lk == 121560                // 'processing-instruction' 'start'
 
6717
     || lk == 127058                // 'attribute' 'to'
 
6718
     || lk == 127097                // 'element' 'to'
 
6719
     || lk == 127160                // 'namespace' 'to'
 
6720
     || lk == 127192                // 'processing-instruction' 'to'
 
6721
     || lk == 127570                // 'attribute' 'treat'
 
6722
     || lk == 127609                // 'element' 'treat'
 
6723
     || lk == 127672                // 'namespace' 'treat'
 
6724
     || lk == 127704                // 'processing-instruction' 'treat'
 
6725
     || lk == 130130                // 'attribute' 'union'
 
6726
     || lk == 130169                // 'element' 'union'
 
6727
     || lk == 130232                // 'namespace' 'union'
 
6728
     || lk == 130264                // 'processing-instruction' 'union'
 
6729
     || lk == 136274                // 'attribute' 'where'
 
6730
     || lk == 136313                // 'element' 'where'
 
6731
     || lk == 136376                // 'namespace' 'where'
 
6732
     || lk == 136408                // 'processing-instruction' 'where'
 
6733
     || lk == 138322                // 'attribute' 'with'
 
6734
     || lk == 138361                // 'element' 'with'
 
6735
     || lk == 138424                // 'namespace' 'with'
 
6736
     || lk == 138456)               // 'processing-instruction' 'with'
 
6737
    {
 
6738
      lk = memoized(3, e0);
 
6739
      if (lk == 0)
 
6740
      {
 
6741
        var b0A = b0; var e0A = e0; var l1A = l1;
 
6742
        var b1A = b1; var e1A = e1; var l2A = l2;
 
6743
        var b2A = b2; var e2A = e2;
 
6744
        try
 
6745
        {
 
6746
          try_PostfixExpr();
 
6747
          lk = -1;
 
6748
        }
 
6749
        catch (p1A)
 
6750
        {
 
6751
          lk = -2;
 
6752
        }
 
6753
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
6754
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
6755
        b2 = b2A; e2 = e2A; end = e2A; }}
 
6756
        memoize(3, e0, lk);
 
6757
      }
 
6758
    }
 
6759
    switch (lk)
 
6760
    {
 
6761
    case -1:
 
6762
    case 8:                         // IntegerLiteral
 
6763
    case 9:                         // DecimalLiteral
 
6764
    case 10:                        // DoubleLiteral
 
6765
    case 11:                        // StringLiteral
 
6766
    case 31:                        // '$'
 
6767
    case 32:                        // '%'
 
6768
    case 34:                        // '('
 
6769
    case 44:                        // '.'
 
6770
    case 54:                        // '<'
 
6771
    case 55:                        // '<!--'
 
6772
    case 59:                        // '<?'
 
6773
    case 68:                        // '['
 
6774
    case 276:                       // '{'
 
6775
    case 278:                       // '{|'
 
6776
    case 3154:                      // 'attribute' EQName^Token
 
6777
    case 3193:                      // 'element' EQName^Token
 
6778
    case 9912:                      // 'namespace' NCName^Token
 
6779
    case 9944:                      // 'processing-instruction' NCName^Token
 
6780
    case 14854:                     // EQName^Token '#'
 
6781
    case 14918:                     // 'after' '#'
 
6782
    case 14920:                     // 'allowing' '#'
 
6783
    case 14921:                     // 'ancestor' '#'
 
6784
    case 14922:                     // 'ancestor-or-self' '#'
 
6785
    case 14923:                     // 'and' '#'
 
6786
    case 14926:                     // 'array' '#'
 
6787
    case 14927:                     // 'as' '#'
 
6788
    case 14928:                     // 'ascending' '#'
 
6789
    case 14929:                     // 'at' '#'
 
6790
    case 14930:                     // 'attribute' '#'
 
6791
    case 14931:                     // 'base-uri' '#'
 
6792
    case 14932:                     // 'before' '#'
 
6793
    case 14933:                     // 'boundary-space' '#'
 
6794
    case 14934:                     // 'break' '#'
 
6795
    case 14936:                     // 'case' '#'
 
6796
    case 14937:                     // 'cast' '#'
 
6797
    case 14938:                     // 'castable' '#'
 
6798
    case 14939:                     // 'catch' '#'
 
6799
    case 14941:                     // 'child' '#'
 
6800
    case 14942:                     // 'collation' '#'
 
6801
    case 14944:                     // 'comment' '#'
 
6802
    case 14945:                     // 'constraint' '#'
 
6803
    case 14946:                     // 'construction' '#'
 
6804
    case 14949:                     // 'context' '#'
 
6805
    case 14950:                     // 'continue' '#'
 
6806
    case 14951:                     // 'copy' '#'
 
6807
    case 14952:                     // 'copy-namespaces' '#'
 
6808
    case 14953:                     // 'count' '#'
 
6809
    case 14954:                     // 'decimal-format' '#'
 
6810
    case 14956:                     // 'declare' '#'
 
6811
    case 14957:                     // 'default' '#'
 
6812
    case 14958:                     // 'delete' '#'
 
6813
    case 14959:                     // 'descendant' '#'
 
6814
    case 14960:                     // 'descendant-or-self' '#'
 
6815
    case 14961:                     // 'descending' '#'
 
6816
    case 14966:                     // 'div' '#'
 
6817
    case 14967:                     // 'document' '#'
 
6818
    case 14968:                     // 'document-node' '#'
 
6819
    case 14969:                     // 'element' '#'
 
6820
    case 14970:                     // 'else' '#'
 
6821
    case 14971:                     // 'empty' '#'
 
6822
    case 14972:                     // 'empty-sequence' '#'
 
6823
    case 14973:                     // 'encoding' '#'
 
6824
    case 14974:                     // 'end' '#'
 
6825
    case 14976:                     // 'eq' '#'
 
6826
    case 14977:                     // 'every' '#'
 
6827
    case 14979:                     // 'except' '#'
 
6828
    case 14980:                     // 'exit' '#'
 
6829
    case 14981:                     // 'external' '#'
 
6830
    case 14982:                     // 'first' '#'
 
6831
    case 14983:                     // 'following' '#'
 
6832
    case 14984:                     // 'following-sibling' '#'
 
6833
    case 14985:                     // 'for' '#'
 
6834
    case 14989:                     // 'ft-option' '#'
 
6835
    case 14993:                     // 'function' '#'
 
6836
    case 14994:                     // 'ge' '#'
 
6837
    case 14996:                     // 'group' '#'
 
6838
    case 14998:                     // 'gt' '#'
 
6839
    case 14999:                     // 'idiv' '#'
 
6840
    case 15000:                     // 'if' '#'
 
6841
    case 15001:                     // 'import' '#'
 
6842
    case 15002:                     // 'in' '#'
 
6843
    case 15003:                     // 'index' '#'
 
6844
    case 15007:                     // 'insert' '#'
 
6845
    case 15008:                     // 'instance' '#'
 
6846
    case 15009:                     // 'integrity' '#'
 
6847
    case 15010:                     // 'intersect' '#'
 
6848
    case 15011:                     // 'into' '#'
 
6849
    case 15012:                     // 'is' '#'
 
6850
    case 15013:                     // 'item' '#'
 
6851
    case 15015:                     // 'json-item' '#'
 
6852
    case 15018:                     // 'last' '#'
 
6853
    case 15019:                     // 'lax' '#'
 
6854
    case 15020:                     // 'le' '#'
 
6855
    case 15022:                     // 'let' '#'
 
6856
    case 15024:                     // 'loop' '#'
 
6857
    case 15026:                     // 'lt' '#'
 
6858
    case 15028:                     // 'mod' '#'
 
6859
    case 15029:                     // 'modify' '#'
 
6860
    case 15030:                     // 'module' '#'
 
6861
    case 15032:                     // 'namespace' '#'
 
6862
    case 15033:                     // 'namespace-node' '#'
 
6863
    case 15034:                     // 'ne' '#'
 
6864
    case 15039:                     // 'node' '#'
 
6865
    case 15040:                     // 'nodes' '#'
 
6866
    case 15042:                     // 'object' '#'
 
6867
    case 15046:                     // 'only' '#'
 
6868
    case 15047:                     // 'option' '#'
 
6869
    case 15048:                     // 'or' '#'
 
6870
    case 15049:                     // 'order' '#'
 
6871
    case 15050:                     // 'ordered' '#'
 
6872
    case 15051:                     // 'ordering' '#'
 
6873
    case 15054:                     // 'parent' '#'
 
6874
    case 15060:                     // 'preceding' '#'
 
6875
    case 15061:                     // 'preceding-sibling' '#'
 
6876
    case 15064:                     // 'processing-instruction' '#'
 
6877
    case 15066:                     // 'rename' '#'
 
6878
    case 15067:                     // 'replace' '#'
 
6879
    case 15068:                     // 'return' '#'
 
6880
    case 15069:                     // 'returning' '#'
 
6881
    case 15070:                     // 'revalidation' '#'
 
6882
    case 15072:                     // 'satisfies' '#'
 
6883
    case 15073:                     // 'schema' '#'
 
6884
    case 15074:                     // 'schema-attribute' '#'
 
6885
    case 15075:                     // 'schema-element' '#'
 
6886
    case 15076:                     // 'score' '#'
 
6887
    case 15077:                     // 'self' '#'
 
6888
    case 15082:                     // 'sliding' '#'
 
6889
    case 15083:                     // 'some' '#'
 
6890
    case 15084:                     // 'stable' '#'
 
6891
    case 15085:                     // 'start' '#'
 
6892
    case 15088:                     // 'strict' '#'
 
6893
    case 15091:                     // 'switch' '#'
 
6894
    case 15092:                     // 'text' '#'
 
6895
    case 15096:                     // 'to' '#'
 
6896
    case 15097:                     // 'treat' '#'
 
6897
    case 15098:                     // 'try' '#'
 
6898
    case 15099:                     // 'tumbling' '#'
 
6899
    case 15100:                     // 'type' '#'
 
6900
    case 15101:                     // 'typeswitch' '#'
 
6901
    case 15102:                     // 'union' '#'
 
6902
    case 15104:                     // 'unordered' '#'
 
6903
    case 15105:                     // 'updating' '#'
 
6904
    case 15108:                     // 'validate' '#'
 
6905
    case 15109:                     // 'value' '#'
 
6906
    case 15110:                     // 'variable' '#'
 
6907
    case 15111:                     // 'version' '#'
 
6908
    case 15114:                     // 'where' '#'
 
6909
    case 15115:                     // 'while' '#'
 
6910
    case 15118:                     // 'with' '#'
 
6911
    case 15122:                     // 'xquery' '#'
 
6912
    case 17414:                     // EQName^Token '('
 
6913
    case 17478:                     // 'after' '('
 
6914
    case 17480:                     // 'allowing' '('
 
6915
    case 17481:                     // 'ancestor' '('
 
6916
    case 17482:                     // 'ancestor-or-self' '('
 
6917
    case 17483:                     // 'and' '('
 
6918
    case 17487:                     // 'as' '('
 
6919
    case 17488:                     // 'ascending' '('
 
6920
    case 17489:                     // 'at' '('
 
6921
    case 17491:                     // 'base-uri' '('
 
6922
    case 17492:                     // 'before' '('
 
6923
    case 17493:                     // 'boundary-space' '('
 
6924
    case 17494:                     // 'break' '('
 
6925
    case 17496:                     // 'case' '('
 
6926
    case 17497:                     // 'cast' '('
 
6927
    case 17498:                     // 'castable' '('
 
6928
    case 17499:                     // 'catch' '('
 
6929
    case 17501:                     // 'child' '('
 
6930
    case 17502:                     // 'collation' '('
 
6931
    case 17505:                     // 'constraint' '('
 
6932
    case 17506:                     // 'construction' '('
 
6933
    case 17509:                     // 'context' '('
 
6934
    case 17510:                     // 'continue' '('
 
6935
    case 17511:                     // 'copy' '('
 
6936
    case 17512:                     // 'copy-namespaces' '('
 
6937
    case 17513:                     // 'count' '('
 
6938
    case 17514:                     // 'decimal-format' '('
 
6939
    case 17516:                     // 'declare' '('
 
6940
    case 17517:                     // 'default' '('
 
6941
    case 17518:                     // 'delete' '('
 
6942
    case 17519:                     // 'descendant' '('
 
6943
    case 17520:                     // 'descendant-or-self' '('
 
6944
    case 17521:                     // 'descending' '('
 
6945
    case 17526:                     // 'div' '('
 
6946
    case 17527:                     // 'document' '('
 
6947
    case 17530:                     // 'else' '('
 
6948
    case 17531:                     // 'empty' '('
 
6949
    case 17533:                     // 'encoding' '('
 
6950
    case 17534:                     // 'end' '('
 
6951
    case 17536:                     // 'eq' '('
 
6952
    case 17537:                     // 'every' '('
 
6953
    case 17539:                     // 'except' '('
 
6954
    case 17540:                     // 'exit' '('
 
6955
    case 17541:                     // 'external' '('
 
6956
    case 17542:                     // 'first' '('
 
6957
    case 17543:                     // 'following' '('
 
6958
    case 17544:                     // 'following-sibling' '('
 
6959
    case 17545:                     // 'for' '('
 
6960
    case 17549:                     // 'ft-option' '('
 
6961
    case 17553:                     // 'function' '('
 
6962
    case 17554:                     // 'ge' '('
 
6963
    case 17556:                     // 'group' '('
 
6964
    case 17558:                     // 'gt' '('
 
6965
    case 17559:                     // 'idiv' '('
 
6966
    case 17561:                     // 'import' '('
 
6967
    case 17562:                     // 'in' '('
 
6968
    case 17563:                     // 'index' '('
 
6969
    case 17567:                     // 'insert' '('
 
6970
    case 17568:                     // 'instance' '('
 
6971
    case 17569:                     // 'integrity' '('
 
6972
    case 17570:                     // 'intersect' '('
 
6973
    case 17571:                     // 'into' '('
 
6974
    case 17572:                     // 'is' '('
 
6975
    case 17578:                     // 'last' '('
 
6976
    case 17579:                     // 'lax' '('
 
6977
    case 17580:                     // 'le' '('
 
6978
    case 17582:                     // 'let' '('
 
6979
    case 17584:                     // 'loop' '('
 
6980
    case 17586:                     // 'lt' '('
 
6981
    case 17588:                     // 'mod' '('
 
6982
    case 17589:                     // 'modify' '('
 
6983
    case 17590:                     // 'module' '('
 
6984
    case 17592:                     // 'namespace' '('
 
6985
    case 17594:                     // 'ne' '('
 
6986
    case 17600:                     // 'nodes' '('
 
6987
    case 17606:                     // 'only' '('
 
6988
    case 17607:                     // 'option' '('
 
6989
    case 17608:                     // 'or' '('
 
6990
    case 17609:                     // 'order' '('
 
6991
    case 17610:                     // 'ordered' '('
 
6992
    case 17611:                     // 'ordering' '('
 
6993
    case 17614:                     // 'parent' '('
 
6994
    case 17620:                     // 'preceding' '('
 
6995
    case 17621:                     // 'preceding-sibling' '('
 
6996
    case 17626:                     // 'rename' '('
 
6997
    case 17627:                     // 'replace' '('
 
6998
    case 17628:                     // 'return' '('
 
6999
    case 17629:                     // 'returning' '('
 
7000
    case 17630:                     // 'revalidation' '('
 
7001
    case 17632:                     // 'satisfies' '('
 
7002
    case 17633:                     // 'schema' '('
 
7003
    case 17636:                     // 'score' '('
 
7004
    case 17637:                     // 'self' '('
 
7005
    case 17642:                     // 'sliding' '('
 
7006
    case 17643:                     // 'some' '('
 
7007
    case 17644:                     // 'stable' '('
 
7008
    case 17645:                     // 'start' '('
 
7009
    case 17648:                     // 'strict' '('
 
7010
    case 17656:                     // 'to' '('
 
7011
    case 17657:                     // 'treat' '('
 
7012
    case 17658:                     // 'try' '('
 
7013
    case 17659:                     // 'tumbling' '('
 
7014
    case 17660:                     // 'type' '('
 
7015
    case 17662:                     // 'union' '('
 
7016
    case 17664:                     // 'unordered' '('
 
7017
    case 17665:                     // 'updating' '('
 
7018
    case 17668:                     // 'validate' '('
 
7019
    case 17669:                     // 'value' '('
 
7020
    case 17670:                     // 'variable' '('
 
7021
    case 17671:                     // 'version' '('
 
7022
    case 17674:                     // 'where' '('
 
7023
    case 17675:                     // 'while' '('
 
7024
    case 17678:                     // 'with' '('
 
7025
    case 17682:                     // 'xquery' '('
 
7026
    case 36946:                     // 'attribute' 'allowing'
 
7027
    case 36985:                     // 'element' 'allowing'
 
7028
    case 37048:                     // 'namespace' 'allowing'
 
7029
    case 37080:                     // 'processing-instruction' 'allowing'
 
7030
    case 37458:                     // 'attribute' 'ancestor'
 
7031
    case 37497:                     // 'element' 'ancestor'
 
7032
    case 37560:                     // 'namespace' 'ancestor'
 
7033
    case 37592:                     // 'processing-instruction' 'ancestor'
 
7034
    case 37970:                     // 'attribute' 'ancestor-or-self'
 
7035
    case 38009:                     // 'element' 'ancestor-or-self'
 
7036
    case 38072:                     // 'namespace' 'ancestor-or-self'
 
7037
    case 38104:                     // 'processing-instruction' 'ancestor-or-self'
 
7038
    case 40018:                     // 'attribute' 'array'
 
7039
    case 40057:                     // 'element' 'array'
 
7040
    case 42066:                     // 'attribute' 'attribute'
 
7041
    case 42105:                     // 'element' 'attribute'
 
7042
    case 42168:                     // 'namespace' 'attribute'
 
7043
    case 42200:                     // 'processing-instruction' 'attribute'
 
7044
    case 42578:                     // 'attribute' 'base-uri'
 
7045
    case 42617:                     // 'element' 'base-uri'
 
7046
    case 42680:                     // 'namespace' 'base-uri'
 
7047
    case 42712:                     // 'processing-instruction' 'base-uri'
 
7048
    case 43602:                     // 'attribute' 'boundary-space'
 
7049
    case 43641:                     // 'element' 'boundary-space'
 
7050
    case 43704:                     // 'namespace' 'boundary-space'
 
7051
    case 43736:                     // 'processing-instruction' 'boundary-space'
 
7052
    case 44114:                     // 'attribute' 'break'
 
7053
    case 44153:                     // 'element' 'break'
 
7054
    case 44216:                     // 'namespace' 'break'
 
7055
    case 44248:                     // 'processing-instruction' 'break'
 
7056
    case 46674:                     // 'attribute' 'catch'
 
7057
    case 46713:                     // 'element' 'catch'
 
7058
    case 46776:                     // 'namespace' 'catch'
 
7059
    case 46808:                     // 'processing-instruction' 'catch'
 
7060
    case 47698:                     // 'attribute' 'child'
 
7061
    case 47737:                     // 'element' 'child'
 
7062
    case 47800:                     // 'namespace' 'child'
 
7063
    case 47832:                     // 'processing-instruction' 'child'
 
7064
    case 49234:                     // 'attribute' 'comment'
 
7065
    case 49273:                     // 'element' 'comment'
 
7066
    case 49336:                     // 'namespace' 'comment'
 
7067
    case 49368:                     // 'processing-instruction' 'comment'
 
7068
    case 49746:                     // 'attribute' 'constraint'
 
7069
    case 49785:                     // 'element' 'constraint'
 
7070
    case 49848:                     // 'namespace' 'constraint'
 
7071
    case 49880:                     // 'processing-instruction' 'constraint'
 
7072
    case 50258:                     // 'attribute' 'construction'
 
7073
    case 50297:                     // 'element' 'construction'
 
7074
    case 50360:                     // 'namespace' 'construction'
 
7075
    case 50392:                     // 'processing-instruction' 'construction'
 
7076
    case 51794:                     // 'attribute' 'context'
 
7077
    case 51833:                     // 'element' 'context'
 
7078
    case 51896:                     // 'namespace' 'context'
 
7079
    case 51928:                     // 'processing-instruction' 'context'
 
7080
    case 52306:                     // 'attribute' 'continue'
 
7081
    case 52345:                     // 'element' 'continue'
 
7082
    case 52408:                     // 'namespace' 'continue'
 
7083
    case 52440:                     // 'processing-instruction' 'continue'
 
7084
    case 52818:                     // 'attribute' 'copy'
 
7085
    case 52857:                     // 'element' 'copy'
 
7086
    case 52920:                     // 'namespace' 'copy'
 
7087
    case 52952:                     // 'processing-instruction' 'copy'
 
7088
    case 53330:                     // 'attribute' 'copy-namespaces'
 
7089
    case 53369:                     // 'element' 'copy-namespaces'
 
7090
    case 53432:                     // 'namespace' 'copy-namespaces'
 
7091
    case 53464:                     // 'processing-instruction' 'copy-namespaces'
 
7092
    case 54354:                     // 'attribute' 'decimal-format'
 
7093
    case 54393:                     // 'element' 'decimal-format'
 
7094
    case 54456:                     // 'namespace' 'decimal-format'
 
7095
    case 54488:                     // 'processing-instruction' 'decimal-format'
 
7096
    case 55378:                     // 'attribute' 'declare'
 
7097
    case 55417:                     // 'element' 'declare'
 
7098
    case 55480:                     // 'namespace' 'declare'
 
7099
    case 55512:                     // 'processing-instruction' 'declare'
 
7100
    case 56402:                     // 'attribute' 'delete'
 
7101
    case 56441:                     // 'element' 'delete'
 
7102
    case 56504:                     // 'namespace' 'delete'
 
7103
    case 56536:                     // 'processing-instruction' 'delete'
 
7104
    case 56914:                     // 'attribute' 'descendant'
 
7105
    case 56953:                     // 'element' 'descendant'
 
7106
    case 57016:                     // 'namespace' 'descendant'
 
7107
    case 57048:                     // 'processing-instruction' 'descendant'
 
7108
    case 57426:                     // 'attribute' 'descendant-or-self'
 
7109
    case 57465:                     // 'element' 'descendant-or-self'
 
7110
    case 57528:                     // 'namespace' 'descendant-or-self'
 
7111
    case 57560:                     // 'processing-instruction' 'descendant-or-self'
 
7112
    case 61010:                     // 'attribute' 'document'
 
7113
    case 61049:                     // 'element' 'document'
 
7114
    case 61112:                     // 'namespace' 'document'
 
7115
    case 61144:                     // 'processing-instruction' 'document'
 
7116
    case 61522:                     // 'attribute' 'document-node'
 
7117
    case 61561:                     // 'element' 'document-node'
 
7118
    case 61624:                     // 'namespace' 'document-node'
 
7119
    case 61656:                     // 'processing-instruction' 'document-node'
 
7120
    case 62034:                     // 'attribute' 'element'
 
7121
    case 62073:                     // 'element' 'element'
 
7122
    case 62136:                     // 'namespace' 'element'
 
7123
    case 62168:                     // 'processing-instruction' 'element'
 
7124
    case 63570:                     // 'attribute' 'empty-sequence'
 
7125
    case 63609:                     // 'element' 'empty-sequence'
 
7126
    case 63672:                     // 'namespace' 'empty-sequence'
 
7127
    case 63704:                     // 'processing-instruction' 'empty-sequence'
 
7128
    case 64082:                     // 'attribute' 'encoding'
 
7129
    case 64121:                     // 'element' 'encoding'
 
7130
    case 64184:                     // 'namespace' 'encoding'
 
7131
    case 64216:                     // 'processing-instruction' 'encoding'
 
7132
    case 66130:                     // 'attribute' 'every'
 
7133
    case 66169:                     // 'element' 'every'
 
7134
    case 66232:                     // 'namespace' 'every'
 
7135
    case 66264:                     // 'processing-instruction' 'every'
 
7136
    case 67666:                     // 'attribute' 'exit'
 
7137
    case 67705:                     // 'element' 'exit'
 
7138
    case 67768:                     // 'namespace' 'exit'
 
7139
    case 67800:                     // 'processing-instruction' 'exit'
 
7140
    case 68178:                     // 'attribute' 'external'
 
7141
    case 68217:                     // 'element' 'external'
 
7142
    case 68280:                     // 'namespace' 'external'
 
7143
    case 68312:                     // 'processing-instruction' 'external'
 
7144
    case 68690:                     // 'attribute' 'first'
 
7145
    case 68729:                     // 'element' 'first'
 
7146
    case 68792:                     // 'namespace' 'first'
 
7147
    case 68824:                     // 'processing-instruction' 'first'
 
7148
    case 69202:                     // 'attribute' 'following'
 
7149
    case 69241:                     // 'element' 'following'
 
7150
    case 69304:                     // 'namespace' 'following'
 
7151
    case 69336:                     // 'processing-instruction' 'following'
 
7152
    case 69714:                     // 'attribute' 'following-sibling'
 
7153
    case 69753:                     // 'element' 'following-sibling'
 
7154
    case 69816:                     // 'namespace' 'following-sibling'
 
7155
    case 69848:                     // 'processing-instruction' 'following-sibling'
 
7156
    case 72274:                     // 'attribute' 'ft-option'
 
7157
    case 72313:                     // 'element' 'ft-option'
 
7158
    case 72376:                     // 'namespace' 'ft-option'
 
7159
    case 72408:                     // 'processing-instruction' 'ft-option'
 
7160
    case 74322:                     // 'attribute' 'function'
 
7161
    case 74361:                     // 'element' 'function'
 
7162
    case 74424:                     // 'namespace' 'function'
 
7163
    case 74456:                     // 'processing-instruction' 'function'
 
7164
    case 77906:                     // 'attribute' 'if'
 
7165
    case 77945:                     // 'element' 'if'
 
7166
    case 78008:                     // 'namespace' 'if'
 
7167
    case 78040:                     // 'processing-instruction' 'if'
 
7168
    case 78418:                     // 'attribute' 'import'
 
7169
    case 78457:                     // 'element' 'import'
 
7170
    case 78520:                     // 'namespace' 'import'
 
7171
    case 78552:                     // 'processing-instruction' 'import'
 
7172
    case 78930:                     // 'attribute' 'in'
 
7173
    case 78969:                     // 'element' 'in'
 
7174
    case 79032:                     // 'namespace' 'in'
 
7175
    case 79064:                     // 'processing-instruction' 'in'
 
7176
    case 79442:                     // 'attribute' 'index'
 
7177
    case 79481:                     // 'element' 'index'
 
7178
    case 79544:                     // 'namespace' 'index'
 
7179
    case 79576:                     // 'processing-instruction' 'index'
 
7180
    case 81490:                     // 'attribute' 'insert'
 
7181
    case 81529:                     // 'element' 'insert'
 
7182
    case 81592:                     // 'namespace' 'insert'
 
7183
    case 81624:                     // 'processing-instruction' 'insert'
 
7184
    case 82514:                     // 'attribute' 'integrity'
 
7185
    case 82553:                     // 'element' 'integrity'
 
7186
    case 82616:                     // 'namespace' 'integrity'
 
7187
    case 82648:                     // 'processing-instruction' 'integrity'
 
7188
    case 84562:                     // 'attribute' 'item'
 
7189
    case 84601:                     // 'element' 'item'
 
7190
    case 84664:                     // 'namespace' 'item'
 
7191
    case 84696:                     // 'processing-instruction' 'item'
 
7192
    case 85586:                     // 'attribute' 'json-item'
 
7193
    case 85625:                     // 'element' 'json-item'
 
7194
    case 87122:                     // 'attribute' 'last'
 
7195
    case 87161:                     // 'element' 'last'
 
7196
    case 87224:                     // 'namespace' 'last'
 
7197
    case 87256:                     // 'processing-instruction' 'last'
 
7198
    case 87634:                     // 'attribute' 'lax'
 
7199
    case 87673:                     // 'element' 'lax'
 
7200
    case 87736:                     // 'namespace' 'lax'
 
7201
    case 87768:                     // 'processing-instruction' 'lax'
 
7202
    case 90194:                     // 'attribute' 'loop'
 
7203
    case 90233:                     // 'element' 'loop'
 
7204
    case 90296:                     // 'namespace' 'loop'
 
7205
    case 90328:                     // 'processing-instruction' 'loop'
 
7206
    case 93266:                     // 'attribute' 'module'
 
7207
    case 93305:                     // 'element' 'module'
 
7208
    case 93368:                     // 'namespace' 'module'
 
7209
    case 93400:                     // 'processing-instruction' 'module'
 
7210
    case 94290:                     // 'attribute' 'namespace'
 
7211
    case 94329:                     // 'element' 'namespace'
 
7212
    case 94392:                     // 'namespace' 'namespace'
 
7213
    case 94424:                     // 'processing-instruction' 'namespace'
 
7214
    case 94802:                     // 'attribute' 'namespace-node'
 
7215
    case 94841:                     // 'element' 'namespace-node'
 
7216
    case 94904:                     // 'namespace' 'namespace-node'
 
7217
    case 94936:                     // 'processing-instruction' 'namespace-node'
 
7218
    case 97874:                     // 'attribute' 'node'
 
7219
    case 97913:                     // 'element' 'node'
 
7220
    case 97976:                     // 'namespace' 'node'
 
7221
    case 98008:                     // 'processing-instruction' 'node'
 
7222
    case 98386:                     // 'attribute' 'nodes'
 
7223
    case 98425:                     // 'element' 'nodes'
 
7224
    case 98488:                     // 'namespace' 'nodes'
 
7225
    case 98520:                     // 'processing-instruction' 'nodes'
 
7226
    case 99410:                     // 'attribute' 'object'
 
7227
    case 99449:                     // 'element' 'object'
 
7228
    case 101970:                    // 'attribute' 'option'
 
7229
    case 102009:                    // 'element' 'option'
 
7230
    case 102072:                    // 'namespace' 'option'
 
7231
    case 102104:                    // 'processing-instruction' 'option'
 
7232
    case 103506:                    // 'attribute' 'ordered'
 
7233
    case 103545:                    // 'element' 'ordered'
 
7234
    case 103608:                    // 'namespace' 'ordered'
 
7235
    case 103640:                    // 'processing-instruction' 'ordered'
 
7236
    case 104018:                    // 'attribute' 'ordering'
 
7237
    case 104057:                    // 'element' 'ordering'
 
7238
    case 104120:                    // 'namespace' 'ordering'
 
7239
    case 104152:                    // 'processing-instruction' 'ordering'
 
7240
    case 105554:                    // 'attribute' 'parent'
 
7241
    case 105593:                    // 'element' 'parent'
 
7242
    case 105656:                    // 'namespace' 'parent'
 
7243
    case 105688:                    // 'processing-instruction' 'parent'
 
7244
    case 108626:                    // 'attribute' 'preceding'
 
7245
    case 108665:                    // 'element' 'preceding'
 
7246
    case 108728:                    // 'namespace' 'preceding'
 
7247
    case 108760:                    // 'processing-instruction' 'preceding'
 
7248
    case 109138:                    // 'attribute' 'preceding-sibling'
 
7249
    case 109177:                    // 'element' 'preceding-sibling'
 
7250
    case 109240:                    // 'namespace' 'preceding-sibling'
 
7251
    case 109272:                    // 'processing-instruction' 'preceding-sibling'
 
7252
    case 110674:                    // 'attribute' 'processing-instruction'
 
7253
    case 110713:                    // 'element' 'processing-instruction'
 
7254
    case 110776:                    // 'namespace' 'processing-instruction'
 
7255
    case 110808:                    // 'processing-instruction' 'processing-instruction'
 
7256
    case 111698:                    // 'attribute' 'rename'
 
7257
    case 111737:                    // 'element' 'rename'
 
7258
    case 111800:                    // 'namespace' 'rename'
 
7259
    case 111832:                    // 'processing-instruction' 'rename'
 
7260
    case 112210:                    // 'attribute' 'replace'
 
7261
    case 112249:                    // 'element' 'replace'
 
7262
    case 112312:                    // 'namespace' 'replace'
 
7263
    case 112344:                    // 'processing-instruction' 'replace'
 
7264
    case 113234:                    // 'attribute' 'returning'
 
7265
    case 113273:                    // 'element' 'returning'
 
7266
    case 113336:                    // 'namespace' 'returning'
 
7267
    case 113368:                    // 'processing-instruction' 'returning'
 
7268
    case 113746:                    // 'attribute' 'revalidation'
 
7269
    case 113785:                    // 'element' 'revalidation'
 
7270
    case 113848:                    // 'namespace' 'revalidation'
 
7271
    case 113880:                    // 'processing-instruction' 'revalidation'
 
7272
    case 115282:                    // 'attribute' 'schema'
 
7273
    case 115321:                    // 'element' 'schema'
 
7274
    case 115384:                    // 'namespace' 'schema'
 
7275
    case 115416:                    // 'processing-instruction' 'schema'
 
7276
    case 115794:                    // 'attribute' 'schema-attribute'
 
7277
    case 115833:                    // 'element' 'schema-attribute'
 
7278
    case 115896:                    // 'namespace' 'schema-attribute'
 
7279
    case 115928:                    // 'processing-instruction' 'schema-attribute'
 
7280
    case 116306:                    // 'attribute' 'schema-element'
 
7281
    case 116345:                    // 'element' 'schema-element'
 
7282
    case 116408:                    // 'namespace' 'schema-element'
 
7283
    case 116440:                    // 'processing-instruction' 'schema-element'
 
7284
    case 116818:                    // 'attribute' 'score'
 
7285
    case 116857:                    // 'element' 'score'
 
7286
    case 116920:                    // 'namespace' 'score'
 
7287
    case 116952:                    // 'processing-instruction' 'score'
 
7288
    case 117330:                    // 'attribute' 'self'
 
7289
    case 117369:                    // 'element' 'self'
 
7290
    case 117432:                    // 'namespace' 'self'
 
7291
    case 117464:                    // 'processing-instruction' 'self'
 
7292
    case 119890:                    // 'attribute' 'sliding'
 
7293
    case 119929:                    // 'element' 'sliding'
 
7294
    case 119992:                    // 'namespace' 'sliding'
 
7295
    case 120024:                    // 'processing-instruction' 'sliding'
 
7296
    case 120402:                    // 'attribute' 'some'
 
7297
    case 120441:                    // 'element' 'some'
 
7298
    case 120504:                    // 'namespace' 'some'
 
7299
    case 120536:                    // 'processing-instruction' 'some'
 
7300
    case 122962:                    // 'attribute' 'strict'
 
7301
    case 123001:                    // 'element' 'strict'
 
7302
    case 123064:                    // 'namespace' 'strict'
 
7303
    case 123096:                    // 'processing-instruction' 'strict'
 
7304
    case 124498:                    // 'attribute' 'switch'
 
7305
    case 124537:                    // 'element' 'switch'
 
7306
    case 124600:                    // 'namespace' 'switch'
 
7307
    case 124632:                    // 'processing-instruction' 'switch'
 
7308
    case 125010:                    // 'attribute' 'text'
 
7309
    case 125049:                    // 'element' 'text'
 
7310
    case 125112:                    // 'namespace' 'text'
 
7311
    case 125144:                    // 'processing-instruction' 'text'
 
7312
    case 128082:                    // 'attribute' 'try'
 
7313
    case 128121:                    // 'element' 'try'
 
7314
    case 128184:                    // 'namespace' 'try'
 
7315
    case 128216:                    // 'processing-instruction' 'try'
 
7316
    case 128594:                    // 'attribute' 'tumbling'
 
7317
    case 128633:                    // 'element' 'tumbling'
 
7318
    case 128696:                    // 'namespace' 'tumbling'
 
7319
    case 128728:                    // 'processing-instruction' 'tumbling'
 
7320
    case 129106:                    // 'attribute' 'type'
 
7321
    case 129145:                    // 'element' 'type'
 
7322
    case 129208:                    // 'namespace' 'type'
 
7323
    case 129240:                    // 'processing-instruction' 'type'
 
7324
    case 129618:                    // 'attribute' 'typeswitch'
 
7325
    case 129657:                    // 'element' 'typeswitch'
 
7326
    case 129720:                    // 'namespace' 'typeswitch'
 
7327
    case 129752:                    // 'processing-instruction' 'typeswitch'
 
7328
    case 131154:                    // 'attribute' 'unordered'
 
7329
    case 131193:                    // 'element' 'unordered'
 
7330
    case 131256:                    // 'namespace' 'unordered'
 
7331
    case 131288:                    // 'processing-instruction' 'unordered'
 
7332
    case 131666:                    // 'attribute' 'updating'
 
7333
    case 131705:                    // 'element' 'updating'
 
7334
    case 131768:                    // 'namespace' 'updating'
 
7335
    case 131800:                    // 'processing-instruction' 'updating'
 
7336
    case 133202:                    // 'attribute' 'validate'
 
7337
    case 133241:                    // 'element' 'validate'
 
7338
    case 133304:                    // 'namespace' 'validate'
 
7339
    case 133336:                    // 'processing-instruction' 'validate'
 
7340
    case 133714:                    // 'attribute' 'value'
 
7341
    case 133753:                    // 'element' 'value'
 
7342
    case 133816:                    // 'namespace' 'value'
 
7343
    case 133848:                    // 'processing-instruction' 'value'
 
7344
    case 134226:                    // 'attribute' 'variable'
 
7345
    case 134265:                    // 'element' 'variable'
 
7346
    case 134328:                    // 'namespace' 'variable'
 
7347
    case 134360:                    // 'processing-instruction' 'variable'
 
7348
    case 134738:                    // 'attribute' 'version'
 
7349
    case 134777:                    // 'element' 'version'
 
7350
    case 134840:                    // 'namespace' 'version'
 
7351
    case 134872:                    // 'processing-instruction' 'version'
 
7352
    case 136786:                    // 'attribute' 'while'
 
7353
    case 136825:                    // 'element' 'while'
 
7354
    case 136888:                    // 'namespace' 'while'
 
7355
    case 136920:                    // 'processing-instruction' 'while'
 
7356
    case 140370:                    // 'attribute' 'xquery'
 
7357
    case 140409:                    // 'element' 'xquery'
 
7358
    case 140472:                    // 'namespace' 'xquery'
 
7359
    case 140504:                    // 'processing-instruction' 'xquery'
 
7360
    case 141394:                    // 'attribute' '{'
 
7361
    case 141408:                    // 'comment' '{'
 
7362
    case 141431:                    // 'document' '{'
 
7363
    case 141433:                    // 'element' '{'
 
7364
    case 141496:                    // 'namespace' '{'
 
7365
    case 141514:                    // 'ordered' '{'
 
7366
    case 141528:                    // 'processing-instruction' '{'
 
7367
    case 141556:                    // 'text' '{'
 
7368
    case 141568:                    // 'unordered' '{'
 
7369
      parse_PostfixExpr();
 
7370
      break;
 
7371
    default:
 
7372
      parse_AxisStep();
 
7373
    }
 
7374
    eventHandler.endNonterminal("StepExpr", e0);
 
7375
  }
 
7376
 
 
7377
  function try_StepExpr()
 
7378
  {
 
7379
    switch (l1)
 
7380
    {
 
7381
    case 82:                        // 'attribute'
 
7382
      lookahead2W(282);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
7383
      break;
 
7384
    case 121:                       // 'element'
 
7385
      lookahead2W(280);             // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
7386
      break;
 
7387
    case 184:                       // 'namespace'
 
7388
    case 216:                       // 'processing-instruction'
 
7389
      lookahead2W(279);             // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
 
7390
      break;
 
7391
    case 96:                        // 'comment'
 
7392
    case 119:                       // 'document'
 
7393
    case 202:                       // 'ordered'
 
7394
    case 244:                       // 'text'
 
7395
    case 256:                       // 'unordered'
 
7396
      lookahead2W(245);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
7397
      break;
 
7398
    case 124:                       // 'empty-sequence'
 
7399
    case 152:                       // 'if'
 
7400
    case 165:                       // 'item'
 
7401
    case 243:                       // 'switch'
 
7402
    case 253:                       // 'typeswitch'
 
7403
      lookahead2W(238);             // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
7404
      break;
 
7405
    case 73:                        // 'ancestor'
 
7406
    case 74:                        // 'ancestor-or-self'
 
7407
    case 93:                        // 'child'
 
7408
    case 111:                       // 'descendant'
 
7409
    case 112:                       // 'descendant-or-self'
 
7410
    case 135:                       // 'following'
 
7411
    case 136:                       // 'following-sibling'
 
7412
    case 206:                       // 'parent'
 
7413
    case 212:                       // 'preceding'
 
7414
    case 213:                       // 'preceding-sibling'
 
7415
    case 229:                       // 'self'
 
7416
      lookahead2W(244);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
7417
      break;
 
7418
    case 6:                         // EQName^Token
 
7419
    case 70:                        // 'after'
 
7420
    case 72:                        // 'allowing'
 
7421
    case 75:                        // 'and'
 
7422
    case 78:                        // 'array'
 
7423
    case 79:                        // 'as'
 
7424
    case 80:                        // 'ascending'
 
7425
    case 81:                        // 'at'
 
7426
    case 83:                        // 'base-uri'
 
7427
    case 84:                        // 'before'
 
7428
    case 85:                        // 'boundary-space'
 
7429
    case 86:                        // 'break'
 
7430
    case 88:                        // 'case'
 
7431
    case 89:                        // 'cast'
 
7432
    case 90:                        // 'castable'
 
7433
    case 91:                        // 'catch'
 
7434
    case 94:                        // 'collation'
 
7435
    case 97:                        // 'constraint'
 
7436
    case 98:                        // 'construction'
 
7437
    case 101:                       // 'context'
 
7438
    case 102:                       // 'continue'
 
7439
    case 103:                       // 'copy'
 
7440
    case 104:                       // 'copy-namespaces'
 
7441
    case 105:                       // 'count'
 
7442
    case 106:                       // 'decimal-format'
 
7443
    case 108:                       // 'declare'
 
7444
    case 109:                       // 'default'
 
7445
    case 110:                       // 'delete'
 
7446
    case 113:                       // 'descending'
 
7447
    case 118:                       // 'div'
 
7448
    case 120:                       // 'document-node'
 
7449
    case 122:                       // 'else'
 
7450
    case 123:                       // 'empty'
 
7451
    case 125:                       // 'encoding'
 
7452
    case 126:                       // 'end'
 
7453
    case 128:                       // 'eq'
 
7454
    case 129:                       // 'every'
 
7455
    case 131:                       // 'except'
 
7456
    case 132:                       // 'exit'
 
7457
    case 133:                       // 'external'
 
7458
    case 134:                       // 'first'
 
7459
    case 137:                       // 'for'
 
7460
    case 141:                       // 'ft-option'
 
7461
    case 145:                       // 'function'
 
7462
    case 146:                       // 'ge'
 
7463
    case 148:                       // 'group'
 
7464
    case 150:                       // 'gt'
 
7465
    case 151:                       // 'idiv'
 
7466
    case 153:                       // 'import'
 
7467
    case 154:                       // 'in'
 
7468
    case 155:                       // 'index'
 
7469
    case 159:                       // 'insert'
 
7470
    case 160:                       // 'instance'
 
7471
    case 161:                       // 'integrity'
 
7472
    case 162:                       // 'intersect'
 
7473
    case 163:                       // 'into'
 
7474
    case 164:                       // 'is'
 
7475
    case 167:                       // 'json-item'
 
7476
    case 170:                       // 'last'
 
7477
    case 171:                       // 'lax'
 
7478
    case 172:                       // 'le'
 
7479
    case 174:                       // 'let'
 
7480
    case 176:                       // 'loop'
 
7481
    case 178:                       // 'lt'
 
7482
    case 180:                       // 'mod'
 
7483
    case 181:                       // 'modify'
 
7484
    case 182:                       // 'module'
 
7485
    case 185:                       // 'namespace-node'
 
7486
    case 186:                       // 'ne'
 
7487
    case 191:                       // 'node'
 
7488
    case 192:                       // 'nodes'
 
7489
    case 194:                       // 'object'
 
7490
    case 198:                       // 'only'
 
7491
    case 199:                       // 'option'
 
7492
    case 200:                       // 'or'
 
7493
    case 201:                       // 'order'
 
7494
    case 203:                       // 'ordering'
 
7495
    case 218:                       // 'rename'
 
7496
    case 219:                       // 'replace'
 
7497
    case 220:                       // 'return'
 
7498
    case 221:                       // 'returning'
 
7499
    case 222:                       // 'revalidation'
 
7500
    case 224:                       // 'satisfies'
 
7501
    case 225:                       // 'schema'
 
7502
    case 226:                       // 'schema-attribute'
 
7503
    case 227:                       // 'schema-element'
 
7504
    case 228:                       // 'score'
 
7505
    case 234:                       // 'sliding'
 
7506
    case 235:                       // 'some'
 
7507
    case 236:                       // 'stable'
 
7508
    case 237:                       // 'start'
 
7509
    case 240:                       // 'strict'
 
7510
    case 248:                       // 'to'
 
7511
    case 249:                       // 'treat'
 
7512
    case 250:                       // 'try'
 
7513
    case 251:                       // 'tumbling'
 
7514
    case 252:                       // 'type'
 
7515
    case 254:                       // 'union'
 
7516
    case 257:                       // 'updating'
 
7517
    case 260:                       // 'validate'
 
7518
    case 261:                       // 'value'
 
7519
    case 262:                       // 'variable'
 
7520
    case 263:                       // 'version'
 
7521
    case 266:                       // 'where'
 
7522
    case 267:                       // 'while'
 
7523
    case 270:                       // 'with'
 
7524
    case 274:                       // 'xquery'
 
7525
      lookahead2W(242);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
7526
      break;
 
7527
    default:
 
7528
      lk = l1;
 
7529
    }
 
7530
    if (lk == 17486                 // 'array' '('
 
7531
     || lk == 17575                 // 'json-item' '('
 
7532
     || lk == 17602                 // 'object' '('
 
7533
     || lk == 35922                 // 'attribute' 'after'
 
7534
     || lk == 35961                 // 'element' 'after'
 
7535
     || lk == 36024                 // 'namespace' 'after'
 
7536
     || lk == 36056                 // 'processing-instruction' 'after'
 
7537
     || lk == 38482                 // 'attribute' 'and'
 
7538
     || lk == 38521                 // 'element' 'and'
 
7539
     || lk == 38584                 // 'namespace' 'and'
 
7540
     || lk == 38616                 // 'processing-instruction' 'and'
 
7541
     || lk == 40530                 // 'attribute' 'as'
 
7542
     || lk == 40569                 // 'element' 'as'
 
7543
     || lk == 40632                 // 'namespace' 'as'
 
7544
     || lk == 40664                 // 'processing-instruction' 'as'
 
7545
     || lk == 41042                 // 'attribute' 'ascending'
 
7546
     || lk == 41081                 // 'element' 'ascending'
 
7547
     || lk == 41144                 // 'namespace' 'ascending'
 
7548
     || lk == 41176                 // 'processing-instruction' 'ascending'
 
7549
     || lk == 41554                 // 'attribute' 'at'
 
7550
     || lk == 41593                 // 'element' 'at'
 
7551
     || lk == 41656                 // 'namespace' 'at'
 
7552
     || lk == 41688                 // 'processing-instruction' 'at'
 
7553
     || lk == 43090                 // 'attribute' 'before'
 
7554
     || lk == 43129                 // 'element' 'before'
 
7555
     || lk == 43192                 // 'namespace' 'before'
 
7556
     || lk == 43224                 // 'processing-instruction' 'before'
 
7557
     || lk == 45138                 // 'attribute' 'case'
 
7558
     || lk == 45177                 // 'element' 'case'
 
7559
     || lk == 45240                 // 'namespace' 'case'
 
7560
     || lk == 45272                 // 'processing-instruction' 'case'
 
7561
     || lk == 45650                 // 'attribute' 'cast'
 
7562
     || lk == 45689                 // 'element' 'cast'
 
7563
     || lk == 45752                 // 'namespace' 'cast'
 
7564
     || lk == 45784                 // 'processing-instruction' 'cast'
 
7565
     || lk == 46162                 // 'attribute' 'castable'
 
7566
     || lk == 46201                 // 'element' 'castable'
 
7567
     || lk == 46264                 // 'namespace' 'castable'
 
7568
     || lk == 46296                 // 'processing-instruction' 'castable'
 
7569
     || lk == 48210                 // 'attribute' 'collation'
 
7570
     || lk == 48249                 // 'element' 'collation'
 
7571
     || lk == 48312                 // 'namespace' 'collation'
 
7572
     || lk == 48344                 // 'processing-instruction' 'collation'
 
7573
     || lk == 53842                 // 'attribute' 'count'
 
7574
     || lk == 53881                 // 'element' 'count'
 
7575
     || lk == 53944                 // 'namespace' 'count'
 
7576
     || lk == 53976                 // 'processing-instruction' 'count'
 
7577
     || lk == 55890                 // 'attribute' 'default'
 
7578
     || lk == 55929                 // 'element' 'default'
 
7579
     || lk == 55992                 // 'namespace' 'default'
 
7580
     || lk == 56024                 // 'processing-instruction' 'default'
 
7581
     || lk == 57938                 // 'attribute' 'descending'
 
7582
     || lk == 57977                 // 'element' 'descending'
 
7583
     || lk == 58040                 // 'namespace' 'descending'
 
7584
     || lk == 58072                 // 'processing-instruction' 'descending'
 
7585
     || lk == 60498                 // 'attribute' 'div'
 
7586
     || lk == 60537                 // 'element' 'div'
 
7587
     || lk == 60600                 // 'namespace' 'div'
 
7588
     || lk == 60632                 // 'processing-instruction' 'div'
 
7589
     || lk == 62546                 // 'attribute' 'else'
 
7590
     || lk == 62585                 // 'element' 'else'
 
7591
     || lk == 62648                 // 'namespace' 'else'
 
7592
     || lk == 62680                 // 'processing-instruction' 'else'
 
7593
     || lk == 63058                 // 'attribute' 'empty'
 
7594
     || lk == 63097                 // 'element' 'empty'
 
7595
     || lk == 63160                 // 'namespace' 'empty'
 
7596
     || lk == 63192                 // 'processing-instruction' 'empty'
 
7597
     || lk == 64594                 // 'attribute' 'end'
 
7598
     || lk == 64633                 // 'element' 'end'
 
7599
     || lk == 64696                 // 'namespace' 'end'
 
7600
     || lk == 64728                 // 'processing-instruction' 'end'
 
7601
     || lk == 65618                 // 'attribute' 'eq'
 
7602
     || lk == 65657                 // 'element' 'eq'
 
7603
     || lk == 65720                 // 'namespace' 'eq'
 
7604
     || lk == 65752                 // 'processing-instruction' 'eq'
 
7605
     || lk == 67154                 // 'attribute' 'except'
 
7606
     || lk == 67193                 // 'element' 'except'
 
7607
     || lk == 67256                 // 'namespace' 'except'
 
7608
     || lk == 67288                 // 'processing-instruction' 'except'
 
7609
     || lk == 70226                 // 'attribute' 'for'
 
7610
     || lk == 70265                 // 'element' 'for'
 
7611
     || lk == 70328                 // 'namespace' 'for'
 
7612
     || lk == 70360                 // 'processing-instruction' 'for'
 
7613
     || lk == 74834                 // 'attribute' 'ge'
 
7614
     || lk == 74873                 // 'element' 'ge'
 
7615
     || lk == 74936                 // 'namespace' 'ge'
 
7616
     || lk == 74968                 // 'processing-instruction' 'ge'
 
7617
     || lk == 75858                 // 'attribute' 'group'
 
7618
     || lk == 75897                 // 'element' 'group'
 
7619
     || lk == 75960                 // 'namespace' 'group'
 
7620
     || lk == 75992                 // 'processing-instruction' 'group'
 
7621
     || lk == 76882                 // 'attribute' 'gt'
 
7622
     || lk == 76921                 // 'element' 'gt'
 
7623
     || lk == 76984                 // 'namespace' 'gt'
 
7624
     || lk == 77016                 // 'processing-instruction' 'gt'
 
7625
     || lk == 77394                 // 'attribute' 'idiv'
 
7626
     || lk == 77433                 // 'element' 'idiv'
 
7627
     || lk == 77496                 // 'namespace' 'idiv'
 
7628
     || lk == 77528                 // 'processing-instruction' 'idiv'
 
7629
     || lk == 82002                 // 'attribute' 'instance'
 
7630
     || lk == 82041                 // 'element' 'instance'
 
7631
     || lk == 82104                 // 'namespace' 'instance'
 
7632
     || lk == 82136                 // 'processing-instruction' 'instance'
 
7633
     || lk == 83026                 // 'attribute' 'intersect'
 
7634
     || lk == 83065                 // 'element' 'intersect'
 
7635
     || lk == 83128                 // 'namespace' 'intersect'
 
7636
     || lk == 83160                 // 'processing-instruction' 'intersect'
 
7637
     || lk == 83538                 // 'attribute' 'into'
 
7638
     || lk == 83577                 // 'element' 'into'
 
7639
     || lk == 83640                 // 'namespace' 'into'
 
7640
     || lk == 83672                 // 'processing-instruction' 'into'
 
7641
     || lk == 84050                 // 'attribute' 'is'
 
7642
     || lk == 84089                 // 'element' 'is'
 
7643
     || lk == 84152                 // 'namespace' 'is'
 
7644
     || lk == 84184                 // 'processing-instruction' 'is'
 
7645
     || lk == 88146                 // 'attribute' 'le'
 
7646
     || lk == 88185                 // 'element' 'le'
 
7647
     || lk == 88248                 // 'namespace' 'le'
 
7648
     || lk == 88280                 // 'processing-instruction' 'le'
 
7649
     || lk == 89170                 // 'attribute' 'let'
 
7650
     || lk == 89209                 // 'element' 'let'
 
7651
     || lk == 89272                 // 'namespace' 'let'
 
7652
     || lk == 89304                 // 'processing-instruction' 'let'
 
7653
     || lk == 91218                 // 'attribute' 'lt'
 
7654
     || lk == 91257                 // 'element' 'lt'
 
7655
     || lk == 91320                 // 'namespace' 'lt'
 
7656
     || lk == 91352                 // 'processing-instruction' 'lt'
 
7657
     || lk == 92242                 // 'attribute' 'mod'
 
7658
     || lk == 92281                 // 'element' 'mod'
 
7659
     || lk == 92344                 // 'namespace' 'mod'
 
7660
     || lk == 92376                 // 'processing-instruction' 'mod'
 
7661
     || lk == 92754                 // 'attribute' 'modify'
 
7662
     || lk == 92793                 // 'element' 'modify'
 
7663
     || lk == 92856                 // 'namespace' 'modify'
 
7664
     || lk == 92888                 // 'processing-instruction' 'modify'
 
7665
     || lk == 95314                 // 'attribute' 'ne'
 
7666
     || lk == 95353                 // 'element' 'ne'
 
7667
     || lk == 95416                 // 'namespace' 'ne'
 
7668
     || lk == 95448                 // 'processing-instruction' 'ne'
 
7669
     || lk == 101458                // 'attribute' 'only'
 
7670
     || lk == 101497                // 'element' 'only'
 
7671
     || lk == 101560                // 'namespace' 'only'
 
7672
     || lk == 101592                // 'processing-instruction' 'only'
 
7673
     || lk == 102482                // 'attribute' 'or'
 
7674
     || lk == 102521                // 'element' 'or'
 
7675
     || lk == 102584                // 'namespace' 'or'
 
7676
     || lk == 102616                // 'processing-instruction' 'or'
 
7677
     || lk == 102994                // 'attribute' 'order'
 
7678
     || lk == 103033                // 'element' 'order'
 
7679
     || lk == 103096                // 'namespace' 'order'
 
7680
     || lk == 103128                // 'processing-instruction' 'order'
 
7681
     || lk == 112722                // 'attribute' 'return'
 
7682
     || lk == 112761                // 'element' 'return'
 
7683
     || lk == 112824                // 'namespace' 'return'
 
7684
     || lk == 112856                // 'processing-instruction' 'return'
 
7685
     || lk == 114770                // 'attribute' 'satisfies'
 
7686
     || lk == 114809                // 'element' 'satisfies'
 
7687
     || lk == 114872                // 'namespace' 'satisfies'
 
7688
     || lk == 114904                // 'processing-instruction' 'satisfies'
 
7689
     || lk == 120914                // 'attribute' 'stable'
 
7690
     || lk == 120953                // 'element' 'stable'
 
7691
     || lk == 121016                // 'namespace' 'stable'
 
7692
     || lk == 121048                // 'processing-instruction' 'stable'
 
7693
     || lk == 121426                // 'attribute' 'start'
 
7694
     || lk == 121465                // 'element' 'start'
 
7695
     || lk == 121528                // 'namespace' 'start'
 
7696
     || lk == 121560                // 'processing-instruction' 'start'
 
7697
     || lk == 127058                // 'attribute' 'to'
 
7698
     || lk == 127097                // 'element' 'to'
 
7699
     || lk == 127160                // 'namespace' 'to'
 
7700
     || lk == 127192                // 'processing-instruction' 'to'
 
7701
     || lk == 127570                // 'attribute' 'treat'
 
7702
     || lk == 127609                // 'element' 'treat'
 
7703
     || lk == 127672                // 'namespace' 'treat'
 
7704
     || lk == 127704                // 'processing-instruction' 'treat'
 
7705
     || lk == 130130                // 'attribute' 'union'
 
7706
     || lk == 130169                // 'element' 'union'
 
7707
     || lk == 130232                // 'namespace' 'union'
 
7708
     || lk == 130264                // 'processing-instruction' 'union'
 
7709
     || lk == 136274                // 'attribute' 'where'
 
7710
     || lk == 136313                // 'element' 'where'
 
7711
     || lk == 136376                // 'namespace' 'where'
 
7712
     || lk == 136408                // 'processing-instruction' 'where'
 
7713
     || lk == 138322                // 'attribute' 'with'
 
7714
     || lk == 138361                // 'element' 'with'
 
7715
     || lk == 138424                // 'namespace' 'with'
 
7716
     || lk == 138456)               // 'processing-instruction' 'with'
 
7717
    {
 
7718
      lk = memoized(3, e0);
 
7719
      if (lk == 0)
 
7720
      {
 
7721
        var b0A = b0; var e0A = e0; var l1A = l1;
 
7722
        var b1A = b1; var e1A = e1; var l2A = l2;
 
7723
        var b2A = b2; var e2A = e2;
 
7724
        try
 
7725
        {
 
7726
          try_PostfixExpr();
 
7727
          memoize(3, e0A, -1);
 
7728
          lk = -3;
 
7729
        }
 
7730
        catch (p1A)
 
7731
        {
 
7732
          lk = -2;
 
7733
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
7734
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
7735
          b2 = b2A; e2 = e2A; end = e2A; }}
 
7736
          memoize(3, e0A, -2);
 
7737
        }
 
7738
      }
 
7739
    }
 
7740
    switch (lk)
 
7741
    {
 
7742
    case -1:
 
7743
    case 8:                         // IntegerLiteral
 
7744
    case 9:                         // DecimalLiteral
 
7745
    case 10:                        // DoubleLiteral
 
7746
    case 11:                        // StringLiteral
 
7747
    case 31:                        // '$'
 
7748
    case 32:                        // '%'
 
7749
    case 34:                        // '('
 
7750
    case 44:                        // '.'
 
7751
    case 54:                        // '<'
 
7752
    case 55:                        // '<!--'
 
7753
    case 59:                        // '<?'
 
7754
    case 68:                        // '['
 
7755
    case 276:                       // '{'
 
7756
    case 278:                       // '{|'
 
7757
    case 3154:                      // 'attribute' EQName^Token
 
7758
    case 3193:                      // 'element' EQName^Token
 
7759
    case 9912:                      // 'namespace' NCName^Token
 
7760
    case 9944:                      // 'processing-instruction' NCName^Token
 
7761
    case 14854:                     // EQName^Token '#'
 
7762
    case 14918:                     // 'after' '#'
 
7763
    case 14920:                     // 'allowing' '#'
 
7764
    case 14921:                     // 'ancestor' '#'
 
7765
    case 14922:                     // 'ancestor-or-self' '#'
 
7766
    case 14923:                     // 'and' '#'
 
7767
    case 14926:                     // 'array' '#'
 
7768
    case 14927:                     // 'as' '#'
 
7769
    case 14928:                     // 'ascending' '#'
 
7770
    case 14929:                     // 'at' '#'
 
7771
    case 14930:                     // 'attribute' '#'
 
7772
    case 14931:                     // 'base-uri' '#'
 
7773
    case 14932:                     // 'before' '#'
 
7774
    case 14933:                     // 'boundary-space' '#'
 
7775
    case 14934:                     // 'break' '#'
 
7776
    case 14936:                     // 'case' '#'
 
7777
    case 14937:                     // 'cast' '#'
 
7778
    case 14938:                     // 'castable' '#'
 
7779
    case 14939:                     // 'catch' '#'
 
7780
    case 14941:                     // 'child' '#'
 
7781
    case 14942:                     // 'collation' '#'
 
7782
    case 14944:                     // 'comment' '#'
 
7783
    case 14945:                     // 'constraint' '#'
 
7784
    case 14946:                     // 'construction' '#'
 
7785
    case 14949:                     // 'context' '#'
 
7786
    case 14950:                     // 'continue' '#'
 
7787
    case 14951:                     // 'copy' '#'
 
7788
    case 14952:                     // 'copy-namespaces' '#'
 
7789
    case 14953:                     // 'count' '#'
 
7790
    case 14954:                     // 'decimal-format' '#'
 
7791
    case 14956:                     // 'declare' '#'
 
7792
    case 14957:                     // 'default' '#'
 
7793
    case 14958:                     // 'delete' '#'
 
7794
    case 14959:                     // 'descendant' '#'
 
7795
    case 14960:                     // 'descendant-or-self' '#'
 
7796
    case 14961:                     // 'descending' '#'
 
7797
    case 14966:                     // 'div' '#'
 
7798
    case 14967:                     // 'document' '#'
 
7799
    case 14968:                     // 'document-node' '#'
 
7800
    case 14969:                     // 'element' '#'
 
7801
    case 14970:                     // 'else' '#'
 
7802
    case 14971:                     // 'empty' '#'
 
7803
    case 14972:                     // 'empty-sequence' '#'
 
7804
    case 14973:                     // 'encoding' '#'
 
7805
    case 14974:                     // 'end' '#'
 
7806
    case 14976:                     // 'eq' '#'
 
7807
    case 14977:                     // 'every' '#'
 
7808
    case 14979:                     // 'except' '#'
 
7809
    case 14980:                     // 'exit' '#'
 
7810
    case 14981:                     // 'external' '#'
 
7811
    case 14982:                     // 'first' '#'
 
7812
    case 14983:                     // 'following' '#'
 
7813
    case 14984:                     // 'following-sibling' '#'
 
7814
    case 14985:                     // 'for' '#'
 
7815
    case 14989:                     // 'ft-option' '#'
 
7816
    case 14993:                     // 'function' '#'
 
7817
    case 14994:                     // 'ge' '#'
 
7818
    case 14996:                     // 'group' '#'
 
7819
    case 14998:                     // 'gt' '#'
 
7820
    case 14999:                     // 'idiv' '#'
 
7821
    case 15000:                     // 'if' '#'
 
7822
    case 15001:                     // 'import' '#'
 
7823
    case 15002:                     // 'in' '#'
 
7824
    case 15003:                     // 'index' '#'
 
7825
    case 15007:                     // 'insert' '#'
 
7826
    case 15008:                     // 'instance' '#'
 
7827
    case 15009:                     // 'integrity' '#'
 
7828
    case 15010:                     // 'intersect' '#'
 
7829
    case 15011:                     // 'into' '#'
 
7830
    case 15012:                     // 'is' '#'
 
7831
    case 15013:                     // 'item' '#'
 
7832
    case 15015:                     // 'json-item' '#'
 
7833
    case 15018:                     // 'last' '#'
 
7834
    case 15019:                     // 'lax' '#'
 
7835
    case 15020:                     // 'le' '#'
 
7836
    case 15022:                     // 'let' '#'
 
7837
    case 15024:                     // 'loop' '#'
 
7838
    case 15026:                     // 'lt' '#'
 
7839
    case 15028:                     // 'mod' '#'
 
7840
    case 15029:                     // 'modify' '#'
 
7841
    case 15030:                     // 'module' '#'
 
7842
    case 15032:                     // 'namespace' '#'
 
7843
    case 15033:                     // 'namespace-node' '#'
 
7844
    case 15034:                     // 'ne' '#'
 
7845
    case 15039:                     // 'node' '#'
 
7846
    case 15040:                     // 'nodes' '#'
 
7847
    case 15042:                     // 'object' '#'
 
7848
    case 15046:                     // 'only' '#'
 
7849
    case 15047:                     // 'option' '#'
 
7850
    case 15048:                     // 'or' '#'
 
7851
    case 15049:                     // 'order' '#'
 
7852
    case 15050:                     // 'ordered' '#'
 
7853
    case 15051:                     // 'ordering' '#'
 
7854
    case 15054:                     // 'parent' '#'
 
7855
    case 15060:                     // 'preceding' '#'
 
7856
    case 15061:                     // 'preceding-sibling' '#'
 
7857
    case 15064:                     // 'processing-instruction' '#'
 
7858
    case 15066:                     // 'rename' '#'
 
7859
    case 15067:                     // 'replace' '#'
 
7860
    case 15068:                     // 'return' '#'
 
7861
    case 15069:                     // 'returning' '#'
 
7862
    case 15070:                     // 'revalidation' '#'
 
7863
    case 15072:                     // 'satisfies' '#'
 
7864
    case 15073:                     // 'schema' '#'
 
7865
    case 15074:                     // 'schema-attribute' '#'
 
7866
    case 15075:                     // 'schema-element' '#'
 
7867
    case 15076:                     // 'score' '#'
 
7868
    case 15077:                     // 'self' '#'
 
7869
    case 15082:                     // 'sliding' '#'
 
7870
    case 15083:                     // 'some' '#'
 
7871
    case 15084:                     // 'stable' '#'
 
7872
    case 15085:                     // 'start' '#'
 
7873
    case 15088:                     // 'strict' '#'
 
7874
    case 15091:                     // 'switch' '#'
 
7875
    case 15092:                     // 'text' '#'
 
7876
    case 15096:                     // 'to' '#'
 
7877
    case 15097:                     // 'treat' '#'
 
7878
    case 15098:                     // 'try' '#'
 
7879
    case 15099:                     // 'tumbling' '#'
 
7880
    case 15100:                     // 'type' '#'
 
7881
    case 15101:                     // 'typeswitch' '#'
 
7882
    case 15102:                     // 'union' '#'
 
7883
    case 15104:                     // 'unordered' '#'
 
7884
    case 15105:                     // 'updating' '#'
 
7885
    case 15108:                     // 'validate' '#'
 
7886
    case 15109:                     // 'value' '#'
 
7887
    case 15110:                     // 'variable' '#'
 
7888
    case 15111:                     // 'version' '#'
 
7889
    case 15114:                     // 'where' '#'
 
7890
    case 15115:                     // 'while' '#'
 
7891
    case 15118:                     // 'with' '#'
 
7892
    case 15122:                     // 'xquery' '#'
 
7893
    case 17414:                     // EQName^Token '('
 
7894
    case 17478:                     // 'after' '('
 
7895
    case 17480:                     // 'allowing' '('
 
7896
    case 17481:                     // 'ancestor' '('
 
7897
    case 17482:                     // 'ancestor-or-self' '('
 
7898
    case 17483:                     // 'and' '('
 
7899
    case 17487:                     // 'as' '('
 
7900
    case 17488:                     // 'ascending' '('
 
7901
    case 17489:                     // 'at' '('
 
7902
    case 17491:                     // 'base-uri' '('
 
7903
    case 17492:                     // 'before' '('
 
7904
    case 17493:                     // 'boundary-space' '('
 
7905
    case 17494:                     // 'break' '('
 
7906
    case 17496:                     // 'case' '('
 
7907
    case 17497:                     // 'cast' '('
 
7908
    case 17498:                     // 'castable' '('
 
7909
    case 17499:                     // 'catch' '('
 
7910
    case 17501:                     // 'child' '('
 
7911
    case 17502:                     // 'collation' '('
 
7912
    case 17505:                     // 'constraint' '('
 
7913
    case 17506:                     // 'construction' '('
 
7914
    case 17509:                     // 'context' '('
 
7915
    case 17510:                     // 'continue' '('
 
7916
    case 17511:                     // 'copy' '('
 
7917
    case 17512:                     // 'copy-namespaces' '('
 
7918
    case 17513:                     // 'count' '('
 
7919
    case 17514:                     // 'decimal-format' '('
 
7920
    case 17516:                     // 'declare' '('
 
7921
    case 17517:                     // 'default' '('
 
7922
    case 17518:                     // 'delete' '('
 
7923
    case 17519:                     // 'descendant' '('
 
7924
    case 17520:                     // 'descendant-or-self' '('
 
7925
    case 17521:                     // 'descending' '('
 
7926
    case 17526:                     // 'div' '('
 
7927
    case 17527:                     // 'document' '('
 
7928
    case 17530:                     // 'else' '('
 
7929
    case 17531:                     // 'empty' '('
 
7930
    case 17533:                     // 'encoding' '('
 
7931
    case 17534:                     // 'end' '('
 
7932
    case 17536:                     // 'eq' '('
 
7933
    case 17537:                     // 'every' '('
 
7934
    case 17539:                     // 'except' '('
 
7935
    case 17540:                     // 'exit' '('
 
7936
    case 17541:                     // 'external' '('
 
7937
    case 17542:                     // 'first' '('
 
7938
    case 17543:                     // 'following' '('
 
7939
    case 17544:                     // 'following-sibling' '('
 
7940
    case 17545:                     // 'for' '('
 
7941
    case 17549:                     // 'ft-option' '('
 
7942
    case 17553:                     // 'function' '('
 
7943
    case 17554:                     // 'ge' '('
 
7944
    case 17556:                     // 'group' '('
 
7945
    case 17558:                     // 'gt' '('
 
7946
    case 17559:                     // 'idiv' '('
 
7947
    case 17561:                     // 'import' '('
 
7948
    case 17562:                     // 'in' '('
 
7949
    case 17563:                     // 'index' '('
 
7950
    case 17567:                     // 'insert' '('
 
7951
    case 17568:                     // 'instance' '('
 
7952
    case 17569:                     // 'integrity' '('
 
7953
    case 17570:                     // 'intersect' '('
 
7954
    case 17571:                     // 'into' '('
 
7955
    case 17572:                     // 'is' '('
 
7956
    case 17578:                     // 'last' '('
 
7957
    case 17579:                     // 'lax' '('
 
7958
    case 17580:                     // 'le' '('
 
7959
    case 17582:                     // 'let' '('
 
7960
    case 17584:                     // 'loop' '('
 
7961
    case 17586:                     // 'lt' '('
 
7962
    case 17588:                     // 'mod' '('
 
7963
    case 17589:                     // 'modify' '('
 
7964
    case 17590:                     // 'module' '('
 
7965
    case 17592:                     // 'namespace' '('
 
7966
    case 17594:                     // 'ne' '('
 
7967
    case 17600:                     // 'nodes' '('
 
7968
    case 17606:                     // 'only' '('
 
7969
    case 17607:                     // 'option' '('
 
7970
    case 17608:                     // 'or' '('
 
7971
    case 17609:                     // 'order' '('
 
7972
    case 17610:                     // 'ordered' '('
 
7973
    case 17611:                     // 'ordering' '('
 
7974
    case 17614:                     // 'parent' '('
 
7975
    case 17620:                     // 'preceding' '('
 
7976
    case 17621:                     // 'preceding-sibling' '('
 
7977
    case 17626:                     // 'rename' '('
 
7978
    case 17627:                     // 'replace' '('
 
7979
    case 17628:                     // 'return' '('
 
7980
    case 17629:                     // 'returning' '('
 
7981
    case 17630:                     // 'revalidation' '('
 
7982
    case 17632:                     // 'satisfies' '('
 
7983
    case 17633:                     // 'schema' '('
 
7984
    case 17636:                     // 'score' '('
 
7985
    case 17637:                     // 'self' '('
 
7986
    case 17642:                     // 'sliding' '('
 
7987
    case 17643:                     // 'some' '('
 
7988
    case 17644:                     // 'stable' '('
 
7989
    case 17645:                     // 'start' '('
 
7990
    case 17648:                     // 'strict' '('
 
7991
    case 17656:                     // 'to' '('
 
7992
    case 17657:                     // 'treat' '('
 
7993
    case 17658:                     // 'try' '('
 
7994
    case 17659:                     // 'tumbling' '('
 
7995
    case 17660:                     // 'type' '('
 
7996
    case 17662:                     // 'union' '('
 
7997
    case 17664:                     // 'unordered' '('
 
7998
    case 17665:                     // 'updating' '('
 
7999
    case 17668:                     // 'validate' '('
 
8000
    case 17669:                     // 'value' '('
 
8001
    case 17670:                     // 'variable' '('
 
8002
    case 17671:                     // 'version' '('
 
8003
    case 17674:                     // 'where' '('
 
8004
    case 17675:                     // 'while' '('
 
8005
    case 17678:                     // 'with' '('
 
8006
    case 17682:                     // 'xquery' '('
 
8007
    case 36946:                     // 'attribute' 'allowing'
 
8008
    case 36985:                     // 'element' 'allowing'
 
8009
    case 37048:                     // 'namespace' 'allowing'
 
8010
    case 37080:                     // 'processing-instruction' 'allowing'
 
8011
    case 37458:                     // 'attribute' 'ancestor'
 
8012
    case 37497:                     // 'element' 'ancestor'
 
8013
    case 37560:                     // 'namespace' 'ancestor'
 
8014
    case 37592:                     // 'processing-instruction' 'ancestor'
 
8015
    case 37970:                     // 'attribute' 'ancestor-or-self'
 
8016
    case 38009:                     // 'element' 'ancestor-or-self'
 
8017
    case 38072:                     // 'namespace' 'ancestor-or-self'
 
8018
    case 38104:                     // 'processing-instruction' 'ancestor-or-self'
 
8019
    case 40018:                     // 'attribute' 'array'
 
8020
    case 40057:                     // 'element' 'array'
 
8021
    case 42066:                     // 'attribute' 'attribute'
 
8022
    case 42105:                     // 'element' 'attribute'
 
8023
    case 42168:                     // 'namespace' 'attribute'
 
8024
    case 42200:                     // 'processing-instruction' 'attribute'
 
8025
    case 42578:                     // 'attribute' 'base-uri'
 
8026
    case 42617:                     // 'element' 'base-uri'
 
8027
    case 42680:                     // 'namespace' 'base-uri'
 
8028
    case 42712:                     // 'processing-instruction' 'base-uri'
 
8029
    case 43602:                     // 'attribute' 'boundary-space'
 
8030
    case 43641:                     // 'element' 'boundary-space'
 
8031
    case 43704:                     // 'namespace' 'boundary-space'
 
8032
    case 43736:                     // 'processing-instruction' 'boundary-space'
 
8033
    case 44114:                     // 'attribute' 'break'
 
8034
    case 44153:                     // 'element' 'break'
 
8035
    case 44216:                     // 'namespace' 'break'
 
8036
    case 44248:                     // 'processing-instruction' 'break'
 
8037
    case 46674:                     // 'attribute' 'catch'
 
8038
    case 46713:                     // 'element' 'catch'
 
8039
    case 46776:                     // 'namespace' 'catch'
 
8040
    case 46808:                     // 'processing-instruction' 'catch'
 
8041
    case 47698:                     // 'attribute' 'child'
 
8042
    case 47737:                     // 'element' 'child'
 
8043
    case 47800:                     // 'namespace' 'child'
 
8044
    case 47832:                     // 'processing-instruction' 'child'
 
8045
    case 49234:                     // 'attribute' 'comment'
 
8046
    case 49273:                     // 'element' 'comment'
 
8047
    case 49336:                     // 'namespace' 'comment'
 
8048
    case 49368:                     // 'processing-instruction' 'comment'
 
8049
    case 49746:                     // 'attribute' 'constraint'
 
8050
    case 49785:                     // 'element' 'constraint'
 
8051
    case 49848:                     // 'namespace' 'constraint'
 
8052
    case 49880:                     // 'processing-instruction' 'constraint'
 
8053
    case 50258:                     // 'attribute' 'construction'
 
8054
    case 50297:                     // 'element' 'construction'
 
8055
    case 50360:                     // 'namespace' 'construction'
 
8056
    case 50392:                     // 'processing-instruction' 'construction'
 
8057
    case 51794:                     // 'attribute' 'context'
 
8058
    case 51833:                     // 'element' 'context'
 
8059
    case 51896:                     // 'namespace' 'context'
 
8060
    case 51928:                     // 'processing-instruction' 'context'
 
8061
    case 52306:                     // 'attribute' 'continue'
 
8062
    case 52345:                     // 'element' 'continue'
 
8063
    case 52408:                     // 'namespace' 'continue'
 
8064
    case 52440:                     // 'processing-instruction' 'continue'
 
8065
    case 52818:                     // 'attribute' 'copy'
 
8066
    case 52857:                     // 'element' 'copy'
 
8067
    case 52920:                     // 'namespace' 'copy'
 
8068
    case 52952:                     // 'processing-instruction' 'copy'
 
8069
    case 53330:                     // 'attribute' 'copy-namespaces'
 
8070
    case 53369:                     // 'element' 'copy-namespaces'
 
8071
    case 53432:                     // 'namespace' 'copy-namespaces'
 
8072
    case 53464:                     // 'processing-instruction' 'copy-namespaces'
 
8073
    case 54354:                     // 'attribute' 'decimal-format'
 
8074
    case 54393:                     // 'element' 'decimal-format'
 
8075
    case 54456:                     // 'namespace' 'decimal-format'
 
8076
    case 54488:                     // 'processing-instruction' 'decimal-format'
 
8077
    case 55378:                     // 'attribute' 'declare'
 
8078
    case 55417:                     // 'element' 'declare'
 
8079
    case 55480:                     // 'namespace' 'declare'
 
8080
    case 55512:                     // 'processing-instruction' 'declare'
 
8081
    case 56402:                     // 'attribute' 'delete'
 
8082
    case 56441:                     // 'element' 'delete'
 
8083
    case 56504:                     // 'namespace' 'delete'
 
8084
    case 56536:                     // 'processing-instruction' 'delete'
 
8085
    case 56914:                     // 'attribute' 'descendant'
 
8086
    case 56953:                     // 'element' 'descendant'
 
8087
    case 57016:                     // 'namespace' 'descendant'
 
8088
    case 57048:                     // 'processing-instruction' 'descendant'
 
8089
    case 57426:                     // 'attribute' 'descendant-or-self'
 
8090
    case 57465:                     // 'element' 'descendant-or-self'
 
8091
    case 57528:                     // 'namespace' 'descendant-or-self'
 
8092
    case 57560:                     // 'processing-instruction' 'descendant-or-self'
 
8093
    case 61010:                     // 'attribute' 'document'
 
8094
    case 61049:                     // 'element' 'document'
 
8095
    case 61112:                     // 'namespace' 'document'
 
8096
    case 61144:                     // 'processing-instruction' 'document'
 
8097
    case 61522:                     // 'attribute' 'document-node'
 
8098
    case 61561:                     // 'element' 'document-node'
 
8099
    case 61624:                     // 'namespace' 'document-node'
 
8100
    case 61656:                     // 'processing-instruction' 'document-node'
 
8101
    case 62034:                     // 'attribute' 'element'
 
8102
    case 62073:                     // 'element' 'element'
 
8103
    case 62136:                     // 'namespace' 'element'
 
8104
    case 62168:                     // 'processing-instruction' 'element'
 
8105
    case 63570:                     // 'attribute' 'empty-sequence'
 
8106
    case 63609:                     // 'element' 'empty-sequence'
 
8107
    case 63672:                     // 'namespace' 'empty-sequence'
 
8108
    case 63704:                     // 'processing-instruction' 'empty-sequence'
 
8109
    case 64082:                     // 'attribute' 'encoding'
 
8110
    case 64121:                     // 'element' 'encoding'
 
8111
    case 64184:                     // 'namespace' 'encoding'
 
8112
    case 64216:                     // 'processing-instruction' 'encoding'
 
8113
    case 66130:                     // 'attribute' 'every'
 
8114
    case 66169:                     // 'element' 'every'
 
8115
    case 66232:                     // 'namespace' 'every'
 
8116
    case 66264:                     // 'processing-instruction' 'every'
 
8117
    case 67666:                     // 'attribute' 'exit'
 
8118
    case 67705:                     // 'element' 'exit'
 
8119
    case 67768:                     // 'namespace' 'exit'
 
8120
    case 67800:                     // 'processing-instruction' 'exit'
 
8121
    case 68178:                     // 'attribute' 'external'
 
8122
    case 68217:                     // 'element' 'external'
 
8123
    case 68280:                     // 'namespace' 'external'
 
8124
    case 68312:                     // 'processing-instruction' 'external'
 
8125
    case 68690:                     // 'attribute' 'first'
 
8126
    case 68729:                     // 'element' 'first'
 
8127
    case 68792:                     // 'namespace' 'first'
 
8128
    case 68824:                     // 'processing-instruction' 'first'
 
8129
    case 69202:                     // 'attribute' 'following'
 
8130
    case 69241:                     // 'element' 'following'
 
8131
    case 69304:                     // 'namespace' 'following'
 
8132
    case 69336:                     // 'processing-instruction' 'following'
 
8133
    case 69714:                     // 'attribute' 'following-sibling'
 
8134
    case 69753:                     // 'element' 'following-sibling'
 
8135
    case 69816:                     // 'namespace' 'following-sibling'
 
8136
    case 69848:                     // 'processing-instruction' 'following-sibling'
 
8137
    case 72274:                     // 'attribute' 'ft-option'
 
8138
    case 72313:                     // 'element' 'ft-option'
 
8139
    case 72376:                     // 'namespace' 'ft-option'
 
8140
    case 72408:                     // 'processing-instruction' 'ft-option'
 
8141
    case 74322:                     // 'attribute' 'function'
 
8142
    case 74361:                     // 'element' 'function'
 
8143
    case 74424:                     // 'namespace' 'function'
 
8144
    case 74456:                     // 'processing-instruction' 'function'
 
8145
    case 77906:                     // 'attribute' 'if'
 
8146
    case 77945:                     // 'element' 'if'
 
8147
    case 78008:                     // 'namespace' 'if'
 
8148
    case 78040:                     // 'processing-instruction' 'if'
 
8149
    case 78418:                     // 'attribute' 'import'
 
8150
    case 78457:                     // 'element' 'import'
 
8151
    case 78520:                     // 'namespace' 'import'
 
8152
    case 78552:                     // 'processing-instruction' 'import'
 
8153
    case 78930:                     // 'attribute' 'in'
 
8154
    case 78969:                     // 'element' 'in'
 
8155
    case 79032:                     // 'namespace' 'in'
 
8156
    case 79064:                     // 'processing-instruction' 'in'
 
8157
    case 79442:                     // 'attribute' 'index'
 
8158
    case 79481:                     // 'element' 'index'
 
8159
    case 79544:                     // 'namespace' 'index'
 
8160
    case 79576:                     // 'processing-instruction' 'index'
 
8161
    case 81490:                     // 'attribute' 'insert'
 
8162
    case 81529:                     // 'element' 'insert'
 
8163
    case 81592:                     // 'namespace' 'insert'
 
8164
    case 81624:                     // 'processing-instruction' 'insert'
 
8165
    case 82514:                     // 'attribute' 'integrity'
 
8166
    case 82553:                     // 'element' 'integrity'
 
8167
    case 82616:                     // 'namespace' 'integrity'
 
8168
    case 82648:                     // 'processing-instruction' 'integrity'
 
8169
    case 84562:                     // 'attribute' 'item'
 
8170
    case 84601:                     // 'element' 'item'
 
8171
    case 84664:                     // 'namespace' 'item'
 
8172
    case 84696:                     // 'processing-instruction' 'item'
 
8173
    case 85586:                     // 'attribute' 'json-item'
 
8174
    case 85625:                     // 'element' 'json-item'
 
8175
    case 87122:                     // 'attribute' 'last'
 
8176
    case 87161:                     // 'element' 'last'
 
8177
    case 87224:                     // 'namespace' 'last'
 
8178
    case 87256:                     // 'processing-instruction' 'last'
 
8179
    case 87634:                     // 'attribute' 'lax'
 
8180
    case 87673:                     // 'element' 'lax'
 
8181
    case 87736:                     // 'namespace' 'lax'
 
8182
    case 87768:                     // 'processing-instruction' 'lax'
 
8183
    case 90194:                     // 'attribute' 'loop'
 
8184
    case 90233:                     // 'element' 'loop'
 
8185
    case 90296:                     // 'namespace' 'loop'
 
8186
    case 90328:                     // 'processing-instruction' 'loop'
 
8187
    case 93266:                     // 'attribute' 'module'
 
8188
    case 93305:                     // 'element' 'module'
 
8189
    case 93368:                     // 'namespace' 'module'
 
8190
    case 93400:                     // 'processing-instruction' 'module'
 
8191
    case 94290:                     // 'attribute' 'namespace'
 
8192
    case 94329:                     // 'element' 'namespace'
 
8193
    case 94392:                     // 'namespace' 'namespace'
 
8194
    case 94424:                     // 'processing-instruction' 'namespace'
 
8195
    case 94802:                     // 'attribute' 'namespace-node'
 
8196
    case 94841:                     // 'element' 'namespace-node'
 
8197
    case 94904:                     // 'namespace' 'namespace-node'
 
8198
    case 94936:                     // 'processing-instruction' 'namespace-node'
 
8199
    case 97874:                     // 'attribute' 'node'
 
8200
    case 97913:                     // 'element' 'node'
 
8201
    case 97976:                     // 'namespace' 'node'
 
8202
    case 98008:                     // 'processing-instruction' 'node'
 
8203
    case 98386:                     // 'attribute' 'nodes'
 
8204
    case 98425:                     // 'element' 'nodes'
 
8205
    case 98488:                     // 'namespace' 'nodes'
 
8206
    case 98520:                     // 'processing-instruction' 'nodes'
 
8207
    case 99410:                     // 'attribute' 'object'
 
8208
    case 99449:                     // 'element' 'object'
 
8209
    case 101970:                    // 'attribute' 'option'
 
8210
    case 102009:                    // 'element' 'option'
 
8211
    case 102072:                    // 'namespace' 'option'
 
8212
    case 102104:                    // 'processing-instruction' 'option'
 
8213
    case 103506:                    // 'attribute' 'ordered'
 
8214
    case 103545:                    // 'element' 'ordered'
 
8215
    case 103608:                    // 'namespace' 'ordered'
 
8216
    case 103640:                    // 'processing-instruction' 'ordered'
 
8217
    case 104018:                    // 'attribute' 'ordering'
 
8218
    case 104057:                    // 'element' 'ordering'
 
8219
    case 104120:                    // 'namespace' 'ordering'
 
8220
    case 104152:                    // 'processing-instruction' 'ordering'
 
8221
    case 105554:                    // 'attribute' 'parent'
 
8222
    case 105593:                    // 'element' 'parent'
 
8223
    case 105656:                    // 'namespace' 'parent'
 
8224
    case 105688:                    // 'processing-instruction' 'parent'
 
8225
    case 108626:                    // 'attribute' 'preceding'
 
8226
    case 108665:                    // 'element' 'preceding'
 
8227
    case 108728:                    // 'namespace' 'preceding'
 
8228
    case 108760:                    // 'processing-instruction' 'preceding'
 
8229
    case 109138:                    // 'attribute' 'preceding-sibling'
 
8230
    case 109177:                    // 'element' 'preceding-sibling'
 
8231
    case 109240:                    // 'namespace' 'preceding-sibling'
 
8232
    case 109272:                    // 'processing-instruction' 'preceding-sibling'
 
8233
    case 110674:                    // 'attribute' 'processing-instruction'
 
8234
    case 110713:                    // 'element' 'processing-instruction'
 
8235
    case 110776:                    // 'namespace' 'processing-instruction'
 
8236
    case 110808:                    // 'processing-instruction' 'processing-instruction'
 
8237
    case 111698:                    // 'attribute' 'rename'
 
8238
    case 111737:                    // 'element' 'rename'
 
8239
    case 111800:                    // 'namespace' 'rename'
 
8240
    case 111832:                    // 'processing-instruction' 'rename'
 
8241
    case 112210:                    // 'attribute' 'replace'
 
8242
    case 112249:                    // 'element' 'replace'
 
8243
    case 112312:                    // 'namespace' 'replace'
 
8244
    case 112344:                    // 'processing-instruction' 'replace'
 
8245
    case 113234:                    // 'attribute' 'returning'
 
8246
    case 113273:                    // 'element' 'returning'
 
8247
    case 113336:                    // 'namespace' 'returning'
 
8248
    case 113368:                    // 'processing-instruction' 'returning'
 
8249
    case 113746:                    // 'attribute' 'revalidation'
 
8250
    case 113785:                    // 'element' 'revalidation'
 
8251
    case 113848:                    // 'namespace' 'revalidation'
 
8252
    case 113880:                    // 'processing-instruction' 'revalidation'
 
8253
    case 115282:                    // 'attribute' 'schema'
 
8254
    case 115321:                    // 'element' 'schema'
 
8255
    case 115384:                    // 'namespace' 'schema'
 
8256
    case 115416:                    // 'processing-instruction' 'schema'
 
8257
    case 115794:                    // 'attribute' 'schema-attribute'
 
8258
    case 115833:                    // 'element' 'schema-attribute'
 
8259
    case 115896:                    // 'namespace' 'schema-attribute'
 
8260
    case 115928:                    // 'processing-instruction' 'schema-attribute'
 
8261
    case 116306:                    // 'attribute' 'schema-element'
 
8262
    case 116345:                    // 'element' 'schema-element'
 
8263
    case 116408:                    // 'namespace' 'schema-element'
 
8264
    case 116440:                    // 'processing-instruction' 'schema-element'
 
8265
    case 116818:                    // 'attribute' 'score'
 
8266
    case 116857:                    // 'element' 'score'
 
8267
    case 116920:                    // 'namespace' 'score'
 
8268
    case 116952:                    // 'processing-instruction' 'score'
 
8269
    case 117330:                    // 'attribute' 'self'
 
8270
    case 117369:                    // 'element' 'self'
 
8271
    case 117432:                    // 'namespace' 'self'
 
8272
    case 117464:                    // 'processing-instruction' 'self'
 
8273
    case 119890:                    // 'attribute' 'sliding'
 
8274
    case 119929:                    // 'element' 'sliding'
 
8275
    case 119992:                    // 'namespace' 'sliding'
 
8276
    case 120024:                    // 'processing-instruction' 'sliding'
 
8277
    case 120402:                    // 'attribute' 'some'
 
8278
    case 120441:                    // 'element' 'some'
 
8279
    case 120504:                    // 'namespace' 'some'
 
8280
    case 120536:                    // 'processing-instruction' 'some'
 
8281
    case 122962:                    // 'attribute' 'strict'
 
8282
    case 123001:                    // 'element' 'strict'
 
8283
    case 123064:                    // 'namespace' 'strict'
 
8284
    case 123096:                    // 'processing-instruction' 'strict'
 
8285
    case 124498:                    // 'attribute' 'switch'
 
8286
    case 124537:                    // 'element' 'switch'
 
8287
    case 124600:                    // 'namespace' 'switch'
 
8288
    case 124632:                    // 'processing-instruction' 'switch'
 
8289
    case 125010:                    // 'attribute' 'text'
 
8290
    case 125049:                    // 'element' 'text'
 
8291
    case 125112:                    // 'namespace' 'text'
 
8292
    case 125144:                    // 'processing-instruction' 'text'
 
8293
    case 128082:                    // 'attribute' 'try'
 
8294
    case 128121:                    // 'element' 'try'
 
8295
    case 128184:                    // 'namespace' 'try'
 
8296
    case 128216:                    // 'processing-instruction' 'try'
 
8297
    case 128594:                    // 'attribute' 'tumbling'
 
8298
    case 128633:                    // 'element' 'tumbling'
 
8299
    case 128696:                    // 'namespace' 'tumbling'
 
8300
    case 128728:                    // 'processing-instruction' 'tumbling'
 
8301
    case 129106:                    // 'attribute' 'type'
 
8302
    case 129145:                    // 'element' 'type'
 
8303
    case 129208:                    // 'namespace' 'type'
 
8304
    case 129240:                    // 'processing-instruction' 'type'
 
8305
    case 129618:                    // 'attribute' 'typeswitch'
 
8306
    case 129657:                    // 'element' 'typeswitch'
 
8307
    case 129720:                    // 'namespace' 'typeswitch'
 
8308
    case 129752:                    // 'processing-instruction' 'typeswitch'
 
8309
    case 131154:                    // 'attribute' 'unordered'
 
8310
    case 131193:                    // 'element' 'unordered'
 
8311
    case 131256:                    // 'namespace' 'unordered'
 
8312
    case 131288:                    // 'processing-instruction' 'unordered'
 
8313
    case 131666:                    // 'attribute' 'updating'
 
8314
    case 131705:                    // 'element' 'updating'
 
8315
    case 131768:                    // 'namespace' 'updating'
 
8316
    case 131800:                    // 'processing-instruction' 'updating'
 
8317
    case 133202:                    // 'attribute' 'validate'
 
8318
    case 133241:                    // 'element' 'validate'
 
8319
    case 133304:                    // 'namespace' 'validate'
 
8320
    case 133336:                    // 'processing-instruction' 'validate'
 
8321
    case 133714:                    // 'attribute' 'value'
 
8322
    case 133753:                    // 'element' 'value'
 
8323
    case 133816:                    // 'namespace' 'value'
 
8324
    case 133848:                    // 'processing-instruction' 'value'
 
8325
    case 134226:                    // 'attribute' 'variable'
 
8326
    case 134265:                    // 'element' 'variable'
 
8327
    case 134328:                    // 'namespace' 'variable'
 
8328
    case 134360:                    // 'processing-instruction' 'variable'
 
8329
    case 134738:                    // 'attribute' 'version'
 
8330
    case 134777:                    // 'element' 'version'
 
8331
    case 134840:                    // 'namespace' 'version'
 
8332
    case 134872:                    // 'processing-instruction' 'version'
 
8333
    case 136786:                    // 'attribute' 'while'
 
8334
    case 136825:                    // 'element' 'while'
 
8335
    case 136888:                    // 'namespace' 'while'
 
8336
    case 136920:                    // 'processing-instruction' 'while'
 
8337
    case 140370:                    // 'attribute' 'xquery'
 
8338
    case 140409:                    // 'element' 'xquery'
 
8339
    case 140472:                    // 'namespace' 'xquery'
 
8340
    case 140504:                    // 'processing-instruction' 'xquery'
 
8341
    case 141394:                    // 'attribute' '{'
 
8342
    case 141408:                    // 'comment' '{'
 
8343
    case 141431:                    // 'document' '{'
 
8344
    case 141433:                    // 'element' '{'
 
8345
    case 141496:                    // 'namespace' '{'
 
8346
    case 141514:                    // 'ordered' '{'
 
8347
    case 141528:                    // 'processing-instruction' '{'
 
8348
    case 141556:                    // 'text' '{'
 
8349
    case 141568:                    // 'unordered' '{'
 
8350
      try_PostfixExpr();
 
8351
      break;
 
8352
    case -3:
 
8353
      break;
 
8354
    default:
 
8355
      try_AxisStep();
 
8356
    }
 
8357
  }
 
8358
 
 
8359
  function parse_AxisStep()
 
8360
  {
 
8361
    eventHandler.startNonterminal("AxisStep", e0);
 
8362
    switch (l1)
 
8363
    {
 
8364
    case 73:                        // 'ancestor'
 
8365
    case 74:                        // 'ancestor-or-self'
 
8366
    case 206:                       // 'parent'
 
8367
    case 212:                       // 'preceding'
 
8368
    case 213:                       // 'preceding-sibling'
 
8369
      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8370
      break;
 
8371
    default:
 
8372
      lk = l1;
 
8373
    }
 
8374
    switch (lk)
 
8375
    {
 
8376
    case 45:                        // '..'
 
8377
    case 26185:                     // 'ancestor' '::'
 
8378
    case 26186:                     // 'ancestor-or-self' '::'
 
8379
    case 26318:                     // 'parent' '::'
 
8380
    case 26324:                     // 'preceding' '::'
 
8381
    case 26325:                     // 'preceding-sibling' '::'
 
8382
      parse_ReverseStep();
 
8383
      break;
 
8384
    default:
 
8385
      parse_ForwardStep();
 
8386
    }
 
8387
    lookahead1W(236);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8388
    whitespace();
 
8389
    parse_PredicateList();
 
8390
    eventHandler.endNonterminal("AxisStep", e0);
 
8391
  }
 
8392
 
 
8393
  function try_AxisStep()
 
8394
  {
 
8395
    switch (l1)
 
8396
    {
 
8397
    case 73:                        // 'ancestor'
 
8398
    case 74:                        // 'ancestor-or-self'
 
8399
    case 206:                       // 'parent'
 
8400
    case 212:                       // 'preceding'
 
8401
    case 213:                       // 'preceding-sibling'
 
8402
      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8403
      break;
 
8404
    default:
 
8405
      lk = l1;
 
8406
    }
 
8407
    switch (lk)
 
8408
    {
 
8409
    case 45:                        // '..'
 
8410
    case 26185:                     // 'ancestor' '::'
 
8411
    case 26186:                     // 'ancestor-or-self' '::'
 
8412
    case 26318:                     // 'parent' '::'
 
8413
    case 26324:                     // 'preceding' '::'
 
8414
    case 26325:                     // 'preceding-sibling' '::'
 
8415
      try_ReverseStep();
 
8416
      break;
 
8417
    default:
 
8418
      try_ForwardStep();
 
8419
    }
 
8420
    lookahead1W(236);               // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8421
    try_PredicateList();
 
8422
  }
 
8423
 
 
8424
  function parse_ForwardStep()
 
8425
  {
 
8426
    eventHandler.startNonterminal("ForwardStep", e0);
 
8427
    switch (l1)
 
8428
    {
 
8429
    case 82:                        // 'attribute'
 
8430
      lookahead2W(243);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8431
      break;
 
8432
    case 93:                        // 'child'
 
8433
    case 111:                       // 'descendant'
 
8434
    case 112:                       // 'descendant-or-self'
 
8435
    case 135:                       // 'following'
 
8436
    case 136:                       // 'following-sibling'
 
8437
    case 229:                       // 'self'
 
8438
      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8439
      break;
 
8440
    default:
 
8441
      lk = l1;
 
8442
    }
 
8443
    switch (lk)
 
8444
    {
 
8445
    case 26194:                     // 'attribute' '::'
 
8446
    case 26205:                     // 'child' '::'
 
8447
    case 26223:                     // 'descendant' '::'
 
8448
    case 26224:                     // 'descendant-or-self' '::'
 
8449
    case 26247:                     // 'following' '::'
 
8450
    case 26248:                     // 'following-sibling' '::'
 
8451
    case 26341:                     // 'self' '::'
 
8452
      parse_ForwardAxis();
 
8453
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8454
      whitespace();
 
8455
      parse_NodeTest();
 
8456
      break;
 
8457
    default:
 
8458
      parse_AbbrevForwardStep();
 
8459
    }
 
8460
    eventHandler.endNonterminal("ForwardStep", e0);
 
8461
  }
 
8462
 
 
8463
  function try_ForwardStep()
 
8464
  {
 
8465
    switch (l1)
 
8466
    {
 
8467
    case 82:                        // 'attribute'
 
8468
      lookahead2W(243);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8469
      break;
 
8470
    case 93:                        // 'child'
 
8471
    case 111:                       // 'descendant'
 
8472
    case 112:                       // 'descendant-or-self'
 
8473
    case 135:                       // 'following'
 
8474
    case 136:                       // 'following-sibling'
 
8475
    case 229:                       // 'self'
 
8476
      lookahead2W(240);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8477
      break;
 
8478
    default:
 
8479
      lk = l1;
 
8480
    }
 
8481
    switch (lk)
 
8482
    {
 
8483
    case 26194:                     // 'attribute' '::'
 
8484
    case 26205:                     // 'child' '::'
 
8485
    case 26223:                     // 'descendant' '::'
 
8486
    case 26224:                     // 'descendant-or-self' '::'
 
8487
    case 26247:                     // 'following' '::'
 
8488
    case 26248:                     // 'following-sibling' '::'
 
8489
    case 26341:                     // 'self' '::'
 
8490
      try_ForwardAxis();
 
8491
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8492
      try_NodeTest();
 
8493
      break;
 
8494
    default:
 
8495
      try_AbbrevForwardStep();
 
8496
    }
 
8497
  }
 
8498
 
 
8499
  function parse_ForwardAxis()
 
8500
  {
 
8501
    eventHandler.startNonterminal("ForwardAxis", e0);
 
8502
    switch (l1)
 
8503
    {
 
8504
    case 93:                        // 'child'
 
8505
      shift(93);                    // 'child'
 
8506
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8507
      shift(51);                    // '::'
 
8508
      break;
 
8509
    case 111:                       // 'descendant'
 
8510
      shift(111);                   // 'descendant'
 
8511
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8512
      shift(51);                    // '::'
 
8513
      break;
 
8514
    case 82:                        // 'attribute'
 
8515
      shift(82);                    // 'attribute'
 
8516
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8517
      shift(51);                    // '::'
 
8518
      break;
 
8519
    case 229:                       // 'self'
 
8520
      shift(229);                   // 'self'
 
8521
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8522
      shift(51);                    // '::'
 
8523
      break;
 
8524
    case 112:                       // 'descendant-or-self'
 
8525
      shift(112);                   // 'descendant-or-self'
 
8526
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8527
      shift(51);                    // '::'
 
8528
      break;
 
8529
    case 136:                       // 'following-sibling'
 
8530
      shift(136);                   // 'following-sibling'
 
8531
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8532
      shift(51);                    // '::'
 
8533
      break;
 
8534
    default:
 
8535
      shift(135);                   // 'following'
 
8536
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8537
      shift(51);                    // '::'
 
8538
    }
 
8539
    eventHandler.endNonterminal("ForwardAxis", e0);
 
8540
  }
 
8541
 
 
8542
  function try_ForwardAxis()
 
8543
  {
 
8544
    switch (l1)
 
8545
    {
 
8546
    case 93:                        // 'child'
 
8547
      shiftT(93);                   // 'child'
 
8548
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8549
      shiftT(51);                   // '::'
 
8550
      break;
 
8551
    case 111:                       // 'descendant'
 
8552
      shiftT(111);                  // 'descendant'
 
8553
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8554
      shiftT(51);                   // '::'
 
8555
      break;
 
8556
    case 82:                        // 'attribute'
 
8557
      shiftT(82);                   // 'attribute'
 
8558
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8559
      shiftT(51);                   // '::'
 
8560
      break;
 
8561
    case 229:                       // 'self'
 
8562
      shiftT(229);                  // 'self'
 
8563
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8564
      shiftT(51);                   // '::'
 
8565
      break;
 
8566
    case 112:                       // 'descendant-or-self'
 
8567
      shiftT(112);                  // 'descendant-or-self'
 
8568
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8569
      shiftT(51);                   // '::'
 
8570
      break;
 
8571
    case 136:                       // 'following-sibling'
 
8572
      shiftT(136);                  // 'following-sibling'
 
8573
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8574
      shiftT(51);                   // '::'
 
8575
      break;
 
8576
    default:
 
8577
      shiftT(135);                  // 'following'
 
8578
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8579
      shiftT(51);                   // '::'
 
8580
    }
 
8581
  }
 
8582
 
 
8583
  function parse_AbbrevForwardStep()
 
8584
  {
 
8585
    eventHandler.startNonterminal("AbbrevForwardStep", e0);
 
8586
    if (l1 == 66)                   // '@'
 
8587
    {
 
8588
      shift(66);                    // '@'
 
8589
    }
 
8590
    lookahead1W(255);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8591
    whitespace();
 
8592
    parse_NodeTest();
 
8593
    eventHandler.endNonterminal("AbbrevForwardStep", e0);
 
8594
  }
 
8595
 
 
8596
  function try_AbbrevForwardStep()
 
8597
  {
 
8598
    if (l1 == 66)                   // '@'
 
8599
    {
 
8600
      shiftT(66);                   // '@'
 
8601
    }
 
8602
    lookahead1W(255);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8603
    try_NodeTest();
 
8604
  }
 
8605
 
 
8606
  function parse_ReverseStep()
 
8607
  {
 
8608
    eventHandler.startNonterminal("ReverseStep", e0);
 
8609
    switch (l1)
 
8610
    {
 
8611
    case 45:                        // '..'
 
8612
      parse_AbbrevReverseStep();
 
8613
      break;
 
8614
    default:
 
8615
      parse_ReverseAxis();
 
8616
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8617
      whitespace();
 
8618
      parse_NodeTest();
 
8619
    }
 
8620
    eventHandler.endNonterminal("ReverseStep", e0);
 
8621
  }
 
8622
 
 
8623
  function try_ReverseStep()
 
8624
  {
 
8625
    switch (l1)
 
8626
    {
 
8627
    case 45:                        // '..'
 
8628
      try_AbbrevReverseStep();
 
8629
      break;
 
8630
    default:
 
8631
      try_ReverseAxis();
 
8632
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
8633
      try_NodeTest();
 
8634
    }
 
8635
  }
 
8636
 
 
8637
  function parse_ReverseAxis()
 
8638
  {
 
8639
    eventHandler.startNonterminal("ReverseAxis", e0);
 
8640
    switch (l1)
 
8641
    {
 
8642
    case 206:                       // 'parent'
 
8643
      shift(206);                   // 'parent'
 
8644
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8645
      shift(51);                    // '::'
 
8646
      break;
 
8647
    case 73:                        // 'ancestor'
 
8648
      shift(73);                    // 'ancestor'
 
8649
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8650
      shift(51);                    // '::'
 
8651
      break;
 
8652
    case 213:                       // 'preceding-sibling'
 
8653
      shift(213);                   // 'preceding-sibling'
 
8654
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8655
      shift(51);                    // '::'
 
8656
      break;
 
8657
    case 212:                       // 'preceding'
 
8658
      shift(212);                   // 'preceding'
 
8659
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8660
      shift(51);                    // '::'
 
8661
      break;
 
8662
    default:
 
8663
      shift(74);                    // 'ancestor-or-self'
 
8664
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8665
      shift(51);                    // '::'
 
8666
    }
 
8667
    eventHandler.endNonterminal("ReverseAxis", e0);
 
8668
  }
 
8669
 
 
8670
  function try_ReverseAxis()
 
8671
  {
 
8672
    switch (l1)
 
8673
    {
 
8674
    case 206:                       // 'parent'
 
8675
      shiftT(206);                  // 'parent'
 
8676
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8677
      shiftT(51);                   // '::'
 
8678
      break;
 
8679
    case 73:                        // 'ancestor'
 
8680
      shiftT(73);                   // 'ancestor'
 
8681
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8682
      shiftT(51);                   // '::'
 
8683
      break;
 
8684
    case 213:                       // 'preceding-sibling'
 
8685
      shiftT(213);                  // 'preceding-sibling'
 
8686
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8687
      shiftT(51);                   // '::'
 
8688
      break;
 
8689
    case 212:                       // 'preceding'
 
8690
      shiftT(212);                  // 'preceding'
 
8691
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8692
      shiftT(51);                   // '::'
 
8693
      break;
 
8694
    default:
 
8695
      shiftT(74);                   // 'ancestor-or-self'
 
8696
      lookahead1W(26);              // S^WS | '(:' | '::'
 
8697
      shiftT(51);                   // '::'
 
8698
    }
 
8699
  }
 
8700
 
 
8701
  function parse_AbbrevReverseStep()
 
8702
  {
 
8703
    eventHandler.startNonterminal("AbbrevReverseStep", e0);
 
8704
    shift(45);                      // '..'
 
8705
    eventHandler.endNonterminal("AbbrevReverseStep", e0);
 
8706
  }
 
8707
 
 
8708
  function try_AbbrevReverseStep()
 
8709
  {
 
8710
    shiftT(45);                     // '..'
 
8711
  }
 
8712
 
 
8713
  function parse_NodeTest()
 
8714
  {
 
8715
    eventHandler.startNonterminal("NodeTest", e0);
 
8716
    switch (l1)
 
8717
    {
 
8718
    case 78:                        // 'array'
 
8719
    case 82:                        // 'attribute'
 
8720
    case 96:                        // 'comment'
 
8721
    case 120:                       // 'document-node'
 
8722
    case 121:                       // 'element'
 
8723
    case 167:                       // 'json-item'
 
8724
    case 185:                       // 'namespace-node'
 
8725
    case 191:                       // 'node'
 
8726
    case 194:                       // 'object'
 
8727
    case 216:                       // 'processing-instruction'
 
8728
    case 226:                       // 'schema-attribute'
 
8729
    case 227:                       // 'schema-element'
 
8730
    case 244:                       // 'text'
 
8731
      lookahead2W(239);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8732
      break;
 
8733
    default:
 
8734
      lk = l1;
 
8735
    }
 
8736
    switch (lk)
 
8737
    {
 
8738
    case 17486:                     // 'array' '('
 
8739
    case 17490:                     // 'attribute' '('
 
8740
    case 17504:                     // 'comment' '('
 
8741
    case 17528:                     // 'document-node' '('
 
8742
    case 17529:                     // 'element' '('
 
8743
    case 17575:                     // 'json-item' '('
 
8744
    case 17593:                     // 'namespace-node' '('
 
8745
    case 17599:                     // 'node' '('
 
8746
    case 17602:                     // 'object' '('
 
8747
    case 17624:                     // 'processing-instruction' '('
 
8748
    case 17634:                     // 'schema-attribute' '('
 
8749
    case 17635:                     // 'schema-element' '('
 
8750
    case 17652:                     // 'text' '('
 
8751
      parse_KindTest();
 
8752
      break;
 
8753
    default:
 
8754
      parse_NameTest();
 
8755
    }
 
8756
    eventHandler.endNonterminal("NodeTest", e0);
 
8757
  }
 
8758
 
 
8759
  function try_NodeTest()
 
8760
  {
 
8761
    switch (l1)
 
8762
    {
 
8763
    case 78:                        // 'array'
 
8764
    case 82:                        // 'attribute'
 
8765
    case 96:                        // 'comment'
 
8766
    case 120:                       // 'document-node'
 
8767
    case 121:                       // 'element'
 
8768
    case 167:                       // 'json-item'
 
8769
    case 185:                       // 'namespace-node'
 
8770
    case 191:                       // 'node'
 
8771
    case 194:                       // 'object'
 
8772
    case 216:                       // 'processing-instruction'
 
8773
    case 226:                       // 'schema-attribute'
 
8774
    case 227:                       // 'schema-element'
 
8775
    case 244:                       // 'text'
 
8776
      lookahead2W(239);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8777
      break;
 
8778
    default:
 
8779
      lk = l1;
 
8780
    }
 
8781
    switch (lk)
 
8782
    {
 
8783
    case 17486:                     // 'array' '('
 
8784
    case 17490:                     // 'attribute' '('
 
8785
    case 17504:                     // 'comment' '('
 
8786
    case 17528:                     // 'document-node' '('
 
8787
    case 17529:                     // 'element' '('
 
8788
    case 17575:                     // 'json-item' '('
 
8789
    case 17593:                     // 'namespace-node' '('
 
8790
    case 17599:                     // 'node' '('
 
8791
    case 17602:                     // 'object' '('
 
8792
    case 17624:                     // 'processing-instruction' '('
 
8793
    case 17634:                     // 'schema-attribute' '('
 
8794
    case 17635:                     // 'schema-element' '('
 
8795
    case 17652:                     // 'text' '('
 
8796
      try_KindTest();
 
8797
      break;
 
8798
    default:
 
8799
      try_NameTest();
 
8800
    }
 
8801
  }
 
8802
 
 
8803
  function parse_NameTest()
 
8804
  {
 
8805
    eventHandler.startNonterminal("NameTest", e0);
 
8806
    switch (l1)
 
8807
    {
 
8808
    case 5:                         // Wildcard
 
8809
      shift(5);                     // Wildcard
 
8810
      break;
 
8811
    default:
 
8812
      parse_EQName();
 
8813
    }
 
8814
    eventHandler.endNonterminal("NameTest", e0);
 
8815
  }
 
8816
 
 
8817
  function try_NameTest()
 
8818
  {
 
8819
    switch (l1)
 
8820
    {
 
8821
    case 5:                         // Wildcard
 
8822
      shiftT(5);                    // Wildcard
 
8823
      break;
 
8824
    default:
 
8825
      try_EQName();
 
8826
    }
 
8827
  }
 
8828
 
 
8829
  function parse_PostfixExpr()
 
8830
  {
 
8831
    eventHandler.startNonterminal("PostfixExpr", e0);
 
8832
    parse_PrimaryExpr();
 
8833
    for (;;)
 
8834
    {
 
8835
      lookahead1W(239);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8836
      if (l1 != 34                  // '('
 
8837
       && l1 != 68)                 // '['
 
8838
      {
 
8839
        break;
 
8840
      }
 
8841
      switch (l1)
 
8842
      {
 
8843
      case 68:                      // '['
 
8844
        whitespace();
 
8845
        parse_Predicate();
 
8846
        break;
 
8847
      default:
 
8848
        whitespace();
 
8849
        parse_ArgumentList();
 
8850
      }
 
8851
    }
 
8852
    eventHandler.endNonterminal("PostfixExpr", e0);
 
8853
  }
 
8854
 
 
8855
  function try_PostfixExpr()
 
8856
  {
 
8857
    try_PrimaryExpr();
 
8858
    for (;;)
 
8859
    {
 
8860
      lookahead1W(239);             // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
 
8861
      if (l1 != 34                  // '('
 
8862
       && l1 != 68)                 // '['
 
8863
      {
 
8864
        break;
 
8865
      }
 
8866
      switch (l1)
 
8867
      {
 
8868
      case 68:                      // '['
 
8869
        try_Predicate();
 
8870
        break;
 
8871
      default:
 
8872
        try_ArgumentList();
 
8873
      }
 
8874
    }
 
8875
  }
 
8876
 
 
8877
  function parse_ArgumentList()
 
8878
  {
 
8879
    eventHandler.startNonterminal("ArgumentList", e0);
 
8880
    shift(34);                      // '('
 
8881
    lookahead1W(275);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8882
    if (l1 != 37)                   // ')'
 
8883
    {
 
8884
      whitespace();
 
8885
      parse_Argument();
 
8886
      for (;;)
 
8887
      {
 
8888
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
8889
        if (l1 != 41)               // ','
 
8890
        {
 
8891
          break;
 
8892
        }
 
8893
        shift(41);                  // ','
 
8894
        lookahead1W(270);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8895
        whitespace();
 
8896
        parse_Argument();
 
8897
      }
 
8898
    }
 
8899
    shift(37);                      // ')'
 
8900
    eventHandler.endNonterminal("ArgumentList", e0);
 
8901
  }
 
8902
 
 
8903
  function try_ArgumentList()
 
8904
  {
 
8905
    shiftT(34);                     // '('
 
8906
    lookahead1W(275);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8907
    if (l1 != 37)                   // ')'
 
8908
    {
 
8909
      try_Argument();
 
8910
      for (;;)
 
8911
      {
 
8912
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
8913
        if (l1 != 41)               // ','
 
8914
        {
 
8915
          break;
 
8916
        }
 
8917
        shiftT(41);                 // ','
 
8918
        lookahead1W(270);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8919
        try_Argument();
 
8920
      }
 
8921
    }
 
8922
    shiftT(37);                     // ')'
 
8923
  }
 
8924
 
 
8925
  function parse_PredicateList()
 
8926
  {
 
8927
    eventHandler.startNonterminal("PredicateList", e0);
 
8928
    for (;;)
 
8929
    {
 
8930
      lookahead1W(236);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8931
      if (l1 != 68)                 // '['
 
8932
      {
 
8933
        break;
 
8934
      }
 
8935
      whitespace();
 
8936
      parse_Predicate();
 
8937
    }
 
8938
    eventHandler.endNonterminal("PredicateList", e0);
 
8939
  }
 
8940
 
 
8941
  function try_PredicateList()
 
8942
  {
 
8943
    for (;;)
 
8944
    {
 
8945
      lookahead1W(236);             // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
 
8946
      if (l1 != 68)                 // '['
 
8947
      {
 
8948
        break;
 
8949
      }
 
8950
      try_Predicate();
 
8951
    }
 
8952
  }
 
8953
 
 
8954
  function parse_Predicate()
 
8955
  {
 
8956
    eventHandler.startNonterminal("Predicate", e0);
 
8957
    shift(68);                      // '['
 
8958
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8959
    whitespace();
 
8960
    parse_Expr();
 
8961
    shift(69);                      // ']'
 
8962
    eventHandler.endNonterminal("Predicate", e0);
 
8963
  }
 
8964
 
 
8965
  function try_Predicate()
 
8966
  {
 
8967
    shiftT(68);                     // '['
 
8968
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
8969
    try_Expr();
 
8970
    shiftT(69);                     // ']'
 
8971
  }
 
8972
 
 
8973
  function parse_Literal()
 
8974
  {
 
8975
    eventHandler.startNonterminal("Literal", e0);
 
8976
    switch (l1)
 
8977
    {
 
8978
    case 11:                        // StringLiteral
 
8979
      shift(11);                    // StringLiteral
 
8980
      break;
 
8981
    default:
 
8982
      parse_NumericLiteral();
 
8983
    }
 
8984
    eventHandler.endNonterminal("Literal", e0);
 
8985
  }
 
8986
 
 
8987
  function try_Literal()
 
8988
  {
 
8989
    switch (l1)
 
8990
    {
 
8991
    case 11:                        // StringLiteral
 
8992
      shiftT(11);                   // StringLiteral
 
8993
      break;
 
8994
    default:
 
8995
      try_NumericLiteral();
 
8996
    }
 
8997
  }
 
8998
 
 
8999
  function parse_NumericLiteral()
 
9000
  {
 
9001
    eventHandler.startNonterminal("NumericLiteral", e0);
 
9002
    switch (l1)
 
9003
    {
 
9004
    case 8:                         // IntegerLiteral
 
9005
      shift(8);                     // IntegerLiteral
 
9006
      break;
 
9007
    case 9:                         // DecimalLiteral
 
9008
      shift(9);                     // DecimalLiteral
 
9009
      break;
 
9010
    default:
 
9011
      shift(10);                    // DoubleLiteral
 
9012
    }
 
9013
    eventHandler.endNonterminal("NumericLiteral", e0);
 
9014
  }
 
9015
 
 
9016
  function try_NumericLiteral()
 
9017
  {
 
9018
    switch (l1)
 
9019
    {
 
9020
    case 8:                         // IntegerLiteral
 
9021
      shiftT(8);                    // IntegerLiteral
 
9022
      break;
 
9023
    case 9:                         // DecimalLiteral
 
9024
      shiftT(9);                    // DecimalLiteral
 
9025
      break;
 
9026
    default:
 
9027
      shiftT(10);                   // DoubleLiteral
 
9028
    }
 
9029
  }
 
9030
 
 
9031
  function parse_VarRef()
 
9032
  {
 
9033
    eventHandler.startNonterminal("VarRef", e0);
 
9034
    shift(31);                      // '$'
 
9035
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9036
    whitespace();
 
9037
    parse_VarName();
 
9038
    eventHandler.endNonterminal("VarRef", e0);
 
9039
  }
 
9040
 
 
9041
  function try_VarRef()
 
9042
  {
 
9043
    shiftT(31);                     // '$'
 
9044
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9045
    try_VarName();
 
9046
  }
 
9047
 
 
9048
  function parse_VarName()
 
9049
  {
 
9050
    eventHandler.startNonterminal("VarName", e0);
 
9051
    parse_EQName();
 
9052
    eventHandler.endNonterminal("VarName", e0);
 
9053
  }
 
9054
 
 
9055
  function try_VarName()
 
9056
  {
 
9057
    try_EQName();
 
9058
  }
 
9059
 
 
9060
  function parse_ParenthesizedExpr()
 
9061
  {
 
9062
    eventHandler.startNonterminal("ParenthesizedExpr", e0);
 
9063
    shift(34);                      // '('
 
9064
    lookahead1W(269);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9065
    if (l1 != 37)                   // ')'
 
9066
    {
 
9067
      whitespace();
 
9068
      parse_Expr();
 
9069
    }
 
9070
    shift(37);                      // ')'
 
9071
    eventHandler.endNonterminal("ParenthesizedExpr", e0);
 
9072
  }
 
9073
 
 
9074
  function try_ParenthesizedExpr()
 
9075
  {
 
9076
    shiftT(34);                     // '('
 
9077
    lookahead1W(269);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9078
    if (l1 != 37)                   // ')'
 
9079
    {
 
9080
      try_Expr();
 
9081
    }
 
9082
    shiftT(37);                     // ')'
 
9083
  }
 
9084
 
 
9085
  function parse_ContextItemExpr()
 
9086
  {
 
9087
    eventHandler.startNonterminal("ContextItemExpr", e0);
 
9088
    shift(44);                      // '.'
 
9089
    eventHandler.endNonterminal("ContextItemExpr", e0);
 
9090
  }
 
9091
 
 
9092
  function try_ContextItemExpr()
 
9093
  {
 
9094
    shiftT(44);                     // '.'
 
9095
  }
 
9096
 
 
9097
  function parse_OrderedExpr()
 
9098
  {
 
9099
    eventHandler.startNonterminal("OrderedExpr", e0);
 
9100
    shift(202);                     // 'ordered'
 
9101
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9102
    shift(276);                     // '{'
 
9103
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9104
    whitespace();
 
9105
    parse_Expr();
 
9106
    shift(282);                     // '}'
 
9107
    eventHandler.endNonterminal("OrderedExpr", e0);
 
9108
  }
 
9109
 
 
9110
  function try_OrderedExpr()
 
9111
  {
 
9112
    shiftT(202);                    // 'ordered'
 
9113
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9114
    shiftT(276);                    // '{'
 
9115
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9116
    try_Expr();
 
9117
    shiftT(282);                    // '}'
 
9118
  }
 
9119
 
 
9120
  function parse_UnorderedExpr()
 
9121
  {
 
9122
    eventHandler.startNonterminal("UnorderedExpr", e0);
 
9123
    shift(256);                     // 'unordered'
 
9124
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9125
    shift(276);                     // '{'
 
9126
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9127
    whitespace();
 
9128
    parse_Expr();
 
9129
    shift(282);                     // '}'
 
9130
    eventHandler.endNonterminal("UnorderedExpr", e0);
 
9131
  }
 
9132
 
 
9133
  function try_UnorderedExpr()
 
9134
  {
 
9135
    shiftT(256);                    // 'unordered'
 
9136
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9137
    shiftT(276);                    // '{'
 
9138
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9139
    try_Expr();
 
9140
    shiftT(282);                    // '}'
 
9141
  }
 
9142
 
 
9143
  function parse_FunctionCall()
 
9144
  {
 
9145
    eventHandler.startNonterminal("FunctionCall", e0);
 
9146
    parse_FunctionName();
 
9147
    lookahead1W(22);                // S^WS | '(' | '(:'
 
9148
    whitespace();
 
9149
    parse_ArgumentList();
 
9150
    eventHandler.endNonterminal("FunctionCall", e0);
 
9151
  }
 
9152
 
 
9153
  function try_FunctionCall()
 
9154
  {
 
9155
    try_FunctionName();
 
9156
    lookahead1W(22);                // S^WS | '(' | '(:'
 
9157
    try_ArgumentList();
 
9158
  }
 
9159
 
 
9160
  function parse_Argument()
 
9161
  {
 
9162
    eventHandler.startNonterminal("Argument", e0);
 
9163
    switch (l1)
 
9164
    {
 
9165
    case 64:                        // '?'
 
9166
      parse_ArgumentPlaceholder();
 
9167
      break;
 
9168
    default:
 
9169
      parse_ExprSingle();
 
9170
    }
 
9171
    eventHandler.endNonterminal("Argument", e0);
 
9172
  }
 
9173
 
 
9174
  function try_Argument()
 
9175
  {
 
9176
    switch (l1)
 
9177
    {
 
9178
    case 64:                        // '?'
 
9179
      try_ArgumentPlaceholder();
 
9180
      break;
 
9181
    default:
 
9182
      try_ExprSingle();
 
9183
    }
 
9184
  }
 
9185
 
 
9186
  function parse_ArgumentPlaceholder()
 
9187
  {
 
9188
    eventHandler.startNonterminal("ArgumentPlaceholder", e0);
 
9189
    shift(64);                      // '?'
 
9190
    eventHandler.endNonterminal("ArgumentPlaceholder", e0);
 
9191
  }
 
9192
 
 
9193
  function try_ArgumentPlaceholder()
 
9194
  {
 
9195
    shiftT(64);                     // '?'
 
9196
  }
 
9197
 
 
9198
  function parse_Constructor()
 
9199
  {
 
9200
    eventHandler.startNonterminal("Constructor", e0);
 
9201
    switch (l1)
 
9202
    {
 
9203
    case 54:                        // '<'
 
9204
    case 55:                        // '<!--'
 
9205
    case 59:                        // '<?'
 
9206
      parse_DirectConstructor();
 
9207
      break;
 
9208
    default:
 
9209
      parse_ComputedConstructor();
 
9210
    }
 
9211
    eventHandler.endNonterminal("Constructor", e0);
 
9212
  }
 
9213
 
 
9214
  function try_Constructor()
 
9215
  {
 
9216
    switch (l1)
 
9217
    {
 
9218
    case 54:                        // '<'
 
9219
    case 55:                        // '<!--'
 
9220
    case 59:                        // '<?'
 
9221
      try_DirectConstructor();
 
9222
      break;
 
9223
    default:
 
9224
      try_ComputedConstructor();
 
9225
    }
 
9226
  }
 
9227
 
 
9228
  function parse_DirectConstructor()
 
9229
  {
 
9230
    eventHandler.startNonterminal("DirectConstructor", e0);
 
9231
    switch (l1)
 
9232
    {
 
9233
    case 54:                        // '<'
 
9234
      parse_DirElemConstructor();
 
9235
      break;
 
9236
    case 55:                        // '<!--'
 
9237
      parse_DirCommentConstructor();
 
9238
      break;
 
9239
    default:
 
9240
      parse_DirPIConstructor();
 
9241
    }
 
9242
    eventHandler.endNonterminal("DirectConstructor", e0);
 
9243
  }
 
9244
 
 
9245
  function try_DirectConstructor()
 
9246
  {
 
9247
    switch (l1)
 
9248
    {
 
9249
    case 54:                        // '<'
 
9250
      try_DirElemConstructor();
 
9251
      break;
 
9252
    case 55:                        // '<!--'
 
9253
      try_DirCommentConstructor();
 
9254
      break;
 
9255
    default:
 
9256
      try_DirPIConstructor();
 
9257
    }
 
9258
  }
 
9259
 
 
9260
  function parse_DirElemConstructor()
 
9261
  {
 
9262
    eventHandler.startNonterminal("DirElemConstructor", e0);
 
9263
    shift(54);                      // '<'
 
9264
    lookahead1(4);                  // QName
 
9265
    shift(20);                      // QName
 
9266
    parse_DirAttributeList();
 
9267
    switch (l1)
 
9268
    {
 
9269
    case 48:                        // '/>'
 
9270
      shift(48);                    // '/>'
 
9271
      break;
 
9272
    default:
 
9273
      shift(61);                    // '>'
 
9274
      for (;;)
 
9275
      {
 
9276
        lookahead1(174);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |
 
9277
        if (l1 == 56)               // '</'
 
9278
        {
 
9279
          break;
 
9280
        }
 
9281
        parse_DirElemContent();
 
9282
      }
 
9283
      shift(56);                    // '</'
 
9284
      lookahead1(4);                // QName
 
9285
      shift(20);                    // QName
 
9286
      lookahead1(12);               // S | '>'
 
9287
      if (l1 == 21)                 // S
 
9288
      {
 
9289
        shift(21);                  // S
 
9290
      }
 
9291
      lookahead1(8);                // '>'
 
9292
      shift(61);                    // '>'
 
9293
    }
 
9294
    eventHandler.endNonterminal("DirElemConstructor", e0);
 
9295
  }
 
9296
 
 
9297
  function try_DirElemConstructor()
 
9298
  {
 
9299
    shiftT(54);                     // '<'
 
9300
    lookahead1(4);                  // QName
 
9301
    shiftT(20);                     // QName
 
9302
    try_DirAttributeList();
 
9303
    switch (l1)
 
9304
    {
 
9305
    case 48:                        // '/>'
 
9306
      shiftT(48);                   // '/>'
 
9307
      break;
 
9308
    default:
 
9309
      shiftT(61);                   // '>'
 
9310
      for (;;)
 
9311
      {
 
9312
        lookahead1(174);            // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |
 
9313
        if (l1 == 56)               // '</'
 
9314
        {
 
9315
          break;
 
9316
        }
 
9317
        try_DirElemContent();
 
9318
      }
 
9319
      shiftT(56);                   // '</'
 
9320
      lookahead1(4);                // QName
 
9321
      shiftT(20);                   // QName
 
9322
      lookahead1(12);               // S | '>'
 
9323
      if (l1 == 21)                 // S
 
9324
      {
 
9325
        shiftT(21);                 // S
 
9326
      }
 
9327
      lookahead1(8);                // '>'
 
9328
      shiftT(61);                   // '>'
 
9329
    }
 
9330
  }
 
9331
 
 
9332
  function parse_DirAttributeList()
 
9333
  {
 
9334
    eventHandler.startNonterminal("DirAttributeList", e0);
 
9335
    for (;;)
 
9336
    {
 
9337
      lookahead1(19);               // S | '/>' | '>'
 
9338
      if (l1 != 21)                 // S
 
9339
      {
 
9340
        break;
 
9341
      }
 
9342
      shift(21);                    // S
 
9343
      lookahead1(91);               // QName | S | '/>' | '>'
 
9344
      if (l1 == 20)                 // QName
 
9345
      {
 
9346
        shift(20);                  // QName
 
9347
        lookahead1(11);             // S | '='
 
9348
        if (l1 == 21)               // S
 
9349
        {
 
9350
          shift(21);                // S
 
9351
        }
 
9352
        lookahead1(7);              // '='
 
9353
        shift(60);                  // '='
 
9354
        lookahead1(18);             // S | '"' | "'"
 
9355
        if (l1 == 21)               // S
 
9356
        {
 
9357
          shift(21);                // S
 
9358
        }
 
9359
        parse_DirAttributeValue();
 
9360
      }
 
9361
    }
 
9362
    eventHandler.endNonterminal("DirAttributeList", e0);
 
9363
  }
 
9364
 
 
9365
  function try_DirAttributeList()
 
9366
  {
 
9367
    for (;;)
 
9368
    {
 
9369
      lookahead1(19);               // S | '/>' | '>'
 
9370
      if (l1 != 21)                 // S
 
9371
      {
 
9372
        break;
 
9373
      }
 
9374
      shiftT(21);                   // S
 
9375
      lookahead1(91);               // QName | S | '/>' | '>'
 
9376
      if (l1 == 20)                 // QName
 
9377
      {
 
9378
        shiftT(20);                 // QName
 
9379
        lookahead1(11);             // S | '='
 
9380
        if (l1 == 21)               // S
 
9381
        {
 
9382
          shiftT(21);               // S
 
9383
        }
 
9384
        lookahead1(7);              // '='
 
9385
        shiftT(60);                 // '='
 
9386
        lookahead1(18);             // S | '"' | "'"
 
9387
        if (l1 == 21)               // S
 
9388
        {
 
9389
          shiftT(21);               // S
 
9390
        }
 
9391
        try_DirAttributeValue();
 
9392
      }
 
9393
    }
 
9394
  }
 
9395
 
 
9396
  function parse_DirAttributeValue()
 
9397
  {
 
9398
    eventHandler.startNonterminal("DirAttributeValue", e0);
 
9399
    lookahead1(14);                 // '"' | "'"
 
9400
    switch (l1)
 
9401
    {
 
9402
    case 28:                        // '"'
 
9403
      shift(28);                    // '"'
 
9404
      for (;;)
 
9405
      {
 
9406
        lookahead1(167);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' |
 
9407
        if (l1 == 28)               // '"'
 
9408
        {
 
9409
          break;
 
9410
        }
 
9411
        switch (l1)
 
9412
        {
 
9413
        case 13:                    // EscapeQuot
 
9414
          shift(13);                // EscapeQuot
 
9415
          break;
 
9416
        default:
 
9417
          parse_QuotAttrValueContent();
 
9418
        }
 
9419
      }
 
9420
      shift(28);                    // '"'
 
9421
      break;
 
9422
    default:
 
9423
      shift(33);                    // "'"
 
9424
      for (;;)
 
9425
      {
 
9426
        lookahead1(168);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' |
 
9427
        if (l1 == 33)               // "'"
 
9428
        {
 
9429
          break;
 
9430
        }
 
9431
        switch (l1)
 
9432
        {
 
9433
        case 14:                    // EscapeApos
 
9434
          shift(14);                // EscapeApos
 
9435
          break;
 
9436
        default:
 
9437
          parse_AposAttrValueContent();
 
9438
        }
 
9439
      }
 
9440
      shift(33);                    // "'"
 
9441
    }
 
9442
    eventHandler.endNonterminal("DirAttributeValue", e0);
 
9443
  }
 
9444
 
 
9445
  function try_DirAttributeValue()
 
9446
  {
 
9447
    lookahead1(14);                 // '"' | "'"
 
9448
    switch (l1)
 
9449
    {
 
9450
    case 28:                        // '"'
 
9451
      shiftT(28);                   // '"'
 
9452
      for (;;)
 
9453
      {
 
9454
        lookahead1(167);            // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' |
 
9455
        if (l1 == 28)               // '"'
 
9456
        {
 
9457
          break;
 
9458
        }
 
9459
        switch (l1)
 
9460
        {
 
9461
        case 13:                    // EscapeQuot
 
9462
          shiftT(13);               // EscapeQuot
 
9463
          break;
 
9464
        default:
 
9465
          try_QuotAttrValueContent();
 
9466
        }
 
9467
      }
 
9468
      shiftT(28);                   // '"'
 
9469
      break;
 
9470
    default:
 
9471
      shiftT(33);                   // "'"
 
9472
      for (;;)
 
9473
      {
 
9474
        lookahead1(168);            // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' |
 
9475
        if (l1 == 33)               // "'"
 
9476
        {
 
9477
          break;
 
9478
        }
 
9479
        switch (l1)
 
9480
        {
 
9481
        case 14:                    // EscapeApos
 
9482
          shiftT(14);               // EscapeApos
 
9483
          break;
 
9484
        default:
 
9485
          try_AposAttrValueContent();
 
9486
        }
 
9487
      }
 
9488
      shiftT(33);                   // "'"
 
9489
    }
 
9490
  }
 
9491
 
 
9492
  function parse_QuotAttrValueContent()
 
9493
  {
 
9494
    eventHandler.startNonterminal("QuotAttrValueContent", e0);
 
9495
    switch (l1)
 
9496
    {
 
9497
    case 16:                        // QuotAttrContentChar
 
9498
      shift(16);                    // QuotAttrContentChar
 
9499
      break;
 
9500
    default:
 
9501
      parse_CommonContent();
 
9502
    }
 
9503
    eventHandler.endNonterminal("QuotAttrValueContent", e0);
 
9504
  }
 
9505
 
 
9506
  function try_QuotAttrValueContent()
 
9507
  {
 
9508
    switch (l1)
 
9509
    {
 
9510
    case 16:                        // QuotAttrContentChar
 
9511
      shiftT(16);                   // QuotAttrContentChar
 
9512
      break;
 
9513
    default:
 
9514
      try_CommonContent();
 
9515
    }
 
9516
  }
 
9517
 
 
9518
  function parse_AposAttrValueContent()
 
9519
  {
 
9520
    eventHandler.startNonterminal("AposAttrValueContent", e0);
 
9521
    switch (l1)
 
9522
    {
 
9523
    case 17:                        // AposAttrContentChar
 
9524
      shift(17);                    // AposAttrContentChar
 
9525
      break;
 
9526
    default:
 
9527
      parse_CommonContent();
 
9528
    }
 
9529
    eventHandler.endNonterminal("AposAttrValueContent", e0);
 
9530
  }
 
9531
 
 
9532
  function try_AposAttrValueContent()
 
9533
  {
 
9534
    switch (l1)
 
9535
    {
 
9536
    case 17:                        // AposAttrContentChar
 
9537
      shiftT(17);                   // AposAttrContentChar
 
9538
      break;
 
9539
    default:
 
9540
      try_CommonContent();
 
9541
    }
 
9542
  }
 
9543
 
 
9544
  function parse_DirElemContent()
 
9545
  {
 
9546
    eventHandler.startNonterminal("DirElemContent", e0);
 
9547
    switch (l1)
 
9548
    {
 
9549
    case 54:                        // '<'
 
9550
    case 55:                        // '<!--'
 
9551
    case 59:                        // '<?'
 
9552
      parse_DirectConstructor();
 
9553
      break;
 
9554
    case 4:                         // CDataSection
 
9555
      shift(4);                     // CDataSection
 
9556
      break;
 
9557
    case 15:                        // ElementContentChar
 
9558
      shift(15);                    // ElementContentChar
 
9559
      break;
 
9560
    default:
 
9561
      parse_CommonContent();
 
9562
    }
 
9563
    eventHandler.endNonterminal("DirElemContent", e0);
 
9564
  }
 
9565
 
 
9566
  function try_DirElemContent()
 
9567
  {
 
9568
    switch (l1)
 
9569
    {
 
9570
    case 54:                        // '<'
 
9571
    case 55:                        // '<!--'
 
9572
    case 59:                        // '<?'
 
9573
      try_DirectConstructor();
 
9574
      break;
 
9575
    case 4:                         // CDataSection
 
9576
      shiftT(4);                    // CDataSection
 
9577
      break;
 
9578
    case 15:                        // ElementContentChar
 
9579
      shiftT(15);                   // ElementContentChar
 
9580
      break;
 
9581
    default:
 
9582
      try_CommonContent();
 
9583
    }
 
9584
  }
 
9585
 
 
9586
  function parse_DirCommentConstructor()
 
9587
  {
 
9588
    eventHandler.startNonterminal("DirCommentConstructor", e0);
 
9589
    shift(55);                      // '<!--'
 
9590
    lookahead1(1);                  // DirCommentContents
 
9591
    shift(2);                       // DirCommentContents
 
9592
    lookahead1(6);                  // '-->'
 
9593
    shift(43);                      // '-->'
 
9594
    eventHandler.endNonterminal("DirCommentConstructor", e0);
 
9595
  }
 
9596
 
 
9597
  function try_DirCommentConstructor()
 
9598
  {
 
9599
    shiftT(55);                     // '<!--'
 
9600
    lookahead1(1);                  // DirCommentContents
 
9601
    shiftT(2);                      // DirCommentContents
 
9602
    lookahead1(6);                  // '-->'
 
9603
    shiftT(43);                     // '-->'
 
9604
  }
 
9605
 
 
9606
  function parse_DirPIConstructor()
 
9607
  {
 
9608
    eventHandler.startNonterminal("DirPIConstructor", e0);
 
9609
    shift(59);                      // '<?'
 
9610
    lookahead1(3);                  // PITarget
 
9611
    shift(18);                      // PITarget
 
9612
    lookahead1(13);                 // S | '?>'
 
9613
    if (l1 == 21)                   // S
 
9614
    {
 
9615
      shift(21);                    // S
 
9616
      lookahead1(2);                // DirPIContents
 
9617
      shift(3);                     // DirPIContents
 
9618
    }
 
9619
    lookahead1(9);                  // '?>'
 
9620
    shift(65);                      // '?>'
 
9621
    eventHandler.endNonterminal("DirPIConstructor", e0);
 
9622
  }
 
9623
 
 
9624
  function try_DirPIConstructor()
 
9625
  {
 
9626
    shiftT(59);                     // '<?'
 
9627
    lookahead1(3);                  // PITarget
 
9628
    shiftT(18);                     // PITarget
 
9629
    lookahead1(13);                 // S | '?>'
 
9630
    if (l1 == 21)                   // S
 
9631
    {
 
9632
      shiftT(21);                   // S
 
9633
      lookahead1(2);                // DirPIContents
 
9634
      shiftT(3);                    // DirPIContents
 
9635
    }
 
9636
    lookahead1(9);                  // '?>'
 
9637
    shiftT(65);                     // '?>'
 
9638
  }
 
9639
 
 
9640
  function parse_ComputedConstructor()
 
9641
  {
 
9642
    eventHandler.startNonterminal("ComputedConstructor", e0);
 
9643
    switch (l1)
 
9644
    {
 
9645
    case 119:                       // 'document'
 
9646
      parse_CompDocConstructor();
 
9647
      break;
 
9648
    case 121:                       // 'element'
 
9649
      parse_CompElemConstructor();
 
9650
      break;
 
9651
    case 82:                        // 'attribute'
 
9652
      parse_CompAttrConstructor();
 
9653
      break;
 
9654
    case 184:                       // 'namespace'
 
9655
      parse_CompNamespaceConstructor();
 
9656
      break;
 
9657
    case 244:                       // 'text'
 
9658
      parse_CompTextConstructor();
 
9659
      break;
 
9660
    case 96:                        // 'comment'
 
9661
      parse_CompCommentConstructor();
 
9662
      break;
 
9663
    default:
 
9664
      parse_CompPIConstructor();
 
9665
    }
 
9666
    eventHandler.endNonterminal("ComputedConstructor", e0);
 
9667
  }
 
9668
 
 
9669
  function try_ComputedConstructor()
 
9670
  {
 
9671
    switch (l1)
 
9672
    {
 
9673
    case 119:                       // 'document'
 
9674
      try_CompDocConstructor();
 
9675
      break;
 
9676
    case 121:                       // 'element'
 
9677
      try_CompElemConstructor();
 
9678
      break;
 
9679
    case 82:                        // 'attribute'
 
9680
      try_CompAttrConstructor();
 
9681
      break;
 
9682
    case 184:                       // 'namespace'
 
9683
      try_CompNamespaceConstructor();
 
9684
      break;
 
9685
    case 244:                       // 'text'
 
9686
      try_CompTextConstructor();
 
9687
      break;
 
9688
    case 96:                        // 'comment'
 
9689
      try_CompCommentConstructor();
 
9690
      break;
 
9691
    default:
 
9692
      try_CompPIConstructor();
 
9693
    }
 
9694
  }
 
9695
 
 
9696
  function parse_CompElemConstructor()
 
9697
  {
 
9698
    eventHandler.startNonterminal("CompElemConstructor", e0);
 
9699
    shift(121);                     // 'element'
 
9700
    lookahead1W(256);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9701
    switch (l1)
 
9702
    {
 
9703
    case 276:                       // '{'
 
9704
      shift(276);                   // '{'
 
9705
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9706
      whitespace();
 
9707
      parse_Expr();
 
9708
      shift(282);                   // '}'
 
9709
      break;
 
9710
    default:
 
9711
      whitespace();
 
9712
      parse_EQName();
 
9713
    }
 
9714
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9715
    shift(276);                     // '{'
 
9716
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9717
    if (l1 != 282)                  // '}'
 
9718
    {
 
9719
      whitespace();
 
9720
      parse_ContentExpr();
 
9721
    }
 
9722
    shift(282);                     // '}'
 
9723
    eventHandler.endNonterminal("CompElemConstructor", e0);
 
9724
  }
 
9725
 
 
9726
  function try_CompElemConstructor()
 
9727
  {
 
9728
    shiftT(121);                    // 'element'
 
9729
    lookahead1W(256);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9730
    switch (l1)
 
9731
    {
 
9732
    case 276:                       // '{'
 
9733
      shiftT(276);                  // '{'
 
9734
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9735
      try_Expr();
 
9736
      shiftT(282);                  // '}'
 
9737
      break;
 
9738
    default:
 
9739
      try_EQName();
 
9740
    }
 
9741
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9742
    shiftT(276);                    // '{'
 
9743
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9744
    if (l1 != 282)                  // '}'
 
9745
    {
 
9746
      try_ContentExpr();
 
9747
    }
 
9748
    shiftT(282);                    // '}'
 
9749
  }
 
9750
 
 
9751
  function parse_CompNamespaceConstructor()
 
9752
  {
 
9753
    eventHandler.startNonterminal("CompNamespaceConstructor", e0);
 
9754
    shift(184);                     // 'namespace'
 
9755
    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9756
    switch (l1)
 
9757
    {
 
9758
    case 276:                       // '{'
 
9759
      shift(276);                   // '{'
 
9760
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9761
      whitespace();
 
9762
      parse_PrefixExpr();
 
9763
      shift(282);                   // '}'
 
9764
      break;
 
9765
    default:
 
9766
      whitespace();
 
9767
      parse_Prefix();
 
9768
    }
 
9769
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9770
    shift(276);                     // '{'
 
9771
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9772
    whitespace();
 
9773
    parse_URIExpr();
 
9774
    shift(282);                     // '}'
 
9775
    eventHandler.endNonterminal("CompNamespaceConstructor", e0);
 
9776
  }
 
9777
 
 
9778
  function try_CompNamespaceConstructor()
 
9779
  {
 
9780
    shiftT(184);                    // 'namespace'
 
9781
    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9782
    switch (l1)
 
9783
    {
 
9784
    case 276:                       // '{'
 
9785
      shiftT(276);                  // '{'
 
9786
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9787
      try_PrefixExpr();
 
9788
      shiftT(282);                  // '}'
 
9789
      break;
 
9790
    default:
 
9791
      try_Prefix();
 
9792
    }
 
9793
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9794
    shiftT(276);                    // '{'
 
9795
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
9796
    try_URIExpr();
 
9797
    shiftT(282);                    // '}'
 
9798
  }
 
9799
 
 
9800
  function parse_Prefix()
 
9801
  {
 
9802
    eventHandler.startNonterminal("Prefix", e0);
 
9803
    parse_NCName();
 
9804
    eventHandler.endNonterminal("Prefix", e0);
 
9805
  }
 
9806
 
 
9807
  function try_Prefix()
 
9808
  {
 
9809
    try_NCName();
 
9810
  }
 
9811
 
 
9812
  function parse_PrefixExpr()
 
9813
  {
 
9814
    eventHandler.startNonterminal("PrefixExpr", e0);
 
9815
    parse_Expr();
 
9816
    eventHandler.endNonterminal("PrefixExpr", e0);
 
9817
  }
 
9818
 
 
9819
  function try_PrefixExpr()
 
9820
  {
 
9821
    try_Expr();
 
9822
  }
 
9823
 
 
9824
  function parse_URIExpr()
 
9825
  {
 
9826
    eventHandler.startNonterminal("URIExpr", e0);
 
9827
    parse_Expr();
 
9828
    eventHandler.endNonterminal("URIExpr", e0);
 
9829
  }
 
9830
 
 
9831
  function try_URIExpr()
 
9832
  {
 
9833
    try_Expr();
 
9834
  }
 
9835
 
 
9836
  function parse_FunctionItemExpr()
 
9837
  {
 
9838
    eventHandler.startNonterminal("FunctionItemExpr", e0);
 
9839
    switch (l1)
 
9840
    {
 
9841
    case 145:                       // 'function'
 
9842
      lookahead2W(92);              // S^WS | '#' | '(' | '(:'
 
9843
      break;
 
9844
    default:
 
9845
      lk = l1;
 
9846
    }
 
9847
    switch (lk)
 
9848
    {
 
9849
    case 32:                        // '%'
 
9850
    case 17553:                     // 'function' '('
 
9851
      parse_InlineFunctionExpr();
 
9852
      break;
 
9853
    default:
 
9854
      parse_NamedFunctionRef();
 
9855
    }
 
9856
    eventHandler.endNonterminal("FunctionItemExpr", e0);
 
9857
  }
 
9858
 
 
9859
  function try_FunctionItemExpr()
 
9860
  {
 
9861
    switch (l1)
 
9862
    {
 
9863
    case 145:                       // 'function'
 
9864
      lookahead2W(92);              // S^WS | '#' | '(' | '(:'
 
9865
      break;
 
9866
    default:
 
9867
      lk = l1;
 
9868
    }
 
9869
    switch (lk)
 
9870
    {
 
9871
    case 32:                        // '%'
 
9872
    case 17553:                     // 'function' '('
 
9873
      try_InlineFunctionExpr();
 
9874
      break;
 
9875
    default:
 
9876
      try_NamedFunctionRef();
 
9877
    }
 
9878
  }
 
9879
 
 
9880
  function parse_NamedFunctionRef()
 
9881
  {
 
9882
    eventHandler.startNonterminal("NamedFunctionRef", e0);
 
9883
    parse_EQName();
 
9884
    lookahead1W(20);                // S^WS | '#' | '(:'
 
9885
    shift(29);                      // '#'
 
9886
    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'
 
9887
    shift(8);                       // IntegerLiteral
 
9888
    eventHandler.endNonterminal("NamedFunctionRef", e0);
 
9889
  }
 
9890
 
 
9891
  function try_NamedFunctionRef()
 
9892
  {
 
9893
    try_EQName();
 
9894
    lookahead1W(20);                // S^WS | '#' | '(:'
 
9895
    shiftT(29);                     // '#'
 
9896
    lookahead1W(16);                // IntegerLiteral | S^WS | '(:'
 
9897
    shiftT(8);                      // IntegerLiteral
 
9898
  }
 
9899
 
 
9900
  function parse_InlineFunctionExpr()
 
9901
  {
 
9902
    eventHandler.startNonterminal("InlineFunctionExpr", e0);
 
9903
    for (;;)
 
9904
    {
 
9905
      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'
 
9906
      if (l1 != 32)                 // '%'
 
9907
      {
 
9908
        break;
 
9909
      }
 
9910
      whitespace();
 
9911
      parse_Annotation();
 
9912
    }
 
9913
    shift(145);                     // 'function'
 
9914
    lookahead1W(22);                // S^WS | '(' | '(:'
 
9915
    shift(34);                      // '('
 
9916
    lookahead1W(94);                // S^WS | '$' | '(:' | ')'
 
9917
    if (l1 == 31)                   // '$'
 
9918
    {
 
9919
      whitespace();
 
9920
      parse_ParamList();
 
9921
    }
 
9922
    shift(37);                      // ')'
 
9923
    lookahead1W(111);               // S^WS | '(:' | 'as' | '{'
 
9924
    if (l1 == 79)                   // 'as'
 
9925
    {
 
9926
      shift(79);                    // 'as'
 
9927
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9928
      whitespace();
 
9929
      parse_SequenceType();
 
9930
    }
 
9931
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9932
    whitespace();
 
9933
    parse_FunctionBody();
 
9934
    eventHandler.endNonterminal("InlineFunctionExpr", e0);
 
9935
  }
 
9936
 
 
9937
  function try_InlineFunctionExpr()
 
9938
  {
 
9939
    for (;;)
 
9940
    {
 
9941
      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'
 
9942
      if (l1 != 32)                 // '%'
 
9943
      {
 
9944
        break;
 
9945
      }
 
9946
      try_Annotation();
 
9947
    }
 
9948
    shiftT(145);                    // 'function'
 
9949
    lookahead1W(22);                // S^WS | '(' | '(:'
 
9950
    shiftT(34);                     // '('
 
9951
    lookahead1W(94);                // S^WS | '$' | '(:' | ')'
 
9952
    if (l1 == 31)                   // '$'
 
9953
    {
 
9954
      try_ParamList();
 
9955
    }
 
9956
    shiftT(37);                     // ')'
 
9957
    lookahead1W(111);               // S^WS | '(:' | 'as' | '{'
 
9958
    if (l1 == 79)                   // 'as'
 
9959
    {
 
9960
      shiftT(79);                   // 'as'
 
9961
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9962
      try_SequenceType();
 
9963
    }
 
9964
    lookahead1W(87);                // S^WS | '(:' | '{'
 
9965
    try_FunctionBody();
 
9966
  }
 
9967
 
 
9968
  function parse_SingleType()
 
9969
  {
 
9970
    eventHandler.startNonterminal("SingleType", e0);
 
9971
    parse_SimpleTypeName();
 
9972
    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
9973
    if (l1 == 64)                   // '?'
 
9974
    {
 
9975
      shift(64);                    // '?'
 
9976
    }
 
9977
    eventHandler.endNonterminal("SingleType", e0);
 
9978
  }
 
9979
 
 
9980
  function try_SingleType()
 
9981
  {
 
9982
    try_SimpleTypeName();
 
9983
    lookahead1W(226);               // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
 
9984
    if (l1 == 64)                   // '?'
 
9985
    {
 
9986
      shiftT(64);                   // '?'
 
9987
    }
 
9988
  }
 
9989
 
 
9990
  function parse_TypeDeclaration()
 
9991
  {
 
9992
    eventHandler.startNonterminal("TypeDeclaration", e0);
 
9993
    shift(79);                      // 'as'
 
9994
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
9995
    whitespace();
 
9996
    parse_SequenceType();
 
9997
    eventHandler.endNonterminal("TypeDeclaration", e0);
 
9998
  }
 
9999
 
 
10000
  function try_TypeDeclaration()
 
10001
  {
 
10002
    shiftT(79);                     // 'as'
 
10003
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10004
    try_SequenceType();
 
10005
  }
 
10006
 
 
10007
  function parse_SequenceType()
 
10008
  {
 
10009
    eventHandler.startNonterminal("SequenceType", e0);
 
10010
    switch (l1)
 
10011
    {
 
10012
    case 124:                       // 'empty-sequence'
 
10013
      lookahead2W(241);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
 
10014
      break;
 
10015
    default:
 
10016
      lk = l1;
 
10017
    }
 
10018
    switch (lk)
 
10019
    {
 
10020
    case 17532:                     // 'empty-sequence' '('
 
10021
      shift(124);                   // 'empty-sequence'
 
10022
      lookahead1W(22);              // S^WS | '(' | '(:'
 
10023
      shift(34);                    // '('
 
10024
      lookahead1W(23);              // S^WS | '(:' | ')'
 
10025
      shift(37);                    // ')'
 
10026
      break;
 
10027
    default:
 
10028
      parse_ItemType();
 
10029
      lookahead1W(237);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |
 
10030
      switch (l1)
 
10031
      {
 
10032
      case 39:                      // '*'
 
10033
      case 40:                      // '+'
 
10034
      case 64:                      // '?'
 
10035
        whitespace();
 
10036
        parse_OccurrenceIndicator();
 
10037
        break;
 
10038
      default:
 
10039
        break;
 
10040
      }
 
10041
    }
 
10042
    eventHandler.endNonterminal("SequenceType", e0);
 
10043
  }
 
10044
 
 
10045
  function try_SequenceType()
 
10046
  {
 
10047
    switch (l1)
 
10048
    {
 
10049
    case 124:                       // 'empty-sequence'
 
10050
      lookahead2W(241);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
 
10051
      break;
 
10052
    default:
 
10053
      lk = l1;
 
10054
    }
 
10055
    switch (lk)
 
10056
    {
 
10057
    case 17532:                     // 'empty-sequence' '('
 
10058
      shiftT(124);                  // 'empty-sequence'
 
10059
      lookahead1W(22);              // S^WS | '(' | '(:'
 
10060
      shiftT(34);                   // '('
 
10061
      lookahead1W(23);              // S^WS | '(:' | ')'
 
10062
      shiftT(37);                   // ')'
 
10063
      break;
 
10064
    default:
 
10065
      try_ItemType();
 
10066
      lookahead1W(237);             // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |
 
10067
      switch (l1)
 
10068
      {
 
10069
      case 39:                      // '*'
 
10070
      case 40:                      // '+'
 
10071
      case 64:                      // '?'
 
10072
        try_OccurrenceIndicator();
 
10073
        break;
 
10074
      default:
 
10075
        break;
 
10076
      }
 
10077
    }
 
10078
  }
 
10079
 
 
10080
  function parse_OccurrenceIndicator()
 
10081
  {
 
10082
    eventHandler.startNonterminal("OccurrenceIndicator", e0);
 
10083
    switch (l1)
 
10084
    {
 
10085
    case 64:                        // '?'
 
10086
      shift(64);                    // '?'
 
10087
      break;
 
10088
    case 39:                        // '*'
 
10089
      shift(39);                    // '*'
 
10090
      break;
 
10091
    default:
 
10092
      shift(40);                    // '+'
 
10093
    }
 
10094
    eventHandler.endNonterminal("OccurrenceIndicator", e0);
 
10095
  }
 
10096
 
 
10097
  function try_OccurrenceIndicator()
 
10098
  {
 
10099
    switch (l1)
 
10100
    {
 
10101
    case 64:                        // '?'
 
10102
      shiftT(64);                   // '?'
 
10103
      break;
 
10104
    case 39:                        // '*'
 
10105
      shiftT(39);                   // '*'
 
10106
      break;
 
10107
    default:
 
10108
      shiftT(40);                   // '+'
 
10109
    }
 
10110
  }
 
10111
 
 
10112
  function parse_ItemType()
 
10113
  {
 
10114
    eventHandler.startNonterminal("ItemType", e0);
 
10115
    switch (l1)
 
10116
    {
 
10117
    case 78:                        // 'array'
 
10118
    case 82:                        // 'attribute'
 
10119
    case 96:                        // 'comment'
 
10120
    case 120:                       // 'document-node'
 
10121
    case 121:                       // 'element'
 
10122
    case 145:                       // 'function'
 
10123
    case 165:                       // 'item'
 
10124
    case 167:                       // 'json-item'
 
10125
    case 185:                       // 'namespace-node'
 
10126
    case 191:                       // 'node'
 
10127
    case 194:                       // 'object'
 
10128
    case 216:                       // 'processing-instruction'
 
10129
    case 226:                       // 'schema-attribute'
 
10130
    case 227:                       // 'schema-element'
 
10131
    case 244:                       // 'text'
 
10132
      lookahead2W(241);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
 
10133
      break;
 
10134
    default:
 
10135
      lk = l1;
 
10136
    }
 
10137
    if (lk == 17486                 // 'array' '('
 
10138
     || lk == 17575                 // 'json-item' '('
 
10139
     || lk == 17602)                // 'object' '('
 
10140
    {
 
10141
      lk = memoized(4, e0);
 
10142
      if (lk == 0)
 
10143
      {
 
10144
        var b0A = b0; var e0A = e0; var l1A = l1;
 
10145
        var b1A = b1; var e1A = e1; var l2A = l2;
 
10146
        var b2A = b2; var e2A = e2;
 
10147
        try
 
10148
        {
 
10149
          try_KindTest();
 
10150
          lk = -1;
 
10151
        }
 
10152
        catch (p1A)
 
10153
        {
 
10154
          lk = -6;
 
10155
        }
 
10156
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
10157
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
10158
        b2 = b2A; e2 = e2A; end = e2A; }}
 
10159
        memoize(4, e0, lk);
 
10160
      }
 
10161
    }
 
10162
    switch (lk)
 
10163
    {
 
10164
    case -1:
 
10165
    case 17490:                     // 'attribute' '('
 
10166
    case 17504:                     // 'comment' '('
 
10167
    case 17528:                     // 'document-node' '('
 
10168
    case 17529:                     // 'element' '('
 
10169
    case 17593:                     // 'namespace-node' '('
 
10170
    case 17599:                     // 'node' '('
 
10171
    case 17624:                     // 'processing-instruction' '('
 
10172
    case 17634:                     // 'schema-attribute' '('
 
10173
    case 17635:                     // 'schema-element' '('
 
10174
    case 17652:                     // 'text' '('
 
10175
      parse_KindTest();
 
10176
      break;
 
10177
    case 17573:                     // 'item' '('
 
10178
      shift(165);                   // 'item'
 
10179
      lookahead1W(22);              // S^WS | '(' | '(:'
 
10180
      shift(34);                    // '('
 
10181
      lookahead1W(23);              // S^WS | '(:' | ')'
 
10182
      shift(37);                    // ')'
 
10183
      break;
 
10184
    case 32:                        // '%'
 
10185
    case 17553:                     // 'function' '('
 
10186
      parse_FunctionTest();
 
10187
      break;
 
10188
    case 34:                        // '('
 
10189
      parse_ParenthesizedItemType();
 
10190
      break;
 
10191
    case -6:
 
10192
      parse_JSONTest();
 
10193
      break;
 
10194
    case 242:                       // 'structured-item'
 
10195
      parse_StructuredItemTest();
 
10196
      break;
 
10197
    default:
 
10198
      parse_AtomicOrUnionType();
 
10199
    }
 
10200
    eventHandler.endNonterminal("ItemType", e0);
 
10201
  }
 
10202
 
 
10203
  function try_ItemType()
 
10204
  {
 
10205
    switch (l1)
 
10206
    {
 
10207
    case 78:                        // 'array'
 
10208
    case 82:                        // 'attribute'
 
10209
    case 96:                        // 'comment'
 
10210
    case 120:                       // 'document-node'
 
10211
    case 121:                       // 'element'
 
10212
    case 145:                       // 'function'
 
10213
    case 165:                       // 'item'
 
10214
    case 167:                       // 'json-item'
 
10215
    case 185:                       // 'namespace-node'
 
10216
    case 191:                       // 'node'
 
10217
    case 194:                       // 'object'
 
10218
    case 216:                       // 'processing-instruction'
 
10219
    case 226:                       // 'schema-attribute'
 
10220
    case 227:                       // 'schema-element'
 
10221
    case 244:                       // 'text'
 
10222
      lookahead2W(241);             // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
 
10223
      break;
 
10224
    default:
 
10225
      lk = l1;
 
10226
    }
 
10227
    if (lk == 17486                 // 'array' '('
 
10228
     || lk == 17575                 // 'json-item' '('
 
10229
     || lk == 17602)                // 'object' '('
 
10230
    {
 
10231
      lk = memoized(4, e0);
 
10232
      if (lk == 0)
 
10233
      {
 
10234
        var b0A = b0; var e0A = e0; var l1A = l1;
 
10235
        var b1A = b1; var e1A = e1; var l2A = l2;
 
10236
        var b2A = b2; var e2A = e2;
 
10237
        try
 
10238
        {
 
10239
          try_KindTest();
 
10240
          memoize(4, e0A, -1);
 
10241
          lk = -8;
 
10242
        }
 
10243
        catch (p1A)
 
10244
        {
 
10245
          lk = -6;
 
10246
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
10247
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
10248
          b2 = b2A; e2 = e2A; end = e2A; }}
 
10249
          memoize(4, e0A, -6);
 
10250
        }
 
10251
      }
 
10252
    }
 
10253
    switch (lk)
 
10254
    {
 
10255
    case -1:
 
10256
    case 17490:                     // 'attribute' '('
 
10257
    case 17504:                     // 'comment' '('
 
10258
    case 17528:                     // 'document-node' '('
 
10259
    case 17529:                     // 'element' '('
 
10260
    case 17593:                     // 'namespace-node' '('
 
10261
    case 17599:                     // 'node' '('
 
10262
    case 17624:                     // 'processing-instruction' '('
 
10263
    case 17634:                     // 'schema-attribute' '('
 
10264
    case 17635:                     // 'schema-element' '('
 
10265
    case 17652:                     // 'text' '('
 
10266
      try_KindTest();
 
10267
      break;
 
10268
    case 17573:                     // 'item' '('
 
10269
      shiftT(165);                  // 'item'
 
10270
      lookahead1W(22);              // S^WS | '(' | '(:'
 
10271
      shiftT(34);                   // '('
 
10272
      lookahead1W(23);              // S^WS | '(:' | ')'
 
10273
      shiftT(37);                   // ')'
 
10274
      break;
 
10275
    case 32:                        // '%'
 
10276
    case 17553:                     // 'function' '('
 
10277
      try_FunctionTest();
 
10278
      break;
 
10279
    case 34:                        // '('
 
10280
      try_ParenthesizedItemType();
 
10281
      break;
 
10282
    case -6:
 
10283
      try_JSONTest();
 
10284
      break;
 
10285
    case 242:                       // 'structured-item'
 
10286
      try_StructuredItemTest();
 
10287
      break;
 
10288
    case -8:
 
10289
      break;
 
10290
    default:
 
10291
      try_AtomicOrUnionType();
 
10292
    }
 
10293
  }
 
10294
 
 
10295
  function parse_JSONTest()
 
10296
  {
 
10297
    eventHandler.startNonterminal("JSONTest", e0);
 
10298
    switch (l1)
 
10299
    {
 
10300
    case 167:                       // 'json-item'
 
10301
      parse_JSONItemTest();
 
10302
      break;
 
10303
    case 194:                       // 'object'
 
10304
      parse_JSONObjectTest();
 
10305
      break;
 
10306
    default:
 
10307
      parse_JSONArrayTest();
 
10308
    }
 
10309
    eventHandler.endNonterminal("JSONTest", e0);
 
10310
  }
 
10311
 
 
10312
  function try_JSONTest()
 
10313
  {
 
10314
    switch (l1)
 
10315
    {
 
10316
    case 167:                       // 'json-item'
 
10317
      try_JSONItemTest();
 
10318
      break;
 
10319
    case 194:                       // 'object'
 
10320
      try_JSONObjectTest();
 
10321
      break;
 
10322
    default:
 
10323
      try_JSONArrayTest();
 
10324
    }
 
10325
  }
 
10326
 
 
10327
  function parse_StructuredItemTest()
 
10328
  {
 
10329
    eventHandler.startNonterminal("StructuredItemTest", e0);
 
10330
    shift(242);                     // 'structured-item'
 
10331
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10332
    shift(34);                      // '('
 
10333
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10334
    shift(37);                      // ')'
 
10335
    eventHandler.endNonterminal("StructuredItemTest", e0);
 
10336
  }
 
10337
 
 
10338
  function try_StructuredItemTest()
 
10339
  {
 
10340
    shiftT(242);                    // 'structured-item'
 
10341
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10342
    shiftT(34);                     // '('
 
10343
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10344
    shiftT(37);                     // ')'
 
10345
  }
 
10346
 
 
10347
  function parse_JSONItemTest()
 
10348
  {
 
10349
    eventHandler.startNonterminal("JSONItemTest", e0);
 
10350
    shift(167);                     // 'json-item'
 
10351
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10352
    shift(34);                      // '('
 
10353
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10354
    shift(37);                      // ')'
 
10355
    eventHandler.endNonterminal("JSONItemTest", e0);
 
10356
  }
 
10357
 
 
10358
  function try_JSONItemTest()
 
10359
  {
 
10360
    shiftT(167);                    // 'json-item'
 
10361
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10362
    shiftT(34);                     // '('
 
10363
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10364
    shiftT(37);                     // ')'
 
10365
  }
 
10366
 
 
10367
  function parse_JSONObjectTest()
 
10368
  {
 
10369
    eventHandler.startNonterminal("JSONObjectTest", e0);
 
10370
    shift(194);                     // 'object'
 
10371
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10372
    shift(34);                      // '('
 
10373
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10374
    shift(37);                      // ')'
 
10375
    eventHandler.endNonterminal("JSONObjectTest", e0);
 
10376
  }
 
10377
 
 
10378
  function try_JSONObjectTest()
 
10379
  {
 
10380
    shiftT(194);                    // 'object'
 
10381
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10382
    shiftT(34);                     // '('
 
10383
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10384
    shiftT(37);                     // ')'
 
10385
  }
 
10386
 
 
10387
  function parse_JSONArrayTest()
 
10388
  {
 
10389
    eventHandler.startNonterminal("JSONArrayTest", e0);
 
10390
    shift(78);                      // 'array'
 
10391
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10392
    shift(34);                      // '('
 
10393
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10394
    shift(37);                      // ')'
 
10395
    eventHandler.endNonterminal("JSONArrayTest", e0);
 
10396
  }
 
10397
 
 
10398
  function try_JSONArrayTest()
 
10399
  {
 
10400
    shiftT(78);                     // 'array'
 
10401
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10402
    shiftT(34);                     // '('
 
10403
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10404
    shiftT(37);                     // ')'
 
10405
  }
 
10406
 
 
10407
  function parse_AtomicOrUnionType()
 
10408
  {
 
10409
    eventHandler.startNonterminal("AtomicOrUnionType", e0);
 
10410
    parse_EQName();
 
10411
    eventHandler.endNonterminal("AtomicOrUnionType", e0);
 
10412
  }
 
10413
 
 
10414
  function try_AtomicOrUnionType()
 
10415
  {
 
10416
    try_EQName();
 
10417
  }
 
10418
 
 
10419
  function parse_KindTest()
 
10420
  {
 
10421
    eventHandler.startNonterminal("KindTest", e0);
 
10422
    switch (l1)
 
10423
    {
 
10424
    case 120:                       // 'document-node'
 
10425
      parse_DocumentTest();
 
10426
      break;
 
10427
    case 121:                       // 'element'
 
10428
      parse_ElementTest();
 
10429
      break;
 
10430
    case 82:                        // 'attribute'
 
10431
      parse_AttributeTest();
 
10432
      break;
 
10433
    case 227:                       // 'schema-element'
 
10434
      parse_SchemaElementTest();
 
10435
      break;
 
10436
    case 226:                       // 'schema-attribute'
 
10437
      parse_SchemaAttributeTest();
 
10438
      break;
 
10439
    case 216:                       // 'processing-instruction'
 
10440
      parse_PITest();
 
10441
      break;
 
10442
    case 96:                        // 'comment'
 
10443
      parse_CommentTest();
 
10444
      break;
 
10445
    case 244:                       // 'text'
 
10446
      parse_TextTest();
 
10447
      break;
 
10448
    case 185:                       // 'namespace-node'
 
10449
      parse_NamespaceNodeTest();
 
10450
      break;
 
10451
    case 191:                       // 'node'
 
10452
      parse_AnyKindTest();
 
10453
      break;
 
10454
    default:
 
10455
      parse_JSONTest();
 
10456
    }
 
10457
    eventHandler.endNonterminal("KindTest", e0);
 
10458
  }
 
10459
 
 
10460
  function try_KindTest()
 
10461
  {
 
10462
    switch (l1)
 
10463
    {
 
10464
    case 120:                       // 'document-node'
 
10465
      try_DocumentTest();
 
10466
      break;
 
10467
    case 121:                       // 'element'
 
10468
      try_ElementTest();
 
10469
      break;
 
10470
    case 82:                        // 'attribute'
 
10471
      try_AttributeTest();
 
10472
      break;
 
10473
    case 227:                       // 'schema-element'
 
10474
      try_SchemaElementTest();
 
10475
      break;
 
10476
    case 226:                       // 'schema-attribute'
 
10477
      try_SchemaAttributeTest();
 
10478
      break;
 
10479
    case 216:                       // 'processing-instruction'
 
10480
      try_PITest();
 
10481
      break;
 
10482
    case 96:                        // 'comment'
 
10483
      try_CommentTest();
 
10484
      break;
 
10485
    case 244:                       // 'text'
 
10486
      try_TextTest();
 
10487
      break;
 
10488
    case 185:                       // 'namespace-node'
 
10489
      try_NamespaceNodeTest();
 
10490
      break;
 
10491
    case 191:                       // 'node'
 
10492
      try_AnyKindTest();
 
10493
      break;
 
10494
    default:
 
10495
      try_JSONTest();
 
10496
    }
 
10497
  }
 
10498
 
 
10499
  function parse_AnyKindTest()
 
10500
  {
 
10501
    eventHandler.startNonterminal("AnyKindTest", e0);
 
10502
    shift(191);                     // 'node'
 
10503
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10504
    shift(34);                      // '('
 
10505
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10506
    shift(37);                      // ')'
 
10507
    eventHandler.endNonterminal("AnyKindTest", e0);
 
10508
  }
 
10509
 
 
10510
  function try_AnyKindTest()
 
10511
  {
 
10512
    shiftT(191);                    // 'node'
 
10513
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10514
    shiftT(34);                     // '('
 
10515
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10516
    shiftT(37);                     // ')'
 
10517
  }
 
10518
 
 
10519
  function parse_DocumentTest()
 
10520
  {
 
10521
    eventHandler.startNonterminal("DocumentTest", e0);
 
10522
    shift(120);                     // 'document-node'
 
10523
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10524
    shift(34);                      // '('
 
10525
    lookahead1W(144);               // S^WS | '(:' | ')' | 'element' | 'schema-element'
 
10526
    if (l1 != 37)                   // ')'
 
10527
    {
 
10528
      switch (l1)
 
10529
      {
 
10530
      case 121:                     // 'element'
 
10531
        whitespace();
 
10532
        parse_ElementTest();
 
10533
        break;
 
10534
      default:
 
10535
        whitespace();
 
10536
        parse_SchemaElementTest();
 
10537
      }
 
10538
    }
 
10539
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10540
    shift(37);                      // ')'
 
10541
    eventHandler.endNonterminal("DocumentTest", e0);
 
10542
  }
 
10543
 
 
10544
  function try_DocumentTest()
 
10545
  {
 
10546
    shiftT(120);                    // 'document-node'
 
10547
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10548
    shiftT(34);                     // '('
 
10549
    lookahead1W(144);               // S^WS | '(:' | ')' | 'element' | 'schema-element'
 
10550
    if (l1 != 37)                   // ')'
 
10551
    {
 
10552
      switch (l1)
 
10553
      {
 
10554
      case 121:                     // 'element'
 
10555
        try_ElementTest();
 
10556
        break;
 
10557
      default:
 
10558
        try_SchemaElementTest();
 
10559
      }
 
10560
    }
 
10561
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10562
    shiftT(37);                     // ')'
 
10563
  }
 
10564
 
 
10565
  function parse_TextTest()
 
10566
  {
 
10567
    eventHandler.startNonterminal("TextTest", e0);
 
10568
    shift(244);                     // 'text'
 
10569
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10570
    shift(34);                      // '('
 
10571
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10572
    shift(37);                      // ')'
 
10573
    eventHandler.endNonterminal("TextTest", e0);
 
10574
  }
 
10575
 
 
10576
  function try_TextTest()
 
10577
  {
 
10578
    shiftT(244);                    // 'text'
 
10579
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10580
    shiftT(34);                     // '('
 
10581
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10582
    shiftT(37);                     // ')'
 
10583
  }
 
10584
 
 
10585
  function parse_CommentTest()
 
10586
  {
 
10587
    eventHandler.startNonterminal("CommentTest", e0);
 
10588
    shift(96);                      // 'comment'
 
10589
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10590
    shift(34);                      // '('
 
10591
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10592
    shift(37);                      // ')'
 
10593
    eventHandler.endNonterminal("CommentTest", e0);
 
10594
  }
 
10595
 
 
10596
  function try_CommentTest()
 
10597
  {
 
10598
    shiftT(96);                     // 'comment'
 
10599
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10600
    shiftT(34);                     // '('
 
10601
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10602
    shiftT(37);                     // ')'
 
10603
  }
 
10604
 
 
10605
  function parse_NamespaceNodeTest()
 
10606
  {
 
10607
    eventHandler.startNonterminal("NamespaceNodeTest", e0);
 
10608
    shift(185);                     // 'namespace-node'
 
10609
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10610
    shift(34);                      // '('
 
10611
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10612
    shift(37);                      // ')'
 
10613
    eventHandler.endNonterminal("NamespaceNodeTest", e0);
 
10614
  }
 
10615
 
 
10616
  function try_NamespaceNodeTest()
 
10617
  {
 
10618
    shiftT(185);                    // 'namespace-node'
 
10619
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10620
    shiftT(34);                     // '('
 
10621
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10622
    shiftT(37);                     // ')'
 
10623
  }
 
10624
 
 
10625
  function parse_PITest()
 
10626
  {
 
10627
    eventHandler.startNonterminal("PITest", e0);
 
10628
    shift(216);                     // 'processing-instruction'
 
10629
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10630
    shift(34);                      // '('
 
10631
    lookahead1W(251);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |
 
10632
    if (l1 != 37)                   // ')'
 
10633
    {
 
10634
      switch (l1)
 
10635
      {
 
10636
      case 11:                      // StringLiteral
 
10637
        shift(11);                  // StringLiteral
 
10638
        break;
 
10639
      default:
 
10640
        whitespace();
 
10641
        parse_NCName();
 
10642
      }
 
10643
    }
 
10644
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10645
    shift(37);                      // ')'
 
10646
    eventHandler.endNonterminal("PITest", e0);
 
10647
  }
 
10648
 
 
10649
  function try_PITest()
 
10650
  {
 
10651
    shiftT(216);                    // 'processing-instruction'
 
10652
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10653
    shiftT(34);                     // '('
 
10654
    lookahead1W(251);               // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |
 
10655
    if (l1 != 37)                   // ')'
 
10656
    {
 
10657
      switch (l1)
 
10658
      {
 
10659
      case 11:                      // StringLiteral
 
10660
        shiftT(11);                 // StringLiteral
 
10661
        break;
 
10662
      default:
 
10663
        try_NCName();
 
10664
      }
 
10665
    }
 
10666
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10667
    shiftT(37);                     // ')'
 
10668
  }
 
10669
 
 
10670
  function parse_AttributeTest()
 
10671
  {
 
10672
    eventHandler.startNonterminal("AttributeTest", e0);
 
10673
    shift(82);                      // 'attribute'
 
10674
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10675
    shift(34);                      // '('
 
10676
    lookahead1W(258);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
 
10677
    if (l1 != 37)                   // ')'
 
10678
    {
 
10679
      whitespace();
 
10680
      parse_AttribNameOrWildcard();
 
10681
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
10682
      if (l1 == 41)                 // ','
 
10683
      {
 
10684
        shift(41);                  // ','
 
10685
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10686
        whitespace();
 
10687
        parse_TypeName();
 
10688
      }
 
10689
    }
 
10690
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10691
    shift(37);                      // ')'
 
10692
    eventHandler.endNonterminal("AttributeTest", e0);
 
10693
  }
 
10694
 
 
10695
  function try_AttributeTest()
 
10696
  {
 
10697
    shiftT(82);                     // 'attribute'
 
10698
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10699
    shiftT(34);                     // '('
 
10700
    lookahead1W(258);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
 
10701
    if (l1 != 37)                   // ')'
 
10702
    {
 
10703
      try_AttribNameOrWildcard();
 
10704
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
10705
      if (l1 == 41)                 // ','
 
10706
      {
 
10707
        shiftT(41);                 // ','
 
10708
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10709
        try_TypeName();
 
10710
      }
 
10711
    }
 
10712
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10713
    shiftT(37);                     // ')'
 
10714
  }
 
10715
 
 
10716
  function parse_AttribNameOrWildcard()
 
10717
  {
 
10718
    eventHandler.startNonterminal("AttribNameOrWildcard", e0);
 
10719
    switch (l1)
 
10720
    {
 
10721
    case 38:                        // '*'
 
10722
      shift(38);                    // '*'
 
10723
      break;
 
10724
    default:
 
10725
      parse_AttributeName();
 
10726
    }
 
10727
    eventHandler.endNonterminal("AttribNameOrWildcard", e0);
 
10728
  }
 
10729
 
 
10730
  function try_AttribNameOrWildcard()
 
10731
  {
 
10732
    switch (l1)
 
10733
    {
 
10734
    case 38:                        // '*'
 
10735
      shiftT(38);                   // '*'
 
10736
      break;
 
10737
    default:
 
10738
      try_AttributeName();
 
10739
    }
 
10740
  }
 
10741
 
 
10742
  function parse_SchemaAttributeTest()
 
10743
  {
 
10744
    eventHandler.startNonterminal("SchemaAttributeTest", e0);
 
10745
    shift(226);                     // 'schema-attribute'
 
10746
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10747
    shift(34);                      // '('
 
10748
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10749
    whitespace();
 
10750
    parse_AttributeDeclaration();
 
10751
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10752
    shift(37);                      // ')'
 
10753
    eventHandler.endNonterminal("SchemaAttributeTest", e0);
 
10754
  }
 
10755
 
 
10756
  function try_SchemaAttributeTest()
 
10757
  {
 
10758
    shiftT(226);                    // 'schema-attribute'
 
10759
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10760
    shiftT(34);                     // '('
 
10761
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10762
    try_AttributeDeclaration();
 
10763
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10764
    shiftT(37);                     // ')'
 
10765
  }
 
10766
 
 
10767
  function parse_AttributeDeclaration()
 
10768
  {
 
10769
    eventHandler.startNonterminal("AttributeDeclaration", e0);
 
10770
    parse_AttributeName();
 
10771
    eventHandler.endNonterminal("AttributeDeclaration", e0);
 
10772
  }
 
10773
 
 
10774
  function try_AttributeDeclaration()
 
10775
  {
 
10776
    try_AttributeName();
 
10777
  }
 
10778
 
 
10779
  function parse_ElementTest()
 
10780
  {
 
10781
    eventHandler.startNonterminal("ElementTest", e0);
 
10782
    shift(121);                     // 'element'
 
10783
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10784
    shift(34);                      // '('
 
10785
    lookahead1W(258);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
 
10786
    if (l1 != 37)                   // ')'
 
10787
    {
 
10788
      whitespace();
 
10789
      parse_ElementNameOrWildcard();
 
10790
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
10791
      if (l1 == 41)                 // ','
 
10792
      {
 
10793
        shift(41);                  // ','
 
10794
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10795
        whitespace();
 
10796
        parse_TypeName();
 
10797
        lookahead1W(102);           // S^WS | '(:' | ')' | '?'
 
10798
        if (l1 == 64)               // '?'
 
10799
        {
 
10800
          shift(64);                // '?'
 
10801
        }
 
10802
      }
 
10803
    }
 
10804
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10805
    shift(37);                      // ')'
 
10806
    eventHandler.endNonterminal("ElementTest", e0);
 
10807
  }
 
10808
 
 
10809
  function try_ElementTest()
 
10810
  {
 
10811
    shiftT(121);                    // 'element'
 
10812
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10813
    shiftT(34);                     // '('
 
10814
    lookahead1W(258);               // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
 
10815
    if (l1 != 37)                   // ')'
 
10816
    {
 
10817
      try_ElementNameOrWildcard();
 
10818
      lookahead1W(101);             // S^WS | '(:' | ')' | ','
 
10819
      if (l1 == 41)                 // ','
 
10820
      {
 
10821
        shiftT(41);                 // ','
 
10822
        lookahead1W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10823
        try_TypeName();
 
10824
        lookahead1W(102);           // S^WS | '(:' | ')' | '?'
 
10825
        if (l1 == 64)               // '?'
 
10826
        {
 
10827
          shiftT(64);               // '?'
 
10828
        }
 
10829
      }
 
10830
    }
 
10831
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10832
    shiftT(37);                     // ')'
 
10833
  }
 
10834
 
 
10835
  function parse_ElementNameOrWildcard()
 
10836
  {
 
10837
    eventHandler.startNonterminal("ElementNameOrWildcard", e0);
 
10838
    switch (l1)
 
10839
    {
 
10840
    case 38:                        // '*'
 
10841
      shift(38);                    // '*'
 
10842
      break;
 
10843
    default:
 
10844
      parse_ElementName();
 
10845
    }
 
10846
    eventHandler.endNonterminal("ElementNameOrWildcard", e0);
 
10847
  }
 
10848
 
 
10849
  function try_ElementNameOrWildcard()
 
10850
  {
 
10851
    switch (l1)
 
10852
    {
 
10853
    case 38:                        // '*'
 
10854
      shiftT(38);                   // '*'
 
10855
      break;
 
10856
    default:
 
10857
      try_ElementName();
 
10858
    }
 
10859
  }
 
10860
 
 
10861
  function parse_SchemaElementTest()
 
10862
  {
 
10863
    eventHandler.startNonterminal("SchemaElementTest", e0);
 
10864
    shift(227);                     // 'schema-element'
 
10865
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10866
    shift(34);                      // '('
 
10867
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10868
    whitespace();
 
10869
    parse_ElementDeclaration();
 
10870
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10871
    shift(37);                      // ')'
 
10872
    eventHandler.endNonterminal("SchemaElementTest", e0);
 
10873
  }
 
10874
 
 
10875
  function try_SchemaElementTest()
 
10876
  {
 
10877
    shiftT(227);                    // 'schema-element'
 
10878
    lookahead1W(22);                // S^WS | '(' | '(:'
 
10879
    shiftT(34);                     // '('
 
10880
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
10881
    try_ElementDeclaration();
 
10882
    lookahead1W(23);                // S^WS | '(:' | ')'
 
10883
    shiftT(37);                     // ')'
 
10884
  }
 
10885
 
 
10886
  function parse_ElementDeclaration()
 
10887
  {
 
10888
    eventHandler.startNonterminal("ElementDeclaration", e0);
 
10889
    parse_ElementName();
 
10890
    eventHandler.endNonterminal("ElementDeclaration", e0);
 
10891
  }
 
10892
 
 
10893
  function try_ElementDeclaration()
 
10894
  {
 
10895
    try_ElementName();
 
10896
  }
 
10897
 
 
10898
  function parse_AttributeName()
 
10899
  {
 
10900
    eventHandler.startNonterminal("AttributeName", e0);
 
10901
    parse_EQName();
 
10902
    eventHandler.endNonterminal("AttributeName", e0);
 
10903
  }
 
10904
 
 
10905
  function try_AttributeName()
 
10906
  {
 
10907
    try_EQName();
 
10908
  }
 
10909
 
 
10910
  function parse_ElementName()
 
10911
  {
 
10912
    eventHandler.startNonterminal("ElementName", e0);
 
10913
    parse_EQName();
 
10914
    eventHandler.endNonterminal("ElementName", e0);
 
10915
  }
 
10916
 
 
10917
  function try_ElementName()
 
10918
  {
 
10919
    try_EQName();
 
10920
  }
 
10921
 
 
10922
  function parse_SimpleTypeName()
 
10923
  {
 
10924
    eventHandler.startNonterminal("SimpleTypeName", e0);
 
10925
    parse_TypeName();
 
10926
    eventHandler.endNonterminal("SimpleTypeName", e0);
 
10927
  }
 
10928
 
 
10929
  function try_SimpleTypeName()
 
10930
  {
 
10931
    try_TypeName();
 
10932
  }
 
10933
 
 
10934
  function parse_TypeName()
 
10935
  {
 
10936
    eventHandler.startNonterminal("TypeName", e0);
 
10937
    parse_EQName();
 
10938
    eventHandler.endNonterminal("TypeName", e0);
 
10939
  }
 
10940
 
 
10941
  function try_TypeName()
 
10942
  {
 
10943
    try_EQName();
 
10944
  }
 
10945
 
 
10946
  function parse_FunctionTest()
 
10947
  {
 
10948
    eventHandler.startNonterminal("FunctionTest", e0);
 
10949
    for (;;)
 
10950
    {
 
10951
      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'
 
10952
      if (l1 != 32)                 // '%'
 
10953
      {
 
10954
        break;
 
10955
      }
 
10956
      whitespace();
 
10957
      parse_Annotation();
 
10958
    }
 
10959
    switch (l1)
 
10960
    {
 
10961
    case 145:                       // 'function'
 
10962
      lookahead2W(22);              // S^WS | '(' | '(:'
 
10963
      break;
 
10964
    default:
 
10965
      lk = l1;
 
10966
    }
 
10967
    lk = memoized(5, e0);
 
10968
    if (lk == 0)
 
10969
    {
 
10970
      var b0A = b0; var e0A = e0; var l1A = l1;
 
10971
      var b1A = b1; var e1A = e1; var l2A = l2;
 
10972
      var b2A = b2; var e2A = e2;
 
10973
      try
 
10974
      {
 
10975
        try_AnyFunctionTest();
 
10976
        lk = -1;
 
10977
      }
 
10978
      catch (p1A)
 
10979
      {
 
10980
        lk = -2;
 
10981
      }
 
10982
      b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
10983
      b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
10984
      b2 = b2A; e2 = e2A; end = e2A; }}
 
10985
      memoize(5, e0, lk);
 
10986
    }
 
10987
    switch (lk)
 
10988
    {
 
10989
    case -1:
 
10990
      whitespace();
 
10991
      parse_AnyFunctionTest();
 
10992
      break;
 
10993
    default:
 
10994
      whitespace();
 
10995
      parse_TypedFunctionTest();
 
10996
    }
 
10997
    eventHandler.endNonterminal("FunctionTest", e0);
 
10998
  }
 
10999
 
 
11000
  function try_FunctionTest()
 
11001
  {
 
11002
    for (;;)
 
11003
    {
 
11004
      lookahead1W(97);              // S^WS | '%' | '(:' | 'function'
 
11005
      if (l1 != 32)                 // '%'
 
11006
      {
 
11007
        break;
 
11008
      }
 
11009
      try_Annotation();
 
11010
    }
 
11011
    switch (l1)
 
11012
    {
 
11013
    case 145:                       // 'function'
 
11014
      lookahead2W(22);              // S^WS | '(' | '(:'
 
11015
      break;
 
11016
    default:
 
11017
      lk = l1;
 
11018
    }
 
11019
    lk = memoized(5, e0);
 
11020
    if (lk == 0)
 
11021
    {
 
11022
      var b0A = b0; var e0A = e0; var l1A = l1;
 
11023
      var b1A = b1; var e1A = e1; var l2A = l2;
 
11024
      var b2A = b2; var e2A = e2;
 
11025
      try
 
11026
      {
 
11027
        try_AnyFunctionTest();
 
11028
        memoize(5, e0A, -1);
 
11029
        lk = -3;
 
11030
      }
 
11031
      catch (p1A)
 
11032
      {
 
11033
        lk = -2;
 
11034
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
11035
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
11036
        b2 = b2A; e2 = e2A; end = e2A; }}
 
11037
        memoize(5, e0A, -2);
 
11038
      }
 
11039
    }
 
11040
    switch (lk)
 
11041
    {
 
11042
    case -1:
 
11043
      try_AnyFunctionTest();
 
11044
      break;
 
11045
    case -3:
 
11046
      break;
 
11047
    default:
 
11048
      try_TypedFunctionTest();
 
11049
    }
 
11050
  }
 
11051
 
 
11052
  function parse_AnyFunctionTest()
 
11053
  {
 
11054
    eventHandler.startNonterminal("AnyFunctionTest", e0);
 
11055
    shift(145);                     // 'function'
 
11056
    lookahead1W(22);                // S^WS | '(' | '(:'
 
11057
    shift(34);                      // '('
 
11058
    lookahead1W(24);                // S^WS | '(:' | '*'
 
11059
    shift(38);                      // '*'
 
11060
    lookahead1W(23);                // S^WS | '(:' | ')'
 
11061
    shift(37);                      // ')'
 
11062
    eventHandler.endNonterminal("AnyFunctionTest", e0);
 
11063
  }
 
11064
 
 
11065
  function try_AnyFunctionTest()
 
11066
  {
 
11067
    shiftT(145);                    // 'function'
 
11068
    lookahead1W(22);                // S^WS | '(' | '(:'
 
11069
    shiftT(34);                     // '('
 
11070
    lookahead1W(24);                // S^WS | '(:' | '*'
 
11071
    shiftT(38);                     // '*'
 
11072
    lookahead1W(23);                // S^WS | '(:' | ')'
 
11073
    shiftT(37);                     // ')'
 
11074
  }
 
11075
 
 
11076
  function parse_TypedFunctionTest()
 
11077
  {
 
11078
    eventHandler.startNonterminal("TypedFunctionTest", e0);
 
11079
    shift(145);                     // 'function'
 
11080
    lookahead1W(22);                // S^WS | '(' | '(:'
 
11081
    shift(34);                      // '('
 
11082
    lookahead1W(261);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |
 
11083
    if (l1 != 37)                   // ')'
 
11084
    {
 
11085
      whitespace();
 
11086
      parse_SequenceType();
 
11087
      for (;;)
 
11088
      {
 
11089
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
11090
        if (l1 != 41)               // ','
 
11091
        {
 
11092
          break;
 
11093
        }
 
11094
        shift(41);                  // ','
 
11095
        lookahead1W(259);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11096
        whitespace();
 
11097
        parse_SequenceType();
 
11098
      }
 
11099
    }
 
11100
    shift(37);                      // ')'
 
11101
    lookahead1W(30);                // S^WS | '(:' | 'as'
 
11102
    shift(79);                      // 'as'
 
11103
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11104
    whitespace();
 
11105
    parse_SequenceType();
 
11106
    eventHandler.endNonterminal("TypedFunctionTest", e0);
 
11107
  }
 
11108
 
 
11109
  function try_TypedFunctionTest()
 
11110
  {
 
11111
    shiftT(145);                    // 'function'
 
11112
    lookahead1W(22);                // S^WS | '(' | '(:'
 
11113
    shiftT(34);                     // '('
 
11114
    lookahead1W(261);               // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |
 
11115
    if (l1 != 37)                   // ')'
 
11116
    {
 
11117
      try_SequenceType();
 
11118
      for (;;)
 
11119
      {
 
11120
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
11121
        if (l1 != 41)               // ','
 
11122
        {
 
11123
          break;
 
11124
        }
 
11125
        shiftT(41);                 // ','
 
11126
        lookahead1W(259);           // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11127
        try_SequenceType();
 
11128
      }
 
11129
    }
 
11130
    shiftT(37);                     // ')'
 
11131
    lookahead1W(30);                // S^WS | '(:' | 'as'
 
11132
    shiftT(79);                     // 'as'
 
11133
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11134
    try_SequenceType();
 
11135
  }
 
11136
 
 
11137
  function parse_ParenthesizedItemType()
 
11138
  {
 
11139
    eventHandler.startNonterminal("ParenthesizedItemType", e0);
 
11140
    shift(34);                      // '('
 
11141
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11142
    whitespace();
 
11143
    parse_ItemType();
 
11144
    lookahead1W(23);                // S^WS | '(:' | ')'
 
11145
    shift(37);                      // ')'
 
11146
    eventHandler.endNonterminal("ParenthesizedItemType", e0);
 
11147
  }
 
11148
 
 
11149
  function try_ParenthesizedItemType()
 
11150
  {
 
11151
    shiftT(34);                     // '('
 
11152
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11153
    try_ItemType();
 
11154
    lookahead1W(23);                // S^WS | '(:' | ')'
 
11155
    shiftT(37);                     // ')'
 
11156
  }
 
11157
 
 
11158
  function parse_RevalidationDecl()
 
11159
  {
 
11160
    eventHandler.startNonterminal("RevalidationDecl", e0);
 
11161
    shift(108);                     // 'declare'
 
11162
    lookahead1W(72);                // S^WS | '(:' | 'revalidation'
 
11163
    shift(222);                     // 'revalidation'
 
11164
    lookahead1W(152);               // S^WS | '(:' | 'lax' | 'skip' | 'strict'
 
11165
    switch (l1)
 
11166
    {
 
11167
    case 240:                       // 'strict'
 
11168
      shift(240);                   // 'strict'
 
11169
      break;
 
11170
    case 171:                       // 'lax'
 
11171
      shift(171);                   // 'lax'
 
11172
      break;
 
11173
    default:
 
11174
      shift(233);                   // 'skip'
 
11175
    }
 
11176
    eventHandler.endNonterminal("RevalidationDecl", e0);
 
11177
  }
 
11178
 
 
11179
  function parse_InsertExprTargetChoice()
 
11180
  {
 
11181
    eventHandler.startNonterminal("InsertExprTargetChoice", e0);
 
11182
    switch (l1)
 
11183
    {
 
11184
    case 70:                        // 'after'
 
11185
      shift(70);                    // 'after'
 
11186
      break;
 
11187
    case 84:                        // 'before'
 
11188
      shift(84);                    // 'before'
 
11189
      break;
 
11190
    default:
 
11191
      if (l1 == 79)                 // 'as'
 
11192
      {
 
11193
        shift(79);                  // 'as'
 
11194
        lookahead1W(119);           // S^WS | '(:' | 'first' | 'last'
 
11195
        switch (l1)
 
11196
        {
 
11197
        case 134:                   // 'first'
 
11198
          shift(134);               // 'first'
 
11199
          break;
 
11200
        default:
 
11201
          shift(170);               // 'last'
 
11202
        }
 
11203
      }
 
11204
      lookahead1W(54);              // S^WS | '(:' | 'into'
 
11205
      shift(163);                   // 'into'
 
11206
    }
 
11207
    eventHandler.endNonterminal("InsertExprTargetChoice", e0);
 
11208
  }
 
11209
 
 
11210
  function try_InsertExprTargetChoice()
 
11211
  {
 
11212
    switch (l1)
 
11213
    {
 
11214
    case 70:                        // 'after'
 
11215
      shiftT(70);                   // 'after'
 
11216
      break;
 
11217
    case 84:                        // 'before'
 
11218
      shiftT(84);                   // 'before'
 
11219
      break;
 
11220
    default:
 
11221
      if (l1 == 79)                 // 'as'
 
11222
      {
 
11223
        shiftT(79);                 // 'as'
 
11224
        lookahead1W(119);           // S^WS | '(:' | 'first' | 'last'
 
11225
        switch (l1)
 
11226
        {
 
11227
        case 134:                   // 'first'
 
11228
          shiftT(134);              // 'first'
 
11229
          break;
 
11230
        default:
 
11231
          shiftT(170);              // 'last'
 
11232
        }
 
11233
      }
 
11234
      lookahead1W(54);              // S^WS | '(:' | 'into'
 
11235
      shiftT(163);                  // 'into'
 
11236
    }
 
11237
  }
 
11238
 
 
11239
  function parse_InsertExpr()
 
11240
  {
 
11241
    eventHandler.startNonterminal("InsertExpr", e0);
 
11242
    shift(159);                     // 'insert'
 
11243
    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'
 
11244
    switch (l1)
 
11245
    {
 
11246
    case 191:                       // 'node'
 
11247
      shift(191);                   // 'node'
 
11248
      break;
 
11249
    default:
 
11250
      shift(192);                   // 'nodes'
 
11251
    }
 
11252
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11253
    whitespace();
 
11254
    parse_SourceExpr();
 
11255
    whitespace();
 
11256
    parse_InsertExprTargetChoice();
 
11257
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11258
    whitespace();
 
11259
    parse_TargetExpr();
 
11260
    eventHandler.endNonterminal("InsertExpr", e0);
 
11261
  }
 
11262
 
 
11263
  function try_InsertExpr()
 
11264
  {
 
11265
    shiftT(159);                    // 'insert'
 
11266
    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'
 
11267
    switch (l1)
 
11268
    {
 
11269
    case 191:                       // 'node'
 
11270
      shiftT(191);                  // 'node'
 
11271
      break;
 
11272
    default:
 
11273
      shiftT(192);                  // 'nodes'
 
11274
    }
 
11275
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11276
    try_SourceExpr();
 
11277
    try_InsertExprTargetChoice();
 
11278
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11279
    try_TargetExpr();
 
11280
  }
 
11281
 
 
11282
  function parse_DeleteExpr()
 
11283
  {
 
11284
    eventHandler.startNonterminal("DeleteExpr", e0);
 
11285
    shift(110);                     // 'delete'
 
11286
    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'
 
11287
    switch (l1)
 
11288
    {
 
11289
    case 191:                       // 'node'
 
11290
      shift(191);                   // 'node'
 
11291
      break;
 
11292
    default:
 
11293
      shift(192);                   // 'nodes'
 
11294
    }
 
11295
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11296
    whitespace();
 
11297
    parse_TargetExpr();
 
11298
    eventHandler.endNonterminal("DeleteExpr", e0);
 
11299
  }
 
11300
 
 
11301
  function try_DeleteExpr()
 
11302
  {
 
11303
    shiftT(110);                    // 'delete'
 
11304
    lookahead1W(129);               // S^WS | '(:' | 'node' | 'nodes'
 
11305
    switch (l1)
 
11306
    {
 
11307
    case 191:                       // 'node'
 
11308
      shiftT(191);                  // 'node'
 
11309
      break;
 
11310
    default:
 
11311
      shiftT(192);                  // 'nodes'
 
11312
    }
 
11313
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11314
    try_TargetExpr();
 
11315
  }
 
11316
 
 
11317
  function parse_ReplaceExpr()
 
11318
  {
 
11319
    eventHandler.startNonterminal("ReplaceExpr", e0);
 
11320
    shift(219);                     // 'replace'
 
11321
    lookahead1W(130);               // S^WS | '(:' | 'node' | 'value'
 
11322
    if (l1 == 261)                  // 'value'
 
11323
    {
 
11324
      shift(261);                   // 'value'
 
11325
      lookahead1W(64);              // S^WS | '(:' | 'of'
 
11326
      shift(196);                   // 'of'
 
11327
    }
 
11328
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
11329
    shift(191);                     // 'node'
 
11330
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11331
    whitespace();
 
11332
    parse_TargetExpr();
 
11333
    shift(270);                     // 'with'
 
11334
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11335
    whitespace();
 
11336
    parse_ExprSingle();
 
11337
    eventHandler.endNonterminal("ReplaceExpr", e0);
 
11338
  }
 
11339
 
 
11340
  function try_ReplaceExpr()
 
11341
  {
 
11342
    shiftT(219);                    // 'replace'
 
11343
    lookahead1W(130);               // S^WS | '(:' | 'node' | 'value'
 
11344
    if (l1 == 261)                  // 'value'
 
11345
    {
 
11346
      shiftT(261);                  // 'value'
 
11347
      lookahead1W(64);              // S^WS | '(:' | 'of'
 
11348
      shiftT(196);                  // 'of'
 
11349
    }
 
11350
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
11351
    shiftT(191);                    // 'node'
 
11352
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11353
    try_TargetExpr();
 
11354
    shiftT(270);                    // 'with'
 
11355
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11356
    try_ExprSingle();
 
11357
  }
 
11358
 
 
11359
  function parse_RenameExpr()
 
11360
  {
 
11361
    eventHandler.startNonterminal("RenameExpr", e0);
 
11362
    shift(218);                     // 'rename'
 
11363
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
11364
    shift(191);                     // 'node'
 
11365
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11366
    whitespace();
 
11367
    parse_TargetExpr();
 
11368
    shift(79);                      // 'as'
 
11369
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11370
    whitespace();
 
11371
    parse_NewNameExpr();
 
11372
    eventHandler.endNonterminal("RenameExpr", e0);
 
11373
  }
 
11374
 
 
11375
  function try_RenameExpr()
 
11376
  {
 
11377
    shiftT(218);                    // 'rename'
 
11378
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
11379
    shiftT(191);                    // 'node'
 
11380
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11381
    try_TargetExpr();
 
11382
    shiftT(79);                     // 'as'
 
11383
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11384
    try_NewNameExpr();
 
11385
  }
 
11386
 
 
11387
  function parse_SourceExpr()
 
11388
  {
 
11389
    eventHandler.startNonterminal("SourceExpr", e0);
 
11390
    parse_ExprSingle();
 
11391
    eventHandler.endNonterminal("SourceExpr", e0);
 
11392
  }
 
11393
 
 
11394
  function try_SourceExpr()
 
11395
  {
 
11396
    try_ExprSingle();
 
11397
  }
 
11398
 
 
11399
  function parse_TargetExpr()
 
11400
  {
 
11401
    eventHandler.startNonterminal("TargetExpr", e0);
 
11402
    parse_ExprSingle();
 
11403
    eventHandler.endNonterminal("TargetExpr", e0);
 
11404
  }
 
11405
 
 
11406
  function try_TargetExpr()
 
11407
  {
 
11408
    try_ExprSingle();
 
11409
  }
 
11410
 
 
11411
  function parse_NewNameExpr()
 
11412
  {
 
11413
    eventHandler.startNonterminal("NewNameExpr", e0);
 
11414
    parse_ExprSingle();
 
11415
    eventHandler.endNonterminal("NewNameExpr", e0);
 
11416
  }
 
11417
 
 
11418
  function try_NewNameExpr()
 
11419
  {
 
11420
    try_ExprSingle();
 
11421
  }
 
11422
 
 
11423
  function parse_TransformExpr()
 
11424
  {
 
11425
    eventHandler.startNonterminal("TransformExpr", e0);
 
11426
    shift(103);                     // 'copy'
 
11427
    lookahead1W(21);                // S^WS | '$' | '(:'
 
11428
    shift(31);                      // '$'
 
11429
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11430
    whitespace();
 
11431
    parse_VarName();
 
11432
    lookahead1W(27);                // S^WS | '(:' | ':='
 
11433
    shift(52);                      // ':='
 
11434
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11435
    whitespace();
 
11436
    parse_ExprSingle();
 
11437
    for (;;)
 
11438
    {
 
11439
      if (l1 != 41)                 // ','
 
11440
      {
 
11441
        break;
 
11442
      }
 
11443
      shift(41);                    // ','
 
11444
      lookahead1W(21);              // S^WS | '$' | '(:'
 
11445
      shift(31);                    // '$'
 
11446
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11447
      whitespace();
 
11448
      parse_VarName();
 
11449
      lookahead1W(27);              // S^WS | '(:' | ':='
 
11450
      shift(52);                    // ':='
 
11451
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11452
      whitespace();
 
11453
      parse_ExprSingle();
 
11454
    }
 
11455
    shift(181);                     // 'modify'
 
11456
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11457
    whitespace();
 
11458
    parse_ExprSingle();
 
11459
    shift(220);                     // 'return'
 
11460
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11461
    whitespace();
 
11462
    parse_ExprSingle();
 
11463
    eventHandler.endNonterminal("TransformExpr", e0);
 
11464
  }
 
11465
 
 
11466
  function try_TransformExpr()
 
11467
  {
 
11468
    shiftT(103);                    // 'copy'
 
11469
    lookahead1W(21);                // S^WS | '$' | '(:'
 
11470
    shiftT(31);                     // '$'
 
11471
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11472
    try_VarName();
 
11473
    lookahead1W(27);                // S^WS | '(:' | ':='
 
11474
    shiftT(52);                     // ':='
 
11475
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11476
    try_ExprSingle();
 
11477
    for (;;)
 
11478
    {
 
11479
      if (l1 != 41)                 // ','
 
11480
      {
 
11481
        break;
 
11482
      }
 
11483
      shiftT(41);                   // ','
 
11484
      lookahead1W(21);              // S^WS | '$' | '(:'
 
11485
      shiftT(31);                   // '$'
 
11486
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
11487
      try_VarName();
 
11488
      lookahead1W(27);              // S^WS | '(:' | ':='
 
11489
      shiftT(52);                   // ':='
 
11490
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11491
      try_ExprSingle();
 
11492
    }
 
11493
    shiftT(181);                    // 'modify'
 
11494
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11495
    try_ExprSingle();
 
11496
    shiftT(220);                    // 'return'
 
11497
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11498
    try_ExprSingle();
 
11499
  }
 
11500
 
 
11501
  function parse_FTSelection()
 
11502
  {
 
11503
    eventHandler.startNonterminal("FTSelection", e0);
 
11504
    parse_FTOr();
 
11505
    for (;;)
 
11506
    {
 
11507
      lookahead1W(211);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11508
      switch (l1)
 
11509
      {
 
11510
      case 81:                      // 'at'
 
11511
        lookahead2W(151);           // S^WS | '(:' | 'end' | 'position' | 'start'
 
11512
        break;
 
11513
      default:
 
11514
        lk = l1;
 
11515
      }
 
11516
      if (lk != 115                 // 'different'
 
11517
       && lk != 117                 // 'distance'
 
11518
       && lk != 127                 // 'entire'
 
11519
       && lk != 202                 // 'ordered'
 
11520
       && lk != 223                 // 'same'
 
11521
       && lk != 269                 // 'window'
 
11522
       && lk != 64593               // 'at' 'end'
 
11523
       && lk != 121425)             // 'at' 'start'
 
11524
      {
 
11525
        break;
 
11526
      }
 
11527
      whitespace();
 
11528
      parse_FTPosFilter();
 
11529
    }
 
11530
    eventHandler.endNonterminal("FTSelection", e0);
 
11531
  }
 
11532
 
 
11533
  function try_FTSelection()
 
11534
  {
 
11535
    try_FTOr();
 
11536
    for (;;)
 
11537
    {
 
11538
      lookahead1W(211);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11539
      switch (l1)
 
11540
      {
 
11541
      case 81:                      // 'at'
 
11542
        lookahead2W(151);           // S^WS | '(:' | 'end' | 'position' | 'start'
 
11543
        break;
 
11544
      default:
 
11545
        lk = l1;
 
11546
      }
 
11547
      if (lk != 115                 // 'different'
 
11548
       && lk != 117                 // 'distance'
 
11549
       && lk != 127                 // 'entire'
 
11550
       && lk != 202                 // 'ordered'
 
11551
       && lk != 223                 // 'same'
 
11552
       && lk != 269                 // 'window'
 
11553
       && lk != 64593               // 'at' 'end'
 
11554
       && lk != 121425)             // 'at' 'start'
 
11555
      {
 
11556
        break;
 
11557
      }
 
11558
      try_FTPosFilter();
 
11559
    }
 
11560
  }
 
11561
 
 
11562
  function parse_FTWeight()
 
11563
  {
 
11564
    eventHandler.startNonterminal("FTWeight", e0);
 
11565
    shift(264);                     // 'weight'
 
11566
    lookahead1W(87);                // S^WS | '(:' | '{'
 
11567
    shift(276);                     // '{'
 
11568
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11569
    whitespace();
 
11570
    parse_Expr();
 
11571
    shift(282);                     // '}'
 
11572
    eventHandler.endNonterminal("FTWeight", e0);
 
11573
  }
 
11574
 
 
11575
  function try_FTWeight()
 
11576
  {
 
11577
    shiftT(264);                    // 'weight'
 
11578
    lookahead1W(87);                // S^WS | '(:' | '{'
 
11579
    shiftT(276);                    // '{'
 
11580
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11581
    try_Expr();
 
11582
    shiftT(282);                    // '}'
 
11583
  }
 
11584
 
 
11585
  function parse_FTOr()
 
11586
  {
 
11587
    eventHandler.startNonterminal("FTOr", e0);
 
11588
    parse_FTAnd();
 
11589
    for (;;)
 
11590
    {
 
11591
      if (l1 != 144)                // 'ftor'
 
11592
      {
 
11593
        break;
 
11594
      }
 
11595
      shift(144);                   // 'ftor'
 
11596
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11597
      whitespace();
 
11598
      parse_FTAnd();
 
11599
    }
 
11600
    eventHandler.endNonterminal("FTOr", e0);
 
11601
  }
 
11602
 
 
11603
  function try_FTOr()
 
11604
  {
 
11605
    try_FTAnd();
 
11606
    for (;;)
 
11607
    {
 
11608
      if (l1 != 144)                // 'ftor'
 
11609
      {
 
11610
        break;
 
11611
      }
 
11612
      shiftT(144);                  // 'ftor'
 
11613
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11614
      try_FTAnd();
 
11615
    }
 
11616
  }
 
11617
 
 
11618
  function parse_FTAnd()
 
11619
  {
 
11620
    eventHandler.startNonterminal("FTAnd", e0);
 
11621
    parse_FTMildNot();
 
11622
    for (;;)
 
11623
    {
 
11624
      if (l1 != 142)                // 'ftand'
 
11625
      {
 
11626
        break;
 
11627
      }
 
11628
      shift(142);                   // 'ftand'
 
11629
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11630
      whitespace();
 
11631
      parse_FTMildNot();
 
11632
    }
 
11633
    eventHandler.endNonterminal("FTAnd", e0);
 
11634
  }
 
11635
 
 
11636
  function try_FTAnd()
 
11637
  {
 
11638
    try_FTMildNot();
 
11639
    for (;;)
 
11640
    {
 
11641
      if (l1 != 142)                // 'ftand'
 
11642
      {
 
11643
        break;
 
11644
      }
 
11645
      shiftT(142);                  // 'ftand'
 
11646
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11647
      try_FTMildNot();
 
11648
    }
 
11649
  }
 
11650
 
 
11651
  function parse_FTMildNot()
 
11652
  {
 
11653
    eventHandler.startNonterminal("FTMildNot", e0);
 
11654
    parse_FTUnaryNot();
 
11655
    for (;;)
 
11656
    {
 
11657
      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11658
      if (l1 != 193)                // 'not'
 
11659
      {
 
11660
        break;
 
11661
      }
 
11662
      shift(193);                   // 'not'
 
11663
      lookahead1W(53);              // S^WS | '(:' | 'in'
 
11664
      shift(154);                   // 'in'
 
11665
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11666
      whitespace();
 
11667
      parse_FTUnaryNot();
 
11668
    }
 
11669
    eventHandler.endNonterminal("FTMildNot", e0);
 
11670
  }
 
11671
 
 
11672
  function try_FTMildNot()
 
11673
  {
 
11674
    try_FTUnaryNot();
 
11675
    for (;;)
 
11676
    {
 
11677
      lookahead1W(212);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11678
      if (l1 != 193)                // 'not'
 
11679
      {
 
11680
        break;
 
11681
      }
 
11682
      shiftT(193);                  // 'not'
 
11683
      lookahead1W(53);              // S^WS | '(:' | 'in'
 
11684
      shiftT(154);                  // 'in'
 
11685
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11686
      try_FTUnaryNot();
 
11687
    }
 
11688
  }
 
11689
 
 
11690
  function parse_FTUnaryNot()
 
11691
  {
 
11692
    eventHandler.startNonterminal("FTUnaryNot", e0);
 
11693
    if (l1 == 143)                  // 'ftnot'
 
11694
    {
 
11695
      shift(143);                   // 'ftnot'
 
11696
    }
 
11697
    lookahead1W(155);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'
 
11698
    whitespace();
 
11699
    parse_FTPrimaryWithOptions();
 
11700
    eventHandler.endNonterminal("FTUnaryNot", e0);
 
11701
  }
 
11702
 
 
11703
  function try_FTUnaryNot()
 
11704
  {
 
11705
    if (l1 == 143)                  // 'ftnot'
 
11706
    {
 
11707
      shiftT(143);                  // 'ftnot'
 
11708
    }
 
11709
    lookahead1W(155);               // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'
 
11710
    try_FTPrimaryWithOptions();
 
11711
  }
 
11712
 
 
11713
  function parse_FTPrimaryWithOptions()
 
11714
  {
 
11715
    eventHandler.startNonterminal("FTPrimaryWithOptions", e0);
 
11716
    parse_FTPrimary();
 
11717
    lookahead1W(214);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11718
    if (l1 == 259)                  // 'using'
 
11719
    {
 
11720
      whitespace();
 
11721
      parse_FTMatchOptions();
 
11722
    }
 
11723
    if (l1 == 264)                  // 'weight'
 
11724
    {
 
11725
      whitespace();
 
11726
      parse_FTWeight();
 
11727
    }
 
11728
    eventHandler.endNonterminal("FTPrimaryWithOptions", e0);
 
11729
  }
 
11730
 
 
11731
  function try_FTPrimaryWithOptions()
 
11732
  {
 
11733
    try_FTPrimary();
 
11734
    lookahead1W(214);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11735
    if (l1 == 259)                  // 'using'
 
11736
    {
 
11737
      try_FTMatchOptions();
 
11738
    }
 
11739
    if (l1 == 264)                  // 'weight'
 
11740
    {
 
11741
      try_FTWeight();
 
11742
    }
 
11743
  }
 
11744
 
 
11745
  function parse_FTPrimary()
 
11746
  {
 
11747
    eventHandler.startNonterminal("FTPrimary", e0);
 
11748
    switch (l1)
 
11749
    {
 
11750
    case 34:                        // '('
 
11751
      shift(34);                    // '('
 
11752
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11753
      whitespace();
 
11754
      parse_FTSelection();
 
11755
      shift(37);                    // ')'
 
11756
      break;
 
11757
    case 35:                        // '(#'
 
11758
      parse_FTExtensionSelection();
 
11759
      break;
 
11760
    default:
 
11761
      parse_FTWords();
 
11762
      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11763
      if (l1 == 195)                // 'occurs'
 
11764
      {
 
11765
        whitespace();
 
11766
        parse_FTTimes();
 
11767
      }
 
11768
    }
 
11769
    eventHandler.endNonterminal("FTPrimary", e0);
 
11770
  }
 
11771
 
 
11772
  function try_FTPrimary()
 
11773
  {
 
11774
    switch (l1)
 
11775
    {
 
11776
    case 34:                        // '('
 
11777
      shiftT(34);                   // '('
 
11778
      lookahead1W(162);             // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
 
11779
      try_FTSelection();
 
11780
      shiftT(37);                   // ')'
 
11781
      break;
 
11782
    case 35:                        // '(#'
 
11783
      try_FTExtensionSelection();
 
11784
      break;
 
11785
    default:
 
11786
      try_FTWords();
 
11787
      lookahead1W(215);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11788
      if (l1 == 195)                // 'occurs'
 
11789
      {
 
11790
        try_FTTimes();
 
11791
      }
 
11792
    }
 
11793
  }
 
11794
 
 
11795
  function parse_FTWords()
 
11796
  {
 
11797
    eventHandler.startNonterminal("FTWords", e0);
 
11798
    parse_FTWordsValue();
 
11799
    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11800
    if (l1 == 71                    // 'all'
 
11801
     || l1 == 76                    // 'any'
 
11802
     || l1 == 210)                  // 'phrase'
 
11803
    {
 
11804
      whitespace();
 
11805
      parse_FTAnyallOption();
 
11806
    }
 
11807
    eventHandler.endNonterminal("FTWords", e0);
 
11808
  }
 
11809
 
 
11810
  function try_FTWords()
 
11811
  {
 
11812
    try_FTWordsValue();
 
11813
    lookahead1W(221);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11814
    if (l1 == 71                    // 'all'
 
11815
     || l1 == 76                    // 'any'
 
11816
     || l1 == 210)                  // 'phrase'
 
11817
    {
 
11818
      try_FTAnyallOption();
 
11819
    }
 
11820
  }
 
11821
 
 
11822
  function parse_FTWordsValue()
 
11823
  {
 
11824
    eventHandler.startNonterminal("FTWordsValue", e0);
 
11825
    switch (l1)
 
11826
    {
 
11827
    case 11:                        // StringLiteral
 
11828
      shift(11);                    // StringLiteral
 
11829
      break;
 
11830
    default:
 
11831
      shift(276);                   // '{'
 
11832
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11833
      whitespace();
 
11834
      parse_Expr();
 
11835
      shift(282);                   // '}'
 
11836
    }
 
11837
    eventHandler.endNonterminal("FTWordsValue", e0);
 
11838
  }
 
11839
 
 
11840
  function try_FTWordsValue()
 
11841
  {
 
11842
    switch (l1)
 
11843
    {
 
11844
    case 11:                        // StringLiteral
 
11845
      shiftT(11);                   // StringLiteral
 
11846
      break;
 
11847
    default:
 
11848
      shiftT(276);                  // '{'
 
11849
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11850
      try_Expr();
 
11851
      shiftT(282);                  // '}'
 
11852
    }
 
11853
  }
 
11854
 
 
11855
  function parse_FTExtensionSelection()
 
11856
  {
 
11857
    eventHandler.startNonterminal("FTExtensionSelection", e0);
 
11858
    for (;;)
 
11859
    {
 
11860
      whitespace();
 
11861
      parse_Pragma();
 
11862
      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'
 
11863
      if (l1 != 35)                 // '(#'
 
11864
      {
 
11865
        break;
 
11866
      }
 
11867
    }
 
11868
    shift(276);                     // '{'
 
11869
    lookahead1W(166);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'
 
11870
    if (l1 != 282)                  // '}'
 
11871
    {
 
11872
      whitespace();
 
11873
      parse_FTSelection();
 
11874
    }
 
11875
    shift(282);                     // '}'
 
11876
    eventHandler.endNonterminal("FTExtensionSelection", e0);
 
11877
  }
 
11878
 
 
11879
  function try_FTExtensionSelection()
 
11880
  {
 
11881
    for (;;)
 
11882
    {
 
11883
      try_Pragma();
 
11884
      lookahead1W(100);             // S^WS | '(#' | '(:' | '{'
 
11885
      if (l1 != 35)                 // '(#'
 
11886
      {
 
11887
        break;
 
11888
      }
 
11889
    }
 
11890
    shiftT(276);                    // '{'
 
11891
    lookahead1W(166);               // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'
 
11892
    if (l1 != 282)                  // '}'
 
11893
    {
 
11894
      try_FTSelection();
 
11895
    }
 
11896
    shiftT(282);                    // '}'
 
11897
  }
 
11898
 
 
11899
  function parse_FTAnyallOption()
 
11900
  {
 
11901
    eventHandler.startNonterminal("FTAnyallOption", e0);
 
11902
    switch (l1)
 
11903
    {
 
11904
    case 76:                        // 'any'
 
11905
      shift(76);                    // 'any'
 
11906
      lookahead1W(218);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11907
      if (l1 == 272)                // 'word'
 
11908
      {
 
11909
        shift(272);                 // 'word'
 
11910
      }
 
11911
      break;
 
11912
    case 71:                        // 'all'
 
11913
      shift(71);                    // 'all'
 
11914
      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11915
      if (l1 == 273)                // 'words'
 
11916
      {
 
11917
        shift(273);                 // 'words'
 
11918
      }
 
11919
      break;
 
11920
    default:
 
11921
      shift(210);                   // 'phrase'
 
11922
    }
 
11923
    eventHandler.endNonterminal("FTAnyallOption", e0);
 
11924
  }
 
11925
 
 
11926
  function try_FTAnyallOption()
 
11927
  {
 
11928
    switch (l1)
 
11929
    {
 
11930
    case 76:                        // 'any'
 
11931
      shiftT(76);                   // 'any'
 
11932
      lookahead1W(218);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11933
      if (l1 == 272)                // 'word'
 
11934
      {
 
11935
        shiftT(272);                // 'word'
 
11936
      }
 
11937
      break;
 
11938
    case 71:                        // 'all'
 
11939
      shiftT(71);                   // 'all'
 
11940
      lookahead1W(219);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
11941
      if (l1 == 273)                // 'words'
 
11942
      {
 
11943
        shiftT(273);                // 'words'
 
11944
      }
 
11945
      break;
 
11946
    default:
 
11947
      shiftT(210);                  // 'phrase'
 
11948
    }
 
11949
  }
 
11950
 
 
11951
  function parse_FTTimes()
 
11952
  {
 
11953
    eventHandler.startNonterminal("FTTimes", e0);
 
11954
    shift(195);                     // 'occurs'
 
11955
    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'
 
11956
    whitespace();
 
11957
    parse_FTRange();
 
11958
    shift(247);                     // 'times'
 
11959
    eventHandler.endNonterminal("FTTimes", e0);
 
11960
  }
 
11961
 
 
11962
  function try_FTTimes()
 
11963
  {
 
11964
    shiftT(195);                    // 'occurs'
 
11965
    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'
 
11966
    try_FTRange();
 
11967
    shiftT(247);                    // 'times'
 
11968
  }
 
11969
 
 
11970
  function parse_FTRange()
 
11971
  {
 
11972
    eventHandler.startNonterminal("FTRange", e0);
 
11973
    switch (l1)
 
11974
    {
 
11975
    case 130:                       // 'exactly'
 
11976
      shift(130);                   // 'exactly'
 
11977
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11978
      whitespace();
 
11979
      parse_AdditiveExpr();
 
11980
      break;
 
11981
    case 81:                        // 'at'
 
11982
      shift(81);                    // 'at'
 
11983
      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'
 
11984
      switch (l1)
 
11985
      {
 
11986
      case 173:                     // 'least'
 
11987
        shift(173);                 // 'least'
 
11988
        lookahead1W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11989
        whitespace();
 
11990
        parse_AdditiveExpr();
 
11991
        break;
 
11992
      default:
 
11993
        shift(183);                 // 'most'
 
11994
        lookahead1W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
11995
        whitespace();
 
11996
        parse_AdditiveExpr();
 
11997
      }
 
11998
      break;
 
11999
    default:
 
12000
      shift(140);                   // 'from'
 
12001
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12002
      whitespace();
 
12003
      parse_AdditiveExpr();
 
12004
      shift(248);                   // 'to'
 
12005
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12006
      whitespace();
 
12007
      parse_AdditiveExpr();
 
12008
    }
 
12009
    eventHandler.endNonterminal("FTRange", e0);
 
12010
  }
 
12011
 
 
12012
  function try_FTRange()
 
12013
  {
 
12014
    switch (l1)
 
12015
    {
 
12016
    case 130:                       // 'exactly'
 
12017
      shiftT(130);                  // 'exactly'
 
12018
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12019
      try_AdditiveExpr();
 
12020
      break;
 
12021
    case 81:                        // 'at'
 
12022
      shiftT(81);                   // 'at'
 
12023
      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'
 
12024
      switch (l1)
 
12025
      {
 
12026
      case 173:                     // 'least'
 
12027
        shiftT(173);                // 'least'
 
12028
        lookahead1W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12029
        try_AdditiveExpr();
 
12030
        break;
 
12031
      default:
 
12032
        shiftT(183);                // 'most'
 
12033
        lookahead1W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12034
        try_AdditiveExpr();
 
12035
      }
 
12036
      break;
 
12037
    default:
 
12038
      shiftT(140);                  // 'from'
 
12039
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12040
      try_AdditiveExpr();
 
12041
      shiftT(248);                  // 'to'
 
12042
      lookahead1W(265);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12043
      try_AdditiveExpr();
 
12044
    }
 
12045
  }
 
12046
 
 
12047
  function parse_FTPosFilter()
 
12048
  {
 
12049
    eventHandler.startNonterminal("FTPosFilter", e0);
 
12050
    switch (l1)
 
12051
    {
 
12052
    case 202:                       // 'ordered'
 
12053
      parse_FTOrder();
 
12054
      break;
 
12055
    case 269:                       // 'window'
 
12056
      parse_FTWindow();
 
12057
      break;
 
12058
    case 117:                       // 'distance'
 
12059
      parse_FTDistance();
 
12060
      break;
 
12061
    case 115:                       // 'different'
 
12062
    case 223:                       // 'same'
 
12063
      parse_FTScope();
 
12064
      break;
 
12065
    default:
 
12066
      parse_FTContent();
 
12067
    }
 
12068
    eventHandler.endNonterminal("FTPosFilter", e0);
 
12069
  }
 
12070
 
 
12071
  function try_FTPosFilter()
 
12072
  {
 
12073
    switch (l1)
 
12074
    {
 
12075
    case 202:                       // 'ordered'
 
12076
      try_FTOrder();
 
12077
      break;
 
12078
    case 269:                       // 'window'
 
12079
      try_FTWindow();
 
12080
      break;
 
12081
    case 117:                       // 'distance'
 
12082
      try_FTDistance();
 
12083
      break;
 
12084
    case 115:                       // 'different'
 
12085
    case 223:                       // 'same'
 
12086
      try_FTScope();
 
12087
      break;
 
12088
    default:
 
12089
      try_FTContent();
 
12090
    }
 
12091
  }
 
12092
 
 
12093
  function parse_FTOrder()
 
12094
  {
 
12095
    eventHandler.startNonterminal("FTOrder", e0);
 
12096
    shift(202);                     // 'ordered'
 
12097
    eventHandler.endNonterminal("FTOrder", e0);
 
12098
  }
 
12099
 
 
12100
  function try_FTOrder()
 
12101
  {
 
12102
    shiftT(202);                    // 'ordered'
 
12103
  }
 
12104
 
 
12105
  function parse_FTWindow()
 
12106
  {
 
12107
    eventHandler.startNonterminal("FTWindow", e0);
 
12108
    shift(269);                     // 'window'
 
12109
    lookahead1W(265);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12110
    whitespace();
 
12111
    parse_AdditiveExpr();
 
12112
    whitespace();
 
12113
    parse_FTUnit();
 
12114
    eventHandler.endNonterminal("FTWindow", e0);
 
12115
  }
 
12116
 
 
12117
  function try_FTWindow()
 
12118
  {
 
12119
    shiftT(269);                    // 'window'
 
12120
    lookahead1W(265);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
12121
    try_AdditiveExpr();
 
12122
    try_FTUnit();
 
12123
  }
 
12124
 
 
12125
  function parse_FTDistance()
 
12126
  {
 
12127
    eventHandler.startNonterminal("FTDistance", e0);
 
12128
    shift(117);                     // 'distance'
 
12129
    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'
 
12130
    whitespace();
 
12131
    parse_FTRange();
 
12132
    whitespace();
 
12133
    parse_FTUnit();
 
12134
    eventHandler.endNonterminal("FTDistance", e0);
 
12135
  }
 
12136
 
 
12137
  function try_FTDistance()
 
12138
  {
 
12139
    shiftT(117);                    // 'distance'
 
12140
    lookahead1W(149);               // S^WS | '(:' | 'at' | 'exactly' | 'from'
 
12141
    try_FTRange();
 
12142
    try_FTUnit();
 
12143
  }
 
12144
 
 
12145
  function parse_FTUnit()
 
12146
  {
 
12147
    eventHandler.startNonterminal("FTUnit", e0);
 
12148
    switch (l1)
 
12149
    {
 
12150
    case 273:                       // 'words'
 
12151
      shift(273);                   // 'words'
 
12152
      break;
 
12153
    case 232:                       // 'sentences'
 
12154
      shift(232);                   // 'sentences'
 
12155
      break;
 
12156
    default:
 
12157
      shift(205);                   // 'paragraphs'
 
12158
    }
 
12159
    eventHandler.endNonterminal("FTUnit", e0);
 
12160
  }
 
12161
 
 
12162
  function try_FTUnit()
 
12163
  {
 
12164
    switch (l1)
 
12165
    {
 
12166
    case 273:                       // 'words'
 
12167
      shiftT(273);                  // 'words'
 
12168
      break;
 
12169
    case 232:                       // 'sentences'
 
12170
      shiftT(232);                  // 'sentences'
 
12171
      break;
 
12172
    default:
 
12173
      shiftT(205);                  // 'paragraphs'
 
12174
    }
 
12175
  }
 
12176
 
 
12177
  function parse_FTScope()
 
12178
  {
 
12179
    eventHandler.startNonterminal("FTScope", e0);
 
12180
    switch (l1)
 
12181
    {
 
12182
    case 223:                       // 'same'
 
12183
      shift(223);                   // 'same'
 
12184
      break;
 
12185
    default:
 
12186
      shift(115);                   // 'different'
 
12187
    }
 
12188
    lookahead1W(132);               // S^WS | '(:' | 'paragraph' | 'sentence'
 
12189
    whitespace();
 
12190
    parse_FTBigUnit();
 
12191
    eventHandler.endNonterminal("FTScope", e0);
 
12192
  }
 
12193
 
 
12194
  function try_FTScope()
 
12195
  {
 
12196
    switch (l1)
 
12197
    {
 
12198
    case 223:                       // 'same'
 
12199
      shiftT(223);                  // 'same'
 
12200
      break;
 
12201
    default:
 
12202
      shiftT(115);                  // 'different'
 
12203
    }
 
12204
    lookahead1W(132);               // S^WS | '(:' | 'paragraph' | 'sentence'
 
12205
    try_FTBigUnit();
 
12206
  }
 
12207
 
 
12208
  function parse_FTBigUnit()
 
12209
  {
 
12210
    eventHandler.startNonterminal("FTBigUnit", e0);
 
12211
    switch (l1)
 
12212
    {
 
12213
    case 231:                       // 'sentence'
 
12214
      shift(231);                   // 'sentence'
 
12215
      break;
 
12216
    default:
 
12217
      shift(204);                   // 'paragraph'
 
12218
    }
 
12219
    eventHandler.endNonterminal("FTBigUnit", e0);
 
12220
  }
 
12221
 
 
12222
  function try_FTBigUnit()
 
12223
  {
 
12224
    switch (l1)
 
12225
    {
 
12226
    case 231:                       // 'sentence'
 
12227
      shiftT(231);                  // 'sentence'
 
12228
      break;
 
12229
    default:
 
12230
      shiftT(204);                  // 'paragraph'
 
12231
    }
 
12232
  }
 
12233
 
 
12234
  function parse_FTContent()
 
12235
  {
 
12236
    eventHandler.startNonterminal("FTContent", e0);
 
12237
    switch (l1)
 
12238
    {
 
12239
    case 81:                        // 'at'
 
12240
      shift(81);                    // 'at'
 
12241
      lookahead1W(117);             // S^WS | '(:' | 'end' | 'start'
 
12242
      switch (l1)
 
12243
      {
 
12244
      case 237:                     // 'start'
 
12245
        shift(237);                 // 'start'
 
12246
        break;
 
12247
      default:
 
12248
        shift(126);                 // 'end'
 
12249
      }
 
12250
      break;
 
12251
    default:
 
12252
      shift(127);                   // 'entire'
 
12253
      lookahead1W(42);              // S^WS | '(:' | 'content'
 
12254
      shift(100);                   // 'content'
 
12255
    }
 
12256
    eventHandler.endNonterminal("FTContent", e0);
 
12257
  }
 
12258
 
 
12259
  function try_FTContent()
 
12260
  {
 
12261
    switch (l1)
 
12262
    {
 
12263
    case 81:                        // 'at'
 
12264
      shiftT(81);                   // 'at'
 
12265
      lookahead1W(117);             // S^WS | '(:' | 'end' | 'start'
 
12266
      switch (l1)
 
12267
      {
 
12268
      case 237:                     // 'start'
 
12269
        shiftT(237);                // 'start'
 
12270
        break;
 
12271
      default:
 
12272
        shiftT(126);                // 'end'
 
12273
      }
 
12274
      break;
 
12275
    default:
 
12276
      shiftT(127);                  // 'entire'
 
12277
      lookahead1W(42);              // S^WS | '(:' | 'content'
 
12278
      shiftT(100);                  // 'content'
 
12279
    }
 
12280
  }
 
12281
 
 
12282
  function parse_FTMatchOptions()
 
12283
  {
 
12284
    eventHandler.startNonterminal("FTMatchOptions", e0);
 
12285
    for (;;)
 
12286
    {
 
12287
      shift(259);                   // 'using'
 
12288
      lookahead1W(181);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |
 
12289
      whitespace();
 
12290
      parse_FTMatchOption();
 
12291
      lookahead1W(214);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12292
      if (l1 != 259)                // 'using'
 
12293
      {
 
12294
        break;
 
12295
      }
 
12296
    }
 
12297
    eventHandler.endNonterminal("FTMatchOptions", e0);
 
12298
  }
 
12299
 
 
12300
  function try_FTMatchOptions()
 
12301
  {
 
12302
    for (;;)
 
12303
    {
 
12304
      shiftT(259);                  // 'using'
 
12305
      lookahead1W(181);             // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |
 
12306
      try_FTMatchOption();
 
12307
      lookahead1W(214);             // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12308
      if (l1 != 259)                // 'using'
 
12309
      {
 
12310
        break;
 
12311
      }
 
12312
    }
 
12313
  }
 
12314
 
 
12315
  function parse_FTMatchOption()
 
12316
  {
 
12317
    eventHandler.startNonterminal("FTMatchOption", e0);
 
12318
    switch (l1)
 
12319
    {
 
12320
    case 188:                       // 'no'
 
12321
      lookahead2W(161);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'
 
12322
      break;
 
12323
    default:
 
12324
      lk = l1;
 
12325
    }
 
12326
    switch (lk)
 
12327
    {
 
12328
    case 169:                       // 'language'
 
12329
      parse_FTLanguageOption();
 
12330
      break;
 
12331
    case 268:                       // 'wildcards'
 
12332
    case 137404:                    // 'no' 'wildcards'
 
12333
      parse_FTWildCardOption();
 
12334
      break;
 
12335
    case 246:                       // 'thesaurus'
 
12336
    case 126140:                    // 'no' 'thesaurus'
 
12337
      parse_FTThesaurusOption();
 
12338
      break;
 
12339
    case 238:                       // 'stemming'
 
12340
    case 122044:                    // 'no' 'stemming'
 
12341
      parse_FTStemOption();
 
12342
      break;
 
12343
    case 114:                       // 'diacritics'
 
12344
      parse_FTDiacriticsOption();
 
12345
      break;
 
12346
    case 239:                       // 'stop'
 
12347
    case 122556:                    // 'no' 'stop'
 
12348
      parse_FTStopWordOption();
 
12349
      break;
 
12350
    case 199:                       // 'option'
 
12351
      parse_FTExtensionOption();
 
12352
      break;
 
12353
    default:
 
12354
      parse_FTCaseOption();
 
12355
    }
 
12356
    eventHandler.endNonterminal("FTMatchOption", e0);
 
12357
  }
 
12358
 
 
12359
  function try_FTMatchOption()
 
12360
  {
 
12361
    switch (l1)
 
12362
    {
 
12363
    case 188:                       // 'no'
 
12364
      lookahead2W(161);             // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'
 
12365
      break;
 
12366
    default:
 
12367
      lk = l1;
 
12368
    }
 
12369
    switch (lk)
 
12370
    {
 
12371
    case 169:                       // 'language'
 
12372
      try_FTLanguageOption();
 
12373
      break;
 
12374
    case 268:                       // 'wildcards'
 
12375
    case 137404:                    // 'no' 'wildcards'
 
12376
      try_FTWildCardOption();
 
12377
      break;
 
12378
    case 246:                       // 'thesaurus'
 
12379
    case 126140:                    // 'no' 'thesaurus'
 
12380
      try_FTThesaurusOption();
 
12381
      break;
 
12382
    case 238:                       // 'stemming'
 
12383
    case 122044:                    // 'no' 'stemming'
 
12384
      try_FTStemOption();
 
12385
      break;
 
12386
    case 114:                       // 'diacritics'
 
12387
      try_FTDiacriticsOption();
 
12388
      break;
 
12389
    case 239:                       // 'stop'
 
12390
    case 122556:                    // 'no' 'stop'
 
12391
      try_FTStopWordOption();
 
12392
      break;
 
12393
    case 199:                       // 'option'
 
12394
      try_FTExtensionOption();
 
12395
      break;
 
12396
    default:
 
12397
      try_FTCaseOption();
 
12398
    }
 
12399
  }
 
12400
 
 
12401
  function parse_FTCaseOption()
 
12402
  {
 
12403
    eventHandler.startNonterminal("FTCaseOption", e0);
 
12404
    switch (l1)
 
12405
    {
 
12406
    case 88:                        // 'case'
 
12407
      shift(88);                    // 'case'
 
12408
      lookahead1W(124);             // S^WS | '(:' | 'insensitive' | 'sensitive'
 
12409
      switch (l1)
 
12410
      {
 
12411
      case 158:                     // 'insensitive'
 
12412
        shift(158);                 // 'insensitive'
 
12413
        break;
 
12414
      default:
 
12415
        shift(230);                 // 'sensitive'
 
12416
      }
 
12417
      break;
 
12418
    case 177:                       // 'lowercase'
 
12419
      shift(177);                   // 'lowercase'
 
12420
      break;
 
12421
    default:
 
12422
      shift(258);                   // 'uppercase'
 
12423
    }
 
12424
    eventHandler.endNonterminal("FTCaseOption", e0);
 
12425
  }
 
12426
 
 
12427
  function try_FTCaseOption()
 
12428
  {
 
12429
    switch (l1)
 
12430
    {
 
12431
    case 88:                        // 'case'
 
12432
      shiftT(88);                   // 'case'
 
12433
      lookahead1W(124);             // S^WS | '(:' | 'insensitive' | 'sensitive'
 
12434
      switch (l1)
 
12435
      {
 
12436
      case 158:                     // 'insensitive'
 
12437
        shiftT(158);                // 'insensitive'
 
12438
        break;
 
12439
      default:
 
12440
        shiftT(230);                // 'sensitive'
 
12441
      }
 
12442
      break;
 
12443
    case 177:                       // 'lowercase'
 
12444
      shiftT(177);                  // 'lowercase'
 
12445
      break;
 
12446
    default:
 
12447
      shiftT(258);                  // 'uppercase'
 
12448
    }
 
12449
  }
 
12450
 
 
12451
  function parse_FTDiacriticsOption()
 
12452
  {
 
12453
    eventHandler.startNonterminal("FTDiacriticsOption", e0);
 
12454
    shift(114);                     // 'diacritics'
 
12455
    lookahead1W(124);               // S^WS | '(:' | 'insensitive' | 'sensitive'
 
12456
    switch (l1)
 
12457
    {
 
12458
    case 158:                       // 'insensitive'
 
12459
      shift(158);                   // 'insensitive'
 
12460
      break;
 
12461
    default:
 
12462
      shift(230);                   // 'sensitive'
 
12463
    }
 
12464
    eventHandler.endNonterminal("FTDiacriticsOption", e0);
 
12465
  }
 
12466
 
 
12467
  function try_FTDiacriticsOption()
 
12468
  {
 
12469
    shiftT(114);                    // 'diacritics'
 
12470
    lookahead1W(124);               // S^WS | '(:' | 'insensitive' | 'sensitive'
 
12471
    switch (l1)
 
12472
    {
 
12473
    case 158:                       // 'insensitive'
 
12474
      shiftT(158);                  // 'insensitive'
 
12475
      break;
 
12476
    default:
 
12477
      shiftT(230);                  // 'sensitive'
 
12478
    }
 
12479
  }
 
12480
 
 
12481
  function parse_FTStemOption()
 
12482
  {
 
12483
    eventHandler.startNonterminal("FTStemOption", e0);
 
12484
    switch (l1)
 
12485
    {
 
12486
    case 238:                       // 'stemming'
 
12487
      shift(238);                   // 'stemming'
 
12488
      break;
 
12489
    default:
 
12490
      shift(188);                   // 'no'
 
12491
      lookahead1W(74);              // S^WS | '(:' | 'stemming'
 
12492
      shift(238);                   // 'stemming'
 
12493
    }
 
12494
    eventHandler.endNonterminal("FTStemOption", e0);
 
12495
  }
 
12496
 
 
12497
  function try_FTStemOption()
 
12498
  {
 
12499
    switch (l1)
 
12500
    {
 
12501
    case 238:                       // 'stemming'
 
12502
      shiftT(238);                  // 'stemming'
 
12503
      break;
 
12504
    default:
 
12505
      shiftT(188);                  // 'no'
 
12506
      lookahead1W(74);              // S^WS | '(:' | 'stemming'
 
12507
      shiftT(238);                  // 'stemming'
 
12508
    }
 
12509
  }
 
12510
 
 
12511
  function parse_FTThesaurusOption()
 
12512
  {
 
12513
    eventHandler.startNonterminal("FTThesaurusOption", e0);
 
12514
    switch (l1)
 
12515
    {
 
12516
    case 246:                       // 'thesaurus'
 
12517
      shift(246);                   // 'thesaurus'
 
12518
      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'
 
12519
      switch (l1)
 
12520
      {
 
12521
      case 81:                      // 'at'
 
12522
        whitespace();
 
12523
        parse_FTThesaurusID();
 
12524
        break;
 
12525
      case 109:                     // 'default'
 
12526
        shift(109);                 // 'default'
 
12527
        break;
 
12528
      default:
 
12529
        shift(34);                  // '('
 
12530
        lookahead1W(112);           // S^WS | '(:' | 'at' | 'default'
 
12531
        switch (l1)
 
12532
        {
 
12533
        case 81:                    // 'at'
 
12534
          whitespace();
 
12535
          parse_FTThesaurusID();
 
12536
          break;
 
12537
        default:
 
12538
          shift(109);               // 'default'
 
12539
        }
 
12540
        for (;;)
 
12541
        {
 
12542
          lookahead1W(101);         // S^WS | '(:' | ')' | ','
 
12543
          if (l1 != 41)             // ','
 
12544
          {
 
12545
            break;
 
12546
          }
 
12547
          shift(41);                // ','
 
12548
          lookahead1W(31);          // S^WS | '(:' | 'at'
 
12549
          whitespace();
 
12550
          parse_FTThesaurusID();
 
12551
        }
 
12552
        shift(37);                  // ')'
 
12553
      }
 
12554
      break;
 
12555
    default:
 
12556
      shift(188);                   // 'no'
 
12557
      lookahead1W(78);              // S^WS | '(:' | 'thesaurus'
 
12558
      shift(246);                   // 'thesaurus'
 
12559
    }
 
12560
    eventHandler.endNonterminal("FTThesaurusOption", e0);
 
12561
  }
 
12562
 
 
12563
  function try_FTThesaurusOption()
 
12564
  {
 
12565
    switch (l1)
 
12566
    {
 
12567
    case 246:                       // 'thesaurus'
 
12568
      shiftT(246);                  // 'thesaurus'
 
12569
      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'
 
12570
      switch (l1)
 
12571
      {
 
12572
      case 81:                      // 'at'
 
12573
        try_FTThesaurusID();
 
12574
        break;
 
12575
      case 109:                     // 'default'
 
12576
        shiftT(109);                // 'default'
 
12577
        break;
 
12578
      default:
 
12579
        shiftT(34);                 // '('
 
12580
        lookahead1W(112);           // S^WS | '(:' | 'at' | 'default'
 
12581
        switch (l1)
 
12582
        {
 
12583
        case 81:                    // 'at'
 
12584
          try_FTThesaurusID();
 
12585
          break;
 
12586
        default:
 
12587
          shiftT(109);              // 'default'
 
12588
        }
 
12589
        for (;;)
 
12590
        {
 
12591
          lookahead1W(101);         // S^WS | '(:' | ')' | ','
 
12592
          if (l1 != 41)             // ','
 
12593
          {
 
12594
            break;
 
12595
          }
 
12596
          shiftT(41);               // ','
 
12597
          lookahead1W(31);          // S^WS | '(:' | 'at'
 
12598
          try_FTThesaurusID();
 
12599
        }
 
12600
        shiftT(37);                 // ')'
 
12601
      }
 
12602
      break;
 
12603
    default:
 
12604
      shiftT(188);                  // 'no'
 
12605
      lookahead1W(78);              // S^WS | '(:' | 'thesaurus'
 
12606
      shiftT(246);                  // 'thesaurus'
 
12607
    }
 
12608
  }
 
12609
 
 
12610
  function parse_FTThesaurusID()
 
12611
  {
 
12612
    eventHandler.startNonterminal("FTThesaurusID", e0);
 
12613
    shift(81);                      // 'at'
 
12614
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
12615
    shift(7);                       // URILiteral
 
12616
    lookahead1W(220);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12617
    if (l1 == 217)                  // 'relationship'
 
12618
    {
 
12619
      shift(217);                   // 'relationship'
 
12620
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
12621
      shift(11);                    // StringLiteral
 
12622
    }
 
12623
    lookahead1W(216);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12624
    switch (l1)
 
12625
    {
 
12626
    case 81:                        // 'at'
 
12627
      lookahead2W(165);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'
 
12628
      break;
 
12629
    default:
 
12630
      lk = l1;
 
12631
    }
 
12632
    if (lk == 130                   // 'exactly'
 
12633
     || lk == 140                   // 'from'
 
12634
     || lk == 88657                 // 'at' 'least'
 
12635
     || lk == 93777)                // 'at' 'most'
 
12636
    {
 
12637
      whitespace();
 
12638
      parse_FTLiteralRange();
 
12639
      lookahead1W(58);              // S^WS | '(:' | 'levels'
 
12640
      shift(175);                   // 'levels'
 
12641
    }
 
12642
    eventHandler.endNonterminal("FTThesaurusID", e0);
 
12643
  }
 
12644
 
 
12645
  function try_FTThesaurusID()
 
12646
  {
 
12647
    shiftT(81);                     // 'at'
 
12648
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
12649
    shiftT(7);                      // URILiteral
 
12650
    lookahead1W(220);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12651
    if (l1 == 217)                  // 'relationship'
 
12652
    {
 
12653
      shiftT(217);                  // 'relationship'
 
12654
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
12655
      shiftT(11);                   // StringLiteral
 
12656
    }
 
12657
    lookahead1W(216);               // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12658
    switch (l1)
 
12659
    {
 
12660
    case 81:                        // 'at'
 
12661
      lookahead2W(165);             // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'
 
12662
      break;
 
12663
    default:
 
12664
      lk = l1;
 
12665
    }
 
12666
    if (lk == 130                   // 'exactly'
 
12667
     || lk == 140                   // 'from'
 
12668
     || lk == 88657                 // 'at' 'least'
 
12669
     || lk == 93777)                // 'at' 'most'
 
12670
    {
 
12671
      try_FTLiteralRange();
 
12672
      lookahead1W(58);              // S^WS | '(:' | 'levels'
 
12673
      shiftT(175);                  // 'levels'
 
12674
    }
 
12675
  }
 
12676
 
 
12677
  function parse_FTLiteralRange()
 
12678
  {
 
12679
    eventHandler.startNonterminal("FTLiteralRange", e0);
 
12680
    switch (l1)
 
12681
    {
 
12682
    case 130:                       // 'exactly'
 
12683
      shift(130);                   // 'exactly'
 
12684
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12685
      shift(8);                     // IntegerLiteral
 
12686
      break;
 
12687
    case 81:                        // 'at'
 
12688
      shift(81);                    // 'at'
 
12689
      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'
 
12690
      switch (l1)
 
12691
      {
 
12692
      case 173:                     // 'least'
 
12693
        shift(173);                 // 'least'
 
12694
        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'
 
12695
        shift(8);                   // IntegerLiteral
 
12696
        break;
 
12697
      default:
 
12698
        shift(183);                 // 'most'
 
12699
        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'
 
12700
        shift(8);                   // IntegerLiteral
 
12701
      }
 
12702
      break;
 
12703
    default:
 
12704
      shift(140);                   // 'from'
 
12705
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12706
      shift(8);                     // IntegerLiteral
 
12707
      lookahead1W(79);              // S^WS | '(:' | 'to'
 
12708
      shift(248);                   // 'to'
 
12709
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12710
      shift(8);                     // IntegerLiteral
 
12711
    }
 
12712
    eventHandler.endNonterminal("FTLiteralRange", e0);
 
12713
  }
 
12714
 
 
12715
  function try_FTLiteralRange()
 
12716
  {
 
12717
    switch (l1)
 
12718
    {
 
12719
    case 130:                       // 'exactly'
 
12720
      shiftT(130);                  // 'exactly'
 
12721
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12722
      shiftT(8);                    // IntegerLiteral
 
12723
      break;
 
12724
    case 81:                        // 'at'
 
12725
      shiftT(81);                   // 'at'
 
12726
      lookahead1W(125);             // S^WS | '(:' | 'least' | 'most'
 
12727
      switch (l1)
 
12728
      {
 
12729
      case 173:                     // 'least'
 
12730
        shiftT(173);                // 'least'
 
12731
        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'
 
12732
        shiftT(8);                  // IntegerLiteral
 
12733
        break;
 
12734
      default:
 
12735
        shiftT(183);                // 'most'
 
12736
        lookahead1W(16);            // IntegerLiteral | S^WS | '(:'
 
12737
        shiftT(8);                  // IntegerLiteral
 
12738
      }
 
12739
      break;
 
12740
    default:
 
12741
      shiftT(140);                  // 'from'
 
12742
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12743
      shiftT(8);                    // IntegerLiteral
 
12744
      lookahead1W(79);              // S^WS | '(:' | 'to'
 
12745
      shiftT(248);                  // 'to'
 
12746
      lookahead1W(16);              // IntegerLiteral | S^WS | '(:'
 
12747
      shiftT(8);                    // IntegerLiteral
 
12748
    }
 
12749
  }
 
12750
 
 
12751
  function parse_FTStopWordOption()
 
12752
  {
 
12753
    eventHandler.startNonterminal("FTStopWordOption", e0);
 
12754
    switch (l1)
 
12755
    {
 
12756
    case 239:                       // 'stop'
 
12757
      shift(239);                   // 'stop'
 
12758
      lookahead1W(86);              // S^WS | '(:' | 'words'
 
12759
      shift(273);                   // 'words'
 
12760
      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'
 
12761
      switch (l1)
 
12762
      {
 
12763
      case 109:                     // 'default'
 
12764
        shift(109);                 // 'default'
 
12765
        for (;;)
 
12766
        {
 
12767
          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12768
          if (l1 != 131             // 'except'
 
12769
           && l1 != 254)            // 'union'
 
12770
          {
 
12771
            break;
 
12772
          }
 
12773
          whitespace();
 
12774
          parse_FTStopWordsInclExcl();
 
12775
        }
 
12776
        break;
 
12777
      default:
 
12778
        whitespace();
 
12779
        parse_FTStopWords();
 
12780
        for (;;)
 
12781
        {
 
12782
          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12783
          if (l1 != 131             // 'except'
 
12784
           && l1 != 254)            // 'union'
 
12785
          {
 
12786
            break;
 
12787
          }
 
12788
          whitespace();
 
12789
          parse_FTStopWordsInclExcl();
 
12790
        }
 
12791
      }
 
12792
      break;
 
12793
    default:
 
12794
      shift(188);                   // 'no'
 
12795
      lookahead1W(75);              // S^WS | '(:' | 'stop'
 
12796
      shift(239);                   // 'stop'
 
12797
      lookahead1W(86);              // S^WS | '(:' | 'words'
 
12798
      shift(273);                   // 'words'
 
12799
    }
 
12800
    eventHandler.endNonterminal("FTStopWordOption", e0);
 
12801
  }
 
12802
 
 
12803
  function try_FTStopWordOption()
 
12804
  {
 
12805
    switch (l1)
 
12806
    {
 
12807
    case 239:                       // 'stop'
 
12808
      shiftT(239);                  // 'stop'
 
12809
      lookahead1W(86);              // S^WS | '(:' | 'words'
 
12810
      shiftT(273);                  // 'words'
 
12811
      lookahead1W(142);             // S^WS | '(' | '(:' | 'at' | 'default'
 
12812
      switch (l1)
 
12813
      {
 
12814
      case 109:                     // 'default'
 
12815
        shiftT(109);                // 'default'
 
12816
        for (;;)
 
12817
        {
 
12818
          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12819
          if (l1 != 131             // 'except'
 
12820
           && l1 != 254)            // 'union'
 
12821
          {
 
12822
            break;
 
12823
          }
 
12824
          try_FTStopWordsInclExcl();
 
12825
        }
 
12826
        break;
 
12827
      default:
 
12828
        try_FTStopWords();
 
12829
        for (;;)
 
12830
        {
 
12831
          lookahead1W(217);         // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
 
12832
          if (l1 != 131             // 'except'
 
12833
           && l1 != 254)            // 'union'
 
12834
          {
 
12835
            break;
 
12836
          }
 
12837
          try_FTStopWordsInclExcl();
 
12838
        }
 
12839
      }
 
12840
      break;
 
12841
    default:
 
12842
      shiftT(188);                  // 'no'
 
12843
      lookahead1W(75);              // S^WS | '(:' | 'stop'
 
12844
      shiftT(239);                  // 'stop'
 
12845
      lookahead1W(86);              // S^WS | '(:' | 'words'
 
12846
      shiftT(273);                  // 'words'
 
12847
    }
 
12848
  }
 
12849
 
 
12850
  function parse_FTStopWords()
 
12851
  {
 
12852
    eventHandler.startNonterminal("FTStopWords", e0);
 
12853
    switch (l1)
 
12854
    {
 
12855
    case 81:                        // 'at'
 
12856
      shift(81);                    // 'at'
 
12857
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
12858
      shift(7);                     // URILiteral
 
12859
      break;
 
12860
    default:
 
12861
      shift(34);                    // '('
 
12862
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
12863
      shift(11);                    // StringLiteral
 
12864
      for (;;)
 
12865
      {
 
12866
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
12867
        if (l1 != 41)               // ','
 
12868
        {
 
12869
          break;
 
12870
        }
 
12871
        shift(41);                  // ','
 
12872
        lookahead1W(17);            // StringLiteral | S^WS | '(:'
 
12873
        shift(11);                  // StringLiteral
 
12874
      }
 
12875
      shift(37);                    // ')'
 
12876
    }
 
12877
    eventHandler.endNonterminal("FTStopWords", e0);
 
12878
  }
 
12879
 
 
12880
  function try_FTStopWords()
 
12881
  {
 
12882
    switch (l1)
 
12883
    {
 
12884
    case 81:                        // 'at'
 
12885
      shiftT(81);                   // 'at'
 
12886
      lookahead1W(15);              // URILiteral | S^WS | '(:'
 
12887
      shiftT(7);                    // URILiteral
 
12888
      break;
 
12889
    default:
 
12890
      shiftT(34);                   // '('
 
12891
      lookahead1W(17);              // StringLiteral | S^WS | '(:'
 
12892
      shiftT(11);                   // StringLiteral
 
12893
      for (;;)
 
12894
      {
 
12895
        lookahead1W(101);           // S^WS | '(:' | ')' | ','
 
12896
        if (l1 != 41)               // ','
 
12897
        {
 
12898
          break;
 
12899
        }
 
12900
        shiftT(41);                 // ','
 
12901
        lookahead1W(17);            // StringLiteral | S^WS | '(:'
 
12902
        shiftT(11);                 // StringLiteral
 
12903
      }
 
12904
      shiftT(37);                   // ')'
 
12905
    }
 
12906
  }
 
12907
 
 
12908
  function parse_FTStopWordsInclExcl()
 
12909
  {
 
12910
    eventHandler.startNonterminal("FTStopWordsInclExcl", e0);
 
12911
    switch (l1)
 
12912
    {
 
12913
    case 254:                       // 'union'
 
12914
      shift(254);                   // 'union'
 
12915
      break;
 
12916
    default:
 
12917
      shift(131);                   // 'except'
 
12918
    }
 
12919
    lookahead1W(99);                // S^WS | '(' | '(:' | 'at'
 
12920
    whitespace();
 
12921
    parse_FTStopWords();
 
12922
    eventHandler.endNonterminal("FTStopWordsInclExcl", e0);
 
12923
  }
 
12924
 
 
12925
  function try_FTStopWordsInclExcl()
 
12926
  {
 
12927
    switch (l1)
 
12928
    {
 
12929
    case 254:                       // 'union'
 
12930
      shiftT(254);                  // 'union'
 
12931
      break;
 
12932
    default:
 
12933
      shiftT(131);                  // 'except'
 
12934
    }
 
12935
    lookahead1W(99);                // S^WS | '(' | '(:' | 'at'
 
12936
    try_FTStopWords();
 
12937
  }
 
12938
 
 
12939
  function parse_FTLanguageOption()
 
12940
  {
 
12941
    eventHandler.startNonterminal("FTLanguageOption", e0);
 
12942
    shift(169);                     // 'language'
 
12943
    lookahead1W(17);                // StringLiteral | S^WS | '(:'
 
12944
    shift(11);                      // StringLiteral
 
12945
    eventHandler.endNonterminal("FTLanguageOption", e0);
 
12946
  }
 
12947
 
 
12948
  function try_FTLanguageOption()
 
12949
  {
 
12950
    shiftT(169);                    // 'language'
 
12951
    lookahead1W(17);                // StringLiteral | S^WS | '(:'
 
12952
    shiftT(11);                     // StringLiteral
 
12953
  }
 
12954
 
 
12955
  function parse_FTWildCardOption()
 
12956
  {
 
12957
    eventHandler.startNonterminal("FTWildCardOption", e0);
 
12958
    switch (l1)
 
12959
    {
 
12960
    case 268:                       // 'wildcards'
 
12961
      shift(268);                   // 'wildcards'
 
12962
      break;
 
12963
    default:
 
12964
      shift(188);                   // 'no'
 
12965
      lookahead1W(84);              // S^WS | '(:' | 'wildcards'
 
12966
      shift(268);                   // 'wildcards'
 
12967
    }
 
12968
    eventHandler.endNonterminal("FTWildCardOption", e0);
 
12969
  }
 
12970
 
 
12971
  function try_FTWildCardOption()
 
12972
  {
 
12973
    switch (l1)
 
12974
    {
 
12975
    case 268:                       // 'wildcards'
 
12976
      shiftT(268);                  // 'wildcards'
 
12977
      break;
 
12978
    default:
 
12979
      shiftT(188);                  // 'no'
 
12980
      lookahead1W(84);              // S^WS | '(:' | 'wildcards'
 
12981
      shiftT(268);                  // 'wildcards'
 
12982
    }
 
12983
  }
 
12984
 
 
12985
  function parse_FTExtensionOption()
 
12986
  {
 
12987
    eventHandler.startNonterminal("FTExtensionOption", e0);
 
12988
    shift(199);                     // 'option'
 
12989
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
12990
    whitespace();
 
12991
    parse_EQName();
 
12992
    lookahead1W(17);                // StringLiteral | S^WS | '(:'
 
12993
    shift(11);                      // StringLiteral
 
12994
    eventHandler.endNonterminal("FTExtensionOption", e0);
 
12995
  }
 
12996
 
 
12997
  function try_FTExtensionOption()
 
12998
  {
 
12999
    shiftT(199);                    // 'option'
 
13000
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13001
    try_EQName();
 
13002
    lookahead1W(17);                // StringLiteral | S^WS | '(:'
 
13003
    shiftT(11);                     // StringLiteral
 
13004
  }
 
13005
 
 
13006
  function parse_FTIgnoreOption()
 
13007
  {
 
13008
    eventHandler.startNonterminal("FTIgnoreOption", e0);
 
13009
    shift(271);                     // 'without'
 
13010
    lookahead1W(42);                // S^WS | '(:' | 'content'
 
13011
    shift(100);                     // 'content'
 
13012
    lookahead1W(265);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13013
    whitespace();
 
13014
    parse_UnionExpr();
 
13015
    eventHandler.endNonterminal("FTIgnoreOption", e0);
 
13016
  }
 
13017
 
 
13018
  function try_FTIgnoreOption()
 
13019
  {
 
13020
    shiftT(271);                    // 'without'
 
13021
    lookahead1W(42);                // S^WS | '(:' | 'content'
 
13022
    shiftT(100);                    // 'content'
 
13023
    lookahead1W(265);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13024
    try_UnionExpr();
 
13025
  }
 
13026
 
 
13027
  function parse_CollectionDecl()
 
13028
  {
 
13029
    eventHandler.startNonterminal("CollectionDecl", e0);
 
13030
    shift(95);                      // 'collection'
 
13031
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13032
    whitespace();
 
13033
    parse_EQName();
 
13034
    lookahead1W(107);               // S^WS | '(:' | ';' | 'as'
 
13035
    if (l1 == 79)                   // 'as'
 
13036
    {
 
13037
      whitespace();
 
13038
      parse_CollectionTypeDecl();
 
13039
    }
 
13040
    eventHandler.endNonterminal("CollectionDecl", e0);
 
13041
  }
 
13042
 
 
13043
  function parse_CollectionTypeDecl()
 
13044
  {
 
13045
    eventHandler.startNonterminal("CollectionTypeDecl", e0);
 
13046
    shift(79);                      // 'as'
 
13047
    lookahead1W(183);               // S^WS | '(:' | 'array' | 'attribute' | 'comment' | 'document-node' | 'element' |
 
13048
    whitespace();
 
13049
    parse_KindTest();
 
13050
    lookahead1W(156);               // S^WS | '(:' | '*' | '+' | ';' | '?'
 
13051
    if (l1 != 53)                   // ';'
 
13052
    {
 
13053
      whitespace();
 
13054
      parse_OccurrenceIndicator();
 
13055
    }
 
13056
    eventHandler.endNonterminal("CollectionTypeDecl", e0);
 
13057
  }
 
13058
 
 
13059
  function parse_IndexName()
 
13060
  {
 
13061
    eventHandler.startNonterminal("IndexName", e0);
 
13062
    parse_EQName();
 
13063
    eventHandler.endNonterminal("IndexName", e0);
 
13064
  }
 
13065
 
 
13066
  function parse_IndexDomainExpr()
 
13067
  {
 
13068
    eventHandler.startNonterminal("IndexDomainExpr", e0);
 
13069
    parse_PathExpr();
 
13070
    eventHandler.endNonterminal("IndexDomainExpr", e0);
 
13071
  }
 
13072
 
 
13073
  function parse_IndexKeySpec()
 
13074
  {
 
13075
    eventHandler.startNonterminal("IndexKeySpec", e0);
 
13076
    parse_IndexKeyExpr();
 
13077
    if (l1 == 79)                   // 'as'
 
13078
    {
 
13079
      whitespace();
 
13080
      parse_IndexKeyTypeDecl();
 
13081
    }
 
13082
    lookahead1W(146);               // S^WS | '(:' | ',' | ';' | 'collation'
 
13083
    if (l1 == 94)                   // 'collation'
 
13084
    {
 
13085
      whitespace();
 
13086
      parse_IndexKeyCollation();
 
13087
    }
 
13088
    eventHandler.endNonterminal("IndexKeySpec", e0);
 
13089
  }
 
13090
 
 
13091
  function parse_IndexKeyExpr()
 
13092
  {
 
13093
    eventHandler.startNonterminal("IndexKeyExpr", e0);
 
13094
    parse_PathExpr();
 
13095
    eventHandler.endNonterminal("IndexKeyExpr", e0);
 
13096
  }
 
13097
 
 
13098
  function parse_IndexKeyTypeDecl()
 
13099
  {
 
13100
    eventHandler.startNonterminal("IndexKeyTypeDecl", e0);
 
13101
    shift(79);                      // 'as'
 
13102
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13103
    whitespace();
 
13104
    parse_AtomicType();
 
13105
    lookahead1W(169);               // S^WS | '(:' | '*' | '+' | ',' | ';' | '?' | 'collation'
 
13106
    if (l1 == 39                    // '*'
 
13107
     || l1 == 40                    // '+'
 
13108
     || l1 == 64)                   // '?'
 
13109
    {
 
13110
      whitespace();
 
13111
      parse_OccurrenceIndicator();
 
13112
    }
 
13113
    eventHandler.endNonterminal("IndexKeyTypeDecl", e0);
 
13114
  }
 
13115
 
 
13116
  function parse_AtomicType()
 
13117
  {
 
13118
    eventHandler.startNonterminal("AtomicType", e0);
 
13119
    parse_EQName();
 
13120
    eventHandler.endNonterminal("AtomicType", e0);
 
13121
  }
 
13122
 
 
13123
  function parse_IndexKeyCollation()
 
13124
  {
 
13125
    eventHandler.startNonterminal("IndexKeyCollation", e0);
 
13126
    shift(94);                      // 'collation'
 
13127
    lookahead1W(15);                // URILiteral | S^WS | '(:'
 
13128
    shift(7);                       // URILiteral
 
13129
    eventHandler.endNonterminal("IndexKeyCollation", e0);
 
13130
  }
 
13131
 
 
13132
  function parse_IndexDecl()
 
13133
  {
 
13134
    eventHandler.startNonterminal("IndexDecl", e0);
 
13135
    shift(155);                     // 'index'
 
13136
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13137
    whitespace();
 
13138
    parse_IndexName();
 
13139
    lookahead1W(65);                // S^WS | '(:' | 'on'
 
13140
    shift(197);                     // 'on'
 
13141
    lookahead1W(63);                // S^WS | '(:' | 'nodes'
 
13142
    shift(192);                     // 'nodes'
 
13143
    lookahead1W(264);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13144
    whitespace();
 
13145
    parse_IndexDomainExpr();
 
13146
    shift(87);                      // 'by'
 
13147
    lookahead1W(264);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13148
    whitespace();
 
13149
    parse_IndexKeySpec();
 
13150
    for (;;)
 
13151
    {
 
13152
      lookahead1W(103);             // S^WS | '(:' | ',' | ';'
 
13153
      if (l1 != 41)                 // ','
 
13154
      {
 
13155
        break;
 
13156
      }
 
13157
      shift(41);                    // ','
 
13158
      lookahead1W(264);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13159
      whitespace();
 
13160
      parse_IndexKeySpec();
 
13161
    }
 
13162
    eventHandler.endNonterminal("IndexDecl", e0);
 
13163
  }
 
13164
 
 
13165
  function parse_ICDecl()
 
13166
  {
 
13167
    eventHandler.startNonterminal("ICDecl", e0);
 
13168
    shift(161);                     // 'integrity'
 
13169
    lookahead1W(40);                // S^WS | '(:' | 'constraint'
 
13170
    shift(97);                      // 'constraint'
 
13171
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13172
    whitespace();
 
13173
    parse_EQName();
 
13174
    lookahead1W(120);               // S^WS | '(:' | 'foreign' | 'on'
 
13175
    switch (l1)
 
13176
    {
 
13177
    case 197:                       // 'on'
 
13178
      whitespace();
 
13179
      parse_ICCollection();
 
13180
      break;
 
13181
    default:
 
13182
      whitespace();
 
13183
      parse_ICForeignKey();
 
13184
    }
 
13185
    eventHandler.endNonterminal("ICDecl", e0);
 
13186
  }
 
13187
 
 
13188
  function parse_ICCollection()
 
13189
  {
 
13190
    eventHandler.startNonterminal("ICCollection", e0);
 
13191
    shift(197);                     // 'on'
 
13192
    lookahead1W(39);                // S^WS | '(:' | 'collection'
 
13193
    shift(95);                      // 'collection'
 
13194
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13195
    whitespace();
 
13196
    parse_EQName();
 
13197
    lookahead1W(140);               // S^WS | '$' | '(:' | 'foreach' | 'node'
 
13198
    switch (l1)
 
13199
    {
 
13200
    case 31:                        // '$'
 
13201
      whitespace();
 
13202
      parse_ICCollSequence();
 
13203
      break;
 
13204
    case 191:                       // 'node'
 
13205
      whitespace();
 
13206
      parse_ICCollSequenceUnique();
 
13207
      break;
 
13208
    default:
 
13209
      whitespace();
 
13210
      parse_ICCollNode();
 
13211
    }
 
13212
    eventHandler.endNonterminal("ICCollection", e0);
 
13213
  }
 
13214
 
 
13215
  function parse_ICCollSequence()
 
13216
  {
 
13217
    eventHandler.startNonterminal("ICCollSequence", e0);
 
13218
    parse_VarRef();
 
13219
    lookahead1W(37);                // S^WS | '(:' | 'check'
 
13220
    shift(92);                      // 'check'
 
13221
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13222
    whitespace();
 
13223
    parse_ExprSingle();
 
13224
    eventHandler.endNonterminal("ICCollSequence", e0);
 
13225
  }
 
13226
 
 
13227
  function parse_ICCollSequenceUnique()
 
13228
  {
 
13229
    eventHandler.startNonterminal("ICCollSequenceUnique", e0);
 
13230
    shift(191);                     // 'node'
 
13231
    lookahead1W(21);                // S^WS | '$' | '(:'
 
13232
    whitespace();
 
13233
    parse_VarRef();
 
13234
    lookahead1W(37);                // S^WS | '(:' | 'check'
 
13235
    shift(92);                      // 'check'
 
13236
    lookahead1W(80);                // S^WS | '(:' | 'unique'
 
13237
    shift(255);                     // 'unique'
 
13238
    lookahead1W(57);                // S^WS | '(:' | 'key'
 
13239
    shift(168);                     // 'key'
 
13240
    lookahead1W(264);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13241
    whitespace();
 
13242
    parse_PathExpr();
 
13243
    eventHandler.endNonterminal("ICCollSequenceUnique", e0);
 
13244
  }
 
13245
 
 
13246
  function parse_ICCollNode()
 
13247
  {
 
13248
    eventHandler.startNonterminal("ICCollNode", e0);
 
13249
    shift(138);                     // 'foreach'
 
13250
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
13251
    shift(191);                     // 'node'
 
13252
    lookahead1W(21);                // S^WS | '$' | '(:'
 
13253
    whitespace();
 
13254
    parse_VarRef();
 
13255
    lookahead1W(37);                // S^WS | '(:' | 'check'
 
13256
    shift(92);                      // 'check'
 
13257
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13258
    whitespace();
 
13259
    parse_ExprSingle();
 
13260
    eventHandler.endNonterminal("ICCollNode", e0);
 
13261
  }
 
13262
 
 
13263
  function parse_ICForeignKey()
 
13264
  {
 
13265
    eventHandler.startNonterminal("ICForeignKey", e0);
 
13266
    shift(139);                     // 'foreign'
 
13267
    lookahead1W(57);                // S^WS | '(:' | 'key'
 
13268
    shift(168);                     // 'key'
 
13269
    lookahead1W(51);                // S^WS | '(:' | 'from'
 
13270
    whitespace();
 
13271
    parse_ICForeignKeySource();
 
13272
    whitespace();
 
13273
    parse_ICForeignKeyTarget();
 
13274
    eventHandler.endNonterminal("ICForeignKey", e0);
 
13275
  }
 
13276
 
 
13277
  function parse_ICForeignKeySource()
 
13278
  {
 
13279
    eventHandler.startNonterminal("ICForeignKeySource", e0);
 
13280
    shift(140);                     // 'from'
 
13281
    lookahead1W(39);                // S^WS | '(:' | 'collection'
 
13282
    whitespace();
 
13283
    parse_ICForeignKeyValues();
 
13284
    eventHandler.endNonterminal("ICForeignKeySource", e0);
 
13285
  }
 
13286
 
 
13287
  function parse_ICForeignKeyTarget()
 
13288
  {
 
13289
    eventHandler.startNonterminal("ICForeignKeyTarget", e0);
 
13290
    shift(248);                     // 'to'
 
13291
    lookahead1W(39);                // S^WS | '(:' | 'collection'
 
13292
    whitespace();
 
13293
    parse_ICForeignKeyValues();
 
13294
    eventHandler.endNonterminal("ICForeignKeyTarget", e0);
 
13295
  }
 
13296
 
 
13297
  function parse_ICForeignKeyValues()
 
13298
  {
 
13299
    eventHandler.startNonterminal("ICForeignKeyValues", e0);
 
13300
    shift(95);                      // 'collection'
 
13301
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
13302
    whitespace();
 
13303
    parse_EQName();
 
13304
    lookahead1W(62);                // S^WS | '(:' | 'node'
 
13305
    shift(191);                     // 'node'
 
13306
    lookahead1W(21);                // S^WS | '$' | '(:'
 
13307
    whitespace();
 
13308
    parse_VarRef();
 
13309
    lookahead1W(57);                // S^WS | '(:' | 'key'
 
13310
    shift(168);                     // 'key'
 
13311
    lookahead1W(264);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
13312
    whitespace();
 
13313
    parse_PathExpr();
 
13314
    eventHandler.endNonterminal("ICForeignKeyValues", e0);
 
13315
  }
 
13316
 
 
13317
  function try_Comment()
 
13318
  {
 
13319
    shiftT(36);                     // '(:'
 
13320
    for (;;)
 
13321
    {
 
13322
      lookahead1(89);               // CommentContents | '(:' | ':)'
 
13323
      if (l1 == 50)                 // ':)'
 
13324
      {
 
13325
        break;
 
13326
      }
 
13327
      switch (l1)
 
13328
      {
 
13329
      case 24:                      // CommentContents
 
13330
        shiftT(24);                 // CommentContents
 
13331
        break;
 
13332
      default:
 
13333
        try_Comment();
 
13334
      }
 
13335
    }
 
13336
    shiftT(50);                     // ':)'
 
13337
  }
 
13338
 
 
13339
  function try_Whitespace()
 
13340
  {
 
13341
    switch (l1)
 
13342
    {
 
13343
    case 22:                        // S^WS
 
13344
      shiftT(22);                   // S^WS
 
13345
      break;
 
13346
    default:
 
13347
      try_Comment();
 
13348
    }
 
13349
  }
 
13350
 
 
13351
  function parse_EQName()
 
13352
  {
 
13353
    eventHandler.startNonterminal("EQName", e0);
 
13354
    lookahead1(248);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |
 
13355
    switch (l1)
 
13356
    {
 
13357
    case 82:                        // 'attribute'
 
13358
      shift(82);                    // 'attribute'
 
13359
      break;
 
13360
    case 96:                        // 'comment'
 
13361
      shift(96);                    // 'comment'
 
13362
      break;
 
13363
    case 120:                       // 'document-node'
 
13364
      shift(120);                   // 'document-node'
 
13365
      break;
 
13366
    case 121:                       // 'element'
 
13367
      shift(121);                   // 'element'
 
13368
      break;
 
13369
    case 124:                       // 'empty-sequence'
 
13370
      shift(124);                   // 'empty-sequence'
 
13371
      break;
 
13372
    case 145:                       // 'function'
 
13373
      shift(145);                   // 'function'
 
13374
      break;
 
13375
    case 152:                       // 'if'
 
13376
      shift(152);                   // 'if'
 
13377
      break;
 
13378
    case 165:                       // 'item'
 
13379
      shift(165);                   // 'item'
 
13380
      break;
 
13381
    case 185:                       // 'namespace-node'
 
13382
      shift(185);                   // 'namespace-node'
 
13383
      break;
 
13384
    case 191:                       // 'node'
 
13385
      shift(191);                   // 'node'
 
13386
      break;
 
13387
    case 216:                       // 'processing-instruction'
 
13388
      shift(216);                   // 'processing-instruction'
 
13389
      break;
 
13390
    case 226:                       // 'schema-attribute'
 
13391
      shift(226);                   // 'schema-attribute'
 
13392
      break;
 
13393
    case 227:                       // 'schema-element'
 
13394
      shift(227);                   // 'schema-element'
 
13395
      break;
 
13396
    case 243:                       // 'switch'
 
13397
      shift(243);                   // 'switch'
 
13398
      break;
 
13399
    case 244:                       // 'text'
 
13400
      shift(244);                   // 'text'
 
13401
      break;
 
13402
    case 253:                       // 'typeswitch'
 
13403
      shift(253);                   // 'typeswitch'
 
13404
      break;
 
13405
    default:
 
13406
      parse_FunctionName();
 
13407
    }
 
13408
    eventHandler.endNonterminal("EQName", e0);
 
13409
  }
 
13410
 
 
13411
  function try_EQName()
 
13412
  {
 
13413
    lookahead1(248);                // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |
 
13414
    switch (l1)
 
13415
    {
 
13416
    case 82:                        // 'attribute'
 
13417
      shiftT(82);                   // 'attribute'
 
13418
      break;
 
13419
    case 96:                        // 'comment'
 
13420
      shiftT(96);                   // 'comment'
 
13421
      break;
 
13422
    case 120:                       // 'document-node'
 
13423
      shiftT(120);                  // 'document-node'
 
13424
      break;
 
13425
    case 121:                       // 'element'
 
13426
      shiftT(121);                  // 'element'
 
13427
      break;
 
13428
    case 124:                       // 'empty-sequence'
 
13429
      shiftT(124);                  // 'empty-sequence'
 
13430
      break;
 
13431
    case 145:                       // 'function'
 
13432
      shiftT(145);                  // 'function'
 
13433
      break;
 
13434
    case 152:                       // 'if'
 
13435
      shiftT(152);                  // 'if'
 
13436
      break;
 
13437
    case 165:                       // 'item'
 
13438
      shiftT(165);                  // 'item'
 
13439
      break;
 
13440
    case 185:                       // 'namespace-node'
 
13441
      shiftT(185);                  // 'namespace-node'
 
13442
      break;
 
13443
    case 191:                       // 'node'
 
13444
      shiftT(191);                  // 'node'
 
13445
      break;
 
13446
    case 216:                       // 'processing-instruction'
 
13447
      shiftT(216);                  // 'processing-instruction'
 
13448
      break;
 
13449
    case 226:                       // 'schema-attribute'
 
13450
      shiftT(226);                  // 'schema-attribute'
 
13451
      break;
 
13452
    case 227:                       // 'schema-element'
 
13453
      shiftT(227);                  // 'schema-element'
 
13454
      break;
 
13455
    case 243:                       // 'switch'
 
13456
      shiftT(243);                  // 'switch'
 
13457
      break;
 
13458
    case 244:                       // 'text'
 
13459
      shiftT(244);                  // 'text'
 
13460
      break;
 
13461
    case 253:                       // 'typeswitch'
 
13462
      shiftT(253);                  // 'typeswitch'
 
13463
      break;
 
13464
    default:
 
13465
      try_FunctionName();
 
13466
    }
 
13467
  }
 
13468
 
 
13469
  function parse_FunctionName()
 
13470
  {
 
13471
    eventHandler.startNonterminal("FunctionName", e0);
 
13472
    switch (l1)
 
13473
    {
 
13474
    case 6:                         // EQName^Token
 
13475
      shift(6);                     // EQName^Token
 
13476
      break;
 
13477
    case 70:                        // 'after'
 
13478
      shift(70);                    // 'after'
 
13479
      break;
 
13480
    case 73:                        // 'ancestor'
 
13481
      shift(73);                    // 'ancestor'
 
13482
      break;
 
13483
    case 74:                        // 'ancestor-or-self'
 
13484
      shift(74);                    // 'ancestor-or-self'
 
13485
      break;
 
13486
    case 75:                        // 'and'
 
13487
      shift(75);                    // 'and'
 
13488
      break;
 
13489
    case 79:                        // 'as'
 
13490
      shift(79);                    // 'as'
 
13491
      break;
 
13492
    case 80:                        // 'ascending'
 
13493
      shift(80);                    // 'ascending'
 
13494
      break;
 
13495
    case 84:                        // 'before'
 
13496
      shift(84);                    // 'before'
 
13497
      break;
 
13498
    case 88:                        // 'case'
 
13499
      shift(88);                    // 'case'
 
13500
      break;
 
13501
    case 89:                        // 'cast'
 
13502
      shift(89);                    // 'cast'
 
13503
      break;
 
13504
    case 90:                        // 'castable'
 
13505
      shift(90);                    // 'castable'
 
13506
      break;
 
13507
    case 93:                        // 'child'
 
13508
      shift(93);                    // 'child'
 
13509
      break;
 
13510
    case 94:                        // 'collation'
 
13511
      shift(94);                    // 'collation'
 
13512
      break;
 
13513
    case 103:                       // 'copy'
 
13514
      shift(103);                   // 'copy'
 
13515
      break;
 
13516
    case 105:                       // 'count'
 
13517
      shift(105);                   // 'count'
 
13518
      break;
 
13519
    case 108:                       // 'declare'
 
13520
      shift(108);                   // 'declare'
 
13521
      break;
 
13522
    case 109:                       // 'default'
 
13523
      shift(109);                   // 'default'
 
13524
      break;
 
13525
    case 110:                       // 'delete'
 
13526
      shift(110);                   // 'delete'
 
13527
      break;
 
13528
    case 111:                       // 'descendant'
 
13529
      shift(111);                   // 'descendant'
 
13530
      break;
 
13531
    case 112:                       // 'descendant-or-self'
 
13532
      shift(112);                   // 'descendant-or-self'
 
13533
      break;
 
13534
    case 113:                       // 'descending'
 
13535
      shift(113);                   // 'descending'
 
13536
      break;
 
13537
    case 118:                       // 'div'
 
13538
      shift(118);                   // 'div'
 
13539
      break;
 
13540
    case 119:                       // 'document'
 
13541
      shift(119);                   // 'document'
 
13542
      break;
 
13543
    case 122:                       // 'else'
 
13544
      shift(122);                   // 'else'
 
13545
      break;
 
13546
    case 123:                       // 'empty'
 
13547
      shift(123);                   // 'empty'
 
13548
      break;
 
13549
    case 126:                       // 'end'
 
13550
      shift(126);                   // 'end'
 
13551
      break;
 
13552
    case 128:                       // 'eq'
 
13553
      shift(128);                   // 'eq'
 
13554
      break;
 
13555
    case 129:                       // 'every'
 
13556
      shift(129);                   // 'every'
 
13557
      break;
 
13558
    case 131:                       // 'except'
 
13559
      shift(131);                   // 'except'
 
13560
      break;
 
13561
    case 134:                       // 'first'
 
13562
      shift(134);                   // 'first'
 
13563
      break;
 
13564
    case 135:                       // 'following'
 
13565
      shift(135);                   // 'following'
 
13566
      break;
 
13567
    case 136:                       // 'following-sibling'
 
13568
      shift(136);                   // 'following-sibling'
 
13569
      break;
 
13570
    case 137:                       // 'for'
 
13571
      shift(137);                   // 'for'
 
13572
      break;
 
13573
    case 146:                       // 'ge'
 
13574
      shift(146);                   // 'ge'
 
13575
      break;
 
13576
    case 148:                       // 'group'
 
13577
      shift(148);                   // 'group'
 
13578
      break;
 
13579
    case 150:                       // 'gt'
 
13580
      shift(150);                   // 'gt'
 
13581
      break;
 
13582
    case 151:                       // 'idiv'
 
13583
      shift(151);                   // 'idiv'
 
13584
      break;
 
13585
    case 153:                       // 'import'
 
13586
      shift(153);                   // 'import'
 
13587
      break;
 
13588
    case 159:                       // 'insert'
 
13589
      shift(159);                   // 'insert'
 
13590
      break;
 
13591
    case 160:                       // 'instance'
 
13592
      shift(160);                   // 'instance'
 
13593
      break;
 
13594
    case 162:                       // 'intersect'
 
13595
      shift(162);                   // 'intersect'
 
13596
      break;
 
13597
    case 163:                       // 'into'
 
13598
      shift(163);                   // 'into'
 
13599
      break;
 
13600
    case 164:                       // 'is'
 
13601
      shift(164);                   // 'is'
 
13602
      break;
 
13603
    case 170:                       // 'last'
 
13604
      shift(170);                   // 'last'
 
13605
      break;
 
13606
    case 172:                       // 'le'
 
13607
      shift(172);                   // 'le'
 
13608
      break;
 
13609
    case 174:                       // 'let'
 
13610
      shift(174);                   // 'let'
 
13611
      break;
 
13612
    case 178:                       // 'lt'
 
13613
      shift(178);                   // 'lt'
 
13614
      break;
 
13615
    case 180:                       // 'mod'
 
13616
      shift(180);                   // 'mod'
 
13617
      break;
 
13618
    case 181:                       // 'modify'
 
13619
      shift(181);                   // 'modify'
 
13620
      break;
 
13621
    case 182:                       // 'module'
 
13622
      shift(182);                   // 'module'
 
13623
      break;
 
13624
    case 184:                       // 'namespace'
 
13625
      shift(184);                   // 'namespace'
 
13626
      break;
 
13627
    case 186:                       // 'ne'
 
13628
      shift(186);                   // 'ne'
 
13629
      break;
 
13630
    case 198:                       // 'only'
 
13631
      shift(198);                   // 'only'
 
13632
      break;
 
13633
    case 200:                       // 'or'
 
13634
      shift(200);                   // 'or'
 
13635
      break;
 
13636
    case 201:                       // 'order'
 
13637
      shift(201);                   // 'order'
 
13638
      break;
 
13639
    case 202:                       // 'ordered'
 
13640
      shift(202);                   // 'ordered'
 
13641
      break;
 
13642
    case 206:                       // 'parent'
 
13643
      shift(206);                   // 'parent'
 
13644
      break;
 
13645
    case 212:                       // 'preceding'
 
13646
      shift(212);                   // 'preceding'
 
13647
      break;
 
13648
    case 213:                       // 'preceding-sibling'
 
13649
      shift(213);                   // 'preceding-sibling'
 
13650
      break;
 
13651
    case 218:                       // 'rename'
 
13652
      shift(218);                   // 'rename'
 
13653
      break;
 
13654
    case 219:                       // 'replace'
 
13655
      shift(219);                   // 'replace'
 
13656
      break;
 
13657
    case 220:                       // 'return'
 
13658
      shift(220);                   // 'return'
 
13659
      break;
 
13660
    case 224:                       // 'satisfies'
 
13661
      shift(224);                   // 'satisfies'
 
13662
      break;
 
13663
    case 229:                       // 'self'
 
13664
      shift(229);                   // 'self'
 
13665
      break;
 
13666
    case 235:                       // 'some'
 
13667
      shift(235);                   // 'some'
 
13668
      break;
 
13669
    case 236:                       // 'stable'
 
13670
      shift(236);                   // 'stable'
 
13671
      break;
 
13672
    case 237:                       // 'start'
 
13673
      shift(237);                   // 'start'
 
13674
      break;
 
13675
    case 248:                       // 'to'
 
13676
      shift(248);                   // 'to'
 
13677
      break;
 
13678
    case 249:                       // 'treat'
 
13679
      shift(249);                   // 'treat'
 
13680
      break;
 
13681
    case 250:                       // 'try'
 
13682
      shift(250);                   // 'try'
 
13683
      break;
 
13684
    case 254:                       // 'union'
 
13685
      shift(254);                   // 'union'
 
13686
      break;
 
13687
    case 256:                       // 'unordered'
 
13688
      shift(256);                   // 'unordered'
 
13689
      break;
 
13690
    case 260:                       // 'validate'
 
13691
      shift(260);                   // 'validate'
 
13692
      break;
 
13693
    case 266:                       // 'where'
 
13694
      shift(266);                   // 'where'
 
13695
      break;
 
13696
    case 270:                       // 'with'
 
13697
      shift(270);                   // 'with'
 
13698
      break;
 
13699
    case 274:                       // 'xquery'
 
13700
      shift(274);                   // 'xquery'
 
13701
      break;
 
13702
    case 72:                        // 'allowing'
 
13703
      shift(72);                    // 'allowing'
 
13704
      break;
 
13705
    case 81:                        // 'at'
 
13706
      shift(81);                    // 'at'
 
13707
      break;
 
13708
    case 83:                        // 'base-uri'
 
13709
      shift(83);                    // 'base-uri'
 
13710
      break;
 
13711
    case 85:                        // 'boundary-space'
 
13712
      shift(85);                    // 'boundary-space'
 
13713
      break;
 
13714
    case 86:                        // 'break'
 
13715
      shift(86);                    // 'break'
 
13716
      break;
 
13717
    case 91:                        // 'catch'
 
13718
      shift(91);                    // 'catch'
 
13719
      break;
 
13720
    case 98:                        // 'construction'
 
13721
      shift(98);                    // 'construction'
 
13722
      break;
 
13723
    case 101:                       // 'context'
 
13724
      shift(101);                   // 'context'
 
13725
      break;
 
13726
    case 102:                       // 'continue'
 
13727
      shift(102);                   // 'continue'
 
13728
      break;
 
13729
    case 104:                       // 'copy-namespaces'
 
13730
      shift(104);                   // 'copy-namespaces'
 
13731
      break;
 
13732
    case 106:                       // 'decimal-format'
 
13733
      shift(106);                   // 'decimal-format'
 
13734
      break;
 
13735
    case 125:                       // 'encoding'
 
13736
      shift(125);                   // 'encoding'
 
13737
      break;
 
13738
    case 132:                       // 'exit'
 
13739
      shift(132);                   // 'exit'
 
13740
      break;
 
13741
    case 133:                       // 'external'
 
13742
      shift(133);                   // 'external'
 
13743
      break;
 
13744
    case 141:                       // 'ft-option'
 
13745
      shift(141);                   // 'ft-option'
 
13746
      break;
 
13747
    case 154:                       // 'in'
 
13748
      shift(154);                   // 'in'
 
13749
      break;
 
13750
    case 155:                       // 'index'
 
13751
      shift(155);                   // 'index'
 
13752
      break;
 
13753
    case 161:                       // 'integrity'
 
13754
      shift(161);                   // 'integrity'
 
13755
      break;
 
13756
    case 171:                       // 'lax'
 
13757
      shift(171);                   // 'lax'
 
13758
      break;
 
13759
    case 192:                       // 'nodes'
 
13760
      shift(192);                   // 'nodes'
 
13761
      break;
 
13762
    case 199:                       // 'option'
 
13763
      shift(199);                   // 'option'
 
13764
      break;
 
13765
    case 203:                       // 'ordering'
 
13766
      shift(203);                   // 'ordering'
 
13767
      break;
 
13768
    case 222:                       // 'revalidation'
 
13769
      shift(222);                   // 'revalidation'
 
13770
      break;
 
13771
    case 225:                       // 'schema'
 
13772
      shift(225);                   // 'schema'
 
13773
      break;
 
13774
    case 228:                       // 'score'
 
13775
      shift(228);                   // 'score'
 
13776
      break;
 
13777
    case 234:                       // 'sliding'
 
13778
      shift(234);                   // 'sliding'
 
13779
      break;
 
13780
    case 240:                       // 'strict'
 
13781
      shift(240);                   // 'strict'
 
13782
      break;
 
13783
    case 251:                       // 'tumbling'
 
13784
      shift(251);                   // 'tumbling'
 
13785
      break;
 
13786
    case 252:                       // 'type'
 
13787
      shift(252);                   // 'type'
 
13788
      break;
 
13789
    case 257:                       // 'updating'
 
13790
      shift(257);                   // 'updating'
 
13791
      break;
 
13792
    case 261:                       // 'value'
 
13793
      shift(261);                   // 'value'
 
13794
      break;
 
13795
    case 262:                       // 'variable'
 
13796
      shift(262);                   // 'variable'
 
13797
      break;
 
13798
    case 263:                       // 'version'
 
13799
      shift(263);                   // 'version'
 
13800
      break;
 
13801
    case 267:                       // 'while'
 
13802
      shift(267);                   // 'while'
 
13803
      break;
 
13804
    case 97:                        // 'constraint'
 
13805
      shift(97);                    // 'constraint'
 
13806
      break;
 
13807
    case 176:                       // 'loop'
 
13808
      shift(176);                   // 'loop'
 
13809
      break;
 
13810
    case 221:                       // 'returning'
 
13811
      shift(221);                   // 'returning'
 
13812
      break;
 
13813
    case 194:                       // 'object'
 
13814
      shift(194);                   // 'object'
 
13815
      break;
 
13816
    case 167:                       // 'json-item'
 
13817
      shift(167);                   // 'json-item'
 
13818
      break;
 
13819
    default:
 
13820
      shift(78);                    // 'array'
 
13821
    }
 
13822
    eventHandler.endNonterminal("FunctionName", e0);
 
13823
  }
 
13824
 
 
13825
  function try_FunctionName()
 
13826
  {
 
13827
    switch (l1)
 
13828
    {
 
13829
    case 6:                         // EQName^Token
 
13830
      shiftT(6);                    // EQName^Token
 
13831
      break;
 
13832
    case 70:                        // 'after'
 
13833
      shiftT(70);                   // 'after'
 
13834
      break;
 
13835
    case 73:                        // 'ancestor'
 
13836
      shiftT(73);                   // 'ancestor'
 
13837
      break;
 
13838
    case 74:                        // 'ancestor-or-self'
 
13839
      shiftT(74);                   // 'ancestor-or-self'
 
13840
      break;
 
13841
    case 75:                        // 'and'
 
13842
      shiftT(75);                   // 'and'
 
13843
      break;
 
13844
    case 79:                        // 'as'
 
13845
      shiftT(79);                   // 'as'
 
13846
      break;
 
13847
    case 80:                        // 'ascending'
 
13848
      shiftT(80);                   // 'ascending'
 
13849
      break;
 
13850
    case 84:                        // 'before'
 
13851
      shiftT(84);                   // 'before'
 
13852
      break;
 
13853
    case 88:                        // 'case'
 
13854
      shiftT(88);                   // 'case'
 
13855
      break;
 
13856
    case 89:                        // 'cast'
 
13857
      shiftT(89);                   // 'cast'
 
13858
      break;
 
13859
    case 90:                        // 'castable'
 
13860
      shiftT(90);                   // 'castable'
 
13861
      break;
 
13862
    case 93:                        // 'child'
 
13863
      shiftT(93);                   // 'child'
 
13864
      break;
 
13865
    case 94:                        // 'collation'
 
13866
      shiftT(94);                   // 'collation'
 
13867
      break;
 
13868
    case 103:                       // 'copy'
 
13869
      shiftT(103);                  // 'copy'
 
13870
      break;
 
13871
    case 105:                       // 'count'
 
13872
      shiftT(105);                  // 'count'
 
13873
      break;
 
13874
    case 108:                       // 'declare'
 
13875
      shiftT(108);                  // 'declare'
 
13876
      break;
 
13877
    case 109:                       // 'default'
 
13878
      shiftT(109);                  // 'default'
 
13879
      break;
 
13880
    case 110:                       // 'delete'
 
13881
      shiftT(110);                  // 'delete'
 
13882
      break;
 
13883
    case 111:                       // 'descendant'
 
13884
      shiftT(111);                  // 'descendant'
 
13885
      break;
 
13886
    case 112:                       // 'descendant-or-self'
 
13887
      shiftT(112);                  // 'descendant-or-self'
 
13888
      break;
 
13889
    case 113:                       // 'descending'
 
13890
      shiftT(113);                  // 'descending'
 
13891
      break;
 
13892
    case 118:                       // 'div'
 
13893
      shiftT(118);                  // 'div'
 
13894
      break;
 
13895
    case 119:                       // 'document'
 
13896
      shiftT(119);                  // 'document'
 
13897
      break;
 
13898
    case 122:                       // 'else'
 
13899
      shiftT(122);                  // 'else'
 
13900
      break;
 
13901
    case 123:                       // 'empty'
 
13902
      shiftT(123);                  // 'empty'
 
13903
      break;
 
13904
    case 126:                       // 'end'
 
13905
      shiftT(126);                  // 'end'
 
13906
      break;
 
13907
    case 128:                       // 'eq'
 
13908
      shiftT(128);                  // 'eq'
 
13909
      break;
 
13910
    case 129:                       // 'every'
 
13911
      shiftT(129);                  // 'every'
 
13912
      break;
 
13913
    case 131:                       // 'except'
 
13914
      shiftT(131);                  // 'except'
 
13915
      break;
 
13916
    case 134:                       // 'first'
 
13917
      shiftT(134);                  // 'first'
 
13918
      break;
 
13919
    case 135:                       // 'following'
 
13920
      shiftT(135);                  // 'following'
 
13921
      break;
 
13922
    case 136:                       // 'following-sibling'
 
13923
      shiftT(136);                  // 'following-sibling'
 
13924
      break;
 
13925
    case 137:                       // 'for'
 
13926
      shiftT(137);                  // 'for'
 
13927
      break;
 
13928
    case 146:                       // 'ge'
 
13929
      shiftT(146);                  // 'ge'
 
13930
      break;
 
13931
    case 148:                       // 'group'
 
13932
      shiftT(148);                  // 'group'
 
13933
      break;
 
13934
    case 150:                       // 'gt'
 
13935
      shiftT(150);                  // 'gt'
 
13936
      break;
 
13937
    case 151:                       // 'idiv'
 
13938
      shiftT(151);                  // 'idiv'
 
13939
      break;
 
13940
    case 153:                       // 'import'
 
13941
      shiftT(153);                  // 'import'
 
13942
      break;
 
13943
    case 159:                       // 'insert'
 
13944
      shiftT(159);                  // 'insert'
 
13945
      break;
 
13946
    case 160:                       // 'instance'
 
13947
      shiftT(160);                  // 'instance'
 
13948
      break;
 
13949
    case 162:                       // 'intersect'
 
13950
      shiftT(162);                  // 'intersect'
 
13951
      break;
 
13952
    case 163:                       // 'into'
 
13953
      shiftT(163);                  // 'into'
 
13954
      break;
 
13955
    case 164:                       // 'is'
 
13956
      shiftT(164);                  // 'is'
 
13957
      break;
 
13958
    case 170:                       // 'last'
 
13959
      shiftT(170);                  // 'last'
 
13960
      break;
 
13961
    case 172:                       // 'le'
 
13962
      shiftT(172);                  // 'le'
 
13963
      break;
 
13964
    case 174:                       // 'let'
 
13965
      shiftT(174);                  // 'let'
 
13966
      break;
 
13967
    case 178:                       // 'lt'
 
13968
      shiftT(178);                  // 'lt'
 
13969
      break;
 
13970
    case 180:                       // 'mod'
 
13971
      shiftT(180);                  // 'mod'
 
13972
      break;
 
13973
    case 181:                       // 'modify'
 
13974
      shiftT(181);                  // 'modify'
 
13975
      break;
 
13976
    case 182:                       // 'module'
 
13977
      shiftT(182);                  // 'module'
 
13978
      break;
 
13979
    case 184:                       // 'namespace'
 
13980
      shiftT(184);                  // 'namespace'
 
13981
      break;
 
13982
    case 186:                       // 'ne'
 
13983
      shiftT(186);                  // 'ne'
 
13984
      break;
 
13985
    case 198:                       // 'only'
 
13986
      shiftT(198);                  // 'only'
 
13987
      break;
 
13988
    case 200:                       // 'or'
 
13989
      shiftT(200);                  // 'or'
 
13990
      break;
 
13991
    case 201:                       // 'order'
 
13992
      shiftT(201);                  // 'order'
 
13993
      break;
 
13994
    case 202:                       // 'ordered'
 
13995
      shiftT(202);                  // 'ordered'
 
13996
      break;
 
13997
    case 206:                       // 'parent'
 
13998
      shiftT(206);                  // 'parent'
 
13999
      break;
 
14000
    case 212:                       // 'preceding'
 
14001
      shiftT(212);                  // 'preceding'
 
14002
      break;
 
14003
    case 213:                       // 'preceding-sibling'
 
14004
      shiftT(213);                  // 'preceding-sibling'
 
14005
      break;
 
14006
    case 218:                       // 'rename'
 
14007
      shiftT(218);                  // 'rename'
 
14008
      break;
 
14009
    case 219:                       // 'replace'
 
14010
      shiftT(219);                  // 'replace'
 
14011
      break;
 
14012
    case 220:                       // 'return'
 
14013
      shiftT(220);                  // 'return'
 
14014
      break;
 
14015
    case 224:                       // 'satisfies'
 
14016
      shiftT(224);                  // 'satisfies'
 
14017
      break;
 
14018
    case 229:                       // 'self'
 
14019
      shiftT(229);                  // 'self'
 
14020
      break;
 
14021
    case 235:                       // 'some'
 
14022
      shiftT(235);                  // 'some'
 
14023
      break;
 
14024
    case 236:                       // 'stable'
 
14025
      shiftT(236);                  // 'stable'
 
14026
      break;
 
14027
    case 237:                       // 'start'
 
14028
      shiftT(237);                  // 'start'
 
14029
      break;
 
14030
    case 248:                       // 'to'
 
14031
      shiftT(248);                  // 'to'
 
14032
      break;
 
14033
    case 249:                       // 'treat'
 
14034
      shiftT(249);                  // 'treat'
 
14035
      break;
 
14036
    case 250:                       // 'try'
 
14037
      shiftT(250);                  // 'try'
 
14038
      break;
 
14039
    case 254:                       // 'union'
 
14040
      shiftT(254);                  // 'union'
 
14041
      break;
 
14042
    case 256:                       // 'unordered'
 
14043
      shiftT(256);                  // 'unordered'
 
14044
      break;
 
14045
    case 260:                       // 'validate'
 
14046
      shiftT(260);                  // 'validate'
 
14047
      break;
 
14048
    case 266:                       // 'where'
 
14049
      shiftT(266);                  // 'where'
 
14050
      break;
 
14051
    case 270:                       // 'with'
 
14052
      shiftT(270);                  // 'with'
 
14053
      break;
 
14054
    case 274:                       // 'xquery'
 
14055
      shiftT(274);                  // 'xquery'
 
14056
      break;
 
14057
    case 72:                        // 'allowing'
 
14058
      shiftT(72);                   // 'allowing'
 
14059
      break;
 
14060
    case 81:                        // 'at'
 
14061
      shiftT(81);                   // 'at'
 
14062
      break;
 
14063
    case 83:                        // 'base-uri'
 
14064
      shiftT(83);                   // 'base-uri'
 
14065
      break;
 
14066
    case 85:                        // 'boundary-space'
 
14067
      shiftT(85);                   // 'boundary-space'
 
14068
      break;
 
14069
    case 86:                        // 'break'
 
14070
      shiftT(86);                   // 'break'
 
14071
      break;
 
14072
    case 91:                        // 'catch'
 
14073
      shiftT(91);                   // 'catch'
 
14074
      break;
 
14075
    case 98:                        // 'construction'
 
14076
      shiftT(98);                   // 'construction'
 
14077
      break;
 
14078
    case 101:                       // 'context'
 
14079
      shiftT(101);                  // 'context'
 
14080
      break;
 
14081
    case 102:                       // 'continue'
 
14082
      shiftT(102);                  // 'continue'
 
14083
      break;
 
14084
    case 104:                       // 'copy-namespaces'
 
14085
      shiftT(104);                  // 'copy-namespaces'
 
14086
      break;
 
14087
    case 106:                       // 'decimal-format'
 
14088
      shiftT(106);                  // 'decimal-format'
 
14089
      break;
 
14090
    case 125:                       // 'encoding'
 
14091
      shiftT(125);                  // 'encoding'
 
14092
      break;
 
14093
    case 132:                       // 'exit'
 
14094
      shiftT(132);                  // 'exit'
 
14095
      break;
 
14096
    case 133:                       // 'external'
 
14097
      shiftT(133);                  // 'external'
 
14098
      break;
 
14099
    case 141:                       // 'ft-option'
 
14100
      shiftT(141);                  // 'ft-option'
 
14101
      break;
 
14102
    case 154:                       // 'in'
 
14103
      shiftT(154);                  // 'in'
 
14104
      break;
 
14105
    case 155:                       // 'index'
 
14106
      shiftT(155);                  // 'index'
 
14107
      break;
 
14108
    case 161:                       // 'integrity'
 
14109
      shiftT(161);                  // 'integrity'
 
14110
      break;
 
14111
    case 171:                       // 'lax'
 
14112
      shiftT(171);                  // 'lax'
 
14113
      break;
 
14114
    case 192:                       // 'nodes'
 
14115
      shiftT(192);                  // 'nodes'
 
14116
      break;
 
14117
    case 199:                       // 'option'
 
14118
      shiftT(199);                  // 'option'
 
14119
      break;
 
14120
    case 203:                       // 'ordering'
 
14121
      shiftT(203);                  // 'ordering'
 
14122
      break;
 
14123
    case 222:                       // 'revalidation'
 
14124
      shiftT(222);                  // 'revalidation'
 
14125
      break;
 
14126
    case 225:                       // 'schema'
 
14127
      shiftT(225);                  // 'schema'
 
14128
      break;
 
14129
    case 228:                       // 'score'
 
14130
      shiftT(228);                  // 'score'
 
14131
      break;
 
14132
    case 234:                       // 'sliding'
 
14133
      shiftT(234);                  // 'sliding'
 
14134
      break;
 
14135
    case 240:                       // 'strict'
 
14136
      shiftT(240);                  // 'strict'
 
14137
      break;
 
14138
    case 251:                       // 'tumbling'
 
14139
      shiftT(251);                  // 'tumbling'
 
14140
      break;
 
14141
    case 252:                       // 'type'
 
14142
      shiftT(252);                  // 'type'
 
14143
      break;
 
14144
    case 257:                       // 'updating'
 
14145
      shiftT(257);                  // 'updating'
 
14146
      break;
 
14147
    case 261:                       // 'value'
 
14148
      shiftT(261);                  // 'value'
 
14149
      break;
 
14150
    case 262:                       // 'variable'
 
14151
      shiftT(262);                  // 'variable'
 
14152
      break;
 
14153
    case 263:                       // 'version'
 
14154
      shiftT(263);                  // 'version'
 
14155
      break;
 
14156
    case 267:                       // 'while'
 
14157
      shiftT(267);                  // 'while'
 
14158
      break;
 
14159
    case 97:                        // 'constraint'
 
14160
      shiftT(97);                   // 'constraint'
 
14161
      break;
 
14162
    case 176:                       // 'loop'
 
14163
      shiftT(176);                  // 'loop'
 
14164
      break;
 
14165
    case 221:                       // 'returning'
 
14166
      shiftT(221);                  // 'returning'
 
14167
      break;
 
14168
    case 194:                       // 'object'
 
14169
      shiftT(194);                  // 'object'
 
14170
      break;
 
14171
    case 167:                       // 'json-item'
 
14172
      shiftT(167);                  // 'json-item'
 
14173
      break;
 
14174
    default:
 
14175
      shiftT(78);                   // 'array'
 
14176
    }
 
14177
  }
 
14178
 
 
14179
  function parse_NCName()
 
14180
  {
 
14181
    eventHandler.startNonterminal("NCName", e0);
 
14182
    switch (l1)
 
14183
    {
 
14184
    case 19:                        // NCName^Token
 
14185
      shift(19);                    // NCName^Token
 
14186
      break;
 
14187
    case 70:                        // 'after'
 
14188
      shift(70);                    // 'after'
 
14189
      break;
 
14190
    case 75:                        // 'and'
 
14191
      shift(75);                    // 'and'
 
14192
      break;
 
14193
    case 79:                        // 'as'
 
14194
      shift(79);                    // 'as'
 
14195
      break;
 
14196
    case 80:                        // 'ascending'
 
14197
      shift(80);                    // 'ascending'
 
14198
      break;
 
14199
    case 84:                        // 'before'
 
14200
      shift(84);                    // 'before'
 
14201
      break;
 
14202
    case 88:                        // 'case'
 
14203
      shift(88);                    // 'case'
 
14204
      break;
 
14205
    case 89:                        // 'cast'
 
14206
      shift(89);                    // 'cast'
 
14207
      break;
 
14208
    case 90:                        // 'castable'
 
14209
      shift(90);                    // 'castable'
 
14210
      break;
 
14211
    case 94:                        // 'collation'
 
14212
      shift(94);                    // 'collation'
 
14213
      break;
 
14214
    case 105:                       // 'count'
 
14215
      shift(105);                   // 'count'
 
14216
      break;
 
14217
    case 109:                       // 'default'
 
14218
      shift(109);                   // 'default'
 
14219
      break;
 
14220
    case 113:                       // 'descending'
 
14221
      shift(113);                   // 'descending'
 
14222
      break;
 
14223
    case 118:                       // 'div'
 
14224
      shift(118);                   // 'div'
 
14225
      break;
 
14226
    case 122:                       // 'else'
 
14227
      shift(122);                   // 'else'
 
14228
      break;
 
14229
    case 123:                       // 'empty'
 
14230
      shift(123);                   // 'empty'
 
14231
      break;
 
14232
    case 126:                       // 'end'
 
14233
      shift(126);                   // 'end'
 
14234
      break;
 
14235
    case 128:                       // 'eq'
 
14236
      shift(128);                   // 'eq'
 
14237
      break;
 
14238
    case 131:                       // 'except'
 
14239
      shift(131);                   // 'except'
 
14240
      break;
 
14241
    case 137:                       // 'for'
 
14242
      shift(137);                   // 'for'
 
14243
      break;
 
14244
    case 146:                       // 'ge'
 
14245
      shift(146);                   // 'ge'
 
14246
      break;
 
14247
    case 148:                       // 'group'
 
14248
      shift(148);                   // 'group'
 
14249
      break;
 
14250
    case 150:                       // 'gt'
 
14251
      shift(150);                   // 'gt'
 
14252
      break;
 
14253
    case 151:                       // 'idiv'
 
14254
      shift(151);                   // 'idiv'
 
14255
      break;
 
14256
    case 160:                       // 'instance'
 
14257
      shift(160);                   // 'instance'
 
14258
      break;
 
14259
    case 162:                       // 'intersect'
 
14260
      shift(162);                   // 'intersect'
 
14261
      break;
 
14262
    case 163:                       // 'into'
 
14263
      shift(163);                   // 'into'
 
14264
      break;
 
14265
    case 164:                       // 'is'
 
14266
      shift(164);                   // 'is'
 
14267
      break;
 
14268
    case 172:                       // 'le'
 
14269
      shift(172);                   // 'le'
 
14270
      break;
 
14271
    case 174:                       // 'let'
 
14272
      shift(174);                   // 'let'
 
14273
      break;
 
14274
    case 178:                       // 'lt'
 
14275
      shift(178);                   // 'lt'
 
14276
      break;
 
14277
    case 180:                       // 'mod'
 
14278
      shift(180);                   // 'mod'
 
14279
      break;
 
14280
    case 181:                       // 'modify'
 
14281
      shift(181);                   // 'modify'
 
14282
      break;
 
14283
    case 186:                       // 'ne'
 
14284
      shift(186);                   // 'ne'
 
14285
      break;
 
14286
    case 198:                       // 'only'
 
14287
      shift(198);                   // 'only'
 
14288
      break;
 
14289
    case 200:                       // 'or'
 
14290
      shift(200);                   // 'or'
 
14291
      break;
 
14292
    case 201:                       // 'order'
 
14293
      shift(201);                   // 'order'
 
14294
      break;
 
14295
    case 220:                       // 'return'
 
14296
      shift(220);                   // 'return'
 
14297
      break;
 
14298
    case 224:                       // 'satisfies'
 
14299
      shift(224);                   // 'satisfies'
 
14300
      break;
 
14301
    case 236:                       // 'stable'
 
14302
      shift(236);                   // 'stable'
 
14303
      break;
 
14304
    case 237:                       // 'start'
 
14305
      shift(237);                   // 'start'
 
14306
      break;
 
14307
    case 248:                       // 'to'
 
14308
      shift(248);                   // 'to'
 
14309
      break;
 
14310
    case 249:                       // 'treat'
 
14311
      shift(249);                   // 'treat'
 
14312
      break;
 
14313
    case 254:                       // 'union'
 
14314
      shift(254);                   // 'union'
 
14315
      break;
 
14316
    case 266:                       // 'where'
 
14317
      shift(266);                   // 'where'
 
14318
      break;
 
14319
    case 270:                       // 'with'
 
14320
      shift(270);                   // 'with'
 
14321
      break;
 
14322
    case 73:                        // 'ancestor'
 
14323
      shift(73);                    // 'ancestor'
 
14324
      break;
 
14325
    case 74:                        // 'ancestor-or-self'
 
14326
      shift(74);                    // 'ancestor-or-self'
 
14327
      break;
 
14328
    case 82:                        // 'attribute'
 
14329
      shift(82);                    // 'attribute'
 
14330
      break;
 
14331
    case 93:                        // 'child'
 
14332
      shift(93);                    // 'child'
 
14333
      break;
 
14334
    case 96:                        // 'comment'
 
14335
      shift(96);                    // 'comment'
 
14336
      break;
 
14337
    case 103:                       // 'copy'
 
14338
      shift(103);                   // 'copy'
 
14339
      break;
 
14340
    case 108:                       // 'declare'
 
14341
      shift(108);                   // 'declare'
 
14342
      break;
 
14343
    case 110:                       // 'delete'
 
14344
      shift(110);                   // 'delete'
 
14345
      break;
 
14346
    case 111:                       // 'descendant'
 
14347
      shift(111);                   // 'descendant'
 
14348
      break;
 
14349
    case 112:                       // 'descendant-or-self'
 
14350
      shift(112);                   // 'descendant-or-self'
 
14351
      break;
 
14352
    case 119:                       // 'document'
 
14353
      shift(119);                   // 'document'
 
14354
      break;
 
14355
    case 120:                       // 'document-node'
 
14356
      shift(120);                   // 'document-node'
 
14357
      break;
 
14358
    case 121:                       // 'element'
 
14359
      shift(121);                   // 'element'
 
14360
      break;
 
14361
    case 124:                       // 'empty-sequence'
 
14362
      shift(124);                   // 'empty-sequence'
 
14363
      break;
 
14364
    case 129:                       // 'every'
 
14365
      shift(129);                   // 'every'
 
14366
      break;
 
14367
    case 134:                       // 'first'
 
14368
      shift(134);                   // 'first'
 
14369
      break;
 
14370
    case 135:                       // 'following'
 
14371
      shift(135);                   // 'following'
 
14372
      break;
 
14373
    case 136:                       // 'following-sibling'
 
14374
      shift(136);                   // 'following-sibling'
 
14375
      break;
 
14376
    case 145:                       // 'function'
 
14377
      shift(145);                   // 'function'
 
14378
      break;
 
14379
    case 152:                       // 'if'
 
14380
      shift(152);                   // 'if'
 
14381
      break;
 
14382
    case 153:                       // 'import'
 
14383
      shift(153);                   // 'import'
 
14384
      break;
 
14385
    case 159:                       // 'insert'
 
14386
      shift(159);                   // 'insert'
 
14387
      break;
 
14388
    case 165:                       // 'item'
 
14389
      shift(165);                   // 'item'
 
14390
      break;
 
14391
    case 170:                       // 'last'
 
14392
      shift(170);                   // 'last'
 
14393
      break;
 
14394
    case 182:                       // 'module'
 
14395
      shift(182);                   // 'module'
 
14396
      break;
 
14397
    case 184:                       // 'namespace'
 
14398
      shift(184);                   // 'namespace'
 
14399
      break;
 
14400
    case 185:                       // 'namespace-node'
 
14401
      shift(185);                   // 'namespace-node'
 
14402
      break;
 
14403
    case 191:                       // 'node'
 
14404
      shift(191);                   // 'node'
 
14405
      break;
 
14406
    case 202:                       // 'ordered'
 
14407
      shift(202);                   // 'ordered'
 
14408
      break;
 
14409
    case 206:                       // 'parent'
 
14410
      shift(206);                   // 'parent'
 
14411
      break;
 
14412
    case 212:                       // 'preceding'
 
14413
      shift(212);                   // 'preceding'
 
14414
      break;
 
14415
    case 213:                       // 'preceding-sibling'
 
14416
      shift(213);                   // 'preceding-sibling'
 
14417
      break;
 
14418
    case 216:                       // 'processing-instruction'
 
14419
      shift(216);                   // 'processing-instruction'
 
14420
      break;
 
14421
    case 218:                       // 'rename'
 
14422
      shift(218);                   // 'rename'
 
14423
      break;
 
14424
    case 219:                       // 'replace'
 
14425
      shift(219);                   // 'replace'
 
14426
      break;
 
14427
    case 226:                       // 'schema-attribute'
 
14428
      shift(226);                   // 'schema-attribute'
 
14429
      break;
 
14430
    case 227:                       // 'schema-element'
 
14431
      shift(227);                   // 'schema-element'
 
14432
      break;
 
14433
    case 229:                       // 'self'
 
14434
      shift(229);                   // 'self'
 
14435
      break;
 
14436
    case 235:                       // 'some'
 
14437
      shift(235);                   // 'some'
 
14438
      break;
 
14439
    case 243:                       // 'switch'
 
14440
      shift(243);                   // 'switch'
 
14441
      break;
 
14442
    case 244:                       // 'text'
 
14443
      shift(244);                   // 'text'
 
14444
      break;
 
14445
    case 250:                       // 'try'
 
14446
      shift(250);                   // 'try'
 
14447
      break;
 
14448
    case 253:                       // 'typeswitch'
 
14449
      shift(253);                   // 'typeswitch'
 
14450
      break;
 
14451
    case 256:                       // 'unordered'
 
14452
      shift(256);                   // 'unordered'
 
14453
      break;
 
14454
    case 260:                       // 'validate'
 
14455
      shift(260);                   // 'validate'
 
14456
      break;
 
14457
    case 262:                       // 'variable'
 
14458
      shift(262);                   // 'variable'
 
14459
      break;
 
14460
    case 274:                       // 'xquery'
 
14461
      shift(274);                   // 'xquery'
 
14462
      break;
 
14463
    case 72:                        // 'allowing'
 
14464
      shift(72);                    // 'allowing'
 
14465
      break;
 
14466
    case 81:                        // 'at'
 
14467
      shift(81);                    // 'at'
 
14468
      break;
 
14469
    case 83:                        // 'base-uri'
 
14470
      shift(83);                    // 'base-uri'
 
14471
      break;
 
14472
    case 85:                        // 'boundary-space'
 
14473
      shift(85);                    // 'boundary-space'
 
14474
      break;
 
14475
    case 86:                        // 'break'
 
14476
      shift(86);                    // 'break'
 
14477
      break;
 
14478
    case 91:                        // 'catch'
 
14479
      shift(91);                    // 'catch'
 
14480
      break;
 
14481
    case 98:                        // 'construction'
 
14482
      shift(98);                    // 'construction'
 
14483
      break;
 
14484
    case 101:                       // 'context'
 
14485
      shift(101);                   // 'context'
 
14486
      break;
 
14487
    case 102:                       // 'continue'
 
14488
      shift(102);                   // 'continue'
 
14489
      break;
 
14490
    case 104:                       // 'copy-namespaces'
 
14491
      shift(104);                   // 'copy-namespaces'
 
14492
      break;
 
14493
    case 106:                       // 'decimal-format'
 
14494
      shift(106);                   // 'decimal-format'
 
14495
      break;
 
14496
    case 125:                       // 'encoding'
 
14497
      shift(125);                   // 'encoding'
 
14498
      break;
 
14499
    case 132:                       // 'exit'
 
14500
      shift(132);                   // 'exit'
 
14501
      break;
 
14502
    case 133:                       // 'external'
 
14503
      shift(133);                   // 'external'
 
14504
      break;
 
14505
    case 141:                       // 'ft-option'
 
14506
      shift(141);                   // 'ft-option'
 
14507
      break;
 
14508
    case 154:                       // 'in'
 
14509
      shift(154);                   // 'in'
 
14510
      break;
 
14511
    case 155:                       // 'index'
 
14512
      shift(155);                   // 'index'
 
14513
      break;
 
14514
    case 161:                       // 'integrity'
 
14515
      shift(161);                   // 'integrity'
 
14516
      break;
 
14517
    case 171:                       // 'lax'
 
14518
      shift(171);                   // 'lax'
 
14519
      break;
 
14520
    case 192:                       // 'nodes'
 
14521
      shift(192);                   // 'nodes'
 
14522
      break;
 
14523
    case 199:                       // 'option'
 
14524
      shift(199);                   // 'option'
 
14525
      break;
 
14526
    case 203:                       // 'ordering'
 
14527
      shift(203);                   // 'ordering'
 
14528
      break;
 
14529
    case 222:                       // 'revalidation'
 
14530
      shift(222);                   // 'revalidation'
 
14531
      break;
 
14532
    case 225:                       // 'schema'
 
14533
      shift(225);                   // 'schema'
 
14534
      break;
 
14535
    case 228:                       // 'score'
 
14536
      shift(228);                   // 'score'
 
14537
      break;
 
14538
    case 234:                       // 'sliding'
 
14539
      shift(234);                   // 'sliding'
 
14540
      break;
 
14541
    case 240:                       // 'strict'
 
14542
      shift(240);                   // 'strict'
 
14543
      break;
 
14544
    case 251:                       // 'tumbling'
 
14545
      shift(251);                   // 'tumbling'
 
14546
      break;
 
14547
    case 252:                       // 'type'
 
14548
      shift(252);                   // 'type'
 
14549
      break;
 
14550
    case 257:                       // 'updating'
 
14551
      shift(257);                   // 'updating'
 
14552
      break;
 
14553
    case 261:                       // 'value'
 
14554
      shift(261);                   // 'value'
 
14555
      break;
 
14556
    case 263:                       // 'version'
 
14557
      shift(263);                   // 'version'
 
14558
      break;
 
14559
    case 267:                       // 'while'
 
14560
      shift(267);                   // 'while'
 
14561
      break;
 
14562
    case 97:                        // 'constraint'
 
14563
      shift(97);                    // 'constraint'
 
14564
      break;
 
14565
    case 176:                       // 'loop'
 
14566
      shift(176);                   // 'loop'
 
14567
      break;
 
14568
    default:
 
14569
      shift(221);                   // 'returning'
 
14570
    }
 
14571
    eventHandler.endNonterminal("NCName", e0);
 
14572
  }
 
14573
 
 
14574
  function try_NCName()
 
14575
  {
 
14576
    switch (l1)
 
14577
    {
 
14578
    case 19:                        // NCName^Token
 
14579
      shiftT(19);                   // NCName^Token
 
14580
      break;
 
14581
    case 70:                        // 'after'
 
14582
      shiftT(70);                   // 'after'
 
14583
      break;
 
14584
    case 75:                        // 'and'
 
14585
      shiftT(75);                   // 'and'
 
14586
      break;
 
14587
    case 79:                        // 'as'
 
14588
      shiftT(79);                   // 'as'
 
14589
      break;
 
14590
    case 80:                        // 'ascending'
 
14591
      shiftT(80);                   // 'ascending'
 
14592
      break;
 
14593
    case 84:                        // 'before'
 
14594
      shiftT(84);                   // 'before'
 
14595
      break;
 
14596
    case 88:                        // 'case'
 
14597
      shiftT(88);                   // 'case'
 
14598
      break;
 
14599
    case 89:                        // 'cast'
 
14600
      shiftT(89);                   // 'cast'
 
14601
      break;
 
14602
    case 90:                        // 'castable'
 
14603
      shiftT(90);                   // 'castable'
 
14604
      break;
 
14605
    case 94:                        // 'collation'
 
14606
      shiftT(94);                   // 'collation'
 
14607
      break;
 
14608
    case 105:                       // 'count'
 
14609
      shiftT(105);                  // 'count'
 
14610
      break;
 
14611
    case 109:                       // 'default'
 
14612
      shiftT(109);                  // 'default'
 
14613
      break;
 
14614
    case 113:                       // 'descending'
 
14615
      shiftT(113);                  // 'descending'
 
14616
      break;
 
14617
    case 118:                       // 'div'
 
14618
      shiftT(118);                  // 'div'
 
14619
      break;
 
14620
    case 122:                       // 'else'
 
14621
      shiftT(122);                  // 'else'
 
14622
      break;
 
14623
    case 123:                       // 'empty'
 
14624
      shiftT(123);                  // 'empty'
 
14625
      break;
 
14626
    case 126:                       // 'end'
 
14627
      shiftT(126);                  // 'end'
 
14628
      break;
 
14629
    case 128:                       // 'eq'
 
14630
      shiftT(128);                  // 'eq'
 
14631
      break;
 
14632
    case 131:                       // 'except'
 
14633
      shiftT(131);                  // 'except'
 
14634
      break;
 
14635
    case 137:                       // 'for'
 
14636
      shiftT(137);                  // 'for'
 
14637
      break;
 
14638
    case 146:                       // 'ge'
 
14639
      shiftT(146);                  // 'ge'
 
14640
      break;
 
14641
    case 148:                       // 'group'
 
14642
      shiftT(148);                  // 'group'
 
14643
      break;
 
14644
    case 150:                       // 'gt'
 
14645
      shiftT(150);                  // 'gt'
 
14646
      break;
 
14647
    case 151:                       // 'idiv'
 
14648
      shiftT(151);                  // 'idiv'
 
14649
      break;
 
14650
    case 160:                       // 'instance'
 
14651
      shiftT(160);                  // 'instance'
 
14652
      break;
 
14653
    case 162:                       // 'intersect'
 
14654
      shiftT(162);                  // 'intersect'
 
14655
      break;
 
14656
    case 163:                       // 'into'
 
14657
      shiftT(163);                  // 'into'
 
14658
      break;
 
14659
    case 164:                       // 'is'
 
14660
      shiftT(164);                  // 'is'
 
14661
      break;
 
14662
    case 172:                       // 'le'
 
14663
      shiftT(172);                  // 'le'
 
14664
      break;
 
14665
    case 174:                       // 'let'
 
14666
      shiftT(174);                  // 'let'
 
14667
      break;
 
14668
    case 178:                       // 'lt'
 
14669
      shiftT(178);                  // 'lt'
 
14670
      break;
 
14671
    case 180:                       // 'mod'
 
14672
      shiftT(180);                  // 'mod'
 
14673
      break;
 
14674
    case 181:                       // 'modify'
 
14675
      shiftT(181);                  // 'modify'
 
14676
      break;
 
14677
    case 186:                       // 'ne'
 
14678
      shiftT(186);                  // 'ne'
 
14679
      break;
 
14680
    case 198:                       // 'only'
 
14681
      shiftT(198);                  // 'only'
 
14682
      break;
 
14683
    case 200:                       // 'or'
 
14684
      shiftT(200);                  // 'or'
 
14685
      break;
 
14686
    case 201:                       // 'order'
 
14687
      shiftT(201);                  // 'order'
 
14688
      break;
 
14689
    case 220:                       // 'return'
 
14690
      shiftT(220);                  // 'return'
 
14691
      break;
 
14692
    case 224:                       // 'satisfies'
 
14693
      shiftT(224);                  // 'satisfies'
 
14694
      break;
 
14695
    case 236:                       // 'stable'
 
14696
      shiftT(236);                  // 'stable'
 
14697
      break;
 
14698
    case 237:                       // 'start'
 
14699
      shiftT(237);                  // 'start'
 
14700
      break;
 
14701
    case 248:                       // 'to'
 
14702
      shiftT(248);                  // 'to'
 
14703
      break;
 
14704
    case 249:                       // 'treat'
 
14705
      shiftT(249);                  // 'treat'
 
14706
      break;
 
14707
    case 254:                       // 'union'
 
14708
      shiftT(254);                  // 'union'
 
14709
      break;
 
14710
    case 266:                       // 'where'
 
14711
      shiftT(266);                  // 'where'
 
14712
      break;
 
14713
    case 270:                       // 'with'
 
14714
      shiftT(270);                  // 'with'
 
14715
      break;
 
14716
    case 73:                        // 'ancestor'
 
14717
      shiftT(73);                   // 'ancestor'
 
14718
      break;
 
14719
    case 74:                        // 'ancestor-or-self'
 
14720
      shiftT(74);                   // 'ancestor-or-self'
 
14721
      break;
 
14722
    case 82:                        // 'attribute'
 
14723
      shiftT(82);                   // 'attribute'
 
14724
      break;
 
14725
    case 93:                        // 'child'
 
14726
      shiftT(93);                   // 'child'
 
14727
      break;
 
14728
    case 96:                        // 'comment'
 
14729
      shiftT(96);                   // 'comment'
 
14730
      break;
 
14731
    case 103:                       // 'copy'
 
14732
      shiftT(103);                  // 'copy'
 
14733
      break;
 
14734
    case 108:                       // 'declare'
 
14735
      shiftT(108);                  // 'declare'
 
14736
      break;
 
14737
    case 110:                       // 'delete'
 
14738
      shiftT(110);                  // 'delete'
 
14739
      break;
 
14740
    case 111:                       // 'descendant'
 
14741
      shiftT(111);                  // 'descendant'
 
14742
      break;
 
14743
    case 112:                       // 'descendant-or-self'
 
14744
      shiftT(112);                  // 'descendant-or-self'
 
14745
      break;
 
14746
    case 119:                       // 'document'
 
14747
      shiftT(119);                  // 'document'
 
14748
      break;
 
14749
    case 120:                       // 'document-node'
 
14750
      shiftT(120);                  // 'document-node'
 
14751
      break;
 
14752
    case 121:                       // 'element'
 
14753
      shiftT(121);                  // 'element'
 
14754
      break;
 
14755
    case 124:                       // 'empty-sequence'
 
14756
      shiftT(124);                  // 'empty-sequence'
 
14757
      break;
 
14758
    case 129:                       // 'every'
 
14759
      shiftT(129);                  // 'every'
 
14760
      break;
 
14761
    case 134:                       // 'first'
 
14762
      shiftT(134);                  // 'first'
 
14763
      break;
 
14764
    case 135:                       // 'following'
 
14765
      shiftT(135);                  // 'following'
 
14766
      break;
 
14767
    case 136:                       // 'following-sibling'
 
14768
      shiftT(136);                  // 'following-sibling'
 
14769
      break;
 
14770
    case 145:                       // 'function'
 
14771
      shiftT(145);                  // 'function'
 
14772
      break;
 
14773
    case 152:                       // 'if'
 
14774
      shiftT(152);                  // 'if'
 
14775
      break;
 
14776
    case 153:                       // 'import'
 
14777
      shiftT(153);                  // 'import'
 
14778
      break;
 
14779
    case 159:                       // 'insert'
 
14780
      shiftT(159);                  // 'insert'
 
14781
      break;
 
14782
    case 165:                       // 'item'
 
14783
      shiftT(165);                  // 'item'
 
14784
      break;
 
14785
    case 170:                       // 'last'
 
14786
      shiftT(170);                  // 'last'
 
14787
      break;
 
14788
    case 182:                       // 'module'
 
14789
      shiftT(182);                  // 'module'
 
14790
      break;
 
14791
    case 184:                       // 'namespace'
 
14792
      shiftT(184);                  // 'namespace'
 
14793
      break;
 
14794
    case 185:                       // 'namespace-node'
 
14795
      shiftT(185);                  // 'namespace-node'
 
14796
      break;
 
14797
    case 191:                       // 'node'
 
14798
      shiftT(191);                  // 'node'
 
14799
      break;
 
14800
    case 202:                       // 'ordered'
 
14801
      shiftT(202);                  // 'ordered'
 
14802
      break;
 
14803
    case 206:                       // 'parent'
 
14804
      shiftT(206);                  // 'parent'
 
14805
      break;
 
14806
    case 212:                       // 'preceding'
 
14807
      shiftT(212);                  // 'preceding'
 
14808
      break;
 
14809
    case 213:                       // 'preceding-sibling'
 
14810
      shiftT(213);                  // 'preceding-sibling'
 
14811
      break;
 
14812
    case 216:                       // 'processing-instruction'
 
14813
      shiftT(216);                  // 'processing-instruction'
 
14814
      break;
 
14815
    case 218:                       // 'rename'
 
14816
      shiftT(218);                  // 'rename'
 
14817
      break;
 
14818
    case 219:                       // 'replace'
 
14819
      shiftT(219);                  // 'replace'
 
14820
      break;
 
14821
    case 226:                       // 'schema-attribute'
 
14822
      shiftT(226);                  // 'schema-attribute'
 
14823
      break;
 
14824
    case 227:                       // 'schema-element'
 
14825
      shiftT(227);                  // 'schema-element'
 
14826
      break;
 
14827
    case 229:                       // 'self'
 
14828
      shiftT(229);                  // 'self'
 
14829
      break;
 
14830
    case 235:                       // 'some'
 
14831
      shiftT(235);                  // 'some'
 
14832
      break;
 
14833
    case 243:                       // 'switch'
 
14834
      shiftT(243);                  // 'switch'
 
14835
      break;
 
14836
    case 244:                       // 'text'
 
14837
      shiftT(244);                  // 'text'
 
14838
      break;
 
14839
    case 250:                       // 'try'
 
14840
      shiftT(250);                  // 'try'
 
14841
      break;
 
14842
    case 253:                       // 'typeswitch'
 
14843
      shiftT(253);                  // 'typeswitch'
 
14844
      break;
 
14845
    case 256:                       // 'unordered'
 
14846
      shiftT(256);                  // 'unordered'
 
14847
      break;
 
14848
    case 260:                       // 'validate'
 
14849
      shiftT(260);                  // 'validate'
 
14850
      break;
 
14851
    case 262:                       // 'variable'
 
14852
      shiftT(262);                  // 'variable'
 
14853
      break;
 
14854
    case 274:                       // 'xquery'
 
14855
      shiftT(274);                  // 'xquery'
 
14856
      break;
 
14857
    case 72:                        // 'allowing'
 
14858
      shiftT(72);                   // 'allowing'
 
14859
      break;
 
14860
    case 81:                        // 'at'
 
14861
      shiftT(81);                   // 'at'
 
14862
      break;
 
14863
    case 83:                        // 'base-uri'
 
14864
      shiftT(83);                   // 'base-uri'
 
14865
      break;
 
14866
    case 85:                        // 'boundary-space'
 
14867
      shiftT(85);                   // 'boundary-space'
 
14868
      break;
 
14869
    case 86:                        // 'break'
 
14870
      shiftT(86);                   // 'break'
 
14871
      break;
 
14872
    case 91:                        // 'catch'
 
14873
      shiftT(91);                   // 'catch'
 
14874
      break;
 
14875
    case 98:                        // 'construction'
 
14876
      shiftT(98);                   // 'construction'
 
14877
      break;
 
14878
    case 101:                       // 'context'
 
14879
      shiftT(101);                  // 'context'
 
14880
      break;
 
14881
    case 102:                       // 'continue'
 
14882
      shiftT(102);                  // 'continue'
 
14883
      break;
 
14884
    case 104:                       // 'copy-namespaces'
 
14885
      shiftT(104);                  // 'copy-namespaces'
 
14886
      break;
 
14887
    case 106:                       // 'decimal-format'
 
14888
      shiftT(106);                  // 'decimal-format'
 
14889
      break;
 
14890
    case 125:                       // 'encoding'
 
14891
      shiftT(125);                  // 'encoding'
 
14892
      break;
 
14893
    case 132:                       // 'exit'
 
14894
      shiftT(132);                  // 'exit'
 
14895
      break;
 
14896
    case 133:                       // 'external'
 
14897
      shiftT(133);                  // 'external'
 
14898
      break;
 
14899
    case 141:                       // 'ft-option'
 
14900
      shiftT(141);                  // 'ft-option'
 
14901
      break;
 
14902
    case 154:                       // 'in'
 
14903
      shiftT(154);                  // 'in'
 
14904
      break;
 
14905
    case 155:                       // 'index'
 
14906
      shiftT(155);                  // 'index'
 
14907
      break;
 
14908
    case 161:                       // 'integrity'
 
14909
      shiftT(161);                  // 'integrity'
 
14910
      break;
 
14911
    case 171:                       // 'lax'
 
14912
      shiftT(171);                  // 'lax'
 
14913
      break;
 
14914
    case 192:                       // 'nodes'
 
14915
      shiftT(192);                  // 'nodes'
 
14916
      break;
 
14917
    case 199:                       // 'option'
 
14918
      shiftT(199);                  // 'option'
 
14919
      break;
 
14920
    case 203:                       // 'ordering'
 
14921
      shiftT(203);                  // 'ordering'
 
14922
      break;
 
14923
    case 222:                       // 'revalidation'
 
14924
      shiftT(222);                  // 'revalidation'
 
14925
      break;
 
14926
    case 225:                       // 'schema'
 
14927
      shiftT(225);                  // 'schema'
 
14928
      break;
 
14929
    case 228:                       // 'score'
 
14930
      shiftT(228);                  // 'score'
 
14931
      break;
 
14932
    case 234:                       // 'sliding'
 
14933
      shiftT(234);                  // 'sliding'
 
14934
      break;
 
14935
    case 240:                       // 'strict'
 
14936
      shiftT(240);                  // 'strict'
 
14937
      break;
 
14938
    case 251:                       // 'tumbling'
 
14939
      shiftT(251);                  // 'tumbling'
 
14940
      break;
 
14941
    case 252:                       // 'type'
 
14942
      shiftT(252);                  // 'type'
 
14943
      break;
 
14944
    case 257:                       // 'updating'
 
14945
      shiftT(257);                  // 'updating'
 
14946
      break;
 
14947
    case 261:                       // 'value'
 
14948
      shiftT(261);                  // 'value'
 
14949
      break;
 
14950
    case 263:                       // 'version'
 
14951
      shiftT(263);                  // 'version'
 
14952
      break;
 
14953
    case 267:                       // 'while'
 
14954
      shiftT(267);                  // 'while'
 
14955
      break;
 
14956
    case 97:                        // 'constraint'
 
14957
      shiftT(97);                   // 'constraint'
 
14958
      break;
 
14959
    case 176:                       // 'loop'
 
14960
      shiftT(176);                  // 'loop'
 
14961
      break;
 
14962
    default:
 
14963
      shiftT(221);                  // 'returning'
 
14964
    }
 
14965
  }
 
14966
 
 
14967
  function parse_MainModule()
 
14968
  {
 
14969
    eventHandler.startNonterminal("MainModule", e0);
 
14970
    parse_Prolog();
 
14971
    whitespace();
 
14972
    parse_Program();
 
14973
    eventHandler.endNonterminal("MainModule", e0);
 
14974
  }
 
14975
 
 
14976
  function parse_Program()
 
14977
  {
 
14978
    eventHandler.startNonterminal("Program", e0);
 
14979
    parse_StatementsAndOptionalExpr();
 
14980
    eventHandler.endNonterminal("Program", e0);
 
14981
  }
 
14982
 
 
14983
  function parse_Statements()
 
14984
  {
 
14985
    eventHandler.startNonterminal("Statements", e0);
 
14986
    for (;;)
 
14987
    {
 
14988
      lookahead1W(274);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
14989
      switch (l1)
 
14990
      {
 
14991
      case 34:                      // '('
 
14992
        lookahead2W(269);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
14993
        break;
 
14994
      case 35:                      // '(#'
 
14995
        lookahead2(250);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 
14996
        break;
 
14997
      case 46:                      // '/'
 
14998
        lookahead2W(281);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
14999
        break;
 
15000
      case 47:                      // '//'
 
15001
        lookahead2W(263);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15002
        break;
 
15003
      case 54:                      // '<'
 
15004
        lookahead2(4);              // QName
 
15005
        break;
 
15006
      case 55:                      // '<!--'
 
15007
        lookahead2(1);              // DirCommentContents
 
15008
        break;
 
15009
      case 59:                      // '<?'
 
15010
        lookahead2(3);              // PITarget
 
15011
        break;
 
15012
      case 66:                      // '@'
 
15013
        lookahead2W(255);           // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
15014
        break;
 
15015
      case 68:                      // '['
 
15016
        lookahead2W(271);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15017
        break;
 
15018
      case 77:                      // 'append'
 
15019
        lookahead2W(56);            // S^WS | '(:' | 'json'
 
15020
        break;
 
15021
      case 82:                      // 'attribute'
 
15022
        lookahead2W(278);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
15023
        break;
 
15024
      case 121:                     // 'element'
 
15025
        lookahead2W(277);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
15026
        break;
 
15027
      case 132:                     // 'exit'
 
15028
        lookahead2W(202);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15029
        break;
 
15030
      case 137:                     // 'for'
 
15031
        lookahead2W(206);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
15032
        break;
 
15033
      case 174:                     // 'let'
 
15034
        lookahead2W(204);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
15035
        break;
 
15036
      case 218:                     // 'rename'
 
15037
        lookahead2W(205);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15038
        break;
 
15039
      case 219:                     // 'replace'
 
15040
        lookahead2W(208);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15041
        break;
 
15042
      case 260:                     // 'validate'
 
15043
        lookahead2W(209);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15044
        break;
 
15045
      case 276:                     // '{'
 
15046
        lookahead2W(273);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15047
        break;
 
15048
      case 278:                     // '{|'
 
15049
        lookahead2W(272);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15050
        break;
 
15051
      case 5:                       // Wildcard
 
15052
      case 45:                      // '..'
 
15053
        lookahead2W(186);           // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |
 
15054
        break;
 
15055
      case 31:                      // '$'
 
15056
      case 32:                      // '%'
 
15057
        lookahead2W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
15058
        break;
 
15059
      case 40:                      // '+'
 
15060
      case 42:                      // '-'
 
15061
        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15062
        break;
 
15063
      case 86:                      // 'break'
 
15064
      case 102:                     // 'continue'
 
15065
        lookahead2W(200);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15066
        break;
 
15067
      case 110:                     // 'delete'
 
15068
      case 159:                     // 'insert'
 
15069
        lookahead2W(207);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15070
        break;
 
15071
      case 124:                     // 'empty-sequence'
 
15072
      case 165:                     // 'item'
 
15073
        lookahead2W(191);           // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
 
15074
        break;
 
15075
      case 184:                     // 'namespace'
 
15076
      case 216:                     // 'processing-instruction'
 
15077
        lookahead2W(266);           // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
15078
        break;
 
15079
      case 103:                     // 'copy'
 
15080
      case 129:                     // 'every'
 
15081
      case 235:                     // 'some'
 
15082
      case 262:                     // 'variable'
 
15083
        lookahead2W(197);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
15084
        break;
 
15085
      case 8:                       // IntegerLiteral
 
15086
      case 9:                       // DecimalLiteral
 
15087
      case 10:                      // DoubleLiteral
 
15088
      case 11:                      // StringLiteral
 
15089
      case 44:                      // '.'
 
15090
        lookahead2W(192);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
 
15091
        break;
 
15092
      case 96:                      // 'comment'
 
15093
      case 119:                     // 'document'
 
15094
      case 202:                     // 'ordered'
 
15095
      case 244:                     // 'text'
 
15096
      case 250:                     // 'try'
 
15097
      case 256:                     // 'unordered'
 
15098
        lookahead2W(203);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15099
        break;
 
15100
      case 73:                      // 'ancestor'
 
15101
      case 74:                      // 'ancestor-or-self'
 
15102
      case 93:                      // 'child'
 
15103
      case 111:                     // 'descendant'
 
15104
      case 112:                     // 'descendant-or-self'
 
15105
      case 135:                     // 'following'
 
15106
      case 136:                     // 'following-sibling'
 
15107
      case 206:                     // 'parent'
 
15108
      case 212:                     // 'preceding'
 
15109
      case 213:                     // 'preceding-sibling'
 
15110
      case 229:                     // 'self'
 
15111
        lookahead2W(198);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15112
        break;
 
15113
      case 6:                       // EQName^Token
 
15114
      case 70:                      // 'after'
 
15115
      case 72:                      // 'allowing'
 
15116
      case 75:                      // 'and'
 
15117
      case 78:                      // 'array'
 
15118
      case 79:                      // 'as'
 
15119
      case 80:                      // 'ascending'
 
15120
      case 81:                      // 'at'
 
15121
      case 83:                      // 'base-uri'
 
15122
      case 84:                      // 'before'
 
15123
      case 85:                      // 'boundary-space'
 
15124
      case 88:                      // 'case'
 
15125
      case 89:                      // 'cast'
 
15126
      case 90:                      // 'castable'
 
15127
      case 91:                      // 'catch'
 
15128
      case 94:                      // 'collation'
 
15129
      case 97:                      // 'constraint'
 
15130
      case 98:                      // 'construction'
 
15131
      case 101:                     // 'context'
 
15132
      case 104:                     // 'copy-namespaces'
 
15133
      case 105:                     // 'count'
 
15134
      case 106:                     // 'decimal-format'
 
15135
      case 108:                     // 'declare'
 
15136
      case 109:                     // 'default'
 
15137
      case 113:                     // 'descending'
 
15138
      case 118:                     // 'div'
 
15139
      case 120:                     // 'document-node'
 
15140
      case 122:                     // 'else'
 
15141
      case 123:                     // 'empty'
 
15142
      case 125:                     // 'encoding'
 
15143
      case 126:                     // 'end'
 
15144
      case 128:                     // 'eq'
 
15145
      case 131:                     // 'except'
 
15146
      case 133:                     // 'external'
 
15147
      case 134:                     // 'first'
 
15148
      case 141:                     // 'ft-option'
 
15149
      case 145:                     // 'function'
 
15150
      case 146:                     // 'ge'
 
15151
      case 148:                     // 'group'
 
15152
      case 150:                     // 'gt'
 
15153
      case 151:                     // 'idiv'
 
15154
      case 152:                     // 'if'
 
15155
      case 153:                     // 'import'
 
15156
      case 154:                     // 'in'
 
15157
      case 155:                     // 'index'
 
15158
      case 160:                     // 'instance'
 
15159
      case 161:                     // 'integrity'
 
15160
      case 162:                     // 'intersect'
 
15161
      case 163:                     // 'into'
 
15162
      case 164:                     // 'is'
 
15163
      case 167:                     // 'json-item'
 
15164
      case 170:                     // 'last'
 
15165
      case 171:                     // 'lax'
 
15166
      case 172:                     // 'le'
 
15167
      case 176:                     // 'loop'
 
15168
      case 178:                     // 'lt'
 
15169
      case 180:                     // 'mod'
 
15170
      case 181:                     // 'modify'
 
15171
      case 182:                     // 'module'
 
15172
      case 185:                     // 'namespace-node'
 
15173
      case 186:                     // 'ne'
 
15174
      case 191:                     // 'node'
 
15175
      case 192:                     // 'nodes'
 
15176
      case 194:                     // 'object'
 
15177
      case 198:                     // 'only'
 
15178
      case 199:                     // 'option'
 
15179
      case 200:                     // 'or'
 
15180
      case 201:                     // 'order'
 
15181
      case 203:                     // 'ordering'
 
15182
      case 220:                     // 'return'
 
15183
      case 221:                     // 'returning'
 
15184
      case 222:                     // 'revalidation'
 
15185
      case 224:                     // 'satisfies'
 
15186
      case 225:                     // 'schema'
 
15187
      case 226:                     // 'schema-attribute'
 
15188
      case 227:                     // 'schema-element'
 
15189
      case 228:                     // 'score'
 
15190
      case 234:                     // 'sliding'
 
15191
      case 236:                     // 'stable'
 
15192
      case 237:                     // 'start'
 
15193
      case 240:                     // 'strict'
 
15194
      case 243:                     // 'switch'
 
15195
      case 248:                     // 'to'
 
15196
      case 249:                     // 'treat'
 
15197
      case 251:                     // 'tumbling'
 
15198
      case 252:                     // 'type'
 
15199
      case 253:                     // 'typeswitch'
 
15200
      case 254:                     // 'union'
 
15201
      case 257:                     // 'updating'
 
15202
      case 261:                     // 'value'
 
15203
      case 263:                     // 'version'
 
15204
      case 266:                     // 'where'
 
15205
      case 267:                     // 'while'
 
15206
      case 270:                     // 'with'
 
15207
      case 274:                     // 'xquery'
 
15208
        lookahead2W(195);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
15209
        break;
 
15210
      default:
 
15211
        lk = l1;
 
15212
      }
 
15213
      if (lk != 25                  // EOF
 
15214
       && lk != 282                 // '}'
 
15215
       && lk != 12805               // Wildcard EOF
 
15216
       && lk != 12806               // EQName^Token EOF
 
15217
       && lk != 12808               // IntegerLiteral EOF
 
15218
       && lk != 12809               // DecimalLiteral EOF
 
15219
       && lk != 12810               // DoubleLiteral EOF
 
15220
       && lk != 12811               // StringLiteral EOF
 
15221
       && lk != 12844               // '.' EOF
 
15222
       && lk != 12845               // '..' EOF
 
15223
       && lk != 12846               // '/' EOF
 
15224
       && lk != 12870               // 'after' EOF
 
15225
       && lk != 12872               // 'allowing' EOF
 
15226
       && lk != 12873               // 'ancestor' EOF
 
15227
       && lk != 12874               // 'ancestor-or-self' EOF
 
15228
       && lk != 12875               // 'and' EOF
 
15229
       && lk != 12878               // 'array' EOF
 
15230
       && lk != 12879               // 'as' EOF
 
15231
       && lk != 12880               // 'ascending' EOF
 
15232
       && lk != 12881               // 'at' EOF
 
15233
       && lk != 12882               // 'attribute' EOF
 
15234
       && lk != 12883               // 'base-uri' EOF
 
15235
       && lk != 12884               // 'before' EOF
 
15236
       && lk != 12885               // 'boundary-space' EOF
 
15237
       && lk != 12886               // 'break' EOF
 
15238
       && lk != 12888               // 'case' EOF
 
15239
       && lk != 12889               // 'cast' EOF
 
15240
       && lk != 12890               // 'castable' EOF
 
15241
       && lk != 12891               // 'catch' EOF
 
15242
       && lk != 12893               // 'child' EOF
 
15243
       && lk != 12894               // 'collation' EOF
 
15244
       && lk != 12896               // 'comment' EOF
 
15245
       && lk != 12897               // 'constraint' EOF
 
15246
       && lk != 12898               // 'construction' EOF
 
15247
       && lk != 12901               // 'context' EOF
 
15248
       && lk != 12902               // 'continue' EOF
 
15249
       && lk != 12903               // 'copy' EOF
 
15250
       && lk != 12904               // 'copy-namespaces' EOF
 
15251
       && lk != 12905               // 'count' EOF
 
15252
       && lk != 12906               // 'decimal-format' EOF
 
15253
       && lk != 12908               // 'declare' EOF
 
15254
       && lk != 12909               // 'default' EOF
 
15255
       && lk != 12910               // 'delete' EOF
 
15256
       && lk != 12911               // 'descendant' EOF
 
15257
       && lk != 12912               // 'descendant-or-self' EOF
 
15258
       && lk != 12913               // 'descending' EOF
 
15259
       && lk != 12918               // 'div' EOF
 
15260
       && lk != 12919               // 'document' EOF
 
15261
       && lk != 12920               // 'document-node' EOF
 
15262
       && lk != 12921               // 'element' EOF
 
15263
       && lk != 12922               // 'else' EOF
 
15264
       && lk != 12923               // 'empty' EOF
 
15265
       && lk != 12924               // 'empty-sequence' EOF
 
15266
       && lk != 12925               // 'encoding' EOF
 
15267
       && lk != 12926               // 'end' EOF
 
15268
       && lk != 12928               // 'eq' EOF
 
15269
       && lk != 12929               // 'every' EOF
 
15270
       && lk != 12931               // 'except' EOF
 
15271
       && lk != 12932               // 'exit' EOF
 
15272
       && lk != 12933               // 'external' EOF
 
15273
       && lk != 12934               // 'first' EOF
 
15274
       && lk != 12935               // 'following' EOF
 
15275
       && lk != 12936               // 'following-sibling' EOF
 
15276
       && lk != 12937               // 'for' EOF
 
15277
       && lk != 12941               // 'ft-option' EOF
 
15278
       && lk != 12945               // 'function' EOF
 
15279
       && lk != 12946               // 'ge' EOF
 
15280
       && lk != 12948               // 'group' EOF
 
15281
       && lk != 12950               // 'gt' EOF
 
15282
       && lk != 12951               // 'idiv' EOF
 
15283
       && lk != 12952               // 'if' EOF
 
15284
       && lk != 12953               // 'import' EOF
 
15285
       && lk != 12954               // 'in' EOF
 
15286
       && lk != 12955               // 'index' EOF
 
15287
       && lk != 12959               // 'insert' EOF
 
15288
       && lk != 12960               // 'instance' EOF
 
15289
       && lk != 12961               // 'integrity' EOF
 
15290
       && lk != 12962               // 'intersect' EOF
 
15291
       && lk != 12963               // 'into' EOF
 
15292
       && lk != 12964               // 'is' EOF
 
15293
       && lk != 12965               // 'item' EOF
 
15294
       && lk != 12967               // 'json-item' EOF
 
15295
       && lk != 12970               // 'last' EOF
 
15296
       && lk != 12971               // 'lax' EOF
 
15297
       && lk != 12972               // 'le' EOF
 
15298
       && lk != 12974               // 'let' EOF
 
15299
       && lk != 12976               // 'loop' EOF
 
15300
       && lk != 12978               // 'lt' EOF
 
15301
       && lk != 12980               // 'mod' EOF
 
15302
       && lk != 12981               // 'modify' EOF
 
15303
       && lk != 12982               // 'module' EOF
 
15304
       && lk != 12984               // 'namespace' EOF
 
15305
       && lk != 12985               // 'namespace-node' EOF
 
15306
       && lk != 12986               // 'ne' EOF
 
15307
       && lk != 12991               // 'node' EOF
 
15308
       && lk != 12992               // 'nodes' EOF
 
15309
       && lk != 12994               // 'object' EOF
 
15310
       && lk != 12998               // 'only' EOF
 
15311
       && lk != 12999               // 'option' EOF
 
15312
       && lk != 13000               // 'or' EOF
 
15313
       && lk != 13001               // 'order' EOF
 
15314
       && lk != 13002               // 'ordered' EOF
 
15315
       && lk != 13003               // 'ordering' EOF
 
15316
       && lk != 13006               // 'parent' EOF
 
15317
       && lk != 13012               // 'preceding' EOF
 
15318
       && lk != 13013               // 'preceding-sibling' EOF
 
15319
       && lk != 13016               // 'processing-instruction' EOF
 
15320
       && lk != 13018               // 'rename' EOF
 
15321
       && lk != 13019               // 'replace' EOF
 
15322
       && lk != 13020               // 'return' EOF
 
15323
       && lk != 13021               // 'returning' EOF
 
15324
       && lk != 13022               // 'revalidation' EOF
 
15325
       && lk != 13024               // 'satisfies' EOF
 
15326
       && lk != 13025               // 'schema' EOF
 
15327
       && lk != 13026               // 'schema-attribute' EOF
 
15328
       && lk != 13027               // 'schema-element' EOF
 
15329
       && lk != 13028               // 'score' EOF
 
15330
       && lk != 13029               // 'self' EOF
 
15331
       && lk != 13034               // 'sliding' EOF
 
15332
       && lk != 13035               // 'some' EOF
 
15333
       && lk != 13036               // 'stable' EOF
 
15334
       && lk != 13037               // 'start' EOF
 
15335
       && lk != 13040               // 'strict' EOF
 
15336
       && lk != 13043               // 'switch' EOF
 
15337
       && lk != 13044               // 'text' EOF
 
15338
       && lk != 13048               // 'to' EOF
 
15339
       && lk != 13049               // 'treat' EOF
 
15340
       && lk != 13050               // 'try' EOF
 
15341
       && lk != 13051               // 'tumbling' EOF
 
15342
       && lk != 13052               // 'type' EOF
 
15343
       && lk != 13053               // 'typeswitch' EOF
 
15344
       && lk != 13054               // 'union' EOF
 
15345
       && lk != 13056               // 'unordered' EOF
 
15346
       && lk != 13057               // 'updating' EOF
 
15347
       && lk != 13060               // 'validate' EOF
 
15348
       && lk != 13061               // 'value' EOF
 
15349
       && lk != 13062               // 'variable' EOF
 
15350
       && lk != 13063               // 'version' EOF
 
15351
       && lk != 13066               // 'where' EOF
 
15352
       && lk != 13067               // 'while' EOF
 
15353
       && lk != 13070               // 'with' EOF
 
15354
       && lk != 13074               // 'xquery' EOF
 
15355
       && lk != 16134               // 'variable' '$'
 
15356
       && lk != 20997               // Wildcard ','
 
15357
       && lk != 20998               // EQName^Token ','
 
15358
       && lk != 21000               // IntegerLiteral ','
 
15359
       && lk != 21001               // DecimalLiteral ','
 
15360
       && lk != 21002               // DoubleLiteral ','
 
15361
       && lk != 21003               // StringLiteral ','
 
15362
       && lk != 21036               // '.' ','
 
15363
       && lk != 21037               // '..' ','
 
15364
       && lk != 21038               // '/' ','
 
15365
       && lk != 21062               // 'after' ','
 
15366
       && lk != 21064               // 'allowing' ','
 
15367
       && lk != 21065               // 'ancestor' ','
 
15368
       && lk != 21066               // 'ancestor-or-self' ','
 
15369
       && lk != 21067               // 'and' ','
 
15370
       && lk != 21070               // 'array' ','
 
15371
       && lk != 21071               // 'as' ','
 
15372
       && lk != 21072               // 'ascending' ','
 
15373
       && lk != 21073               // 'at' ','
 
15374
       && lk != 21074               // 'attribute' ','
 
15375
       && lk != 21075               // 'base-uri' ','
 
15376
       && lk != 21076               // 'before' ','
 
15377
       && lk != 21077               // 'boundary-space' ','
 
15378
       && lk != 21078               // 'break' ','
 
15379
       && lk != 21080               // 'case' ','
 
15380
       && lk != 21081               // 'cast' ','
 
15381
       && lk != 21082               // 'castable' ','
 
15382
       && lk != 21083               // 'catch' ','
 
15383
       && lk != 21085               // 'child' ','
 
15384
       && lk != 21086               // 'collation' ','
 
15385
       && lk != 21088               // 'comment' ','
 
15386
       && lk != 21089               // 'constraint' ','
 
15387
       && lk != 21090               // 'construction' ','
 
15388
       && lk != 21093               // 'context' ','
 
15389
       && lk != 21094               // 'continue' ','
 
15390
       && lk != 21095               // 'copy' ','
 
15391
       && lk != 21096               // 'copy-namespaces' ','
 
15392
       && lk != 21097               // 'count' ','
 
15393
       && lk != 21098               // 'decimal-format' ','
 
15394
       && lk != 21100               // 'declare' ','
 
15395
       && lk != 21101               // 'default' ','
 
15396
       && lk != 21102               // 'delete' ','
 
15397
       && lk != 21103               // 'descendant' ','
 
15398
       && lk != 21104               // 'descendant-or-self' ','
 
15399
       && lk != 21105               // 'descending' ','
 
15400
       && lk != 21110               // 'div' ','
 
15401
       && lk != 21111               // 'document' ','
 
15402
       && lk != 21112               // 'document-node' ','
 
15403
       && lk != 21113               // 'element' ','
 
15404
       && lk != 21114               // 'else' ','
 
15405
       && lk != 21115               // 'empty' ','
 
15406
       && lk != 21116               // 'empty-sequence' ','
 
15407
       && lk != 21117               // 'encoding' ','
 
15408
       && lk != 21118               // 'end' ','
 
15409
       && lk != 21120               // 'eq' ','
 
15410
       && lk != 21121               // 'every' ','
 
15411
       && lk != 21123               // 'except' ','
 
15412
       && lk != 21124               // 'exit' ','
 
15413
       && lk != 21125               // 'external' ','
 
15414
       && lk != 21126               // 'first' ','
 
15415
       && lk != 21127               // 'following' ','
 
15416
       && lk != 21128               // 'following-sibling' ','
 
15417
       && lk != 21129               // 'for' ','
 
15418
       && lk != 21133               // 'ft-option' ','
 
15419
       && lk != 21137               // 'function' ','
 
15420
       && lk != 21138               // 'ge' ','
 
15421
       && lk != 21140               // 'group' ','
 
15422
       && lk != 21142               // 'gt' ','
 
15423
       && lk != 21143               // 'idiv' ','
 
15424
       && lk != 21144               // 'if' ','
 
15425
       && lk != 21145               // 'import' ','
 
15426
       && lk != 21146               // 'in' ','
 
15427
       && lk != 21147               // 'index' ','
 
15428
       && lk != 21151               // 'insert' ','
 
15429
       && lk != 21152               // 'instance' ','
 
15430
       && lk != 21153               // 'integrity' ','
 
15431
       && lk != 21154               // 'intersect' ','
 
15432
       && lk != 21155               // 'into' ','
 
15433
       && lk != 21156               // 'is' ','
 
15434
       && lk != 21157               // 'item' ','
 
15435
       && lk != 21159               // 'json-item' ','
 
15436
       && lk != 21162               // 'last' ','
 
15437
       && lk != 21163               // 'lax' ','
 
15438
       && lk != 21164               // 'le' ','
 
15439
       && lk != 21166               // 'let' ','
 
15440
       && lk != 21168               // 'loop' ','
 
15441
       && lk != 21170               // 'lt' ','
 
15442
       && lk != 21172               // 'mod' ','
 
15443
       && lk != 21173               // 'modify' ','
 
15444
       && lk != 21174               // 'module' ','
 
15445
       && lk != 21176               // 'namespace' ','
 
15446
       && lk != 21177               // 'namespace-node' ','
 
15447
       && lk != 21178               // 'ne' ','
 
15448
       && lk != 21183               // 'node' ','
 
15449
       && lk != 21184               // 'nodes' ','
 
15450
       && lk != 21186               // 'object' ','
 
15451
       && lk != 21190               // 'only' ','
 
15452
       && lk != 21191               // 'option' ','
 
15453
       && lk != 21192               // 'or' ','
 
15454
       && lk != 21193               // 'order' ','
 
15455
       && lk != 21194               // 'ordered' ','
 
15456
       && lk != 21195               // 'ordering' ','
 
15457
       && lk != 21198               // 'parent' ','
 
15458
       && lk != 21204               // 'preceding' ','
 
15459
       && lk != 21205               // 'preceding-sibling' ','
 
15460
       && lk != 21208               // 'processing-instruction' ','
 
15461
       && lk != 21210               // 'rename' ','
 
15462
       && lk != 21211               // 'replace' ','
 
15463
       && lk != 21212               // 'return' ','
 
15464
       && lk != 21213               // 'returning' ','
 
15465
       && lk != 21214               // 'revalidation' ','
 
15466
       && lk != 21216               // 'satisfies' ','
 
15467
       && lk != 21217               // 'schema' ','
 
15468
       && lk != 21218               // 'schema-attribute' ','
 
15469
       && lk != 21219               // 'schema-element' ','
 
15470
       && lk != 21220               // 'score' ','
 
15471
       && lk != 21221               // 'self' ','
 
15472
       && lk != 21226               // 'sliding' ','
 
15473
       && lk != 21227               // 'some' ','
 
15474
       && lk != 21228               // 'stable' ','
 
15475
       && lk != 21229               // 'start' ','
 
15476
       && lk != 21232               // 'strict' ','
 
15477
       && lk != 21235               // 'switch' ','
 
15478
       && lk != 21236               // 'text' ','
 
15479
       && lk != 21240               // 'to' ','
 
15480
       && lk != 21241               // 'treat' ','
 
15481
       && lk != 21242               // 'try' ','
 
15482
       && lk != 21243               // 'tumbling' ','
 
15483
       && lk != 21244               // 'type' ','
 
15484
       && lk != 21245               // 'typeswitch' ','
 
15485
       && lk != 21246               // 'union' ','
 
15486
       && lk != 21248               // 'unordered' ','
 
15487
       && lk != 21249               // 'updating' ','
 
15488
       && lk != 21252               // 'validate' ','
 
15489
       && lk != 21253               // 'value' ','
 
15490
       && lk != 21254               // 'variable' ','
 
15491
       && lk != 21255               // 'version' ','
 
15492
       && lk != 21258               // 'where' ','
 
15493
       && lk != 21259               // 'while' ','
 
15494
       && lk != 21262               // 'with' ','
 
15495
       && lk != 21266               // 'xquery' ','
 
15496
       && lk != 27141               // Wildcard ';'
 
15497
       && lk != 27142               // EQName^Token ';'
 
15498
       && lk != 27144               // IntegerLiteral ';'
 
15499
       && lk != 27145               // DecimalLiteral ';'
 
15500
       && lk != 27146               // DoubleLiteral ';'
 
15501
       && lk != 27147               // StringLiteral ';'
 
15502
       && lk != 27180               // '.' ';'
 
15503
       && lk != 27181               // '..' ';'
 
15504
       && lk != 27182               // '/' ';'
 
15505
       && lk != 27206               // 'after' ';'
 
15506
       && lk != 27208               // 'allowing' ';'
 
15507
       && lk != 27209               // 'ancestor' ';'
 
15508
       && lk != 27210               // 'ancestor-or-self' ';'
 
15509
       && lk != 27211               // 'and' ';'
 
15510
       && lk != 27214               // 'array' ';'
 
15511
       && lk != 27215               // 'as' ';'
 
15512
       && lk != 27216               // 'ascending' ';'
 
15513
       && lk != 27217               // 'at' ';'
 
15514
       && lk != 27218               // 'attribute' ';'
 
15515
       && lk != 27219               // 'base-uri' ';'
 
15516
       && lk != 27220               // 'before' ';'
 
15517
       && lk != 27221               // 'boundary-space' ';'
 
15518
       && lk != 27222               // 'break' ';'
 
15519
       && lk != 27224               // 'case' ';'
 
15520
       && lk != 27225               // 'cast' ';'
 
15521
       && lk != 27226               // 'castable' ';'
 
15522
       && lk != 27227               // 'catch' ';'
 
15523
       && lk != 27229               // 'child' ';'
 
15524
       && lk != 27230               // 'collation' ';'
 
15525
       && lk != 27232               // 'comment' ';'
 
15526
       && lk != 27233               // 'constraint' ';'
 
15527
       && lk != 27234               // 'construction' ';'
 
15528
       && lk != 27237               // 'context' ';'
 
15529
       && lk != 27238               // 'continue' ';'
 
15530
       && lk != 27239               // 'copy' ';'
 
15531
       && lk != 27240               // 'copy-namespaces' ';'
 
15532
       && lk != 27241               // 'count' ';'
 
15533
       && lk != 27242               // 'decimal-format' ';'
 
15534
       && lk != 27244               // 'declare' ';'
 
15535
       && lk != 27245               // 'default' ';'
 
15536
       && lk != 27246               // 'delete' ';'
 
15537
       && lk != 27247               // 'descendant' ';'
 
15538
       && lk != 27248               // 'descendant-or-self' ';'
 
15539
       && lk != 27249               // 'descending' ';'
 
15540
       && lk != 27254               // 'div' ';'
 
15541
       && lk != 27255               // 'document' ';'
 
15542
       && lk != 27256               // 'document-node' ';'
 
15543
       && lk != 27257               // 'element' ';'
 
15544
       && lk != 27258               // 'else' ';'
 
15545
       && lk != 27259               // 'empty' ';'
 
15546
       && lk != 27260               // 'empty-sequence' ';'
 
15547
       && lk != 27261               // 'encoding' ';'
 
15548
       && lk != 27262               // 'end' ';'
 
15549
       && lk != 27264               // 'eq' ';'
 
15550
       && lk != 27265               // 'every' ';'
 
15551
       && lk != 27267               // 'except' ';'
 
15552
       && lk != 27268               // 'exit' ';'
 
15553
       && lk != 27269               // 'external' ';'
 
15554
       && lk != 27270               // 'first' ';'
 
15555
       && lk != 27271               // 'following' ';'
 
15556
       && lk != 27272               // 'following-sibling' ';'
 
15557
       && lk != 27273               // 'for' ';'
 
15558
       && lk != 27277               // 'ft-option' ';'
 
15559
       && lk != 27281               // 'function' ';'
 
15560
       && lk != 27282               // 'ge' ';'
 
15561
       && lk != 27284               // 'group' ';'
 
15562
       && lk != 27286               // 'gt' ';'
 
15563
       && lk != 27287               // 'idiv' ';'
 
15564
       && lk != 27288               // 'if' ';'
 
15565
       && lk != 27289               // 'import' ';'
 
15566
       && lk != 27290               // 'in' ';'
 
15567
       && lk != 27291               // 'index' ';'
 
15568
       && lk != 27295               // 'insert' ';'
 
15569
       && lk != 27296               // 'instance' ';'
 
15570
       && lk != 27297               // 'integrity' ';'
 
15571
       && lk != 27298               // 'intersect' ';'
 
15572
       && lk != 27299               // 'into' ';'
 
15573
       && lk != 27300               // 'is' ';'
 
15574
       && lk != 27301               // 'item' ';'
 
15575
       && lk != 27303               // 'json-item' ';'
 
15576
       && lk != 27306               // 'last' ';'
 
15577
       && lk != 27307               // 'lax' ';'
 
15578
       && lk != 27308               // 'le' ';'
 
15579
       && lk != 27310               // 'let' ';'
 
15580
       && lk != 27312               // 'loop' ';'
 
15581
       && lk != 27314               // 'lt' ';'
 
15582
       && lk != 27316               // 'mod' ';'
 
15583
       && lk != 27317               // 'modify' ';'
 
15584
       && lk != 27318               // 'module' ';'
 
15585
       && lk != 27320               // 'namespace' ';'
 
15586
       && lk != 27321               // 'namespace-node' ';'
 
15587
       && lk != 27322               // 'ne' ';'
 
15588
       && lk != 27327               // 'node' ';'
 
15589
       && lk != 27328               // 'nodes' ';'
 
15590
       && lk != 27330               // 'object' ';'
 
15591
       && lk != 27334               // 'only' ';'
 
15592
       && lk != 27335               // 'option' ';'
 
15593
       && lk != 27336               // 'or' ';'
 
15594
       && lk != 27337               // 'order' ';'
 
15595
       && lk != 27338               // 'ordered' ';'
 
15596
       && lk != 27339               // 'ordering' ';'
 
15597
       && lk != 27342               // 'parent' ';'
 
15598
       && lk != 27348               // 'preceding' ';'
 
15599
       && lk != 27349               // 'preceding-sibling' ';'
 
15600
       && lk != 27352               // 'processing-instruction' ';'
 
15601
       && lk != 27354               // 'rename' ';'
 
15602
       && lk != 27355               // 'replace' ';'
 
15603
       && lk != 27356               // 'return' ';'
 
15604
       && lk != 27357               // 'returning' ';'
 
15605
       && lk != 27358               // 'revalidation' ';'
 
15606
       && lk != 27360               // 'satisfies' ';'
 
15607
       && lk != 27361               // 'schema' ';'
 
15608
       && lk != 27362               // 'schema-attribute' ';'
 
15609
       && lk != 27363               // 'schema-element' ';'
 
15610
       && lk != 27364               // 'score' ';'
 
15611
       && lk != 27365               // 'self' ';'
 
15612
       && lk != 27370               // 'sliding' ';'
 
15613
       && lk != 27371               // 'some' ';'
 
15614
       && lk != 27372               // 'stable' ';'
 
15615
       && lk != 27373               // 'start' ';'
 
15616
       && lk != 27376               // 'strict' ';'
 
15617
       && lk != 27379               // 'switch' ';'
 
15618
       && lk != 27380               // 'text' ';'
 
15619
       && lk != 27384               // 'to' ';'
 
15620
       && lk != 27385               // 'treat' ';'
 
15621
       && lk != 27386               // 'try' ';'
 
15622
       && lk != 27387               // 'tumbling' ';'
 
15623
       && lk != 27388               // 'type' ';'
 
15624
       && lk != 27389               // 'typeswitch' ';'
 
15625
       && lk != 27390               // 'union' ';'
 
15626
       && lk != 27392               // 'unordered' ';'
 
15627
       && lk != 27393               // 'updating' ';'
 
15628
       && lk != 27396               // 'validate' ';'
 
15629
       && lk != 27397               // 'value' ';'
 
15630
       && lk != 27398               // 'variable' ';'
 
15631
       && lk != 27399               // 'version' ';'
 
15632
       && lk != 27402               // 'where' ';'
 
15633
       && lk != 27403               // 'while' ';'
 
15634
       && lk != 27406               // 'with' ';'
 
15635
       && lk != 27410               // 'xquery' ';'
 
15636
       && lk != 90198               // 'break' 'loop'
 
15637
       && lk != 90214               // 'continue' 'loop'
 
15638
       && lk != 113284              // 'exit' 'returning'
 
15639
       && lk != 144389              // Wildcard '}'
 
15640
       && lk != 144390              // EQName^Token '}'
 
15641
       && lk != 144392              // IntegerLiteral '}'
 
15642
       && lk != 144393              // DecimalLiteral '}'
 
15643
       && lk != 144394              // DoubleLiteral '}'
 
15644
       && lk != 144395              // StringLiteral '}'
 
15645
       && lk != 144428              // '.' '}'
 
15646
       && lk != 144429              // '..' '}'
 
15647
       && lk != 144430              // '/' '}'
 
15648
       && lk != 144454              // 'after' '}'
 
15649
       && lk != 144456              // 'allowing' '}'
 
15650
       && lk != 144457              // 'ancestor' '}'
 
15651
       && lk != 144458              // 'ancestor-or-self' '}'
 
15652
       && lk != 144459              // 'and' '}'
 
15653
       && lk != 144462              // 'array' '}'
 
15654
       && lk != 144463              // 'as' '}'
 
15655
       && lk != 144464              // 'ascending' '}'
 
15656
       && lk != 144465              // 'at' '}'
 
15657
       && lk != 144466              // 'attribute' '}'
 
15658
       && lk != 144467              // 'base-uri' '}'
 
15659
       && lk != 144468              // 'before' '}'
 
15660
       && lk != 144469              // 'boundary-space' '}'
 
15661
       && lk != 144470              // 'break' '}'
 
15662
       && lk != 144472              // 'case' '}'
 
15663
       && lk != 144473              // 'cast' '}'
 
15664
       && lk != 144474              // 'castable' '}'
 
15665
       && lk != 144475              // 'catch' '}'
 
15666
       && lk != 144477              // 'child' '}'
 
15667
       && lk != 144478              // 'collation' '}'
 
15668
       && lk != 144480              // 'comment' '}'
 
15669
       && lk != 144481              // 'constraint' '}'
 
15670
       && lk != 144482              // 'construction' '}'
 
15671
       && lk != 144485              // 'context' '}'
 
15672
       && lk != 144486              // 'continue' '}'
 
15673
       && lk != 144487              // 'copy' '}'
 
15674
       && lk != 144488              // 'copy-namespaces' '}'
 
15675
       && lk != 144489              // 'count' '}'
 
15676
       && lk != 144490              // 'decimal-format' '}'
 
15677
       && lk != 144492              // 'declare' '}'
 
15678
       && lk != 144493              // 'default' '}'
 
15679
       && lk != 144494              // 'delete' '}'
 
15680
       && lk != 144495              // 'descendant' '}'
 
15681
       && lk != 144496              // 'descendant-or-self' '}'
 
15682
       && lk != 144497              // 'descending' '}'
 
15683
       && lk != 144502              // 'div' '}'
 
15684
       && lk != 144503              // 'document' '}'
 
15685
       && lk != 144504              // 'document-node' '}'
 
15686
       && lk != 144505              // 'element' '}'
 
15687
       && lk != 144506              // 'else' '}'
 
15688
       && lk != 144507              // 'empty' '}'
 
15689
       && lk != 144508              // 'empty-sequence' '}'
 
15690
       && lk != 144509              // 'encoding' '}'
 
15691
       && lk != 144510              // 'end' '}'
 
15692
       && lk != 144512              // 'eq' '}'
 
15693
       && lk != 144513              // 'every' '}'
 
15694
       && lk != 144515              // 'except' '}'
 
15695
       && lk != 144516              // 'exit' '}'
 
15696
       && lk != 144517              // 'external' '}'
 
15697
       && lk != 144518              // 'first' '}'
 
15698
       && lk != 144519              // 'following' '}'
 
15699
       && lk != 144520              // 'following-sibling' '}'
 
15700
       && lk != 144521              // 'for' '}'
 
15701
       && lk != 144525              // 'ft-option' '}'
 
15702
       && lk != 144529              // 'function' '}'
 
15703
       && lk != 144530              // 'ge' '}'
 
15704
       && lk != 144532              // 'group' '}'
 
15705
       && lk != 144534              // 'gt' '}'
 
15706
       && lk != 144535              // 'idiv' '}'
 
15707
       && lk != 144536              // 'if' '}'
 
15708
       && lk != 144537              // 'import' '}'
 
15709
       && lk != 144538              // 'in' '}'
 
15710
       && lk != 144539              // 'index' '}'
 
15711
       && lk != 144543              // 'insert' '}'
 
15712
       && lk != 144544              // 'instance' '}'
 
15713
       && lk != 144545              // 'integrity' '}'
 
15714
       && lk != 144546              // 'intersect' '}'
 
15715
       && lk != 144547              // 'into' '}'
 
15716
       && lk != 144548              // 'is' '}'
 
15717
       && lk != 144549              // 'item' '}'
 
15718
       && lk != 144551              // 'json-item' '}'
 
15719
       && lk != 144554              // 'last' '}'
 
15720
       && lk != 144555              // 'lax' '}'
 
15721
       && lk != 144556              // 'le' '}'
 
15722
       && lk != 144558              // 'let' '}'
 
15723
       && lk != 144560              // 'loop' '}'
 
15724
       && lk != 144562              // 'lt' '}'
 
15725
       && lk != 144564              // 'mod' '}'
 
15726
       && lk != 144565              // 'modify' '}'
 
15727
       && lk != 144566              // 'module' '}'
 
15728
       && lk != 144568              // 'namespace' '}'
 
15729
       && lk != 144569              // 'namespace-node' '}'
 
15730
       && lk != 144570              // 'ne' '}'
 
15731
       && lk != 144575              // 'node' '}'
 
15732
       && lk != 144576              // 'nodes' '}'
 
15733
       && lk != 144578              // 'object' '}'
 
15734
       && lk != 144582              // 'only' '}'
 
15735
       && lk != 144583              // 'option' '}'
 
15736
       && lk != 144584              // 'or' '}'
 
15737
       && lk != 144585              // 'order' '}'
 
15738
       && lk != 144586              // 'ordered' '}'
 
15739
       && lk != 144587              // 'ordering' '}'
 
15740
       && lk != 144590              // 'parent' '}'
 
15741
       && lk != 144596              // 'preceding' '}'
 
15742
       && lk != 144597              // 'preceding-sibling' '}'
 
15743
       && lk != 144600              // 'processing-instruction' '}'
 
15744
       && lk != 144602              // 'rename' '}'
 
15745
       && lk != 144603              // 'replace' '}'
 
15746
       && lk != 144604              // 'return' '}'
 
15747
       && lk != 144605              // 'returning' '}'
 
15748
       && lk != 144606              // 'revalidation' '}'
 
15749
       && lk != 144608              // 'satisfies' '}'
 
15750
       && lk != 144609              // 'schema' '}'
 
15751
       && lk != 144610              // 'schema-attribute' '}'
 
15752
       && lk != 144611              // 'schema-element' '}'
 
15753
       && lk != 144612              // 'score' '}'
 
15754
       && lk != 144613              // 'self' '}'
 
15755
       && lk != 144618              // 'sliding' '}'
 
15756
       && lk != 144619              // 'some' '}'
 
15757
       && lk != 144620              // 'stable' '}'
 
15758
       && lk != 144621              // 'start' '}'
 
15759
       && lk != 144624              // 'strict' '}'
 
15760
       && lk != 144627              // 'switch' '}'
 
15761
       && lk != 144628              // 'text' '}'
 
15762
       && lk != 144632              // 'to' '}'
 
15763
       && lk != 144633              // 'treat' '}'
 
15764
       && lk != 144634              // 'try' '}'
 
15765
       && lk != 144635              // 'tumbling' '}'
 
15766
       && lk != 144636              // 'type' '}'
 
15767
       && lk != 144637              // 'typeswitch' '}'
 
15768
       && lk != 144638              // 'union' '}'
 
15769
       && lk != 144640              // 'unordered' '}'
 
15770
       && lk != 144641              // 'updating' '}'
 
15771
       && lk != 144644              // 'validate' '}'
 
15772
       && lk != 144645              // 'value' '}'
 
15773
       && lk != 144646              // 'variable' '}'
 
15774
       && lk != 144647              // 'version' '}'
 
15775
       && lk != 144650              // 'where' '}'
 
15776
       && lk != 144651              // 'while' '}'
 
15777
       && lk != 144654              // 'with' '}'
 
15778
       && lk != 144658)             // 'xquery' '}'
 
15779
      {
 
15780
        lk = memoized(6, e0);
 
15781
        if (lk == 0)
 
15782
        {
 
15783
          var b0A = b0; var e0A = e0; var l1A = l1;
 
15784
          var b1A = b1; var e1A = e1; var l2A = l2;
 
15785
          var b2A = b2; var e2A = e2;
 
15786
          try
 
15787
          {
 
15788
            try_Statement();
 
15789
            lk = -1;
 
15790
          }
 
15791
          catch (p1A)
 
15792
          {
 
15793
            lk = -2;
 
15794
          }
 
15795
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
15796
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
15797
          b2 = b2A; e2 = e2A; end = e2A; }}
 
15798
          memoize(6, e0, lk);
 
15799
        }
 
15800
      }
 
15801
      if (lk != -1
 
15802
       && lk != 16134               // 'variable' '$'
 
15803
       && lk != 27141               // Wildcard ';'
 
15804
       && lk != 27142               // EQName^Token ';'
 
15805
       && lk != 27144               // IntegerLiteral ';'
 
15806
       && lk != 27145               // DecimalLiteral ';'
 
15807
       && lk != 27146               // DoubleLiteral ';'
 
15808
       && lk != 27147               // StringLiteral ';'
 
15809
       && lk != 27180               // '.' ';'
 
15810
       && lk != 27181               // '..' ';'
 
15811
       && lk != 27182               // '/' ';'
 
15812
       && lk != 27206               // 'after' ';'
 
15813
       && lk != 27208               // 'allowing' ';'
 
15814
       && lk != 27209               // 'ancestor' ';'
 
15815
       && lk != 27210               // 'ancestor-or-self' ';'
 
15816
       && lk != 27211               // 'and' ';'
 
15817
       && lk != 27214               // 'array' ';'
 
15818
       && lk != 27215               // 'as' ';'
 
15819
       && lk != 27216               // 'ascending' ';'
 
15820
       && lk != 27217               // 'at' ';'
 
15821
       && lk != 27218               // 'attribute' ';'
 
15822
       && lk != 27219               // 'base-uri' ';'
 
15823
       && lk != 27220               // 'before' ';'
 
15824
       && lk != 27221               // 'boundary-space' ';'
 
15825
       && lk != 27222               // 'break' ';'
 
15826
       && lk != 27224               // 'case' ';'
 
15827
       && lk != 27225               // 'cast' ';'
 
15828
       && lk != 27226               // 'castable' ';'
 
15829
       && lk != 27227               // 'catch' ';'
 
15830
       && lk != 27229               // 'child' ';'
 
15831
       && lk != 27230               // 'collation' ';'
 
15832
       && lk != 27232               // 'comment' ';'
 
15833
       && lk != 27233               // 'constraint' ';'
 
15834
       && lk != 27234               // 'construction' ';'
 
15835
       && lk != 27237               // 'context' ';'
 
15836
       && lk != 27238               // 'continue' ';'
 
15837
       && lk != 27239               // 'copy' ';'
 
15838
       && lk != 27240               // 'copy-namespaces' ';'
 
15839
       && lk != 27241               // 'count' ';'
 
15840
       && lk != 27242               // 'decimal-format' ';'
 
15841
       && lk != 27244               // 'declare' ';'
 
15842
       && lk != 27245               // 'default' ';'
 
15843
       && lk != 27246               // 'delete' ';'
 
15844
       && lk != 27247               // 'descendant' ';'
 
15845
       && lk != 27248               // 'descendant-or-self' ';'
 
15846
       && lk != 27249               // 'descending' ';'
 
15847
       && lk != 27254               // 'div' ';'
 
15848
       && lk != 27255               // 'document' ';'
 
15849
       && lk != 27256               // 'document-node' ';'
 
15850
       && lk != 27257               // 'element' ';'
 
15851
       && lk != 27258               // 'else' ';'
 
15852
       && lk != 27259               // 'empty' ';'
 
15853
       && lk != 27260               // 'empty-sequence' ';'
 
15854
       && lk != 27261               // 'encoding' ';'
 
15855
       && lk != 27262               // 'end' ';'
 
15856
       && lk != 27264               // 'eq' ';'
 
15857
       && lk != 27265               // 'every' ';'
 
15858
       && lk != 27267               // 'except' ';'
 
15859
       && lk != 27268               // 'exit' ';'
 
15860
       && lk != 27269               // 'external' ';'
 
15861
       && lk != 27270               // 'first' ';'
 
15862
       && lk != 27271               // 'following' ';'
 
15863
       && lk != 27272               // 'following-sibling' ';'
 
15864
       && lk != 27273               // 'for' ';'
 
15865
       && lk != 27277               // 'ft-option' ';'
 
15866
       && lk != 27281               // 'function' ';'
 
15867
       && lk != 27282               // 'ge' ';'
 
15868
       && lk != 27284               // 'group' ';'
 
15869
       && lk != 27286               // 'gt' ';'
 
15870
       && lk != 27287               // 'idiv' ';'
 
15871
       && lk != 27288               // 'if' ';'
 
15872
       && lk != 27289               // 'import' ';'
 
15873
       && lk != 27290               // 'in' ';'
 
15874
       && lk != 27291               // 'index' ';'
 
15875
       && lk != 27295               // 'insert' ';'
 
15876
       && lk != 27296               // 'instance' ';'
 
15877
       && lk != 27297               // 'integrity' ';'
 
15878
       && lk != 27298               // 'intersect' ';'
 
15879
       && lk != 27299               // 'into' ';'
 
15880
       && lk != 27300               // 'is' ';'
 
15881
       && lk != 27301               // 'item' ';'
 
15882
       && lk != 27303               // 'json-item' ';'
 
15883
       && lk != 27306               // 'last' ';'
 
15884
       && lk != 27307               // 'lax' ';'
 
15885
       && lk != 27308               // 'le' ';'
 
15886
       && lk != 27310               // 'let' ';'
 
15887
       && lk != 27312               // 'loop' ';'
 
15888
       && lk != 27314               // 'lt' ';'
 
15889
       && lk != 27316               // 'mod' ';'
 
15890
       && lk != 27317               // 'modify' ';'
 
15891
       && lk != 27318               // 'module' ';'
 
15892
       && lk != 27320               // 'namespace' ';'
 
15893
       && lk != 27321               // 'namespace-node' ';'
 
15894
       && lk != 27322               // 'ne' ';'
 
15895
       && lk != 27327               // 'node' ';'
 
15896
       && lk != 27328               // 'nodes' ';'
 
15897
       && lk != 27330               // 'object' ';'
 
15898
       && lk != 27334               // 'only' ';'
 
15899
       && lk != 27335               // 'option' ';'
 
15900
       && lk != 27336               // 'or' ';'
 
15901
       && lk != 27337               // 'order' ';'
 
15902
       && lk != 27338               // 'ordered' ';'
 
15903
       && lk != 27339               // 'ordering' ';'
 
15904
       && lk != 27342               // 'parent' ';'
 
15905
       && lk != 27348               // 'preceding' ';'
 
15906
       && lk != 27349               // 'preceding-sibling' ';'
 
15907
       && lk != 27352               // 'processing-instruction' ';'
 
15908
       && lk != 27354               // 'rename' ';'
 
15909
       && lk != 27355               // 'replace' ';'
 
15910
       && lk != 27356               // 'return' ';'
 
15911
       && lk != 27357               // 'returning' ';'
 
15912
       && lk != 27358               // 'revalidation' ';'
 
15913
       && lk != 27360               // 'satisfies' ';'
 
15914
       && lk != 27361               // 'schema' ';'
 
15915
       && lk != 27362               // 'schema-attribute' ';'
 
15916
       && lk != 27363               // 'schema-element' ';'
 
15917
       && lk != 27364               // 'score' ';'
 
15918
       && lk != 27365               // 'self' ';'
 
15919
       && lk != 27370               // 'sliding' ';'
 
15920
       && lk != 27371               // 'some' ';'
 
15921
       && lk != 27372               // 'stable' ';'
 
15922
       && lk != 27373               // 'start' ';'
 
15923
       && lk != 27376               // 'strict' ';'
 
15924
       && lk != 27379               // 'switch' ';'
 
15925
       && lk != 27380               // 'text' ';'
 
15926
       && lk != 27384               // 'to' ';'
 
15927
       && lk != 27385               // 'treat' ';'
 
15928
       && lk != 27386               // 'try' ';'
 
15929
       && lk != 27387               // 'tumbling' ';'
 
15930
       && lk != 27388               // 'type' ';'
 
15931
       && lk != 27389               // 'typeswitch' ';'
 
15932
       && lk != 27390               // 'union' ';'
 
15933
       && lk != 27392               // 'unordered' ';'
 
15934
       && lk != 27393               // 'updating' ';'
 
15935
       && lk != 27396               // 'validate' ';'
 
15936
       && lk != 27397               // 'value' ';'
 
15937
       && lk != 27398               // 'variable' ';'
 
15938
       && lk != 27399               // 'version' ';'
 
15939
       && lk != 27402               // 'where' ';'
 
15940
       && lk != 27403               // 'while' ';'
 
15941
       && lk != 27406               // 'with' ';'
 
15942
       && lk != 27410               // 'xquery' ';'
 
15943
       && lk != 90198               // 'break' 'loop'
 
15944
       && lk != 90214               // 'continue' 'loop'
 
15945
       && lk != 113284)             // 'exit' 'returning'
 
15946
      {
 
15947
        break;
 
15948
      }
 
15949
      whitespace();
 
15950
      parse_Statement();
 
15951
    }
 
15952
    eventHandler.endNonterminal("Statements", e0);
 
15953
  }
 
15954
 
 
15955
  function try_Statements()
 
15956
  {
 
15957
    for (;;)
 
15958
    {
 
15959
      lookahead1W(274);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15960
      switch (l1)
 
15961
      {
 
15962
      case 34:                      // '('
 
15963
        lookahead2W(269);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15964
        break;
 
15965
      case 35:                      // '(#'
 
15966
        lookahead2(250);            // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
 
15967
        break;
 
15968
      case 46:                      // '/'
 
15969
        lookahead2W(281);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15970
        break;
 
15971
      case 47:                      // '//'
 
15972
        lookahead2W(263);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15973
        break;
 
15974
      case 54:                      // '<'
 
15975
        lookahead2(4);              // QName
 
15976
        break;
 
15977
      case 55:                      // '<!--'
 
15978
        lookahead2(1);              // DirCommentContents
 
15979
        break;
 
15980
      case 59:                      // '<?'
 
15981
        lookahead2(3);              // PITarget
 
15982
        break;
 
15983
      case 66:                      // '@'
 
15984
        lookahead2W(255);           // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
15985
        break;
 
15986
      case 68:                      // '['
 
15987
        lookahead2W(271);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
15988
        break;
 
15989
      case 77:                      // 'append'
 
15990
        lookahead2W(56);            // S^WS | '(:' | 'json'
 
15991
        break;
 
15992
      case 82:                      // 'attribute'
 
15993
        lookahead2W(278);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
15994
        break;
 
15995
      case 121:                     // 'element'
 
15996
        lookahead2W(277);           // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
15997
        break;
 
15998
      case 132:                     // 'exit'
 
15999
        lookahead2W(202);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16000
        break;
 
16001
      case 137:                     // 'for'
 
16002
        lookahead2W(206);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
16003
        break;
 
16004
      case 174:                     // 'let'
 
16005
        lookahead2W(204);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
16006
        break;
 
16007
      case 218:                     // 'rename'
 
16008
        lookahead2W(205);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16009
        break;
 
16010
      case 219:                     // 'replace'
 
16011
        lookahead2W(208);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16012
        break;
 
16013
      case 260:                     // 'validate'
 
16014
        lookahead2W(209);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16015
        break;
 
16016
      case 276:                     // '{'
 
16017
        lookahead2W(273);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
16018
        break;
 
16019
      case 278:                     // '{|'
 
16020
        lookahead2W(272);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
16021
        break;
 
16022
      case 5:                       // Wildcard
 
16023
      case 45:                      // '..'
 
16024
        lookahead2W(186);           // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |
 
16025
        break;
 
16026
      case 31:                      // '$'
 
16027
      case 32:                      // '%'
 
16028
        lookahead2W(253);           // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
16029
        break;
 
16030
      case 40:                      // '+'
 
16031
      case 42:                      // '-'
 
16032
        lookahead2W(265);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
16033
        break;
 
16034
      case 86:                      // 'break'
 
16035
      case 102:                     // 'continue'
 
16036
        lookahead2W(200);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16037
        break;
 
16038
      case 110:                     // 'delete'
 
16039
      case 159:                     // 'insert'
 
16040
        lookahead2W(207);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16041
        break;
 
16042
      case 124:                     // 'empty-sequence'
 
16043
      case 165:                     // 'item'
 
16044
        lookahead2W(191);           // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
 
16045
        break;
 
16046
      case 184:                     // 'namespace'
 
16047
      case 216:                     // 'processing-instruction'
 
16048
        lookahead2W(266);           // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
 
16049
        break;
 
16050
      case 103:                     // 'copy'
 
16051
      case 129:                     // 'every'
 
16052
      case 235:                     // 'some'
 
16053
      case 262:                     // 'variable'
 
16054
        lookahead2W(197);           // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
 
16055
        break;
 
16056
      case 8:                       // IntegerLiteral
 
16057
      case 9:                       // DecimalLiteral
 
16058
      case 10:                      // DoubleLiteral
 
16059
      case 11:                      // StringLiteral
 
16060
      case 44:                      // '.'
 
16061
        lookahead2W(192);           // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
 
16062
        break;
 
16063
      case 96:                      // 'comment'
 
16064
      case 119:                     // 'document'
 
16065
      case 202:                     // 'ordered'
 
16066
      case 244:                     // 'text'
 
16067
      case 250:                     // 'try'
 
16068
      case 256:                     // 'unordered'
 
16069
        lookahead2W(203);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16070
        break;
 
16071
      case 73:                      // 'ancestor'
 
16072
      case 74:                      // 'ancestor-or-self'
 
16073
      case 93:                      // 'child'
 
16074
      case 111:                     // 'descendant'
 
16075
      case 112:                     // 'descendant-or-self'
 
16076
      case 135:                     // 'following'
 
16077
      case 136:                     // 'following-sibling'
 
16078
      case 206:                     // 'parent'
 
16079
      case 212:                     // 'preceding'
 
16080
      case 213:                     // 'preceding-sibling'
 
16081
      case 229:                     // 'self'
 
16082
        lookahead2W(198);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16083
        break;
 
16084
      case 6:                       // EQName^Token
 
16085
      case 70:                      // 'after'
 
16086
      case 72:                      // 'allowing'
 
16087
      case 75:                      // 'and'
 
16088
      case 78:                      // 'array'
 
16089
      case 79:                      // 'as'
 
16090
      case 80:                      // 'ascending'
 
16091
      case 81:                      // 'at'
 
16092
      case 83:                      // 'base-uri'
 
16093
      case 84:                      // 'before'
 
16094
      case 85:                      // 'boundary-space'
 
16095
      case 88:                      // 'case'
 
16096
      case 89:                      // 'cast'
 
16097
      case 90:                      // 'castable'
 
16098
      case 91:                      // 'catch'
 
16099
      case 94:                      // 'collation'
 
16100
      case 97:                      // 'constraint'
 
16101
      case 98:                      // 'construction'
 
16102
      case 101:                     // 'context'
 
16103
      case 104:                     // 'copy-namespaces'
 
16104
      case 105:                     // 'count'
 
16105
      case 106:                     // 'decimal-format'
 
16106
      case 108:                     // 'declare'
 
16107
      case 109:                     // 'default'
 
16108
      case 113:                     // 'descending'
 
16109
      case 118:                     // 'div'
 
16110
      case 120:                     // 'document-node'
 
16111
      case 122:                     // 'else'
 
16112
      case 123:                     // 'empty'
 
16113
      case 125:                     // 'encoding'
 
16114
      case 126:                     // 'end'
 
16115
      case 128:                     // 'eq'
 
16116
      case 131:                     // 'except'
 
16117
      case 133:                     // 'external'
 
16118
      case 134:                     // 'first'
 
16119
      case 141:                     // 'ft-option'
 
16120
      case 145:                     // 'function'
 
16121
      case 146:                     // 'ge'
 
16122
      case 148:                     // 'group'
 
16123
      case 150:                     // 'gt'
 
16124
      case 151:                     // 'idiv'
 
16125
      case 152:                     // 'if'
 
16126
      case 153:                     // 'import'
 
16127
      case 154:                     // 'in'
 
16128
      case 155:                     // 'index'
 
16129
      case 160:                     // 'instance'
 
16130
      case 161:                     // 'integrity'
 
16131
      case 162:                     // 'intersect'
 
16132
      case 163:                     // 'into'
 
16133
      case 164:                     // 'is'
 
16134
      case 167:                     // 'json-item'
 
16135
      case 170:                     // 'last'
 
16136
      case 171:                     // 'lax'
 
16137
      case 172:                     // 'le'
 
16138
      case 176:                     // 'loop'
 
16139
      case 178:                     // 'lt'
 
16140
      case 180:                     // 'mod'
 
16141
      case 181:                     // 'modify'
 
16142
      case 182:                     // 'module'
 
16143
      case 185:                     // 'namespace-node'
 
16144
      case 186:                     // 'ne'
 
16145
      case 191:                     // 'node'
 
16146
      case 192:                     // 'nodes'
 
16147
      case 194:                     // 'object'
 
16148
      case 198:                     // 'only'
 
16149
      case 199:                     // 'option'
 
16150
      case 200:                     // 'or'
 
16151
      case 201:                     // 'order'
 
16152
      case 203:                     // 'ordering'
 
16153
      case 220:                     // 'return'
 
16154
      case 221:                     // 'returning'
 
16155
      case 222:                     // 'revalidation'
 
16156
      case 224:                     // 'satisfies'
 
16157
      case 225:                     // 'schema'
 
16158
      case 226:                     // 'schema-attribute'
 
16159
      case 227:                     // 'schema-element'
 
16160
      case 228:                     // 'score'
 
16161
      case 234:                     // 'sliding'
 
16162
      case 236:                     // 'stable'
 
16163
      case 237:                     // 'start'
 
16164
      case 240:                     // 'strict'
 
16165
      case 243:                     // 'switch'
 
16166
      case 248:                     // 'to'
 
16167
      case 249:                     // 'treat'
 
16168
      case 251:                     // 'tumbling'
 
16169
      case 252:                     // 'type'
 
16170
      case 253:                     // 'typeswitch'
 
16171
      case 254:                     // 'union'
 
16172
      case 257:                     // 'updating'
 
16173
      case 261:                     // 'value'
 
16174
      case 263:                     // 'version'
 
16175
      case 266:                     // 'where'
 
16176
      case 267:                     // 'while'
 
16177
      case 270:                     // 'with'
 
16178
      case 274:                     // 'xquery'
 
16179
        lookahead2W(195);           // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
 
16180
        break;
 
16181
      default:
 
16182
        lk = l1;
 
16183
      }
 
16184
      if (lk != 25                  // EOF
 
16185
       && lk != 282                 // '}'
 
16186
       && lk != 12805               // Wildcard EOF
 
16187
       && lk != 12806               // EQName^Token EOF
 
16188
       && lk != 12808               // IntegerLiteral EOF
 
16189
       && lk != 12809               // DecimalLiteral EOF
 
16190
       && lk != 12810               // DoubleLiteral EOF
 
16191
       && lk != 12811               // StringLiteral EOF
 
16192
       && lk != 12844               // '.' EOF
 
16193
       && lk != 12845               // '..' EOF
 
16194
       && lk != 12846               // '/' EOF
 
16195
       && lk != 12870               // 'after' EOF
 
16196
       && lk != 12872               // 'allowing' EOF
 
16197
       && lk != 12873               // 'ancestor' EOF
 
16198
       && lk != 12874               // 'ancestor-or-self' EOF
 
16199
       && lk != 12875               // 'and' EOF
 
16200
       && lk != 12878               // 'array' EOF
 
16201
       && lk != 12879               // 'as' EOF
 
16202
       && lk != 12880               // 'ascending' EOF
 
16203
       && lk != 12881               // 'at' EOF
 
16204
       && lk != 12882               // 'attribute' EOF
 
16205
       && lk != 12883               // 'base-uri' EOF
 
16206
       && lk != 12884               // 'before' EOF
 
16207
       && lk != 12885               // 'boundary-space' EOF
 
16208
       && lk != 12886               // 'break' EOF
 
16209
       && lk != 12888               // 'case' EOF
 
16210
       && lk != 12889               // 'cast' EOF
 
16211
       && lk != 12890               // 'castable' EOF
 
16212
       && lk != 12891               // 'catch' EOF
 
16213
       && lk != 12893               // 'child' EOF
 
16214
       && lk != 12894               // 'collation' EOF
 
16215
       && lk != 12896               // 'comment' EOF
 
16216
       && lk != 12897               // 'constraint' EOF
 
16217
       && lk != 12898               // 'construction' EOF
 
16218
       && lk != 12901               // 'context' EOF
 
16219
       && lk != 12902               // 'continue' EOF
 
16220
       && lk != 12903               // 'copy' EOF
 
16221
       && lk != 12904               // 'copy-namespaces' EOF
 
16222
       && lk != 12905               // 'count' EOF
 
16223
       && lk != 12906               // 'decimal-format' EOF
 
16224
       && lk != 12908               // 'declare' EOF
 
16225
       && lk != 12909               // 'default' EOF
 
16226
       && lk != 12910               // 'delete' EOF
 
16227
       && lk != 12911               // 'descendant' EOF
 
16228
       && lk != 12912               // 'descendant-or-self' EOF
 
16229
       && lk != 12913               // 'descending' EOF
 
16230
       && lk != 12918               // 'div' EOF
 
16231
       && lk != 12919               // 'document' EOF
 
16232
       && lk != 12920               // 'document-node' EOF
 
16233
       && lk != 12921               // 'element' EOF
 
16234
       && lk != 12922               // 'else' EOF
 
16235
       && lk != 12923               // 'empty' EOF
 
16236
       && lk != 12924               // 'empty-sequence' EOF
 
16237
       && lk != 12925               // 'encoding' EOF
 
16238
       && lk != 12926               // 'end' EOF
 
16239
       && lk != 12928               // 'eq' EOF
 
16240
       && lk != 12929               // 'every' EOF
 
16241
       && lk != 12931               // 'except' EOF
 
16242
       && lk != 12932               // 'exit' EOF
 
16243
       && lk != 12933               // 'external' EOF
 
16244
       && lk != 12934               // 'first' EOF
 
16245
       && lk != 12935               // 'following' EOF
 
16246
       && lk != 12936               // 'following-sibling' EOF
 
16247
       && lk != 12937               // 'for' EOF
 
16248
       && lk != 12941               // 'ft-option' EOF
 
16249
       && lk != 12945               // 'function' EOF
 
16250
       && lk != 12946               // 'ge' EOF
 
16251
       && lk != 12948               // 'group' EOF
 
16252
       && lk != 12950               // 'gt' EOF
 
16253
       && lk != 12951               // 'idiv' EOF
 
16254
       && lk != 12952               // 'if' EOF
 
16255
       && lk != 12953               // 'import' EOF
 
16256
       && lk != 12954               // 'in' EOF
 
16257
       && lk != 12955               // 'index' EOF
 
16258
       && lk != 12959               // 'insert' EOF
 
16259
       && lk != 12960               // 'instance' EOF
 
16260
       && lk != 12961               // 'integrity' EOF
 
16261
       && lk != 12962               // 'intersect' EOF
 
16262
       && lk != 12963               // 'into' EOF
 
16263
       && lk != 12964               // 'is' EOF
 
16264
       && lk != 12965               // 'item' EOF
 
16265
       && lk != 12967               // 'json-item' EOF
 
16266
       && lk != 12970               // 'last' EOF
 
16267
       && lk != 12971               // 'lax' EOF
 
16268
       && lk != 12972               // 'le' EOF
 
16269
       && lk != 12974               // 'let' EOF
 
16270
       && lk != 12976               // 'loop' EOF
 
16271
       && lk != 12978               // 'lt' EOF
 
16272
       && lk != 12980               // 'mod' EOF
 
16273
       && lk != 12981               // 'modify' EOF
 
16274
       && lk != 12982               // 'module' EOF
 
16275
       && lk != 12984               // 'namespace' EOF
 
16276
       && lk != 12985               // 'namespace-node' EOF
 
16277
       && lk != 12986               // 'ne' EOF
 
16278
       && lk != 12991               // 'node' EOF
 
16279
       && lk != 12992               // 'nodes' EOF
 
16280
       && lk != 12994               // 'object' EOF
 
16281
       && lk != 12998               // 'only' EOF
 
16282
       && lk != 12999               // 'option' EOF
 
16283
       && lk != 13000               // 'or' EOF
 
16284
       && lk != 13001               // 'order' EOF
 
16285
       && lk != 13002               // 'ordered' EOF
 
16286
       && lk != 13003               // 'ordering' EOF
 
16287
       && lk != 13006               // 'parent' EOF
 
16288
       && lk != 13012               // 'preceding' EOF
 
16289
       && lk != 13013               // 'preceding-sibling' EOF
 
16290
       && lk != 13016               // 'processing-instruction' EOF
 
16291
       && lk != 13018               // 'rename' EOF
 
16292
       && lk != 13019               // 'replace' EOF
 
16293
       && lk != 13020               // 'return' EOF
 
16294
       && lk != 13021               // 'returning' EOF
 
16295
       && lk != 13022               // 'revalidation' EOF
 
16296
       && lk != 13024               // 'satisfies' EOF
 
16297
       && lk != 13025               // 'schema' EOF
 
16298
       && lk != 13026               // 'schema-attribute' EOF
 
16299
       && lk != 13027               // 'schema-element' EOF
 
16300
       && lk != 13028               // 'score' EOF
 
16301
       && lk != 13029               // 'self' EOF
 
16302
       && lk != 13034               // 'sliding' EOF
 
16303
       && lk != 13035               // 'some' EOF
 
16304
       && lk != 13036               // 'stable' EOF
 
16305
       && lk != 13037               // 'start' EOF
 
16306
       && lk != 13040               // 'strict' EOF
 
16307
       && lk != 13043               // 'switch' EOF
 
16308
       && lk != 13044               // 'text' EOF
 
16309
       && lk != 13048               // 'to' EOF
 
16310
       && lk != 13049               // 'treat' EOF
 
16311
       && lk != 13050               // 'try' EOF
 
16312
       && lk != 13051               // 'tumbling' EOF
 
16313
       && lk != 13052               // 'type' EOF
 
16314
       && lk != 13053               // 'typeswitch' EOF
 
16315
       && lk != 13054               // 'union' EOF
 
16316
       && lk != 13056               // 'unordered' EOF
 
16317
       && lk != 13057               // 'updating' EOF
 
16318
       && lk != 13060               // 'validate' EOF
 
16319
       && lk != 13061               // 'value' EOF
 
16320
       && lk != 13062               // 'variable' EOF
 
16321
       && lk != 13063               // 'version' EOF
 
16322
       && lk != 13066               // 'where' EOF
 
16323
       && lk != 13067               // 'while' EOF
 
16324
       && lk != 13070               // 'with' EOF
 
16325
       && lk != 13074               // 'xquery' EOF
 
16326
       && lk != 16134               // 'variable' '$'
 
16327
       && lk != 20997               // Wildcard ','
 
16328
       && lk != 20998               // EQName^Token ','
 
16329
       && lk != 21000               // IntegerLiteral ','
 
16330
       && lk != 21001               // DecimalLiteral ','
 
16331
       && lk != 21002               // DoubleLiteral ','
 
16332
       && lk != 21003               // StringLiteral ','
 
16333
       && lk != 21036               // '.' ','
 
16334
       && lk != 21037               // '..' ','
 
16335
       && lk != 21038               // '/' ','
 
16336
       && lk != 21062               // 'after' ','
 
16337
       && lk != 21064               // 'allowing' ','
 
16338
       && lk != 21065               // 'ancestor' ','
 
16339
       && lk != 21066               // 'ancestor-or-self' ','
 
16340
       && lk != 21067               // 'and' ','
 
16341
       && lk != 21070               // 'array' ','
 
16342
       && lk != 21071               // 'as' ','
 
16343
       && lk != 21072               // 'ascending' ','
 
16344
       && lk != 21073               // 'at' ','
 
16345
       && lk != 21074               // 'attribute' ','
 
16346
       && lk != 21075               // 'base-uri' ','
 
16347
       && lk != 21076               // 'before' ','
 
16348
       && lk != 21077               // 'boundary-space' ','
 
16349
       && lk != 21078               // 'break' ','
 
16350
       && lk != 21080               // 'case' ','
 
16351
       && lk != 21081               // 'cast' ','
 
16352
       && lk != 21082               // 'castable' ','
 
16353
       && lk != 21083               // 'catch' ','
 
16354
       && lk != 21085               // 'child' ','
 
16355
       && lk != 21086               // 'collation' ','
 
16356
       && lk != 21088               // 'comment' ','
 
16357
       && lk != 21089               // 'constraint' ','
 
16358
       && lk != 21090               // 'construction' ','
 
16359
       && lk != 21093               // 'context' ','
 
16360
       && lk != 21094               // 'continue' ','
 
16361
       && lk != 21095               // 'copy' ','
 
16362
       && lk != 21096               // 'copy-namespaces' ','
 
16363
       && lk != 21097               // 'count' ','
 
16364
       && lk != 21098               // 'decimal-format' ','
 
16365
       && lk != 21100               // 'declare' ','
 
16366
       && lk != 21101               // 'default' ','
 
16367
       && lk != 21102               // 'delete' ','
 
16368
       && lk != 21103               // 'descendant' ','
 
16369
       && lk != 21104               // 'descendant-or-self' ','
 
16370
       && lk != 21105               // 'descending' ','
 
16371
       && lk != 21110               // 'div' ','
 
16372
       && lk != 21111               // 'document' ','
 
16373
       && lk != 21112               // 'document-node' ','
 
16374
       && lk != 21113               // 'element' ','
 
16375
       && lk != 21114               // 'else' ','
 
16376
       && lk != 21115               // 'empty' ','
 
16377
       && lk != 21116               // 'empty-sequence' ','
 
16378
       && lk != 21117               // 'encoding' ','
 
16379
       && lk != 21118               // 'end' ','
 
16380
       && lk != 21120               // 'eq' ','
 
16381
       && lk != 21121               // 'every' ','
 
16382
       && lk != 21123               // 'except' ','
 
16383
       && lk != 21124               // 'exit' ','
 
16384
       && lk != 21125               // 'external' ','
 
16385
       && lk != 21126               // 'first' ','
 
16386
       && lk != 21127               // 'following' ','
 
16387
       && lk != 21128               // 'following-sibling' ','
 
16388
       && lk != 21129               // 'for' ','
 
16389
       && lk != 21133               // 'ft-option' ','
 
16390
       && lk != 21137               // 'function' ','
 
16391
       && lk != 21138               // 'ge' ','
 
16392
       && lk != 21140               // 'group' ','
 
16393
       && lk != 21142               // 'gt' ','
 
16394
       && lk != 21143               // 'idiv' ','
 
16395
       && lk != 21144               // 'if' ','
 
16396
       && lk != 21145               // 'import' ','
 
16397
       && lk != 21146               // 'in' ','
 
16398
       && lk != 21147               // 'index' ','
 
16399
       && lk != 21151               // 'insert' ','
 
16400
       && lk != 21152               // 'instance' ','
 
16401
       && lk != 21153               // 'integrity' ','
 
16402
       && lk != 21154               // 'intersect' ','
 
16403
       && lk != 21155               // 'into' ','
 
16404
       && lk != 21156               // 'is' ','
 
16405
       && lk != 21157               // 'item' ','
 
16406
       && lk != 21159               // 'json-item' ','
 
16407
       && lk != 21162               // 'last' ','
 
16408
       && lk != 21163               // 'lax' ','
 
16409
       && lk != 21164               // 'le' ','
 
16410
       && lk != 21166               // 'let' ','
 
16411
       && lk != 21168               // 'loop' ','
 
16412
       && lk != 21170               // 'lt' ','
 
16413
       && lk != 21172               // 'mod' ','
 
16414
       && lk != 21173               // 'modify' ','
 
16415
       && lk != 21174               // 'module' ','
 
16416
       && lk != 21176               // 'namespace' ','
 
16417
       && lk != 21177               // 'namespace-node' ','
 
16418
       && lk != 21178               // 'ne' ','
 
16419
       && lk != 21183               // 'node' ','
 
16420
       && lk != 21184               // 'nodes' ','
 
16421
       && lk != 21186               // 'object' ','
 
16422
       && lk != 21190               // 'only' ','
 
16423
       && lk != 21191               // 'option' ','
 
16424
       && lk != 21192               // 'or' ','
 
16425
       && lk != 21193               // 'order' ','
 
16426
       && lk != 21194               // 'ordered' ','
 
16427
       && lk != 21195               // 'ordering' ','
 
16428
       && lk != 21198               // 'parent' ','
 
16429
       && lk != 21204               // 'preceding' ','
 
16430
       && lk != 21205               // 'preceding-sibling' ','
 
16431
       && lk != 21208               // 'processing-instruction' ','
 
16432
       && lk != 21210               // 'rename' ','
 
16433
       && lk != 21211               // 'replace' ','
 
16434
       && lk != 21212               // 'return' ','
 
16435
       && lk != 21213               // 'returning' ','
 
16436
       && lk != 21214               // 'revalidation' ','
 
16437
       && lk != 21216               // 'satisfies' ','
 
16438
       && lk != 21217               // 'schema' ','
 
16439
       && lk != 21218               // 'schema-attribute' ','
 
16440
       && lk != 21219               // 'schema-element' ','
 
16441
       && lk != 21220               // 'score' ','
 
16442
       && lk != 21221               // 'self' ','
 
16443
       && lk != 21226               // 'sliding' ','
 
16444
       && lk != 21227               // 'some' ','
 
16445
       && lk != 21228               // 'stable' ','
 
16446
       && lk != 21229               // 'start' ','
 
16447
       && lk != 21232               // 'strict' ','
 
16448
       && lk != 21235               // 'switch' ','
 
16449
       && lk != 21236               // 'text' ','
 
16450
       && lk != 21240               // 'to' ','
 
16451
       && lk != 21241               // 'treat' ','
 
16452
       && lk != 21242               // 'try' ','
 
16453
       && lk != 21243               // 'tumbling' ','
 
16454
       && lk != 21244               // 'type' ','
 
16455
       && lk != 21245               // 'typeswitch' ','
 
16456
       && lk != 21246               // 'union' ','
 
16457
       && lk != 21248               // 'unordered' ','
 
16458
       && lk != 21249               // 'updating' ','
 
16459
       && lk != 21252               // 'validate' ','
 
16460
       && lk != 21253               // 'value' ','
 
16461
       && lk != 21254               // 'variable' ','
 
16462
       && lk != 21255               // 'version' ','
 
16463
       && lk != 21258               // 'where' ','
 
16464
       && lk != 21259               // 'while' ','
 
16465
       && lk != 21262               // 'with' ','
 
16466
       && lk != 21266               // 'xquery' ','
 
16467
       && lk != 27141               // Wildcard ';'
 
16468
       && lk != 27142               // EQName^Token ';'
 
16469
       && lk != 27144               // IntegerLiteral ';'
 
16470
       && lk != 27145               // DecimalLiteral ';'
 
16471
       && lk != 27146               // DoubleLiteral ';'
 
16472
       && lk != 27147               // StringLiteral ';'
 
16473
       && lk != 27180               // '.' ';'
 
16474
       && lk != 27181               // '..' ';'
 
16475
       && lk != 27182               // '/' ';'
 
16476
       && lk != 27206               // 'after' ';'
 
16477
       && lk != 27208               // 'allowing' ';'
 
16478
       && lk != 27209               // 'ancestor' ';'
 
16479
       && lk != 27210               // 'ancestor-or-self' ';'
 
16480
       && lk != 27211               // 'and' ';'
 
16481
       && lk != 27214               // 'array' ';'
 
16482
       && lk != 27215               // 'as' ';'
 
16483
       && lk != 27216               // 'ascending' ';'
 
16484
       && lk != 27217               // 'at' ';'
 
16485
       && lk != 27218               // 'attribute' ';'
 
16486
       && lk != 27219               // 'base-uri' ';'
 
16487
       && lk != 27220               // 'before' ';'
 
16488
       && lk != 27221               // 'boundary-space' ';'
 
16489
       && lk != 27222               // 'break' ';'
 
16490
       && lk != 27224               // 'case' ';'
 
16491
       && lk != 27225               // 'cast' ';'
 
16492
       && lk != 27226               // 'castable' ';'
 
16493
       && lk != 27227               // 'catch' ';'
 
16494
       && lk != 27229               // 'child' ';'
 
16495
       && lk != 27230               // 'collation' ';'
 
16496
       && lk != 27232               // 'comment' ';'
 
16497
       && lk != 27233               // 'constraint' ';'
 
16498
       && lk != 27234               // 'construction' ';'
 
16499
       && lk != 27237               // 'context' ';'
 
16500
       && lk != 27238               // 'continue' ';'
 
16501
       && lk != 27239               // 'copy' ';'
 
16502
       && lk != 27240               // 'copy-namespaces' ';'
 
16503
       && lk != 27241               // 'count' ';'
 
16504
       && lk != 27242               // 'decimal-format' ';'
 
16505
       && lk != 27244               // 'declare' ';'
 
16506
       && lk != 27245               // 'default' ';'
 
16507
       && lk != 27246               // 'delete' ';'
 
16508
       && lk != 27247               // 'descendant' ';'
 
16509
       && lk != 27248               // 'descendant-or-self' ';'
 
16510
       && lk != 27249               // 'descending' ';'
 
16511
       && lk != 27254               // 'div' ';'
 
16512
       && lk != 27255               // 'document' ';'
 
16513
       && lk != 27256               // 'document-node' ';'
 
16514
       && lk != 27257               // 'element' ';'
 
16515
       && lk != 27258               // 'else' ';'
 
16516
       && lk != 27259               // 'empty' ';'
 
16517
       && lk != 27260               // 'empty-sequence' ';'
 
16518
       && lk != 27261               // 'encoding' ';'
 
16519
       && lk != 27262               // 'end' ';'
 
16520
       && lk != 27264               // 'eq' ';'
 
16521
       && lk != 27265               // 'every' ';'
 
16522
       && lk != 27267               // 'except' ';'
 
16523
       && lk != 27268               // 'exit' ';'
 
16524
       && lk != 27269               // 'external' ';'
 
16525
       && lk != 27270               // 'first' ';'
 
16526
       && lk != 27271               // 'following' ';'
 
16527
       && lk != 27272               // 'following-sibling' ';'
 
16528
       && lk != 27273               // 'for' ';'
 
16529
       && lk != 27277               // 'ft-option' ';'
 
16530
       && lk != 27281               // 'function' ';'
 
16531
       && lk != 27282               // 'ge' ';'
 
16532
       && lk != 27284               // 'group' ';'
 
16533
       && lk != 27286               // 'gt' ';'
 
16534
       && lk != 27287               // 'idiv' ';'
 
16535
       && lk != 27288               // 'if' ';'
 
16536
       && lk != 27289               // 'import' ';'
 
16537
       && lk != 27290               // 'in' ';'
 
16538
       && lk != 27291               // 'index' ';'
 
16539
       && lk != 27295               // 'insert' ';'
 
16540
       && lk != 27296               // 'instance' ';'
 
16541
       && lk != 27297               // 'integrity' ';'
 
16542
       && lk != 27298               // 'intersect' ';'
 
16543
       && lk != 27299               // 'into' ';'
 
16544
       && lk != 27300               // 'is' ';'
 
16545
       && lk != 27301               // 'item' ';'
 
16546
       && lk != 27303               // 'json-item' ';'
 
16547
       && lk != 27306               // 'last' ';'
 
16548
       && lk != 27307               // 'lax' ';'
 
16549
       && lk != 27308               // 'le' ';'
 
16550
       && lk != 27310               // 'let' ';'
 
16551
       && lk != 27312               // 'loop' ';'
 
16552
       && lk != 27314               // 'lt' ';'
 
16553
       && lk != 27316               // 'mod' ';'
 
16554
       && lk != 27317               // 'modify' ';'
 
16555
       && lk != 27318               // 'module' ';'
 
16556
       && lk != 27320               // 'namespace' ';'
 
16557
       && lk != 27321               // 'namespace-node' ';'
 
16558
       && lk != 27322               // 'ne' ';'
 
16559
       && lk != 27327               // 'node' ';'
 
16560
       && lk != 27328               // 'nodes' ';'
 
16561
       && lk != 27330               // 'object' ';'
 
16562
       && lk != 27334               // 'only' ';'
 
16563
       && lk != 27335               // 'option' ';'
 
16564
       && lk != 27336               // 'or' ';'
 
16565
       && lk != 27337               // 'order' ';'
 
16566
       && lk != 27338               // 'ordered' ';'
 
16567
       && lk != 27339               // 'ordering' ';'
 
16568
       && lk != 27342               // 'parent' ';'
 
16569
       && lk != 27348               // 'preceding' ';'
 
16570
       && lk != 27349               // 'preceding-sibling' ';'
 
16571
       && lk != 27352               // 'processing-instruction' ';'
 
16572
       && lk != 27354               // 'rename' ';'
 
16573
       && lk != 27355               // 'replace' ';'
 
16574
       && lk != 27356               // 'return' ';'
 
16575
       && lk != 27357               // 'returning' ';'
 
16576
       && lk != 27358               // 'revalidation' ';'
 
16577
       && lk != 27360               // 'satisfies' ';'
 
16578
       && lk != 27361               // 'schema' ';'
 
16579
       && lk != 27362               // 'schema-attribute' ';'
 
16580
       && lk != 27363               // 'schema-element' ';'
 
16581
       && lk != 27364               // 'score' ';'
 
16582
       && lk != 27365               // 'self' ';'
 
16583
       && lk != 27370               // 'sliding' ';'
 
16584
       && lk != 27371               // 'some' ';'
 
16585
       && lk != 27372               // 'stable' ';'
 
16586
       && lk != 27373               // 'start' ';'
 
16587
       && lk != 27376               // 'strict' ';'
 
16588
       && lk != 27379               // 'switch' ';'
 
16589
       && lk != 27380               // 'text' ';'
 
16590
       && lk != 27384               // 'to' ';'
 
16591
       && lk != 27385               // 'treat' ';'
 
16592
       && lk != 27386               // 'try' ';'
 
16593
       && lk != 27387               // 'tumbling' ';'
 
16594
       && lk != 27388               // 'type' ';'
 
16595
       && lk != 27389               // 'typeswitch' ';'
 
16596
       && lk != 27390               // 'union' ';'
 
16597
       && lk != 27392               // 'unordered' ';'
 
16598
       && lk != 27393               // 'updating' ';'
 
16599
       && lk != 27396               // 'validate' ';'
 
16600
       && lk != 27397               // 'value' ';'
 
16601
       && lk != 27398               // 'variable' ';'
 
16602
       && lk != 27399               // 'version' ';'
 
16603
       && lk != 27402               // 'where' ';'
 
16604
       && lk != 27403               // 'while' ';'
 
16605
       && lk != 27406               // 'with' ';'
 
16606
       && lk != 27410               // 'xquery' ';'
 
16607
       && lk != 90198               // 'break' 'loop'
 
16608
       && lk != 90214               // 'continue' 'loop'
 
16609
       && lk != 113284              // 'exit' 'returning'
 
16610
       && lk != 144389              // Wildcard '}'
 
16611
       && lk != 144390              // EQName^Token '}'
 
16612
       && lk != 144392              // IntegerLiteral '}'
 
16613
       && lk != 144393              // DecimalLiteral '}'
 
16614
       && lk != 144394              // DoubleLiteral '}'
 
16615
       && lk != 144395              // StringLiteral '}'
 
16616
       && lk != 144428              // '.' '}'
 
16617
       && lk != 144429              // '..' '}'
 
16618
       && lk != 144430              // '/' '}'
 
16619
       && lk != 144454              // 'after' '}'
 
16620
       && lk != 144456              // 'allowing' '}'
 
16621
       && lk != 144457              // 'ancestor' '}'
 
16622
       && lk != 144458              // 'ancestor-or-self' '}'
 
16623
       && lk != 144459              // 'and' '}'
 
16624
       && lk != 144462              // 'array' '}'
 
16625
       && lk != 144463              // 'as' '}'
 
16626
       && lk != 144464              // 'ascending' '}'
 
16627
       && lk != 144465              // 'at' '}'
 
16628
       && lk != 144466              // 'attribute' '}'
 
16629
       && lk != 144467              // 'base-uri' '}'
 
16630
       && lk != 144468              // 'before' '}'
 
16631
       && lk != 144469              // 'boundary-space' '}'
 
16632
       && lk != 144470              // 'break' '}'
 
16633
       && lk != 144472              // 'case' '}'
 
16634
       && lk != 144473              // 'cast' '}'
 
16635
       && lk != 144474              // 'castable' '}'
 
16636
       && lk != 144475              // 'catch' '}'
 
16637
       && lk != 144477              // 'child' '}'
 
16638
       && lk != 144478              // 'collation' '}'
 
16639
       && lk != 144480              // 'comment' '}'
 
16640
       && lk != 144481              // 'constraint' '}'
 
16641
       && lk != 144482              // 'construction' '}'
 
16642
       && lk != 144485              // 'context' '}'
 
16643
       && lk != 144486              // 'continue' '}'
 
16644
       && lk != 144487              // 'copy' '}'
 
16645
       && lk != 144488              // 'copy-namespaces' '}'
 
16646
       && lk != 144489              // 'count' '}'
 
16647
       && lk != 144490              // 'decimal-format' '}'
 
16648
       && lk != 144492              // 'declare' '}'
 
16649
       && lk != 144493              // 'default' '}'
 
16650
       && lk != 144494              // 'delete' '}'
 
16651
       && lk != 144495              // 'descendant' '}'
 
16652
       && lk != 144496              // 'descendant-or-self' '}'
 
16653
       && lk != 144497              // 'descending' '}'
 
16654
       && lk != 144502              // 'div' '}'
 
16655
       && lk != 144503              // 'document' '}'
 
16656
       && lk != 144504              // 'document-node' '}'
 
16657
       && lk != 144505              // 'element' '}'
 
16658
       && lk != 144506              // 'else' '}'
 
16659
       && lk != 144507              // 'empty' '}'
 
16660
       && lk != 144508              // 'empty-sequence' '}'
 
16661
       && lk != 144509              // 'encoding' '}'
 
16662
       && lk != 144510              // 'end' '}'
 
16663
       && lk != 144512              // 'eq' '}'
 
16664
       && lk != 144513              // 'every' '}'
 
16665
       && lk != 144515              // 'except' '}'
 
16666
       && lk != 144516              // 'exit' '}'
 
16667
       && lk != 144517              // 'external' '}'
 
16668
       && lk != 144518              // 'first' '}'
 
16669
       && lk != 144519              // 'following' '}'
 
16670
       && lk != 144520              // 'following-sibling' '}'
 
16671
       && lk != 144521              // 'for' '}'
 
16672
       && lk != 144525              // 'ft-option' '}'
 
16673
       && lk != 144529              // 'function' '}'
 
16674
       && lk != 144530              // 'ge' '}'
 
16675
       && lk != 144532              // 'group' '}'
 
16676
       && lk != 144534              // 'gt' '}'
 
16677
       && lk != 144535              // 'idiv' '}'
 
16678
       && lk != 144536              // 'if' '}'
 
16679
       && lk != 144537              // 'import' '}'
 
16680
       && lk != 144538              // 'in' '}'
 
16681
       && lk != 144539              // 'index' '}'
 
16682
       && lk != 144543              // 'insert' '}'
 
16683
       && lk != 144544              // 'instance' '}'
 
16684
       && lk != 144545              // 'integrity' '}'
 
16685
       && lk != 144546              // 'intersect' '}'
 
16686
       && lk != 144547              // 'into' '}'
 
16687
       && lk != 144548              // 'is' '}'
 
16688
       && lk != 144549              // 'item' '}'
 
16689
       && lk != 144551              // 'json-item' '}'
 
16690
       && lk != 144554              // 'last' '}'
 
16691
       && lk != 144555              // 'lax' '}'
 
16692
       && lk != 144556              // 'le' '}'
 
16693
       && lk != 144558              // 'let' '}'
 
16694
       && lk != 144560              // 'loop' '}'
 
16695
       && lk != 144562              // 'lt' '}'
 
16696
       && lk != 144564              // 'mod' '}'
 
16697
       && lk != 144565              // 'modify' '}'
 
16698
       && lk != 144566              // 'module' '}'
 
16699
       && lk != 144568              // 'namespace' '}'
 
16700
       && lk != 144569              // 'namespace-node' '}'
 
16701
       && lk != 144570              // 'ne' '}'
 
16702
       && lk != 144575              // 'node' '}'
 
16703
       && lk != 144576              // 'nodes' '}'
 
16704
       && lk != 144578              // 'object' '}'
 
16705
       && lk != 144582              // 'only' '}'
 
16706
       && lk != 144583              // 'option' '}'
 
16707
       && lk != 144584              // 'or' '}'
 
16708
       && lk != 144585              // 'order' '}'
 
16709
       && lk != 144586              // 'ordered' '}'
 
16710
       && lk != 144587              // 'ordering' '}'
 
16711
       && lk != 144590              // 'parent' '}'
 
16712
       && lk != 144596              // 'preceding' '}'
 
16713
       && lk != 144597              // 'preceding-sibling' '}'
 
16714
       && lk != 144600              // 'processing-instruction' '}'
 
16715
       && lk != 144602              // 'rename' '}'
 
16716
       && lk != 144603              // 'replace' '}'
 
16717
       && lk != 144604              // 'return' '}'
 
16718
       && lk != 144605              // 'returning' '}'
 
16719
       && lk != 144606              // 'revalidation' '}'
 
16720
       && lk != 144608              // 'satisfies' '}'
 
16721
       && lk != 144609              // 'schema' '}'
 
16722
       && lk != 144610              // 'schema-attribute' '}'
 
16723
       && lk != 144611              // 'schema-element' '}'
 
16724
       && lk != 144612              // 'score' '}'
 
16725
       && lk != 144613              // 'self' '}'
 
16726
       && lk != 144618              // 'sliding' '}'
 
16727
       && lk != 144619              // 'some' '}'
 
16728
       && lk != 144620              // 'stable' '}'
 
16729
       && lk != 144621              // 'start' '}'
 
16730
       && lk != 144624              // 'strict' '}'
 
16731
       && lk != 144627              // 'switch' '}'
 
16732
       && lk != 144628              // 'text' '}'
 
16733
       && lk != 144632              // 'to' '}'
 
16734
       && lk != 144633              // 'treat' '}'
 
16735
       && lk != 144634              // 'try' '}'
 
16736
       && lk != 144635              // 'tumbling' '}'
 
16737
       && lk != 144636              // 'type' '}'
 
16738
       && lk != 144637              // 'typeswitch' '}'
 
16739
       && lk != 144638              // 'union' '}'
 
16740
       && lk != 144640              // 'unordered' '}'
 
16741
       && lk != 144641              // 'updating' '}'
 
16742
       && lk != 144644              // 'validate' '}'
 
16743
       && lk != 144645              // 'value' '}'
 
16744
       && lk != 144646              // 'variable' '}'
 
16745
       && lk != 144647              // 'version' '}'
 
16746
       && lk != 144650              // 'where' '}'
 
16747
       && lk != 144651              // 'while' '}'
 
16748
       && lk != 144654              // 'with' '}'
 
16749
       && lk != 144658)             // 'xquery' '}'
 
16750
      {
 
16751
        lk = memoized(6, e0);
 
16752
        if (lk == 0)
 
16753
        {
 
16754
          var b0A = b0; var e0A = e0; var l1A = l1;
 
16755
          var b1A = b1; var e1A = e1; var l2A = l2;
 
16756
          var b2A = b2; var e2A = e2;
 
16757
          try
 
16758
          {
 
16759
            try_Statement();
 
16760
            memoize(6, e0A, -1);
 
16761
            continue;
 
16762
          }
 
16763
          catch (p1A)
 
16764
          {
 
16765
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
16766
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
16767
            b2 = b2A; e2 = e2A; end = e2A; }}
 
16768
            memoize(6, e0A, -2);
 
16769
            break;
 
16770
          }
 
16771
        }
 
16772
      }
 
16773
      if (lk != -1
 
16774
       && lk != 16134               // 'variable' '$'
 
16775
       && lk != 27141               // Wildcard ';'
 
16776
       && lk != 27142               // EQName^Token ';'
 
16777
       && lk != 27144               // IntegerLiteral ';'
 
16778
       && lk != 27145               // DecimalLiteral ';'
 
16779
       && lk != 27146               // DoubleLiteral ';'
 
16780
       && lk != 27147               // StringLiteral ';'
 
16781
       && lk != 27180               // '.' ';'
 
16782
       && lk != 27181               // '..' ';'
 
16783
       && lk != 27182               // '/' ';'
 
16784
       && lk != 27206               // 'after' ';'
 
16785
       && lk != 27208               // 'allowing' ';'
 
16786
       && lk != 27209               // 'ancestor' ';'
 
16787
       && lk != 27210               // 'ancestor-or-self' ';'
 
16788
       && lk != 27211               // 'and' ';'
 
16789
       && lk != 27214               // 'array' ';'
 
16790
       && lk != 27215               // 'as' ';'
 
16791
       && lk != 27216               // 'ascending' ';'
 
16792
       && lk != 27217               // 'at' ';'
 
16793
       && lk != 27218               // 'attribute' ';'
 
16794
       && lk != 27219               // 'base-uri' ';'
 
16795
       && lk != 27220               // 'before' ';'
 
16796
       && lk != 27221               // 'boundary-space' ';'
 
16797
       && lk != 27222               // 'break' ';'
 
16798
       && lk != 27224               // 'case' ';'
 
16799
       && lk != 27225               // 'cast' ';'
 
16800
       && lk != 27226               // 'castable' ';'
 
16801
       && lk != 27227               // 'catch' ';'
 
16802
       && lk != 27229               // 'child' ';'
 
16803
       && lk != 27230               // 'collation' ';'
 
16804
       && lk != 27232               // 'comment' ';'
 
16805
       && lk != 27233               // 'constraint' ';'
 
16806
       && lk != 27234               // 'construction' ';'
 
16807
       && lk != 27237               // 'context' ';'
 
16808
       && lk != 27238               // 'continue' ';'
 
16809
       && lk != 27239               // 'copy' ';'
 
16810
       && lk != 27240               // 'copy-namespaces' ';'
 
16811
       && lk != 27241               // 'count' ';'
 
16812
       && lk != 27242               // 'decimal-format' ';'
 
16813
       && lk != 27244               // 'declare' ';'
 
16814
       && lk != 27245               // 'default' ';'
 
16815
       && lk != 27246               // 'delete' ';'
 
16816
       && lk != 27247               // 'descendant' ';'
 
16817
       && lk != 27248               // 'descendant-or-self' ';'
 
16818
       && lk != 27249               // 'descending' ';'
 
16819
       && lk != 27254               // 'div' ';'
 
16820
       && lk != 27255               // 'document' ';'
 
16821
       && lk != 27256               // 'document-node' ';'
 
16822
       && lk != 27257               // 'element' ';'
 
16823
       && lk != 27258               // 'else' ';'
 
16824
       && lk != 27259               // 'empty' ';'
 
16825
       && lk != 27260               // 'empty-sequence' ';'
 
16826
       && lk != 27261               // 'encoding' ';'
 
16827
       && lk != 27262               // 'end' ';'
 
16828
       && lk != 27264               // 'eq' ';'
 
16829
       && lk != 27265               // 'every' ';'
 
16830
       && lk != 27267               // 'except' ';'
 
16831
       && lk != 27268               // 'exit' ';'
 
16832
       && lk != 27269               // 'external' ';'
 
16833
       && lk != 27270               // 'first' ';'
 
16834
       && lk != 27271               // 'following' ';'
 
16835
       && lk != 27272               // 'following-sibling' ';'
 
16836
       && lk != 27273               // 'for' ';'
 
16837
       && lk != 27277               // 'ft-option' ';'
 
16838
       && lk != 27281               // 'function' ';'
 
16839
       && lk != 27282               // 'ge' ';'
 
16840
       && lk != 27284               // 'group' ';'
 
16841
       && lk != 27286               // 'gt' ';'
 
16842
       && lk != 27287               // 'idiv' ';'
 
16843
       && lk != 27288               // 'if' ';'
 
16844
       && lk != 27289               // 'import' ';'
 
16845
       && lk != 27290               // 'in' ';'
 
16846
       && lk != 27291               // 'index' ';'
 
16847
       && lk != 27295               // 'insert' ';'
 
16848
       && lk != 27296               // 'instance' ';'
 
16849
       && lk != 27297               // 'integrity' ';'
 
16850
       && lk != 27298               // 'intersect' ';'
 
16851
       && lk != 27299               // 'into' ';'
 
16852
       && lk != 27300               // 'is' ';'
 
16853
       && lk != 27301               // 'item' ';'
 
16854
       && lk != 27303               // 'json-item' ';'
 
16855
       && lk != 27306               // 'last' ';'
 
16856
       && lk != 27307               // 'lax' ';'
 
16857
       && lk != 27308               // 'le' ';'
 
16858
       && lk != 27310               // 'let' ';'
 
16859
       && lk != 27312               // 'loop' ';'
 
16860
       && lk != 27314               // 'lt' ';'
 
16861
       && lk != 27316               // 'mod' ';'
 
16862
       && lk != 27317               // 'modify' ';'
 
16863
       && lk != 27318               // 'module' ';'
 
16864
       && lk != 27320               // 'namespace' ';'
 
16865
       && lk != 27321               // 'namespace-node' ';'
 
16866
       && lk != 27322               // 'ne' ';'
 
16867
       && lk != 27327               // 'node' ';'
 
16868
       && lk != 27328               // 'nodes' ';'
 
16869
       && lk != 27330               // 'object' ';'
 
16870
       && lk != 27334               // 'only' ';'
 
16871
       && lk != 27335               // 'option' ';'
 
16872
       && lk != 27336               // 'or' ';'
 
16873
       && lk != 27337               // 'order' ';'
 
16874
       && lk != 27338               // 'ordered' ';'
 
16875
       && lk != 27339               // 'ordering' ';'
 
16876
       && lk != 27342               // 'parent' ';'
 
16877
       && lk != 27348               // 'preceding' ';'
 
16878
       && lk != 27349               // 'preceding-sibling' ';'
 
16879
       && lk != 27352               // 'processing-instruction' ';'
 
16880
       && lk != 27354               // 'rename' ';'
 
16881
       && lk != 27355               // 'replace' ';'
 
16882
       && lk != 27356               // 'return' ';'
 
16883
       && lk != 27357               // 'returning' ';'
 
16884
       && lk != 27358               // 'revalidation' ';'
 
16885
       && lk != 27360               // 'satisfies' ';'
 
16886
       && lk != 27361               // 'schema' ';'
 
16887
       && lk != 27362               // 'schema-attribute' ';'
 
16888
       && lk != 27363               // 'schema-element' ';'
 
16889
       && lk != 27364               // 'score' ';'
 
16890
       && lk != 27365               // 'self' ';'
 
16891
       && lk != 27370               // 'sliding' ';'
 
16892
       && lk != 27371               // 'some' ';'
 
16893
       && lk != 27372               // 'stable' ';'
 
16894
       && lk != 27373               // 'start' ';'
 
16895
       && lk != 27376               // 'strict' ';'
 
16896
       && lk != 27379               // 'switch' ';'
 
16897
       && lk != 27380               // 'text' ';'
 
16898
       && lk != 27384               // 'to' ';'
 
16899
       && lk != 27385               // 'treat' ';'
 
16900
       && lk != 27386               // 'try' ';'
 
16901
       && lk != 27387               // 'tumbling' ';'
 
16902
       && lk != 27388               // 'type' ';'
 
16903
       && lk != 27389               // 'typeswitch' ';'
 
16904
       && lk != 27390               // 'union' ';'
 
16905
       && lk != 27392               // 'unordered' ';'
 
16906
       && lk != 27393               // 'updating' ';'
 
16907
       && lk != 27396               // 'validate' ';'
 
16908
       && lk != 27397               // 'value' ';'
 
16909
       && lk != 27398               // 'variable' ';'
 
16910
       && lk != 27399               // 'version' ';'
 
16911
       && lk != 27402               // 'where' ';'
 
16912
       && lk != 27403               // 'while' ';'
 
16913
       && lk != 27406               // 'with' ';'
 
16914
       && lk != 27410               // 'xquery' ';'
 
16915
       && lk != 90198               // 'break' 'loop'
 
16916
       && lk != 90214               // 'continue' 'loop'
 
16917
       && lk != 113284)             // 'exit' 'returning'
 
16918
      {
 
16919
        break;
 
16920
      }
 
16921
      try_Statement();
 
16922
    }
 
16923
  }
 
16924
 
 
16925
  function parse_StatementsAndExpr()
 
16926
  {
 
16927
    eventHandler.startNonterminal("StatementsAndExpr", e0);
 
16928
    parse_Statements();
 
16929
    whitespace();
 
16930
    parse_Expr();
 
16931
    eventHandler.endNonterminal("StatementsAndExpr", e0);
 
16932
  }
 
16933
 
 
16934
  function try_StatementsAndExpr()
 
16935
  {
 
16936
    try_Statements();
 
16937
    try_Expr();
 
16938
  }
 
16939
 
 
16940
  function parse_StatementsAndOptionalExpr()
 
16941
  {
 
16942
    eventHandler.startNonterminal("StatementsAndOptionalExpr", e0);
 
16943
    parse_Statements();
 
16944
    if (l1 != 25                    // EOF
 
16945
     && l1 != 282)                  // '}'
 
16946
    {
 
16947
      whitespace();
 
16948
      parse_Expr();
 
16949
    }
 
16950
    eventHandler.endNonterminal("StatementsAndOptionalExpr", e0);
 
16951
  }
 
16952
 
 
16953
  function try_StatementsAndOptionalExpr()
 
16954
  {
 
16955
    try_Statements();
 
16956
    if (l1 != 25                    // EOF
 
16957
     && l1 != 282)                  // '}'
 
16958
    {
 
16959
      try_Expr();
 
16960
    }
 
16961
  }
 
16962
 
 
16963
  function parse_Statement()
 
16964
  {
 
16965
    eventHandler.startNonterminal("Statement", e0);
 
16966
    switch (l1)
 
16967
    {
 
16968
    case 132:                       // 'exit'
 
16969
      lookahead2W(189);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
16970
      break;
 
16971
    case 137:                       // 'for'
 
16972
      lookahead2W(196);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
16973
      break;
 
16974
    case 174:                       // 'let'
 
16975
      lookahead2W(193);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
16976
      break;
 
16977
    case 250:                       // 'try'
 
16978
      lookahead2W(190);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
16979
      break;
 
16980
    case 262:                       // 'variable'
 
16981
      lookahead2W(187);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
16982
      break;
 
16983
    case 276:                       // '{'
 
16984
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
16985
      break;
 
16986
    case 31:                        // '$'
 
16987
    case 32:                        // '%'
 
16988
      lookahead2W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
16989
      break;
 
16990
    case 86:                        // 'break'
 
16991
    case 102:                       // 'continue'
 
16992
      lookahead2W(188);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
16993
      break;
 
16994
    case 152:                       // 'if'
 
16995
    case 243:                       // 'switch'
 
16996
    case 253:                       // 'typeswitch'
 
16997
    case 267:                       // 'while'
 
16998
      lookahead2W(185);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
16999
      break;
 
17000
    default:
 
17001
      lk = l1;
 
17002
    }
 
17003
    if (lk == 2836                  // '{' Wildcard
 
17004
     || lk == 3103                  // '$' EQName^Token
 
17005
     || lk == 3104                  // '%' EQName^Token
 
17006
     || lk == 3348                  // '{' EQName^Token
 
17007
     || lk == 4372                  // '{' IntegerLiteral
 
17008
     || lk == 4884                  // '{' DecimalLiteral
 
17009
     || lk == 5396                  // '{' DoubleLiteral
 
17010
     || lk == 5908                  // '{' StringLiteral
 
17011
     || lk == 16148                 // '{' '$'
 
17012
     || lk == 16660                 // '{' '%'
 
17013
     || lk == 17675                 // 'while' '('
 
17014
     || lk == 17684                 // '{' '('
 
17015
     || lk == 18196                 // '{' '(#'
 
17016
     || lk == 20756                 // '{' '+'
 
17017
     || lk == 21780                 // '{' '-'
 
17018
     || lk == 22804                 // '{' '.'
 
17019
     || lk == 23316                 // '{' '..'
 
17020
     || lk == 23828                 // '{' '/'
 
17021
     || lk == 24340                 // '{' '//'
 
17022
     || lk == 27924                 // '{' '<'
 
17023
     || lk == 28436                 // '{' '<!--'
 
17024
     || lk == 30484                 // '{' '<?'
 
17025
     || lk == 34068                 // '{' '@'
 
17026
     || lk == 35092                 // '{' '['
 
17027
     || lk == 35871                 // '$' 'after'
 
17028
     || lk == 35872                 // '%' 'after'
 
17029
     || lk == 36116                 // '{' 'after'
 
17030
     || lk == 36895                 // '$' 'allowing'
 
17031
     || lk == 36896                 // '%' 'allowing'
 
17032
     || lk == 37140                 // '{' 'allowing'
 
17033
     || lk == 37407                 // '$' 'ancestor'
 
17034
     || lk == 37408                 // '%' 'ancestor'
 
17035
     || lk == 37652                 // '{' 'ancestor'
 
17036
     || lk == 37919                 // '$' 'ancestor-or-self'
 
17037
     || lk == 37920                 // '%' 'ancestor-or-self'
 
17038
     || lk == 38164                 // '{' 'ancestor-or-self'
 
17039
     || lk == 38431                 // '$' 'and'
 
17040
     || lk == 38432                 // '%' 'and'
 
17041
     || lk == 38676                 // '{' 'and'
 
17042
     || lk == 39700                 // '{' 'append'
 
17043
     || lk == 39967                 // '$' 'array'
 
17044
     || lk == 39968                 // '%' 'array'
 
17045
     || lk == 40212                 // '{' 'array'
 
17046
     || lk == 40479                 // '$' 'as'
 
17047
     || lk == 40480                 // '%' 'as'
 
17048
     || lk == 40724                 // '{' 'as'
 
17049
     || lk == 40991                 // '$' 'ascending'
 
17050
     || lk == 40992                 // '%' 'ascending'
 
17051
     || lk == 41236                 // '{' 'ascending'
 
17052
     || lk == 41503                 // '$' 'at'
 
17053
     || lk == 41504                 // '%' 'at'
 
17054
     || lk == 41748                 // '{' 'at'
 
17055
     || lk == 42015                 // '$' 'attribute'
 
17056
     || lk == 42016                 // '%' 'attribute'
 
17057
     || lk == 42260                 // '{' 'attribute'
 
17058
     || lk == 42527                 // '$' 'base-uri'
 
17059
     || lk == 42528                 // '%' 'base-uri'
 
17060
     || lk == 42772                 // '{' 'base-uri'
 
17061
     || lk == 43039                 // '$' 'before'
 
17062
     || lk == 43040                 // '%' 'before'
 
17063
     || lk == 43284                 // '{' 'before'
 
17064
     || lk == 43551                 // '$' 'boundary-space'
 
17065
     || lk == 43552                 // '%' 'boundary-space'
 
17066
     || lk == 43796                 // '{' 'boundary-space'
 
17067
     || lk == 44063                 // '$' 'break'
 
17068
     || lk == 44064                 // '%' 'break'
 
17069
     || lk == 44308                 // '{' 'break'
 
17070
     || lk == 45087                 // '$' 'case'
 
17071
     || lk == 45088                 // '%' 'case'
 
17072
     || lk == 45332                 // '{' 'case'
 
17073
     || lk == 45599                 // '$' 'cast'
 
17074
     || lk == 45600                 // '%' 'cast'
 
17075
     || lk == 45844                 // '{' 'cast'
 
17076
     || lk == 46111                 // '$' 'castable'
 
17077
     || lk == 46112                 // '%' 'castable'
 
17078
     || lk == 46356                 // '{' 'castable'
 
17079
     || lk == 46623                 // '$' 'catch'
 
17080
     || lk == 46624                 // '%' 'catch'
 
17081
     || lk == 46868                 // '{' 'catch'
 
17082
     || lk == 47647                 // '$' 'child'
 
17083
     || lk == 47648                 // '%' 'child'
 
17084
     || lk == 47892                 // '{' 'child'
 
17085
     || lk == 48159                 // '$' 'collation'
 
17086
     || lk == 48160                 // '%' 'collation'
 
17087
     || lk == 48404                 // '{' 'collation'
 
17088
     || lk == 49183                 // '$' 'comment'
 
17089
     || lk == 49184                 // '%' 'comment'
 
17090
     || lk == 49428                 // '{' 'comment'
 
17091
     || lk == 49695                 // '$' 'constraint'
 
17092
     || lk == 49696                 // '%' 'constraint'
 
17093
     || lk == 49940                 // '{' 'constraint'
 
17094
     || lk == 50207                 // '$' 'construction'
 
17095
     || lk == 50208                 // '%' 'construction'
 
17096
     || lk == 50452                 // '{' 'construction'
 
17097
     || lk == 51743                 // '$' 'context'
 
17098
     || lk == 51744                 // '%' 'context'
 
17099
     || lk == 51988                 // '{' 'context'
 
17100
     || lk == 52255                 // '$' 'continue'
 
17101
     || lk == 52256                 // '%' 'continue'
 
17102
     || lk == 52500                 // '{' 'continue'
 
17103
     || lk == 52767                 // '$' 'copy'
 
17104
     || lk == 52768                 // '%' 'copy'
 
17105
     || lk == 53012                 // '{' 'copy'
 
17106
     || lk == 53279                 // '$' 'copy-namespaces'
 
17107
     || lk == 53280                 // '%' 'copy-namespaces'
 
17108
     || lk == 53524                 // '{' 'copy-namespaces'
 
17109
     || lk == 53791                 // '$' 'count'
 
17110
     || lk == 53792                 // '%' 'count'
 
17111
     || lk == 54036                 // '{' 'count'
 
17112
     || lk == 54303                 // '$' 'decimal-format'
 
17113
     || lk == 54304                 // '%' 'decimal-format'
 
17114
     || lk == 54548                 // '{' 'decimal-format'
 
17115
     || lk == 55327                 // '$' 'declare'
 
17116
     || lk == 55328                 // '%' 'declare'
 
17117
     || lk == 55572                 // '{' 'declare'
 
17118
     || lk == 55839                 // '$' 'default'
 
17119
     || lk == 55840                 // '%' 'default'
 
17120
     || lk == 56084                 // '{' 'default'
 
17121
     || lk == 56351                 // '$' 'delete'
 
17122
     || lk == 56352                 // '%' 'delete'
 
17123
     || lk == 56596                 // '{' 'delete'
 
17124
     || lk == 56863                 // '$' 'descendant'
 
17125
     || lk == 56864                 // '%' 'descendant'
 
17126
     || lk == 57108                 // '{' 'descendant'
 
17127
     || lk == 57375                 // '$' 'descendant-or-self'
 
17128
     || lk == 57376                 // '%' 'descendant-or-self'
 
17129
     || lk == 57620                 // '{' 'descendant-or-self'
 
17130
     || lk == 57887                 // '$' 'descending'
 
17131
     || lk == 57888                 // '%' 'descending'
 
17132
     || lk == 58132                 // '{' 'descending'
 
17133
     || lk == 60447                 // '$' 'div'
 
17134
     || lk == 60448                 // '%' 'div'
 
17135
     || lk == 60692                 // '{' 'div'
 
17136
     || lk == 60959                 // '$' 'document'
 
17137
     || lk == 60960                 // '%' 'document'
 
17138
     || lk == 61204                 // '{' 'document'
 
17139
     || lk == 61471                 // '$' 'document-node'
 
17140
     || lk == 61472                 // '%' 'document-node'
 
17141
     || lk == 61716                 // '{' 'document-node'
 
17142
     || lk == 61983                 // '$' 'element'
 
17143
     || lk == 61984                 // '%' 'element'
 
17144
     || lk == 62228                 // '{' 'element'
 
17145
     || lk == 62495                 // '$' 'else'
 
17146
     || lk == 62496                 // '%' 'else'
 
17147
     || lk == 62740                 // '{' 'else'
 
17148
     || lk == 63007                 // '$' 'empty'
 
17149
     || lk == 63008                 // '%' 'empty'
 
17150
     || lk == 63252                 // '{' 'empty'
 
17151
     || lk == 63519                 // '$' 'empty-sequence'
 
17152
     || lk == 63520                 // '%' 'empty-sequence'
 
17153
     || lk == 63764                 // '{' 'empty-sequence'
 
17154
     || lk == 64031                 // '$' 'encoding'
 
17155
     || lk == 64032                 // '%' 'encoding'
 
17156
     || lk == 64276                 // '{' 'encoding'
 
17157
     || lk == 64543                 // '$' 'end'
 
17158
     || lk == 64544                 // '%' 'end'
 
17159
     || lk == 64788                 // '{' 'end'
 
17160
     || lk == 65567                 // '$' 'eq'
 
17161
     || lk == 65568                 // '%' 'eq'
 
17162
     || lk == 65812                 // '{' 'eq'
 
17163
     || lk == 66079                 // '$' 'every'
 
17164
     || lk == 66080                 // '%' 'every'
 
17165
     || lk == 66324                 // '{' 'every'
 
17166
     || lk == 67103                 // '$' 'except'
 
17167
     || lk == 67104                 // '%' 'except'
 
17168
     || lk == 67348                 // '{' 'except'
 
17169
     || lk == 67615                 // '$' 'exit'
 
17170
     || lk == 67616                 // '%' 'exit'
 
17171
     || lk == 67860                 // '{' 'exit'
 
17172
     || lk == 68127                 // '$' 'external'
 
17173
     || lk == 68128                 // '%' 'external'
 
17174
     || lk == 68372                 // '{' 'external'
 
17175
     || lk == 68639                 // '$' 'first'
 
17176
     || lk == 68640                 // '%' 'first'
 
17177
     || lk == 68884                 // '{' 'first'
 
17178
     || lk == 69151                 // '$' 'following'
 
17179
     || lk == 69152                 // '%' 'following'
 
17180
     || lk == 69396                 // '{' 'following'
 
17181
     || lk == 69663                 // '$' 'following-sibling'
 
17182
     || lk == 69664                 // '%' 'following-sibling'
 
17183
     || lk == 69908                 // '{' 'following-sibling'
 
17184
     || lk == 70175                 // '$' 'for'
 
17185
     || lk == 70176                 // '%' 'for'
 
17186
     || lk == 70420                 // '{' 'for'
 
17187
     || lk == 72223                 // '$' 'ft-option'
 
17188
     || lk == 72224                 // '%' 'ft-option'
 
17189
     || lk == 72468                 // '{' 'ft-option'
 
17190
     || lk == 74271                 // '$' 'function'
 
17191
     || lk == 74272                 // '%' 'function'
 
17192
     || lk == 74516                 // '{' 'function'
 
17193
     || lk == 74783                 // '$' 'ge'
 
17194
     || lk == 74784                 // '%' 'ge'
 
17195
     || lk == 75028                 // '{' 'ge'
 
17196
     || lk == 75807                 // '$' 'group'
 
17197
     || lk == 75808                 // '%' 'group'
 
17198
     || lk == 76052                 // '{' 'group'
 
17199
     || lk == 76831                 // '$' 'gt'
 
17200
     || lk == 76832                 // '%' 'gt'
 
17201
     || lk == 77076                 // '{' 'gt'
 
17202
     || lk == 77343                 // '$' 'idiv'
 
17203
     || lk == 77344                 // '%' 'idiv'
 
17204
     || lk == 77588                 // '{' 'idiv'
 
17205
     || lk == 77855                 // '$' 'if'
 
17206
     || lk == 77856                 // '%' 'if'
 
17207
     || lk == 78100                 // '{' 'if'
 
17208
     || lk == 78367                 // '$' 'import'
 
17209
     || lk == 78368                 // '%' 'import'
 
17210
     || lk == 78612                 // '{' 'import'
 
17211
     || lk == 78879                 // '$' 'in'
 
17212
     || lk == 78880                 // '%' 'in'
 
17213
     || lk == 79124                 // '{' 'in'
 
17214
     || lk == 79391                 // '$' 'index'
 
17215
     || lk == 79392                 // '%' 'index'
 
17216
     || lk == 79636                 // '{' 'index'
 
17217
     || lk == 81439                 // '$' 'insert'
 
17218
     || lk == 81440                 // '%' 'insert'
 
17219
     || lk == 81684                 // '{' 'insert'
 
17220
     || lk == 81951                 // '$' 'instance'
 
17221
     || lk == 81952                 // '%' 'instance'
 
17222
     || lk == 82196                 // '{' 'instance'
 
17223
     || lk == 82463                 // '$' 'integrity'
 
17224
     || lk == 82464                 // '%' 'integrity'
 
17225
     || lk == 82708                 // '{' 'integrity'
 
17226
     || lk == 82975                 // '$' 'intersect'
 
17227
     || lk == 82976                 // '%' 'intersect'
 
17228
     || lk == 83220                 // '{' 'intersect'
 
17229
     || lk == 83487                 // '$' 'into'
 
17230
     || lk == 83488                 // '%' 'into'
 
17231
     || lk == 83732                 // '{' 'into'
 
17232
     || lk == 83999                 // '$' 'is'
 
17233
     || lk == 84000                 // '%' 'is'
 
17234
     || lk == 84244                 // '{' 'is'
 
17235
     || lk == 84511                 // '$' 'item'
 
17236
     || lk == 84512                 // '%' 'item'
 
17237
     || lk == 84756                 // '{' 'item'
 
17238
     || lk == 85535                 // '$' 'json-item'
 
17239
     || lk == 85536                 // '%' 'json-item'
 
17240
     || lk == 85780                 // '{' 'json-item'
 
17241
     || lk == 87071                 // '$' 'last'
 
17242
     || lk == 87072                 // '%' 'last'
 
17243
     || lk == 87316                 // '{' 'last'
 
17244
     || lk == 87583                 // '$' 'lax'
 
17245
     || lk == 87584                 // '%' 'lax'
 
17246
     || lk == 87828                 // '{' 'lax'
 
17247
     || lk == 88095                 // '$' 'le'
 
17248
     || lk == 88096                 // '%' 'le'
 
17249
     || lk == 88340                 // '{' 'le'
 
17250
     || lk == 89119                 // '$' 'let'
 
17251
     || lk == 89120                 // '%' 'let'
 
17252
     || lk == 89364                 // '{' 'let'
 
17253
     || lk == 90143                 // '$' 'loop'
 
17254
     || lk == 90144                 // '%' 'loop'
 
17255
     || lk == 90388                 // '{' 'loop'
 
17256
     || lk == 91167                 // '$' 'lt'
 
17257
     || lk == 91168                 // '%' 'lt'
 
17258
     || lk == 91412                 // '{' 'lt'
 
17259
     || lk == 92191                 // '$' 'mod'
 
17260
     || lk == 92192                 // '%' 'mod'
 
17261
     || lk == 92436                 // '{' 'mod'
 
17262
     || lk == 92703                 // '$' 'modify'
 
17263
     || lk == 92704                 // '%' 'modify'
 
17264
     || lk == 92948                 // '{' 'modify'
 
17265
     || lk == 93215                 // '$' 'module'
 
17266
     || lk == 93216                 // '%' 'module'
 
17267
     || lk == 93460                 // '{' 'module'
 
17268
     || lk == 94239                 // '$' 'namespace'
 
17269
     || lk == 94240                 // '%' 'namespace'
 
17270
     || lk == 94484                 // '{' 'namespace'
 
17271
     || lk == 94751                 // '$' 'namespace-node'
 
17272
     || lk == 94752                 // '%' 'namespace-node'
 
17273
     || lk == 94996                 // '{' 'namespace-node'
 
17274
     || lk == 95263                 // '$' 'ne'
 
17275
     || lk == 95264                 // '%' 'ne'
 
17276
     || lk == 95508                 // '{' 'ne'
 
17277
     || lk == 97823                 // '$' 'node'
 
17278
     || lk == 97824                 // '%' 'node'
 
17279
     || lk == 98068                 // '{' 'node'
 
17280
     || lk == 98335                 // '$' 'nodes'
 
17281
     || lk == 98336                 // '%' 'nodes'
 
17282
     || lk == 98580                 // '{' 'nodes'
 
17283
     || lk == 99359                 // '$' 'object'
 
17284
     || lk == 99360                 // '%' 'object'
 
17285
     || lk == 99604                 // '{' 'object'
 
17286
     || lk == 101407                // '$' 'only'
 
17287
     || lk == 101408                // '%' 'only'
 
17288
     || lk == 101652                // '{' 'only'
 
17289
     || lk == 101919                // '$' 'option'
 
17290
     || lk == 101920                // '%' 'option'
 
17291
     || lk == 102164                // '{' 'option'
 
17292
     || lk == 102431                // '$' 'or'
 
17293
     || lk == 102432                // '%' 'or'
 
17294
     || lk == 102676                // '{' 'or'
 
17295
     || lk == 102943                // '$' 'order'
 
17296
     || lk == 102944                // '%' 'order'
 
17297
     || lk == 103188                // '{' 'order'
 
17298
     || lk == 103455                // '$' 'ordered'
 
17299
     || lk == 103456                // '%' 'ordered'
 
17300
     || lk == 103700                // '{' 'ordered'
 
17301
     || lk == 103967                // '$' 'ordering'
 
17302
     || lk == 103968                // '%' 'ordering'
 
17303
     || lk == 104212                // '{' 'ordering'
 
17304
     || lk == 105503                // '$' 'parent'
 
17305
     || lk == 105504                // '%' 'parent'
 
17306
     || lk == 105748                // '{' 'parent'
 
17307
     || lk == 108575                // '$' 'preceding'
 
17308
     || lk == 108576                // '%' 'preceding'
 
17309
     || lk == 108820                // '{' 'preceding'
 
17310
     || lk == 109087                // '$' 'preceding-sibling'
 
17311
     || lk == 109088                // '%' 'preceding-sibling'
 
17312
     || lk == 109332                // '{' 'preceding-sibling'
 
17313
     || lk == 110623                // '$' 'processing-instruction'
 
17314
     || lk == 110624                // '%' 'processing-instruction'
 
17315
     || lk == 110868                // '{' 'processing-instruction'
 
17316
     || lk == 111647                // '$' 'rename'
 
17317
     || lk == 111648                // '%' 'rename'
 
17318
     || lk == 111892                // '{' 'rename'
 
17319
     || lk == 112159                // '$' 'replace'
 
17320
     || lk == 112160                // '%' 'replace'
 
17321
     || lk == 112404                // '{' 'replace'
 
17322
     || lk == 112671                // '$' 'return'
 
17323
     || lk == 112672                // '%' 'return'
 
17324
     || lk == 112916                // '{' 'return'
 
17325
     || lk == 113183                // '$' 'returning'
 
17326
     || lk == 113184                // '%' 'returning'
 
17327
     || lk == 113428                // '{' 'returning'
 
17328
     || lk == 113695                // '$' 'revalidation'
 
17329
     || lk == 113696                // '%' 'revalidation'
 
17330
     || lk == 113940                // '{' 'revalidation'
 
17331
     || lk == 114719                // '$' 'satisfies'
 
17332
     || lk == 114720                // '%' 'satisfies'
 
17333
     || lk == 114964                // '{' 'satisfies'
 
17334
     || lk == 115231                // '$' 'schema'
 
17335
     || lk == 115232                // '%' 'schema'
 
17336
     || lk == 115476                // '{' 'schema'
 
17337
     || lk == 115743                // '$' 'schema-attribute'
 
17338
     || lk == 115744                // '%' 'schema-attribute'
 
17339
     || lk == 115988                // '{' 'schema-attribute'
 
17340
     || lk == 116255                // '$' 'schema-element'
 
17341
     || lk == 116256                // '%' 'schema-element'
 
17342
     || lk == 116500                // '{' 'schema-element'
 
17343
     || lk == 116767                // '$' 'score'
 
17344
     || lk == 116768                // '%' 'score'
 
17345
     || lk == 117012                // '{' 'score'
 
17346
     || lk == 117279                // '$' 'self'
 
17347
     || lk == 117280                // '%' 'self'
 
17348
     || lk == 117524                // '{' 'self'
 
17349
     || lk == 119839                // '$' 'sliding'
 
17350
     || lk == 119840                // '%' 'sliding'
 
17351
     || lk == 120084                // '{' 'sliding'
 
17352
     || lk == 120351                // '$' 'some'
 
17353
     || lk == 120352                // '%' 'some'
 
17354
     || lk == 120596                // '{' 'some'
 
17355
     || lk == 120863                // '$' 'stable'
 
17356
     || lk == 120864                // '%' 'stable'
 
17357
     || lk == 121108                // '{' 'stable'
 
17358
     || lk == 121375                // '$' 'start'
 
17359
     || lk == 121376                // '%' 'start'
 
17360
     || lk == 121620                // '{' 'start'
 
17361
     || lk == 122911                // '$' 'strict'
 
17362
     || lk == 122912                // '%' 'strict'
 
17363
     || lk == 123156                // '{' 'strict'
 
17364
     || lk == 124447                // '$' 'switch'
 
17365
     || lk == 124448                // '%' 'switch'
 
17366
     || lk == 124692                // '{' 'switch'
 
17367
     || lk == 124959                // '$' 'text'
 
17368
     || lk == 124960                // '%' 'text'
 
17369
     || lk == 125204                // '{' 'text'
 
17370
     || lk == 127007                // '$' 'to'
 
17371
     || lk == 127008                // '%' 'to'
 
17372
     || lk == 127252                // '{' 'to'
 
17373
     || lk == 127519                // '$' 'treat'
 
17374
     || lk == 127520                // '%' 'treat'
 
17375
     || lk == 127764                // '{' 'treat'
 
17376
     || lk == 128031                // '$' 'try'
 
17377
     || lk == 128032                // '%' 'try'
 
17378
     || lk == 128276                // '{' 'try'
 
17379
     || lk == 128543                // '$' 'tumbling'
 
17380
     || lk == 128544                // '%' 'tumbling'
 
17381
     || lk == 128788                // '{' 'tumbling'
 
17382
     || lk == 129055                // '$' 'type'
 
17383
     || lk == 129056                // '%' 'type'
 
17384
     || lk == 129300                // '{' 'type'
 
17385
     || lk == 129567                // '$' 'typeswitch'
 
17386
     || lk == 129568                // '%' 'typeswitch'
 
17387
     || lk == 129812                // '{' 'typeswitch'
 
17388
     || lk == 130079                // '$' 'union'
 
17389
     || lk == 130080                // '%' 'union'
 
17390
     || lk == 130324                // '{' 'union'
 
17391
     || lk == 131103                // '$' 'unordered'
 
17392
     || lk == 131104                // '%' 'unordered'
 
17393
     || lk == 131348                // '{' 'unordered'
 
17394
     || lk == 131615                // '$' 'updating'
 
17395
     || lk == 131616                // '%' 'updating'
 
17396
     || lk == 131860                // '{' 'updating'
 
17397
     || lk == 133151                // '$' 'validate'
 
17398
     || lk == 133152                // '%' 'validate'
 
17399
     || lk == 133396                // '{' 'validate'
 
17400
     || lk == 133663                // '$' 'value'
 
17401
     || lk == 133664                // '%' 'value'
 
17402
     || lk == 133908                // '{' 'value'
 
17403
     || lk == 134175                // '$' 'variable'
 
17404
     || lk == 134176                // '%' 'variable'
 
17405
     || lk == 134420                // '{' 'variable'
 
17406
     || lk == 134687                // '$' 'version'
 
17407
     || lk == 134688                // '%' 'version'
 
17408
     || lk == 134932                // '{' 'version'
 
17409
     || lk == 136223                // '$' 'where'
 
17410
     || lk == 136224                // '%' 'where'
 
17411
     || lk == 136468                // '{' 'where'
 
17412
     || lk == 136735                // '$' 'while'
 
17413
     || lk == 136736                // '%' 'while'
 
17414
     || lk == 136980                // '{' 'while'
 
17415
     || lk == 138271                // '$' 'with'
 
17416
     || lk == 138272                // '%' 'with'
 
17417
     || lk == 138516                // '{' 'with'
 
17418
     || lk == 140319                // '$' 'xquery'
 
17419
     || lk == 140320                // '%' 'xquery'
 
17420
     || lk == 140564                // '{' 'xquery'
 
17421
     || lk == 141588                // '{' '{'
 
17422
     || lk == 142612                // '{' '{|'
 
17423
     || lk == 144660)               // '{' '}'
 
17424
    {
 
17425
      lk = memoized(7, e0);
 
17426
      if (lk == 0)
 
17427
      {
 
17428
        var b0A = b0; var e0A = e0; var l1A = l1;
 
17429
        var b1A = b1; var e1A = e1; var l2A = l2;
 
17430
        var b2A = b2; var e2A = e2;
 
17431
        try
 
17432
        {
 
17433
          try_ApplyStatement();
 
17434
          lk = -1;
 
17435
        }
 
17436
        catch (p1A)
 
17437
        {
 
17438
          try
 
17439
          {
 
17440
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
17441
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
17442
            b2 = b2A; e2 = e2A; end = e2A; }}
 
17443
            try_AssignStatement();
 
17444
            lk = -2;
 
17445
          }
 
17446
          catch (p2A)
 
17447
          {
 
17448
            try
 
17449
            {
 
17450
              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
17451
              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
17452
              b2 = b2A; e2 = e2A; end = e2A; }}
 
17453
              try_BlockStatement();
 
17454
              lk = -3;
 
17455
            }
 
17456
            catch (p3A)
 
17457
            {
 
17458
              try
 
17459
              {
 
17460
                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
17461
                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
17462
                b2 = b2A; e2 = e2A; end = e2A; }}
 
17463
                try_VarDeclStatement();
 
17464
                lk = -12;
 
17465
              }
 
17466
              catch (p12A)
 
17467
              {
 
17468
                lk = -13;
 
17469
              }
 
17470
            }
 
17471
          }
 
17472
        }
 
17473
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
17474
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
17475
        b2 = b2A; e2 = e2A; end = e2A; }}
 
17476
        memoize(7, e0, lk);
 
17477
      }
 
17478
    }
 
17479
    switch (lk)
 
17480
    {
 
17481
    case -2:
 
17482
      parse_AssignStatement();
 
17483
      break;
 
17484
    case -3:
 
17485
      parse_BlockStatement();
 
17486
      break;
 
17487
    case 90198:                     // 'break' 'loop'
 
17488
      parse_BreakStatement();
 
17489
      break;
 
17490
    case 90214:                     // 'continue' 'loop'
 
17491
      parse_ContinueStatement();
 
17492
      break;
 
17493
    case 113284:                    // 'exit' 'returning'
 
17494
      parse_ExitStatement();
 
17495
      break;
 
17496
    case 16009:                     // 'for' '$'
 
17497
    case 16046:                     // 'let' '$'
 
17498
    case 116910:                    // 'let' 'score'
 
17499
    case 119945:                    // 'for' 'sliding'
 
17500
    case 128649:                    // 'for' 'tumbling'
 
17501
      parse_FLWORStatement();
 
17502
      break;
 
17503
    case 17560:                     // 'if' '('
 
17504
      parse_IfStatement();
 
17505
      break;
 
17506
    case 17651:                     // 'switch' '('
 
17507
      parse_SwitchStatement();
 
17508
      break;
 
17509
    case 141562:                    // 'try' '{'
 
17510
      parse_TryCatchStatement();
 
17511
      break;
 
17512
    case 17661:                     // 'typeswitch' '('
 
17513
      parse_TypeswitchStatement();
 
17514
      break;
 
17515
    case -12:
 
17516
    case 16134:                     // 'variable' '$'
 
17517
      parse_VarDeclStatement();
 
17518
      break;
 
17519
    case -13:
 
17520
      parse_WhileStatement();
 
17521
      break;
 
17522
    default:
 
17523
      parse_ApplyStatement();
 
17524
    }
 
17525
    eventHandler.endNonterminal("Statement", e0);
 
17526
  }
 
17527
 
 
17528
  function try_Statement()
 
17529
  {
 
17530
    switch (l1)
 
17531
    {
 
17532
    case 132:                       // 'exit'
 
17533
      lookahead2W(189);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
17534
      break;
 
17535
    case 137:                       // 'for'
 
17536
      lookahead2W(196);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
17537
      break;
 
17538
    case 174:                       // 'let'
 
17539
      lookahead2W(193);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
17540
      break;
 
17541
    case 250:                       // 'try'
 
17542
      lookahead2W(190);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
17543
      break;
 
17544
    case 262:                       // 'variable'
 
17545
      lookahead2W(187);             // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
 
17546
      break;
 
17547
    case 276:                       // '{'
 
17548
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
17549
      break;
 
17550
    case 31:                        // '$'
 
17551
    case 32:                        // '%'
 
17552
      lookahead2W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
17553
      break;
 
17554
    case 86:                        // 'break'
 
17555
    case 102:                       // 'continue'
 
17556
      lookahead2W(188);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
17557
      break;
 
17558
    case 152:                       // 'if'
 
17559
    case 243:                       // 'switch'
 
17560
    case 253:                       // 'typeswitch'
 
17561
    case 267:                       // 'while'
 
17562
      lookahead2W(185);             // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
 
17563
      break;
 
17564
    default:
 
17565
      lk = l1;
 
17566
    }
 
17567
    if (lk == 2836                  // '{' Wildcard
 
17568
     || lk == 3103                  // '$' EQName^Token
 
17569
     || lk == 3104                  // '%' EQName^Token
 
17570
     || lk == 3348                  // '{' EQName^Token
 
17571
     || lk == 4372                  // '{' IntegerLiteral
 
17572
     || lk == 4884                  // '{' DecimalLiteral
 
17573
     || lk == 5396                  // '{' DoubleLiteral
 
17574
     || lk == 5908                  // '{' StringLiteral
 
17575
     || lk == 16148                 // '{' '$'
 
17576
     || lk == 16660                 // '{' '%'
 
17577
     || lk == 17675                 // 'while' '('
 
17578
     || lk == 17684                 // '{' '('
 
17579
     || lk == 18196                 // '{' '(#'
 
17580
     || lk == 20756                 // '{' '+'
 
17581
     || lk == 21780                 // '{' '-'
 
17582
     || lk == 22804                 // '{' '.'
 
17583
     || lk == 23316                 // '{' '..'
 
17584
     || lk == 23828                 // '{' '/'
 
17585
     || lk == 24340                 // '{' '//'
 
17586
     || lk == 27924                 // '{' '<'
 
17587
     || lk == 28436                 // '{' '<!--'
 
17588
     || lk == 30484                 // '{' '<?'
 
17589
     || lk == 34068                 // '{' '@'
 
17590
     || lk == 35092                 // '{' '['
 
17591
     || lk == 35871                 // '$' 'after'
 
17592
     || lk == 35872                 // '%' 'after'
 
17593
     || lk == 36116                 // '{' 'after'
 
17594
     || lk == 36895                 // '$' 'allowing'
 
17595
     || lk == 36896                 // '%' 'allowing'
 
17596
     || lk == 37140                 // '{' 'allowing'
 
17597
     || lk == 37407                 // '$' 'ancestor'
 
17598
     || lk == 37408                 // '%' 'ancestor'
 
17599
     || lk == 37652                 // '{' 'ancestor'
 
17600
     || lk == 37919                 // '$' 'ancestor-or-self'
 
17601
     || lk == 37920                 // '%' 'ancestor-or-self'
 
17602
     || lk == 38164                 // '{' 'ancestor-or-self'
 
17603
     || lk == 38431                 // '$' 'and'
 
17604
     || lk == 38432                 // '%' 'and'
 
17605
     || lk == 38676                 // '{' 'and'
 
17606
     || lk == 39700                 // '{' 'append'
 
17607
     || lk == 39967                 // '$' 'array'
 
17608
     || lk == 39968                 // '%' 'array'
 
17609
     || lk == 40212                 // '{' 'array'
 
17610
     || lk == 40479                 // '$' 'as'
 
17611
     || lk == 40480                 // '%' 'as'
 
17612
     || lk == 40724                 // '{' 'as'
 
17613
     || lk == 40991                 // '$' 'ascending'
 
17614
     || lk == 40992                 // '%' 'ascending'
 
17615
     || lk == 41236                 // '{' 'ascending'
 
17616
     || lk == 41503                 // '$' 'at'
 
17617
     || lk == 41504                 // '%' 'at'
 
17618
     || lk == 41748                 // '{' 'at'
 
17619
     || lk == 42015                 // '$' 'attribute'
 
17620
     || lk == 42016                 // '%' 'attribute'
 
17621
     || lk == 42260                 // '{' 'attribute'
 
17622
     || lk == 42527                 // '$' 'base-uri'
 
17623
     || lk == 42528                 // '%' 'base-uri'
 
17624
     || lk == 42772                 // '{' 'base-uri'
 
17625
     || lk == 43039                 // '$' 'before'
 
17626
     || lk == 43040                 // '%' 'before'
 
17627
     || lk == 43284                 // '{' 'before'
 
17628
     || lk == 43551                 // '$' 'boundary-space'
 
17629
     || lk == 43552                 // '%' 'boundary-space'
 
17630
     || lk == 43796                 // '{' 'boundary-space'
 
17631
     || lk == 44063                 // '$' 'break'
 
17632
     || lk == 44064                 // '%' 'break'
 
17633
     || lk == 44308                 // '{' 'break'
 
17634
     || lk == 45087                 // '$' 'case'
 
17635
     || lk == 45088                 // '%' 'case'
 
17636
     || lk == 45332                 // '{' 'case'
 
17637
     || lk == 45599                 // '$' 'cast'
 
17638
     || lk == 45600                 // '%' 'cast'
 
17639
     || lk == 45844                 // '{' 'cast'
 
17640
     || lk == 46111                 // '$' 'castable'
 
17641
     || lk == 46112                 // '%' 'castable'
 
17642
     || lk == 46356                 // '{' 'castable'
 
17643
     || lk == 46623                 // '$' 'catch'
 
17644
     || lk == 46624                 // '%' 'catch'
 
17645
     || lk == 46868                 // '{' 'catch'
 
17646
     || lk == 47647                 // '$' 'child'
 
17647
     || lk == 47648                 // '%' 'child'
 
17648
     || lk == 47892                 // '{' 'child'
 
17649
     || lk == 48159                 // '$' 'collation'
 
17650
     || lk == 48160                 // '%' 'collation'
 
17651
     || lk == 48404                 // '{' 'collation'
 
17652
     || lk == 49183                 // '$' 'comment'
 
17653
     || lk == 49184                 // '%' 'comment'
 
17654
     || lk == 49428                 // '{' 'comment'
 
17655
     || lk == 49695                 // '$' 'constraint'
 
17656
     || lk == 49696                 // '%' 'constraint'
 
17657
     || lk == 49940                 // '{' 'constraint'
 
17658
     || lk == 50207                 // '$' 'construction'
 
17659
     || lk == 50208                 // '%' 'construction'
 
17660
     || lk == 50452                 // '{' 'construction'
 
17661
     || lk == 51743                 // '$' 'context'
 
17662
     || lk == 51744                 // '%' 'context'
 
17663
     || lk == 51988                 // '{' 'context'
 
17664
     || lk == 52255                 // '$' 'continue'
 
17665
     || lk == 52256                 // '%' 'continue'
 
17666
     || lk == 52500                 // '{' 'continue'
 
17667
     || lk == 52767                 // '$' 'copy'
 
17668
     || lk == 52768                 // '%' 'copy'
 
17669
     || lk == 53012                 // '{' 'copy'
 
17670
     || lk == 53279                 // '$' 'copy-namespaces'
 
17671
     || lk == 53280                 // '%' 'copy-namespaces'
 
17672
     || lk == 53524                 // '{' 'copy-namespaces'
 
17673
     || lk == 53791                 // '$' 'count'
 
17674
     || lk == 53792                 // '%' 'count'
 
17675
     || lk == 54036                 // '{' 'count'
 
17676
     || lk == 54303                 // '$' 'decimal-format'
 
17677
     || lk == 54304                 // '%' 'decimal-format'
 
17678
     || lk == 54548                 // '{' 'decimal-format'
 
17679
     || lk == 55327                 // '$' 'declare'
 
17680
     || lk == 55328                 // '%' 'declare'
 
17681
     || lk == 55572                 // '{' 'declare'
 
17682
     || lk == 55839                 // '$' 'default'
 
17683
     || lk == 55840                 // '%' 'default'
 
17684
     || lk == 56084                 // '{' 'default'
 
17685
     || lk == 56351                 // '$' 'delete'
 
17686
     || lk == 56352                 // '%' 'delete'
 
17687
     || lk == 56596                 // '{' 'delete'
 
17688
     || lk == 56863                 // '$' 'descendant'
 
17689
     || lk == 56864                 // '%' 'descendant'
 
17690
     || lk == 57108                 // '{' 'descendant'
 
17691
     || lk == 57375                 // '$' 'descendant-or-self'
 
17692
     || lk == 57376                 // '%' 'descendant-or-self'
 
17693
     || lk == 57620                 // '{' 'descendant-or-self'
 
17694
     || lk == 57887                 // '$' 'descending'
 
17695
     || lk == 57888                 // '%' 'descending'
 
17696
     || lk == 58132                 // '{' 'descending'
 
17697
     || lk == 60447                 // '$' 'div'
 
17698
     || lk == 60448                 // '%' 'div'
 
17699
     || lk == 60692                 // '{' 'div'
 
17700
     || lk == 60959                 // '$' 'document'
 
17701
     || lk == 60960                 // '%' 'document'
 
17702
     || lk == 61204                 // '{' 'document'
 
17703
     || lk == 61471                 // '$' 'document-node'
 
17704
     || lk == 61472                 // '%' 'document-node'
 
17705
     || lk == 61716                 // '{' 'document-node'
 
17706
     || lk == 61983                 // '$' 'element'
 
17707
     || lk == 61984                 // '%' 'element'
 
17708
     || lk == 62228                 // '{' 'element'
 
17709
     || lk == 62495                 // '$' 'else'
 
17710
     || lk == 62496                 // '%' 'else'
 
17711
     || lk == 62740                 // '{' 'else'
 
17712
     || lk == 63007                 // '$' 'empty'
 
17713
     || lk == 63008                 // '%' 'empty'
 
17714
     || lk == 63252                 // '{' 'empty'
 
17715
     || lk == 63519                 // '$' 'empty-sequence'
 
17716
     || lk == 63520                 // '%' 'empty-sequence'
 
17717
     || lk == 63764                 // '{' 'empty-sequence'
 
17718
     || lk == 64031                 // '$' 'encoding'
 
17719
     || lk == 64032                 // '%' 'encoding'
 
17720
     || lk == 64276                 // '{' 'encoding'
 
17721
     || lk == 64543                 // '$' 'end'
 
17722
     || lk == 64544                 // '%' 'end'
 
17723
     || lk == 64788                 // '{' 'end'
 
17724
     || lk == 65567                 // '$' 'eq'
 
17725
     || lk == 65568                 // '%' 'eq'
 
17726
     || lk == 65812                 // '{' 'eq'
 
17727
     || lk == 66079                 // '$' 'every'
 
17728
     || lk == 66080                 // '%' 'every'
 
17729
     || lk == 66324                 // '{' 'every'
 
17730
     || lk == 67103                 // '$' 'except'
 
17731
     || lk == 67104                 // '%' 'except'
 
17732
     || lk == 67348                 // '{' 'except'
 
17733
     || lk == 67615                 // '$' 'exit'
 
17734
     || lk == 67616                 // '%' 'exit'
 
17735
     || lk == 67860                 // '{' 'exit'
 
17736
     || lk == 68127                 // '$' 'external'
 
17737
     || lk == 68128                 // '%' 'external'
 
17738
     || lk == 68372                 // '{' 'external'
 
17739
     || lk == 68639                 // '$' 'first'
 
17740
     || lk == 68640                 // '%' 'first'
 
17741
     || lk == 68884                 // '{' 'first'
 
17742
     || lk == 69151                 // '$' 'following'
 
17743
     || lk == 69152                 // '%' 'following'
 
17744
     || lk == 69396                 // '{' 'following'
 
17745
     || lk == 69663                 // '$' 'following-sibling'
 
17746
     || lk == 69664                 // '%' 'following-sibling'
 
17747
     || lk == 69908                 // '{' 'following-sibling'
 
17748
     || lk == 70175                 // '$' 'for'
 
17749
     || lk == 70176                 // '%' 'for'
 
17750
     || lk == 70420                 // '{' 'for'
 
17751
     || lk == 72223                 // '$' 'ft-option'
 
17752
     || lk == 72224                 // '%' 'ft-option'
 
17753
     || lk == 72468                 // '{' 'ft-option'
 
17754
     || lk == 74271                 // '$' 'function'
 
17755
     || lk == 74272                 // '%' 'function'
 
17756
     || lk == 74516                 // '{' 'function'
 
17757
     || lk == 74783                 // '$' 'ge'
 
17758
     || lk == 74784                 // '%' 'ge'
 
17759
     || lk == 75028                 // '{' 'ge'
 
17760
     || lk == 75807                 // '$' 'group'
 
17761
     || lk == 75808                 // '%' 'group'
 
17762
     || lk == 76052                 // '{' 'group'
 
17763
     || lk == 76831                 // '$' 'gt'
 
17764
     || lk == 76832                 // '%' 'gt'
 
17765
     || lk == 77076                 // '{' 'gt'
 
17766
     || lk == 77343                 // '$' 'idiv'
 
17767
     || lk == 77344                 // '%' 'idiv'
 
17768
     || lk == 77588                 // '{' 'idiv'
 
17769
     || lk == 77855                 // '$' 'if'
 
17770
     || lk == 77856                 // '%' 'if'
 
17771
     || lk == 78100                 // '{' 'if'
 
17772
     || lk == 78367                 // '$' 'import'
 
17773
     || lk == 78368                 // '%' 'import'
 
17774
     || lk == 78612                 // '{' 'import'
 
17775
     || lk == 78879                 // '$' 'in'
 
17776
     || lk == 78880                 // '%' 'in'
 
17777
     || lk == 79124                 // '{' 'in'
 
17778
     || lk == 79391                 // '$' 'index'
 
17779
     || lk == 79392                 // '%' 'index'
 
17780
     || lk == 79636                 // '{' 'index'
 
17781
     || lk == 81439                 // '$' 'insert'
 
17782
     || lk == 81440                 // '%' 'insert'
 
17783
     || lk == 81684                 // '{' 'insert'
 
17784
     || lk == 81951                 // '$' 'instance'
 
17785
     || lk == 81952                 // '%' 'instance'
 
17786
     || lk == 82196                 // '{' 'instance'
 
17787
     || lk == 82463                 // '$' 'integrity'
 
17788
     || lk == 82464                 // '%' 'integrity'
 
17789
     || lk == 82708                 // '{' 'integrity'
 
17790
     || lk == 82975                 // '$' 'intersect'
 
17791
     || lk == 82976                 // '%' 'intersect'
 
17792
     || lk == 83220                 // '{' 'intersect'
 
17793
     || lk == 83487                 // '$' 'into'
 
17794
     || lk == 83488                 // '%' 'into'
 
17795
     || lk == 83732                 // '{' 'into'
 
17796
     || lk == 83999                 // '$' 'is'
 
17797
     || lk == 84000                 // '%' 'is'
 
17798
     || lk == 84244                 // '{' 'is'
 
17799
     || lk == 84511                 // '$' 'item'
 
17800
     || lk == 84512                 // '%' 'item'
 
17801
     || lk == 84756                 // '{' 'item'
 
17802
     || lk == 85535                 // '$' 'json-item'
 
17803
     || lk == 85536                 // '%' 'json-item'
 
17804
     || lk == 85780                 // '{' 'json-item'
 
17805
     || lk == 87071                 // '$' 'last'
 
17806
     || lk == 87072                 // '%' 'last'
 
17807
     || lk == 87316                 // '{' 'last'
 
17808
     || lk == 87583                 // '$' 'lax'
 
17809
     || lk == 87584                 // '%' 'lax'
 
17810
     || lk == 87828                 // '{' 'lax'
 
17811
     || lk == 88095                 // '$' 'le'
 
17812
     || lk == 88096                 // '%' 'le'
 
17813
     || lk == 88340                 // '{' 'le'
 
17814
     || lk == 89119                 // '$' 'let'
 
17815
     || lk == 89120                 // '%' 'let'
 
17816
     || lk == 89364                 // '{' 'let'
 
17817
     || lk == 90143                 // '$' 'loop'
 
17818
     || lk == 90144                 // '%' 'loop'
 
17819
     || lk == 90388                 // '{' 'loop'
 
17820
     || lk == 91167                 // '$' 'lt'
 
17821
     || lk == 91168                 // '%' 'lt'
 
17822
     || lk == 91412                 // '{' 'lt'
 
17823
     || lk == 92191                 // '$' 'mod'
 
17824
     || lk == 92192                 // '%' 'mod'
 
17825
     || lk == 92436                 // '{' 'mod'
 
17826
     || lk == 92703                 // '$' 'modify'
 
17827
     || lk == 92704                 // '%' 'modify'
 
17828
     || lk == 92948                 // '{' 'modify'
 
17829
     || lk == 93215                 // '$' 'module'
 
17830
     || lk == 93216                 // '%' 'module'
 
17831
     || lk == 93460                 // '{' 'module'
 
17832
     || lk == 94239                 // '$' 'namespace'
 
17833
     || lk == 94240                 // '%' 'namespace'
 
17834
     || lk == 94484                 // '{' 'namespace'
 
17835
     || lk == 94751                 // '$' 'namespace-node'
 
17836
     || lk == 94752                 // '%' 'namespace-node'
 
17837
     || lk == 94996                 // '{' 'namespace-node'
 
17838
     || lk == 95263                 // '$' 'ne'
 
17839
     || lk == 95264                 // '%' 'ne'
 
17840
     || lk == 95508                 // '{' 'ne'
 
17841
     || lk == 97823                 // '$' 'node'
 
17842
     || lk == 97824                 // '%' 'node'
 
17843
     || lk == 98068                 // '{' 'node'
 
17844
     || lk == 98335                 // '$' 'nodes'
 
17845
     || lk == 98336                 // '%' 'nodes'
 
17846
     || lk == 98580                 // '{' 'nodes'
 
17847
     || lk == 99359                 // '$' 'object'
 
17848
     || lk == 99360                 // '%' 'object'
 
17849
     || lk == 99604                 // '{' 'object'
 
17850
     || lk == 101407                // '$' 'only'
 
17851
     || lk == 101408                // '%' 'only'
 
17852
     || lk == 101652                // '{' 'only'
 
17853
     || lk == 101919                // '$' 'option'
 
17854
     || lk == 101920                // '%' 'option'
 
17855
     || lk == 102164                // '{' 'option'
 
17856
     || lk == 102431                // '$' 'or'
 
17857
     || lk == 102432                // '%' 'or'
 
17858
     || lk == 102676                // '{' 'or'
 
17859
     || lk == 102943                // '$' 'order'
 
17860
     || lk == 102944                // '%' 'order'
 
17861
     || lk == 103188                // '{' 'order'
 
17862
     || lk == 103455                // '$' 'ordered'
 
17863
     || lk == 103456                // '%' 'ordered'
 
17864
     || lk == 103700                // '{' 'ordered'
 
17865
     || lk == 103967                // '$' 'ordering'
 
17866
     || lk == 103968                // '%' 'ordering'
 
17867
     || lk == 104212                // '{' 'ordering'
 
17868
     || lk == 105503                // '$' 'parent'
 
17869
     || lk == 105504                // '%' 'parent'
 
17870
     || lk == 105748                // '{' 'parent'
 
17871
     || lk == 108575                // '$' 'preceding'
 
17872
     || lk == 108576                // '%' 'preceding'
 
17873
     || lk == 108820                // '{' 'preceding'
 
17874
     || lk == 109087                // '$' 'preceding-sibling'
 
17875
     || lk == 109088                // '%' 'preceding-sibling'
 
17876
     || lk == 109332                // '{' 'preceding-sibling'
 
17877
     || lk == 110623                // '$' 'processing-instruction'
 
17878
     || lk == 110624                // '%' 'processing-instruction'
 
17879
     || lk == 110868                // '{' 'processing-instruction'
 
17880
     || lk == 111647                // '$' 'rename'
 
17881
     || lk == 111648                // '%' 'rename'
 
17882
     || lk == 111892                // '{' 'rename'
 
17883
     || lk == 112159                // '$' 'replace'
 
17884
     || lk == 112160                // '%' 'replace'
 
17885
     || lk == 112404                // '{' 'replace'
 
17886
     || lk == 112671                // '$' 'return'
 
17887
     || lk == 112672                // '%' 'return'
 
17888
     || lk == 112916                // '{' 'return'
 
17889
     || lk == 113183                // '$' 'returning'
 
17890
     || lk == 113184                // '%' 'returning'
 
17891
     || lk == 113428                // '{' 'returning'
 
17892
     || lk == 113695                // '$' 'revalidation'
 
17893
     || lk == 113696                // '%' 'revalidation'
 
17894
     || lk == 113940                // '{' 'revalidation'
 
17895
     || lk == 114719                // '$' 'satisfies'
 
17896
     || lk == 114720                // '%' 'satisfies'
 
17897
     || lk == 114964                // '{' 'satisfies'
 
17898
     || lk == 115231                // '$' 'schema'
 
17899
     || lk == 115232                // '%' 'schema'
 
17900
     || lk == 115476                // '{' 'schema'
 
17901
     || lk == 115743                // '$' 'schema-attribute'
 
17902
     || lk == 115744                // '%' 'schema-attribute'
 
17903
     || lk == 115988                // '{' 'schema-attribute'
 
17904
     || lk == 116255                // '$' 'schema-element'
 
17905
     || lk == 116256                // '%' 'schema-element'
 
17906
     || lk == 116500                // '{' 'schema-element'
 
17907
     || lk == 116767                // '$' 'score'
 
17908
     || lk == 116768                // '%' 'score'
 
17909
     || lk == 117012                // '{' 'score'
 
17910
     || lk == 117279                // '$' 'self'
 
17911
     || lk == 117280                // '%' 'self'
 
17912
     || lk == 117524                // '{' 'self'
 
17913
     || lk == 119839                // '$' 'sliding'
 
17914
     || lk == 119840                // '%' 'sliding'
 
17915
     || lk == 120084                // '{' 'sliding'
 
17916
     || lk == 120351                // '$' 'some'
 
17917
     || lk == 120352                // '%' 'some'
 
17918
     || lk == 120596                // '{' 'some'
 
17919
     || lk == 120863                // '$' 'stable'
 
17920
     || lk == 120864                // '%' 'stable'
 
17921
     || lk == 121108                // '{' 'stable'
 
17922
     || lk == 121375                // '$' 'start'
 
17923
     || lk == 121376                // '%' 'start'
 
17924
     || lk == 121620                // '{' 'start'
 
17925
     || lk == 122911                // '$' 'strict'
 
17926
     || lk == 122912                // '%' 'strict'
 
17927
     || lk == 123156                // '{' 'strict'
 
17928
     || lk == 124447                // '$' 'switch'
 
17929
     || lk == 124448                // '%' 'switch'
 
17930
     || lk == 124692                // '{' 'switch'
 
17931
     || lk == 124959                // '$' 'text'
 
17932
     || lk == 124960                // '%' 'text'
 
17933
     || lk == 125204                // '{' 'text'
 
17934
     || lk == 127007                // '$' 'to'
 
17935
     || lk == 127008                // '%' 'to'
 
17936
     || lk == 127252                // '{' 'to'
 
17937
     || lk == 127519                // '$' 'treat'
 
17938
     || lk == 127520                // '%' 'treat'
 
17939
     || lk == 127764                // '{' 'treat'
 
17940
     || lk == 128031                // '$' 'try'
 
17941
     || lk == 128032                // '%' 'try'
 
17942
     || lk == 128276                // '{' 'try'
 
17943
     || lk == 128543                // '$' 'tumbling'
 
17944
     || lk == 128544                // '%' 'tumbling'
 
17945
     || lk == 128788                // '{' 'tumbling'
 
17946
     || lk == 129055                // '$' 'type'
 
17947
     || lk == 129056                // '%' 'type'
 
17948
     || lk == 129300                // '{' 'type'
 
17949
     || lk == 129567                // '$' 'typeswitch'
 
17950
     || lk == 129568                // '%' 'typeswitch'
 
17951
     || lk == 129812                // '{' 'typeswitch'
 
17952
     || lk == 130079                // '$' 'union'
 
17953
     || lk == 130080                // '%' 'union'
 
17954
     || lk == 130324                // '{' 'union'
 
17955
     || lk == 131103                // '$' 'unordered'
 
17956
     || lk == 131104                // '%' 'unordered'
 
17957
     || lk == 131348                // '{' 'unordered'
 
17958
     || lk == 131615                // '$' 'updating'
 
17959
     || lk == 131616                // '%' 'updating'
 
17960
     || lk == 131860                // '{' 'updating'
 
17961
     || lk == 133151                // '$' 'validate'
 
17962
     || lk == 133152                // '%' 'validate'
 
17963
     || lk == 133396                // '{' 'validate'
 
17964
     || lk == 133663                // '$' 'value'
 
17965
     || lk == 133664                // '%' 'value'
 
17966
     || lk == 133908                // '{' 'value'
 
17967
     || lk == 134175                // '$' 'variable'
 
17968
     || lk == 134176                // '%' 'variable'
 
17969
     || lk == 134420                // '{' 'variable'
 
17970
     || lk == 134687                // '$' 'version'
 
17971
     || lk == 134688                // '%' 'version'
 
17972
     || lk == 134932                // '{' 'version'
 
17973
     || lk == 136223                // '$' 'where'
 
17974
     || lk == 136224                // '%' 'where'
 
17975
     || lk == 136468                // '{' 'where'
 
17976
     || lk == 136735                // '$' 'while'
 
17977
     || lk == 136736                // '%' 'while'
 
17978
     || lk == 136980                // '{' 'while'
 
17979
     || lk == 138271                // '$' 'with'
 
17980
     || lk == 138272                // '%' 'with'
 
17981
     || lk == 138516                // '{' 'with'
 
17982
     || lk == 140319                // '$' 'xquery'
 
17983
     || lk == 140320                // '%' 'xquery'
 
17984
     || lk == 140564                // '{' 'xquery'
 
17985
     || lk == 141588                // '{' '{'
 
17986
     || lk == 142612                // '{' '{|'
 
17987
     || lk == 144660)               // '{' '}'
 
17988
    {
 
17989
      lk = memoized(7, e0);
 
17990
      if (lk == 0)
 
17991
      {
 
17992
        var b0A = b0; var e0A = e0; var l1A = l1;
 
17993
        var b1A = b1; var e1A = e1; var l2A = l2;
 
17994
        var b2A = b2; var e2A = e2;
 
17995
        try
 
17996
        {
 
17997
          try_ApplyStatement();
 
17998
          memoize(7, e0A, -1);
 
17999
          lk = -14;
 
18000
        }
 
18001
        catch (p1A)
 
18002
        {
 
18003
          try
 
18004
          {
 
18005
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18006
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18007
            b2 = b2A; e2 = e2A; end = e2A; }}
 
18008
            try_AssignStatement();
 
18009
            memoize(7, e0A, -2);
 
18010
            lk = -14;
 
18011
          }
 
18012
          catch (p2A)
 
18013
          {
 
18014
            try
 
18015
            {
 
18016
              b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18017
              b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18018
              b2 = b2A; e2 = e2A; end = e2A; }}
 
18019
              try_BlockStatement();
 
18020
              memoize(7, e0A, -3);
 
18021
              lk = -14;
 
18022
            }
 
18023
            catch (p3A)
 
18024
            {
 
18025
              try
 
18026
              {
 
18027
                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18028
                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18029
                b2 = b2A; e2 = e2A; end = e2A; }}
 
18030
                try_VarDeclStatement();
 
18031
                memoize(7, e0A, -12);
 
18032
                lk = -14;
 
18033
              }
 
18034
              catch (p12A)
 
18035
              {
 
18036
                lk = -13;
 
18037
                b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18038
                b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18039
                b2 = b2A; e2 = e2A; end = e2A; }}
 
18040
                memoize(7, e0A, -13);
 
18041
              }
 
18042
            }
 
18043
          }
 
18044
        }
 
18045
      }
 
18046
    }
 
18047
    switch (lk)
 
18048
    {
 
18049
    case -2:
 
18050
      try_AssignStatement();
 
18051
      break;
 
18052
    case -3:
 
18053
      try_BlockStatement();
 
18054
      break;
 
18055
    case 90198:                     // 'break' 'loop'
 
18056
      try_BreakStatement();
 
18057
      break;
 
18058
    case 90214:                     // 'continue' 'loop'
 
18059
      try_ContinueStatement();
 
18060
      break;
 
18061
    case 113284:                    // 'exit' 'returning'
 
18062
      try_ExitStatement();
 
18063
      break;
 
18064
    case 16009:                     // 'for' '$'
 
18065
    case 16046:                     // 'let' '$'
 
18066
    case 116910:                    // 'let' 'score'
 
18067
    case 119945:                    // 'for' 'sliding'
 
18068
    case 128649:                    // 'for' 'tumbling'
 
18069
      try_FLWORStatement();
 
18070
      break;
 
18071
    case 17560:                     // 'if' '('
 
18072
      try_IfStatement();
 
18073
      break;
 
18074
    case 17651:                     // 'switch' '('
 
18075
      try_SwitchStatement();
 
18076
      break;
 
18077
    case 141562:                    // 'try' '{'
 
18078
      try_TryCatchStatement();
 
18079
      break;
 
18080
    case 17661:                     // 'typeswitch' '('
 
18081
      try_TypeswitchStatement();
 
18082
      break;
 
18083
    case -12:
 
18084
    case 16134:                     // 'variable' '$'
 
18085
      try_VarDeclStatement();
 
18086
      break;
 
18087
    case -13:
 
18088
      try_WhileStatement();
 
18089
      break;
 
18090
    case -14:
 
18091
      break;
 
18092
    default:
 
18093
      try_ApplyStatement();
 
18094
    }
 
18095
  }
 
18096
 
 
18097
  function parse_ApplyStatement()
 
18098
  {
 
18099
    eventHandler.startNonterminal("ApplyStatement", e0);
 
18100
    parse_ExprSimple();
 
18101
    shift(53);                      // ';'
 
18102
    eventHandler.endNonterminal("ApplyStatement", e0);
 
18103
  }
 
18104
 
 
18105
  function try_ApplyStatement()
 
18106
  {
 
18107
    try_ExprSimple();
 
18108
    shiftT(53);                     // ';'
 
18109
  }
 
18110
 
 
18111
  function parse_AssignStatement()
 
18112
  {
 
18113
    eventHandler.startNonterminal("AssignStatement", e0);
 
18114
    shift(31);                      // '$'
 
18115
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18116
    whitespace();
 
18117
    parse_VarName();
 
18118
    lookahead1W(27);                // S^WS | '(:' | ':='
 
18119
    shift(52);                      // ':='
 
18120
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18121
    whitespace();
 
18122
    parse_ExprSingle();
 
18123
    shift(53);                      // ';'
 
18124
    eventHandler.endNonterminal("AssignStatement", e0);
 
18125
  }
 
18126
 
 
18127
  function try_AssignStatement()
 
18128
  {
 
18129
    shiftT(31);                     // '$'
 
18130
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18131
    try_VarName();
 
18132
    lookahead1W(27);                // S^WS | '(:' | ':='
 
18133
    shiftT(52);                     // ':='
 
18134
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18135
    try_ExprSingle();
 
18136
    shiftT(53);                     // ';'
 
18137
  }
 
18138
 
 
18139
  function parse_BlockStatement()
 
18140
  {
 
18141
    eventHandler.startNonterminal("BlockStatement", e0);
 
18142
    shift(276);                     // '{'
 
18143
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18144
    whitespace();
 
18145
    parse_Statements();
 
18146
    shift(282);                     // '}'
 
18147
    eventHandler.endNonterminal("BlockStatement", e0);
 
18148
  }
 
18149
 
 
18150
  function try_BlockStatement()
 
18151
  {
 
18152
    shiftT(276);                    // '{'
 
18153
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18154
    try_Statements();
 
18155
    shiftT(282);                    // '}'
 
18156
  }
 
18157
 
 
18158
  function parse_BreakStatement()
 
18159
  {
 
18160
    eventHandler.startNonterminal("BreakStatement", e0);
 
18161
    shift(86);                      // 'break'
 
18162
    lookahead1W(59);                // S^WS | '(:' | 'loop'
 
18163
    shift(176);                     // 'loop'
 
18164
    lookahead1W(28);                // S^WS | '(:' | ';'
 
18165
    shift(53);                      // ';'
 
18166
    eventHandler.endNonterminal("BreakStatement", e0);
 
18167
  }
 
18168
 
 
18169
  function try_BreakStatement()
 
18170
  {
 
18171
    shiftT(86);                     // 'break'
 
18172
    lookahead1W(59);                // S^WS | '(:' | 'loop'
 
18173
    shiftT(176);                    // 'loop'
 
18174
    lookahead1W(28);                // S^WS | '(:' | ';'
 
18175
    shiftT(53);                     // ';'
 
18176
  }
 
18177
 
 
18178
  function parse_ContinueStatement()
 
18179
  {
 
18180
    eventHandler.startNonterminal("ContinueStatement", e0);
 
18181
    shift(102);                     // 'continue'
 
18182
    lookahead1W(59);                // S^WS | '(:' | 'loop'
 
18183
    shift(176);                     // 'loop'
 
18184
    lookahead1W(28);                // S^WS | '(:' | ';'
 
18185
    shift(53);                      // ';'
 
18186
    eventHandler.endNonterminal("ContinueStatement", e0);
 
18187
  }
 
18188
 
 
18189
  function try_ContinueStatement()
 
18190
  {
 
18191
    shiftT(102);                    // 'continue'
 
18192
    lookahead1W(59);                // S^WS | '(:' | 'loop'
 
18193
    shiftT(176);                    // 'loop'
 
18194
    lookahead1W(28);                // S^WS | '(:' | ';'
 
18195
    shiftT(53);                     // ';'
 
18196
  }
 
18197
 
 
18198
  function parse_ExitStatement()
 
18199
  {
 
18200
    eventHandler.startNonterminal("ExitStatement", e0);
 
18201
    shift(132);                     // 'exit'
 
18202
    lookahead1W(71);                // S^WS | '(:' | 'returning'
 
18203
    shift(221);                     // 'returning'
 
18204
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18205
    whitespace();
 
18206
    parse_ExprSingle();
 
18207
    shift(53);                      // ';'
 
18208
    eventHandler.endNonterminal("ExitStatement", e0);
 
18209
  }
 
18210
 
 
18211
  function try_ExitStatement()
 
18212
  {
 
18213
    shiftT(132);                    // 'exit'
 
18214
    lookahead1W(71);                // S^WS | '(:' | 'returning'
 
18215
    shiftT(221);                    // 'returning'
 
18216
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18217
    try_ExprSingle();
 
18218
    shiftT(53);                     // ';'
 
18219
  }
 
18220
 
 
18221
  function parse_FLWORStatement()
 
18222
  {
 
18223
    eventHandler.startNonterminal("FLWORStatement", e0);
 
18224
    parse_InitialClause();
 
18225
    for (;;)
 
18226
    {
 
18227
      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
 
18228
      if (l1 == 220)                // 'return'
 
18229
      {
 
18230
        break;
 
18231
      }
 
18232
      whitespace();
 
18233
      parse_IntermediateClause();
 
18234
    }
 
18235
    whitespace();
 
18236
    parse_ReturnStatement();
 
18237
    eventHandler.endNonterminal("FLWORStatement", e0);
 
18238
  }
 
18239
 
 
18240
  function try_FLWORStatement()
 
18241
  {
 
18242
    try_InitialClause();
 
18243
    for (;;)
 
18244
    {
 
18245
      lookahead1W(173);             // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
 
18246
      if (l1 == 220)                // 'return'
 
18247
      {
 
18248
        break;
 
18249
      }
 
18250
      try_IntermediateClause();
 
18251
    }
 
18252
    try_ReturnStatement();
 
18253
  }
 
18254
 
 
18255
  function parse_ReturnStatement()
 
18256
  {
 
18257
    eventHandler.startNonterminal("ReturnStatement", e0);
 
18258
    shift(220);                     // 'return'
 
18259
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18260
    whitespace();
 
18261
    parse_Statement();
 
18262
    eventHandler.endNonterminal("ReturnStatement", e0);
 
18263
  }
 
18264
 
 
18265
  function try_ReturnStatement()
 
18266
  {
 
18267
    shiftT(220);                    // 'return'
 
18268
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18269
    try_Statement();
 
18270
  }
 
18271
 
 
18272
  function parse_IfStatement()
 
18273
  {
 
18274
    eventHandler.startNonterminal("IfStatement", e0);
 
18275
    shift(152);                     // 'if'
 
18276
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18277
    shift(34);                      // '('
 
18278
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18279
    whitespace();
 
18280
    parse_Expr();
 
18281
    shift(37);                      // ')'
 
18282
    lookahead1W(77);                // S^WS | '(:' | 'then'
 
18283
    shift(245);                     // 'then'
 
18284
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18285
    whitespace();
 
18286
    parse_Statement();
 
18287
    lookahead1W(48);                // S^WS | '(:' | 'else'
 
18288
    shift(122);                     // 'else'
 
18289
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18290
    whitespace();
 
18291
    parse_Statement();
 
18292
    eventHandler.endNonterminal("IfStatement", e0);
 
18293
  }
 
18294
 
 
18295
  function try_IfStatement()
 
18296
  {
 
18297
    shiftT(152);                    // 'if'
 
18298
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18299
    shiftT(34);                     // '('
 
18300
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18301
    try_Expr();
 
18302
    shiftT(37);                     // ')'
 
18303
    lookahead1W(77);                // S^WS | '(:' | 'then'
 
18304
    shiftT(245);                    // 'then'
 
18305
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18306
    try_Statement();
 
18307
    lookahead1W(48);                // S^WS | '(:' | 'else'
 
18308
    shiftT(122);                    // 'else'
 
18309
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18310
    try_Statement();
 
18311
  }
 
18312
 
 
18313
  function parse_SwitchStatement()
 
18314
  {
 
18315
    eventHandler.startNonterminal("SwitchStatement", e0);
 
18316
    shift(243);                     // 'switch'
 
18317
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18318
    shift(34);                      // '('
 
18319
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18320
    whitespace();
 
18321
    parse_Expr();
 
18322
    shift(37);                      // ')'
 
18323
    for (;;)
 
18324
    {
 
18325
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
18326
      whitespace();
 
18327
      parse_SwitchCaseStatement();
 
18328
      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'
 
18329
      if (l1 != 88)                 // 'case'
 
18330
      {
 
18331
        break;
 
18332
      }
 
18333
    }
 
18334
    shift(109);                     // 'default'
 
18335
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18336
    shift(220);                     // 'return'
 
18337
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18338
    whitespace();
 
18339
    parse_Statement();
 
18340
    eventHandler.endNonterminal("SwitchStatement", e0);
 
18341
  }
 
18342
 
 
18343
  function try_SwitchStatement()
 
18344
  {
 
18345
    shiftT(243);                    // 'switch'
 
18346
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18347
    shiftT(34);                     // '('
 
18348
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18349
    try_Expr();
 
18350
    shiftT(37);                     // ')'
 
18351
    for (;;)
 
18352
    {
 
18353
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
18354
      try_SwitchCaseStatement();
 
18355
      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'
 
18356
      if (l1 != 88)                 // 'case'
 
18357
      {
 
18358
        break;
 
18359
      }
 
18360
    }
 
18361
    shiftT(109);                    // 'default'
 
18362
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18363
    shiftT(220);                    // 'return'
 
18364
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18365
    try_Statement();
 
18366
  }
 
18367
 
 
18368
  function parse_SwitchCaseStatement()
 
18369
  {
 
18370
    eventHandler.startNonterminal("SwitchCaseStatement", e0);
 
18371
    for (;;)
 
18372
    {
 
18373
      shift(88);                    // 'case'
 
18374
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18375
      whitespace();
 
18376
      parse_SwitchCaseOperand();
 
18377
      if (l1 != 88)                 // 'case'
 
18378
      {
 
18379
        break;
 
18380
      }
 
18381
    }
 
18382
    shift(220);                     // 'return'
 
18383
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18384
    whitespace();
 
18385
    parse_Statement();
 
18386
    eventHandler.endNonterminal("SwitchCaseStatement", e0);
 
18387
  }
 
18388
 
 
18389
  function try_SwitchCaseStatement()
 
18390
  {
 
18391
    for (;;)
 
18392
    {
 
18393
      shiftT(88);                   // 'case'
 
18394
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18395
      try_SwitchCaseOperand();
 
18396
      if (l1 != 88)                 // 'case'
 
18397
      {
 
18398
        break;
 
18399
      }
 
18400
    }
 
18401
    shiftT(220);                    // 'return'
 
18402
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18403
    try_Statement();
 
18404
  }
 
18405
 
 
18406
  function parse_TryCatchStatement()
 
18407
  {
 
18408
    eventHandler.startNonterminal("TryCatchStatement", e0);
 
18409
    shift(250);                     // 'try'
 
18410
    lookahead1W(87);                // S^WS | '(:' | '{'
 
18411
    whitespace();
 
18412
    parse_BlockStatement();
 
18413
    for (;;)
 
18414
    {
 
18415
      lookahead1W(36);              // S^WS | '(:' | 'catch'
 
18416
      shift(91);                    // 'catch'
 
18417
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18418
      whitespace();
 
18419
      parse_CatchErrorList();
 
18420
      whitespace();
 
18421
      parse_BlockStatement();
 
18422
      lookahead1W(274);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18423
      switch (l1)
 
18424
      {
 
18425
      case 91:                      // 'catch'
 
18426
        lookahead2W(276);           // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |
 
18427
        break;
 
18428
      default:
 
18429
        lk = l1;
 
18430
      }
 
18431
      if (lk == 38491               // 'catch' 'and'
 
18432
       || lk == 45659               // 'catch' 'cast'
 
18433
       || lk == 46171               // 'catch' 'castable'
 
18434
       || lk == 60507               // 'catch' 'div'
 
18435
       || lk == 65627               // 'catch' 'eq'
 
18436
       || lk == 67163               // 'catch' 'except'
 
18437
       || lk == 74843               // 'catch' 'ge'
 
18438
       || lk == 76891               // 'catch' 'gt'
 
18439
       || lk == 77403               // 'catch' 'idiv'
 
18440
       || lk == 82011               // 'catch' 'instance'
 
18441
       || lk == 83035               // 'catch' 'intersect'
 
18442
       || lk == 84059               // 'catch' 'is'
 
18443
       || lk == 88155               // 'catch' 'le'
 
18444
       || lk == 91227               // 'catch' 'lt'
 
18445
       || lk == 92251               // 'catch' 'mod'
 
18446
       || lk == 95323               // 'catch' 'ne'
 
18447
       || lk == 102491              // 'catch' 'or'
 
18448
       || lk == 127067              // 'catch' 'to'
 
18449
       || lk == 127579              // 'catch' 'treat'
 
18450
       || lk == 130139)             // 'catch' 'union'
 
18451
      {
 
18452
        lk = memoized(8, e0);
 
18453
        if (lk == 0)
 
18454
        {
 
18455
          var b0A = b0; var e0A = e0; var l1A = l1;
 
18456
          var b1A = b1; var e1A = e1; var l2A = l2;
 
18457
          var b2A = b2; var e2A = e2;
 
18458
          try
 
18459
          {
 
18460
            lookahead1W(36);        // S^WS | '(:' | 'catch'
 
18461
            shiftT(91);             // 'catch'
 
18462
            lookahead1W(255);       // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18463
            try_CatchErrorList();
 
18464
            try_BlockStatement();
 
18465
            lk = -1;
 
18466
          }
 
18467
          catch (p1A)
 
18468
          {
 
18469
            lk = -2;
 
18470
          }
 
18471
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18472
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18473
          b2 = b2A; e2 = e2A; end = e2A; }}
 
18474
          memoize(8, e0, lk);
 
18475
        }
 
18476
      }
 
18477
      if (lk != -1
 
18478
       && lk != 2651                // 'catch' Wildcard
 
18479
       && lk != 3163                // 'catch' EQName^Token
 
18480
       && lk != 35931               // 'catch' 'after'
 
18481
       && lk != 36955               // 'catch' 'allowing'
 
18482
       && lk != 37467               // 'catch' 'ancestor'
 
18483
       && lk != 37979               // 'catch' 'ancestor-or-self'
 
18484
       && lk != 40027               // 'catch' 'array'
 
18485
       && lk != 40539               // 'catch' 'as'
 
18486
       && lk != 41051               // 'catch' 'ascending'
 
18487
       && lk != 41563               // 'catch' 'at'
 
18488
       && lk != 42075               // 'catch' 'attribute'
 
18489
       && lk != 42587               // 'catch' 'base-uri'
 
18490
       && lk != 43099               // 'catch' 'before'
 
18491
       && lk != 43611               // 'catch' 'boundary-space'
 
18492
       && lk != 44123               // 'catch' 'break'
 
18493
       && lk != 45147               // 'catch' 'case'
 
18494
       && lk != 46683               // 'catch' 'catch'
 
18495
       && lk != 47707               // 'catch' 'child'
 
18496
       && lk != 48219               // 'catch' 'collation'
 
18497
       && lk != 49243               // 'catch' 'comment'
 
18498
       && lk != 49755               // 'catch' 'constraint'
 
18499
       && lk != 50267               // 'catch' 'construction'
 
18500
       && lk != 51803               // 'catch' 'context'
 
18501
       && lk != 52315               // 'catch' 'continue'
 
18502
       && lk != 52827               // 'catch' 'copy'
 
18503
       && lk != 53339               // 'catch' 'copy-namespaces'
 
18504
       && lk != 53851               // 'catch' 'count'
 
18505
       && lk != 54363               // 'catch' 'decimal-format'
 
18506
       && lk != 55387               // 'catch' 'declare'
 
18507
       && lk != 55899               // 'catch' 'default'
 
18508
       && lk != 56411               // 'catch' 'delete'
 
18509
       && lk != 56923               // 'catch' 'descendant'
 
18510
       && lk != 57435               // 'catch' 'descendant-or-self'
 
18511
       && lk != 57947               // 'catch' 'descending'
 
18512
       && lk != 61019               // 'catch' 'document'
 
18513
       && lk != 61531               // 'catch' 'document-node'
 
18514
       && lk != 62043               // 'catch' 'element'
 
18515
       && lk != 62555               // 'catch' 'else'
 
18516
       && lk != 63067               // 'catch' 'empty'
 
18517
       && lk != 63579               // 'catch' 'empty-sequence'
 
18518
       && lk != 64091               // 'catch' 'encoding'
 
18519
       && lk != 64603               // 'catch' 'end'
 
18520
       && lk != 66139               // 'catch' 'every'
 
18521
       && lk != 67675               // 'catch' 'exit'
 
18522
       && lk != 68187               // 'catch' 'external'
 
18523
       && lk != 68699               // 'catch' 'first'
 
18524
       && lk != 69211               // 'catch' 'following'
 
18525
       && lk != 69723               // 'catch' 'following-sibling'
 
18526
       && lk != 70235               // 'catch' 'for'
 
18527
       && lk != 72283               // 'catch' 'ft-option'
 
18528
       && lk != 74331               // 'catch' 'function'
 
18529
       && lk != 75867               // 'catch' 'group'
 
18530
       && lk != 77915               // 'catch' 'if'
 
18531
       && lk != 78427               // 'catch' 'import'
 
18532
       && lk != 78939               // 'catch' 'in'
 
18533
       && lk != 79451               // 'catch' 'index'
 
18534
       && lk != 81499               // 'catch' 'insert'
 
18535
       && lk != 82523               // 'catch' 'integrity'
 
18536
       && lk != 83547               // 'catch' 'into'
 
18537
       && lk != 84571               // 'catch' 'item'
 
18538
       && lk != 85595               // 'catch' 'json-item'
 
18539
       && lk != 87131               // 'catch' 'last'
 
18540
       && lk != 87643               // 'catch' 'lax'
 
18541
       && lk != 89179               // 'catch' 'let'
 
18542
       && lk != 90203               // 'catch' 'loop'
 
18543
       && lk != 92763               // 'catch' 'modify'
 
18544
       && lk != 93275               // 'catch' 'module'
 
18545
       && lk != 94299               // 'catch' 'namespace'
 
18546
       && lk != 94811               // 'catch' 'namespace-node'
 
18547
       && lk != 97883               // 'catch' 'node'
 
18548
       && lk != 98395               // 'catch' 'nodes'
 
18549
       && lk != 99419               // 'catch' 'object'
 
18550
       && lk != 101467              // 'catch' 'only'
 
18551
       && lk != 101979              // 'catch' 'option'
 
18552
       && lk != 103003              // 'catch' 'order'
 
18553
       && lk != 103515              // 'catch' 'ordered'
 
18554
       && lk != 104027              // 'catch' 'ordering'
 
18555
       && lk != 105563              // 'catch' 'parent'
 
18556
       && lk != 108635              // 'catch' 'preceding'
 
18557
       && lk != 109147              // 'catch' 'preceding-sibling'
 
18558
       && lk != 110683              // 'catch' 'processing-instruction'
 
18559
       && lk != 111707              // 'catch' 'rename'
 
18560
       && lk != 112219              // 'catch' 'replace'
 
18561
       && lk != 112731              // 'catch' 'return'
 
18562
       && lk != 113243              // 'catch' 'returning'
 
18563
       && lk != 113755              // 'catch' 'revalidation'
 
18564
       && lk != 114779              // 'catch' 'satisfies'
 
18565
       && lk != 115291              // 'catch' 'schema'
 
18566
       && lk != 115803              // 'catch' 'schema-attribute'
 
18567
       && lk != 116315              // 'catch' 'schema-element'
 
18568
       && lk != 116827              // 'catch' 'score'
 
18569
       && lk != 117339              // 'catch' 'self'
 
18570
       && lk != 119899              // 'catch' 'sliding'
 
18571
       && lk != 120411              // 'catch' 'some'
 
18572
       && lk != 120923              // 'catch' 'stable'
 
18573
       && lk != 121435              // 'catch' 'start'
 
18574
       && lk != 122971              // 'catch' 'strict'
 
18575
       && lk != 124507              // 'catch' 'switch'
 
18576
       && lk != 125019              // 'catch' 'text'
 
18577
       && lk != 128091              // 'catch' 'try'
 
18578
       && lk != 128603              // 'catch' 'tumbling'
 
18579
       && lk != 129115              // 'catch' 'type'
 
18580
       && lk != 129627              // 'catch' 'typeswitch'
 
18581
       && lk != 131163              // 'catch' 'unordered'
 
18582
       && lk != 131675              // 'catch' 'updating'
 
18583
       && lk != 133211              // 'catch' 'validate'
 
18584
       && lk != 133723              // 'catch' 'value'
 
18585
       && lk != 134235              // 'catch' 'variable'
 
18586
       && lk != 134747              // 'catch' 'version'
 
18587
       && lk != 136283              // 'catch' 'where'
 
18588
       && lk != 136795              // 'catch' 'while'
 
18589
       && lk != 138331              // 'catch' 'with'
 
18590
       && lk != 140379)             // 'catch' 'xquery'
 
18591
      {
 
18592
        break;
 
18593
      }
 
18594
    }
 
18595
    eventHandler.endNonterminal("TryCatchStatement", e0);
 
18596
  }
 
18597
 
 
18598
  function try_TryCatchStatement()
 
18599
  {
 
18600
    shiftT(250);                    // 'try'
 
18601
    lookahead1W(87);                // S^WS | '(:' | '{'
 
18602
    try_BlockStatement();
 
18603
    lookahead1W(36);                // S^WS | '(:' | 'catch'
 
18604
    shiftT(91);                     // 'catch'
 
18605
    lookahead1W(255);               // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18606
    try_CatchErrorList();
 
18607
    try_BlockStatement();
 
18608
    for (;;)
 
18609
    {
 
18610
      lookahead1W(274);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18611
      switch (l1)
 
18612
      {
 
18613
      case 91:                      // 'catch'
 
18614
        lookahead2W(276);           // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |
 
18615
        break;
 
18616
      default:
 
18617
        lk = l1;
 
18618
      }
 
18619
      if (lk == 38491               // 'catch' 'and'
 
18620
       || lk == 45659               // 'catch' 'cast'
 
18621
       || lk == 46171               // 'catch' 'castable'
 
18622
       || lk == 60507               // 'catch' 'div'
 
18623
       || lk == 65627               // 'catch' 'eq'
 
18624
       || lk == 67163               // 'catch' 'except'
 
18625
       || lk == 74843               // 'catch' 'ge'
 
18626
       || lk == 76891               // 'catch' 'gt'
 
18627
       || lk == 77403               // 'catch' 'idiv'
 
18628
       || lk == 82011               // 'catch' 'instance'
 
18629
       || lk == 83035               // 'catch' 'intersect'
 
18630
       || lk == 84059               // 'catch' 'is'
 
18631
       || lk == 88155               // 'catch' 'le'
 
18632
       || lk == 91227               // 'catch' 'lt'
 
18633
       || lk == 92251               // 'catch' 'mod'
 
18634
       || lk == 95323               // 'catch' 'ne'
 
18635
       || lk == 102491              // 'catch' 'or'
 
18636
       || lk == 127067              // 'catch' 'to'
 
18637
       || lk == 127579              // 'catch' 'treat'
 
18638
       || lk == 130139)             // 'catch' 'union'
 
18639
      {
 
18640
        lk = memoized(8, e0);
 
18641
        if (lk == 0)
 
18642
        {
 
18643
          var b0A = b0; var e0A = e0; var l1A = l1;
 
18644
          var b1A = b1; var e1A = e1; var l2A = l2;
 
18645
          var b2A = b2; var e2A = e2;
 
18646
          try
 
18647
          {
 
18648
            lookahead1W(36);        // S^WS | '(:' | 'catch'
 
18649
            shiftT(91);             // 'catch'
 
18650
            lookahead1W(255);       // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18651
            try_CatchErrorList();
 
18652
            try_BlockStatement();
 
18653
            memoize(8, e0A, -1);
 
18654
            continue;
 
18655
          }
 
18656
          catch (p1A)
 
18657
          {
 
18658
            b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
18659
            b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
18660
            b2 = b2A; e2 = e2A; end = e2A; }}
 
18661
            memoize(8, e0A, -2);
 
18662
            break;
 
18663
          }
 
18664
        }
 
18665
      }
 
18666
      if (lk != -1
 
18667
       && lk != 2651                // 'catch' Wildcard
 
18668
       && lk != 3163                // 'catch' EQName^Token
 
18669
       && lk != 35931               // 'catch' 'after'
 
18670
       && lk != 36955               // 'catch' 'allowing'
 
18671
       && lk != 37467               // 'catch' 'ancestor'
 
18672
       && lk != 37979               // 'catch' 'ancestor-or-self'
 
18673
       && lk != 40027               // 'catch' 'array'
 
18674
       && lk != 40539               // 'catch' 'as'
 
18675
       && lk != 41051               // 'catch' 'ascending'
 
18676
       && lk != 41563               // 'catch' 'at'
 
18677
       && lk != 42075               // 'catch' 'attribute'
 
18678
       && lk != 42587               // 'catch' 'base-uri'
 
18679
       && lk != 43099               // 'catch' 'before'
 
18680
       && lk != 43611               // 'catch' 'boundary-space'
 
18681
       && lk != 44123               // 'catch' 'break'
 
18682
       && lk != 45147               // 'catch' 'case'
 
18683
       && lk != 46683               // 'catch' 'catch'
 
18684
       && lk != 47707               // 'catch' 'child'
 
18685
       && lk != 48219               // 'catch' 'collation'
 
18686
       && lk != 49243               // 'catch' 'comment'
 
18687
       && lk != 49755               // 'catch' 'constraint'
 
18688
       && lk != 50267               // 'catch' 'construction'
 
18689
       && lk != 51803               // 'catch' 'context'
 
18690
       && lk != 52315               // 'catch' 'continue'
 
18691
       && lk != 52827               // 'catch' 'copy'
 
18692
       && lk != 53339               // 'catch' 'copy-namespaces'
 
18693
       && lk != 53851               // 'catch' 'count'
 
18694
       && lk != 54363               // 'catch' 'decimal-format'
 
18695
       && lk != 55387               // 'catch' 'declare'
 
18696
       && lk != 55899               // 'catch' 'default'
 
18697
       && lk != 56411               // 'catch' 'delete'
 
18698
       && lk != 56923               // 'catch' 'descendant'
 
18699
       && lk != 57435               // 'catch' 'descendant-or-self'
 
18700
       && lk != 57947               // 'catch' 'descending'
 
18701
       && lk != 61019               // 'catch' 'document'
 
18702
       && lk != 61531               // 'catch' 'document-node'
 
18703
       && lk != 62043               // 'catch' 'element'
 
18704
       && lk != 62555               // 'catch' 'else'
 
18705
       && lk != 63067               // 'catch' 'empty'
 
18706
       && lk != 63579               // 'catch' 'empty-sequence'
 
18707
       && lk != 64091               // 'catch' 'encoding'
 
18708
       && lk != 64603               // 'catch' 'end'
 
18709
       && lk != 66139               // 'catch' 'every'
 
18710
       && lk != 67675               // 'catch' 'exit'
 
18711
       && lk != 68187               // 'catch' 'external'
 
18712
       && lk != 68699               // 'catch' 'first'
 
18713
       && lk != 69211               // 'catch' 'following'
 
18714
       && lk != 69723               // 'catch' 'following-sibling'
 
18715
       && lk != 70235               // 'catch' 'for'
 
18716
       && lk != 72283               // 'catch' 'ft-option'
 
18717
       && lk != 74331               // 'catch' 'function'
 
18718
       && lk != 75867               // 'catch' 'group'
 
18719
       && lk != 77915               // 'catch' 'if'
 
18720
       && lk != 78427               // 'catch' 'import'
 
18721
       && lk != 78939               // 'catch' 'in'
 
18722
       && lk != 79451               // 'catch' 'index'
 
18723
       && lk != 81499               // 'catch' 'insert'
 
18724
       && lk != 82523               // 'catch' 'integrity'
 
18725
       && lk != 83547               // 'catch' 'into'
 
18726
       && lk != 84571               // 'catch' 'item'
 
18727
       && lk != 85595               // 'catch' 'json-item'
 
18728
       && lk != 87131               // 'catch' 'last'
 
18729
       && lk != 87643               // 'catch' 'lax'
 
18730
       && lk != 89179               // 'catch' 'let'
 
18731
       && lk != 90203               // 'catch' 'loop'
 
18732
       && lk != 92763               // 'catch' 'modify'
 
18733
       && lk != 93275               // 'catch' 'module'
 
18734
       && lk != 94299               // 'catch' 'namespace'
 
18735
       && lk != 94811               // 'catch' 'namespace-node'
 
18736
       && lk != 97883               // 'catch' 'node'
 
18737
       && lk != 98395               // 'catch' 'nodes'
 
18738
       && lk != 99419               // 'catch' 'object'
 
18739
       && lk != 101467              // 'catch' 'only'
 
18740
       && lk != 101979              // 'catch' 'option'
 
18741
       && lk != 103003              // 'catch' 'order'
 
18742
       && lk != 103515              // 'catch' 'ordered'
 
18743
       && lk != 104027              // 'catch' 'ordering'
 
18744
       && lk != 105563              // 'catch' 'parent'
 
18745
       && lk != 108635              // 'catch' 'preceding'
 
18746
       && lk != 109147              // 'catch' 'preceding-sibling'
 
18747
       && lk != 110683              // 'catch' 'processing-instruction'
 
18748
       && lk != 111707              // 'catch' 'rename'
 
18749
       && lk != 112219              // 'catch' 'replace'
 
18750
       && lk != 112731              // 'catch' 'return'
 
18751
       && lk != 113243              // 'catch' 'returning'
 
18752
       && lk != 113755              // 'catch' 'revalidation'
 
18753
       && lk != 114779              // 'catch' 'satisfies'
 
18754
       && lk != 115291              // 'catch' 'schema'
 
18755
       && lk != 115803              // 'catch' 'schema-attribute'
 
18756
       && lk != 116315              // 'catch' 'schema-element'
 
18757
       && lk != 116827              // 'catch' 'score'
 
18758
       && lk != 117339              // 'catch' 'self'
 
18759
       && lk != 119899              // 'catch' 'sliding'
 
18760
       && lk != 120411              // 'catch' 'some'
 
18761
       && lk != 120923              // 'catch' 'stable'
 
18762
       && lk != 121435              // 'catch' 'start'
 
18763
       && lk != 122971              // 'catch' 'strict'
 
18764
       && lk != 124507              // 'catch' 'switch'
 
18765
       && lk != 125019              // 'catch' 'text'
 
18766
       && lk != 128091              // 'catch' 'try'
 
18767
       && lk != 128603              // 'catch' 'tumbling'
 
18768
       && lk != 129115              // 'catch' 'type'
 
18769
       && lk != 129627              // 'catch' 'typeswitch'
 
18770
       && lk != 131163              // 'catch' 'unordered'
 
18771
       && lk != 131675              // 'catch' 'updating'
 
18772
       && lk != 133211              // 'catch' 'validate'
 
18773
       && lk != 133723              // 'catch' 'value'
 
18774
       && lk != 134235              // 'catch' 'variable'
 
18775
       && lk != 134747              // 'catch' 'version'
 
18776
       && lk != 136283              // 'catch' 'where'
 
18777
       && lk != 136795              // 'catch' 'while'
 
18778
       && lk != 138331              // 'catch' 'with'
 
18779
       && lk != 140379)             // 'catch' 'xquery'
 
18780
      {
 
18781
        break;
 
18782
      }
 
18783
      lookahead1W(36);              // S^WS | '(:' | 'catch'
 
18784
      shiftT(91);                   // 'catch'
 
18785
      lookahead1W(255);             // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18786
      try_CatchErrorList();
 
18787
      try_BlockStatement();
 
18788
    }
 
18789
  }
 
18790
 
 
18791
  function parse_TypeswitchStatement()
 
18792
  {
 
18793
    eventHandler.startNonterminal("TypeswitchStatement", e0);
 
18794
    shift(253);                     // 'typeswitch'
 
18795
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18796
    shift(34);                      // '('
 
18797
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18798
    whitespace();
 
18799
    parse_Expr();
 
18800
    shift(37);                      // ')'
 
18801
    for (;;)
 
18802
    {
 
18803
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
18804
      whitespace();
 
18805
      parse_CaseStatement();
 
18806
      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'
 
18807
      if (l1 != 88)                 // 'case'
 
18808
      {
 
18809
        break;
 
18810
      }
 
18811
    }
 
18812
    shift(109);                     // 'default'
 
18813
    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'
 
18814
    if (l1 == 31)                   // '$'
 
18815
    {
 
18816
      shift(31);                    // '$'
 
18817
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18818
      whitespace();
 
18819
      parse_VarName();
 
18820
    }
 
18821
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18822
    shift(220);                     // 'return'
 
18823
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18824
    whitespace();
 
18825
    parse_Statement();
 
18826
    eventHandler.endNonterminal("TypeswitchStatement", e0);
 
18827
  }
 
18828
 
 
18829
  function try_TypeswitchStatement()
 
18830
  {
 
18831
    shiftT(253);                    // 'typeswitch'
 
18832
    lookahead1W(22);                // S^WS | '(' | '(:'
 
18833
    shiftT(34);                     // '('
 
18834
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18835
    try_Expr();
 
18836
    shiftT(37);                     // ')'
 
18837
    for (;;)
 
18838
    {
 
18839
      lookahead1W(35);              // S^WS | '(:' | 'case'
 
18840
      try_CaseStatement();
 
18841
      lookahead1W(113);             // S^WS | '(:' | 'case' | 'default'
 
18842
      if (l1 != 88)                 // 'case'
 
18843
      {
 
18844
        break;
 
18845
      }
 
18846
    }
 
18847
    shiftT(109);                    // 'default'
 
18848
    lookahead1W(95);                // S^WS | '$' | '(:' | 'return'
 
18849
    if (l1 == 31)                   // '$'
 
18850
    {
 
18851
      shiftT(31);                   // '$'
 
18852
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18853
      try_VarName();
 
18854
    }
 
18855
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18856
    shiftT(220);                    // 'return'
 
18857
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18858
    try_Statement();
 
18859
  }
 
18860
 
 
18861
  function parse_CaseStatement()
 
18862
  {
 
18863
    eventHandler.startNonterminal("CaseStatement", e0);
 
18864
    shift(88);                      // 'case'
 
18865
    lookahead1W(260);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
 
18866
    if (l1 == 31)                   // '$'
 
18867
    {
 
18868
      shift(31);                    // '$'
 
18869
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18870
      whitespace();
 
18871
      parse_VarName();
 
18872
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
18873
      shift(79);                    // 'as'
 
18874
    }
 
18875
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18876
    whitespace();
 
18877
    parse_SequenceType();
 
18878
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18879
    shift(220);                     // 'return'
 
18880
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18881
    whitespace();
 
18882
    parse_Statement();
 
18883
    eventHandler.endNonterminal("CaseStatement", e0);
 
18884
  }
 
18885
 
 
18886
  function try_CaseStatement()
 
18887
  {
 
18888
    shiftT(88);                     // 'case'
 
18889
    lookahead1W(260);               // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
 
18890
    if (l1 == 31)                   // '$'
 
18891
    {
 
18892
      shiftT(31);                   // '$'
 
18893
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18894
      try_VarName();
 
18895
      lookahead1W(30);              // S^WS | '(:' | 'as'
 
18896
      shiftT(79);                   // 'as'
 
18897
    }
 
18898
    lookahead1W(259);               // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18899
    try_SequenceType();
 
18900
    lookahead1W(70);                // S^WS | '(:' | 'return'
 
18901
    shiftT(220);                    // 'return'
 
18902
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18903
    try_Statement();
 
18904
  }
 
18905
 
 
18906
  function parse_VarDeclStatement()
 
18907
  {
 
18908
    eventHandler.startNonterminal("VarDeclStatement", e0);
 
18909
    for (;;)
 
18910
    {
 
18911
      lookahead1W(98);              // S^WS | '%' | '(:' | 'variable'
 
18912
      if (l1 != 32)                 // '%'
 
18913
      {
 
18914
        break;
 
18915
      }
 
18916
      whitespace();
 
18917
      parse_Annotation();
 
18918
    }
 
18919
    shift(262);                     // 'variable'
 
18920
    lookahead1W(21);                // S^WS | '$' | '(:'
 
18921
    shift(31);                      // '$'
 
18922
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18923
    whitespace();
 
18924
    parse_VarName();
 
18925
    lookahead1W(157);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'
 
18926
    if (l1 == 79)                   // 'as'
 
18927
    {
 
18928
      whitespace();
 
18929
      parse_TypeDeclaration();
 
18930
    }
 
18931
    lookahead1W(145);               // S^WS | '(:' | ',' | ':=' | ';'
 
18932
    if (l1 == 52)                   // ':='
 
18933
    {
 
18934
      shift(52);                    // ':='
 
18935
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18936
      whitespace();
 
18937
      parse_ExprSingle();
 
18938
    }
 
18939
    for (;;)
 
18940
    {
 
18941
      if (l1 != 41)                 // ','
 
18942
      {
 
18943
        break;
 
18944
      }
 
18945
      shift(41);                    // ','
 
18946
      lookahead1W(21);              // S^WS | '$' | '(:'
 
18947
      shift(31);                    // '$'
 
18948
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18949
      whitespace();
 
18950
      parse_VarName();
 
18951
      lookahead1W(157);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'
 
18952
      if (l1 == 79)                 // 'as'
 
18953
      {
 
18954
        whitespace();
 
18955
        parse_TypeDeclaration();
 
18956
      }
 
18957
      lookahead1W(145);             // S^WS | '(:' | ',' | ':=' | ';'
 
18958
      if (l1 == 52)                 // ':='
 
18959
      {
 
18960
        shift(52);                  // ':='
 
18961
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18962
        whitespace();
 
18963
        parse_ExprSingle();
 
18964
      }
 
18965
    }
 
18966
    shift(53);                      // ';'
 
18967
    eventHandler.endNonterminal("VarDeclStatement", e0);
 
18968
  }
 
18969
 
 
18970
  function try_VarDeclStatement()
 
18971
  {
 
18972
    for (;;)
 
18973
    {
 
18974
      lookahead1W(98);              // S^WS | '%' | '(:' | 'variable'
 
18975
      if (l1 != 32)                 // '%'
 
18976
      {
 
18977
        break;
 
18978
      }
 
18979
      try_Annotation();
 
18980
    }
 
18981
    shiftT(262);                    // 'variable'
 
18982
    lookahead1W(21);                // S^WS | '$' | '(:'
 
18983
    shiftT(31);                     // '$'
 
18984
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
18985
    try_VarName();
 
18986
    lookahead1W(157);               // S^WS | '(:' | ',' | ':=' | ';' | 'as'
 
18987
    if (l1 == 79)                   // 'as'
 
18988
    {
 
18989
      try_TypeDeclaration();
 
18990
    }
 
18991
    lookahead1W(145);               // S^WS | '(:' | ',' | ':=' | ';'
 
18992
    if (l1 == 52)                   // ':='
 
18993
    {
 
18994
      shiftT(52);                   // ':='
 
18995
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
18996
      try_ExprSingle();
 
18997
    }
 
18998
    for (;;)
 
18999
    {
 
19000
      if (l1 != 41)                 // ','
 
19001
      {
 
19002
        break;
 
19003
      }
 
19004
      shiftT(41);                   // ','
 
19005
      lookahead1W(21);              // S^WS | '$' | '(:'
 
19006
      shiftT(31);                   // '$'
 
19007
      lookahead1W(253);             // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19008
      try_VarName();
 
19009
      lookahead1W(157);             // S^WS | '(:' | ',' | ':=' | ';' | 'as'
 
19010
      if (l1 == 79)                 // 'as'
 
19011
      {
 
19012
        try_TypeDeclaration();
 
19013
      }
 
19014
      lookahead1W(145);             // S^WS | '(:' | ',' | ':=' | ';'
 
19015
      if (l1 == 52)                 // ':='
 
19016
      {
 
19017
        shiftT(52);                 // ':='
 
19018
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19019
        try_ExprSingle();
 
19020
      }
 
19021
    }
 
19022
    shiftT(53);                     // ';'
 
19023
  }
 
19024
 
 
19025
  function parse_WhileStatement()
 
19026
  {
 
19027
    eventHandler.startNonterminal("WhileStatement", e0);
 
19028
    shift(267);                     // 'while'
 
19029
    lookahead1W(22);                // S^WS | '(' | '(:'
 
19030
    shift(34);                      // '('
 
19031
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19032
    whitespace();
 
19033
    parse_Expr();
 
19034
    shift(37);                      // ')'
 
19035
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19036
    whitespace();
 
19037
    parse_Statement();
 
19038
    eventHandler.endNonterminal("WhileStatement", e0);
 
19039
  }
 
19040
 
 
19041
  function try_WhileStatement()
 
19042
  {
 
19043
    shiftT(267);                    // 'while'
 
19044
    lookahead1W(22);                // S^WS | '(' | '(:'
 
19045
    shiftT(34);                     // '('
 
19046
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19047
    try_Expr();
 
19048
    shiftT(37);                     // ')'
 
19049
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19050
    try_Statement();
 
19051
  }
 
19052
 
 
19053
  function parse_ExprSingle()
 
19054
  {
 
19055
    eventHandler.startNonterminal("ExprSingle", e0);
 
19056
    switch (l1)
 
19057
    {
 
19058
    case 137:                       // 'for'
 
19059
      lookahead2W(233);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19060
      break;
 
19061
    case 174:                       // 'let'
 
19062
      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19063
      break;
 
19064
    case 250:                       // 'try'
 
19065
      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19066
      break;
 
19067
    case 152:                       // 'if'
 
19068
    case 243:                       // 'switch'
 
19069
    case 253:                       // 'typeswitch'
 
19070
      lookahead2W(228);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19071
      break;
 
19072
    default:
 
19073
      lk = l1;
 
19074
    }
 
19075
    switch (lk)
 
19076
    {
 
19077
    case 16009:                     // 'for' '$'
 
19078
    case 16046:                     // 'let' '$'
 
19079
    case 116910:                    // 'let' 'score'
 
19080
    case 119945:                    // 'for' 'sliding'
 
19081
    case 128649:                    // 'for' 'tumbling'
 
19082
      parse_FLWORExpr();
 
19083
      break;
 
19084
    case 17560:                     // 'if' '('
 
19085
      parse_IfExpr();
 
19086
      break;
 
19087
    case 17651:                     // 'switch' '('
 
19088
      parse_SwitchExpr();
 
19089
      break;
 
19090
    case 141562:                    // 'try' '{'
 
19091
      parse_TryCatchExpr();
 
19092
      break;
 
19093
    case 17661:                     // 'typeswitch' '('
 
19094
      parse_TypeswitchExpr();
 
19095
      break;
 
19096
    default:
 
19097
      parse_ExprSimple();
 
19098
    }
 
19099
    eventHandler.endNonterminal("ExprSingle", e0);
 
19100
  }
 
19101
 
 
19102
  function try_ExprSingle()
 
19103
  {
 
19104
    switch (l1)
 
19105
    {
 
19106
    case 137:                       // 'for'
 
19107
      lookahead2W(233);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19108
      break;
 
19109
    case 174:                       // 'let'
 
19110
      lookahead2W(231);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19111
      break;
 
19112
    case 250:                       // 'try'
 
19113
      lookahead2W(230);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19114
      break;
 
19115
    case 152:                       // 'if'
 
19116
    case 243:                       // 'switch'
 
19117
    case 253:                       // 'typeswitch'
 
19118
      lookahead2W(228);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19119
      break;
 
19120
    default:
 
19121
      lk = l1;
 
19122
    }
 
19123
    switch (lk)
 
19124
    {
 
19125
    case 16009:                     // 'for' '$'
 
19126
    case 16046:                     // 'let' '$'
 
19127
    case 116910:                    // 'let' 'score'
 
19128
    case 119945:                    // 'for' 'sliding'
 
19129
    case 128649:                    // 'for' 'tumbling'
 
19130
      try_FLWORExpr();
 
19131
      break;
 
19132
    case 17560:                     // 'if' '('
 
19133
      try_IfExpr();
 
19134
      break;
 
19135
    case 17651:                     // 'switch' '('
 
19136
      try_SwitchExpr();
 
19137
      break;
 
19138
    case 141562:                    // 'try' '{'
 
19139
      try_TryCatchExpr();
 
19140
      break;
 
19141
    case 17661:                     // 'typeswitch' '('
 
19142
      try_TypeswitchExpr();
 
19143
      break;
 
19144
    default:
 
19145
      try_ExprSimple();
 
19146
    }
 
19147
  }
 
19148
 
 
19149
  function parse_ExprSimple()
 
19150
  {
 
19151
    eventHandler.startNonterminal("ExprSimple", e0);
 
19152
    switch (l1)
 
19153
    {
 
19154
    case 218:                       // 'rename'
 
19155
      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19156
      break;
 
19157
    case 219:                       // 'replace'
 
19158
      lookahead2W(235);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19159
      break;
 
19160
    case 110:                       // 'delete'
 
19161
    case 159:                       // 'insert'
 
19162
      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19163
      break;
 
19164
    case 103:                       // 'copy'
 
19165
    case 129:                       // 'every'
 
19166
    case 235:                       // 'some'
 
19167
      lookahead2W(229);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19168
      break;
 
19169
    default:
 
19170
      lk = l1;
 
19171
    }
 
19172
    switch (lk)
 
19173
    {
 
19174
    case 16001:                     // 'every' '$'
 
19175
    case 16107:                     // 'some' '$'
 
19176
      parse_QuantifiedExpr();
 
19177
      break;
 
19178
    case 97951:                     // 'insert' 'node'
 
19179
    case 98463:                     // 'insert' 'nodes'
 
19180
      parse_InsertExpr();
 
19181
      break;
 
19182
    case 97902:                     // 'delete' 'node'
 
19183
    case 98414:                     // 'delete' 'nodes'
 
19184
      parse_DeleteExpr();
 
19185
      break;
 
19186
    case 98010:                     // 'rename' 'node'
 
19187
      parse_RenameExpr();
 
19188
      break;
 
19189
    case 98011:                     // 'replace' 'node'
 
19190
    case 133851:                    // 'replace' 'value'
 
19191
      parse_ReplaceExpr();
 
19192
      break;
 
19193
    case 15975:                     // 'copy' '$'
 
19194
      parse_TransformExpr();
 
19195
      break;
 
19196
    case 85102:                     // 'delete' 'json'
 
19197
      parse_JSONDeleteExpr();
 
19198
      break;
 
19199
    case 85151:                     // 'insert' 'json'
 
19200
      parse_JSONInsertExpr();
 
19201
      break;
 
19202
    case 85210:                     // 'rename' 'json'
 
19203
      parse_JSONRenameExpr();
 
19204
      break;
 
19205
    case 85211:                     // 'replace' 'json'
 
19206
      parse_JSONReplaceExpr();
 
19207
      break;
 
19208
    case 77:                        // 'append'
 
19209
      parse_JSONAppendExpr();
 
19210
      break;
 
19211
    default:
 
19212
      parse_OrExpr();
 
19213
    }
 
19214
    eventHandler.endNonterminal("ExprSimple", e0);
 
19215
  }
 
19216
 
 
19217
  function try_ExprSimple()
 
19218
  {
 
19219
    switch (l1)
 
19220
    {
 
19221
    case 218:                       // 'rename'
 
19222
      lookahead2W(232);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19223
      break;
 
19224
    case 219:                       // 'replace'
 
19225
      lookahead2W(235);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19226
      break;
 
19227
    case 110:                       // 'delete'
 
19228
    case 159:                       // 'insert'
 
19229
      lookahead2W(234);             // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
 
19230
      break;
 
19231
    case 103:                       // 'copy'
 
19232
    case 129:                       // 'every'
 
19233
    case 235:                       // 'some'
 
19234
      lookahead2W(229);             // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
 
19235
      break;
 
19236
    default:
 
19237
      lk = l1;
 
19238
    }
 
19239
    switch (lk)
 
19240
    {
 
19241
    case 16001:                     // 'every' '$'
 
19242
    case 16107:                     // 'some' '$'
 
19243
      try_QuantifiedExpr();
 
19244
      break;
 
19245
    case 97951:                     // 'insert' 'node'
 
19246
    case 98463:                     // 'insert' 'nodes'
 
19247
      try_InsertExpr();
 
19248
      break;
 
19249
    case 97902:                     // 'delete' 'node'
 
19250
    case 98414:                     // 'delete' 'nodes'
 
19251
      try_DeleteExpr();
 
19252
      break;
 
19253
    case 98010:                     // 'rename' 'node'
 
19254
      try_RenameExpr();
 
19255
      break;
 
19256
    case 98011:                     // 'replace' 'node'
 
19257
    case 133851:                    // 'replace' 'value'
 
19258
      try_ReplaceExpr();
 
19259
      break;
 
19260
    case 15975:                     // 'copy' '$'
 
19261
      try_TransformExpr();
 
19262
      break;
 
19263
    case 85102:                     // 'delete' 'json'
 
19264
      try_JSONDeleteExpr();
 
19265
      break;
 
19266
    case 85151:                     // 'insert' 'json'
 
19267
      try_JSONInsertExpr();
 
19268
      break;
 
19269
    case 85210:                     // 'rename' 'json'
 
19270
      try_JSONRenameExpr();
 
19271
      break;
 
19272
    case 85211:                     // 'replace' 'json'
 
19273
      try_JSONReplaceExpr();
 
19274
      break;
 
19275
    case 77:                        // 'append'
 
19276
      try_JSONAppendExpr();
 
19277
      break;
 
19278
    default:
 
19279
      try_OrExpr();
 
19280
    }
 
19281
  }
 
19282
 
 
19283
  function parse_JSONDeleteExpr()
 
19284
  {
 
19285
    eventHandler.startNonterminal("JSONDeleteExpr", e0);
 
19286
    shift(110);                     // 'delete'
 
19287
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19288
    shift(166);                     // 'json'
 
19289
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19290
    whitespace();
 
19291
    parse_PostfixExpr();
 
19292
    eventHandler.endNonterminal("JSONDeleteExpr", e0);
 
19293
  }
 
19294
 
 
19295
  function try_JSONDeleteExpr()
 
19296
  {
 
19297
    shiftT(110);                    // 'delete'
 
19298
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19299
    shiftT(166);                    // 'json'
 
19300
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19301
    try_PostfixExpr();
 
19302
  }
 
19303
 
 
19304
  function parse_JSONInsertExpr()
 
19305
  {
 
19306
    eventHandler.startNonterminal("JSONInsertExpr", e0);
 
19307
    shift(159);                     // 'insert'
 
19308
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19309
    shift(166);                     // 'json'
 
19310
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19311
    whitespace();
 
19312
    parse_ExprSingle();
 
19313
    shift(163);                     // 'into'
 
19314
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19315
    whitespace();
 
19316
    parse_ExprSingle();
 
19317
    switch (l1)
 
19318
    {
 
19319
    case 81:                        // 'at'
 
19320
      lookahead2W(69);              // S^WS | '(:' | 'position'
 
19321
      break;
 
19322
    default:
 
19323
      lk = l1;
 
19324
    }
 
19325
    if (lk == 108113)               // 'at' 'position'
 
19326
    {
 
19327
      lk = memoized(9, e0);
 
19328
      if (lk == 0)
 
19329
      {
 
19330
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19331
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19332
        var b2A = b2; var e2A = e2;
 
19333
        try
 
19334
        {
 
19335
          shiftT(81);               // 'at'
 
19336
          lookahead1W(69);          // S^WS | '(:' | 'position'
 
19337
          shiftT(211);              // 'position'
 
19338
          lookahead1W(267);         // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19339
          try_ExprSingle();
 
19340
          lk = -1;
 
19341
        }
 
19342
        catch (p1A)
 
19343
        {
 
19344
          lk = -2;
 
19345
        }
 
19346
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19347
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19348
        b2 = b2A; e2 = e2A; end = e2A; }}
 
19349
        memoize(9, e0, lk);
 
19350
      }
 
19351
    }
 
19352
    if (lk == -1)
 
19353
    {
 
19354
      shift(81);                    // 'at'
 
19355
      lookahead1W(69);              // S^WS | '(:' | 'position'
 
19356
      shift(211);                   // 'position'
 
19357
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19358
      whitespace();
 
19359
      parse_ExprSingle();
 
19360
    }
 
19361
    eventHandler.endNonterminal("JSONInsertExpr", e0);
 
19362
  }
 
19363
 
 
19364
  function try_JSONInsertExpr()
 
19365
  {
 
19366
    shiftT(159);                    // 'insert'
 
19367
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19368
    shiftT(166);                    // 'json'
 
19369
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19370
    try_ExprSingle();
 
19371
    shiftT(163);                    // 'into'
 
19372
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19373
    try_ExprSingle();
 
19374
    switch (l1)
 
19375
    {
 
19376
    case 81:                        // 'at'
 
19377
      lookahead2W(69);              // S^WS | '(:' | 'position'
 
19378
      break;
 
19379
    default:
 
19380
      lk = l1;
 
19381
    }
 
19382
    if (lk == 108113)               // 'at' 'position'
 
19383
    {
 
19384
      lk = memoized(9, e0);
 
19385
      if (lk == 0)
 
19386
      {
 
19387
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19388
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19389
        var b2A = b2; var e2A = e2;
 
19390
        try
 
19391
        {
 
19392
          shiftT(81);               // 'at'
 
19393
          lookahead1W(69);          // S^WS | '(:' | 'position'
 
19394
          shiftT(211);              // 'position'
 
19395
          lookahead1W(267);         // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19396
          try_ExprSingle();
 
19397
          memoize(9, e0A, -1);
 
19398
        }
 
19399
        catch (p1A)
 
19400
        {
 
19401
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19402
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19403
          b2 = b2A; e2 = e2A; end = e2A; }}
 
19404
          memoize(9, e0A, -2);
 
19405
        }
 
19406
        lk = -2;
 
19407
      }
 
19408
    }
 
19409
    if (lk == -1)
 
19410
    {
 
19411
      shiftT(81);                   // 'at'
 
19412
      lookahead1W(69);              // S^WS | '(:' | 'position'
 
19413
      shiftT(211);                  // 'position'
 
19414
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19415
      try_ExprSingle();
 
19416
    }
 
19417
  }
 
19418
 
 
19419
  function parse_JSONRenameExpr()
 
19420
  {
 
19421
    eventHandler.startNonterminal("JSONRenameExpr", e0);
 
19422
    shift(218);                     // 'rename'
 
19423
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19424
    shift(166);                     // 'json'
 
19425
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19426
    whitespace();
 
19427
    parse_PostfixExpr();
 
19428
    shift(79);                      // 'as'
 
19429
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19430
    whitespace();
 
19431
    parse_ExprSingle();
 
19432
    eventHandler.endNonterminal("JSONRenameExpr", e0);
 
19433
  }
 
19434
 
 
19435
  function try_JSONRenameExpr()
 
19436
  {
 
19437
    shiftT(218);                    // 'rename'
 
19438
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19439
    shiftT(166);                    // 'json'
 
19440
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19441
    try_PostfixExpr();
 
19442
    shiftT(79);                     // 'as'
 
19443
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19444
    try_ExprSingle();
 
19445
  }
 
19446
 
 
19447
  function parse_JSONReplaceExpr()
 
19448
  {
 
19449
    eventHandler.startNonterminal("JSONReplaceExpr", e0);
 
19450
    shift(219);                     // 'replace'
 
19451
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19452
    shift(166);                     // 'json'
 
19453
    lookahead1W(82);                // S^WS | '(:' | 'value'
 
19454
    shift(261);                     // 'value'
 
19455
    lookahead1W(64);                // S^WS | '(:' | 'of'
 
19456
    shift(196);                     // 'of'
 
19457
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19458
    whitespace();
 
19459
    parse_PostfixExpr();
 
19460
    shift(270);                     // 'with'
 
19461
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19462
    whitespace();
 
19463
    parse_ExprSingle();
 
19464
    eventHandler.endNonterminal("JSONReplaceExpr", e0);
 
19465
  }
 
19466
 
 
19467
  function try_JSONReplaceExpr()
 
19468
  {
 
19469
    shiftT(219);                    // 'replace'
 
19470
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19471
    shiftT(166);                    // 'json'
 
19472
    lookahead1W(82);                // S^WS | '(:' | 'value'
 
19473
    shiftT(261);                    // 'value'
 
19474
    lookahead1W(64);                // S^WS | '(:' | 'of'
 
19475
    shiftT(196);                    // 'of'
 
19476
    lookahead1W(262);               // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
 
19477
    try_PostfixExpr();
 
19478
    shiftT(270);                    // 'with'
 
19479
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19480
    try_ExprSingle();
 
19481
  }
 
19482
 
 
19483
  function parse_JSONAppendExpr()
 
19484
  {
 
19485
    eventHandler.startNonterminal("JSONAppendExpr", e0);
 
19486
    shift(77);                      // 'append'
 
19487
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19488
    shift(166);                     // 'json'
 
19489
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19490
    whitespace();
 
19491
    parse_ExprSingle();
 
19492
    shift(163);                     // 'into'
 
19493
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19494
    whitespace();
 
19495
    parse_ExprSingle();
 
19496
    eventHandler.endNonterminal("JSONAppendExpr", e0);
 
19497
  }
 
19498
 
 
19499
  function try_JSONAppendExpr()
 
19500
  {
 
19501
    shiftT(77);                     // 'append'
 
19502
    lookahead1W(56);                // S^WS | '(:' | 'json'
 
19503
    shiftT(166);                    // 'json'
 
19504
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19505
    try_ExprSingle();
 
19506
    shiftT(163);                    // 'into'
 
19507
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19508
    try_ExprSingle();
 
19509
  }
 
19510
 
 
19511
  function parse_CommonContent()
 
19512
  {
 
19513
    eventHandler.startNonterminal("CommonContent", e0);
 
19514
    switch (l1)
 
19515
    {
 
19516
    case 12:                        // PredefinedEntityRef
 
19517
      shift(12);                    // PredefinedEntityRef
 
19518
      break;
 
19519
    case 23:                        // CharRef
 
19520
      shift(23);                    // CharRef
 
19521
      break;
 
19522
    case 277:                       // '{{'
 
19523
      shift(277);                   // '{{'
 
19524
      break;
 
19525
    case 283:                       // '}}'
 
19526
      shift(283);                   // '}}'
 
19527
      break;
 
19528
    default:
 
19529
      parse_BlockExpr();
 
19530
    }
 
19531
    eventHandler.endNonterminal("CommonContent", e0);
 
19532
  }
 
19533
 
 
19534
  function try_CommonContent()
 
19535
  {
 
19536
    switch (l1)
 
19537
    {
 
19538
    case 12:                        // PredefinedEntityRef
 
19539
      shiftT(12);                   // PredefinedEntityRef
 
19540
      break;
 
19541
    case 23:                        // CharRef
 
19542
      shiftT(23);                   // CharRef
 
19543
      break;
 
19544
    case 277:                       // '{{'
 
19545
      shiftT(277);                  // '{{'
 
19546
      break;
 
19547
    case 283:                       // '}}'
 
19548
      shiftT(283);                  // '}}'
 
19549
      break;
 
19550
    default:
 
19551
      try_BlockExpr();
 
19552
    }
 
19553
  }
 
19554
 
 
19555
  function parse_ContentExpr()
 
19556
  {
 
19557
    eventHandler.startNonterminal("ContentExpr", e0);
 
19558
    parse_StatementsAndExpr();
 
19559
    eventHandler.endNonterminal("ContentExpr", e0);
 
19560
  }
 
19561
 
 
19562
  function try_ContentExpr()
 
19563
  {
 
19564
    try_StatementsAndExpr();
 
19565
  }
 
19566
 
 
19567
  function parse_CompDocConstructor()
 
19568
  {
 
19569
    eventHandler.startNonterminal("CompDocConstructor", e0);
 
19570
    shift(119);                     // 'document'
 
19571
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19572
    whitespace();
 
19573
    parse_BlockExpr();
 
19574
    eventHandler.endNonterminal("CompDocConstructor", e0);
 
19575
  }
 
19576
 
 
19577
  function try_CompDocConstructor()
 
19578
  {
 
19579
    shiftT(119);                    // 'document'
 
19580
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19581
    try_BlockExpr();
 
19582
  }
 
19583
 
 
19584
  function parse_CompAttrConstructor()
 
19585
  {
 
19586
    eventHandler.startNonterminal("CompAttrConstructor", e0);
 
19587
    shift(82);                      // 'attribute'
 
19588
    lookahead1W(256);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19589
    switch (l1)
 
19590
    {
 
19591
    case 276:                       // '{'
 
19592
      shift(276);                   // '{'
 
19593
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19594
      whitespace();
 
19595
      parse_Expr();
 
19596
      shift(282);                   // '}'
 
19597
      break;
 
19598
    default:
 
19599
      whitespace();
 
19600
      parse_EQName();
 
19601
    }
 
19602
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19603
    switch (l1)
 
19604
    {
 
19605
    case 276:                       // '{'
 
19606
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19607
      break;
 
19608
    default:
 
19609
      lk = l1;
 
19610
    }
 
19611
    if (lk == 144660)               // '{' '}'
 
19612
    {
 
19613
      lk = memoized(10, e0);
 
19614
      if (lk == 0)
 
19615
      {
 
19616
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19617
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19618
        var b2A = b2; var e2A = e2;
 
19619
        try
 
19620
        {
 
19621
          shiftT(276);              // '{'
 
19622
          lookahead1W(88);          // S^WS | '(:' | '}'
 
19623
          shiftT(282);              // '}'
 
19624
          lk = -1;
 
19625
        }
 
19626
        catch (p1A)
 
19627
        {
 
19628
          lk = -2;
 
19629
        }
 
19630
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19631
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19632
        b2 = b2A; e2 = e2A; end = e2A; }}
 
19633
        memoize(10, e0, lk);
 
19634
      }
 
19635
    }
 
19636
    switch (lk)
 
19637
    {
 
19638
    case -1:
 
19639
      shift(276);                   // '{'
 
19640
      lookahead1W(88);              // S^WS | '(:' | '}'
 
19641
      shift(282);                   // '}'
 
19642
      break;
 
19643
    default:
 
19644
      whitespace();
 
19645
      parse_BlockExpr();
 
19646
    }
 
19647
    eventHandler.endNonterminal("CompAttrConstructor", e0);
 
19648
  }
 
19649
 
 
19650
  function try_CompAttrConstructor()
 
19651
  {
 
19652
    shiftT(82);                     // 'attribute'
 
19653
    lookahead1W(256);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19654
    switch (l1)
 
19655
    {
 
19656
    case 276:                       // '{'
 
19657
      shiftT(276);                  // '{'
 
19658
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19659
      try_Expr();
 
19660
      shiftT(282);                  // '}'
 
19661
      break;
 
19662
    default:
 
19663
      try_EQName();
 
19664
    }
 
19665
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19666
    switch (l1)
 
19667
    {
 
19668
    case 276:                       // '{'
 
19669
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19670
      break;
 
19671
    default:
 
19672
      lk = l1;
 
19673
    }
 
19674
    if (lk == 144660)               // '{' '}'
 
19675
    {
 
19676
      lk = memoized(10, e0);
 
19677
      if (lk == 0)
 
19678
      {
 
19679
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19680
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19681
        var b2A = b2; var e2A = e2;
 
19682
        try
 
19683
        {
 
19684
          shiftT(276);              // '{'
 
19685
          lookahead1W(88);          // S^WS | '(:' | '}'
 
19686
          shiftT(282);              // '}'
 
19687
          memoize(10, e0A, -1);
 
19688
          lk = -3;
 
19689
        }
 
19690
        catch (p1A)
 
19691
        {
 
19692
          lk = -2;
 
19693
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19694
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19695
          b2 = b2A; e2 = e2A; end = e2A; }}
 
19696
          memoize(10, e0A, -2);
 
19697
        }
 
19698
      }
 
19699
    }
 
19700
    switch (lk)
 
19701
    {
 
19702
    case -1:
 
19703
      shiftT(276);                  // '{'
 
19704
      lookahead1W(88);              // S^WS | '(:' | '}'
 
19705
      shiftT(282);                  // '}'
 
19706
      break;
 
19707
    case -3:
 
19708
      break;
 
19709
    default:
 
19710
      try_BlockExpr();
 
19711
    }
 
19712
  }
 
19713
 
 
19714
  function parse_CompPIConstructor()
 
19715
  {
 
19716
    eventHandler.startNonterminal("CompPIConstructor", e0);
 
19717
    shift(216);                     // 'processing-instruction'
 
19718
    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19719
    switch (l1)
 
19720
    {
 
19721
    case 276:                       // '{'
 
19722
      shift(276);                   // '{'
 
19723
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19724
      whitespace();
 
19725
      parse_Expr();
 
19726
      shift(282);                   // '}'
 
19727
      break;
 
19728
    default:
 
19729
      whitespace();
 
19730
      parse_NCName();
 
19731
    }
 
19732
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19733
    switch (l1)
 
19734
    {
 
19735
    case 276:                       // '{'
 
19736
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19737
      break;
 
19738
    default:
 
19739
      lk = l1;
 
19740
    }
 
19741
    if (lk == 144660)               // '{' '}'
 
19742
    {
 
19743
      lk = memoized(11, e0);
 
19744
      if (lk == 0)
 
19745
      {
 
19746
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19747
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19748
        var b2A = b2; var e2A = e2;
 
19749
        try
 
19750
        {
 
19751
          shiftT(276);              // '{'
 
19752
          lookahead1W(88);          // S^WS | '(:' | '}'
 
19753
          shiftT(282);              // '}'
 
19754
          lk = -1;
 
19755
        }
 
19756
        catch (p1A)
 
19757
        {
 
19758
          lk = -2;
 
19759
        }
 
19760
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19761
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19762
        b2 = b2A; e2 = e2A; end = e2A; }}
 
19763
        memoize(11, e0, lk);
 
19764
      }
 
19765
    }
 
19766
    switch (lk)
 
19767
    {
 
19768
    case -1:
 
19769
      shift(276);                   // '{'
 
19770
      lookahead1W(88);              // S^WS | '(:' | '}'
 
19771
      shift(282);                   // '}'
 
19772
      break;
 
19773
    default:
 
19774
      whitespace();
 
19775
      parse_BlockExpr();
 
19776
    }
 
19777
    eventHandler.endNonterminal("CompPIConstructor", e0);
 
19778
  }
 
19779
 
 
19780
  function try_CompPIConstructor()
 
19781
  {
 
19782
    shiftT(216);                    // 'processing-instruction'
 
19783
    lookahead1W(249);               // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19784
    switch (l1)
 
19785
    {
 
19786
    case 276:                       // '{'
 
19787
      shiftT(276);                  // '{'
 
19788
      lookahead1W(267);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19789
      try_Expr();
 
19790
      shiftT(282);                  // '}'
 
19791
      break;
 
19792
    default:
 
19793
      try_NCName();
 
19794
    }
 
19795
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19796
    switch (l1)
 
19797
    {
 
19798
    case 276:                       // '{'
 
19799
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19800
      break;
 
19801
    default:
 
19802
      lk = l1;
 
19803
    }
 
19804
    if (lk == 144660)               // '{' '}'
 
19805
    {
 
19806
      lk = memoized(11, e0);
 
19807
      if (lk == 0)
 
19808
      {
 
19809
        var b0A = b0; var e0A = e0; var l1A = l1;
 
19810
        var b1A = b1; var e1A = e1; var l2A = l2;
 
19811
        var b2A = b2; var e2A = e2;
 
19812
        try
 
19813
        {
 
19814
          shiftT(276);              // '{'
 
19815
          lookahead1W(88);          // S^WS | '(:' | '}'
 
19816
          shiftT(282);              // '}'
 
19817
          memoize(11, e0A, -1);
 
19818
          lk = -3;
 
19819
        }
 
19820
        catch (p1A)
 
19821
        {
 
19822
          lk = -2;
 
19823
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
19824
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
19825
          b2 = b2A; e2 = e2A; end = e2A; }}
 
19826
          memoize(11, e0A, -2);
 
19827
        }
 
19828
      }
 
19829
    }
 
19830
    switch (lk)
 
19831
    {
 
19832
    case -1:
 
19833
      shiftT(276);                  // '{'
 
19834
      lookahead1W(88);              // S^WS | '(:' | '}'
 
19835
      shiftT(282);                  // '}'
 
19836
      break;
 
19837
    case -3:
 
19838
      break;
 
19839
    default:
 
19840
      try_BlockExpr();
 
19841
    }
 
19842
  }
 
19843
 
 
19844
  function parse_CompCommentConstructor()
 
19845
  {
 
19846
    eventHandler.startNonterminal("CompCommentConstructor", e0);
 
19847
    shift(96);                      // 'comment'
 
19848
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19849
    whitespace();
 
19850
    parse_BlockExpr();
 
19851
    eventHandler.endNonterminal("CompCommentConstructor", e0);
 
19852
  }
 
19853
 
 
19854
  function try_CompCommentConstructor()
 
19855
  {
 
19856
    shiftT(96);                     // 'comment'
 
19857
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19858
    try_BlockExpr();
 
19859
  }
 
19860
 
 
19861
  function parse_CompTextConstructor()
 
19862
  {
 
19863
    eventHandler.startNonterminal("CompTextConstructor", e0);
 
19864
    shift(244);                     // 'text'
 
19865
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19866
    whitespace();
 
19867
    parse_BlockExpr();
 
19868
    eventHandler.endNonterminal("CompTextConstructor", e0);
 
19869
  }
 
19870
 
 
19871
  function try_CompTextConstructor()
 
19872
  {
 
19873
    shiftT(244);                    // 'text'
 
19874
    lookahead1W(87);                // S^WS | '(:' | '{'
 
19875
    try_BlockExpr();
 
19876
  }
 
19877
 
 
19878
  function parse_PrimaryExpr()
 
19879
  {
 
19880
    eventHandler.startNonterminal("PrimaryExpr", e0);
 
19881
    switch (l1)
 
19882
    {
 
19883
    case 184:                       // 'namespace'
 
19884
      lookahead2W(254);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19885
      break;
 
19886
    case 216:                       // 'processing-instruction'
 
19887
      lookahead2W(252);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19888
      break;
 
19889
    case 276:                       // '{'
 
19890
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
19891
      break;
 
19892
    case 82:                        // 'attribute'
 
19893
    case 121:                       // 'element'
 
19894
      lookahead2W(257);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
19895
      break;
 
19896
    case 96:                        // 'comment'
 
19897
    case 244:                       // 'text'
 
19898
      lookahead2W(93);              // S^WS | '#' | '(:' | '{'
 
19899
      break;
 
19900
    case 119:                       // 'document'
 
19901
    case 202:                       // 'ordered'
 
19902
    case 256:                       // 'unordered'
 
19903
      lookahead2W(139);             // S^WS | '#' | '(' | '(:' | '{'
 
19904
      break;
 
19905
    case 6:                         // EQName^Token
 
19906
    case 70:                        // 'after'
 
19907
    case 72:                        // 'allowing'
 
19908
    case 73:                        // 'ancestor'
 
19909
    case 74:                        // 'ancestor-or-self'
 
19910
    case 75:                        // 'and'
 
19911
    case 78:                        // 'array'
 
19912
    case 79:                        // 'as'
 
19913
    case 80:                        // 'ascending'
 
19914
    case 81:                        // 'at'
 
19915
    case 83:                        // 'base-uri'
 
19916
    case 84:                        // 'before'
 
19917
    case 85:                        // 'boundary-space'
 
19918
    case 86:                        // 'break'
 
19919
    case 88:                        // 'case'
 
19920
    case 89:                        // 'cast'
 
19921
    case 90:                        // 'castable'
 
19922
    case 91:                        // 'catch'
 
19923
    case 93:                        // 'child'
 
19924
    case 94:                        // 'collation'
 
19925
    case 97:                        // 'constraint'
 
19926
    case 98:                        // 'construction'
 
19927
    case 101:                       // 'context'
 
19928
    case 102:                       // 'continue'
 
19929
    case 103:                       // 'copy'
 
19930
    case 104:                       // 'copy-namespaces'
 
19931
    case 105:                       // 'count'
 
19932
    case 106:                       // 'decimal-format'
 
19933
    case 108:                       // 'declare'
 
19934
    case 109:                       // 'default'
 
19935
    case 110:                       // 'delete'
 
19936
    case 111:                       // 'descendant'
 
19937
    case 112:                       // 'descendant-or-self'
 
19938
    case 113:                       // 'descending'
 
19939
    case 118:                       // 'div'
 
19940
    case 122:                       // 'else'
 
19941
    case 123:                       // 'empty'
 
19942
    case 125:                       // 'encoding'
 
19943
    case 126:                       // 'end'
 
19944
    case 128:                       // 'eq'
 
19945
    case 129:                       // 'every'
 
19946
    case 131:                       // 'except'
 
19947
    case 132:                       // 'exit'
 
19948
    case 133:                       // 'external'
 
19949
    case 134:                       // 'first'
 
19950
    case 135:                       // 'following'
 
19951
    case 136:                       // 'following-sibling'
 
19952
    case 137:                       // 'for'
 
19953
    case 141:                       // 'ft-option'
 
19954
    case 146:                       // 'ge'
 
19955
    case 148:                       // 'group'
 
19956
    case 150:                       // 'gt'
 
19957
    case 151:                       // 'idiv'
 
19958
    case 153:                       // 'import'
 
19959
    case 154:                       // 'in'
 
19960
    case 155:                       // 'index'
 
19961
    case 159:                       // 'insert'
 
19962
    case 160:                       // 'instance'
 
19963
    case 161:                       // 'integrity'
 
19964
    case 162:                       // 'intersect'
 
19965
    case 163:                       // 'into'
 
19966
    case 164:                       // 'is'
 
19967
    case 167:                       // 'json-item'
 
19968
    case 170:                       // 'last'
 
19969
    case 171:                       // 'lax'
 
19970
    case 172:                       // 'le'
 
19971
    case 174:                       // 'let'
 
19972
    case 176:                       // 'loop'
 
19973
    case 178:                       // 'lt'
 
19974
    case 180:                       // 'mod'
 
19975
    case 181:                       // 'modify'
 
19976
    case 182:                       // 'module'
 
19977
    case 186:                       // 'ne'
 
19978
    case 192:                       // 'nodes'
 
19979
    case 194:                       // 'object'
 
19980
    case 198:                       // 'only'
 
19981
    case 199:                       // 'option'
 
19982
    case 200:                       // 'or'
 
19983
    case 201:                       // 'order'
 
19984
    case 203:                       // 'ordering'
 
19985
    case 206:                       // 'parent'
 
19986
    case 212:                       // 'preceding'
 
19987
    case 213:                       // 'preceding-sibling'
 
19988
    case 218:                       // 'rename'
 
19989
    case 219:                       // 'replace'
 
19990
    case 220:                       // 'return'
 
19991
    case 221:                       // 'returning'
 
19992
    case 222:                       // 'revalidation'
 
19993
    case 224:                       // 'satisfies'
 
19994
    case 225:                       // 'schema'
 
19995
    case 228:                       // 'score'
 
19996
    case 229:                       // 'self'
 
19997
    case 234:                       // 'sliding'
 
19998
    case 235:                       // 'some'
 
19999
    case 236:                       // 'stable'
 
20000
    case 237:                       // 'start'
 
20001
    case 240:                       // 'strict'
 
20002
    case 248:                       // 'to'
 
20003
    case 249:                       // 'treat'
 
20004
    case 250:                       // 'try'
 
20005
    case 251:                       // 'tumbling'
 
20006
    case 252:                       // 'type'
 
20007
    case 254:                       // 'union'
 
20008
    case 257:                       // 'updating'
 
20009
    case 260:                       // 'validate'
 
20010
    case 261:                       // 'value'
 
20011
    case 262:                       // 'variable'
 
20012
    case 263:                       // 'version'
 
20013
    case 266:                       // 'where'
 
20014
    case 267:                       // 'while'
 
20015
    case 270:                       // 'with'
 
20016
    case 274:                       // 'xquery'
 
20017
      lookahead2W(92);              // S^WS | '#' | '(' | '(:'
 
20018
      break;
 
20019
    default:
 
20020
      lk = l1;
 
20021
    }
 
20022
    if (lk == 2836                  // '{' Wildcard
 
20023
     || lk == 3348                  // '{' EQName^Token
 
20024
     || lk == 4372                  // '{' IntegerLiteral
 
20025
     || lk == 4884                  // '{' DecimalLiteral
 
20026
     || lk == 5396                  // '{' DoubleLiteral
 
20027
     || lk == 5908                  // '{' StringLiteral
 
20028
     || lk == 16148                 // '{' '$'
 
20029
     || lk == 16660                 // '{' '%'
 
20030
     || lk == 17684                 // '{' '('
 
20031
     || lk == 18196                 // '{' '(#'
 
20032
     || lk == 20756                 // '{' '+'
 
20033
     || lk == 21780                 // '{' '-'
 
20034
     || lk == 22804                 // '{' '.'
 
20035
     || lk == 23316                 // '{' '..'
 
20036
     || lk == 23828                 // '{' '/'
 
20037
     || lk == 24340                 // '{' '//'
 
20038
     || lk == 27924                 // '{' '<'
 
20039
     || lk == 28436                 // '{' '<!--'
 
20040
     || lk == 30484                 // '{' '<?'
 
20041
     || lk == 34068                 // '{' '@'
 
20042
     || lk == 35092                 // '{' '['
 
20043
     || lk == 36116                 // '{' 'after'
 
20044
     || lk == 37140                 // '{' 'allowing'
 
20045
     || lk == 37652                 // '{' 'ancestor'
 
20046
     || lk == 38164                 // '{' 'ancestor-or-self'
 
20047
     || lk == 38676                 // '{' 'and'
 
20048
     || lk == 39700                 // '{' 'append'
 
20049
     || lk == 40212                 // '{' 'array'
 
20050
     || lk == 40724                 // '{' 'as'
 
20051
     || lk == 41236                 // '{' 'ascending'
 
20052
     || lk == 41748                 // '{' 'at'
 
20053
     || lk == 42260                 // '{' 'attribute'
 
20054
     || lk == 42772                 // '{' 'base-uri'
 
20055
     || lk == 43284                 // '{' 'before'
 
20056
     || lk == 43796                 // '{' 'boundary-space'
 
20057
     || lk == 44308                 // '{' 'break'
 
20058
     || lk == 45332                 // '{' 'case'
 
20059
     || lk == 45844                 // '{' 'cast'
 
20060
     || lk == 46356                 // '{' 'castable'
 
20061
     || lk == 46868                 // '{' 'catch'
 
20062
     || lk == 47892                 // '{' 'child'
 
20063
     || lk == 48404                 // '{' 'collation'
 
20064
     || lk == 49428                 // '{' 'comment'
 
20065
     || lk == 49940                 // '{' 'constraint'
 
20066
     || lk == 50452                 // '{' 'construction'
 
20067
     || lk == 51988                 // '{' 'context'
 
20068
     || lk == 52500                 // '{' 'continue'
 
20069
     || lk == 53012                 // '{' 'copy'
 
20070
     || lk == 53524                 // '{' 'copy-namespaces'
 
20071
     || lk == 54036                 // '{' 'count'
 
20072
     || lk == 54548                 // '{' 'decimal-format'
 
20073
     || lk == 55572                 // '{' 'declare'
 
20074
     || lk == 56084                 // '{' 'default'
 
20075
     || lk == 56596                 // '{' 'delete'
 
20076
     || lk == 57108                 // '{' 'descendant'
 
20077
     || lk == 57620                 // '{' 'descendant-or-self'
 
20078
     || lk == 58132                 // '{' 'descending'
 
20079
     || lk == 60692                 // '{' 'div'
 
20080
     || lk == 61204                 // '{' 'document'
 
20081
     || lk == 61716                 // '{' 'document-node'
 
20082
     || lk == 62228                 // '{' 'element'
 
20083
     || lk == 62740                 // '{' 'else'
 
20084
     || lk == 63252                 // '{' 'empty'
 
20085
     || lk == 63764                 // '{' 'empty-sequence'
 
20086
     || lk == 64276                 // '{' 'encoding'
 
20087
     || lk == 64788                 // '{' 'end'
 
20088
     || lk == 65812                 // '{' 'eq'
 
20089
     || lk == 66324                 // '{' 'every'
 
20090
     || lk == 67348                 // '{' 'except'
 
20091
     || lk == 67860                 // '{' 'exit'
 
20092
     || lk == 68372                 // '{' 'external'
 
20093
     || lk == 68884                 // '{' 'first'
 
20094
     || lk == 69396                 // '{' 'following'
 
20095
     || lk == 69908                 // '{' 'following-sibling'
 
20096
     || lk == 70420                 // '{' 'for'
 
20097
     || lk == 72468                 // '{' 'ft-option'
 
20098
     || lk == 74516                 // '{' 'function'
 
20099
     || lk == 75028                 // '{' 'ge'
 
20100
     || lk == 76052                 // '{' 'group'
 
20101
     || lk == 77076                 // '{' 'gt'
 
20102
     || lk == 77588                 // '{' 'idiv'
 
20103
     || lk == 78100                 // '{' 'if'
 
20104
     || lk == 78612                 // '{' 'import'
 
20105
     || lk == 79124                 // '{' 'in'
 
20106
     || lk == 79636                 // '{' 'index'
 
20107
     || lk == 81684                 // '{' 'insert'
 
20108
     || lk == 82196                 // '{' 'instance'
 
20109
     || lk == 82708                 // '{' 'integrity'
 
20110
     || lk == 83220                 // '{' 'intersect'
 
20111
     || lk == 83732                 // '{' 'into'
 
20112
     || lk == 84244                 // '{' 'is'
 
20113
     || lk == 84756                 // '{' 'item'
 
20114
     || lk == 85780                 // '{' 'json-item'
 
20115
     || lk == 87316                 // '{' 'last'
 
20116
     || lk == 87828                 // '{' 'lax'
 
20117
     || lk == 88340                 // '{' 'le'
 
20118
     || lk == 89364                 // '{' 'let'
 
20119
     || lk == 90388                 // '{' 'loop'
 
20120
     || lk == 91412                 // '{' 'lt'
 
20121
     || lk == 92436                 // '{' 'mod'
 
20122
     || lk == 92948                 // '{' 'modify'
 
20123
     || lk == 93460                 // '{' 'module'
 
20124
     || lk == 94484                 // '{' 'namespace'
 
20125
     || lk == 94996                 // '{' 'namespace-node'
 
20126
     || lk == 95508                 // '{' 'ne'
 
20127
     || lk == 98068                 // '{' 'node'
 
20128
     || lk == 98580                 // '{' 'nodes'
 
20129
     || lk == 99604                 // '{' 'object'
 
20130
     || lk == 101652                // '{' 'only'
 
20131
     || lk == 102164                // '{' 'option'
 
20132
     || lk == 102676                // '{' 'or'
 
20133
     || lk == 103188                // '{' 'order'
 
20134
     || lk == 103700                // '{' 'ordered'
 
20135
     || lk == 104212                // '{' 'ordering'
 
20136
     || lk == 105748                // '{' 'parent'
 
20137
     || lk == 108820                // '{' 'preceding'
 
20138
     || lk == 109332                // '{' 'preceding-sibling'
 
20139
     || lk == 110868                // '{' 'processing-instruction'
 
20140
     || lk == 111892                // '{' 'rename'
 
20141
     || lk == 112404                // '{' 'replace'
 
20142
     || lk == 112916                // '{' 'return'
 
20143
     || lk == 113428                // '{' 'returning'
 
20144
     || lk == 113940                // '{' 'revalidation'
 
20145
     || lk == 114964                // '{' 'satisfies'
 
20146
     || lk == 115476                // '{' 'schema'
 
20147
     || lk == 115988                // '{' 'schema-attribute'
 
20148
     || lk == 116500                // '{' 'schema-element'
 
20149
     || lk == 117012                // '{' 'score'
 
20150
     || lk == 117524                // '{' 'self'
 
20151
     || lk == 120084                // '{' 'sliding'
 
20152
     || lk == 120596                // '{' 'some'
 
20153
     || lk == 121108                // '{' 'stable'
 
20154
     || lk == 121620                // '{' 'start'
 
20155
     || lk == 123156                // '{' 'strict'
 
20156
     || lk == 124692                // '{' 'switch'
 
20157
     || lk == 125204                // '{' 'text'
 
20158
     || lk == 127252                // '{' 'to'
 
20159
     || lk == 127764                // '{' 'treat'
 
20160
     || lk == 128276                // '{' 'try'
 
20161
     || lk == 128788                // '{' 'tumbling'
 
20162
     || lk == 129300                // '{' 'type'
 
20163
     || lk == 129812                // '{' 'typeswitch'
 
20164
     || lk == 130324                // '{' 'union'
 
20165
     || lk == 131348                // '{' 'unordered'
 
20166
     || lk == 131860                // '{' 'updating'
 
20167
     || lk == 133396                // '{' 'validate'
 
20168
     || lk == 133908                // '{' 'value'
 
20169
     || lk == 134420                // '{' 'variable'
 
20170
     || lk == 134932                // '{' 'version'
 
20171
     || lk == 136468                // '{' 'where'
 
20172
     || lk == 136980                // '{' 'while'
 
20173
     || lk == 138516                // '{' 'with'
 
20174
     || lk == 140564                // '{' 'xquery'
 
20175
     || lk == 141588                // '{' '{'
 
20176
     || lk == 142612                // '{' '{|'
 
20177
     || lk == 144660)               // '{' '}'
 
20178
    {
 
20179
      lk = memoized(12, e0);
 
20180
      if (lk == 0)
 
20181
      {
 
20182
        var b0A = b0; var e0A = e0; var l1A = l1;
 
20183
        var b1A = b1; var e1A = e1; var l2A = l2;
 
20184
        var b2A = b2; var e2A = e2;
 
20185
        try
 
20186
        {
 
20187
          try_BlockExpr();
 
20188
          lk = -10;
 
20189
        }
 
20190
        catch (p10A)
 
20191
        {
 
20192
          lk = -11;
 
20193
        }
 
20194
        b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
20195
        b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
20196
        b2 = b2A; e2 = e2A; end = e2A; }}
 
20197
        memoize(12, e0, lk);
 
20198
      }
 
20199
    }
 
20200
    switch (lk)
 
20201
    {
 
20202
    case 8:                         // IntegerLiteral
 
20203
    case 9:                         // DecimalLiteral
 
20204
    case 10:                        // DoubleLiteral
 
20205
    case 11:                        // StringLiteral
 
20206
      parse_Literal();
 
20207
      break;
 
20208
    case 31:                        // '$'
 
20209
      parse_VarRef();
 
20210
      break;
 
20211
    case 34:                        // '('
 
20212
      parse_ParenthesizedExpr();
 
20213
      break;
 
20214
    case 44:                        // '.'
 
20215
      parse_ContextItemExpr();
 
20216
      break;
 
20217
    case 17414:                     // EQName^Token '('
 
20218
    case 17478:                     // 'after' '('
 
20219
    case 17480:                     // 'allowing' '('
 
20220
    case 17481:                     // 'ancestor' '('
 
20221
    case 17482:                     // 'ancestor-or-self' '('
 
20222
    case 17483:                     // 'and' '('
 
20223
    case 17486:                     // 'array' '('
 
20224
    case 17487:                     // 'as' '('
 
20225
    case 17488:                     // 'ascending' '('
 
20226
    case 17489:                     // 'at' '('
 
20227
    case 17491:                     // 'base-uri' '('
 
20228
    case 17492:                     // 'before' '('
 
20229
    case 17493:                     // 'boundary-space' '('
 
20230
    case 17494:                     // 'break' '('
 
20231
    case 17496:                     // 'case' '('
 
20232
    case 17497:                     // 'cast' '('
 
20233
    case 17498:                     // 'castable' '('
 
20234
    case 17499:                     // 'catch' '('
 
20235
    case 17501:                     // 'child' '('
 
20236
    case 17502:                     // 'collation' '('
 
20237
    case 17505:                     // 'constraint' '('
 
20238
    case 17506:                     // 'construction' '('
 
20239
    case 17509:                     // 'context' '('
 
20240
    case 17510:                     // 'continue' '('
 
20241
    case 17511:                     // 'copy' '('
 
20242
    case 17512:                     // 'copy-namespaces' '('
 
20243
    case 17513:                     // 'count' '('
 
20244
    case 17514:                     // 'decimal-format' '('
 
20245
    case 17516:                     // 'declare' '('
 
20246
    case 17517:                     // 'default' '('
 
20247
    case 17518:                     // 'delete' '('
 
20248
    case 17519:                     // 'descendant' '('
 
20249
    case 17520:                     // 'descendant-or-self' '('
 
20250
    case 17521:                     // 'descending' '('
 
20251
    case 17526:                     // 'div' '('
 
20252
    case 17527:                     // 'document' '('
 
20253
    case 17530:                     // 'else' '('
 
20254
    case 17531:                     // 'empty' '('
 
20255
    case 17533:                     // 'encoding' '('
 
20256
    case 17534:                     // 'end' '('
 
20257
    case 17536:                     // 'eq' '('
 
20258
    case 17537:                     // 'every' '('
 
20259
    case 17539:                     // 'except' '('
 
20260
    case 17540:                     // 'exit' '('
 
20261
    case 17541:                     // 'external' '('
 
20262
    case 17542:                     // 'first' '('
 
20263
    case 17543:                     // 'following' '('
 
20264
    case 17544:                     // 'following-sibling' '('
 
20265
    case 17545:                     // 'for' '('
 
20266
    case 17549:                     // 'ft-option' '('
 
20267
    case 17554:                     // 'ge' '('
 
20268
    case 17556:                     // 'group' '('
 
20269
    case 17558:                     // 'gt' '('
 
20270
    case 17559:                     // 'idiv' '('
 
20271
    case 17561:                     // 'import' '('
 
20272
    case 17562:                     // 'in' '('
 
20273
    case 17563:                     // 'index' '('
 
20274
    case 17567:                     // 'insert' '('
 
20275
    case 17568:                     // 'instance' '('
 
20276
    case 17569:                     // 'integrity' '('
 
20277
    case 17570:                     // 'intersect' '('
 
20278
    case 17571:                     // 'into' '('
 
20279
    case 17572:                     // 'is' '('
 
20280
    case 17575:                     // 'json-item' '('
 
20281
    case 17578:                     // 'last' '('
 
20282
    case 17579:                     // 'lax' '('
 
20283
    case 17580:                     // 'le' '('
 
20284
    case 17582:                     // 'let' '('
 
20285
    case 17584:                     // 'loop' '('
 
20286
    case 17586:                     // 'lt' '('
 
20287
    case 17588:                     // 'mod' '('
 
20288
    case 17589:                     // 'modify' '('
 
20289
    case 17590:                     // 'module' '('
 
20290
    case 17592:                     // 'namespace' '('
 
20291
    case 17594:                     // 'ne' '('
 
20292
    case 17600:                     // 'nodes' '('
 
20293
    case 17602:                     // 'object' '('
 
20294
    case 17606:                     // 'only' '('
 
20295
    case 17607:                     // 'option' '('
 
20296
    case 17608:                     // 'or' '('
 
20297
    case 17609:                     // 'order' '('
 
20298
    case 17610:                     // 'ordered' '('
 
20299
    case 17611:                     // 'ordering' '('
 
20300
    case 17614:                     // 'parent' '('
 
20301
    case 17620:                     // 'preceding' '('
 
20302
    case 17621:                     // 'preceding-sibling' '('
 
20303
    case 17626:                     // 'rename' '('
 
20304
    case 17627:                     // 'replace' '('
 
20305
    case 17628:                     // 'return' '('
 
20306
    case 17629:                     // 'returning' '('
 
20307
    case 17630:                     // 'revalidation' '('
 
20308
    case 17632:                     // 'satisfies' '('
 
20309
    case 17633:                     // 'schema' '('
 
20310
    case 17636:                     // 'score' '('
 
20311
    case 17637:                     // 'self' '('
 
20312
    case 17642:                     // 'sliding' '('
 
20313
    case 17643:                     // 'some' '('
 
20314
    case 17644:                     // 'stable' '('
 
20315
    case 17645:                     // 'start' '('
 
20316
    case 17648:                     // 'strict' '('
 
20317
    case 17656:                     // 'to' '('
 
20318
    case 17657:                     // 'treat' '('
 
20319
    case 17658:                     // 'try' '('
 
20320
    case 17659:                     // 'tumbling' '('
 
20321
    case 17660:                     // 'type' '('
 
20322
    case 17662:                     // 'union' '('
 
20323
    case 17664:                     // 'unordered' '('
 
20324
    case 17665:                     // 'updating' '('
 
20325
    case 17668:                     // 'validate' '('
 
20326
    case 17669:                     // 'value' '('
 
20327
    case 17670:                     // 'variable' '('
 
20328
    case 17671:                     // 'version' '('
 
20329
    case 17674:                     // 'where' '('
 
20330
    case 17675:                     // 'while' '('
 
20331
    case 17678:                     // 'with' '('
 
20332
    case 17682:                     // 'xquery' '('
 
20333
      parse_FunctionCall();
 
20334
      break;
 
20335
    case 141514:                    // 'ordered' '{'
 
20336
      parse_OrderedExpr();
 
20337
      break;
 
20338
    case 141568:                    // 'unordered' '{'
 
20339
      parse_UnorderedExpr();
 
20340
      break;
 
20341
    case 32:                        // '%'
 
20342
    case 120:                       // 'document-node'
 
20343
    case 124:                       // 'empty-sequence'
 
20344
    case 145:                       // 'function'
 
20345
    case 152:                       // 'if'
 
20346
    case 165:                       // 'item'
 
20347
    case 185:                       // 'namespace-node'
 
20348
    case 191:                       // 'node'
 
20349
    case 226:                       // 'schema-attribute'
 
20350
    case 227:                       // 'schema-element'
 
20351
    case 243:                       // 'switch'
 
20352
    case 253:                       // 'typeswitch'
 
20353
    case 14854:                     // EQName^Token '#'
 
20354
    case 14918:                     // 'after' '#'
 
20355
    case 14920:                     // 'allowing' '#'
 
20356
    case 14921:                     // 'ancestor' '#'
 
20357
    case 14922:                     // 'ancestor-or-self' '#'
 
20358
    case 14923:                     // 'and' '#'
 
20359
    case 14926:                     // 'array' '#'
 
20360
    case 14927:                     // 'as' '#'
 
20361
    case 14928:                     // 'ascending' '#'
 
20362
    case 14929:                     // 'at' '#'
 
20363
    case 14930:                     // 'attribute' '#'
 
20364
    case 14931:                     // 'base-uri' '#'
 
20365
    case 14932:                     // 'before' '#'
 
20366
    case 14933:                     // 'boundary-space' '#'
 
20367
    case 14934:                     // 'break' '#'
 
20368
    case 14936:                     // 'case' '#'
 
20369
    case 14937:                     // 'cast' '#'
 
20370
    case 14938:                     // 'castable' '#'
 
20371
    case 14939:                     // 'catch' '#'
 
20372
    case 14941:                     // 'child' '#'
 
20373
    case 14942:                     // 'collation' '#'
 
20374
    case 14944:                     // 'comment' '#'
 
20375
    case 14945:                     // 'constraint' '#'
 
20376
    case 14946:                     // 'construction' '#'
 
20377
    case 14949:                     // 'context' '#'
 
20378
    case 14950:                     // 'continue' '#'
 
20379
    case 14951:                     // 'copy' '#'
 
20380
    case 14952:                     // 'copy-namespaces' '#'
 
20381
    case 14953:                     // 'count' '#'
 
20382
    case 14954:                     // 'decimal-format' '#'
 
20383
    case 14956:                     // 'declare' '#'
 
20384
    case 14957:                     // 'default' '#'
 
20385
    case 14958:                     // 'delete' '#'
 
20386
    case 14959:                     // 'descendant' '#'
 
20387
    case 14960:                     // 'descendant-or-self' '#'
 
20388
    case 14961:                     // 'descending' '#'
 
20389
    case 14966:                     // 'div' '#'
 
20390
    case 14967:                     // 'document' '#'
 
20391
    case 14969:                     // 'element' '#'
 
20392
    case 14970:                     // 'else' '#'
 
20393
    case 14971:                     // 'empty' '#'
 
20394
    case 14973:                     // 'encoding' '#'
 
20395
    case 14974:                     // 'end' '#'
 
20396
    case 14976:                     // 'eq' '#'
 
20397
    case 14977:                     // 'every' '#'
 
20398
    case 14979:                     // 'except' '#'
 
20399
    case 14980:                     // 'exit' '#'
 
20400
    case 14981:                     // 'external' '#'
 
20401
    case 14982:                     // 'first' '#'
 
20402
    case 14983:                     // 'following' '#'
 
20403
    case 14984:                     // 'following-sibling' '#'
 
20404
    case 14985:                     // 'for' '#'
 
20405
    case 14989:                     // 'ft-option' '#'
 
20406
    case 14994:                     // 'ge' '#'
 
20407
    case 14996:                     // 'group' '#'
 
20408
    case 14998:                     // 'gt' '#'
 
20409
    case 14999:                     // 'idiv' '#'
 
20410
    case 15001:                     // 'import' '#'
 
20411
    case 15002:                     // 'in' '#'
 
20412
    case 15003:                     // 'index' '#'
 
20413
    case 15007:                     // 'insert' '#'
 
20414
    case 15008:                     // 'instance' '#'
 
20415
    case 15009:                     // 'integrity' '#'
 
20416
    case 15010:                     // 'intersect' '#'
 
20417
    case 15011:                     // 'into' '#'
 
20418
    case 15012:                     // 'is' '#'
 
20419
    case 15015:                     // 'json-item' '#'
 
20420
    case 15018:                     // 'last' '#'
 
20421
    case 15019:                     // 'lax' '#'
 
20422
    case 15020:                     // 'le' '#'
 
20423
    case 15022:                     // 'let' '#'
 
20424
    case 15024:                     // 'loop' '#'
 
20425
    case 15026:                     // 'lt' '#'
 
20426
    case 15028:                     // 'mod' '#'
 
20427
    case 15029:                     // 'modify' '#'
 
20428
    case 15030:                     // 'module' '#'
 
20429
    case 15032:                     // 'namespace' '#'
 
20430
    case 15034:                     // 'ne' '#'
 
20431
    case 15040:                     // 'nodes' '#'
 
20432
    case 15042:                     // 'object' '#'
 
20433
    case 15046:                     // 'only' '#'
 
20434
    case 15047:                     // 'option' '#'
 
20435
    case 15048:                     // 'or' '#'
 
20436
    case 15049:                     // 'order' '#'
 
20437
    case 15050:                     // 'ordered' '#'
 
20438
    case 15051:                     // 'ordering' '#'
 
20439
    case 15054:                     // 'parent' '#'
 
20440
    case 15060:                     // 'preceding' '#'
 
20441
    case 15061:                     // 'preceding-sibling' '#'
 
20442
    case 15064:                     // 'processing-instruction' '#'
 
20443
    case 15066:                     // 'rename' '#'
 
20444
    case 15067:                     // 'replace' '#'
 
20445
    case 15068:                     // 'return' '#'
 
20446
    case 15069:                     // 'returning' '#'
 
20447
    case 15070:                     // 'revalidation' '#'
 
20448
    case 15072:                     // 'satisfies' '#'
 
20449
    case 15073:                     // 'schema' '#'
 
20450
    case 15076:                     // 'score' '#'
 
20451
    case 15077:                     // 'self' '#'
 
20452
    case 15082:                     // 'sliding' '#'
 
20453
    case 15083:                     // 'some' '#'
 
20454
    case 15084:                     // 'stable' '#'
 
20455
    case 15085:                     // 'start' '#'
 
20456
    case 15088:                     // 'strict' '#'
 
20457
    case 15092:                     // 'text' '#'
 
20458
    case 15096:                     // 'to' '#'
 
20459
    case 15097:                     // 'treat' '#'
 
20460
    case 15098:                     // 'try' '#'
 
20461
    case 15099:                     // 'tumbling' '#'
 
20462
    case 15100:                     // 'type' '#'
 
20463
    case 15102:                     // 'union' '#'
 
20464
    case 15104:                     // 'unordered' '#'
 
20465
    case 15105:                     // 'updating' '#'
 
20466
    case 15108:                     // 'validate' '#'
 
20467
    case 15109:                     // 'value' '#'
 
20468
    case 15110:                     // 'variable' '#'
 
20469
    case 15111:                     // 'version' '#'
 
20470
    case 15114:                     // 'where' '#'
 
20471
    case 15115:                     // 'while' '#'
 
20472
    case 15118:                     // 'with' '#'
 
20473
    case 15122:                     // 'xquery' '#'
 
20474
      parse_FunctionItemExpr();
 
20475
      break;
 
20476
    case -10:
 
20477
      parse_BlockExpr();
 
20478
      break;
 
20479
    case -11:
 
20480
      parse_ObjectConstructor();
 
20481
      break;
 
20482
    case 68:                        // '['
 
20483
      parse_ArrayConstructor();
 
20484
      break;
 
20485
    case 278:                       // '{|'
 
20486
      parse_JSONSimpleObjectUnion();
 
20487
      break;
 
20488
    default:
 
20489
      parse_Constructor();
 
20490
    }
 
20491
    eventHandler.endNonterminal("PrimaryExpr", e0);
 
20492
  }
 
20493
 
 
20494
  function try_PrimaryExpr()
 
20495
  {
 
20496
    switch (l1)
 
20497
    {
 
20498
    case 184:                       // 'namespace'
 
20499
      lookahead2W(254);             // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
20500
      break;
 
20501
    case 216:                       // 'processing-instruction'
 
20502
      lookahead2W(252);             // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
20503
      break;
 
20504
    case 276:                       // '{'
 
20505
      lookahead2W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
20506
      break;
 
20507
    case 82:                        // 'attribute'
 
20508
    case 121:                       // 'element'
 
20509
      lookahead2W(257);             // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
20510
      break;
 
20511
    case 96:                        // 'comment'
 
20512
    case 244:                       // 'text'
 
20513
      lookahead2W(93);              // S^WS | '#' | '(:' | '{'
 
20514
      break;
 
20515
    case 119:                       // 'document'
 
20516
    case 202:                       // 'ordered'
 
20517
    case 256:                       // 'unordered'
 
20518
      lookahead2W(139);             // S^WS | '#' | '(' | '(:' | '{'
 
20519
      break;
 
20520
    case 6:                         // EQName^Token
 
20521
    case 70:                        // 'after'
 
20522
    case 72:                        // 'allowing'
 
20523
    case 73:                        // 'ancestor'
 
20524
    case 74:                        // 'ancestor-or-self'
 
20525
    case 75:                        // 'and'
 
20526
    case 78:                        // 'array'
 
20527
    case 79:                        // 'as'
 
20528
    case 80:                        // 'ascending'
 
20529
    case 81:                        // 'at'
 
20530
    case 83:                        // 'base-uri'
 
20531
    case 84:                        // 'before'
 
20532
    case 85:                        // 'boundary-space'
 
20533
    case 86:                        // 'break'
 
20534
    case 88:                        // 'case'
 
20535
    case 89:                        // 'cast'
 
20536
    case 90:                        // 'castable'
 
20537
    case 91:                        // 'catch'
 
20538
    case 93:                        // 'child'
 
20539
    case 94:                        // 'collation'
 
20540
    case 97:                        // 'constraint'
 
20541
    case 98:                        // 'construction'
 
20542
    case 101:                       // 'context'
 
20543
    case 102:                       // 'continue'
 
20544
    case 103:                       // 'copy'
 
20545
    case 104:                       // 'copy-namespaces'
 
20546
    case 105:                       // 'count'
 
20547
    case 106:                       // 'decimal-format'
 
20548
    case 108:                       // 'declare'
 
20549
    case 109:                       // 'default'
 
20550
    case 110:                       // 'delete'
 
20551
    case 111:                       // 'descendant'
 
20552
    case 112:                       // 'descendant-or-self'
 
20553
    case 113:                       // 'descending'
 
20554
    case 118:                       // 'div'
 
20555
    case 122:                       // 'else'
 
20556
    case 123:                       // 'empty'
 
20557
    case 125:                       // 'encoding'
 
20558
    case 126:                       // 'end'
 
20559
    case 128:                       // 'eq'
 
20560
    case 129:                       // 'every'
 
20561
    case 131:                       // 'except'
 
20562
    case 132:                       // 'exit'
 
20563
    case 133:                       // 'external'
 
20564
    case 134:                       // 'first'
 
20565
    case 135:                       // 'following'
 
20566
    case 136:                       // 'following-sibling'
 
20567
    case 137:                       // 'for'
 
20568
    case 141:                       // 'ft-option'
 
20569
    case 146:                       // 'ge'
 
20570
    case 148:                       // 'group'
 
20571
    case 150:                       // 'gt'
 
20572
    case 151:                       // 'idiv'
 
20573
    case 153:                       // 'import'
 
20574
    case 154:                       // 'in'
 
20575
    case 155:                       // 'index'
 
20576
    case 159:                       // 'insert'
 
20577
    case 160:                       // 'instance'
 
20578
    case 161:                       // 'integrity'
 
20579
    case 162:                       // 'intersect'
 
20580
    case 163:                       // 'into'
 
20581
    case 164:                       // 'is'
 
20582
    case 167:                       // 'json-item'
 
20583
    case 170:                       // 'last'
 
20584
    case 171:                       // 'lax'
 
20585
    case 172:                       // 'le'
 
20586
    case 174:                       // 'let'
 
20587
    case 176:                       // 'loop'
 
20588
    case 178:                       // 'lt'
 
20589
    case 180:                       // 'mod'
 
20590
    case 181:                       // 'modify'
 
20591
    case 182:                       // 'module'
 
20592
    case 186:                       // 'ne'
 
20593
    case 192:                       // 'nodes'
 
20594
    case 194:                       // 'object'
 
20595
    case 198:                       // 'only'
 
20596
    case 199:                       // 'option'
 
20597
    case 200:                       // 'or'
 
20598
    case 201:                       // 'order'
 
20599
    case 203:                       // 'ordering'
 
20600
    case 206:                       // 'parent'
 
20601
    case 212:                       // 'preceding'
 
20602
    case 213:                       // 'preceding-sibling'
 
20603
    case 218:                       // 'rename'
 
20604
    case 219:                       // 'replace'
 
20605
    case 220:                       // 'return'
 
20606
    case 221:                       // 'returning'
 
20607
    case 222:                       // 'revalidation'
 
20608
    case 224:                       // 'satisfies'
 
20609
    case 225:                       // 'schema'
 
20610
    case 228:                       // 'score'
 
20611
    case 229:                       // 'self'
 
20612
    case 234:                       // 'sliding'
 
20613
    case 235:                       // 'some'
 
20614
    case 236:                       // 'stable'
 
20615
    case 237:                       // 'start'
 
20616
    case 240:                       // 'strict'
 
20617
    case 248:                       // 'to'
 
20618
    case 249:                       // 'treat'
 
20619
    case 250:                       // 'try'
 
20620
    case 251:                       // 'tumbling'
 
20621
    case 252:                       // 'type'
 
20622
    case 254:                       // 'union'
 
20623
    case 257:                       // 'updating'
 
20624
    case 260:                       // 'validate'
 
20625
    case 261:                       // 'value'
 
20626
    case 262:                       // 'variable'
 
20627
    case 263:                       // 'version'
 
20628
    case 266:                       // 'where'
 
20629
    case 267:                       // 'while'
 
20630
    case 270:                       // 'with'
 
20631
    case 274:                       // 'xquery'
 
20632
      lookahead2W(92);              // S^WS | '#' | '(' | '(:'
 
20633
      break;
 
20634
    default:
 
20635
      lk = l1;
 
20636
    }
 
20637
    if (lk == 2836                  // '{' Wildcard
 
20638
     || lk == 3348                  // '{' EQName^Token
 
20639
     || lk == 4372                  // '{' IntegerLiteral
 
20640
     || lk == 4884                  // '{' DecimalLiteral
 
20641
     || lk == 5396                  // '{' DoubleLiteral
 
20642
     || lk == 5908                  // '{' StringLiteral
 
20643
     || lk == 16148                 // '{' '$'
 
20644
     || lk == 16660                 // '{' '%'
 
20645
     || lk == 17684                 // '{' '('
 
20646
     || lk == 18196                 // '{' '(#'
 
20647
     || lk == 20756                 // '{' '+'
 
20648
     || lk == 21780                 // '{' '-'
 
20649
     || lk == 22804                 // '{' '.'
 
20650
     || lk == 23316                 // '{' '..'
 
20651
     || lk == 23828                 // '{' '/'
 
20652
     || lk == 24340                 // '{' '//'
 
20653
     || lk == 27924                 // '{' '<'
 
20654
     || lk == 28436                 // '{' '<!--'
 
20655
     || lk == 30484                 // '{' '<?'
 
20656
     || lk == 34068                 // '{' '@'
 
20657
     || lk == 35092                 // '{' '['
 
20658
     || lk == 36116                 // '{' 'after'
 
20659
     || lk == 37140                 // '{' 'allowing'
 
20660
     || lk == 37652                 // '{' 'ancestor'
 
20661
     || lk == 38164                 // '{' 'ancestor-or-self'
 
20662
     || lk == 38676                 // '{' 'and'
 
20663
     || lk == 39700                 // '{' 'append'
 
20664
     || lk == 40212                 // '{' 'array'
 
20665
     || lk == 40724                 // '{' 'as'
 
20666
     || lk == 41236                 // '{' 'ascending'
 
20667
     || lk == 41748                 // '{' 'at'
 
20668
     || lk == 42260                 // '{' 'attribute'
 
20669
     || lk == 42772                 // '{' 'base-uri'
 
20670
     || lk == 43284                 // '{' 'before'
 
20671
     || lk == 43796                 // '{' 'boundary-space'
 
20672
     || lk == 44308                 // '{' 'break'
 
20673
     || lk == 45332                 // '{' 'case'
 
20674
     || lk == 45844                 // '{' 'cast'
 
20675
     || lk == 46356                 // '{' 'castable'
 
20676
     || lk == 46868                 // '{' 'catch'
 
20677
     || lk == 47892                 // '{' 'child'
 
20678
     || lk == 48404                 // '{' 'collation'
 
20679
     || lk == 49428                 // '{' 'comment'
 
20680
     || lk == 49940                 // '{' 'constraint'
 
20681
     || lk == 50452                 // '{' 'construction'
 
20682
     || lk == 51988                 // '{' 'context'
 
20683
     || lk == 52500                 // '{' 'continue'
 
20684
     || lk == 53012                 // '{' 'copy'
 
20685
     || lk == 53524                 // '{' 'copy-namespaces'
 
20686
     || lk == 54036                 // '{' 'count'
 
20687
     || lk == 54548                 // '{' 'decimal-format'
 
20688
     || lk == 55572                 // '{' 'declare'
 
20689
     || lk == 56084                 // '{' 'default'
 
20690
     || lk == 56596                 // '{' 'delete'
 
20691
     || lk == 57108                 // '{' 'descendant'
 
20692
     || lk == 57620                 // '{' 'descendant-or-self'
 
20693
     || lk == 58132                 // '{' 'descending'
 
20694
     || lk == 60692                 // '{' 'div'
 
20695
     || lk == 61204                 // '{' 'document'
 
20696
     || lk == 61716                 // '{' 'document-node'
 
20697
     || lk == 62228                 // '{' 'element'
 
20698
     || lk == 62740                 // '{' 'else'
 
20699
     || lk == 63252                 // '{' 'empty'
 
20700
     || lk == 63764                 // '{' 'empty-sequence'
 
20701
     || lk == 64276                 // '{' 'encoding'
 
20702
     || lk == 64788                 // '{' 'end'
 
20703
     || lk == 65812                 // '{' 'eq'
 
20704
     || lk == 66324                 // '{' 'every'
 
20705
     || lk == 67348                 // '{' 'except'
 
20706
     || lk == 67860                 // '{' 'exit'
 
20707
     || lk == 68372                 // '{' 'external'
 
20708
     || lk == 68884                 // '{' 'first'
 
20709
     || lk == 69396                 // '{' 'following'
 
20710
     || lk == 69908                 // '{' 'following-sibling'
 
20711
     || lk == 70420                 // '{' 'for'
 
20712
     || lk == 72468                 // '{' 'ft-option'
 
20713
     || lk == 74516                 // '{' 'function'
 
20714
     || lk == 75028                 // '{' 'ge'
 
20715
     || lk == 76052                 // '{' 'group'
 
20716
     || lk == 77076                 // '{' 'gt'
 
20717
     || lk == 77588                 // '{' 'idiv'
 
20718
     || lk == 78100                 // '{' 'if'
 
20719
     || lk == 78612                 // '{' 'import'
 
20720
     || lk == 79124                 // '{' 'in'
 
20721
     || lk == 79636                 // '{' 'index'
 
20722
     || lk == 81684                 // '{' 'insert'
 
20723
     || lk == 82196                 // '{' 'instance'
 
20724
     || lk == 82708                 // '{' 'integrity'
 
20725
     || lk == 83220                 // '{' 'intersect'
 
20726
     || lk == 83732                 // '{' 'into'
 
20727
     || lk == 84244                 // '{' 'is'
 
20728
     || lk == 84756                 // '{' 'item'
 
20729
     || lk == 85780                 // '{' 'json-item'
 
20730
     || lk == 87316                 // '{' 'last'
 
20731
     || lk == 87828                 // '{' 'lax'
 
20732
     || lk == 88340                 // '{' 'le'
 
20733
     || lk == 89364                 // '{' 'let'
 
20734
     || lk == 90388                 // '{' 'loop'
 
20735
     || lk == 91412                 // '{' 'lt'
 
20736
     || lk == 92436                 // '{' 'mod'
 
20737
     || lk == 92948                 // '{' 'modify'
 
20738
     || lk == 93460                 // '{' 'module'
 
20739
     || lk == 94484                 // '{' 'namespace'
 
20740
     || lk == 94996                 // '{' 'namespace-node'
 
20741
     || lk == 95508                 // '{' 'ne'
 
20742
     || lk == 98068                 // '{' 'node'
 
20743
     || lk == 98580                 // '{' 'nodes'
 
20744
     || lk == 99604                 // '{' 'object'
 
20745
     || lk == 101652                // '{' 'only'
 
20746
     || lk == 102164                // '{' 'option'
 
20747
     || lk == 102676                // '{' 'or'
 
20748
     || lk == 103188                // '{' 'order'
 
20749
     || lk == 103700                // '{' 'ordered'
 
20750
     || lk == 104212                // '{' 'ordering'
 
20751
     || lk == 105748                // '{' 'parent'
 
20752
     || lk == 108820                // '{' 'preceding'
 
20753
     || lk == 109332                // '{' 'preceding-sibling'
 
20754
     || lk == 110868                // '{' 'processing-instruction'
 
20755
     || lk == 111892                // '{' 'rename'
 
20756
     || lk == 112404                // '{' 'replace'
 
20757
     || lk == 112916                // '{' 'return'
 
20758
     || lk == 113428                // '{' 'returning'
 
20759
     || lk == 113940                // '{' 'revalidation'
 
20760
     || lk == 114964                // '{' 'satisfies'
 
20761
     || lk == 115476                // '{' 'schema'
 
20762
     || lk == 115988                // '{' 'schema-attribute'
 
20763
     || lk == 116500                // '{' 'schema-element'
 
20764
     || lk == 117012                // '{' 'score'
 
20765
     || lk == 117524                // '{' 'self'
 
20766
     || lk == 120084                // '{' 'sliding'
 
20767
     || lk == 120596                // '{' 'some'
 
20768
     || lk == 121108                // '{' 'stable'
 
20769
     || lk == 121620                // '{' 'start'
 
20770
     || lk == 123156                // '{' 'strict'
 
20771
     || lk == 124692                // '{' 'switch'
 
20772
     || lk == 125204                // '{' 'text'
 
20773
     || lk == 127252                // '{' 'to'
 
20774
     || lk == 127764                // '{' 'treat'
 
20775
     || lk == 128276                // '{' 'try'
 
20776
     || lk == 128788                // '{' 'tumbling'
 
20777
     || lk == 129300                // '{' 'type'
 
20778
     || lk == 129812                // '{' 'typeswitch'
 
20779
     || lk == 130324                // '{' 'union'
 
20780
     || lk == 131348                // '{' 'unordered'
 
20781
     || lk == 131860                // '{' 'updating'
 
20782
     || lk == 133396                // '{' 'validate'
 
20783
     || lk == 133908                // '{' 'value'
 
20784
     || lk == 134420                // '{' 'variable'
 
20785
     || lk == 134932                // '{' 'version'
 
20786
     || lk == 136468                // '{' 'where'
 
20787
     || lk == 136980                // '{' 'while'
 
20788
     || lk == 138516                // '{' 'with'
 
20789
     || lk == 140564                // '{' 'xquery'
 
20790
     || lk == 141588                // '{' '{'
 
20791
     || lk == 142612                // '{' '{|'
 
20792
     || lk == 144660)               // '{' '}'
 
20793
    {
 
20794
      lk = memoized(12, e0);
 
20795
      if (lk == 0)
 
20796
      {
 
20797
        var b0A = b0; var e0A = e0; var l1A = l1;
 
20798
        var b1A = b1; var e1A = e1; var l2A = l2;
 
20799
        var b2A = b2; var e2A = e2;
 
20800
        try
 
20801
        {
 
20802
          try_BlockExpr();
 
20803
          memoize(12, e0A, -10);
 
20804
          lk = -14;
 
20805
        }
 
20806
        catch (p10A)
 
20807
        {
 
20808
          lk = -11;
 
20809
          b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
 
20810
          b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
 
20811
          b2 = b2A; e2 = e2A; end = e2A; }}
 
20812
          memoize(12, e0A, -11);
 
20813
        }
 
20814
      }
 
20815
    }
 
20816
    switch (lk)
 
20817
    {
 
20818
    case 8:                         // IntegerLiteral
 
20819
    case 9:                         // DecimalLiteral
 
20820
    case 10:                        // DoubleLiteral
 
20821
    case 11:                        // StringLiteral
 
20822
      try_Literal();
 
20823
      break;
 
20824
    case 31:                        // '$'
 
20825
      try_VarRef();
 
20826
      break;
 
20827
    case 34:                        // '('
 
20828
      try_ParenthesizedExpr();
 
20829
      break;
 
20830
    case 44:                        // '.'
 
20831
      try_ContextItemExpr();
 
20832
      break;
 
20833
    case 17414:                     // EQName^Token '('
 
20834
    case 17478:                     // 'after' '('
 
20835
    case 17480:                     // 'allowing' '('
 
20836
    case 17481:                     // 'ancestor' '('
 
20837
    case 17482:                     // 'ancestor-or-self' '('
 
20838
    case 17483:                     // 'and' '('
 
20839
    case 17486:                     // 'array' '('
 
20840
    case 17487:                     // 'as' '('
 
20841
    case 17488:                     // 'ascending' '('
 
20842
    case 17489:                     // 'at' '('
 
20843
    case 17491:                     // 'base-uri' '('
 
20844
    case 17492:                     // 'before' '('
 
20845
    case 17493:                     // 'boundary-space' '('
 
20846
    case 17494:                     // 'break' '('
 
20847
    case 17496:                     // 'case' '('
 
20848
    case 17497:                     // 'cast' '('
 
20849
    case 17498:                     // 'castable' '('
 
20850
    case 17499:                     // 'catch' '('
 
20851
    case 17501:                     // 'child' '('
 
20852
    case 17502:                     // 'collation' '('
 
20853
    case 17505:                     // 'constraint' '('
 
20854
    case 17506:                     // 'construction' '('
 
20855
    case 17509:                     // 'context' '('
 
20856
    case 17510:                     // 'continue' '('
 
20857
    case 17511:                     // 'copy' '('
 
20858
    case 17512:                     // 'copy-namespaces' '('
 
20859
    case 17513:                     // 'count' '('
 
20860
    case 17514:                     // 'decimal-format' '('
 
20861
    case 17516:                     // 'declare' '('
 
20862
    case 17517:                     // 'default' '('
 
20863
    case 17518:                     // 'delete' '('
 
20864
    case 17519:                     // 'descendant' '('
 
20865
    case 17520:                     // 'descendant-or-self' '('
 
20866
    case 17521:                     // 'descending' '('
 
20867
    case 17526:                     // 'div' '('
 
20868
    case 17527:                     // 'document' '('
 
20869
    case 17530:                     // 'else' '('
 
20870
    case 17531:                     // 'empty' '('
 
20871
    case 17533:                     // 'encoding' '('
 
20872
    case 17534:                     // 'end' '('
 
20873
    case 17536:                     // 'eq' '('
 
20874
    case 17537:                     // 'every' '('
 
20875
    case 17539:                     // 'except' '('
 
20876
    case 17540:                     // 'exit' '('
 
20877
    case 17541:                     // 'external' '('
 
20878
    case 17542:                     // 'first' '('
 
20879
    case 17543:                     // 'following' '('
 
20880
    case 17544:                     // 'following-sibling' '('
 
20881
    case 17545:                     // 'for' '('
 
20882
    case 17549:                     // 'ft-option' '('
 
20883
    case 17554:                     // 'ge' '('
 
20884
    case 17556:                     // 'group' '('
 
20885
    case 17558:                     // 'gt' '('
 
20886
    case 17559:                     // 'idiv' '('
 
20887
    case 17561:                     // 'import' '('
 
20888
    case 17562:                     // 'in' '('
 
20889
    case 17563:                     // 'index' '('
 
20890
    case 17567:                     // 'insert' '('
 
20891
    case 17568:                     // 'instance' '('
 
20892
    case 17569:                     // 'integrity' '('
 
20893
    case 17570:                     // 'intersect' '('
 
20894
    case 17571:                     // 'into' '('
 
20895
    case 17572:                     // 'is' '('
 
20896
    case 17575:                     // 'json-item' '('
 
20897
    case 17578:                     // 'last' '('
 
20898
    case 17579:                     // 'lax' '('
 
20899
    case 17580:                     // 'le' '('
 
20900
    case 17582:                     // 'let' '('
 
20901
    case 17584:                     // 'loop' '('
 
20902
    case 17586:                     // 'lt' '('
 
20903
    case 17588:                     // 'mod' '('
 
20904
    case 17589:                     // 'modify' '('
 
20905
    case 17590:                     // 'module' '('
 
20906
    case 17592:                     // 'namespace' '('
 
20907
    case 17594:                     // 'ne' '('
 
20908
    case 17600:                     // 'nodes' '('
 
20909
    case 17602:                     // 'object' '('
 
20910
    case 17606:                     // 'only' '('
 
20911
    case 17607:                     // 'option' '('
 
20912
    case 17608:                     // 'or' '('
 
20913
    case 17609:                     // 'order' '('
 
20914
    case 17610:                     // 'ordered' '('
 
20915
    case 17611:                     // 'ordering' '('
 
20916
    case 17614:                     // 'parent' '('
 
20917
    case 17620:                     // 'preceding' '('
 
20918
    case 17621:                     // 'preceding-sibling' '('
 
20919
    case 17626:                     // 'rename' '('
 
20920
    case 17627:                     // 'replace' '('
 
20921
    case 17628:                     // 'return' '('
 
20922
    case 17629:                     // 'returning' '('
 
20923
    case 17630:                     // 'revalidation' '('
 
20924
    case 17632:                     // 'satisfies' '('
 
20925
    case 17633:                     // 'schema' '('
 
20926
    case 17636:                     // 'score' '('
 
20927
    case 17637:                     // 'self' '('
 
20928
    case 17642:                     // 'sliding' '('
 
20929
    case 17643:                     // 'some' '('
 
20930
    case 17644:                     // 'stable' '('
 
20931
    case 17645:                     // 'start' '('
 
20932
    case 17648:                     // 'strict' '('
 
20933
    case 17656:                     // 'to' '('
 
20934
    case 17657:                     // 'treat' '('
 
20935
    case 17658:                     // 'try' '('
 
20936
    case 17659:                     // 'tumbling' '('
 
20937
    case 17660:                     // 'type' '('
 
20938
    case 17662:                     // 'union' '('
 
20939
    case 17664:                     // 'unordered' '('
 
20940
    case 17665:                     // 'updating' '('
 
20941
    case 17668:                     // 'validate' '('
 
20942
    case 17669:                     // 'value' '('
 
20943
    case 17670:                     // 'variable' '('
 
20944
    case 17671:                     // 'version' '('
 
20945
    case 17674:                     // 'where' '('
 
20946
    case 17675:                     // 'while' '('
 
20947
    case 17678:                     // 'with' '('
 
20948
    case 17682:                     // 'xquery' '('
 
20949
      try_FunctionCall();
 
20950
      break;
 
20951
    case 141514:                    // 'ordered' '{'
 
20952
      try_OrderedExpr();
 
20953
      break;
 
20954
    case 141568:                    // 'unordered' '{'
 
20955
      try_UnorderedExpr();
 
20956
      break;
 
20957
    case 32:                        // '%'
 
20958
    case 120:                       // 'document-node'
 
20959
    case 124:                       // 'empty-sequence'
 
20960
    case 145:                       // 'function'
 
20961
    case 152:                       // 'if'
 
20962
    case 165:                       // 'item'
 
20963
    case 185:                       // 'namespace-node'
 
20964
    case 191:                       // 'node'
 
20965
    case 226:                       // 'schema-attribute'
 
20966
    case 227:                       // 'schema-element'
 
20967
    case 243:                       // 'switch'
 
20968
    case 253:                       // 'typeswitch'
 
20969
    case 14854:                     // EQName^Token '#'
 
20970
    case 14918:                     // 'after' '#'
 
20971
    case 14920:                     // 'allowing' '#'
 
20972
    case 14921:                     // 'ancestor' '#'
 
20973
    case 14922:                     // 'ancestor-or-self' '#'
 
20974
    case 14923:                     // 'and' '#'
 
20975
    case 14926:                     // 'array' '#'
 
20976
    case 14927:                     // 'as' '#'
 
20977
    case 14928:                     // 'ascending' '#'
 
20978
    case 14929:                     // 'at' '#'
 
20979
    case 14930:                     // 'attribute' '#'
 
20980
    case 14931:                     // 'base-uri' '#'
 
20981
    case 14932:                     // 'before' '#'
 
20982
    case 14933:                     // 'boundary-space' '#'
 
20983
    case 14934:                     // 'break' '#'
 
20984
    case 14936:                     // 'case' '#'
 
20985
    case 14937:                     // 'cast' '#'
 
20986
    case 14938:                     // 'castable' '#'
 
20987
    case 14939:                     // 'catch' '#'
 
20988
    case 14941:                     // 'child' '#'
 
20989
    case 14942:                     // 'collation' '#'
 
20990
    case 14944:                     // 'comment' '#'
 
20991
    case 14945:                     // 'constraint' '#'
 
20992
    case 14946:                     // 'construction' '#'
 
20993
    case 14949:                     // 'context' '#'
 
20994
    case 14950:                     // 'continue' '#'
 
20995
    case 14951:                     // 'copy' '#'
 
20996
    case 14952:                     // 'copy-namespaces' '#'
 
20997
    case 14953:                     // 'count' '#'
 
20998
    case 14954:                     // 'decimal-format' '#'
 
20999
    case 14956:                     // 'declare' '#'
 
21000
    case 14957:                     // 'default' '#'
 
21001
    case 14958:                     // 'delete' '#'
 
21002
    case 14959:                     // 'descendant' '#'
 
21003
    case 14960:                     // 'descendant-or-self' '#'
 
21004
    case 14961:                     // 'descending' '#'
 
21005
    case 14966:                     // 'div' '#'
 
21006
    case 14967:                     // 'document' '#'
 
21007
    case 14969:                     // 'element' '#'
 
21008
    case 14970:                     // 'else' '#'
 
21009
    case 14971:                     // 'empty' '#'
 
21010
    case 14973:                     // 'encoding' '#'
 
21011
    case 14974:                     // 'end' '#'
 
21012
    case 14976:                     // 'eq' '#'
 
21013
    case 14977:                     // 'every' '#'
 
21014
    case 14979:                     // 'except' '#'
 
21015
    case 14980:                     // 'exit' '#'
 
21016
    case 14981:                     // 'external' '#'
 
21017
    case 14982:                     // 'first' '#'
 
21018
    case 14983:                     // 'following' '#'
 
21019
    case 14984:                     // 'following-sibling' '#'
 
21020
    case 14985:                     // 'for' '#'
 
21021
    case 14989:                     // 'ft-option' '#'
 
21022
    case 14994:                     // 'ge' '#'
 
21023
    case 14996:                     // 'group' '#'
 
21024
    case 14998:                     // 'gt' '#'
 
21025
    case 14999:                     // 'idiv' '#'
 
21026
    case 15001:                     // 'import' '#'
 
21027
    case 15002:                     // 'in' '#'
 
21028
    case 15003:                     // 'index' '#'
 
21029
    case 15007:                     // 'insert' '#'
 
21030
    case 15008:                     // 'instance' '#'
 
21031
    case 15009:                     // 'integrity' '#'
 
21032
    case 15010:                     // 'intersect' '#'
 
21033
    case 15011:                     // 'into' '#'
 
21034
    case 15012:                     // 'is' '#'
 
21035
    case 15015:                     // 'json-item' '#'
 
21036
    case 15018:                     // 'last' '#'
 
21037
    case 15019:                     // 'lax' '#'
 
21038
    case 15020:                     // 'le' '#'
 
21039
    case 15022:                     // 'let' '#'
 
21040
    case 15024:                     // 'loop' '#'
 
21041
    case 15026:                     // 'lt' '#'
 
21042
    case 15028:                     // 'mod' '#'
 
21043
    case 15029:                     // 'modify' '#'
 
21044
    case 15030:                     // 'module' '#'
 
21045
    case 15032:                     // 'namespace' '#'
 
21046
    case 15034:                     // 'ne' '#'
 
21047
    case 15040:                     // 'nodes' '#'
 
21048
    case 15042:                     // 'object' '#'
 
21049
    case 15046:                     // 'only' '#'
 
21050
    case 15047:                     // 'option' '#'
 
21051
    case 15048:                     // 'or' '#'
 
21052
    case 15049:                     // 'order' '#'
 
21053
    case 15050:                     // 'ordered' '#'
 
21054
    case 15051:                     // 'ordering' '#'
 
21055
    case 15054:                     // 'parent' '#'
 
21056
    case 15060:                     // 'preceding' '#'
 
21057
    case 15061:                     // 'preceding-sibling' '#'
 
21058
    case 15064:                     // 'processing-instruction' '#'
 
21059
    case 15066:                     // 'rename' '#'
 
21060
    case 15067:                     // 'replace' '#'
 
21061
    case 15068:                     // 'return' '#'
 
21062
    case 15069:                     // 'returning' '#'
 
21063
    case 15070:                     // 'revalidation' '#'
 
21064
    case 15072:                     // 'satisfies' '#'
 
21065
    case 15073:                     // 'schema' '#'
 
21066
    case 15076:                     // 'score' '#'
 
21067
    case 15077:                     // 'self' '#'
 
21068
    case 15082:                     // 'sliding' '#'
 
21069
    case 15083:                     // 'some' '#'
 
21070
    case 15084:                     // 'stable' '#'
 
21071
    case 15085:                     // 'start' '#'
 
21072
    case 15088:                     // 'strict' '#'
 
21073
    case 15092:                     // 'text' '#'
 
21074
    case 15096:                     // 'to' '#'
 
21075
    case 15097:                     // 'treat' '#'
 
21076
    case 15098:                     // 'try' '#'
 
21077
    case 15099:                     // 'tumbling' '#'
 
21078
    case 15100:                     // 'type' '#'
 
21079
    case 15102:                     // 'union' '#'
 
21080
    case 15104:                     // 'unordered' '#'
 
21081
    case 15105:                     // 'updating' '#'
 
21082
    case 15108:                     // 'validate' '#'
 
21083
    case 15109:                     // 'value' '#'
 
21084
    case 15110:                     // 'variable' '#'
 
21085
    case 15111:                     // 'version' '#'
 
21086
    case 15114:                     // 'where' '#'
 
21087
    case 15115:                     // 'while' '#'
 
21088
    case 15118:                     // 'with' '#'
 
21089
    case 15122:                     // 'xquery' '#'
 
21090
      try_FunctionItemExpr();
 
21091
      break;
 
21092
    case -10:
 
21093
      try_BlockExpr();
 
21094
      break;
 
21095
    case -11:
 
21096
      try_ObjectConstructor();
 
21097
      break;
 
21098
    case 68:                        // '['
 
21099
      try_ArrayConstructor();
 
21100
      break;
 
21101
    case 278:                       // '{|'
 
21102
      try_JSONSimpleObjectUnion();
 
21103
      break;
 
21104
    case -14:
 
21105
      break;
 
21106
    default:
 
21107
      try_Constructor();
 
21108
    }
 
21109
  }
 
21110
 
 
21111
  function parse_JSONSimpleObjectUnion()
 
21112
  {
 
21113
    eventHandler.startNonterminal("JSONSimpleObjectUnion", e0);
 
21114
    shift(278);                     // '{|'
 
21115
    lookahead1W(272);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21116
    if (l1 != 281)                  // '|}'
 
21117
    {
 
21118
      whitespace();
 
21119
      parse_Expr();
 
21120
    }
 
21121
    shift(281);                     // '|}'
 
21122
    eventHandler.endNonterminal("JSONSimpleObjectUnion", e0);
 
21123
  }
 
21124
 
 
21125
  function try_JSONSimpleObjectUnion()
 
21126
  {
 
21127
    shiftT(278);                    // '{|'
 
21128
    lookahead1W(272);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21129
    if (l1 != 281)                  // '|}'
 
21130
    {
 
21131
      try_Expr();
 
21132
    }
 
21133
    shiftT(281);                    // '|}'
 
21134
  }
 
21135
 
 
21136
  function parse_ObjectConstructor()
 
21137
  {
 
21138
    eventHandler.startNonterminal("ObjectConstructor", e0);
 
21139
    shift(276);                     // '{'
 
21140
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21141
    if (l1 != 282)                  // '}'
 
21142
    {
 
21143
      whitespace();
 
21144
      parse_PairConstructor();
 
21145
      for (;;)
 
21146
      {
 
21147
        if (l1 != 41)               // ','
 
21148
        {
 
21149
          break;
 
21150
        }
 
21151
        shift(41);                  // ','
 
21152
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21153
        whitespace();
 
21154
        parse_PairConstructor();
 
21155
      }
 
21156
    }
 
21157
    shift(282);                     // '}'
 
21158
    eventHandler.endNonterminal("ObjectConstructor", e0);
 
21159
  }
 
21160
 
 
21161
  function try_ObjectConstructor()
 
21162
  {
 
21163
    shiftT(276);                    // '{'
 
21164
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21165
    if (l1 != 282)                  // '}'
 
21166
    {
 
21167
      try_PairConstructor();
 
21168
      for (;;)
 
21169
      {
 
21170
        if (l1 != 41)               // ','
 
21171
        {
 
21172
          break;
 
21173
        }
 
21174
        shiftT(41);                 // ','
 
21175
        lookahead1W(267);           // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21176
        try_PairConstructor();
 
21177
      }
 
21178
    }
 
21179
    shiftT(282);                    // '}'
 
21180
  }
 
21181
 
 
21182
  function parse_PairConstructor()
 
21183
  {
 
21184
    eventHandler.startNonterminal("PairConstructor", e0);
 
21185
    parse_ExprSingle();
 
21186
    shift(49);                      // ':'
 
21187
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21188
    whitespace();
 
21189
    parse_ExprSingle();
 
21190
    eventHandler.endNonterminal("PairConstructor", e0);
 
21191
  }
 
21192
 
 
21193
  function try_PairConstructor()
 
21194
  {
 
21195
    try_ExprSingle();
 
21196
    shiftT(49);                     // ':'
 
21197
    lookahead1W(267);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21198
    try_ExprSingle();
 
21199
  }
 
21200
 
 
21201
  function parse_ArrayConstructor()
 
21202
  {
 
21203
    eventHandler.startNonterminal("ArrayConstructor", e0);
 
21204
    shift(68);                      // '['
 
21205
    lookahead1W(271);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21206
    if (l1 != 69)                   // ']'
 
21207
    {
 
21208
      whitespace();
 
21209
      parse_Expr();
 
21210
    }
 
21211
    shift(69);                      // ']'
 
21212
    eventHandler.endNonterminal("ArrayConstructor", e0);
 
21213
  }
 
21214
 
 
21215
  function try_ArrayConstructor()
 
21216
  {
 
21217
    shiftT(68);                     // '['
 
21218
    lookahead1W(271);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21219
    if (l1 != 69)                   // ']'
 
21220
    {
 
21221
      try_Expr();
 
21222
    }
 
21223
    shiftT(69);                     // ']'
 
21224
  }
 
21225
 
 
21226
  function parse_BlockExpr()
 
21227
  {
 
21228
    eventHandler.startNonterminal("BlockExpr", e0);
 
21229
    shift(276);                     // '{'
 
21230
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21231
    whitespace();
 
21232
    parse_StatementsAndOptionalExpr();
 
21233
    shift(282);                     // '}'
 
21234
    eventHandler.endNonterminal("BlockExpr", e0);
 
21235
  }
 
21236
 
 
21237
  function try_BlockExpr()
 
21238
  {
 
21239
    shiftT(276);                    // '{'
 
21240
    lookahead1W(273);               // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21241
    try_StatementsAndOptionalExpr();
 
21242
    shiftT(282);                    // '}'
 
21243
  }
 
21244
 
 
21245
  function parse_FunctionDecl()
 
21246
  {
 
21247
    eventHandler.startNonterminal("FunctionDecl", e0);
 
21248
    shift(145);                     // 'function'
 
21249
    lookahead1W(253);               // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
 
21250
    whitespace();
 
21251
    parse_EQName();
 
21252
    lookahead1W(22);                // S^WS | '(' | '(:'
 
21253
    shift(34);                      // '('
 
21254
    lookahead1W(94);                // S^WS | '$' | '(:' | ')'
 
21255
    if (l1 == 31)                   // '$'
 
21256
    {
 
21257
      whitespace();
 
21258
      parse_ParamList();
 
21259
    }
 
21260
    shift(37);                      // ')'
 
21261
    lookahead1W(148);               // S^WS | '(:' | 'as' | 'external' | '{'
 
21262
    if (l1 == 79)                   // 'as'
 
21263
    {
 
21264
      shift(79);                    // 'as'
 
21265
      lookahead1W(259);             // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
 
21266
      whitespace();
 
21267
      parse_SequenceType();
 
21268
    }
 
21269
    lookahead1W(118);               // S^WS | '(:' | 'external' | '{'
 
21270
    switch (l1)
 
21271
    {
 
21272
    case 276:                       // '{'
 
21273
      shift(276);                   // '{'
 
21274
      lookahead1W(273);             // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
 
21275
      whitespace();
 
21276
      parse_StatementsAndOptionalExpr();
 
21277
      shift(282);                   // '}'
 
21278
      break;
 
21279
    default:
 
21280
      shift(133);                   // 'external'
 
21281
    }
 
21282
    eventHandler.endNonterminal("FunctionDecl", e0);
 
21283
  }
 
21284
 
 
21285
  var lk, b0, e0;
 
21286
  var l1, b1, e1;
 
21287
  var l2, b2, e2;
 
21288
  var bx, ex, sx, lx, tx;
 
21289
  var eventHandler;
 
21290
  var memo;
 
21291
 
 
21292
  function memoize(i, e, v)
 
21293
  {
 
21294
    memo[(e << 4) + i] = v;
 
21295
  }
 
21296
 
 
21297
  function memoized(i, e)
 
21298
  {
 
21299
    var v = memo[(e << 4) + i];
 
21300
    return typeof v != "undefined" ? v : 0;
 
21301
  }
 
21302
 
 
21303
  function error(b, e, s, l, t)
 
21304
  {
 
21305
    if (e > ex)
 
21306
    {
 
21307
      bx = b;
 
21308
      ex = e;
 
21309
      sx = s;
 
21310
      lx = l;
 
21311
      tx = t;
 
21312
    }
 
21313
    throw new self.ParseException(bx, ex, sx, lx, tx);
 
21314
  }
 
21315
 
 
21316
  function shift(t)
 
21317
  {
 
21318
    if (l1 == t)
 
21319
    {
 
21320
      whitespace();
 
21321
      eventHandler.terminal(XQueryParser.TOKEN[l1], b1, e1 > size ? size : e1);
 
21322
      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {
 
21323
      b1 = b2; e1 = e2; l2 = 0; }
 
21324
    }
 
21325
    else
 
21326
    {
 
21327
      error(b1, e1, 0, l1, t);
 
21328
    }
 
21329
  }
 
21330
 
 
21331
  function shiftT(t)
 
21332
  {
 
21333
    if (l1 == t)
 
21334
    {
 
21335
      b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {
 
21336
      b1 = b2; e1 = e2; l2 = 0; }
 
21337
    }
 
21338
    else
 
21339
    {
 
21340
      error(b1, e1, 0, l1, t);
 
21341
    }
 
21342
  }
 
21343
 
 
21344
  function skip(code)
 
21345
  {
 
21346
    var b0W = b0; var e0W = e0; var l1W = l1;
 
21347
    var b1W = b1; var e1W = e1;
 
21348
 
 
21349
    l1 = code; b1 = begin; e1 = end;
 
21350
    l2 = 0;
 
21351
 
 
21352
    try_Whitespace();
 
21353
 
 
21354
    b0 = b0W; e0 = e0W; l1 = l1W; if (l1 != 0) {
 
21355
    b1 = b1W; e1 = e1W; }
 
21356
  }
 
21357
 
 
21358
  function whitespace()
 
21359
  {
 
21360
    if (e0 != b1)
 
21361
    {
 
21362
      b0 = e0;
 
21363
      e0 = b1;
 
21364
      eventHandler.whitespace(b0, e0);
 
21365
    }
 
21366
  }
 
21367
 
 
21368
  function matchW(set)
 
21369
  {
 
21370
    var code;
 
21371
    for (;;)
 
21372
    {
 
21373
      code = match(set);
 
21374
      if (code != 22)               // S^WS
 
21375
      {
 
21376
        if (code != 36)             // '(:'
 
21377
        {
 
21378
          break;
 
21379
        }
 
21380
        skip(code);
 
21381
      }
 
21382
    }
 
21383
    return code;
 
21384
  }
 
21385
 
 
21386
  function lookahead1W(set)
 
21387
  {
 
21388
    if (l1 == 0)
 
21389
    {
 
21390
      l1 = matchW(set);
 
21391
      b1 = begin;
 
21392
      e1 = end;
 
21393
    }
 
21394
  }
 
21395
 
 
21396
  function lookahead2W(set)
 
21397
  {
 
21398
    if (l2 == 0)
 
21399
    {
 
21400
      l2 = matchW(set);
 
21401
      b2 = begin;
 
21402
      e2 = end;
 
21403
    }
 
21404
    lk = (l2 << 9) | l1;
 
21405
  }
 
21406
 
 
21407
  function lookahead1(set)
 
21408
  {
 
21409
    if (l1 == 0)
 
21410
    {
 
21411
      l1 = match(set);
 
21412
      b1 = begin;
 
21413
      e1 = end;
 
21414
    }
 
21415
  }
 
21416
 
 
21417
  function lookahead2(set)
 
21418
  {
 
21419
    if (l2 == 0)
 
21420
    {
 
21421
      l2 = match(set);
 
21422
      b2 = begin;
 
21423
      e2 = end;
 
21424
    }
 
21425
    lk = (l2 << 9) | l1;
 
21426
  }
 
21427
 
 
21428
  var input;
 
21429
  var size;
 
21430
  var begin;
 
21431
  var end;
 
21432
 
 
21433
  function match(tokenSetId)
 
21434
  {
 
21435
    var nonbmp = false;
 
21436
    begin = end;
 
21437
    var current = end;
 
21438
    var result = XQueryParser.INITIAL[tokenSetId];
 
21439
    var state = 0;
 
21440
 
 
21441
    for (var code = result & 4095; code != 0; )
 
21442
    {
 
21443
      var charclass;
 
21444
      var c0 = current < size ? input.charCodeAt(current) : 0;
 
21445
      ++current;
 
21446
      if (c0 < 0x80)
 
21447
      {
 
21448
        charclass = XQueryParser.MAP0[c0];
 
21449
      }
 
21450
      else if (c0 < 0xd800)
 
21451
      {
 
21452
        var c1 = c0 >> 4;
 
21453
        charclass = XQueryParser.MAP1[(c0 & 15) + XQueryParser.MAP1[(c1 & 31) + XQueryParser.MAP1[c1 >> 5]]];
 
21454
      }
 
21455
      else
 
21456
      {
 
21457
        if (c0 < 0xdc00)
 
21458
        {
 
21459
          var c1 = current < size ? input.charCodeAt(current) : 0;
 
21460
          if (c1 >= 0xdc00 && c1 < 0xe000)
 
21461
          {
 
21462
            ++current;
 
21463
            c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;
 
21464
            nonbmp = true;
 
21465
          }
 
21466
        }
 
21467
        var lo = 0, hi = 5;
 
21468
        for (var m = 3; ; m = (hi + lo) >> 1)
 
21469
        {
 
21470
          if (XQueryParser.MAP2[m] > c0) hi = m - 1;
 
21471
          else if (XQueryParser.MAP2[6 + m] < c0) lo = m + 1;
 
21472
          else {charclass = XQueryParser.MAP2[12 + m]; break;}
 
21473
          if (lo > hi) {charclass = 0; break;}
 
21474
        }
 
21475
      }
 
21476
 
 
21477
      state = code;
 
21478
      var i0 = (charclass << 12) + code - 1;
 
21479
      code = XQueryParser.TRANSITION[(i0 & 15) + XQueryParser.TRANSITION[i0 >> 4]];
 
21480
 
 
21481
      if (code > 4095)
 
21482
      {
 
21483
        result = code;
 
21484
        code &= 4095;
 
21485
        end = current;
 
21486
      }
 
21487
    }
 
21488
 
 
21489
    result >>= 12;
 
21490
    if (result == 0)
 
21491
    {
 
21492
      end = current - 1;
 
21493
      var c1 = end < size ? input.charCodeAt(end) : 0;
 
21494
      if (c1 >= 0xdc00 && c1 < 0xe000) --end;
 
21495
      return error(begin, end, state, -1, -1);
 
21496
    }
 
21497
 
 
21498
    if (nonbmp)
 
21499
    {
 
21500
      for (var i = result >> 9; i > 0; --i)
 
21501
      {
 
21502
        --end;
 
21503
        var c1 = end < size ? input.charCodeAt(end) : 0;
 
21504
        if (c1 >= 0xdc00 && c1 < 0xe000) --end;
 
21505
      }
 
21506
    }
 
21507
    else
 
21508
    {
 
21509
      end -= result >> 9;
 
21510
    }
 
21511
 
 
21512
    return (result & 511) - 1;
 
21513
  }
 
21514
}
 
21515
 
 
21516
XQueryParser.getTokenSet = function(tokenSetId)
 
21517
{
 
21518
  var set = [];
 
21519
  var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095;
 
21520
  for (var i = 0; i < 284; i += 32)
 
21521
  {
 
21522
    var j = i;
 
21523
    var i0 = (i >> 5) * 3684 + s - 1;
 
21524
    var i1 = i0 >> 2;
 
21525
    var i2 = i1 >> 2;
 
21526
    var f = XQueryParser.EXPECTED[(i0 & 3) + XQueryParser.EXPECTED[(i1 & 3) + XQueryParser.EXPECTED[(i2 & 7) + XQueryParser.EXPECTED[i2 >> 3]]]];
 
21527
    for ( ; f != 0; f >>>= 1, ++j)
 
21528
    {
 
21529
      if ((f & 1) != 0)
 
21530
      {
 
21531
        set.push(XQueryParser.TOKEN[j]);
 
21532
      }
 
21533
    }
 
21534
  }
 
21535
  return set;
 
21536
};
 
21537
 
 
21538
XQueryParser.MAP0 =
 
21539
[ 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38
 
21540
];
 
21541
 
 
21542
XQueryParser.MAP1 =
 
21543
[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 355, 371, 387, 423, 423, 423, 415, 339, 331, 339, 331, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 440, 440, 440, 440, 440, 440, 440, 324, 339, 339, 339, 339, 339, 339, 339, 339, 401, 423, 423, 424, 422, 423, 423, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 338, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 38, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 30, 30, 38, 38, 38, 38, 38, 38, 38, 69, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69
 
21544
];
 
21545
 
 
21546
XQueryParser.MAP2 =
 
21547
[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 38, 30, 38, 30, 30, 38
 
21548
];
 
21549
 
 
21550
XQueryParser.INITIAL =
 
21551
[ 1, 12290, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284
 
21552
];
 
21553
 
 
21554
XQueryParser.TRANSITION =
 
21555
[ 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22007, 18176, 18196, 18196, 18196, 18203, 18196, 18196, 18196, 18196, 18230, 18196, 18196, 18196, 18196, 18219, 18196, 18180, 18246, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 18411, 20907, 20920, 20932, 20944, 22539, 18416, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 37625, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 21008, 21032, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21632, 21055, 23546, 23546, 23546, 21178, 23546, 23546, 23916, 42362, 21241, 23546, 23546, 23546, 23546, 19298, 47203, 21077, 21110, 23546, 23546, 23546, 35799, 23546, 23546, 21194, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 21229, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21358, 21323, 23546, 23546, 23546, 26152, 23546, 23546, 27593, 23546, 21369, 29482, 21257, 21282, 21273, 21304, 21317, 21346, 20967, 23546, 23546, 23546, 28947, 23546, 23546, 21385, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20711, 21423, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 21446, 26048, 18745, 18766, 18771, 20561, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23540, 23546, 23546, 23546, 25880, 23545, 23546, 31245, 23546, 21468, 23534, 21504, 23546, 21511, 23546, 21527, 21539, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 21567, 23546, 23546, 23546, 31874, 23546, 23546, 21586, 23546, 23546, 21608, 21620, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 35211, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 21648, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 21681, 18544, 18567, 18590, 50977, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21736, 21705, 23546, 23546, 23546, 44539, 23546, 23546, 24265, 25689, 25607, 23546, 23546, 23546, 23546, 26450, 47502, 21724, 21752, 23546, 23546, 23546, 35799, 23546, 23546, 21783, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20237, 21819, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21551, 21857, 21913, 21913, 21913, 21864, 21908, 21913, 21918, 21967, 21842, 21949, 21880, 21961, 21896, 21934, 21983, 21995, 20967, 23546, 23546, 23546, 26225, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22023, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 28636, 23546, 23546, 23546, 25912, 50946, 23546, 50080, 50952, 21369, 28635, 23546, 22054, 22060, 22076, 22111, 22121, 22137, 23546, 23546, 23546, 30755, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22183, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 27655, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 51066, 39748, 22869, 22242, 22228, 22245, 22261, 22277, 22288, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 20285, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 18648, 40763, 24585, 22304, 22324, 22304, 22338, 24585, 22308, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 22361, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 22386, 23546, 23546, 23546, 25841, 18403, 23546, 19576, 22382, 44281, 22402, 22429, 22434, 22434, 22450, 22385, 22413, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22473, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 25653, 22498, 22518, 22498, 22532, 25653, 22502, 22555, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 42897, 23546, 44844, 38626, 22584, 22361, 37471, 23546, 23546, 23546, 23546, 22587, 47563, 46856, 47563, 47563, 22603, 35356, 22824, 22824, 34828, 22804, 22621, 22804, 22804, 33187, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 22641, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 43701, 32739, 23546, 23546, 23546, 23546, 23546, 29474, 22702, 23546, 33124, 44563, 47563, 47563, 47563, 47564, 22719, 35350, 22824, 22764, 22824, 22767, 35689, 22783, 22804, 22803, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 27587, 23546, 23546, 47562, 46826, 47563, 47563, 27195, 22821, 42846, 22824, 22824, 22824, 30376, 22804, 22841, 22804, 22804, 29883, 33199, 23546, 23546, 21430, 23546, 49502, 48973, 47563, 47563, 36153, 45209, 22824, 22824, 39816, 27834, 22804, 22804, 43796, 30403, 39964, 23546, 23546, 22861, 23546, 47560, 22885, 47563, 23113, 22903, 22824, 33078, 22920, 22804, 38116, 23546, 23546, 22937, 29174, 22980, 47563, 34384, 42527, 22825, 23019, 22804, 31964, 47447, 46606, 23083, 36624, 23105, 32340, 30673, 23131, 36549, 23164, 40907, 43074, 23200, 23229, 23275, 36645, 36686, 33550, 48975, 23107, 30672, 23141, 39417, 23313, 23334, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 24855, 21369, 23546, 23546, 23546, 23546, 23546, 20980, 20992, 23383, 23546, 23546, 23546, 35799, 23546, 23546, 23420, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23440, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 18368, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23485, 23546, 23546, 23546, 26606, 23546, 23546, 23546, 23546, 21369, 28080, 23505, 23528, 23563, 23575, 28081, 23512, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 30821, 23546, 37478, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23598, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23184, 21369, 23546, 23546, 23546, 23546, 23546, 22653, 22665, 23615, 23546, 23546, 23546, 35799, 23546, 23546, 23644, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23664, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23688, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 48779, 23733, 23546, 23546, 23546, 23546, 34921, 23753, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 23777, 48792, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 41753, 22821, 22824, 22824, 22824, 22824, 44122, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 34866, 22821, 22824, 22824, 22824, 22824, 23826, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 39721, 23546, 23546, 23546, 30797, 25982, 23546, 23546, 23849, 21369, 20313, 44188, 23887, 23893, 23909, 23546, 49114, 23932, 23546, 23546, 23546, 36603, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 24187, 24465, 24820, 25200, 24258, 18282, 18849, 18305, 23964, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 23993, 24116, 24017, 24046, 24001, 24088, 25090, 24132, 24812, 24103, 24159, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 24182, 25436, 24884, 24206, 24190, 24890, 24819, 24363, 24227, 24819, 24414, 24143, 25214, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 24243, 24030, 25425, 24281, 24706, 24308, 24337, 24350, 24389, 24405, 24517, 24423, 25208, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 24439, 19364, 24455, 25063, 24489, 24505, 24533, 25266, 24373, 24545, 24561, 24577, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 19809, 24679, 24601, 25048, 19406, 24473, 24617, 25251, 25017, 24736, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 24633, 24673, 24695, 24722, 24779, 24801, 24836, 23977, 20842, 20016, 18679, 20827, 20042, 24871, 24906, 24935, 24951, 25006, 25411, 25295, 20159, 20175, 20206, 25033, 24292, 25079, 25281, 25106, 20376, 20392, 19394, 24919, 24657, 20462, 19676, 24211, 24785, 32258, 19353, 24647, 24966, 20473, 24060, 25136, 20616, 25172, 25188, 25236, 24072, 25311, 25362, 25396, 25452, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 21328, 23546, 23546, 23546, 25841, 25477, 23546, 23546, 25472, 32915, 25493, 25501, 25501, 25501, 25517, 21330, 25540, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 25581, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20499, 25597, 18792, 18808, 18830, 23628, 18814, 25623, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 21016, 25645, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 25669, 25705, 25721, 19477, 25754, 19498, 25737, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 18708, 21452, 19692, 19708, 20143, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 50535, 23259, 25770, 25770, 25770, 25779, 21123, 21135, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 25220, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25802, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21147, 20888, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 22959, 25825, 25825, 25825, 25834, 20891, 22964, 25857, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 27140, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25873, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25552, 25561, 23546, 23546, 23546, 26852, 23546, 23546, 23546, 23546, 21369, 33245, 25896, 25896, 25896, 25905, 36950, 33250, 25928, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 22366, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25964, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 25998, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26099, 23546, 23546, 23546, 23546, 25841, 21661, 23546, 23546, 21094, 43925, 23546, 23546, 23546, 21665, 26069, 21092, 26087, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 31389, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 26115, 26145, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 43987, 26168, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 26285, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 26302, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 26321, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 19867, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 23049, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26364, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 19293, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 31312, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 37937, 26399, 26410, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 26426, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 41698, 26466, 26486, 26508, 26520, 41701, 26470, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 38227, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 26543, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 28554, 23546, 26577, 26583, 26599, 47449, 44239, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 26622, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 26638, 20392, 51127, 20418, 50802, 26654, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 27306, 23546, 23546, 23546, 26527, 26683, 26714, 28322, 26699, 26731, 50814, 50823, 26775, 26789, 26801, 26817, 26829, 26204, 26845, 23599, 23546, 25326, 21171, 35898, 34903, 26868, 26909, 26948, 33311, 26979, 26959, 26995, 27011, 45967, 27047, 27063, 27101, 27117, 34536, 27156, 23546, 23546, 44844, 41240, 34846, 23546, 42415, 27173, 27664, 23546, 42356, 28101, 47563, 47563, 47563, 27192, 27418, 22824, 22824, 42533, 43762, 22804, 22804, 22804, 27211, 27231, 36943, 23546, 44839, 40944, 23546, 27267, 27287, 46640, 23546, 27304, 35519, 43402, 27322, 27344, 47563, 47563, 27380, 27403, 27436, 31453, 22824, 33011, 27464, 27493, 27533, 27556, 22804, 38069, 35418, 30315, 27573, 26241, 27609, 23546, 44532, 27629, 39107, 50620, 23546, 45009, 27646, 31107, 27698, 47563, 27746, 27765, 23297, 27785, 27825, 36368, 22824, 27859, 48139, 23833, 27991, 44504, 49256, 22804, 43572, 23672, 27877, 42988, 25683, 23546, 27893, 27913, 46094, 23546, 21213, 44018, 47563, 30489, 32462, 27941, 34820, 22824, 45399, 49012, 28821, 27978, 22804, 22804, 28014, 28034, 49064, 28072, 35792, 28097, 51046, 28117, 50856, 22994, 28137, 47563, 41728, 28206, 28229, 22824, 41433, 28267, 28290, 22804, 34572, 28320, 28338, 23546, 23546, 39715, 47560, 28358, 45550, 23113, 28379, 35308, 33078, 28399, 36714, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 41649, 28419, 28455, 40472, 38341, 28471, 38828, 40452, 28791, 24756, 33030, 27540, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28526, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 34078, 28545, 23546, 28652, 28658, 28674, 28690, 28701, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 26963, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22605, 35842, 45303, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 46230, 50621, 28718, 23546, 28717, 23546, 48975, 47563, 47563, 47563, 27769, 28735, 22823, 22824, 22824, 22824, 49361, 49439, 22804, 22804, 22804, 22804, 28781, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 18289, 23546, 23546, 44779, 49528, 23546, 36898, 47563, 47563, 47563, 40417, 28807, 22824, 22824, 22824, 50340, 31197, 28844, 22804, 22804, 22804, 28863, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 21205, 28900, 28924, 28940, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28963, 23546, 23546, 26527, 23546, 28992, 23546, 29010, 36977, 29029, 29038, 29054, 29069, 29081, 29097, 29109, 26204, 23546, 23546, 33645, 49739, 23546, 28529, 23546, 23546, 31365, 23546, 23546, 23546, 35995, 23546, 29125, 31167, 22824, 29149, 40337, 48749, 32108, 23546, 29172, 23546, 44844, 29190, 42384, 23546, 31347, 50774, 29209, 23546, 25948, 29214, 29230, 29291, 47563, 47563, 29309, 29325, 22824, 22824, 45608, 49036, 29349, 22804, 22804, 39677, 36943, 30220, 23546, 23546, 47099, 23546, 22095, 50621, 37205, 27682, 23546, 23546, 48975, 28152, 40051, 47563, 29366, 37135, 45217, 46920, 46953, 36665, 22824, 49439, 49901, 29385, 29404, 34563, 22804, 29885, 40883, 26241, 23546, 23546, 47600, 23546, 23546, 29423, 23546, 29445, 23546, 48976, 47563, 47563, 47563, 44406, 47564, 22821, 22824, 22824, 49328, 42575, 22767, 35849, 22804, 22804, 39288, 28274, 50448, 23672, 29464, 23546, 23546, 23546, 29498, 42828, 23546, 23546, 47562, 47563, 47563, 46820, 29369, 22821, 22824, 22824, 37856, 22824, 28821, 22804, 22804, 30184, 22804, 29883, 33199, 23546, 23546, 29517, 23546, 47519, 29538, 47563, 46768, 47563, 41728, 22824, 49353, 22824, 41433, 22804, 41641, 22804, 27843, 29565, 23546, 23546, 23546, 29581, 33988, 49629, 29610, 50265, 49148, 29627, 30732, 37573, 29644, 31970, 23546, 23546, 28626, 22586, 47563, 47563, 29661, 22824, 47375, 22804, 22804, 29679, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 45087, 23089, 29701, 47077, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 27251, 29717, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 21570, 23546, 23546, 26527, 23546, 29745, 24166, 23546, 32508, 29764, 29773, 29789, 29803, 29812, 29828, 29839, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 34673, 34671, 23546, 38486, 38493, 29855, 28213, 35842, 29875, 43066, 27800, 23546, 40629, 29901, 44844, 23546, 29926, 30774, 23546, 23546, 41541, 20026, 29946, 29989, 29293, 38320, 30005, 40270, 30031, 42116, 30052, 30082, 30100, 49972, 39453, 30135, 41942, 39677, 36943, 23546, 23546, 23546, 42078, 23546, 30162, 50621, 23546, 23546, 23546, 39564, 48975, 47563, 47563, 47563, 48721, 37135, 22823, 22824, 22824, 22824, 42777, 49439, 22804, 22804, 22804, 22804, 30182, 30146, 30200, 30236, 23546, 23546, 23546, 30252, 30271, 50620, 23546, 23546, 45468, 23469, 31420, 34156, 47563, 47563, 45201, 30292, 30331, 30348, 22824, 22824, 30365, 29156, 29407, 22804, 22804, 22804, 30399, 23672, 23807, 23546, 23546, 23546, 23546, 45523, 28572, 23546, 33872, 47563, 47563, 30419, 29369, 30438, 22824, 22824, 48645, 22824, 31904, 22804, 22804, 50360, 22804, 30539, 33199, 49920, 23546, 30462, 23546, 50724, 48973, 36270, 47563, 30480, 41728, 35391, 22824, 30505, 41433, 50493, 22804, 30530, 30403, 47447, 49732, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23251, 23546, 22586, 47563, 47563, 30555, 22824, 36108, 22804, 22804, 30575, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 30597, 46609, 47561, 23111, 30673, 39296, 30622, 30648, 30668, 30689, 19013, 30707, 30727, 30748, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23547, 30771, 23546, 26527, 25156, 30790, 23546, 30813, 24321, 30837, 30846, 30862, 30876, 30888, 30904, 30915, 26204, 22703, 30931, 26561, 35799, 30978, 26921, 26341, 27925, 30994, 31013, 31032, 31061, 31045, 31097, 31131, 31147, 31183, 31227, 31261, 31277, 39237, 39476, 31293, 33748, 31328, 22212, 31363, 31381, 41158, 23546, 23546, 40033, 23546, 22587, 32449, 31405, 47817, 28510, 31441, 31475, 46890, 31498, 30304, 31538, 22625, 36744, 47681, 39677, 36943, 23698, 29973, 31554, 29930, 31590, 23708, 31634, 39997, 31661, 48812, 31689, 31711, 31727, 31763, 31798, 31814, 29245, 31850, 40093, 31890, 34721, 31940, 35662, 31956, 31986, 27076, 32035, 32066, 32093, 32133, 26241, 50755, 23546, 43683, 23546, 32169, 19239, 32192, 32249, 22951, 24750, 43255, 32274, 47563, 32292, 45560, 22821, 32317, 22824, 42593, 48588, 50230, 35849, 32356, 22804, 45665, 32384, 32405, 32421, 23807, 25150, 32478, 32497, 47176, 23546, 32524, 45835, 36145, 40407, 31425, 32550, 44054, 32586, 34739, 22824, 32631, 32657, 30066, 33080, 32683, 47042, 40501, 29883, 33199, 23546, 45717, 33237, 23546, 23546, 32701, 31115, 42955, 32563, 41728, 45894, 41614, 32608, 41433, 33712, 42499, 35727, 30403, 47447, 28590, 32719, 48060, 32755, 32790, 42232, 33671, 32806, 37745, 39609, 32837, 40736, 33730, 32892, 32931, 32953, 19435, 22586, 32974, 48106, 28046, 33009, 33027, 33047, 48381, 35461, 47447, 40617, 22585, 47563, 50257, 22824, 33074, 36473, 36549, 33096, 40786, 36807, 32667, 39296, 33119, 43227, 48451, 49953, 33140, 24763, 23318, 45645, 33156, 33172, 33217, 47559, 33030, 30691, 33266, 33282, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 33306, 23546, 26527, 33327, 33345, 25456, 24849, 33370, 33400, 23546, 33386, 33428, 33437, 33453, 33464, 26204, 23546, 23546, 33480, 35799, 23546, 23546, 23546, 23546, 27288, 23546, 23546, 34477, 23546, 34484, 31605, 33499, 33519, 43660, 33545, 33568, 27800, 23546, 33621, 23546, 44844, 33621, 23546, 23546, 30997, 23546, 33640, 34051, 23546, 22587, 33661, 47563, 47563, 47563, 33687, 22824, 22824, 22824, 43762, 33703, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 33746, 48975, 47563, 47563, 47563, 43863, 37135, 22823, 22824, 22824, 22824, 34733, 49439, 22804, 22804, 22804, 22804, 33764, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 20258, 23546, 48976, 47563, 47563, 46759, 47563, 47564, 22821, 22824, 22824, 37850, 22824, 22767, 35849, 22804, 22804, 33781, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 43159, 23546, 47562, 47563, 47563, 31773, 29369, 22821, 22824, 22824, 49239, 22824, 28821, 22804, 22804, 22804, 33801, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 33820, 23546, 23546, 22586, 44762, 47563, 23109, 33840, 22825, 34299, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 23335, 32233, 42307, 22729, 33859, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 32176, 23546, 23546, 41552, 33893, 33902, 33918, 33924, 33940, 33956, 33967, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37894, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 28765, 41920, 23546, 23546, 44844, 23546, 23546, 23546, 39585, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 43177, 23546, 23546, 45738, 48975, 47563, 47563, 47563, 47563, 37135, 41960, 22824, 22824, 22824, 22824, 47410, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 20340, 23546, 23178, 20358, 23546, 23546, 20360, 33983, 47563, 47563, 34004, 47563, 47564, 22821, 22824, 36824, 22824, 22824, 22767, 35849, 22804, 33785, 22804, 22804, 29879, 34024, 23546, 23546, 23546, 34050, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 32147, 47539, 23546, 48973, 47563, 47563, 39206, 45209, 22824, 22824, 43898, 27834, 22804, 22804, 34943, 30403, 47447, 34067, 47158, 34094, 23546, 34121, 32984, 34141, 34177, 43533, 34196, 34244, 36447, 34263, 31970, 28608, 23546, 34315, 34336, 34355, 34372, 28875, 33605, 34412, 34436, 34454, 31964, 47447, 46606, 43054, 32993, 34501, 34521, 30673, 34552, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 43326, 34588, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 41690, 23546, 26286, 34628, 23546, 23546, 23546, 34692, 23546, 34693, 23546, 23546, 34656, 34689, 40521, 22887, 37164, 34396, 43815, 34709, 34755, 23546, 23546, 29501, 44844, 26383, 30255, 23546, 23546, 41921, 23546, 23546, 23546, 22587, 47563, 47563, 32276, 47563, 27418, 22824, 22824, 35655, 43762, 22804, 22804, 35850, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 34780, 43953, 48975, 47563, 47563, 47563, 47563, 29859, 22823, 22824, 22824, 22824, 22824, 30446, 22804, 22804, 22804, 22804, 22804, 34799, 33201, 23546, 34844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 42714, 48976, 34862, 47563, 47563, 47563, 47564, 34882, 22824, 22824, 22824, 22824, 22767, 30383, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 34898, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 49594, 27195, 22821, 22824, 22824, 22824, 49007, 30376, 22804, 22804, 22804, 28251, 29883, 33199, 23546, 23546, 45156, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 28617, 23546, 48860, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 48020, 34919, 46606, 50168, 47563, 35289, 22824, 34937, 22804, 34959, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 26217, 23546, 26527, 28994, 29429, 32937, 21397, 21407, 19607, 19616, 34984, 34999, 35011, 35027, 35038, 26204, 23546, 23546, 23546, 21159, 35548, 23546, 23546, 29013, 35054, 32876, 23546, 35263, 35074, 35112, 39498, 35166, 47961, 27448, 49402, 46199, 35202, 23546, 23546, 23546, 38910, 23546, 47123, 35227, 23546, 23546, 23546, 35244, 44990, 22587, 44754, 35279, 47563, 35324, 35372, 48187, 22824, 29333, 35407, 49176, 35434, 22804, 35477, 39677, 36943, 23546, 35515, 50019, 41319, 42187, 35535, 23546, 19253, 43384, 35575, 35592, 35612, 35186, 47563, 42920, 37391, 20600, 22823, 35386, 22824, 40181, 35635, 35678, 29350, 22804, 33765, 35713, 35750, 48433, 33201, 23546, 23546, 23546, 23546, 35766, 20349, 35815, 44388, 23546, 23546, 40380, 47253, 47563, 47563, 41209, 36250, 35833, 43893, 22824, 22824, 48653, 43541, 43789, 35866, 22804, 22804, 31917, 36853, 33195, 23546, 19730, 35885, 35914, 32534, 35930, 35957, 45488, 36011, 28363, 36030, 36050, 36074, 36103, 39870, 50408, 42260, 32597, 45635, 22804, 36124, 36169, 36204, 27085, 31863, 36220, 46659, 44955, 21826, 38142, 32958, 36266, 47872, 36286, 36321, 36366, 36384, 36409, 36435, 36471, 36489, 36514, 36540, 36572, 23546, 23546, 18340, 36595, 30632, 36619, 36640, 39370, 36661, 36681, 36702, 36740, 36760, 31970, 23546, 36781, 18841, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 34034, 46606, 22585, 31741, 36801, 36823, 36840, 38424, 36549, 46609, 36869, 23111, 30673, 39296, 36886, 35338, 36933, 36966, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 42313, 47646, 36993, 39426, 42307, 22729, 23448, 37021, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 39988, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 50028, 21708, 39996, 40225, 24990, 37071, 37082, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 31016, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 27420, 22824, 43762, 22804, 22804, 48012, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 25524, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37098, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 37115, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 37134, 47563, 47563, 47563, 47564, 37151, 22824, 22824, 22824, 22824, 22767, 28828, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 41164, 23546, 26527, 23546, 34764, 23546, 19155, 37185, 37221, 37234, 37250, 37256, 37272, 37288, 37299, 26204, 23546, 37315, 23546, 35799, 23546, 43426, 26746, 23546, 23546, 37335, 23546, 32153, 42194, 37334, 37351, 37380, 37407, 37443, 40833, 37430, 32821, 37459, 23546, 23546, 34612, 23546, 23546, 40581, 34220, 23546, 41122, 29193, 49795, 34228, 47262, 37494, 29549, 41774, 37514, 42784, 22904, 45886, 37530, 38036, 37570, 36188, 37589, 23034, 37618, 28342, 23546, 23546, 23546, 23546, 50126, 23546, 23546, 23546, 23546, 23546, 48975, 28498, 44484, 47563, 28434, 44023, 37641, 37671, 39810, 30349, 22824, 39853, 47704, 29645, 22804, 49383, 22804, 37657, 33201, 23546, 23546, 50909, 37693, 23546, 32019, 38379, 23546, 23546, 23546, 48976, 47563, 47563, 46474, 32220, 37710, 22821, 22824, 22824, 49321, 37734, 37761, 35849, 22804, 22804, 37788, 37809, 29879, 33195, 23546, 37872, 23546, 23546, 37889, 23546, 23546, 23546, 47562, 27357, 47563, 47563, 27195, 22821, 40293, 22824, 22824, 22824, 30376, 34247, 22804, 22804, 22804, 29883, 33199, 37910, 31075, 23546, 37928, 47744, 48973, 37953, 47563, 47563, 37979, 38003, 22824, 22824, 38027, 38061, 22804, 22804, 38085, 47447, 23404, 23546, 28599, 23546, 47560, 31782, 47563, 23113, 38011, 22824, 33078, 33721, 22804, 31970, 23546, 21592, 23546, 22586, 47563, 50097, 23109, 22824, 40810, 22804, 22804, 38110, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 33290, 45056, 38132, 38158, 38179, 33552, 39426, 27505, 38215, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23648, 23546, 26527, 23546, 26305, 23546, 23546, 29594, 20530, 20539, 38250, 38264, 38273, 38289, 38300, 26364, 23546, 23948, 23546, 35799, 23546, 34320, 23546, 23546, 23546, 23948, 23546, 35554, 36579, 23947, 35559, 38316, 33588, 36393, 38336, 43066, 27800, 23546, 23546, 38357, 44844, 23546, 39344, 42555, 23546, 39071, 23546, 23546, 38375, 41192, 48530, 47563, 47812, 38395, 28750, 22824, 42121, 31482, 43762, 38449, 22804, 38419, 38440, 32050, 38473, 38509, 46688, 34783, 23546, 23546, 23546, 23546, 23546, 38530, 23546, 23546, 48975, 47883, 38550, 42949, 47563, 37135, 22823, 38568, 30084, 22824, 22824, 49439, 42031, 34293, 41837, 22804, 22804, 29885, 33201, 23546, 38929, 23546, 38602, 23546, 44369, 37873, 23791, 38621, 23546, 48976, 27031, 38642, 47563, 38659, 47564, 38683, 47916, 22824, 22824, 38702, 33843, 35849, 39277, 22804, 33804, 38724, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 36556, 23546, 23546, 23546, 23546, 47560, 38744, 47563, 30559, 22824, 22824, 46066, 22804, 22804, 31970, 23546, 23546, 49685, 22586, 47563, 47563, 23109, 47427, 22825, 22804, 35452, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 38761, 47561, 38782, 38802, 43621, 23464, 38824, 38844, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 38045, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23810, 23546, 46101, 23546, 29522, 38860, 33103, 38895, 38945, 38984, 38970, 38989, 38954, 39005, 39016, 26204, 23546, 24981, 39032, 39052, 39135, 26183, 26715, 27157, 23546, 39087, 39123, 35972, 23871, 39151, 32436, 39187, 39222, 39262, 39312, 39360, 27800, 27271, 23546, 23546, 40856, 29748, 35256, 26269, 47340, 39386, 28121, 33483, 41086, 39406, 48539, 39200, 45029, 47563, 29260, 30036, 22824, 47369, 43762, 41883, 39448, 22787, 22804, 32852, 39469, 27673, 33624, 23546, 39492, 23546, 23546, 30166, 23546, 19760, 23546, 25974, 48975, 39514, 47563, 47563, 47563, 37135, 37987, 39541, 30332, 22824, 22824, 49439, 34278, 22804, 48403, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 49277, 23546, 23546, 39561, 44662, 39580, 20000, 47563, 47563, 38745, 47563, 41583, 39601, 22824, 22824, 42751, 22824, 39625, 36344, 22804, 22804, 49650, 22804, 39663, 33195, 39390, 39701, 21803, 40964, 23546, 28563, 39737, 39764, 42864, 39780, 30015, 27711, 27195, 22821, 39796, 39832, 37838, 39869, 30376, 37543, 39886, 39910, 39936, 47724, 39958, 49087, 33227, 48840, 39980, 40013, 20680, 50204, 40049, 40067, 40083, 45419, 22824, 40109, 40125, 36765, 22804, 40151, 40167, 47447, 40217, 23546, 23546, 19121, 40241, 48114, 40263, 48445, 44596, 40286, 40309, 42808, 40330, 30581, 40353, 23546, 23546, 40374, 28485, 40396, 27517, 40433, 40468, 40722, 40488, 31964, 30114, 48477, 40517, 36058, 24761, 45115, 30673, 40537, 36549, 40555, 19020, 29663, 30673, 40603, 40652, 40668, 40708, 40752, 40779, 40802, 40826, 40849, 24756, 33030, 33551, 47559, 33030, 33552, 40872, 40899, 22729, 23448, 40923, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 40939, 26527, 23546, 35150, 40960, 23546, 26932, 40980, 40989, 41005, 41019, 41028, 41044, 41055, 26204, 41071, 27176, 35142, 41110, 22748, 41145, 23546, 41180, 29961, 41225, 35127, 41274, 41299, 41335, 41350, 41366, 41401, 41487, 41458, 41474, 41503, 23546, 18442, 27630, 46235, 23546, 41314, 19147, 41528, 40358, 23546, 23546, 45375, 22587, 47563, 36909, 41568, 47891, 27418, 38686, 27953, 41607, 41630, 22804, 23213, 41665, 46983, 39677, 36943, 23546, 45937, 23546, 37118, 23546, 39337, 41681, 33824, 35058, 38605, 23546, 41717, 41752, 28167, 41769, 47563, 43475, 41790, 42050, 41800, 22824, 22824, 41816, 41853, 50302, 41874, 22804, 49204, 29885, 47656, 41907, 23546, 38879, 36785, 23546, 23546, 23546, 23546, 23546, 39036, 48976, 47563, 46791, 34008, 47563, 47564, 22821, 22824, 44589, 46895, 22824, 22767, 35849, 22804, 41937, 38457, 22804, 29879, 33195, 23546, 23546, 49550, 23546, 45766, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 32301, 41958, 22824, 22824, 22824, 46046, 28243, 22804, 22804, 22804, 22804, 41977, 33199, 20951, 42005, 23546, 23546, 23546, 44350, 47563, 31827, 47563, 41591, 22824, 49433, 22824, 28884, 22804, 42026, 22804, 30403, 31211, 23546, 23546, 23546, 23546, 27328, 40247, 47563, 27241, 38708, 22824, 42285, 31924, 22804, 29685, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 22739, 46606, 49667, 46712, 38403, 42047, 44103, 22804, 44463, 42066, 42221, 42103, 42137, 42175, 42210, 42248, 42276, 42301, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 35697, 39426, 36136, 22729, 23448, 42329, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 26377, 26527, 23546, 23546, 42378, 33354, 42400, 20758, 23546, 26429, 42436, 42448, 42464, 42475, 26204, 23546, 23546, 25120, 35799, 23546, 23546, 23546, 31573, 31305, 23546, 23546, 31567, 25118, 23546, 48973, 37963, 23115, 42491, 47011, 42515, 27800, 23546, 42549, 23546, 44844, 23546, 38766, 18352, 23546, 39064, 23546, 23546, 22159, 22587, 48548, 38163, 45793, 48521, 47316, 42571, 42591, 47404, 42609, 44147, 39942, 22845, 35499, 47057, 42343, 42636, 23546, 42657, 23546, 42010, 42641, 26759, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 36917, 47563, 37135, 22823, 22824, 22824, 42693, 22824, 49439, 22804, 22804, 28847, 22804, 22804, 29885, 45066, 44270, 23546, 42713, 23546, 23546, 26553, 42677, 42730, 31574, 23546, 48976, 47563, 48931, 47563, 47563, 47564, 42748, 22824, 42767, 22824, 22824, 34180, 35849, 22804, 42800, 22804, 22804, 29879, 33195, 23546, 44983, 23546, 23546, 23546, 23546, 42824, 23546, 47562, 47563, 36034, 47563, 27749, 22821, 22824, 22824, 42844, 22824, 48373, 22804, 22804, 38192, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 18259, 23546, 23546, 42862, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 39325, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 48281, 42880, 42913, 28181, 33529, 39296, 42936, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 38514, 23546, 23546, 23546, 44073, 44076, 50916, 44069, 36233, 42971, 33598, 40201, 40539, 43066, 29275, 42987, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 43004, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 43023, 22824, 22824, 22824, 22824, 43497, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 30422, 47563, 23109, 38579, 22825, 32685, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 22195, 38234, 23546, 23546, 22088, 23546, 31645, 43040, 31695, 43090, 43103, 43112, 43128, 43139, 26204, 23546, 31341, 32732, 35799, 43366, 43155, 43175, 36087, 40692, 50768, 31673, 43193, 32904, 31522, 31081, 43243, 43271, 43287, 43315, 43342, 40683, 23546, 23546, 23546, 45381, 43358, 40568, 43382, 43400, 43418, 23546, 23546, 30119, 43208, 47563, 43442, 27364, 43462, 43491, 28908, 22824, 43513, 43557, 22804, 43588, 41858, 43607, 43637, 43676, 23546, 23546, 23546, 18266, 35576, 23546, 23546, 43699, 43717, 43736, 20331, 32703, 47563, 41378, 47563, 46720, 41989, 43754, 29628, 22824, 22824, 43651, 43778, 43812, 46171, 22804, 44212, 43831, 43879, 33201, 23546, 23546, 45346, 23546, 43914, 43941, 23546, 27809, 23863, 43976, 44003, 47563, 48620, 44039, 35181, 49990, 44092, 22824, 45449, 39545, 44119, 42697, 44138, 22804, 44163, 27998, 44211, 35734, 33195, 39171, 23546, 23546, 23067, 44228, 32012, 23546, 44255, 36870, 46433, 23003, 47563, 27195, 22821, 44297, 46134, 22824, 22824, 30376, 39647, 22804, 44322, 22804, 41442, 44340, 23546, 44366, 44385, 23546, 23546, 34339, 44404, 47563, 47563, 44422, 22824, 22824, 22824, 44438, 22804, 22804, 22804, 44454, 47447, 48298, 23546, 23546, 23546, 44479, 47563, 47563, 46130, 22824, 22824, 44500, 22804, 22804, 44520, 23546, 40027, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 38094, 49704, 44555, 44579, 44612, 44650, 23464, 24759, 33031, 33550, 44685, 30652, 34420, 36724, 24756, 33030, 33551, 47559, 33030, 45310, 44716, 44744, 32641, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 25786, 26527, 44778, 28976, 18999, 44795, 44824, 44860, 44808, 44885, 44899, 44911, 44927, 44938, 26204, 44954, 40587, 23546, 44971, 23546, 23546, 43960, 23546, 50132, 23546, 45006, 35089, 26325, 35096, 32207, 45025, 45045, 44306, 45082, 45103, 27800, 35987, 37200, 44669, 44844, 34640, 23546, 23546, 23546, 23546, 45137, 45172, 23546, 19324, 45188, 43446, 47563, 47563, 45233, 45249, 45268, 22824, 43762, 45291, 40314, 22804, 22804, 39677, 36943, 37912, 23546, 23546, 45326, 45362, 23546, 23546, 23546, 23546, 23546, 37055, 48975, 48512, 31834, 47563, 47563, 46028, 22823, 45397, 45415, 22824, 22824, 36333, 38728, 44324, 22804, 22804, 22804, 45435, 33201, 23546, 23546, 26251, 43720, 23546, 45465, 26758, 45484, 45504, 23546, 45539, 47563, 47563, 47285, 43856, 45576, 45600, 22824, 22824, 47994, 48169, 45624, 45661, 22804, 22804, 42152, 45681, 29879, 45697, 45713, 45733, 23546, 25942, 23546, 23546, 30214, 45754, 47562, 47563, 27730, 45789, 27195, 22821, 22824, 47619, 47969, 22824, 30376, 22804, 22804, 45809, 22804, 29883, 33199, 23546, 21039, 23546, 49467, 37049, 48973, 47563, 45851, 48716, 45584, 47934, 22824, 45868, 48003, 35869, 22804, 45910, 30403, 47447, 23546, 48332, 18869, 22345, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 32000, 21288, 23546, 45931, 45953, 47563, 37498, 23109, 22824, 40444, 22804, 34438, 36455, 45997, 44634, 19558, 46021, 50382, 46044, 28056, 22804, 34468, 46609, 35619, 30711, 46062, 46082, 23464, 24759, 33031, 33550, 19538, 36296, 49945, 23141, 46117, 38586, 45823, 48503, 46150, 46187, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23737, 26527, 23546, 23546, 34968, 23546, 46215, 26881, 26893, 46251, 46267, 46279, 46295, 46306, 26204, 46322, 23241, 25565, 35799, 25341, 42889, 46340, 22204, 44869, 46352, 46368, 46377, 46393, 46349, 46420, 46455, 46490, 46547, 46518, 46534, 32867, 46005, 19766, 34600, 44844, 46563, 23546, 26188, 46580, 41258, 46596, 46625, 46675, 46736, 46784, 46807, 46842, 38552, 46877, 45877, 46911, 46944, 36419, 46977, 46999, 47027, 27557, 39677, 37035, 47093, 47115, 35228, 23546, 47139, 47174, 23546, 47766, 23546, 49770, 47192, 20591, 47219, 47244, 47278, 38643, 47301, 41736, 47356, 47391, 47426, 31459, 49439, 36524, 39920, 40135, 22804, 35492, 33058, 47443, 23546, 20251, 43007, 37694, 47465, 46324, 47491, 47518, 23546, 47535, 47555, 39525, 47841, 47563, 34125, 47580, 47616, 47635, 39844, 22824, 37169, 48362, 35849, 47672, 47697, 22804, 41891, 47720, 33195, 23058, 47740, 23546, 45516, 47760, 23546, 47782, 18627, 47798, 50186, 47833, 47857, 27195, 47907, 47932, 47950, 47985, 48036, 39636, 46165, 37602, 50472, 50517, 37554, 27477, 48056, 18311, 23546, 35780, 48076, 48095, 44700, 47563, 47563, 48130, 48155, 37677, 22824, 48203, 48236, 49183, 22804, 48272, 47447, 18372, 48297, 48314, 48330, 41202, 45981, 33877, 34811, 48348, 48040, 48397, 48419, 37793, 31970, 48467, 23546, 23546, 48493, 46466, 31618, 34505, 49612, 47069, 35443, 43299, 48564, 28304, 47475, 19993, 48611, 37364, 48636, 48669, 43591, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 44177, 29729, 48685, 36498, 48701, 45275, 48737, 39426, 42307, 22729, 39685, 48765, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 48828, 23546, 23546, 48856, 23546, 35941, 30944, 30953, 48876, 30953, 30962, 48892, 48903, 26204, 23546, 23546, 23546, 40636, 23546, 26348, 23546, 23546, 23546, 23546, 26345, 23546, 38923, 23546, 48973, 48919, 48178, 48947, 38808, 37005, 31513, 38873, 23546, 23546, 44844, 23546, 23546, 27897, 48963, 23546, 23546, 23546, 23546, 48971, 46750, 47563, 47563, 34356, 48992, 22824, 22824, 22824, 36305, 49028, 22804, 22804, 22804, 49052, 44728, 49080, 23546, 49103, 45341, 23546, 23546, 42732, 48802, 47595, 38359, 35596, 48975, 47563, 49130, 41385, 43221, 47228, 22823, 48595, 46928, 41415, 49146, 49164, 22804, 49199, 49220, 45915, 29388, 37824, 33201, 23546, 25346, 23546, 26261, 23546, 23546, 23546, 49474, 23546, 23546, 48976, 33503, 47563, 47563, 47563, 47564, 49236, 37414, 22824, 22824, 22824, 22767, 49255, 36180, 22804, 22804, 22804, 29879, 33195, 49272, 23546, 49293, 23546, 23546, 23546, 23546, 28581, 36243, 47563, 47563, 47563, 27195, 49311, 22824, 22824, 22824, 22824, 37772, 22804, 22804, 22804, 22804, 29883, 46502, 23546, 23546, 50321, 46564, 23546, 30276, 23289, 47563, 47563, 37718, 49344, 22824, 22824, 30514, 49377, 22804, 22804, 42620, 47447, 39101, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 46439, 24761, 43524, 30673, 49399, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 49418, 45121, 44624, 47559, 33030, 33552, 39426, 32368, 49455, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49490, 49547, 33412, 49525, 23546, 34105, 23546, 33409, 49544, 42420, 41283, 49566, 49577, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 49593, 35299, 27962, 22805, 43066, 27800, 23546, 33329, 27613, 44844, 23546, 23546, 23546, 23546, 23546, 32481, 23546, 23546, 22587, 32570, 47563, 46861, 47563, 27418, 49610, 22824, 32331, 43762, 42159, 22804, 27215, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 37318, 23546, 23546, 23546, 20322, 23546, 48975, 47563, 47563, 49628, 47563, 37135, 22823, 22824, 32615, 22824, 22824, 49439, 22804, 22804, 49645, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 49666, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 49683, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 49701, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49720, 23546, 50953, 23546, 25809, 49755, 49786, 23546, 49811, 49825, 49837, 49853, 49864, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 27387, 22824, 49893, 38199, 49880, 34211, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 42672, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 49917, 23546, 23546, 23546, 22167, 47563, 47563, 47563, 47563, 47564, 49936, 22824, 22824, 22824, 22824, 22767, 49969, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 45149, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 49988, 47563, 50006, 22821, 22824, 48578, 22824, 41424, 30376, 22804, 39894, 22804, 32389, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 41512, 50052, 50063, 26204, 23546, 23546, 23546, 35799, 50079, 30464, 23546, 23546, 23546, 23546, 32774, 23546, 41129, 32770, 46701, 50096, 40191, 28190, 22805, 43066, 27800, 23546, 23546, 23546, 50113, 28719, 34485, 45773, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 29611, 47563, 27026, 27418, 22824, 35645, 28383, 43762, 22804, 22921, 22804, 48250, 39677, 50148, 50164, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 41250, 23546, 23546, 23546, 48976, 47563, 47563, 50184, 47563, 45852, 22821, 22824, 38786, 22824, 22824, 45252, 35849, 22804, 48256, 22804, 22804, 29879, 33195, 48079, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 50202, 47563, 47563, 27195, 22821, 50220, 22824, 22824, 22824, 30376, 48220, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 21798, 23546, 23546, 35799, 23546, 23546, 46652, 23546, 23546, 23546, 23546, 46656, 23546, 23546, 50246, 28439, 22824, 50294, 36350, 50281, 47331, 23546, 29448, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 35817, 22587, 47563, 47563, 47563, 27723, 27418, 22824, 22824, 27861, 43762, 22804, 22804, 22804, 48212, 39677, 36943, 23546, 50318, 23546, 23546, 23546, 23546, 23546, 23546, 37099, 23546, 23546, 48975, 38667, 47563, 36014, 47563, 37135, 22823, 50337, 22824, 46961, 22824, 49439, 28018, 22804, 22804, 50356, 22804, 29885, 33201, 23546, 43738, 23546, 23546, 23546, 23546, 23546, 38534, 23546, 23546, 48976, 47563, 50376, 47563, 47563, 47564, 50398, 41961, 50424, 22824, 22824, 22767, 50443, 28403, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 21488, 23546, 47562, 47563, 31747, 47563, 34161, 22821, 22824, 43024, 22824, 22824, 50464, 22804, 22804, 50488, 22804, 43844, 33199, 23546, 23546, 18921, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 31241, 23546, 23546, 39165, 23546, 29133, 47563, 47563, 33578, 22824, 22824, 50509, 22804, 22804, 31970, 23546, 49295, 23546, 22586, 47563, 31161, 23109, 50427, 22825, 22804, 41830, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 21483, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 46404, 21767, 21765, 32117, 22038, 50563, 21058, 21061, 50533, 22036, 50551, 50579, 50591, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50607, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50637, 19916, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 22150, 23546, 21369, 20766, 50679, 50692, 50708, 50717, 49509, 50740, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23761, 23546, 23546, 23758, 25629, 19208, 50639, 19926, 50639, 50790, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 42087, 23546, 23546, 23546, 23546, 22568, 29910, 50839, 50872, 50878, 50849, 23148, 50894, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50932, 23546, 23546, 22686, 23546, 23546, 23546, 22682, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50969, 18544, 18567, 18590, 21689, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23489, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22457, 23546, 23546, 22482, 50993, 50998, 50998, 51019, 22480, 51014, 51035, 23546, 23546, 23546, 23546, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 51062, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 51082, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 51098, 20392, 51127, 20418, 50802, 51114, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 94503, 94503, 90406, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 1, 12290, 3, 0, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 362, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 0, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 69632, 73728, 94503, 94503, 94503, 94503, 94503, 65536, 94503, 0, 2183168, 0, 0, 0, 90406, 94503, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 1637, 0, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2904064, 2908160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2751, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 0, 2997, 0, 0, 0, 0, 3001, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 1191, 0, 0, 0, 0, 1107, 0, 0, 0, 2138112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2978, 0, 0, 0, 2424832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625536, 0, 0, 0, 0, 0, 172032, 0, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 1, 12290, 3, 0, 2699264, 2715648, 0, 0, 2772992, 2805760, 2830336, 0, 2863104, 2920448, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 1118, 0, 0, 1121, 0, 2805760, 2920448, 0, 0, 0, 0, 0, 2920448, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 2179072, 2179072, 2179072, 2424832, 2433024, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2625536, 2805760, 2179072, 2830336, 2179072, 2179072, 2863104, 2179072, 2179072, 2179072, 2920448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2801664, 2813952, 2179072, 2838528, 2179072, 2179072, 2179072, 2179072, 2179072, 0, 914, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2699264, 2125824, 2715648, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2805760, 2125824, 2830336, 2125824, 2125824, 2863104, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3117056, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2125824, 2457600, 2125824, 2125824, 2125824, 2125824, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 2408448, 0, 0, 2584576, 0, 0, 0, 0, 2838528, 0, 0, 2838528, 0, 0, 0, 0, 0, 2469888, 2506752, 2756608, 0, 0, 2580480, 0, 0, 0, 2396160, 2400256, 2412544, 0, 0, 2838528, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2408448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 914, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2502656, 0, 0, 3010560, 2125824, 2125824, 2125824, 2125824, 2125824, 2662400, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3125248, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2600960, 0, 2674688, 0, 2768896, 2777088, 2781184, 0, 2822144, 0, 0, 2883584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055616, 0, 0, 0, 3080192, 3100672, 3104768, 0, 0, 0, 0, 3186688, 0, 0, 0, 0, 0, 0, 0, 3182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3133440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3003, 3004, 0, 2719744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3014656, 3207168, 0, 2691072, 0, 0, 0, 0, 0, 2818048, 2846720, 0, 2916352, 0, 0, 3002368, 0, 0, 3022848, 0, 0, 0, 0, 0, 2871296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2766, 0, 0, 0, 0, 0, 3215360, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2494464, 2179072, 2179072, 2514944, 2179072, 2179072, 2461696, 2465792, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2523136, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2699264, 2179072, 2715648, 2179072, 2723840, 2179072, 2732032, 2772992, 2179072, 2179072, 3100672, 2179072, 2179072, 3133440, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3207168, 2179072, 0, 0, 0, 0, 391, 392, 0, 393, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 3504, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3399, 540, 540, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 2465792, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2523136, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2600960, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2641920, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2719744, 2125824, 2125824, 2125824, 2125824, 2125824, 2768896, 2777088, 2768896, 2777088, 2125824, 2797568, 2822144, 2125824, 2125824, 2125824, 2883584, 2125824, 2912256, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3133440, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 0, 0, 0, 0, 0, 0, 3011, 0, 0, 0, 0, 0, 0, 3018, 0, 0, 0, 0, 2605056, 0, 0, 0, 0, 2887680, 0, 2924544, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162112, 3170304, 0, 0, 3219456, 3035136, 0, 0, 0, 0, 0, 3072000, 2650112, 2179072, 2179072, 2179072, 2707456, 2179072, 2736128, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2887680, 2179072, 2179072, 2543616, 2547712, 2179072, 2179072, 2596864, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2584576, 0, 0, 2809856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3088384, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 0, 0, 0, 1680, 1681, 0, 1683, 0, 0, 0, 0, 0, 0, 0, 540, 561, 540, 561, 540, 540, 561, 540, 585, 0, 0, 2576384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420736, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 3121152, 3141632, 0, 0, 0, 2924544, 0, 2682880, 0, 0, 0, 0, 0, 0, 0, 1242, 1272, 1273, 0, 1242, 0, 540, 540, 540, 3112960, 2387968, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2453504, 2179072, 2473984, 2482176, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2126737, 2126737, 2503569, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2532241, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2605969, 2126737, 2924544, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3035136, 2179072, 2179072, 3072000, 2179072, 2179072, 2179072, 3137536, 2126737, 2126737, 2499473, 2126737, 2126737, 2126737, 2556817, 2565009, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3224465, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2446298, 2126810, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 0, 0, 0, 0, 0, 0, 3181, 0, 0, 0, 3184, 3185, 3186, 0, 0, 3189, 3194880, 2125824, 0, 0, 0, 0, 0, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2605056, 2125824, 2629632, 2125824, 2125824, 2650112, 2125824, 2125824, 2125824, 2707456, 2125824, 2736128, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 2125824, 2125824, 3072000, 2125824, 2125824, 3121152, 2125824, 2125824, 3141632, 2125824, 2125824, 2125824, 3170304, 2125824, 2125824, 3190784, 2125824, 3170304, 2125824, 2125824, 3190784, 3194880, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3507, 540, 540, 540, 540, 540, 540, 0, 3145728, 0, 3203072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3314, 0, 540, 0, 3067904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 2895872, 0, 0, 0, 2445312, 0, 2842624, 0, 0, 0, 2637824, 0, 0, 0, 0, 432, 0, 0, 0, 329, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 0, 0, 0, 2621440, 0, 3182592, 2899968, 0, 2961408, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2445312, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2551808, 2179072, 2179072, 2179072, 2179072, 2179072, 3117056, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2637824, 2125824, 2125824, 2125824, 2125824, 2727936, 2752512, 2125824, 2125824, 2125824, 2125824, 2842624, 2846720, 2125824, 2895872, 2916352, 2125824, 2125824, 2945024, 2125824, 2125824, 2994176, 2125824, 3002368, 2125824, 2125824, 3022848, 2125824, 3067904, 3084288, 3096576, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2442, 2443, 0, 0, 2446, 0, 0, 0, 0, 0, 2928640, 0, 0, 0, 3059712, 0, 2543616, 2666496, 0, 2633728, 0, 0, 0, 0, 0, 1697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 2494464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211264, 2179072, 2928640, 2179072, 2179072, 2179072, 2998272, 2179072, 2179072, 2179072, 2179072, 3059712, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2446225, 2126737, 2179072, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 2113, 0, 2125824, 2543616, 2547712, 2125824, 2125824, 2596864, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2928640, 2125824, 2125824, 2125824, 2998272, 2125824, 2125824, 2125824, 2125824, 3059712, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2126811, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 3178496, 2125824, 2179072, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2441216, 0, 0, 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2165, 540, 540, 540, 540, 0, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 0, 0, 1247, 0, 1194, 0, 2646016, 2179072, 2179072, 2695168, 2756608, 2179072, 2179072, 2179072, 2932736, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3039232, 2179072, 3063808, 2179072, 2179072, 2179072, 2179072, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2396160, 2400256, 2125824, 2125824, 2441216, 2125824, 2469888, 2125824, 2125824, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2613248, 2646016, 2125824, 2125824, 2695168, 2756608, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2396160, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2125824, 2506752, 2506752, 2506752, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 987, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3176, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 3158016, 2437120, 0, 2785280, 0, 0, 0, 2428928, 0, 3018752, 2764800, 2572288, 0, 0, 3051520, 2179072, 2179072, 2637824, 2179072, 2179072, 2179072, 2179072, 2727936, 2752512, 2179072, 2179072, 2179072, 2842624, 2846720, 2179072, 2916352, 2428928, 2437120, 2179072, 2486272, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2654208, 2678784, 2760704, 2764800, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 2043, 2044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140, 0, 0, 0, 0, 0, 0, 2125824, 3018752, 2125824, 2125824, 2125824, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 24576, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3149824, 2125824, 2179072, 3051520, 2125824, 3051520, 2125824, 3051520, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 304, 0, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, 0, 0, 2068, 0, 0, 0, 0, 0, 0, 0, 0, 2095, 0, 0, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875392, 0, 0, 0, 3176, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2940928, 2179072, 2179072, 2498560, 2179072, 2179072, 2179072, 2555904, 2564096, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 2125824, 2179072, 2416640, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 0, 2748416, 2879488, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2125824, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 0, 0, 296, 0, 297, 0, 0, 0, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 433, 0, 0, 0, 453, 469, 469, 469, 469, 469, 469, 469, 469, 469, 479, 469, 469, 469, 469, 469, 469, 2125824, 2125824, 2125824, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 1918, 2125824, 2125824, 2125824, 2408448, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 1734, 0, 1736, 1710, 540, 540, 540, 540, 540, 540, 540, 540, 1816, 1818, 540, 540, 540, 540, 540, 1360, 0, 2859008, 0, 0, 2179072, 2449408, 2179072, 2535424, 2179072, 2609152, 2179072, 2859008, 2179072, 2179072, 2179072, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2527232, 0, 0, 0, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2804, 540, 540, 540, 540, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2527232, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2527232, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 1080, 1084, 0, 0, 1088, 2125824, 2125824, 2125824, 2125824, 3092480, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2539520, 0, 2949120, 0, 0, 0, 0, 434, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 457, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 2179072, 2658304, 2973696, 2179072, 2125824, 2658304, 2973696, 2125824, 2125824, 2658304, 2973696, 2125824, 2711552, 0, 2560000, 2179072, 2179072, 2945024, 2179072, 2179072, 2994176, 2179072, 3002368, 2179072, 2179072, 3022848, 2179072, 3067904, 3084288, 3096576, 2179072, 2179072, 2600960, 2179072, 2179072, 2179072, 2179072, 2641920, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2719744, 2179072, 2179072, 2441216, 2179072, 2469888, 2179072, 2179072, 2179072, 2519040, 2179072, 2179072, 2179072, 2179072, 2588672, 2179072, 2613248, 2703360, 0, 0, 0, 0, 2977792, 0, 0, 3047424, 3129344, 0, 2981888, 2396160, 0, 3153920, 2560000, 2125824, 2560000, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 2125824, 2457600, 2179072, 2179072, 2179072, 2179072, 2457600, 2125824, 2125824, 2125824, 2985984, 2985984, 2985984, 2985984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 458, 111050, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 111050, 111050, 111050, 111050, 111050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 184723, 184931, 184931, 184931, 0, 184931, 184931, 184931, 184931, 184931, 0, 0, 0, 0, 0, 184931, 0, 184931, 1, 12290, 3, 78112, 1059, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 297, 0, 2125824, 1059, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750, 0, 0, 0, 0, 2755, 0, 300, 118784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 300, 300, 300, 300, 0, 0, 0, 0, 0, 300, 0, 300, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 33403, 297, 0, 2134016, 49791, 301, 0, 0, 0, 0, 0, 0, 225889, 225889, 225889, 225889, 225740, 225889, 225889, 225889, 225889, 225889, 225740, 225740, 225740, 225740, 225740, 225906, 225740, 225906, 1, 12290, 3, 0, 0, 0, 0, 249856, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 0, 697, 698, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 57344, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 540, 540, 540, 540, 540, 540, 540, 2530, 540, 540, 540, 540, 540, 540, 540, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 296, 0, 0, 0, 300, 0, 0, 0, 300, 119195, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3166, 3167, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 0, 0, 0, 0, 0, 122880, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 0, 122880, 0, 2105629, 12290, 3, 0, 0, 291, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 69632, 73728, 0, 416, 416, 0, 0, 65536, 416, 1092, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765, 0, 0, 0, 0, 0, 1824, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2551808, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 131072, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 0, 0, 0, 0, 0, 131072, 0, 0, 131072, 131072, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 131072, 131072, 131072, 0, 131072, 131072, 131072, 131072, 131072, 0, 0, 0, 0, 0, 131072, 0, 131072, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 135168, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, 0, 0, 0, 135168, 0, 0, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 135168, 135168, 135168, 135168, 135168, 135168, 135168, 0, 135168, 135168, 135168, 135168, 135168, 0, 0, 0, 0, 0, 135168, 0, 135168, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118784, 296, 0, 2183168, 0, 0, 0, 0, 0, 636, 637, 0, 2134016, 640, 641, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 1361, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 986, 2125824, 2125824, 2125824, 2125824, 2424832, 0, 301, 139264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 301, 301, 301, 301, 0, 0, 0, 0, 0, 301, 0, 301, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 297, 0, 2183168, 0, 0, 0, 0, 0, 296, 33406, 0, 2134016, 300, 49794, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61440, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455, 0, 0, 0, 0, 0, 301, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2779, 0, 0, 0, 0, 0, 298, 298, 143728, 298, 298, 298, 143728, 69632, 73728, 298, 298, 143658, 298, 298, 65536, 298, 298, 0, 0, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 363, 298, 0, 143658, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 143658, 368, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 298, 143658, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 298, 0, 298, 0, 298, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 143658, 143658, 143658, 143658, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143728, 298, 298, 298, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143728, 143658, 143728, 143728, 143728, 143728, 143728, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 90406, 90406, 90406, 90406, 0, 94503, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 0, 12290, 3, 0, 0, 2183168, 126976, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1146880, 0, 1146880, 0, 0, 0, 0, 0, 0, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2163, 540, 540, 540, 540, 540, 540, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 345, 346, 347, 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 159744, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 25160, 0, 0, 159744, 0, 0, 0, 0, 25160, 25160, 25160, 159744, 25160, 25160, 25160, 25160, 25160, 159744, 159744, 159744, 159744, 25160, 159744, 25160, 1, 12290, 3, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 1, 12290, 3, 0, 167936, 167936, 167936, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3015, 0, 0, 0, 0, 0, 0, 0, 0, 2138112, 1183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262144, 0, 0, 0, 0, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 0, 0, 172032, 172032, 0, 172032, 0, 0, 172032, 0, 172032, 0, 172032, 0, 0, 0, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 1, 12290, 3, 0, 172032, 0, 172032, 172032, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 0, 0, 0, 0, 1, 286, 3, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 106496, 0, 0, 0, 0, 106496, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 1, 0, 3, 78112, 176128, 176128, 176128, 0, 0, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 0, 0, 0, 0, 0, 78112, 290, 0, 634, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1159168, 414, 414, 0, 0, 0, 0, 0, 414, 0, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 0, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 959, 561, 585, 585, 585, 1490, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1498, 585, 585, 0, 0, 229376, 0, 0, 0, 0, 0, 0, 0, 0, 1686, 0, 0, 0, 0, 0, 0, 404, 404, 404, 404, 0, 404, 404, 404, 404, 404, 0, 0, 0, 0, 0, 404, 0, 404, 1, 12290, 3, 78112, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155072, 0, 0, 0, 0, 0, 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2250, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 716, 0, 0, 719, 0, 561, 561, 2287, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 585, 585, 585, 2347, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1514, 585, 585, 2372, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2671, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1515, 585, 585, 0, 0, 0, 2994, 0, 0, 0, 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 540, 3035, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 910, 540, 3075, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1417, 3116, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1501, 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3187, 0, 0, 0, 0, 0, 2046, 0, 2149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 1, 12290, 3, 0, 540, 540, 540, 3203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3211, 540, 540, 540, 540, 540, 2813, 540, 540, 2817, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2555, 540, 540, 540, 540, 540, 540, 3255, 585, 585, 585, 3258, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3266, 585, 561, 0, 1287, 585, 1467, 1376, 540, 540, 1339, 540, 540, 561, 561, 1430, 561, 0, 585, 585, 585, 585, 585, 288, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0, 0, 0, 2465, 0, 0, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 3309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3508, 540, 3509, 540, 540, 540, 3326, 3327, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 961, 561, 585, 585, 585, 3361, 585, 585, 585, 585, 3362, 3363, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 561, 3416, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3425, 585, 585, 585, 585, 585, 585, 1492, 585, 585, 585, 585, 585, 585, 585, 1499, 585, 585, 585, 585, 3431, 585, 585, 585, 585, 3435, 540, 561, 585, 0, 0, 0, 0, 0, 0, 665, 0, 0, 668, 0, 0, 0, 0, 0, 0, 0, 3172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3450, 540, 540, 540, 540, 540, 2814, 540, 2816, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2233, 540, 540, 540, 540, 540, 0, 561, 561, 561, 3573, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3538, 585, 585, 3585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 3627, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 0, 0, 0, 188416, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 540, 540, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 2169, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 78112, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 0, 1, 12290, 3, 0, 192971, 192971, 192971, 0, 0, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2801664, 0, 0, 0, 0, 2142208, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 2797568, 0, 0, 0, 0, 0, 0, 0, 2850816, 2867200, 0, 0, 740, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 740, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 740, 1184, 0, 0, 0, 0, 1188, 0, 0, 0, 0, 0, 0, 0, 1583, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 1661, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 2727936, 0, 0, 0, 3084288, 0, 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, 0, 0, 0, 1188, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150976, 0, 0, 0, 0, 0, 0, 561, 561, 585, 585, 585, 585, 1559, 2029, 0, 0, 0, 0, 1565, 2031, 0, 0, 0, 0, 0, 2120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 337, 338, 561, 561, 2323, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2339, 585, 585, 2342, 0, 304, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 2136, 0, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 791, 817, 0, 817, 812, 0, 0, 0, 0, 0, 0, 204800, 204800, 0, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 205104, 204800, 204800, 205103, 205104, 204800, 205103, 205103, 204800, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 2183801, 0, 0, 0, 0, 0, 296, 297, 151552, 2134016, 300, 301, 0, 212992, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 0, 0, 0, 0, 0, 0, 2932736, 2965504, 0, 0, 3076096, 0, 0, 2695168, 3174400, 2646016, 0, 914, 2126737, 2126737, 2126737, 2126737, 2425745, 2433937, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 987, 2126810, 2126810, 2126810, 2126810, 2425818, 2724753, 2126737, 2732945, 2773905, 2126737, 2126737, 2126737, 2806673, 2126737, 2831249, 2126737, 2126737, 2864017, 2126737, 2126737, 2126737, 2126737, 2126737, 2524049, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2601873, 2126737, 2126737, 2921361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3117969, 2126737, 2126737, 2126737, 2126737, 2593681, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 3093393, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2434010, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2626522, 2126810, 2126737, 0, 2179072, 2126810, 2126810, 2126737, 2457600, 2179072, 2179072, 2179072, 2179072, 2458513, 2126737, 2126737, 2126737, 2126737, 2126737, 2626449, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2700177, 2126737, 2716561, 2126737, 2806746, 2126810, 2831322, 2126810, 2126810, 2864090, 2126810, 2126810, 2126810, 2126810, 2921434, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2458586, 2126810, 2126810, 2126810, 2126810, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 395, 0, 0, 0, 321, 0, 0, 2126737, 2126737, 2126737, 2409361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3126161, 2126737, 2126737, 2126737, 2802577, 2814865, 2126737, 2839441, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 2126810, 2663386, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2802650, 2814938, 2126810, 2839514, 0, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2462609, 2466705, 2126737, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 2769809, 2778001, 2126737, 2798481, 2823057, 2126737, 2126737, 2126737, 2884497, 2126737, 2913169, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2655121, 2679697, 2761617, 2765713, 2786193, 2855825, 2970513, 2126737, 3007377, 2126737, 3134353, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3208081, 2126737, 0, 0, 0, 0, 0, 325, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2462682, 2466778, 2126810, 2126810, 2126810, 2524122, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2601946, 2126810, 2126810, 2126810, 2585562, 2126810, 2126810, 2126810, 2126810, 2126810, 2618330, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2888666, 2126810, 2126810, 2925530, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2642906, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2720730, 2126810, 2126810, 2126810, 2126810, 2126810, 2769882, 2778074, 2126810, 2798554, 2823130, 2126810, 2126810, 2126810, 2884570, 2126810, 2913242, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3126234, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3208154, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 0, 0, 0, 2388881, 2126737, 2126737, 2421649, 2126737, 2126737, 2126737, 2126737, 2126737, 2454417, 2126737, 2474897, 2483089, 2630545, 2126737, 2126737, 2651025, 2126737, 2126737, 2126737, 2708369, 2126737, 2737041, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 985, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2552794, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126737, 3072913, 2126737, 2126737, 3122065, 2126737, 2126737, 3142545, 2126737, 2126737, 2126737, 3171217, 2126737, 2126737, 3191697, 3195793, 2126737, 0, 0, 0, 0, 0, 0, 2388954, 2126810, 2126810, 2421722, 2126810, 2126810, 2126810, 2126810, 2126810, 3040218, 2126810, 3064794, 2126810, 2126810, 2126810, 2126810, 3101658, 2126810, 2126810, 3134426, 2126810, 2454490, 2126810, 2474970, 2483162, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2532314, 2126810, 2126810, 2126810, 2126810, 3036122, 2126810, 2126810, 3072986, 2126810, 2126810, 3122138, 2126810, 2126810, 3142618, 2126810, 2126810, 2126810, 3171290, 2126810, 2126810, 3191770, 3195866, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 3112960, 3219456, 2126737, 2126737, 3113873, 3220369, 2126810, 2126810, 3113946, 3220442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 2638737, 2126737, 2126737, 2126737, 2126737, 2728849, 2753425, 2126737, 2126737, 2126737, 2126737, 2843537, 2847633, 2126737, 2896785, 2917265, 2638810, 2126810, 2126810, 2126810, 2126810, 2728922, 2753498, 2126810, 2126810, 2126810, 2126810, 2843610, 2847706, 2126810, 2896858, 2917338, 2179072, 3178496, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2495377, 2126737, 2126737, 2515857, 2126737, 2126737, 2126737, 2126737, 3011473, 2126737, 2126737, 2126810, 2126810, 2503642, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3138522, 2126737, 2940928, 2941841, 2941914, 0, 0, 0, 0, 2126737, 2544529, 2548625, 2126737, 2126737, 2597777, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2552721, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2929553, 2126737, 2126737, 2126737, 2999185, 2126737, 2126737, 2126737, 2126737, 3060625, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3040145, 2126737, 3064721, 2126737, 2126737, 2126737, 2126737, 3101585, 2126737, 2126737, 3179409, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2495450, 2126810, 2126810, 2515930, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 2160, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3525, 561, 2126810, 2544602, 2548698, 2126810, 2126810, 2597850, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 0, 2502656, 0, 0, 3010560, 2126810, 2929626, 2126810, 2126810, 2126810, 2999258, 2126810, 2126810, 2126810, 2126810, 3060698, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3118042, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126810, 3179482, 2126737, 2179072, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2126810, 2126810, 2441216, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2397073, 2401169, 2126737, 2126737, 2442129, 2126737, 2470801, 2126737, 2126737, 2126737, 2126737, 2126737, 2663313, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 2126810, 2126810, 2126810, 2409434, 2519953, 2126737, 2126737, 2126737, 2126737, 2589585, 2126737, 2614161, 2646929, 2126737, 2126737, 2696081, 2757521, 2126737, 2126737, 2126737, 2126737, 2126737, 3138449, 2126810, 2126810, 2499546, 2126810, 2126810, 2126810, 2556890, 2565082, 2126810, 2126810, 2126737, 2933649, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3130257, 2126737, 2126737, 3154833, 3167121, 3175313, 2397146, 2401242, 2126810, 2126810, 2442202, 2126810, 2470874, 2126810, 2126810, 2126810, 2520026, 2126810, 2126810, 2126810, 2126810, 2589658, 2126810, 2126810, 2126810, 3011546, 2126810, 2126810, 2126737, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 663, 0, 0, 666, 667, 0, 0, 0, 0, 0, 0, 0, 540, 571, 540, 571, 540, 540, 571, 540, 595, 2614234, 2647002, 2126810, 2126810, 2696154, 2757594, 2126810, 2126810, 2126810, 2126810, 2933722, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3224538, 2126737, 2179072, 2417626, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2126737, 2429841, 2438033, 2126737, 2487185, 2126737, 2126737, 2945937, 2126737, 2126737, 2995089, 2126737, 3003281, 2126737, 2126737, 3023761, 2126737, 3068817, 3085201, 3097489, 2126737, 2126737, 2888593, 2126737, 2126737, 2925457, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3036049, 2126737, 3019665, 2126737, 2126737, 2126737, 3150737, 2126810, 2429914, 2438106, 2126810, 2487258, 2126810, 2126810, 2126810, 2126810, 2126810, 2700250, 2126810, 2716634, 2126810, 2724826, 2126810, 2733018, 2773978, 2126810, 2126810, 2126810, 2126810, 3150810, 2126737, 2179072, 3051520, 2126737, 3052433, 2126810, 3052506, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2126810, 2593754, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 2439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 370, 0, 0, 2126737, 2450321, 2126737, 2536337, 2126737, 2610065, 2126737, 2859921, 2126737, 2126737, 2126737, 3031953, 2126810, 2450394, 2126810, 2536410, 2126810, 2610138, 2126810, 2859994, 2126810, 2126810, 2126810, 3032026, 2126737, 2527232, 0, 0, 0, 0, 0, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237568, 0, 0, 0, 0, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2528145, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2528218, 2126810, 2126810, 2946010, 2126810, 2126810, 2995162, 2126810, 3003354, 2126810, 2126810, 3023834, 2126810, 3068890, 3085274, 3097562, 2126810, 2126810, 2126810, 2606042, 2126810, 2630618, 2126810, 2126810, 2651098, 2126810, 2126810, 2126810, 2708442, 2126810, 2737114, 2126810, 2126810, 2126810, 2655194, 2679770, 2761690, 2765786, 2786266, 2855898, 2970586, 2126810, 3007450, 2126810, 3019738, 2126810, 2126810, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 2405265, 2126737, 2126737, 2126737, 2126737, 3027857, 2405338, 2126810, 2126810, 2126810, 2126810, 3027930, 2539520, 0, 2949120, 0, 0, 0, 0, 695, 0, 0, 0, 0, 362, 362, 362, 0, 0, 704, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, 0, 0, 2179072, 2658304, 2973696, 2179072, 2126737, 2659217, 2974609, 2126737, 2126810, 2659290, 2974682, 2126810, 2711552, 0, 2560000, 2179072, 2179072, 3125248, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2560913, 2126737, 2560986, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 2126810, 3130330, 2126810, 2126810, 3154906, 3167194, 3175386, 2126737, 2506752, 2507738, 2507665, 2179072, 2179072, 2126737, 2126737, 2126737, 2642833, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2720657, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2585489, 2126737, 2126737, 2126737, 2126737, 2126737, 2618257, 2126737, 2985984, 2985984, 2986897, 2986970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 0, 0, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 1, 12290, 3, 0, 0, 0, 0, 0, 253952, 0, 0, 0, 253952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 688, 0, 0, 0, 0, 0, 98304, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 297, 0, 300, 0, 0, 0, 300, 0, 301, 0, 0, 0, 301, 0, 0, 0, 301, 69632, 139679, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 3133440, 0, 98304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 300, 0, 301, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 914, 0, 0, 0, 0, 0, 2451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 301, 0, 0, 0, 0, 0, 914, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2531328, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2605056, 2125824, 3194880, 2125824, 987, 0, 0, 0, 987, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2887680, 2125824, 2125824, 2924544, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 349, 350, 0, 0, 0, 0, 2125824, 237568, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 358, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 217088, 2125824, 241664, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 131072, 131072, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 155648, 0, 0, 2183168, 0, 0, 270336, 0, 0, 296, 297, 0, 2134016, 300, 301, 200704, 0, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1261, 0, 0, 0, 0, 0, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 180224, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 0, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 20480, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2768896, 2777088, 2797568, 2822144, 2179072, 2179072, 2179072, 2883584, 2912256, 2179072, 2179072, 2179072, 2179072, 2179072, 2617344, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2662400, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2584576, 2125824, 2125824, 2125824, 2125824, 2125824, 2617344, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142208, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 2113823, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 293, 0, 0, 245760, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3039232, 2125824, 3063808, 2125824, 2125824, 2125824, 2125824, 3100672, 2125824, 2125824, 3133440, 2125824, 245760, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 122880, 122880, 0, 0, 274432, 274432, 274432, 274432, 0, 0, 0, 0, 0, 274432, 0, 274432, 1, 12290, 3, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 328, 329, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 2055, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 1104, 2483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 335, 0, 0, 0, 0, 1679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 78456, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 562, 562, 562, 562, 562, 562, 562, 586, 586, 586, 540, 586, 586, 586, 586, 586, 562, 562, 540, 562, 586, 562, 586, 1, 12290, 3, 78112, 0, 0, 2771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 521, 521, 1, 12290, 3, 78113, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 1, 12290, 3, 0, 282624, 282624, 282624, 0, 0, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3178496, 2670592, 0, 2744320, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 282624, 282624, 282624, 282624, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 3176, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 683, 684, 685, 0, 0, 0, 689, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 302, 0, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3301, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 3381, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2531328, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2605056, 2179072, 2629632, 2179072, 2179072, 0, 0, 0, 306, 0, 0, 0, 0, 0, 305, 0, 305, 306, 0, 305, 305, 0, 0, 0, 305, 305, 306, 306, 0, 0, 0, 0, 0, 0, 305, 405, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 0, 0, 306, 410, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 742, 0, 0, 0, 0, 742, 0, 748, 0, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 462, 462, 488, 488, 462, 488, 488, 488, 488, 488, 488, 488, 513, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 533, 488, 488, 488, 488, 488, 541, 563, 541, 563, 541, 541, 563, 541, 587, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 541, 613, 613, 613, 613, 613, 587, 563, 563, 541, 563, 587, 563, 587, 1, 12290, 3, 78112, 0, 0, 645, 0, 0, 648, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 253952, 0, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 0, 353, 0, 351, 0, 472, 472, 472, 472, 472, 472, 472, 477, 472, 472, 472, 472, 472, 472, 472, 472, 472, 477, 472, 0, 768, 0, 0, 772, 0, 0, 0, 0, 0, 0, 781, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 343, 342, 65536, 341, 0, 788, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 736, 0, 796, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 820, 0, 0, 648, 0, 0, 0, 0, 0, 837, 792, 0, 0, 0, 0, 0, 841, 842, 792, 792, 0, 0, 0, 0, 792, 736, 792, 0, 540, 540, 851, 855, 540, 540, 540, 540, 1345, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2181, 540, 540, 540, 540, 561, 561, 561, 921, 925, 561, 561, 561, 561, 561, 561, 951, 561, 956, 561, 963, 561, 966, 561, 561, 980, 561, 561, 0, 585, 585, 585, 994, 998, 585, 585, 585, 585, 585, 585, 1963, 1964, 1966, 585, 585, 585, 585, 585, 585, 585, 561, 2713, 585, 2715, 2716, 540, 540, 540, 540, 585, 585, 585, 1024, 585, 1029, 585, 1036, 585, 1039, 585, 585, 1053, 585, 585, 966, 0, 0, 0, 855, 585, 998, 925, 851, 1065, 894, 540, 540, 921, 1070, 966, 561, 0, 585, 585, 585, 585, 585, 78112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114688, 0, 241664, 258048, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 673, 0, 540, 540, 1342, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 585, 585, 585, 1524, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1517, 585, 585, 585, 1433, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3070, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 3662, 0, 0, 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, 1106, 1654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, 0, 1732, 0, 0, 1733, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3030, 540, 540, 540, 540, 540, 540, 540, 1745, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1758, 540, 540, 540, 540, 540, 540, 2540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1329, 540, 540, 540, 540, 540, 540, 540, 540, 1795, 540, 540, 1798, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 900, 540, 540, 540, 540, 540, 540, 1810, 540, 540, 540, 540, 540, 1815, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1416, 561, 1825, 561, 561, 561, 561, 1831, 561, 561, 561, 561, 561, 1837, 561, 561, 561, 561, 561, 983, 561, 0, 585, 585, 585, 585, 585, 1002, 585, 1010, 561, 1892, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1904, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2726, 0, 0, 2729, 2730, 561, 561, 1909, 561, 561, 561, 561, 561, 561, 561, 26027, 1919, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 3649, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3231, 3232, 561, 1925, 585, 585, 585, 585, 585, 1931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3596, 1944, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1540, 561, 561, 2025, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 2075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 2145, 0, 0, 0, 2143, 0, 0, 2150, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 1705, 0, 0, 540, 540, 2171, 540, 540, 2174, 540, 540, 540, 540, 540, 540, 2182, 540, 540, 540, 540, 540, 540, 2568, 540, 540, 540, 540, 2572, 540, 540, 540, 540, 540, 540, 1347, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2556, 540, 540, 540, 540, 540, 540, 540, 2201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 2242, 540, 540, 540, 2214, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1805, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2254, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2123, 0, 2125, 2126, 0, 0, 0, 0, 561, 2257, 561, 561, 561, 561, 561, 561, 2265, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2952, 561, 2954, 561, 2299, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1438, 561, 2033, 0, 2035, 0, 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434, 0, 0, 0, 2475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 0, 0, 2484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2592, 561, 561, 561, 561, 561, 1408, 561, 561, 1412, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1008, 585, 2656, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2664, 585, 585, 585, 585, 585, 585, 2350, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2379, 585, 585, 585, 585, 585, 585, 585, 585, 2699, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1940, 585, 585, 2708, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3229, 561, 561, 561, 561, 561, 561, 585, 585, 585, 3352, 585, 585, 585, 3355, 585, 585, 2731, 0, 0, 0, 0, 0, 0, 2736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 2759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 540, 540, 540, 0, 0, 0, 2788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 540, 540, 540, 2826, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2833, 540, 540, 540, 540, 1748, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1760, 540, 540, 540, 540, 1765, 540, 540, 540, 540, 540, 540, 540, 540, 1772, 540, 540, 540, 540, 561, 3406, 561, 561, 3408, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1009, 585, 561, 561, 561, 2860, 561, 561, 2864, 561, 561, 561, 561, 561, 561, 561, 561, 561, 944, 561, 561, 561, 561, 561, 561, 561, 2873, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2881, 561, 561, 0, 0, 0, 2649, 0, 1920, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2703, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2908, 585, 585, 2912, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2393, 2394, 585, 585, 585, 585, 585, 2921, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2929, 585, 585, 0, 0, 0, 3292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3297, 2955, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 305, 0, 0, 0, 2970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 1589, 0, 0, 540, 540, 540, 540, 3036, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2546, 540, 540, 540, 561, 561, 561, 3076, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1436, 561, 561, 561, 585, 585, 585, 3117, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2356, 585, 2358, 0, 0, 0, 0, 3176, 3442, 0, 3444, 0, 0, 0, 0, 0, 540, 3451, 540, 540, 540, 540, 1796, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 905, 540, 540, 540, 540, 3453, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 3466, 561, 3468, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3510, 540, 540, 540, 540, 540, 3204, 3205, 540, 540, 540, 540, 3209, 3210, 540, 540, 540, 540, 540, 1749, 1750, 540, 540, 540, 540, 1757, 540, 540, 540, 540, 540, 540, 1346, 540, 540, 540, 540, 540, 540, 1356, 540, 540, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 2490, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 2517, 0, 0, 0, 0, 0, 0, 0, 0, 2975, 0, 0, 0, 0, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 0, 3173, 0, 0, 0, 0, 0, 0, 0, 0, 3183, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 449, 418, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 532, 449, 532, 532, 532, 449, 532, 532, 532, 532, 449, 542, 564, 542, 564, 542, 542, 564, 542, 588, 564, 564, 564, 564, 564, 564, 564, 588, 588, 588, 542, 588, 588, 588, 588, 588, 564, 564, 616, 621, 588, 621, 627, 1, 12290, 3, 78112, 0, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163, 540, 540, 540, 1811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1377, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 585, 585, 585, 1993, 585, 585, 585, 585, 585, 1999, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3551, 0, 3553, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2589, 561, 561, 561, 561, 2593, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2338, 585, 585, 585, 585, 585, 585, 585, 2657, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1971, 585, 585, 585, 2709, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 3228, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 2900, 585, 585, 585, 585, 585, 540, 3514, 540, 3516, 540, 540, 3518, 540, 561, 561, 561, 561, 561, 561, 561, 561, 1396, 1398, 561, 561, 561, 561, 561, 561, 3527, 561, 3529, 561, 561, 3531, 561, 585, 585, 585, 585, 585, 585, 585, 585, 3540, 585, 3542, 585, 585, 3544, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 147456, 0, 0, 0, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 365, 0, 382, 0, 348, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, 0, 0, 420, 428, 419, 428, 0, 310, 428, 441, 450, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 484, 489, 489, 500, 489, 489, 489, 489, 489, 489, 489, 489, 515, 515, 528, 528, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 515, 529, 529, 529, 529, 529, 543, 565, 543, 565, 543, 543, 565, 543, 589, 565, 565, 565, 565, 565, 565, 565, 589, 589, 589, 612, 589, 589, 589, 589, 589, 614, 615, 615, 612, 615, 614, 615, 614, 1, 12290, 3, 78112, 0, 702, 0, 0, 0, 0, 0, 702, 0, 0, 0, 540, 540, 540, 540, 540, 3028, 540, 540, 540, 540, 540, 540, 540, 561, 967, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2337, 585, 585, 585, 585, 2341, 585, 0, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3200, 0, 1150, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 540, 540, 1276, 1278, 540, 540, 540, 540, 540, 540, 540, 540, 1292, 540, 1297, 540, 540, 1301, 540, 540, 540, 540, 1812, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1823, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1378, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1083, 1087, 0, 0, 1091, 540, 1304, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1302, 540, 1360, 914, 561, 561, 1364, 561, 1367, 561, 561, 561, 561, 561, 561, 561, 561, 1381, 561, 1386, 561, 561, 1390, 561, 561, 1393, 561, 561, 561, 561, 561, 561, 561, 561, 1431, 561, 561, 1435, 561, 561, 561, 561, 1484, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1942, 540, 1793, 1794, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 585, 585, 1946, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2005, 585, 585, 585, 1959, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2357, 585, 2102, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 379, 381, 0, 0, 0, 0, 0, 2133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 2428, 0, 0, 0, 0, 0, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 122880, 122880, 0, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1133, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 384, 0, 0, 2799, 0, 0, 0, 0, 0, 0, 0, 2803, 540, 540, 540, 540, 540, 540, 540, 1326, 540, 540, 540, 540, 540, 540, 540, 1339, 585, 2956, 0, 0, 0, 0, 0, 2962, 0, 0, 0, 0, 0, 0, 0, 2966, 0, 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, 0, 3017, 0, 0, 0, 0, 0, 383, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 3048, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1320, 3089, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1858, 3130, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1957, 540, 3225, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3414, 585, 585, 585, 3281, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3157, 3513, 540, 540, 540, 540, 540, 540, 540, 561, 3521, 561, 3522, 561, 561, 561, 3526, 540, 540, 540, 3664, 561, 561, 561, 3666, 585, 585, 585, 3668, 0, 0, 540, 540, 540, 3560, 540, 540, 540, 540, 540, 540, 540, 540, 3568, 561, 321, 321, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 0, 0, 0, 0, 371, 0, 430, 436, 0, 442, 451, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 490, 490, 501, 490, 490, 490, 490, 490, 490, 490, 490, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 544, 566, 544, 566, 544, 544, 566, 544, 590, 566, 566, 566, 566, 566, 566, 566, 590, 590, 590, 544, 590, 590, 590, 590, 590, 566, 566, 544, 566, 590, 566, 590, 1, 12290, 3, 78112, 540, 540, 540, 874, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1822, 540, 1360, 585, 1017, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 1122, 0, 1124, 1125, 0, 0, 0, 1127, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 1159168, 0, 0, 0, 0, 1159168, 0, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, 1113, 0, 1253, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 773, 774, 0, 0, 778, 779, 0, 675, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 0, 1268, 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1277, 540, 540, 540, 1323, 540, 540, 1325, 540, 540, 1328, 540, 540, 540, 540, 540, 540, 540, 540, 2554, 540, 540, 540, 540, 540, 540, 2560, 1360, 914, 561, 561, 1365, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1400, 561, 561, 561, 561, 561, 561, 1404, 561, 561, 561, 561, 561, 561, 561, 1413, 561, 561, 1415, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 2655, 561, 1419, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1874, 561, 561, 561, 1443, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1456, 585, 585, 0, 0, 3291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 1266, 585, 585, 585, 1504, 585, 585, 1506, 585, 585, 585, 1510, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 2020, 561, 561, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 0, 585, 1991, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2695, 561, 2024, 585, 585, 585, 2028, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 1587, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 2038, 0, 0, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, 2091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2807, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2252, 561, 561, 561, 561, 561, 1447, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2017, 540, 540, 540, 2021, 561, 2256, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1875, 2272, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1890, 561, 561, 561, 2314, 561, 2316, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2340, 585, 585, 585, 2399, 585, 2401, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 540, 540, 2564, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3212, 540, 0, 0, 0, 561, 561, 561, 561, 2588, 561, 561, 561, 561, 561, 561, 561, 561, 1916, 561, 26027, 0, 585, 585, 585, 585, 0, 2757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 2834, 540, 540, 540, 540, 540, 540, 540, 2840, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2571, 540, 540, 540, 540, 540, 540, 2882, 561, 561, 561, 561, 561, 561, 561, 2888, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 2902, 585, 585, 585, 2930, 585, 585, 585, 585, 585, 585, 585, 2936, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2714, 585, 561, 540, 540, 540, 540, 540, 540, 3226, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3074, 585, 585, 585, 585, 3282, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 3156, 0, 585, 585, 3369, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2617344, 0, 0, 0, 0, 0, 2789376, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 3445, 0, 0, 0, 0, 540, 540, 540, 540, 3027, 540, 540, 540, 540, 3031, 540, 540, 540, 540, 540, 540, 3456, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3524, 561, 561, 561, 561, 3471, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3486, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3626, 540, 540, 540, 3515, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3413, 561, 561, 3528, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3113, 585, 585, 585, 3541, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 208896, 0, 0, 0, 0, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 1196, 0, 0, 0, 0, 322, 370, 325, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 322, 0, 0, 369, 369, 399, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 322, 452, 465, 465, 465, 465, 465, 465, 465, 478, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 491, 491, 465, 491, 491, 506, 508, 491, 491, 506, 491, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 534, 517, 517, 517, 517, 517, 545, 567, 545, 567, 545, 545, 567, 545, 591, 567, 567, 567, 567, 567, 567, 567, 591, 591, 591, 545, 591, 591, 591, 591, 591, 567, 567, 545, 567, 591, 567, 591, 1, 12290, 3, 78112, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, 0, 439, 0, 0, 0, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 557, 580, 557, 580, 557, 557, 580, 557, 604, 0, 0, 707, 708, 0, 0, 0, 0, 0, 714, 0, 0, 0, 718, 0, 720, 0, 769, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 787, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 801, 0, 806, 0, 809, 0, 0, 0, 0, 806, 809, 0, 0, 0, 809, 0, 707, 0, 0, 826, 0, 0, 0, 0, 0, 826, 826, 829, 809, 806, 0, 0, 0, 0, 0, 0, 0, 789, 0, 801, 0, 818, 0, 0, 0, 0, 0, 2745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 811, 540, 540, 854, 540, 540, 0, 0, 0, 789, 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, 0, 0, 0, 2142, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2819, 540, 540, 540, 540, 540, 0, 0, 0, 787, 0, 0, 0, 838, 818, 838, 0, 540, 540, 852, 540, 858, 540, 540, 871, 540, 881, 540, 886, 540, 540, 893, 896, 901, 540, 909, 540, 540, 540, 540, 540, 3215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 895, 540, 540, 540, 540, 540, 561, 561, 561, 922, 561, 928, 561, 561, 941, 561, 561, 952, 561, 957, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 2653, 585, 585, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2965, 0, 965, 968, 973, 561, 981, 561, 561, 0, 585, 585, 585, 995, 585, 1001, 585, 585, 0, 2958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 131072, 0, 0, 1014, 585, 585, 1025, 585, 1030, 585, 585, 1038, 1041, 1046, 585, 1054, 585, 585, 968, 0, 0, 0, 540, 585, 585, 561, 852, 540, 1066, 901, 540, 922, 561, 1071, 973, 0, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 1137, 1138, 0, 0, 0, 0, 1142, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 1182, 741, 0, 0, 0, 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 0, 0, 1303, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1318, 540, 540, 540, 540, 2173, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2558, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1372, 561, 561, 561, 561, 561, 1850, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1902, 1903, 561, 561, 561, 561, 561, 561, 1387, 561, 561, 561, 1392, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1432, 561, 561, 561, 561, 561, 1439, 561, 561, 561, 1421, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1437, 561, 0, 585, 585, 585, 1049, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, 0, 811, 0, 585, 585, 585, 585, 1463, 585, 585, 585, 585, 585, 585, 1478, 585, 585, 585, 1483, 0, 0, 1608, 1609, 1610, 0, 1612, 1613, 0, 0, 0, 0, 1618, 0, 0, 0, 0, 0, 679, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144, 0, 0, 1640, 0, 0, 1643, 0, 1645, 0, 0, 0, 0, 0, 1651, 1652, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 540, 846, 540, 540, 540, 540, 540, 540, 3216, 540, 540, 540, 540, 540, 3221, 540, 3223, 540, 0, 1668, 0, 0, 1670, 0, 0, 0, 0, 1672, 1673, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 347, 345, 65536, 0, 1692, 0, 0, 0, 0, 0, 1698, 1699, 0, 1701, 1702, 1703, 0, 0, 0, 0, 0, 0, 810, 811, 0, 0, 0, 0, 811, 0, 0, 0, 1719, 0, 0, 0, 1723, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 1715, 0, 0, 0, 1735, 1585, 1585, 1737, 540, 1739, 540, 1740, 540, 1742, 540, 540, 540, 1746, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1759, 540, 540, 540, 540, 540, 3318, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2557, 540, 540, 540, 540, 540, 540, 1763, 540, 540, 540, 540, 1767, 540, 1769, 540, 540, 540, 540, 540, 540, 540, 540, 2570, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3041, 540, 540, 540, 540, 540, 540, 540, 540, 1777, 1778, 1780, 540, 540, 540, 540, 540, 540, 1787, 1788, 540, 540, 1791, 1792, 540, 540, 540, 540, 540, 540, 540, 1800, 540, 540, 540, 1804, 540, 540, 540, 540, 540, 540, 2829, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1770, 540, 540, 540, 540, 540, 0, 1828, 561, 1830, 561, 561, 1832, 561, 1834, 561, 561, 561, 1838, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 2725, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 135168, 135168, 0, 0, 65536, 135168, 1859, 561, 1861, 561, 561, 561, 561, 561, 561, 561, 561, 1869, 1870, 1872, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 2652, 585, 585, 585, 585, 585, 585, 2390, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3124, 585, 585, 585, 585, 585, 561, 561, 561, 1894, 561, 561, 561, 1898, 561, 561, 561, 561, 561, 561, 561, 1906, 585, 1926, 585, 1928, 585, 585, 585, 1932, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 585, 1945, 585, 585, 585, 585, 1949, 585, 585, 585, 585, 1953, 585, 1955, 585, 585, 561, 3146, 3147, 3148, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 1974, 1975, 1976, 585, 585, 1979, 1980, 585, 585, 585, 585, 585, 585, 585, 1988, 585, 561, 0, 1288, 585, 1468, 1377, 540, 540, 540, 1549, 540, 561, 561, 561, 1553, 585, 585, 1992, 585, 585, 585, 585, 585, 585, 585, 2000, 585, 585, 585, 585, 585, 561, 561, 540, 561, 585, 561, 585, 1, 12290, 3, 78112, 585, 585, 585, 585, 2011, 561, 540, 2014, 585, 561, 1792, 540, 2019, 540, 1886, 561, 0, 585, 585, 1040, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 1134592, 0, 0, 0, 0, 2023, 561, 1980, 585, 2027, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 2089, 0, 0, 0, 0, 2093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2119, 0, 2121, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, 786, 0, 805, 0, 0, 0, 0, 540, 849, 540, 540, 540, 540, 540, 2216, 540, 540, 540, 540, 540, 540, 2221, 540, 540, 540, 540, 540, 540, 3633, 561, 561, 561, 561, 561, 561, 3639, 585, 585, 0, 0, 0, 2134, 0, 0, 0, 0, 2139, 0, 0, 0, 0, 0, 0, 0, 0, 2990080, 2179072, 2179072, 2502656, 2179072, 2179072, 2179072, 2179072, 540, 2187, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1337, 540, 2211, 2212, 540, 540, 540, 540, 540, 540, 2219, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2582, 540, 540, 540, 0, 0, 0, 561, 561, 2258, 561, 2260, 561, 561, 561, 561, 561, 561, 2268, 561, 2270, 561, 561, 561, 561, 1426, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3343, 561, 561, 561, 561, 3344, 3345, 561, 561, 2343, 585, 2345, 585, 585, 585, 585, 585, 585, 2353, 585, 2355, 585, 585, 585, 585, 561, 0, 0, 0, 3648, 0, 540, 540, 540, 540, 3652, 540, 585, 585, 585, 585, 2389, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2705, 585, 585, 585, 585, 585, 585, 585, 2402, 585, 585, 2405, 2406, 585, 585, 561, 2177, 585, 2345, 2260, 540, 2414, 540, 540, 561, 2418, 561, 561, 585, 2422, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 795, 663, 844, 0, 0, 0, 0, 540, 848, 540, 540, 540, 540, 540, 1283, 540, 540, 540, 540, 540, 540, 1298, 540, 540, 540, 540, 540, 540, 2580, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, 2459, 0, 0, 0, 0, 0, 2464, 0, 2466, 2467, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 371, 0, 65536, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 2505, 0, 0, 0, 0, 0, 0, 0, 2479, 0, 0, 0, 2481, 0, 0, 0, 0, 2561, 540, 540, 540, 2566, 540, 540, 540, 540, 540, 540, 540, 2573, 540, 540, 540, 540, 540, 540, 2838, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1296, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2591, 561, 561, 561, 561, 561, 561, 2640, 561, 561, 561, 2643, 561, 561, 561, 561, 561, 561, 2886, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1867, 561, 561, 561, 561, 561, 561, 2621, 561, 561, 561, 561, 2625, 561, 561, 561, 2630, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 3661, 0, 0, 561, 2637, 561, 561, 561, 561, 561, 561, 561, 2642, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3427, 585, 2669, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3267, 2797, 2798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1741, 540, 0, 0, 2982, 2983, 0, 2984, 0, 2986, 0, 0, 0, 0, 2988, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2047, 0, 0, 0, 0, 0, 0, 0, 0, 3007, 0, 0, 2988, 0, 0, 3013, 3014, 0, 3016, 0, 0, 3019, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 3022, 540, 540, 540, 540, 540, 540, 3029, 540, 540, 540, 540, 540, 3033, 3062, 540, 561, 561, 561, 561, 561, 561, 3069, 561, 561, 561, 561, 561, 3073, 561, 0, 585, 585, 1042, 585, 585, 288, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 3103, 561, 585, 585, 585, 585, 585, 585, 3110, 585, 585, 585, 585, 585, 3114, 585, 561, 0, 1543, 585, 1545, 1546, 540, 540, 1548, 540, 540, 561, 561, 1552, 561, 0, 585, 585, 1044, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 798, 3144, 585, 561, 540, 585, 561, 540, 3150, 561, 3152, 585, 3154, 0, 0, 0, 0, 0, 0, 825, 0, 819, 0, 664, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 221184, 0, 0, 0, 0, 65536, 0, 0, 0, 3160, 0, 0, 3163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 2806, 540, 540, 540, 3202, 540, 540, 540, 540, 540, 540, 540, 3207, 540, 540, 540, 540, 540, 540, 540, 540, 3040, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3322, 540, 540, 540, 540, 540, 540, 561, 3234, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1889, 561, 3245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3257, 585, 585, 585, 585, 585, 585, 585, 3262, 585, 585, 585, 585, 585, 561, 2013, 585, 2015, 2016, 540, 2018, 540, 540, 561, 2022, 561, 561, 561, 3349, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2667, 0, 3378, 3379, 0, 3176, 0, 3383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 384, 0, 0, 0, 3441, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2167, 540, 540, 0, 0, 0, 0, 3503, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3512, 0, 0, 3557, 3558, 3559, 540, 540, 540, 3562, 540, 3564, 540, 540, 540, 540, 3569, 3570, 3571, 561, 561, 561, 3574, 561, 3576, 561, 561, 561, 561, 3581, 3582, 3583, 585, 561, 1203, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 585, 3586, 585, 3588, 585, 585, 585, 585, 3593, 0, 0, 0, 0, 0, 0, 0, 2747, 2748, 2749, 0, 0, 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 1, 12290, 0, 0, 540, 3628, 540, 540, 540, 3632, 561, 561, 3634, 561, 561, 561, 3638, 585, 585, 3640, 585, 585, 585, 3644, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3563, 540, 3565, 540, 540, 540, 561, 0, 0, 0, 326, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 366, 0, 0, 0, 374, 376, 0, 0, 0, 0, 0, 0, 0, 344, 0, 402, 0, 0, 0, 0, 0, 402, 0, 0, 409, 0, 0, 0, 409, 69632, 73728, 0, 366, 366, 0, 421, 65536, 366, 0, 0, 366, 421, 498, 502, 498, 498, 507, 498, 498, 498, 507, 498, 421, 421, 327, 421, 0, 0, 421, 0, 421, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 546, 568, 546, 568, 546, 546, 568, 546, 592, 568, 568, 568, 568, 568, 568, 568, 592, 592, 592, 546, 592, 592, 592, 592, 592, 568, 568, 546, 568, 592, 568, 592, 1, 12290, 3, 78112, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1248, 0, 0, 540, 540, 540, 875, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2183, 540, 540, 561, 561, 915, 561, 561, 561, 561, 561, 561, 945, 561, 561, 561, 561, 561, 561, 585, 3421, 585, 585, 3423, 585, 585, 585, 585, 585, 585, 1018, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, 540, 988, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3068, 561, 561, 561, 561, 561, 561, 561, 561, 932, 561, 561, 946, 561, 561, 561, 561, 561, 561, 934, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3240, 561, 561, 561, 561, 561, 561, 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 1229, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 540, 540, 540, 1281, 540, 540, 540, 540, 540, 1293, 540, 540, 540, 540, 540, 540, 540, 540, 3054, 3056, 540, 540, 540, 3059, 540, 3061, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 1370, 561, 561, 561, 561, 561, 1382, 585, 585, 1461, 585, 585, 585, 585, 585, 1473, 585, 585, 585, 585, 585, 585, 585, 585, 2914, 585, 585, 585, 585, 585, 585, 585, 585, 3122, 585, 585, 585, 585, 585, 585, 585, 585, 3136, 3138, 585, 585, 585, 3141, 585, 3143, 0, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, 0, 1990, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1972, 585, 585, 585, 2373, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2370, 585, 585, 585, 585, 2698, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2383, 585, 0, 0, 0, 3161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, 0, 0, 561, 561, 3235, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2325, 0, 3663, 540, 540, 540, 3665, 561, 561, 561, 3667, 585, 585, 585, 0, 0, 540, 540, 540, 2526, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3058, 540, 540, 540, 422, 422, 0, 422, 431, 0, 422, 0, 422, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 492, 492, 466, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 547, 569, 547, 569, 547, 547, 569, 547, 593, 569, 569, 569, 569, 569, 569, 569, 593, 593, 593, 547, 593, 593, 593, 593, 593, 569, 569, 547, 569, 593, 569, 593, 1, 12290, 3, 78112, 0, 0, 0, 0, 2159, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3032, 540, 540, 540, 540, 540, 2202, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2208, 540, 540, 2413, 540, 540, 540, 2417, 561, 561, 561, 2421, 585, 585, 585, 0, 0, 0, 0, 3293, 0, 0, 0, 0, 0, 3296, 0, 0, 0, 2458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1250, 2967, 0, 0, 0, 2971, 0, 0, 0, 0, 0, 2977, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 418, 0, 65536, 0, 0, 2992, 0, 0, 2995, 0, 0, 0, 0, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 367, 367, 0, 0, 65536, 367, 0, 0, 0, 3023, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2222, 540, 540, 540, 540, 3049, 540, 540, 540, 540, 540, 540, 540, 540, 3057, 540, 540, 3060, 540, 540, 540, 540, 2189, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2583, 0, 0, 0, 540, 540, 3063, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2326, 0, 561, 561, 3090, 561, 561, 561, 561, 561, 561, 561, 561, 3098, 561, 561, 3101, 561, 0, 585, 585, 1045, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1102, 1101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 1275, 540, 561, 561, 3104, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2666, 585, 585, 585, 3131, 585, 585, 585, 585, 585, 585, 585, 585, 3139, 585, 585, 3142, 585, 585, 585, 585, 585, 1930, 585, 585, 585, 585, 585, 585, 585, 585, 1941, 585, 585, 585, 585, 585, 1948, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3263, 585, 585, 585, 585, 0, 0, 0, 0, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 3192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2808, 3201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1359, 540, 3213, 540, 540, 540, 540, 540, 540, 540, 3218, 540, 3220, 540, 540, 540, 540, 540, 540, 561, 3227, 561, 561, 561, 3230, 561, 561, 561, 561, 561, 982, 561, 0, 585, 585, 585, 585, 999, 585, 585, 585, 561, 561, 3246, 561, 3248, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 3537, 585, 585, 585, 585, 3256, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3278, 585, 585, 3268, 585, 585, 585, 585, 585, 585, 585, 585, 3274, 585, 3276, 585, 585, 561, 3370, 540, 3371, 561, 3372, 585, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 540, 540, 3328, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3233, 561, 561, 561, 561, 3340, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3346, 561, 0, 994, 1075, 1039, 585, 585, 78112, 1079, 0, 0, 1081, 1085, 0, 0, 1089, 3358, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3364, 585, 585, 585, 585, 585, 585, 585, 1981, 1982, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2951, 540, 2953, 561, 561, 561, 3654, 3655, 561, 561, 585, 585, 3658, 3659, 585, 585, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 1130, 1131, 0, 0, 0, 0, 0, 0, 1141, 0, 1143, 0, 0, 362, 362, 0, 0, 0, 691, 0, 0, 0, 0, 696, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 0, 1160, 0, 1162, 0, 758, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 758, 758, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856, 585, 999, 926, 540, 540, 540, 540, 910, 561, 561, 561, 561, 561, 1880, 1881, 1882, 561, 561, 1885, 1886, 561, 561, 561, 561, 561, 1896, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2603, 561, 2605, 561, 561, 561, 982, 0, 585, 585, 585, 585, 1055, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 375, 0, 378, 0, 0, 0, 378, 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 585, 585, 585, 2010, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 3066, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2600, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 987, 585, 585, 585, 585, 585, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 540, 540, 540, 2172, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 2584, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2255, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 3288, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 561, 561, 561, 561, 3350, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2939, 585, 585, 585, 585, 3368, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 394, 0, 0, 467, 467, 485, 493, 493, 485, 493, 493, 493, 493, 493, 493, 493, 493, 518, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 535, 526, 526, 526, 526, 526, 548, 570, 548, 570, 548, 548, 570, 548, 594, 570, 570, 570, 570, 570, 570, 570, 594, 594, 594, 548, 594, 594, 594, 594, 594, 570, 570, 548, 570, 594, 570, 594, 1, 12290, 3, 78112, 767, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 821, 0, 0, 0, 0, 0, 821, 821, 0, 0, 0, 0, 805, 0, 0, 786, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 839, 794, 0, 0, 839, 0, 0, 0, 0, 808, 0, 0, 692, 0, 0, 672, 0, 692, 0, 813, 675, 676, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 540, 867, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 911, 540, 540, 540, 540, 2215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1756, 540, 540, 540, 540, 983, 0, 585, 585, 585, 1077, 1056, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 412, 412, 0, 0, 0, 0, 0, 412, 0, 1180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 0, 1241, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 540, 1305, 540, 540, 540, 540, 540, 540, 540, 1313, 540, 540, 540, 540, 540, 540, 540, 540, 3332, 540, 561, 561, 561, 561, 561, 561, 935, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3094, 561, 3096, 561, 561, 561, 561, 561, 561, 1340, 540, 540, 1344, 540, 540, 540, 540, 540, 1350, 540, 540, 540, 1357, 540, 540, 540, 540, 540, 3458, 540, 3460, 3461, 540, 3463, 540, 561, 561, 561, 561, 561, 2262, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1399, 561, 561, 561, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1375, 561, 561, 561, 561, 1848, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2868, 561, 561, 561, 561, 561, 1441, 561, 561, 561, 1448, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 1998, 585, 585, 585, 585, 585, 2003, 585, 585, 1485, 585, 585, 585, 585, 585, 585, 585, 1493, 585, 585, 585, 585, 585, 585, 585, 585, 3261, 585, 585, 585, 585, 585, 585, 585, 585, 3272, 585, 585, 585, 585, 585, 585, 585, 585, 3283, 540, 585, 561, 540, 540, 561, 561, 585, 1522, 585, 585, 1526, 585, 585, 585, 585, 585, 1532, 585, 585, 585, 1539, 585, 585, 585, 585, 585, 1996, 1997, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1531, 585, 585, 585, 585, 585, 585, 0, 0, 0, 1595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1729, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3398, 540, 3400, 540, 561, 561, 1893, 561, 561, 561, 561, 561, 561, 1901, 561, 561, 561, 561, 561, 561, 1410, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1428, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1917, 26027, 0, 1922, 585, 1924, 585, 561, 561, 561, 1910, 1912, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 2335, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 3622, 0, 3624, 0, 0, 540, 585, 585, 585, 585, 1978, 585, 585, 585, 585, 585, 585, 585, 585, 1987, 585, 585, 585, 585, 585, 585, 2934, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2407, 561, 540, 585, 585, 561, 585, 585, 585, 585, 1995, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2004, 2006, 0, 0, 0, 2078, 0, 0, 0, 2081, 0, 0, 0, 0, 0, 2087, 0, 0, 0, 0, 0, 2774, 0, 0, 0, 2778, 0, 2780, 0, 0, 0, 0, 0, 0, 2746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 2103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2249, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1519, 585, 585, 2346, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2919, 585, 2448, 0, 0, 0, 0, 0, 0, 0, 0, 2453, 0, 0, 2456, 0, 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471, 0, 0, 0, 2485, 2486, 0, 0, 2489, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 417, 417, 0, 0, 65536, 417, 0, 0, 2499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, 815, 0, 812, 795, 0, 0, 817, 0, 667, 0, 791, 0, 0, 0, 0, 1096, 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2524, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1789, 540, 540, 540, 540, 540, 2551, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2559, 540, 540, 2562, 540, 540, 540, 540, 540, 540, 2569, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3323, 540, 540, 540, 540, 540, 540, 2576, 540, 540, 540, 2579, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 0, 0, 561, 2586, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3254, 561, 561, 561, 585, 585, 585, 585, 585, 2672, 585, 585, 585, 585, 585, 585, 2677, 585, 585, 585, 585, 561, 0, 3646, 0, 0, 0, 540, 540, 540, 540, 540, 540, 2529, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2842, 540, 540, 540, 540, 540, 585, 585, 585, 2683, 585, 585, 585, 585, 585, 585, 2690, 585, 585, 585, 585, 585, 585, 585, 2351, 585, 585, 585, 585, 585, 585, 585, 585, 1508, 585, 585, 585, 585, 585, 585, 585, 585, 2697, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2704, 585, 585, 585, 2707, 0, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 2739, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2528, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2234, 540, 540, 540, 540, 0, 540, 540, 540, 2811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2821, 540, 540, 540, 540, 540, 2836, 540, 540, 540, 2839, 540, 2841, 540, 540, 540, 540, 540, 540, 540, 540, 3520, 561, 561, 561, 561, 561, 561, 561, 1450, 26027, 1360, 987, 585, 585, 585, 585, 585, 2845, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 2853, 561, 561, 561, 561, 561, 1913, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 2333, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1050, 585, 585, 585, 585, 561, 561, 2858, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2284, 561, 561, 561, 2874, 2875, 561, 561, 561, 561, 2878, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1005, 585, 561, 561, 561, 2884, 561, 561, 561, 2887, 561, 2889, 561, 561, 561, 561, 561, 561, 1449, 561, 26027, 1360, 987, 1453, 585, 585, 585, 585, 2893, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 2901, 585, 585, 585, 585, 585, 585, 585, 3121, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 3285, 561, 3287, 585, 2906, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3367, 585, 585, 2922, 2923, 585, 585, 585, 585, 2926, 585, 585, 585, 585, 585, 585, 585, 585, 3592, 561, 0, 0, 0, 0, 3595, 0, 585, 585, 585, 2932, 585, 585, 585, 2935, 585, 2937, 585, 585, 585, 585, 585, 585, 585, 1933, 585, 585, 585, 585, 1939, 585, 585, 585, 2941, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2963, 0, 0, 0, 0, 0, 585, 585, 2957, 0, 0, 2960, 2961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 3009, 0, 0, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 151552, 2200253, 0, 0, 0, 151552, 540, 540, 540, 540, 3037, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3325, 540, 540, 540, 540, 540, 540, 540, 3051, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3465, 561, 561, 561, 561, 561, 561, 3077, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1887, 1888, 561, 561, 561, 561, 561, 561, 3092, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3480, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 3108, 585, 585, 585, 585, 3112, 585, 585, 585, 585, 585, 585, 585, 3135, 585, 3137, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3552, 0, 0, 0, 585, 585, 585, 3118, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1512, 585, 585, 585, 585, 585, 585, 585, 3133, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2917, 585, 585, 2920, 0, 0, 3168, 3169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071, 0, 0, 0, 540, 540, 540, 540, 3329, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3412, 561, 561, 3336, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2285, 3347, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3354, 585, 585, 585, 585, 585, 585, 2404, 585, 585, 585, 585, 561, 2178, 585, 2346, 2261, 3389, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2534, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3447, 3448, 0, 540, 540, 540, 540, 2527, 540, 540, 540, 540, 2531, 540, 540, 540, 540, 540, 540, 540, 1312, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1784, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3473, 561, 3475, 3476, 561, 3478, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 0, 0, 0, 0, 0, 585, 585, 585, 3488, 585, 3490, 3491, 585, 3493, 585, 3495, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 313, 314, 314, 419, 420, 65536, 427, 585, 585, 3617, 585, 3618, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 904, 540, 561, 561, 561, 976, 561, 561, 585, 585, 3673, 3674, 3675, 3676, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 1563, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 2789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 0, 0, 571, 571, 571, 571, 571, 571, 571, 595, 595, 595, 540, 595, 595, 595, 595, 595, 571, 571, 540, 571, 595, 571, 595, 1, 12290, 3, 78112, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1707, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 2170, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2253, 561, 561, 561, 561, 926, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2307, 561, 561, 561, 2310, 400, 0, 0, 0, 0, 378, 0, 69632, 73728, 0, 0, 0, 0, 423, 65536, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 1689, 0, 0, 423, 423, 0, 423, 0, 437, 423, 0, 423, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 482, 468, 494, 494, 468, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 537, 549, 572, 549, 572, 549, 549, 572, 549, 596, 572, 572, 572, 572, 572, 572, 572, 596, 596, 596, 549, 596, 596, 596, 596, 596, 572, 572, 549, 572, 596, 572, 596, 1, 12290, 3, 78112, 0, 660, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1666, 0, 0, 830, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 742, 661, 0, 0, 0, 0, 0, 540, 847, 540, 540, 540, 540, 540, 540, 3330, 540, 540, 540, 561, 561, 561, 561, 561, 3335, 861, 540, 540, 540, 540, 540, 540, 540, 540, 540, 897, 540, 540, 540, 540, 540, 540, 540, 1799, 540, 540, 540, 540, 540, 540, 1807, 540, 561, 561, 916, 561, 561, 561, 931, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2266, 561, 561, 561, 561, 561, 561, 0, 0, 0, 540, 989, 585, 561, 540, 540, 897, 540, 540, 561, 561, 969, 561, 561, 561, 561, 561, 0, 585, 585, 989, 585, 585, 585, 1004, 585, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 1102, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196608, 0, 0, 0, 0, 0, 540, 540, 540, 1308, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3222, 540, 540, 1360, 914, 561, 1363, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1376, 1383, 561, 561, 561, 1444, 561, 561, 561, 561, 26027, 1360, 987, 585, 1454, 585, 585, 585, 585, 585, 585, 2659, 585, 585, 2662, 2663, 585, 585, 585, 585, 585, 585, 585, 2712, 540, 585, 585, 561, 540, 540, 540, 540, 585, 585, 1488, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3128, 585, 1521, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1535, 585, 585, 585, 585, 585, 585, 2673, 585, 585, 585, 2676, 585, 585, 2678, 585, 2679, 561, 585, 585, 1521, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1841, 1842, 585, 585, 2009, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 1849, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2880, 561, 561, 561, 561, 561, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074, 540, 540, 2226, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 2854, 561, 561, 561, 561, 561, 561, 2301, 561, 561, 561, 561, 561, 561, 2306, 561, 561, 561, 561, 561, 561, 3079, 561, 561, 561, 561, 561, 3085, 561, 561, 3088, 2311, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 2654, 585, 585, 585, 585, 585, 2374, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3140, 585, 585, 585, 585, 2386, 585, 585, 585, 585, 585, 585, 2391, 585, 585, 585, 585, 585, 2396, 585, 585, 585, 585, 585, 2012, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2624, 561, 561, 561, 561, 561, 561, 2632, 561, 561, 561, 561, 561, 2288, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2631, 561, 561, 561, 561, 561, 2435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2114, 0, 0, 0, 0, 2476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 2732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1590, 1591, 0, 0, 0, 2772, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 0, 540, 562, 540, 562, 540, 540, 562, 540, 586, 540, 540, 2810, 540, 540, 540, 540, 540, 540, 2818, 540, 540, 540, 540, 540, 540, 540, 889, 540, 540, 540, 540, 907, 540, 540, 540, 540, 540, 540, 540, 2849, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1836, 561, 561, 561, 561, 561, 2857, 561, 561, 561, 561, 561, 561, 2865, 561, 561, 561, 561, 561, 561, 561, 561, 3081, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2897, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1467, 1474, 585, 585, 585, 585, 585, 585, 585, 585, 3621, 0, 0, 0, 0, 0, 0, 540, 2905, 585, 585, 585, 585, 585, 585, 2913, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1983, 585, 585, 1986, 585, 585, 585, 585, 585, 585, 585, 2945, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 3376, 0, 585, 3280, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 3155, 0, 0, 585, 585, 585, 3587, 585, 3589, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 2791, 0, 0, 0, 2793, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1314, 540, 540, 540, 540, 3607, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3614, 585, 585, 585, 585, 585, 585, 2686, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1045, 585, 585, 585, 585, 585, 972, 561, 3653, 561, 561, 561, 561, 585, 3657, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 345, 469, 469, 469, 453, 453, 469, 453, 453, 453, 453, 453, 453, 453, 453, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 550, 573, 550, 573, 550, 550, 573, 550, 597, 573, 573, 573, 573, 573, 573, 573, 597, 597, 597, 550, 597, 597, 597, 597, 597, 573, 573, 550, 573, 597, 573, 597, 1, 12290, 3, 78112, 862, 540, 540, 876, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1315, 540, 540, 540, 585, 1019, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 3498, 0, 0, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0, 0, 540, 1341, 540, 540, 540, 540, 540, 1348, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3333, 561, 561, 561, 561, 561, 585, 585, 585, 585, 1505, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3365, 585, 585, 585, 585, 585, 1523, 585, 585, 585, 585, 585, 1530, 585, 585, 585, 585, 585, 585, 585, 1468, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2378, 585, 585, 585, 585, 585, 585, 561, 585, 585, 585, 1557, 585, 1079, 0, 1561, 0, 0, 0, 1567, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1573, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 1695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127, 0, 0, 0, 540, 1762, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1358, 540, 1843, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1854, 561, 561, 561, 561, 561, 561, 3239, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3578, 561, 561, 585, 585, 585, 585, 0, 2064, 2065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1717, 0, 0, 0, 0, 0, 0, 2135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 2186, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1808, 540, 540, 2213, 540, 540, 540, 540, 2218, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1754, 540, 540, 540, 540, 540, 540, 2240, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1401, 561, 561, 2298, 561, 561, 561, 561, 2303, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3083, 561, 561, 561, 561, 561, 585, 585, 585, 2388, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1938, 585, 585, 585, 3034, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2210, 0, 0, 0, 3380, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0, 0, 540, 540, 3404, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2282, 561, 561, 561, 561, 561, 561, 561, 3419, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1049, 585, 585, 585, 585, 561, 540, 3454, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3523, 561, 561, 561, 3469, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3484, 385, 387, 337, 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 438, 0, 444, 0, 470, 470, 470, 470, 470, 470, 470, 551, 574, 551, 574, 551, 551, 574, 551, 598, 480, 470, 470, 470, 499, 476, 499, 499, 499, 499, 499, 499, 499, 499, 470, 470, 476, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 480, 470, 481, 480, 470, 470, 470, 470, 574, 574, 574, 574, 574, 574, 574, 598, 598, 598, 551, 598, 598, 598, 598, 598, 574, 574, 551, 574, 598, 574, 598, 1, 12290, 3, 78112, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 663, 0, 791, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, 2972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2097, 0, 2099, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 0, 812, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 715, 0, 717, 0, 0, 0, 831, 0, 0, 0, 663, 834, 0, 791, 0, 0, 0, 0, 0, 840, 0, 0, 0, 0, 0, 2996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429, 2430, 0, 0, 0, 0, 863, 540, 540, 877, 540, 540, 540, 888, 540, 540, 540, 540, 906, 540, 540, 540, 540, 540, 1311, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2843, 540, 540, 540, 540, 561, 561, 917, 561, 561, 561, 933, 561, 561, 947, 561, 561, 561, 561, 960, 561, 0, 995, 585, 1076, 1046, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2686976, 2736128, 0, 0, 2531328, 2707456, 0, 3190784, 561, 561, 561, 978, 561, 561, 561, 0, 585, 585, 990, 585, 585, 585, 1006, 585, 585, 585, 585, 585, 2349, 585, 585, 585, 585, 2354, 585, 585, 585, 585, 585, 585, 585, 2377, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 585, 1020, 585, 585, 585, 585, 1033, 585, 585, 585, 585, 1051, 585, 585, 585, 561, 540, 585, 561, 3149, 540, 3151, 561, 3153, 585, 0, 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 990, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3067, 561, 561, 561, 561, 3071, 561, 561, 561, 561, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 0, 2433, 0, 1238, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3561, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 540, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1491, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1495, 585, 585, 585, 585, 561, 585, 585, 1556, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 1622, 0, 0, 1625, 0, 1627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 839, 540, 540, 540, 540, 859, 540, 1744, 540, 540, 540, 540, 540, 540, 540, 540, 1755, 540, 540, 540, 540, 540, 540, 540, 2176, 540, 540, 2180, 540, 540, 540, 2184, 540, 561, 561, 561, 1847, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2294, 561, 561, 561, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 2148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 561, 561, 561, 561, 2248, 561, 561, 561, 561, 561, 561, 561, 561, 3095, 3097, 561, 561, 561, 3100, 561, 3102, 561, 561, 2313, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 2651, 585, 585, 585, 585, 585, 585, 585, 2660, 585, 585, 585, 585, 585, 2665, 585, 585, 2398, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2410, 585, 561, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 3669, 540, 3670, 0, 2436, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 2444, 2445, 0, 0, 0, 0, 0, 3010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 304, 0, 0, 0, 0, 2497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 163840, 0, 0, 0, 0, 65536, 0, 2512, 0, 0, 0, 0, 2515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523, 540, 2536, 2537, 540, 540, 540, 540, 540, 2542, 540, 2544, 540, 540, 540, 540, 2548, 561, 2595, 561, 561, 2598, 2599, 561, 561, 561, 561, 561, 2604, 561, 2606, 561, 561, 561, 561, 1863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2890, 561, 561, 561, 561, 561, 561, 561, 2610, 561, 561, 561, 561, 561, 561, 561, 561, 2616, 561, 561, 561, 561, 561, 2276, 561, 561, 2279, 561, 561, 561, 561, 561, 561, 561, 1915, 561, 561, 26027, 1920, 585, 585, 585, 585, 2636, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2608, 2668, 585, 2670, 585, 585, 585, 585, 2674, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2675, 585, 585, 585, 585, 585, 585, 2680, 585, 585, 585, 585, 585, 585, 585, 585, 2688, 585, 585, 585, 585, 585, 585, 585, 1950, 585, 585, 585, 585, 1954, 585, 585, 585, 2696, 585, 585, 585, 585, 2700, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1494, 585, 585, 585, 585, 585, 561, 2720, 561, 561, 585, 2722, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 2770, 0, 0, 0, 2773, 0, 0, 2776, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1691, 0, 2786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795, 0, 0, 0, 0, 0, 3171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 540, 2825, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1773, 540, 540, 2835, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2844, 540, 540, 2847, 540, 540, 2850, 540, 0, 0, 2851, 561, 561, 561, 561, 561, 561, 1851, 561, 561, 561, 561, 1855, 561, 561, 561, 561, 561, 2883, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2892, 561, 561, 2895, 561, 561, 2898, 561, 0, 0, 2899, 585, 585, 585, 585, 585, 585, 585, 1965, 585, 585, 585, 1970, 585, 585, 585, 585, 585, 2931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2940, 585, 585, 2943, 585, 585, 2946, 585, 561, 2948, 585, 2949, 2950, 540, 540, 561, 561, 561, 561, 1878, 561, 561, 561, 561, 1884, 561, 561, 561, 561, 561, 561, 936, 561, 561, 561, 561, 561, 561, 561, 561, 561, 984, 0, 585, 585, 585, 585, 585, 585, 1007, 585, 0, 2968, 2969, 0, 0, 0, 0, 2974, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 331, 0, 0, 0, 0, 3020, 0, 0, 540, 540, 3025, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3043, 540, 540, 540, 540, 540, 540, 540, 3050, 540, 540, 3052, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1352, 540, 540, 540, 540, 540, 561, 561, 561, 3091, 561, 561, 3093, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2602, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3106, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1496, 585, 585, 585, 1500, 585, 585, 585, 3132, 585, 585, 3134, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1040, 585, 585, 585, 585, 585, 967, 3158, 0, 0, 0, 3162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 1225, 0, 3190, 0, 0, 3193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2166, 540, 540, 540, 540, 540, 3214, 540, 540, 540, 540, 540, 540, 540, 3219, 540, 540, 540, 540, 540, 540, 540, 2541, 540, 2543, 540, 540, 540, 540, 540, 540, 540, 540, 2581, 540, 540, 540, 540, 0, 2584, 0, 561, 561, 561, 3236, 3237, 561, 561, 561, 561, 561, 3241, 561, 561, 561, 561, 561, 561, 3250, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3536, 585, 585, 585, 585, 561, 561, 561, 3247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 3481, 585, 3483, 585, 585, 585, 585, 3269, 585, 585, 585, 585, 585, 585, 585, 585, 3275, 585, 585, 585, 585, 585, 585, 2701, 585, 585, 585, 585, 585, 585, 585, 2706, 585, 0, 0, 3308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 856, 540, 585, 3359, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1057, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3386, 0, 0, 0, 0, 0, 1169, 0, 1171, 0, 0, 0, 0, 1176, 0, 0, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 585, 3429, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 3437, 0, 0, 0, 0, 0, 3300, 0, 3176, 3302, 0, 0, 3305, 0, 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 703, 0, 0, 3440, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3452, 540, 540, 540, 540, 3457, 540, 540, 540, 540, 3462, 540, 540, 561, 561, 3467, 561, 0, 997, 1037, 585, 1048, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 783, 0, 0, 561, 561, 561, 3472, 561, 561, 561, 561, 3477, 561, 561, 585, 585, 3482, 585, 585, 585, 585, 585, 585, 3259, 3260, 585, 585, 585, 585, 3264, 3265, 585, 585, 585, 585, 585, 585, 3120, 585, 585, 585, 585, 585, 3126, 585, 585, 3129, 585, 585, 3487, 585, 585, 585, 585, 3492, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 167936, 0, 0, 0, 0, 65536, 0, 3499, 0, 0, 0, 0, 0, 3505, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3397, 540, 540, 540, 540, 540, 540, 540, 540, 3517, 540, 540, 3519, 561, 561, 561, 561, 561, 561, 561, 561, 3252, 561, 561, 561, 561, 561, 561, 585, 561, 561, 561, 3530, 561, 561, 3532, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1042, 585, 585, 585, 585, 585, 969, 585, 585, 3543, 585, 585, 3545, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 362, 362, 0, 1147, 0, 540, 540, 3629, 3630, 540, 540, 561, 561, 561, 3635, 3636, 561, 561, 585, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 3641, 3642, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3395, 540, 540, 540, 540, 540, 540, 3401, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 3681, 3682, 3683, 3684, 339, 340, 341, 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1617, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2469, 0, 2470, 0, 342, 342, 343, 342, 0, 341, 342, 445, 454, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 486, 495, 495, 503, 495, 505, 495, 495, 505, 505, 495, 505, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 552, 575, 552, 575, 552, 552, 575, 552, 599, 575, 575, 575, 575, 575, 575, 575, 599, 599, 599, 552, 599, 599, 599, 599, 599, 575, 575, 552, 575, 599, 575, 599, 1, 12290, 3, 78112, 0, 0, 0, 646, 0, 0, 0, 0, 651, 652, 653, 654, 655, 656, 657, 0, 0, 0, 0, 1144, 0, 0, 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2957312, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 699, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 800, 0, 0, 0, 0, 721, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 0, 0, 0, 0, 0, 646, 752, 753, 754, 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, 0, 540, 540, 540, 3026, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2220, 540, 540, 540, 540, 540, 0, 761, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, 0, 0, 723, 0, 692, 814, 0, 0, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 558, 581, 558, 581, 558, 558, 581, 558, 605, 0, 754, 823, 824, 0, 0, 0, 0, 0, 0, 754, 0, 0, 828, 699, 0, 0, 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, 835, 0, 0, 0, 692, 699, 0, 0, 692, 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 540, 540, 853, 857, 860, 540, 868, 540, 540, 882, 884, 887, 540, 540, 540, 898, 902, 540, 540, 540, 540, 540, 540, 1766, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1786, 540, 540, 540, 540, 540, 561, 561, 561, 923, 927, 930, 561, 938, 561, 561, 561, 953, 955, 958, 561, 561, 561, 561, 1879, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2641, 561, 561, 561, 561, 561, 561, 561, 561, 2648, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2717, 540, 540, 540, 585, 585, 585, 1026, 1028, 1031, 585, 585, 585, 1043, 1047, 585, 585, 585, 585, 970, 0, 0, 0, 1060, 585, 1062, 1063, 853, 540, 898, 902, 1068, 923, 561, 970, 974, 561, 561, 561, 561, 0, 585, 585, 585, 996, 1000, 1003, 585, 1011, 1073, 0, 996, 585, 1043, 1047, 1078, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 560, 583, 560, 583, 560, 560, 583, 560, 607, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 422, 65536, 0, 540, 1322, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1331, 540, 540, 1338, 540, 540, 540, 540, 2228, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 2852, 561, 561, 561, 561, 561, 561, 561, 561, 1422, 561, 561, 1429, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2879, 561, 561, 561, 561, 561, 561, 561, 1442, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2925, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 3436, 0, 3438, 0, 585, 1503, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1513, 585, 585, 1520, 1667, 0, 1669, 0, 0, 0, 1671, 0, 748, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 0, 1602, 0, 0, 0, 0, 0, 0, 540, 1738, 540, 540, 540, 540, 540, 540, 540, 2584, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1839, 561, 561, 561, 1743, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 540, 1776, 540, 540, 1781, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1353, 540, 540, 540, 540, 0, 561, 1829, 561, 561, 561, 561, 561, 561, 1835, 561, 561, 561, 561, 561, 561, 1864, 561, 561, 561, 1868, 561, 561, 1873, 561, 561, 1907, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 1923, 585, 585, 585, 585, 585, 585, 3270, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1968, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1929, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1511, 585, 585, 585, 585, 585, 1958, 585, 585, 585, 1962, 585, 585, 1967, 585, 585, 585, 585, 585, 585, 585, 1469, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2392, 585, 585, 585, 2395, 585, 585, 0, 1086, 0, 0, 0, 2034, 0, 1090, 0, 0, 0, 2036, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 585, 585, 585, 585, 2362, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1534, 585, 585, 585, 585, 2585, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2271, 585, 585, 585, 2710, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 1814, 540, 540, 540, 540, 1820, 540, 540, 540, 1360, 0, 0, 0, 0, 2744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0, 0, 585, 585, 585, 585, 2924, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1937, 585, 585, 585, 585, 561, 561, 3338, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1857, 561, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 3385, 0, 0, 0, 0, 0, 0, 1628, 1629, 1630, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 362, 0, 0, 0, 0, 0, 0, 3402, 540, 540, 540, 561, 561, 561, 3407, 561, 561, 561, 561, 3411, 561, 561, 561, 561, 1391, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1414, 561, 561, 561, 561, 561, 561, 3417, 561, 561, 561, 585, 585, 585, 3422, 585, 585, 585, 585, 3426, 585, 585, 585, 585, 585, 2375, 2376, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1476, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3432, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 3446, 0, 0, 0, 540, 540, 540, 3392, 540, 540, 540, 540, 3396, 540, 540, 540, 540, 540, 540, 540, 3039, 540, 540, 540, 540, 540, 3045, 540, 540, 540, 540, 3455, 540, 540, 540, 3459, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 2626, 561, 561, 561, 561, 561, 561, 2633, 561, 561, 561, 561, 3470, 561, 561, 561, 3474, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3111, 585, 585, 585, 585, 585, 585, 3485, 585, 585, 585, 3489, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3603, 540, 3604, 540, 540, 540, 561, 561, 585, 585, 0, 540, 561, 585, 3677, 3678, 3679, 3680, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 1562, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 300, 0, 0, 0, 0, 386, 0, 0, 0, 390, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 344, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, 553, 576, 553, 576, 553, 553, 576, 553, 600, 576, 576, 576, 576, 576, 576, 576, 600, 600, 600, 553, 600, 600, 600, 600, 600, 576, 576, 617, 622, 600, 622, 628, 1, 12290, 3, 78112, 561, 561, 561, 979, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2927, 585, 585, 585, 585, 585, 585, 0, 0, 0, 540, 1061, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3238, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1433, 561, 561, 561, 561, 561, 1107, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, 0, 561, 561, 561, 1389, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2308, 2309, 561, 561, 561, 1403, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2296, 2297, 1440, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2947, 540, 585, 585, 561, 540, 540, 561, 561, 1574, 0, 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1620, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110, 0, 0, 0, 0, 561, 561, 561, 1877, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2322, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2155, 0, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 2241, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2295, 561, 561, 561, 561, 2274, 561, 561, 561, 561, 2278, 561, 2280, 561, 561, 561, 561, 561, 561, 1897, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1397, 561, 561, 561, 561, 561, 561, 2359, 585, 585, 585, 585, 2363, 585, 2365, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3123, 585, 3125, 585, 585, 585, 585, 0, 0, 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494, 2495, 0, 0, 561, 2622, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2607, 561, 0, 3021, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2533, 540, 0, 0, 0, 0, 3176, 3382, 0, 0, 3384, 0, 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3391, 540, 540, 3393, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1785, 540, 540, 540, 1790, 540, 0, 0, 0, 0, 3176, 0, 3443, 0, 0, 0, 0, 0, 3449, 540, 540, 540, 540, 540, 1782, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2832, 540, 540, 540, 540, 864, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 912, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 0, 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2060, 0, 0, 1827, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2620, 345, 345, 347, 345, 0, 0, 345, 0, 345, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 3310, 0, 0, 3312, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3410, 561, 561, 561, 561, 561, 0, 0, 0, 345, 345, 347, 345, 345, 345, 345, 345, 345, 512, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 554, 577, 554, 577, 554, 554, 577, 554, 601, 577, 577, 577, 577, 577, 577, 577, 601, 601, 601, 554, 601, 601, 601, 601, 601, 577, 577, 554, 577, 601, 577, 601, 1, 12290, 3, 78112, 0, 722, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0, 0, 811, 0, 0, 810, 0, 0, 0, 0, 0, 755, 0, 0, 819, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 1181, 540, 540, 540, 540, 540, 1797, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3464, 561, 561, 561, 561, 540, 540, 872, 540, 540, 540, 540, 890, 892, 540, 540, 903, 540, 540, 540, 540, 540, 540, 2175, 540, 2177, 540, 540, 540, 540, 540, 540, 2185, 561, 561, 918, 924, 561, 561, 561, 561, 942, 561, 561, 561, 561, 561, 962, 964, 561, 561, 975, 561, 561, 561, 561, 0, 585, 585, 991, 997, 585, 585, 585, 585, 585, 585, 585, 3271, 585, 585, 585, 585, 585, 585, 3277, 585, 1015, 585, 585, 585, 585, 585, 1035, 1037, 585, 585, 1048, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 3650, 3651, 540, 540, 0, 0, 0, 540, 991, 585, 561, 854, 892, 540, 903, 540, 924, 964, 561, 975, 0, 0, 0, 1151, 0, 1153, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1731, 0, 1212, 1213, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1307, 1309, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1316, 540, 540, 1319, 540, 540, 1343, 540, 540, 540, 540, 540, 540, 540, 540, 1354, 1355, 540, 540, 540, 540, 540, 1813, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 1360, 914, 561, 561, 561, 1366, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1921, 585, 585, 585, 585, 561, 561, 1420, 561, 561, 561, 561, 561, 561, 561, 1434, 561, 561, 561, 561, 561, 561, 3342, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3080, 561, 561, 561, 561, 561, 561, 561, 561, 2319, 561, 561, 561, 561, 0, 0, 0, 561, 561, 561, 1445, 1446, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 1457, 585, 585, 585, 585, 585, 2403, 585, 585, 585, 585, 585, 561, 2409, 585, 2411, 2412, 585, 1487, 1489, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3366, 585, 585, 585, 585, 1525, 585, 585, 585, 585, 585, 585, 585, 585, 1536, 1537, 585, 585, 585, 585, 585, 585, 3434, 585, 561, 540, 561, 585, 0, 0, 0, 3439, 585, 1542, 0, 540, 585, 585, 561, 540, 1547, 540, 540, 1550, 561, 1551, 561, 561, 561, 561, 1895, 561, 561, 561, 1900, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 988, 585, 585, 585, 585, 585, 1554, 585, 1555, 585, 585, 1558, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 2073, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 0, 1694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072, 0, 0, 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 561, 561, 561, 561, 561, 561, 1833, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 1908, 561, 561, 561, 561, 1914, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 2334, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2938, 585, 585, 585, 585, 585, 585, 585, 1927, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1055, 585, 561, 585, 585, 585, 1994, 585, 585, 585, 585, 585, 585, 585, 585, 2002, 585, 585, 585, 585, 585, 585, 2711, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 2217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1802, 540, 540, 540, 540, 540, 585, 2008, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2261, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2891, 561, 561, 561, 561, 0, 2076, 0, 0, 0, 0, 0, 0, 0, 0, 2084, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 266240, 0, 0, 0, 0, 65536, 0, 2088, 0, 0, 2090, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 2146, 0, 0, 0, 2146, 0, 0, 2151, 2152, 0, 0, 0, 0, 0, 0, 0, 274432, 274432, 274432, 0, 274432, 274432, 274432, 274432, 274432, 2156, 0, 0, 0, 0, 0, 0, 0, 2162, 540, 540, 540, 540, 540, 2168, 540, 540, 540, 540, 2538, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1821, 540, 540, 1360, 540, 2200, 540, 2203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2209, 540, 540, 540, 540, 2578, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 561, 561, 561, 561, 561, 561, 2251, 561, 561, 561, 561, 561, 561, 3351, 585, 585, 585, 585, 585, 585, 585, 3356, 585, 561, 561, 2300, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2323, 0, 0, 0, 2329, 585, 585, 585, 585, 585, 585, 2336, 585, 585, 585, 585, 585, 585, 585, 1470, 585, 585, 585, 585, 1480, 585, 585, 585, 585, 585, 2360, 585, 585, 585, 585, 585, 585, 2366, 585, 2368, 585, 2371, 585, 585, 585, 585, 585, 585, 3546, 0, 0, 3549, 3550, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2912256, 0, 3207168, 2465792, 0, 0, 2385, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1989, 2472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2480, 0, 0, 0, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 1, 12290, 3, 0, 0, 0, 0, 0, 2514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522, 0, 0, 0, 0, 1575, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 172032, 0, 0, 0, 0, 65536, 0, 561, 561, 2596, 561, 561, 561, 561, 561, 2601, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 992, 585, 585, 585, 585, 585, 585, 2681, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1956, 585, 2719, 561, 561, 561, 2721, 585, 585, 585, 2723, 2724, 0, 0, 0, 0, 0, 0, 0, 2801, 0, 0, 0, 540, 2805, 540, 540, 540, 2742, 0, 2743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2100, 0, 0, 0, 0, 2758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128, 0, 0, 540, 2809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2223, 2224, 540, 2846, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 2855, 561, 2856, 561, 2894, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 2903, 585, 2904, 585, 2942, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3374, 0, 0, 3377, 0, 0, 0, 540, 3024, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1771, 540, 540, 540, 540, 561, 561, 585, 3105, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2369, 585, 585, 585, 585, 585, 3145, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 297, 0, 0, 0, 0, 0, 0, 0, 3390, 540, 540, 540, 540, 3394, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2179, 540, 540, 540, 540, 540, 540, 540, 3403, 540, 540, 3405, 561, 561, 561, 561, 3409, 561, 561, 561, 561, 561, 561, 2277, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3082, 561, 3084, 561, 561, 561, 561, 561, 561, 561, 3418, 561, 561, 3420, 585, 585, 585, 585, 3424, 585, 585, 585, 585, 585, 585, 585, 3591, 585, 561, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 3303, 0, 0, 0, 0, 3307, 0, 585, 585, 585, 585, 585, 3433, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 3502, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 3511, 540, 540, 540, 540, 2812, 540, 2815, 540, 540, 540, 540, 2820, 540, 540, 540, 2823, 540, 540, 540, 540, 3631, 540, 561, 561, 561, 561, 561, 3637, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 1564, 0, 0, 0, 1570, 0, 585, 585, 3643, 585, 561, 3645, 0, 3647, 0, 0, 540, 540, 540, 540, 540, 540, 540, 1286, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3208, 540, 540, 540, 540, 540, 365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496, 398, 0, 0, 0, 0, 0, 365, 373, 401, 0, 0, 0, 0, 0, 365, 0, 0, 393, 0, 0, 0, 0, 348, 0, 0, 365, 0, 393, 0, 406, 408, 0, 0, 365, 373, 0, 69632, 73728, 0, 0, 0, 0, 424, 65536, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 424, 424, 0, 424, 0, 408, 424, 447, 455, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 644, 0, 406, 0, 496, 496, 0, 496, 496, 496, 496, 496, 496, 496, 496, 522, 522, 522, 522, 455, 455, 455, 530, 455, 531, 455, 455, 522, 536, 522, 522, 522, 522, 538, 555, 578, 555, 578, 555, 555, 578, 555, 602, 578, 578, 578, 608, 608, 608, 578, 602, 602, 602, 555, 602, 602, 602, 602, 602, 578, 578, 618, 623, 602, 623, 629, 1, 12290, 3, 78112, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 0, 0, 694, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142, 2143, 0, 540, 540, 540, 878, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1332, 540, 540, 540, 561, 561, 919, 561, 561, 561, 561, 561, 561, 948, 950, 561, 561, 561, 561, 561, 561, 3575, 561, 3577, 561, 561, 561, 585, 585, 585, 585, 0, 0, 1563, 0, 0, 0, 0, 0, 1569, 0, 585, 1021, 1023, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 3496, 0, 3497, 0, 0, 0, 0, 0, 540, 992, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3341, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3579, 561, 585, 585, 585, 585, 0, 0, 0, 1098, 1230, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 0, 0, 0, 2452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 1251, 540, 540, 1280, 540, 540, 540, 1284, 540, 540, 1295, 540, 540, 1299, 540, 540, 540, 540, 540, 2229, 540, 2231, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1840, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 1369, 561, 561, 561, 1373, 561, 561, 1384, 561, 561, 1388, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2324, 0, 0, 561, 561, 1405, 561, 561, 561, 1409, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3612, 3613, 561, 585, 585, 585, 585, 585, 1460, 585, 585, 585, 1464, 585, 585, 1475, 585, 585, 1479, 585, 585, 585, 585, 585, 585, 1032, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3625, 0, 540, 0, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 1626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, 2059, 0, 2061, 2062, 1638, 0, 0, 0, 1642, 0, 0, 0, 1646, 0, 0, 0, 1650, 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1145, 362, 362, 0, 0, 1148, 561, 1844, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2635, 561, 561, 561, 561, 1862, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2869, 561, 561, 2872, 2007, 585, 585, 585, 585, 561, 1752, 585, 1938, 1844, 540, 540, 540, 540, 561, 561, 561, 561, 2275, 561, 561, 561, 561, 561, 561, 2281, 561, 2283, 561, 2286, 0, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 2118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520, 0, 0, 0, 0, 2132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141, 0, 0, 0, 0, 0, 0, 2463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158, 0, 0, 2161, 0, 540, 540, 2164, 540, 540, 540, 540, 540, 540, 540, 3053, 540, 3055, 540, 540, 540, 540, 540, 540, 540, 540, 2232, 540, 540, 2235, 2236, 540, 540, 0, 540, 540, 540, 2227, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2242, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2246, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1455, 585, 1458, 561, 2312, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 2650, 585, 585, 585, 585, 585, 585, 561, 3547, 3548, 0, 0, 0, 0, 0, 0, 3554, 0, 585, 585, 2331, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2381, 2382, 585, 585, 585, 585, 2387, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2397, 540, 540, 2415, 2416, 561, 561, 2419, 2420, 585, 585, 2423, 2424, 0, 1563, 0, 1569, 0, 1575, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 0, 0, 0, 2438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, 0, 0, 0, 0, 2478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2565, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1333, 540, 540, 540, 585, 585, 2682, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2693, 585, 585, 585, 585, 585, 585, 3590, 585, 585, 561, 0, 3594, 0, 0, 0, 0, 0, 0, 2516, 2466, 0, 0, 0, 0, 0, 2521, 0, 0, 2824, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2239, 561, 561, 561, 561, 2885, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1395, 561, 561, 561, 561, 561, 561, 561, 561, 1430, 561, 561, 561, 561, 561, 561, 561, 561, 2866, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2933, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1985, 585, 585, 585, 585, 0, 3177, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 1602, 0, 0, 0, 0, 0, 0, 0, 0, 3194, 0, 0, 0, 0, 0, 0, 3197, 0, 3199, 540, 540, 540, 540, 880, 540, 885, 540, 891, 540, 894, 540, 540, 908, 540, 540, 540, 540, 540, 3038, 540, 540, 540, 540, 540, 540, 540, 540, 3046, 540, 585, 3289, 3290, 0, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3316, 540, 540, 540, 3319, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1819, 540, 540, 540, 540, 1360, 561, 3337, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2646, 561, 3415, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3115, 3428, 585, 3430, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 336, 290, 0, 0, 0, 0, 3555, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3566, 540, 540, 561, 3064, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2617, 561, 561, 561, 561, 561, 3608, 561, 3609, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3615, 585, 585, 585, 585, 585, 2658, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1952, 585, 585, 585, 585, 585, 3616, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 1067, 911, 561, 561, 561, 1072, 407, 353, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 1146, 0, 0, 472, 483, 472, 0, 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 523, 523, 527, 527, 527, 527, 472, 472, 472, 472, 472, 477, 472, 472, 527, 523, 527, 527, 527, 527, 539, 556, 579, 556, 579, 556, 556, 579, 556, 603, 579, 579, 579, 579, 579, 579, 579, 603, 603, 603, 556, 603, 603, 603, 603, 603, 579, 579, 619, 624, 603, 624, 630, 1, 12290, 3, 78112, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101, 0, 738, 0, 0, 0, 644, 738, 0, 744, 745, 644, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, 807, 0, 0, 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, 644, 0, 0, 0, 802, 0, 807, 0, 793, 0, 822, 0, 0, 0, 665, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 362, 0, 0, 0, 1134592, 0, 0, 0, 793, 793, 0, 644, 0, 0, 793, 807, 845, 0, 540, 850, 540, 540, 540, 540, 540, 2539, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3324, 540, 540, 540, 540, 540, 869, 873, 879, 883, 540, 540, 540, 540, 540, 899, 540, 540, 540, 540, 540, 540, 540, 3206, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2205, 540, 540, 540, 540, 540, 540, 561, 561, 920, 561, 561, 561, 561, 939, 943, 949, 561, 954, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 2728, 0, 0, 1016, 1022, 585, 1027, 585, 585, 585, 585, 585, 1044, 585, 585, 585, 585, 585, 1058, 0, 0, 0, 540, 993, 585, 561, 540, 540, 899, 540, 540, 561, 561, 971, 561, 561, 561, 561, 561, 0, 585, 585, 993, 585, 585, 585, 585, 1012, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2784, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, 1227, 0, 0, 1099, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2753, 2754, 0, 1252, 1200, 0, 1233, 1255, 0, 1258, 0, 0, 0, 0, 0, 1130, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 1600, 0, 0, 1603, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3320, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1801, 540, 540, 540, 1806, 540, 540, 0, 1267, 0, 0, 0, 0, 0, 1267, 0, 0, 1149, 1267, 0, 1274, 540, 540, 540, 540, 1282, 540, 540, 540, 1291, 540, 540, 540, 540, 540, 540, 540, 540, 2204, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2830, 540, 540, 540, 540, 540, 540, 540, 1279, 540, 540, 540, 540, 1285, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2194, 540, 540, 540, 540, 540, 540, 1306, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1317, 540, 540, 540, 540, 540, 2567, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2545, 540, 540, 540, 540, 1321, 540, 540, 540, 540, 540, 540, 540, 1327, 540, 540, 540, 1334, 1336, 540, 540, 540, 540, 1310, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1335, 540, 540, 540, 1360, 914, 1362, 561, 561, 561, 561, 1368, 561, 561, 561, 561, 1374, 561, 561, 561, 561, 1407, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2293, 561, 561, 561, 561, 561, 561, 1406, 561, 561, 561, 561, 1411, 561, 561, 561, 561, 561, 561, 561, 561, 1852, 561, 561, 561, 561, 561, 561, 561, 561, 1866, 561, 561, 561, 561, 561, 561, 561, 1418, 561, 561, 561, 1425, 1427, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1865, 561, 561, 561, 561, 561, 561, 561, 561, 1883, 561, 561, 561, 561, 561, 561, 561, 1459, 585, 585, 585, 585, 1465, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1533, 585, 585, 585, 585, 585, 1486, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1497, 585, 585, 585, 585, 585, 585, 1034, 585, 585, 585, 585, 1052, 585, 585, 585, 561, 1502, 585, 585, 585, 585, 585, 585, 585, 585, 1509, 585, 585, 585, 1516, 1518, 585, 585, 585, 585, 585, 2685, 585, 585, 585, 585, 2689, 585, 585, 585, 2694, 585, 561, 0, 1290, 1544, 1470, 1379, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3249, 561, 3251, 561, 561, 561, 561, 561, 561, 561, 585, 3534, 585, 3535, 585, 585, 585, 3539, 585, 0, 1575, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 1592, 1593, 0, 0, 0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, 0, 0, 0, 1647, 1648, 0, 0, 0, 0, 0, 0, 0, 2387968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2987, 0, 0, 0, 0, 0, 2990, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482, 0, 0, 0, 1721, 0, 0, 0, 0, 0, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 300, 300, 300, 300, 0, 300, 300, 300, 300, 300, 540, 540, 540, 1747, 540, 540, 540, 540, 1753, 540, 540, 540, 540, 540, 540, 540, 540, 1817, 540, 540, 540, 540, 540, 540, 1360, 540, 540, 540, 1764, 540, 540, 540, 540, 1768, 540, 540, 540, 540, 540, 540, 540, 540, 2178, 540, 540, 540, 540, 540, 540, 540, 540, 1287, 1294, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1779, 540, 540, 1783, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2206, 2207, 540, 540, 540, 540, 1809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1379, 561, 0, 1074, 585, 585, 1050, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 1210, 0, 561, 1845, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1856, 561, 561, 561, 561, 1423, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3253, 561, 561, 561, 561, 585, 561, 1860, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1871, 561, 561, 561, 561, 1424, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1920, 585, 585, 585, 585, 1876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3244, 561, 561, 585, 2026, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 2079, 2080, 0, 0, 2082, 2083, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3306, 0, 0, 0, 0, 0, 0, 2105, 0, 0, 0, 0, 2108, 2109, 0, 0, 0, 0, 0, 0, 301, 301, 301, 301, 0, 301, 301, 301, 301, 301, 2115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796, 0, 0, 0, 2147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 0, 0, 2157, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 540, 2225, 540, 540, 540, 540, 2230, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2070, 0, 0, 0, 0, 0, 2242, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2618, 561, 561, 561, 561, 561, 2259, 561, 561, 2263, 561, 561, 561, 2267, 561, 561, 561, 561, 561, 561, 3610, 561, 3611, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2030, 0, 1082, 0, 0, 0, 2032, 585, 2344, 585, 585, 2348, 585, 585, 585, 2352, 585, 585, 585, 585, 585, 585, 585, 1528, 585, 585, 585, 585, 585, 585, 1538, 585, 585, 585, 585, 2361, 585, 585, 2364, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1935, 1936, 585, 585, 585, 585, 1943, 585, 585, 2400, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2718, 540, 540, 0, 0, 0, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2794, 0, 0, 0, 0, 2473, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511, 0, 540, 540, 2525, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2532, 540, 540, 540, 540, 1324, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1330, 540, 540, 540, 540, 540, 540, 2550, 540, 540, 2552, 540, 2553, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2193, 540, 540, 2196, 540, 540, 540, 540, 2563, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2574, 540, 540, 540, 540, 2827, 2828, 540, 540, 540, 540, 2831, 540, 540, 540, 540, 540, 540, 540, 1751, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1351, 540, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 2587, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2264, 561, 561, 561, 561, 2269, 561, 561, 561, 2594, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2871, 561, 561, 2609, 561, 561, 561, 2612, 561, 561, 2614, 561, 2615, 561, 561, 561, 561, 561, 929, 561, 937, 561, 561, 561, 561, 561, 561, 561, 561, 2629, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2623, 561, 561, 2627, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2290, 2291, 561, 561, 561, 561, 561, 561, 561, 0, 2327, 585, 585, 585, 585, 585, 585, 585, 1507, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 3284, 540, 3286, 561, 561, 561, 561, 2638, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3099, 561, 561, 561, 0, 0, 2733, 2734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, 0, 0, 2785, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2432, 0, 0, 0, 0, 0, 0, 2800, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3042, 540, 3044, 540, 540, 540, 540, 540, 540, 2848, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2318, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2859, 561, 2862, 561, 561, 561, 561, 2867, 561, 561, 561, 2870, 561, 561, 561, 561, 2302, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 940, 561, 561, 561, 561, 561, 561, 561, 561, 1394, 561, 561, 561, 561, 561, 561, 561, 1402, 561, 561, 561, 2896, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1529, 585, 585, 585, 585, 585, 585, 585, 585, 2661, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2907, 585, 2910, 585, 585, 585, 585, 2915, 585, 585, 585, 2918, 585, 585, 585, 585, 585, 1527, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2367, 585, 585, 585, 585, 585, 585, 585, 585, 2944, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 3373, 0, 0, 0, 3375, 0, 0, 2980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 2991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3005, 0, 3006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2989, 0, 561, 561, 561, 561, 3078, 561, 561, 561, 561, 561, 561, 561, 561, 3086, 561, 561, 561, 561, 2315, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 2327, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3273, 585, 585, 585, 585, 585, 585, 561, 561, 585, 585, 585, 3107, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1969, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3119, 585, 585, 585, 585, 585, 585, 585, 585, 3127, 585, 585, 585, 585, 585, 1901, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 3065, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3479, 585, 585, 585, 585, 585, 0, 3159, 0, 0, 0, 0, 0, 0, 0, 3165, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 3304, 0, 0, 0, 0, 0, 0, 3191, 0, 0, 0, 0, 0, 0, 3195, 3196, 0, 0, 0, 0, 540, 540, 3601, 540, 3602, 540, 540, 540, 540, 540, 540, 540, 540, 1752, 540, 540, 540, 540, 540, 540, 540, 540, 1349, 540, 540, 540, 540, 540, 540, 540, 540, 1288, 540, 540, 540, 540, 540, 540, 540, 540, 1289, 540, 540, 540, 540, 540, 540, 540, 540, 1290, 540, 540, 540, 540, 1300, 540, 540, 3279, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 561, 561, 2611, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2304, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1853, 561, 561, 561, 561, 561, 561, 540, 540, 540, 540, 3317, 540, 540, 540, 3321, 540, 540, 540, 540, 540, 540, 540, 540, 2192, 540, 540, 540, 540, 540, 540, 2198, 561, 561, 561, 3339, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2628, 561, 561, 561, 561, 561, 561, 561, 561, 2305, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3348, 561, 561, 561, 585, 585, 585, 585, 585, 3353, 585, 585, 585, 3357, 561, 561, 3572, 561, 561, 561, 561, 561, 561, 561, 561, 3580, 585, 585, 585, 3584, 3597, 0, 3598, 3599, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3605, 3606, 540, 540, 540, 540, 2837, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1803, 540, 540, 540, 540, 585, 585, 585, 585, 585, 3619, 3620, 585, 561, 0, 0, 3623, 0, 0, 0, 540, 585, 585, 561, 540, 540, 895, 540, 540, 561, 561, 967, 561, 561, 3671, 585, 3672, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 1559, 0, 0, 0, 1565, 0, 0, 0, 1571, 2033, 0, 0, 0, 0, 1577, 2035, 0, 0, 0, 0, 0, 0, 0, 1682, 0, 1684, 0, 0, 0, 0, 0, 0, 0, 1712, 0, 0, 1715, 0, 0, 0, 0, 0, 355, 356, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 2768, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3198, 0, 540, 540, 473, 473, 487, 0, 0, 487, 356, 356, 356, 509, 356, 356, 356, 356, 473, 473, 580, 580, 580, 580, 580, 580, 580, 604, 604, 604, 557, 604, 604, 604, 604, 604, 580, 580, 557, 580, 604, 580, 604, 1, 12290, 3, 78112, 540, 870, 540, 540, 540, 540, 540, 540, 540, 540, 540, 904, 540, 540, 540, 540, 540, 540, 2191, 540, 540, 540, 540, 2195, 540, 2197, 540, 540, 561, 561, 976, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 1013, 1197, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 1371, 561, 561, 561, 1380, 561, 561, 561, 561, 2639, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2644, 561, 561, 561, 561, 585, 585, 585, 1462, 585, 585, 585, 1471, 585, 585, 585, 585, 585, 585, 585, 585, 1472, 585, 1477, 585, 585, 1481, 585, 585, 1541, 561, 0, 1291, 585, 1471, 1380, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 2727, 0, 0, 0, 0, 0, 1576, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2737, 0, 0, 0, 0, 0, 2741, 0, 1607, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 0, 0, 0, 0, 0, 0, 303, 204800, 204800, 0, 205103, 204800, 1, 12290, 3, 0, 1761, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1774, 1891, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3087, 561, 561, 561, 561, 1911, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 1466, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2928, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1947, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2001, 585, 585, 585, 585, 585, 585, 585, 1960, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1973, 0, 0, 2243, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2634, 561, 561, 2328, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2384, 0, 0, 0, 0, 2425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085, 2086, 0, 0, 0, 0, 2449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3175, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2590, 561, 561, 561, 561, 561, 561, 2289, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2292, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2861, 561, 2863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2877, 561, 561, 561, 561, 561, 561, 561, 561, 1899, 561, 561, 561, 561, 561, 1905, 561, 585, 585, 585, 2909, 585, 2911, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1984, 585, 585, 585, 585, 585, 585, 585, 3360, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1056, 585, 561, 0, 3556, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3567, 540, 561, 561, 561, 561, 2876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 561, 561, 561, 561, 3656, 561, 585, 585, 585, 585, 3660, 585, 0, 0, 0, 0, 0, 0, 2775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2124, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1147354, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509, 0, 0, 357, 0, 367, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457, 0, 0, 581, 581, 581, 581, 581, 581, 581, 605, 605, 605, 558, 605, 605, 605, 605, 605, 581, 581, 558, 581, 605, 581, 605, 1, 12290, 3, 78112, 865, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2575, 1385, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3243, 561, 1775, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3047, 585, 585, 585, 585, 1961, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2380, 585, 585, 585, 585, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3315, 0, 2981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3188, 0, 3298, 0, 3299, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3388, 0, 0, 0, 0, 358, 359, 360, 361, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 702, 0, 0, 0, 0, 359, 0, 358, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 425, 65536, 0, 0, 0, 0, 1710, 1711, 0, 0, 0, 1714, 0, 0, 0, 0, 0, 1718, 425, 425, 0, 425, 0, 359, 425, 0, 456, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 1263, 1264, 0, 0, 0, 0, 0, 497, 497, 0, 504, 504, 504, 504, 510, 511, 504, 504, 524, 524, 524, 524, 456, 456, 456, 456, 456, 456, 456, 456, 524, 524, 524, 524, 524, 524, 524, 559, 582, 559, 582, 559, 559, 582, 559, 606, 582, 582, 582, 582, 582, 582, 582, 606, 606, 606, 559, 606, 606, 606, 606, 606, 582, 582, 620, 625, 606, 625, 631, 1, 12290, 3, 78112, 0, 0, 0, 540, 585, 585, 561, 540, 540, 900, 540, 540, 561, 561, 972, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1934, 585, 585, 585, 585, 585, 585, 585, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740, 0, 0, 0, 0, 0, 561, 2245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3533, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3494, 561, 0, 0, 0, 0, 0, 0, 585, 2330, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1482, 585, 585, 540, 2549, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2237, 0, 540, 540, 2577, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 1611, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2891776, 0, 0, 0, 0, 0, 2392064, 583, 583, 583, 583, 583, 583, 583, 607, 607, 607, 560, 607, 607, 607, 607, 607, 583, 583, 560, 583, 607, 583, 607, 1, 12290, 3, 78112, 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 866, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3224, 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 786, 561, 585, 585, 585, 585, 585, 1079, 1560, 0, 0, 0, 1566, 0, 0, 0, 1572, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3313, 0, 0, 540, 2199, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2547, 540, 2535, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2822, 540, 561, 561, 561, 2597, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2317, 561, 561, 2320, 2321, 561, 561, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 743, 540, 540, 540, 540, 540, 540, 540, 3331, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3072, 561, 561, 561, 0, 0, 0, 540, 585, 585, 561, 1064, 540, 540, 905, 540, 1069, 561, 561, 977, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1951, 585, 585, 585, 585, 585, 585, 585, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2767, 0, 0, 561, 561, 1846, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2645, 561, 561, 585, 585, 585, 1977, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2692, 585, 585, 585, 540, 540, 540, 2188, 540, 2190, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3334, 561, 561, 0, 0, 0, 561, 561, 561, 2247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2613, 561, 561, 561, 561, 561, 561, 561, 2619, 561, 561, 2273, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3242, 561, 561, 0, 585, 585, 585, 2332, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2408, 540, 585, 585, 561, 561, 2647, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2687, 585, 585, 2691, 585, 585, 585, 585, 585, 585, 585, 585, 2684, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2916, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 585, 3109, 585, 585, 585, 585, 585, 585, 585, 585, 2702, 585, 585, 585, 585, 585, 585, 585, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225706, 0, 0, 1134592, 0, 0, 0, 1134592, 1134592, 0, 0, 1134592, 0, 0, 1134592, 0, 1134592, 0, 0, 0, 1134592, 1135005, 1135005, 0, 0, 0, 0, 0, 1135005, 0, 1134592, 1134592, 0, 0, 0, 0, 1135202, 1135202, 1135202, 1135202, 1134592, 1135202, 1135202, 1135202, 1135202, 1135202, 0, 1134592, 1134592, 1134592, 1134592, 1135202, 1134592, 1135202, 1, 12290, 3, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 1138688, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2125824, 2126738, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 457, 457, 1147354, 457, 457, 457, 457, 457, 457, 457, 457, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 1147354, 1147354, 1147354, 1147405, 1147405, 1147354, 1147405, 1147405, 1, 12290, 3, 0, 0, 0, 0, 2042, 0, 0, 2045, 2046, 0, 0, 0, 2050, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 1142784, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2940928, 2940928, 2940928, 0, 0, 0, 0, 0, 0, 305, 440, 448, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 1159168, 0, 0, 1159168, 0, 1159168, 1159168, 0, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802, 0, 540, 540, 540, 540, 540, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1, 12290, 3, 0, 0, 0, 0, 2053, 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 799, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163264, 0, 0, 0, 0, 0, 155648, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 913, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 1452, 2125824, 2125824, 2125824, 2125824, 2424832, 106496, 0, 106496, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782, 2783, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163840, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 0, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 0, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2654208, 2678784, 2760704, 2764800, 2785280, 2854912, 2969600, 2125824, 3006464, 2125824, 3018752, 2125824, 2125824
 
21556
];
 
21557
 
 
21558
XQueryParser.EXPECTED =
 
21559
[ 260, 268, 276, 283, 296, 304, 881, 312, 318, 331, 366, 339, 350, 361, 369, 342, 288, 886, 1555, 1545, 377, 384, 1551, 392, 400, 415, 423, 431, 439, 447, 455, 463, 486, 553, 490, 500, 500, 499, 498, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 353, 1871, 509, 517, 525, 1149, 688, 533, 1759, 407, 548, 949, 561, 323, 569, 1480, 1303, 866, 577, 1034, 592, 596, 1439, 1444, 604, 1857, 628, 636, 644, 1919, 1049, 652, 673, 660, 668, 681, 696, 995, 710, 718, 731, 1324, 739, 761, 1116, 776, 784, 792, 1170, 1200, 1204, 807, 843, 851, 859, 894, 902, 910, 723, 918, 926, 934, 942, 753, 957, 1568, 965, 980, 611, 988, 1738, 1003, 1011, 616, 1185, 1827, 871, 1539, 1029, 1042, 1418, 584, 1424, 972, 1057, 1065, 1073, 1598, 1087, 1095, 1103, 1111, 1134, 1142, 768, 478, 1163, 1289, 620, 1155, 1178, 876, 1620, 1643, 1193, 702, 1812, 799, 1789, 1212, 1753, 1218, 1226, 1234, 1242, 500, 1250, 1258, 828, 1266, 1274, 1282, 1297, 1850, 1311, 1319, 1332, 1079, 540, 1345, 1017, 1337, 1359, 1021, 1367, 1375, 1390, 1398, 1403, 1411, 1432, 1452, 1460, 1468, 1476, 1488, 1496, 1382, 1516, 1524, 1532, 1563, 1576, 746, 1584, 1592, 1502, 1606, 1614, 814, 1628, 1636, 469, 821, 1661, 1665, 1673, 1678, 1686, 1694, 1702, 1710, 1718, 501, 1726, 1734, 1746, 1767, 1775, 1783, 1351, 1126, 1797, 1805, 1121, 835, 1820, 474, 1835, 1843, 1865, 1508, 1879, 1649, 1653, 1887, 1892, 1900, 1908, 1916, 500, 500, 1927, 1975, 1928, 1939, 1939, 1939, 1934, 1938, 1939, 1930, 1943, 1950, 1946, 1954, 1958, 1961, 1964, 1968, 1972, 1979, 2007, 2007, 2007, 3094, 2007, 1983, 3521, 2007, 2812, 2007, 2007, 2007, 2007, 2779, 2007, 2007, 2132, 2007, 4152, 3820, 3824, 1987, 2098, 1994, 2000, 2006, 2007, 2007, 3996, 2007, 2007, 2012, 4079, 3820, 3824, 3824, 3824, 3824, 2019, 2097, 2097, 2026, 2170, 2032, 2007, 2007, 2007, 2007, 2919, 2007, 2428, 3887, 2007, 3734, 2038, 2089, 2007, 2007, 2007, 3390, 3824, 3824, 2045, 2097, 2097, 2097, 2097, 2097, 2099, 1996, 2067, 2059, 2063, 2003, 2007, 2007, 2007, 2007, 2007, 2259, 3005, 2007, 3049, 2007, 2007, 2007, 3818, 3820, 3820, 3820, 3820, 2133, 3824, 3824, 3824, 3824, 3824, 2055, 3820, 2139, 3824, 3824, 3824, 3827, 2097, 2097, 2022, 2072, 2007, 2007, 4080, 2007, 2162, 2077, 2007, 2007, 2779, 3400, 3820, 3820, 2053, 3824, 3825, 2097, 2097, 2084, 2072, 2088, 4151, 2385, 2007, 2007, 2007, 2007, 3112, 2752, 3820, 2052, 3824, 2095, 2097, 2104, 2778, 2050, 3823, 2095, 2115, 2129, 3821, 3826, 1989, 3390, 3822, 3827, 1990, 2137, 2141, 2149, 3819, 2141, 2159, 2167, 2048, 2174, 2028, 2181, 2184, 2188, 2192, 2202, 2202, 2193, 2197, 2201, 2203, 2207, 2211, 2215, 2219, 2222, 2226, 2230, 2234, 2238, 2732, 2242, 2007, 2007, 2737, 2247, 2007, 2007, 2007, 3028, 4134, 2007, 2007, 2007, 3213, 2007, 2007, 2007, 2007, 2702, 3310, 2007, 3694, 2243, 2007, 4531, 2253, 2007, 2007, 2007, 2007, 2007, 4488, 2007, 2007, 2007, 4489, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 4297, 2280, 2282, 2286, 2289, 2293, 2297, 2301, 2662, 2386, 2007, 2007, 2007, 2007, 2387, 2307, 2314, 2318, 4376, 4208, 2325, 2681, 3075, 3584, 2645, 2353, 2359, 2620, 2007, 2007, 2381, 2363, 2007, 2007, 3675, 2007, 3534, 4411, 3291, 4070, 3348, 2391, 2007, 2395, 2399, 2007, 2007, 2007, 2007, 3092, 3298, 2007, 2007, 2402, 2007, 2007, 2007, 3382, 2007, 2007, 2418, 3423, 2432, 2007, 2007, 2007, 2007, 2797, 2433, 2797, 2457, 2007, 2007, 2007, 2007, 2463, 2007, 2007, 3716, 3131, 2917, 2007, 2007, 3777, 4457, 4344, 2470, 2007, 2007, 2007, 2477, 2007, 2007, 2007, 2484, 2007, 2107, 3702, 2007, 3700, 2493, 2007, 2111, 2007, 2007, 3723, 3037, 2007, 2007, 2007, 2090, 3072, 2007, 2007, 2007, 2007, 2261, 3346, 2007, 2007, 2500, 2007, 2505, 4255, 4115, 4254, 2007, 4238, 2510, 4117, 3651, 3491, 2511, 4118, 4239, 4255, 3650, 4117, 2516, 4116, 4117, 3593, 3670, 3596, 2528, 2531, 2535, 2538, 2542, 2007, 3509, 2620, 4365, 4173, 2562, 2566, 2570, 2007, 2674, 2672, 3782, 2574, 2007, 3457, 2579, 2007, 2501, 2007, 4424, 3255, 2555, 2588, 4214, 4424, 4450, 2584, 2592, 2599, 3102, 4176, 2007, 2007, 3778, 2008, 2342, 4482, 2348, 4126, 4353, 2007, 2007, 2007, 2721, 2607, 2007, 2007, 2007, 3379, 2007, 2007, 2007, 3480, 2619, 2007, 4362, 2007, 4150, 4231, 2625, 4223, 2632, 2636, 2007, 4444, 2654, 2007, 2007, 2007, 2007, 3897, 2007, 2007, 4225, 2675, 2642, 2007, 2007, 2007, 2007, 4443, 2653, 4024, 2007, 4424, 4341, 2118, 4304, 2679, 2007, 2007, 3794, 2734, 2268, 4056, 2403, 2007, 2007, 3896, 2007, 2655, 2910, 4541, 3011, 2685, 2775, 2007, 2007, 2007, 3576, 2686, 2007, 2007, 4010, 3290, 2007, 2007, 3151, 3295, 3238, 2007, 2697, 2007, 3451, 2403, 4245, 2586, 4285, 2701, 3577, 2715, 2007, 2007, 2007, 3620, 2706, 2007, 2007, 2007, 2007, 2713, 2775, 2007, 2007, 4082, 3399, 2007, 2007, 4082, 3399, 2741, 2769, 2855, 2774, 2007, 3410, 2751, 2007, 2007, 4104, 2007, 2007, 2007, 2007, 2506, 4140, 4109, 4114, 3788, 2803, 4147, 2007, 2007, 4385, 3699, 2007, 3534, 4411, 2007, 2041, 4469, 4448, 2007, 2007, 2007, 2709, 3410, 2751, 2702, 2784, 3450, 4048, 2121, 2770, 3436, 2007, 3434, 3438, 2007, 2791, 2007, 2795, 2801, 2328, 2810, 2787, 2452, 2816, 2453, 2007, 2443, 2450, 2424, 2465, 2007, 2007, 2007, 2007, 3098, 2007, 2007, 2007, 2007, 3372, 2007, 2007, 2007, 2007, 3389, 3820, 3820, 3820, 2163, 3824, 3824, 3824, 3824, 4039, 2821, 2787, 2832, 2786, 3985, 2838, 2843, 4030, 3312, 2839, 2844, 4031, 4431, 2848, 2834, 2852, 2859, 2860, 2177, 2864, 3301, 4460, 4463, 2871, 4547, 2875, 2879, 2883, 2886, 2890, 2894, 2897, 2899, 2900, 2007, 2007, 2904, 2007, 3808, 2910, 4541, 3081, 2914, 2007, 2007, 2924, 2928, 2937, 2944, 2952, 2961, 2968, 3274, 2970, 2007, 2473, 2408, 2007, 2007, 2007, 2007, 2414, 3024, 2007, 2495, 2976, 2980, 4495, 4081, 2986, 2999, 2007, 2007, 2007, 2007, 2007, 3335, 2007, 2489, 2007, 3285, 2007, 3286, 2007, 3109, 2656, 3009, 3015, 3021, 3139, 2007, 4251, 2344, 3032, 2007, 2007, 2007, 2007, 3722, 3036, 2007, 2612, 2007, 2007, 3782, 2574, 2007, 3508, 4541, 3046, 3053, 2702, 3058, 2007, 2007, 3062, 3067, 2007, 2007, 2007, 2007, 3063, 2007, 2007, 2007, 3691, 2007, 2007, 2007, 2007, 2338, 3741, 2007, 2007, 3119, 2007, 2007, 2007, 3125, 2007, 2007, 2007, 2550, 4047, 2007, 2007, 2920, 3125, 2007, 2007, 3428, 4501, 2355, 3026, 2007, 2615, 2654, 4143, 3807, 3464, 2520, 2524, 3111, 2918, 2007, 3114, 3109, 3780, 3113, 3150, 3110, 3781, 3147, 4236, 3779, 2920, 3137, 2919, 2920, 3489, 4183, 3144, 3155, 2155, 2007, 2007, 2007, 4522, 3741, 2007, 3667, 2007, 3121, 3163, 3167, 3171, 3175, 3179, 3183, 3187, 3191, 2007, 2007, 2817, 3354, 2007, 2765, 3195, 3974, 3201, 3218, 4237, 3222, 3226, 3236, 4136, 3242, 3713, 3038, 3248, 3246, 2007, 2007, 2007, 2575, 2690, 2007, 2007, 2007, 2007, 4428, 2007, 2007, 2007, 2249, 4402, 4409, 2007, 2007, 3231, 3253, 2007, 2765, 3195, 3974, 3259, 3475, 4398, 3265, 3269, 3278, 2007, 2007, 3282, 2007, 2647, 2638, 3815, 3004, 2336, 2007, 2007, 2007, 3352, 2007, 2765, 3195, 2780, 3316, 2068, 3260, 3320, 3417, 3327, 3333, 2007, 2719, 3457, 2007, 2725, 2730, 2741, 4471, 3360, 3364, 3407, 2007, 2007, 2007, 3368, 2007, 2736, 3608, 3079, 3085, 3140, 2702, 4437, 3054, 3399, 2007, 2007, 2007, 4081, 3398, 2007, 2745, 2007, 2007, 3576, 2749, 2007, 2007, 2719, 2756, 2763, 3971, 3448, 2007, 2007, 3455, 2007, 2007, 3455, 2007, 2255, 2007, 3975, 3472, 3484, 2007, 3497, 2971, 3449, 2972, 2007, 3503, 3273, 4555, 4530, 4554, 3513, 4094, 4553, 3271, 4553, 4095, 4554, 3272, 4093, 4528, 3271, 3515, 4528, 4529, 2007, 4379, 2620, 3519, 2007, 3525, 4151, 3529, 3538, 3542, 3546, 3550, 3554, 3558, 3562, 3566, 2828, 3729, 2918, 2410, 4192, 3571, 3230, 4556, 3575, 3581, 3356, 3619, 3590, 2007, 2007, 4378, 3676, 2007, 3534, 4488, 2007, 2948, 3600, 2007, 2867, 3355, 2007, 2007, 2007, 2007, 3339, 4185, 3612, 2007, 2007, 2580, 3618, 2007, 2007, 2549, 2551, 2386, 2007, 2007, 3132, 3630, 2007, 2007, 2608, 3641, 2007, 3647, 4412, 2007, 3655, 3866, 3249, 3663, 2007, 2007, 2007, 2660, 2007, 2007, 2666, 2007, 4405, 2007, 2007, 2007, 2007, 2337, 3687, 2007, 2594, 3230, 4081, 3698, 2007, 2805, 3682, 2007, 2007, 2007, 3686, 2007, 2007, 2824, 2007, 2007, 2007, 2007, 2826, 4487, 2995, 2957, 2349, 3606, 2007, 2007, 3706, 2007, 4081, 3710, 2007, 2595, 2007, 3720, 4485, 2946, 3727, 3068, 3733, 2007, 3738, 2620, 2007, 2940, 2777, 3753, 3945, 3949, 3954, 3868, 2007, 3747, 2620, 2007, 2007, 3747, 2620, 3751, 2378, 2034, 3757, 3764, 3636, 2007, 4288, 2007, 2007, 4288, 3428, 3769, 2466, 2015, 3765, 3773, 2007, 3786, 2007, 3127, 2007, 2954, 2007, 2007, 3775, 2007, 2007, 3775, 2007, 2007, 2956, 2007, 2548, 2459, 2007, 3792, 3751, 3798, 3760, 3637, 2602, 2007, 3149, 4508, 2110, 2488, 2007, 3701, 2494, 2007, 2007, 4046, 2007, 3780, 2603, 2007, 3802, 3806, 3812, 3837, 4356, 3836, 3831, 2331, 3835, 3677, 3841, 2332, 3836, 3678, 4221, 3854, 3848, 4359, 3847, 3845, 3852, 3877, 3863, 3874, 3881, 3884, 2007, 2007, 2007, 2007, 2480, 2437, 2007, 2007, 2964, 2776, 2007, 3893, 3901, 3905, 3909, 3913, 3917, 3921, 3925, 3929, 3933, 3937, 2007, 2007, 2982, 4068, 4074, 4253, 2007, 2007, 3212, 4493, 2007, 2007, 2007, 2248, 3959, 3964, 3968, 4202, 3979, 3983, 3989, 3950, 2007, 4000, 4007, 4014, 2007, 2007, 2963, 2421, 3753, 4019, 4023, 2040, 3626, 4028, 4035, 2007, 3229, 3106, 3743, 3026, 2726, 2007, 2007, 2007, 4080, 2007, 4152, 3820, 3820, 2054, 3824, 3824, 2096, 2097, 2097, 2097, 2097, 2100, 2143, 4043, 2007, 2007, 3205, 3209, 2007, 2007, 2007, 2990, 2994, 2007, 2007, 2248, 3207, 2007, 2007, 2007, 3197, 4052, 2310, 4253, 4060, 2669, 2007, 4114, 2007, 2007, 2007, 2628, 3210, 2007, 2007, 2007, 2506, 4064, 2007, 2007, 3232, 3254, 3975, 2007, 4119, 3159, 2962, 4078, 3753, 4086, 2404, 2007, 4090, 2620, 4114, 2007, 2007, 2007, 4099, 2620, 2007, 2007, 3376, 2007, 2007, 2007, 2007, 2933, 4100, 4108, 4113, 2007, 2439, 4123, 3603, 4423, 2007, 3870, 3133, 2007, 2007, 2007, 4130, 2007, 3386, 2068, 4158, 3394, 3506, 2007, 2007, 2007, 4526, 2007, 2007, 2007, 4526, 2007, 3992, 2370, 4535, 4156, 2920, 2007, 2007, 4162, 2007, 2007, 2007, 4162, 2558, 2007, 4166, 4170, 2007, 4180, 2007, 2007, 4189, 2007, 2007, 4196, 4200, 4206, 4212, 3859, 4218, 2007, 2693, 2007, 2007, 4229, 2007, 3586, 2152, 2145, 4235, 3487, 2007, 4243, 3642, 2775, 3643, 4249, 4440, 2806, 3659, 4259, 4264, 3657, 3857, 3940, 2080, 3658, 3858, 3941, 4274, 3939, 3857, 4278, 3856, 3857, 4282, 3017, 4292, 4293, 4270, 2321, 4301, 4003, 4311, 4315, 4319, 4323, 4327, 4330, 4334, 4338, 2007, 2007, 2007, 2007, 2621, 3230, 3492, 3042, 4267, 3478, 2931, 3955, 4350, 4514, 4396, 3306, 3462, 3468, 3444, 2007, 4516, 2007, 2007, 2446, 2007, 2007, 2007, 2759, 2375, 3002, 4369, 4307, 2007, 4015, 2007, 2546, 2544, 4373, 4383, 2007, 2007, 2007, 4389, 3478, 2931, 2068, 3670, 3532, 4437, 2007, 4393, 2007, 2007, 3427, 3432, 2303, 3443, 3422, 2007, 2007, 4416, 4081, 2007, 2091, 3671, 3422, 3203, 4420, 2007, 2007, 2007, 2007, 2007, 3342, 2007, 3388, 3404, 3414, 3421, 2007, 2254, 3381, 3994, 2931, 4346, 4454, 4260, 3567, 3304, 2007, 3439, 3100, 2007, 2007, 2007, 2007, 3089, 2007, 4467, 2007, 2007, 2007, 2007, 2007, 3214, 2124, 2007, 2007, 4475, 2365, 3889, 3499, 2007, 3616, 2007, 2007, 2007, 2337, 3624, 2007, 2906, 2007, 3329, 3633, 2007, 2499, 3960, 4434, 2007, 2007, 2007, 2007, 4479, 2007, 2007, 3493, 2265, 2007, 2272, 3323, 2276, 4499, 2125, 2007, 4505, 2367, 4512, 2007, 4520, 2512, 2007, 2007, 3211, 4539, 2007, 3211, 4539, 2073, 4037, 4454, 2007, 2007, 2007, 4545, 2007, 2649, 2007, 2007, 4551, 3115, 4157, 3422, 2007, 2369, 2007, 2370, 2007, 2371, 3261, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 3458, 2007, 2007, 2080, 4576, 4599, 4601, 4601, 4596, 4590, 4601, 4601, 5213, 4588, 4600, 4601, 4601, 4601, 4601, 4601, 4601, 4605, 4601, 4601, 4624, 4632, 4592, 4611, 4609, 4615, 4626, 4639, 4641, 4646, 4628, 4651, 4653, 4653, 4647, 4635, 4657, 4642, 4661, 4665, 4669, 4673, 4676, 4680, 4682, 4686, 4690, 4560, 6008, 4569, 4572, 6007, 4694, 4697, 4751, 6953, 4752, 5681, 6931, 4707, 6326, 4735, 4735, 4712, 4752, 4752, 5273, 4792, 6322, 4707, 4735, 5096, 4719, 4736, 5094, 5098, 4748, 4748, 4750, 4752, 4752, 4752, 4752, 4564, 5125, 5113, 4729, 5190, 6233, 4752, 5981, 4707, 4707, 4734, 4735, 4711, 4791, 6324, 5279, 4792, 6322, 4707, 4735, 6320, 4748, 4749, 4752, 4752, 4582, 6339, 6230, 4730, 5190, 4752, 4752, 4752, 6892, 4707, 4707, 6327, 4735, 4714, 6320, 6322, 6322, 6322, 6324, 4707, 4707, 4707, 4710, 4735, 4793, 4788, 6324, 4709, 4765, 5096, 5096, 4748, 4752, 4752, 4752, 4758, 4721, 4752, 4752, 4752, 4777, 4792, 4788, 4709, 4752, 4561, 4752, 5750, 4735, 4735, 4794, 6324, 4752, 5743, 4752, 4752, 4752, 4757, 4752, 4707, 4709, 4735, 4735, 4735, 4735, 4711, 4791, 6322, 4792, 5276, 4722, 4752, 4563, 5399, 6420, 4752, 6238, 5201, 5242, 4735, 4735, 4785, 4752, 4563, 5663, 4752, 4563, 6254, 5386, 5386, 5386, 4752, 4752, 4752, 5746, 4752, 6321, 6322, 6322, 6322, 6323, 6320, 6322, 6322, 6323, 4707, 4707, 4707, 4735, 4752, 4752, 4584, 5193, 4735, 4735, 4713, 4752, 4563, 6913, 6240, 6240, 6240, 6929, 4735, 4735, 4714, 5739, 6322, 6322, 6322, 6325, 6322, 6324, 4707, 4710, 4740, 5096, 5097, 4707, 4709, 4735, 4752, 4698, 4752, 6653, 4709, 5467, 5467, 5467, 4752, 5513, 5517, 5483, 4804, 4818, 4798, 4802, 4844, 4844, 4844, 4808, 4815, 4812, 4828, 4832, 4842, 4844, 4844, 4844, 4844, 4845, 4838, 4926, 4844, 4852, 4850, 4913, 4853, 4857, 4861, 4865, 4835, 4869, 4872, 4879, 4876, 4881, 4883, 4887, 4889, 4891, 4893, 4900, 4900, 4897, 4907, 4910, 4923, 4846, 4916, 4919, 4930, 4933, 4935, 4939, 4903, 4943, 4752, 4752, 4752, 4948, 4715, 4752, 4752, 4752, 4977, 6877, 4954, 4752, 4752, 4752, 4978, 6115, 4759, 4759, 4752, 4752, 4753, 6060, 5603, 6128, 4975, 4752, 4714, 4752, 6620, 4752, 6554, 6723, 6126, 4984, 5424, 5283, 4988, 4992, 4993, 4993, 4993, 4997, 5000, 5002, 5006, 5009, 5013, 5017, 5017, 5019, 5023, 5024, 5028, 5030, 5034, 5038, 5037, 5042, 5046, 4752, 4752, 4760, 5740, 4752, 5065, 4752, 5423, 4752, 4725, 4724, 4723, 4565, 5750, 4752, 5657, 4752, 5671, 5072, 4752, 4743, 4752, 5390, 5082, 4752, 6010, 4752, 4751, 5572, 6253, 5505, 4752, 5971, 6389, 5056, 4752, 4752, 4752, 5074, 5535, 6350, 4752, 4752, 6930, 5401, 4752, 5494, 4752, 4752, 4752, 5125, 4752, 6136, 6009, 4752, 5110, 6936, 6567, 5134, 5141, 5150, 5143, 5152, 4752, 4752, 4754, 4752, 4752, 4752, 4755, 4752, 4752, 4752, 4752, 6233, 6232, 4752, 4752, 6347, 4752, 4752, 6356, 5137, 5161, 5250, 4752, 4752, 4752, 5060, 6584, 5222, 5223, 5186, 4752, 6234, 5190, 6523, 5174, 5165, 5171, 5181, 4752, 4752, 4752, 5190, 4752, 5143, 5180, 4752, 4752, 4756, 6223, 4752, 6358, 5781, 5171, 4752, 6600, 5055, 5251, 4752, 5745, 4752, 4752, 6357, 5166, 4752, 5700, 4752, 6585, 5199, 5167, 5205, 5153, 4752, 5211, 5207, 4752, 4752, 4757, 5714, 4752, 5698, 4752, 5191, 5136, 5142, 5151, 5221, 6420, 4752, 4752, 4757, 5946, 5568, 5167, 6098, 6009, 4752, 5973, 4752, 5175, 5166, 6097, 5153, 4752, 4752, 4583, 6238, 5201, 5241, 4752, 4752, 6357, 5780, 6547, 5167, 5243, 4752, 4752, 6357, 5781, 4960, 4752, 6600, 5250, 5242, 4752, 4752, 4752, 5291, 5782, 5243, 4752, 4752, 4752, 5293, 6836, 6078, 4752, 4752, 4752, 5346, 5256, 4752, 4752, 4752, 5355, 4752, 6927, 4752, 4752, 4752, 5377, 5972, 4752, 4752, 6928, 5301, 5305, 5306, 5306, 5307, 5306, 5306, 5311, 5314, 5316, 5318, 5320, 5320, 5320, 5320, 5321, 5325, 5325, 5325, 5327, 5325, 5325, 5331, 5331, 4752, 4752, 4761, 6855, 4752, 4752, 4960, 4752, 4752, 4752, 5217, 4752, 6405, 5353, 5571, 4752, 6913, 6240, 5376, 5259, 4752, 5068, 5397, 4752, 5067, 5385, 5396, 4752, 6696, 6700, 5406, 4752, 4752, 4752, 5471, 5263, 4752, 4752, 4752, 5531, 6256, 5416, 4752, 5572, 4752, 5665, 4752, 5365, 4752, 5664, 4752, 4752, 4961, 4961, 4961, 5670, 4752, 6018, 4752, 4752, 6375, 6009, 4752, 6535, 4752, 4752, 4752, 5581, 5083, 5429, 6534, 4752, 4752, 6428, 6383, 5341, 6009, 4752, 4752, 4752, 5187, 5417, 4752, 5573, 4753, 5358, 6639, 6644, 6017, 4752, 6260, 6601, 4752, 6413, 4752, 4752, 4968, 5118, 5439, 5444, 5449, 4752, 4752, 6578, 5109, 4752, 4752, 4753, 6958, 5445, 5153, 4752, 4752, 4752, 5387, 6259, 6593, 5458, 4752, 4752, 5050, 5054, 5721, 5336, 5342, 4752, 4752, 6591, 4752, 4752, 6698, 4752, 4752, 4752, 5434, 5465, 6603, 4752, 4752, 5080, 4752, 6569, 5473, 5477, 5445, 6429, 5475, 5869, 5481, 4752, 4752, 6717, 6721, 4752, 5720, 5335, 5491, 6602, 4752, 4752, 4752, 5747, 5525, 5477, 5500, 4752, 4752, 6740, 6908, 6569, 5524, 5476, 5499, 6429, 4752, 4752, 6712, 4752, 4752, 5084, 5430, 6860, 4752, 4752, 4752, 5748, 5187, 4752, 4752, 5223, 4752, 5745, 6422, 4752, 4752, 4752, 6219, 4752, 5571, 4752, 5665, 6571, 5548, 5869, 5516, 5812, 5477, 5871, 4752, 4752, 4752, 5750, 5720, 5335, 5504, 4752, 4752, 6868, 5157, 4752, 6861, 4752, 4752, 5111, 6426, 5386, 5748, 5510, 4752, 4752, 5870, 6429, 4752, 4752, 4752, 5746, 4752, 4752, 4752, 4760, 5529, 4752, 4752, 5560, 5567, 4752, 4752, 4757, 5546, 5554, 6429, 4752, 6713, 4752, 4752, 5191, 5176, 5559, 5113, 4752, 4752, 5192, 4752, 4752, 4752, 6727, 4752, 6319, 4752, 4752, 5228, 4752, 5568, 4752, 4752, 4752, 5811, 5225, 6277, 5386, 4752, 4752, 6874, 6878, 4752, 4752, 6206, 4752, 5720, 5814, 5569, 4752, 5687, 5691, 5225, 6255, 6934, 5689, 5570, 5570, 4752, 5944, 5690, 4752, 5689, 5570, 4752, 5688, 4752, 6238, 5563, 4752, 4753, 5522, 5548, 5687, 5577, 4752, 5687, 5577, 6238, 5401, 6651, 4752, 4753, 6054, 6070, 5386, 6364, 5586, 6009, 6256, 5600, 4752, 6419, 5378, 5602, 5607, 5620, 5611, 5619, 5614, 5615, 5615, 5615, 5615, 5624, 5631, 5628, 5635, 5637, 5637, 5637, 5642, 5638, 5646, 5646, 5646, 5646, 4752, 4752, 6449, 4752, 4752, 5247, 5251, 6259, 4778, 5412, 6009, 4752, 5705, 4752, 6945, 4752, 4752, 4752, 6239, 4752, 4752, 5678, 4752, 4752, 5650, 4752, 5656, 5652, 4752, 4756, 4752, 4752, 6103, 4752, 5661, 5669, 5675, 4752, 4757, 5847, 5927, 4752, 5685, 4752, 6232, 4752, 5377, 6310, 4752, 4752, 5695, 4752, 4752, 5289, 5389, 4752, 4752, 5957, 6439, 4752, 4752, 4752, 5845, 5211, 5251, 4752, 6437, 6441, 4752, 4752, 4752, 5860, 4581, 5709, 4752, 4752, 5227, 4752, 5718, 4752, 4752, 5356, 6055, 5761, 5726, 5732, 5738, 4752, 5759, 5763, 5728, 5734, 4752, 4752, 4752, 5980, 5762, 5727, 5733, 4752, 4758, 4752, 4752, 6124, 5052, 5056, 4779, 6862, 4752, 4752, 5380, 5228, 4752, 5767, 6936, 4752, 6937, 6934, 5378, 4752, 5228, 5704, 4752, 4752, 6947, 4752, 4752, 5356, 5549, 5774, 5786, 6683, 5251, 5787, 6684, 4752, 4752, 4752, 5990, 6258, 4778, 5412, 6009, 4752, 6557, 5986, 4752, 4775, 4752, 5744, 6946, 4752, 4752, 4752, 6094, 6233, 4752, 4752, 5791, 4752, 5805, 6900, 6682, 6686, 6686, 4752, 4752, 4752, 6117, 5774, 6902, 6684, 4752, 4950, 5088, 5102, 5411, 6870, 4752, 4752, 5380, 6635, 5768, 6937, 5802, 4744, 5810, 6902, 6685, 4752, 4959, 4752, 4752, 4702, 4752, 4752, 5809, 6901, 5818, 4752, 4752, 5421, 4954, 4752, 5798, 4780, 6870, 5972, 4752, 4752, 4752, 6241, 4752, 4752, 4752, 5188, 6000, 5824, 5251, 4752, 4752, 5842, 5822, 5828, 4752, 4752, 5453, 5153, 5281, 4752, 4752, 4752, 6238, 6233, 6238, 4752, 4752, 5971, 5570, 4752, 4752, 6241, 5972, 4752, 6241, 4752, 4752, 6238, 4752, 4752, 4752, 5230, 6239, 4752, 6241, 5973, 5838, 5237, 4752, 6254, 6635, 5226, 5851, 6443, 5858, 5866, 5875, 5879, 5884, 5886, 5880, 5890, 5893, 5896, 5899, 5901, 5903, 5907, 5907, 5913, 5907, 5907, 5909, 5920, 5921, 5917, 5917, 5919, 5917, 5917, 5918, 5917, 5931, 5265, 4752, 4752, 5460, 5360, 4757, 4752, 6931, 4752, 4752, 4752, 5461, 5361, 6613, 5542, 4752, 4752, 4752, 6896, 5776, 6882, 4752, 4752, 5742, 5936, 5195, 4752, 6225, 5942, 6564, 5950, 5953, 5961, 4752, 4961, 4752, 4752, 4752, 6000, 6367, 5966, 6419, 4752, 4752, 5487, 4752, 6294, 4752, 6293, 5985, 4752, 5990, 5994, 4752, 4752, 4752, 6298, 6367, 5927, 4752, 4752, 4752, 6243, 4759, 6930, 4752, 4752, 5741, 4752, 4752, 6938, 6005, 6421, 6050, 6014, 4752, 4752, 5505, 4752, 4752, 4752, 6437, 4752, 6209, 5755, 5755, 6022, 6026, 6110, 4752, 4962, 4961, 4752, 4752, 6111, 4752, 4752, 4752, 6317, 6031, 6026, 6110, 4752, 4966, 4752, 5225, 5398, 4752, 5400, 4752, 4752, 4752, 6254, 4752, 6366, 5926, 4752, 4752, 5561, 5225, 5266, 4752, 4752, 5224, 6352, 4752, 6628, 4752, 4972, 5386, 5066, 6048, 5970, 4752, 4752, 5573, 5398, 4752, 6208, 4752, 4752, 5596, 4752, 6059, 5779, 6064, 4752, 4977, 4821, 6882, 6069, 6065, 4752, 4752, 5699, 4752, 4752, 6001, 5925, 5251, 4752, 4752, 4752, 6247, 4752, 5739, 4752, 6353, 4752, 6629, 4752, 5973, 4752, 6569, 6074, 6089, 6569, 6084, 6088, 5251, 6082, 6086, 6090, 4752, 4979, 4579, 4752, 4752, 4752, 6422, 4752, 6423, 6722, 4752, 4752, 4752, 6321, 6322, 5389, 6627, 4752, 5971, 4980, 4580, 4752, 4752, 4752, 6320, 4757, 4752, 5740, 4752, 5075, 5968, 4752, 4977, 5523, 6665, 6354, 6627, 4752, 5972, 4752, 4752, 6036, 4753, 6937, 4752, 4752, 4752, 6418, 6252, 4752, 4752, 4752, 6423, 6860, 6869, 4752, 4752, 5720, 5813, 5555, 4752, 4752, 4752, 5809, 6354, 6627, 4752, 4753, 6937, 4978, 4581, 4752, 4752, 4752, 6429, 4752, 4979, 4581, 4752, 4752, 5722, 5337, 5263, 4752, 6861, 6870, 4752, 5287, 5297, 4758, 4752, 5742, 6353, 6860, 6869, 4758, 5740, 5390, 5998, 6234, 4752, 4752, 4752, 6102, 4752, 5386, 6234, 5505, 6935, 4755, 6239, 4752, 5971, 4752, 4752, 4752, 5386, 4754, 5720, 4581, 4752, 4752, 5741, 6936, 4752, 6863, 5739, 4752, 5076, 4752, 4752, 5720, 5335, 5341, 4752, 6869, 4752, 6313, 4752, 6311, 4752, 6608, 4752, 4752, 5745, 4752, 6259, 4752, 4618, 6121, 6232, 6230, 6230, 5741, 6935, 4752, 4752, 6201, 5189, 4752, 6134, 6132, 6140, 6144, 6151, 6145, 6145, 6150, 6146, 6155, 6159, 6163, 6167, 6169, 6174, 6176, 6169, 6169, 6170, 6186, 6187, 6180, 6180, 6185, 6180, 6180, 6181, 6191, 4752, 4752, 4752, 6545, 6229, 6841, 5573, 5061, 6250, 4752, 4752, 4752, 6569, 5524, 4752, 6247, 6251, 4752, 5107, 4752, 4752, 4753, 6719, 6266, 6265, 6267, 4752, 5110, 4752, 5111, 4752, 5113, 5111, 4752, 5956, 4752, 5192, 4752, 6621, 5747, 6333, 4752, 4752, 5797, 5191, 6271, 6276, 5252, 4961, 4752, 6281, 6287, 6251, 4752, 4752, 4752, 6570, 6286, 6291, 4752, 4752, 5751, 4752, 5833, 5832, 5831, 4752, 5110, 6077, 4752, 4752, 6362, 4752, 4752, 4770, 4752, 4752, 4752, 6717, 5589, 4752, 6202, 5190, 4752, 5110, 6929, 4752, 4752, 6307, 4752, 4752, 6934, 4752, 4752, 4752, 6934, 4759, 6304, 5573, 4961, 5831, 5831, 5831, 4752, 5112, 4752, 4752, 5742, 5580, 4769, 6009, 4752, 4752, 6387, 4752, 5126, 4752, 6331, 4961, 4753, 5534, 5538, 5542, 4752, 6282, 5536, 5540, 4752, 5112, 6427, 5932, 5582, 4771, 4752, 4752, 4752, 6546, 5782, 5243, 4752, 5579, 5536, 5540, 5862, 5538, 5542, 4752, 5114, 5993, 4752, 4961, 4752, 5797, 4768, 5153, 4752, 4752, 5804, 6899, 5787, 6318, 4752, 4752, 5957, 4752, 6213, 6334, 4752, 4752, 4752, 6731, 4752, 6234, 6343, 5539, 6009, 4752, 4752, 5769, 4752, 4752, 5938, 6343, 5539, 4752, 6425, 4961, 4752, 5193, 4752, 4752, 6231, 4752, 5377, 5401, 4752, 6254, 6318, 4752, 4752, 6255, 4752, 6425, 4752, 4752, 5409, 6311, 4961, 4752, 4752, 5823, 4752, 4752, 4752, 6240, 4752, 4752, 4752, 5103, 5454, 6009, 4752, 4752, 5844, 5146, 5452, 6377, 4752, 4752, 5846, 5145, 6860, 6009, 4752, 5190, 6375, 6009, 6422, 6424, 4752, 6868, 4752, 4752, 4752, 5388, 5380, 6254, 6362, 4752, 5124, 5122, 4752, 4752, 6322, 6322, 6322, 6322, 4707, 4707, 4707, 4707, 4708, 4735, 4735, 6381, 4752, 6009, 5377, 6389, 4752, 4752, 6885, 6009, 4752, 4752, 6868, 5377, 6253, 6887, 4752, 4752, 6887, 4752, 4752, 6886, 4752, 6403, 5971, 6255, 4752, 4752, 5853, 4752, 4752, 4752, 6936, 6255, 6886, 5971, 6255, 5191, 4752, 4752, 5752, 4752, 4756, 6589, 6886, 6401, 6885, 6885, 4752, 6886, 5377, 6885, 6394, 6394, 4703, 4703, 4703, 4752, 5185, 4752, 4752, 4757, 5110, 4960, 5744, 6398, 4752, 5187, 6451, 4752, 4752, 6409, 4752, 6411, 5750, 6215, 6417, 5744, 6435, 6217, 4752, 5189, 6447, 6457, 6461, 6462, 6466, 6486, 6469, 6484, 6472, 6478, 6475, 6480, 6498, 6492, 6490, 6496, 6496, 6500, 6506, 6506, 6507, 6504, 6506, 6506, 6506, 6511, 6514, 4752, 4752, 5854, 4752, 4752, 4752, 6619, 4824, 5749, 6417, 6518, 4752, 4752, 4752, 6756, 5187, 4752, 4752, 4752, 6834, 6431, 4752, 4752, 4752, 6836, 5834, 6009, 6522, 6527, 6869, 4752, 6430, 4752, 5188, 4752, 5223, 4752, 4752, 4752, 6253, 4752, 6540, 6551, 6561, 5402, 6575, 4752, 4752, 5945, 4752, 4752, 6755, 6009, 4752, 5188, 5194, 4752, 4752, 4752, 6252, 6255, 4752, 6756, 5962, 4752, 5222, 5392, 5390, 4752, 6849, 6848, 4752, 5231, 6032, 6027, 6850, 4752, 4752, 4752, 6854, 6619, 4824, 5749, 6582, 5518, 4752, 4752, 4752, 6861, 4753, 6634, 4752, 4752, 5945, 5691, 4752, 4752, 6589, 4752, 4753, 4752, 4757, 5561, 4752, 6597, 4752, 6607, 4752, 5235, 4752, 4752, 4752, 5225, 6612, 5541, 4752, 6617, 5229, 6351, 5401, 6625, 4752, 5753, 4752, 6633, 5359, 6640, 6645, 6009, 4944, 5540, 4752, 4752, 5955, 4752, 6649, 6238, 5686, 5686, 5144, 4752, 5744, 4752, 4752, 4752, 4753, 4980, 6619, 4824, 6272, 6654, 5754, 4753, 4752, 6311, 4752, 4752, 6312, 4752, 4752, 5355, 5359, 5550, 6658, 6009, 5357, 6678, 4944, 5541, 4752, 5571, 4752, 6597, 6597, 6597, 6597, 4752, 4752, 4752, 6928, 4752, 4752, 5110, 6426, 4752, 5746, 6423, 4752, 5266, 4752, 4564, 4752, 6662, 5550, 6671, 6670, 6009, 4752, 4752, 5977, 4752, 6664, 6669, 5153, 4752, 5270, 6423, 5505, 4823, 5748, 5401, 5189, 4752, 4752, 4752, 5739, 6322, 5752, 4753, 4752, 4752, 5741, 5390, 4752, 6675, 6690, 6429, 6694, 4752, 4752, 5193, 6234, 4824, 5750, 4752, 5369, 4752, 4955, 4752, 4752, 5385, 5753, 4756, 4752, 6239, 4752, 6240, 4752, 5349, 4758, 4752, 6705, 6429, 4752, 5372, 4758, 5592, 4752, 6705, 6429, 5572, 6238, 6913, 4752, 4752, 6009, 4752, 4752, 5712, 4752, 4752, 6010, 6536, 4714, 6709, 4752, 4752, 6016, 4752, 4756, 4752, 6240, 4752, 5379, 6255, 4752, 5388, 4752, 6257, 6419, 5074, 6720, 4752, 4752, 6042, 4752, 5749, 4752, 4752, 4752, 6929, 4752, 4752, 5971, 6717, 6429, 4752, 4752, 6042, 5417, 6914, 6241, 4752, 5747, 6233, 4752, 4752, 4752, 6926, 4752, 6729, 4752, 4752, 4752, 6933, 6727, 4563, 4752, 5747, 6741, 5389, 5192, 5222, 4752, 5986, 4561, 5748, 4752, 6936, 6934, 4562, 5749, 6934, 5853, 4563, 6935, 4752, 5387, 5748, 4752, 4752, 6735, 6371, 4563, 6936, 6934, 4752, 4752, 6739, 6680, 6421, 4744, 6300, 6231, 5091, 4752, 5389, 5748, 4752, 4752, 6701, 4581, 6039, 6745, 6748, 4620, 6733, 6752, 6760, 6768, 6762, 6764, 6771, 6775, 6779, 6782, 6784, 6788, 6790, 6794, 6797, 6801, 6804, 6809, 6808, 6813, 6815, 6819, 6817, 6823, 6827, 6830, 4752, 5391, 5223, 5222, 6421, 4752, 4752, 4759, 5112, 4760, 4752, 5113, 4752, 5428, 6533, 4752, 4752, 6388, 4752, 4752, 6393, 4752, 4752, 6428, 4752, 4752, 6428, 6260, 6840, 5381, 4752, 6845, 4584, 4752, 6043, 4752, 5495, 4752, 4752, 4753, 6197, 4769, 6859, 6044, 4752, 4752, 6195, 5582, 4752, 6739, 6907, 5191, 4752, 6867, 6915, 4752, 5506, 5505, 4752, 5973, 4752, 4563, 4752, 5386, 4752, 5533, 5537, 5541, 5389, 5388, 4752, 4752, 6232, 4752, 4752, 5747, 6741, 6355, 6235, 4752, 6543, 6238, 5400, 4752, 5188, 4752, 4752, 6891, 5777, 5700, 4752, 5562, 6253, 4752, 4752, 6912, 4752, 4752, 6932, 4752, 4752, 6935, 4752, 4753, 5435, 5440, 5445, 5388, 5388, 4752, 4752, 6242, 6042, 4752, 5739, 6934, 4752, 5571, 4752, 5398, 4752, 4751, 5401, 5401, 5399, 5793, 4753, 6898, 5778, 4563, 4752, 5388, 5749, 6601, 5747, 6906, 5192, 6236, 4752, 6897, 5777, 4563, 4752, 5130, 4752, 4752, 6338, 4752, 4752, 6231, 4752, 4752, 6920, 4752, 4752, 4752, 6261, 4752, 5775, 6919, 4752, 5386, 6258, 4781, 5595, 5193, 6237, 4752, 5571, 4752, 5399, 4760, 4752, 5740, 6935, 4752, 4752, 6107, 4752, 4752, 6924, 4752, 4752, 6281, 5535, 6896, 6942, 4752, 4752, 6311, 4752, 4752, 4752, 6530, 4759, 4752, 5740, 6935, 6951, 4752, 4752, 4752, 6311, 5770, 4977, 6959, 4752, 4752, 6312, 5113, 4752, 6957, 4752, 4752, 6313, 4752, 4752, 4752, 6453, 2, 4, 8, 262144, 0, 0, 0, 0x80000000, 1073741824, 0, 0, 1075838976, 2097152, 2097152, 268435456, 4194432, 4194560, 4196352, 270532608, 2097152, 4194304, 50331648, 0, 0, 0, 4194304, 0, 0, 541065216, 541065216, -2143289344, -2143289344, 4194304, 4194304, 4196352, -2143289344, 4194304, 4194432, 37748736, 541065216, -2143289344, 4194304, 4194304, 4194304, 4194304, 4194304, 4194304, 4198144, 4196352, 8540160, 4194304, 4194304, 4194304, 4196352, 276901888, 4194304, 4194304, 8425488, 4194304, 1, 0, 1024, 137363456, 66, 37748736, 742391808, 239075328, -1405091840, 775946240, 775946240, 775946240, 171966464, 742391808, 742391808, 742391808, 775946240, -1371537408, 775946240, 775946240, -1405091840, -1371537408, 775946240, 775946240, 775946240, 775946240, 4718592, -1371537408, 775946240, -1371537408, 775946240, -1371537408, 171966464, 775946240, 171966464, 171966464, 171966464, 171966464, 239075328, 171966464, 775946240, 239075328, 64, 4718592, 2097216, 4720640, 541589504, 4194368, 541589504, 4194400, 4194368, 541065280, 4194368, 4194368, -2143289280, 4194368, -2143285440, -2143285408, -2143285408, 776470528, -2143285408, -2109730976, -2143285408, -2143285408, -2143285408, -2109730976, -2143285408, 775946336, 775946304, 775946304, 776470528, 775946304, -1908404384, 775946304, -1908404384, 0, 2097152, 4194304, 128, 0, 256, 2048, 0, 0, 16777216, 16777216, 16777216, 16777216, 64, 64, 64, 64, 96, 96, 96, 64, 0, 0, 0, 24, 64, 0, 96, 96, 0, 0, 0, 288, 8388608, 0, 0, 8388608, 4096, 4096, 4096, 32, 96, 96, 96, 96, 262144, 96, 96, 1048576, 128, 0, 1048576, 0, 0, 2048, 2048, 2048, 2048, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 96, 96, 128, 128, 2048, 524288, 268435456, 536870912, 1073741824, 0, 0, 8388608, 4096, 0, 64, 0, 2048, 524288, 536870912, 0, 64, 524288, 64, 96, 64, 524288, 524288, 96, 96, 64, 524288, 96, 64, 80, 528, 524304, 1048592, 2097168, 268435472, 16, 16, 2, 536936448, 16, 262160, 16, 536936448, 16, 17, 17, 20, 16, 48, 16, 16, 20, 48, 64, 128, 1024, 134217728, 0, 0, 24, 560, 48, 2097680, 3145744, 1048592, 1048592, 2097168, 16, 1049104, 16, 16, 20, 560, 2097168, 2097168, 16, 16, 16, 16, 20, 16, 2097552, 3146256, 16, 16, 16, 28, 0, 2, 2098064, 17, 21, 16, 16, 163577856, 17, 528, 528, 16, 528, 2228784, -161430188, -161429680, -161430188, -161430188, -161430188, -161429680, -161430188, -161429676, -160905388, -161429676, -161430188, -161429676, -161429676, -161429676, -161429676, -161429675, -161349072, -161349072, -161429675, -161349072, -161349072, -161349072, -161349072, -161347728, -161347728, -161347728, -161347728, -161298576, -160299088, -161298576, -161298572, -161298572, -161298572, -161298572, -18860267, -160774284, -18729163, -160774288, -160299084, -161298572, -160774284, -161298572, -161298572, 16, 16, 28, 16, 16, 112, 21, 53, 146804757, 146812949, 0, 16, 0, 48, 3146256, 2097680, 1048592, 146862101, 146863389, -161429676, 146863389, 146863421, 146863389, 146863389, 146863389, 146863421, -161429740, -161429676, -160905388, -161298572, 0, 65536, 524288, 1048576, 33554432, 0, 159383552, 0, 0, 0, 1157627904, -1073741824, 0, 0, 0, 300, 142606336, 0, 8192, 0, 0, 0, 384, 0, 243269632, 0, 0, 0, 1862270976, 1, 32768, 131328, 131072, 16777216, 0, 0, 1, 2, 4, 128, 2097152, 0, 1073741825, 0x80000000, 0x80000000, 8, 16777216, 1073774592, 278528, 1226014816, 100665360, 100665360, 100665360, 100665360, 100665360, 100665360, -2046818288, 1091799136, -2044196848, 1091799136, 1091799136, 1091799136, 1091799136, 1091799136, 1091803360, 1091799136, 1091799136, 1158908000, 1158908001, 1192462432, 1192462448, 1192462448, 1192462448, 1192462448, 1200851056, 1091799393, 1200851056, 1200851056, 1192462448, 1870630720, 1870647104, 1870630720, 1870647104, 1870630720, 1870647104, 1870647104, 1870647104, 1870647104, 1870647104, 1870647120, 1870647124, 1870647124, 1870647124, 1870630736, 1870655316, 1870655316, 1870655316, 1870655317, 1870655348, 1870647120, 1870647120, 1870647120, 1879019376, 1879035760, 1870647124, 1879035760, 1879035764, 32768, 131072, 524288, 2097152, 8388608, 16777216, 134217728, 268435456, 1073741824, 0x80000000, 131328, 0, 0, 0, 832, 0, 164096, 0, 0, 0, 520, 4333568, 1048576, 1224736768, 0, 0, 1, 4, 0, 0, 235712, 0, 1090519040, 0, 0, 0, 999, 259072, 1191182336, 0, 0, 9437184, 0, 0, 1048576, 0, 128, 128, 128, 128, 2048, 2048, 231744, 0, 0, 0, 1007, 495424, 7864320, 1862270976, 0, 0, 0, 1024, 0, 0, 0, 63, 520000, 1862270976, 1862270976, 16252928, 0, 0, 16252928, 0, 0, 0, 1536, 0x80000000, 64, 98304, 1048576, 150994944, 0, 64, 256, 3584, 16384, 98304, 393216, 98304, 393216, 524288, 1048576, 2097152, 4194304, 0x80000000, 0, 0, 2097152, 4194304, 251658240, 536870912, 1073741824, 0, 0, 8192, 1073741824, 1073741824, 8388608, 2097152, 16777216, 134217728, 268435456, 2048, 65536, 262144, 524288, 1048576, 2097152, 1048576, 2097152, 4194304, 117440512, 64, 256, 1536, 16384, 65536, 117440512, 134217728, 536870912, 1073741824, 0, 0, 100663296, 0, 0, 0, 4096, 0, 0, 0, 64, 0, 0, 128, -2113929216, 64, 256, 1536, 65536, 262144, 524288, 4194304, 16777216, 100663296, 134217728, 536870912, 1073741824, 1048576, 2097152, 4194304, 16777216, 4194432, 3145728, 524288, 2097152, 134217728, 268435456, 65536, 1048576, 0, 0, 0, 2048, 0, 0, 134217728, 0, 0, 0, 15, 16, 524288, 2097152, 1073741824, 0x80000000, 0x80000000, 0, 1048576, 2097152, 67108864, 1073741824, 0, 0, 0, 0, 2097152, 1073741824, 0x80000000, 0, 0, 0, 768, 0, 2097152, 0x80000000, 0, -872415232, 0, -872415232, 67108864, 134217728, 1073741824, 0, 0x80000000, 0, 0, 0, 8192, 4096, 0, 0, 1536, 524288, 64, 64, 96, 64, 0, 524288, 0, 1073741824, 2621440, 1073741824, 9476, 512, 0, 32, 384, 8192, 0, 0, 1, 8, 512, 512, 9476, 134218240, 1050624, 262144, 512, 50331649, 1275208192, 4194312, 4194312, 4194312, 4194312, 541065224, 4194312, 4194312, 4194344, -869654016, 4203820, -869654016, -869654016, -869654016, -869654016, 1279402504, 1279402504, 1279402504, 1279402504, 2143549415, 2143549415, 2143549415, 2143549415, 2143549415, 2143549423, 2143549415, 2143549423, 2143549423, 2143549423, 2143549423, 16, 32, 256, 1024, 8192, 33554432, 8192, 33554432, 67108864, 134217728, 0, 0, 536870912, 9216, 0, 0, 1792, 0x80000000, 0, 1050624, 0, 0, 1, 14, 16, 32, 1024, 2048, 77824, 524288, 0, 512, 139264, 1275068416, 512, 2760704, -872415232, 0, 0, 1856, 0x80000000, 4203520, 0, 0, 0, 32768, 0, 0, 0, 58624, 520, 0, 0, 0, 131072, 0, 0, 0, 512, 0, 1048576, 0, 1275068416, 0, 0, 0, 65536, 0, 0, 0, 12561, 0, 1007, 1007, 0, 0, 2048, 524288, 0, 536870912, 0, 512, 0, 2048, 1048576, 0, 0, 40, 0, 2621440, 0, 0, 0x80000000, 999, 259072, 4194304, 25165824, 100663296, 402653184, 1, 102, 384, 512, 5120, 5120, 8192, 16384, 229376, 4194304, 4194304, 25165824, 33554432, 67108864, 402653184, 402653184, 536870912, 1073741824, 0, 0, 2048, 3145728, 16777216, 536870912, 110, 110, 0, 0, 1, 30, 32, 0, 40, 0, 524288, 64, 96, 1, 6, 96, 384, 512, 1024, 4096, 8192, 16384, 229376, 67108864, 402653184, 536870912, 0, 2, 16, 104, 0, 104, 104, 8192, 33554432, 134217728, 0, 0, 2048, 100663296, 0, 229376, 25165824, 33554432, 402653184, 536870912, 8192, 33554432, 0, 0, 0, 17408, 0, 524288, 2097152, 0, 0, 2048, 268435456, 536870912, 0, 0, 268435456, 49152, 2, 4, 32, 64, 256, 512, 1024, 8, 8, 0, 0, 1, 64, 128, 3584, 16384, 3145728, 16777216, 67108864, 134217728, 805306368, 1073741824, 0, 0, 4, 64, 256, 1024, 4096, 8192, 65536, 524288, 98304, 131072, 25165824, 268435456, 536870912, 0, 2, 4, 256, 1024, 0, 2048, 0, 98304, 131072, 16777216, 268435456, 0, 0, 0, 262144, 0, 0, 65536, 268435456, 0, 0, 1, 128, 512, 2048, 524288, 2048, 524288, 67108864, 536870912, 0, 262144, 0, 0, 2432, 0, 0, 4096, 8192, 0, 32, 4100, 67108864, 0, 32768, 0, 32768, 0, 0, 134348800, 134348800, 1049088, 1049088, 8192, 1049088, 12845065, 12845065, 12845065, 12845065, 270532608, 0, 1049088, 0, 134348800, 12845065, 12845065, 147193865, 5505537, 5591557, 5587465, 5587457, 5587457, 147202057, 5587457, 5587457, 5591557, 5587457, 13894153, 13894153, 13894153, 13894153, -1881791493, 13894153, 81003049, 13894153, 13894153, -1881791493, -1881791493, -1881791493, -1881791493, 0, 9, 0, 0, 1, 5505024, 142606336, 0, 0, 0, 278528, 0, 82432, 0, 0, 1, 16777216, 0, 0, 0, 139264, 0, 0, 0, 229440, 0, 5, 86528, 9, 4456448, 8388608, 0, 0, 8192, 8392704, 9, 8388608, 0, 0, 256, 1024, 65536, 16777216, 268435456, 0, 0, 41, 75497472, 0, 0, 16384, 262144, 0, 0, 0, 512, 1048576, 0, 0, 262144, 4194304, 8388608, 0, 0, 16384, 4194304, 0x80000000, 0, 0, 81920, 0, 0, 2, 4, 16, 32, 8192, 131072, 262144, 1048576, 4194304, 8388608, 4194304, 8388608, 16777216, 33554432, -1946157056, 0, -1946157056, 0, 0, 0, 524288, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 13, 0, 1, 2, 56, 64, 896, 8192, 131072, 0, 0, 33554432, 1024, 0, 4, 0, 8, 16, 32, 64, 128, 1024, 2048, 16384, 65536, 262144, 524288, 2097152, 384, 512, 8192, 131072, 1048576, 0, 16384, 65536, 0, 65536, 0, 0, 131072, 0, 32, 0, 32768, 134217728, 0, 0, 2, 8, 16, 0, 2, 8, 32, 64, 256, 1024, 98304, 131072, 1048576, 33554432, 134217728, 0x80000000, 8, 32, 384, 8192, 131072, 33554432, 131072, 33554432, 0x80000000, 0, 0, 24576, 0, 0, 0, 50331648, 0, 8396800, 4194304, 134217728, 2048, 134217728, 0, 0, 2, 16384, 32768, 1048576, 2097152, 0, 8396800, 0, 0, 4, 8, 0, 0, 16384, 0, 2, 4, 128, 3584, 16384, 16384, 16384, 16777216, 16384, 229376, 25165824, 33554432, 268435456, 536870912, 524288, 268567040, 16384, -2113929088, 2113544, 68423701, 68423701, 68423701, 68423701, 68489237, 68423701, 68423701, 68423701, 85200917, 68423701, 68489237, 72618005, 68423701, 68423701, -2079059883, 68423701, -2079059883, 68425749, 68423703, 69488664, 85200919, 69488664, 69488664, 69488664, 69488664, 70537244, 70537245, 70537245, 70537245, 70537245, 70537245, 70539293, -2022351809, -2076946339, 70537245, -2076946339, -2076946339, -2022351681, -2022351681, -2022351681, -2022351681, -2022351809, -2022351681, -2022351809, -2022351681, 32768, 65536, 4194304, 16777216, 0x80000000, 0, 0, 0, 8388608, 134217728, 1073741824, 131584, 268435456, 0, 0, 4, 128, 1048576, 67108864, 0, 0, 4, 256, 1024, 98304, 0, 0, 5242880, -2080374784, 268288, 0, 0, 4, 16777216, 0, 0, 23, 0, 0, 0, 867391, 24, 282624, 0, 0, 6, 0, 0, 0, 2097152, 0, 0, 0, 28, 3145728, 0, 0, 32768, 65536, 0, 284672, 0, 0, 0, 1048576, 0, 63, 128, 351232, 7340032, -2030043136, 0, 0, 131072, 268435456, 0, 0, 8, 32, 64, 16, 4096, 262144, 1048576, 1073741824, 0, 0, 0, -2046820352, 0, 20480, 0, 0, 8, 4194304, 0, 0, 15, 16, 32, 3072, 20480, 65536, 262144, 7340032, 50331648, 16, 32, 128, 3072, 20480, 0, 1, 4, 1048576, 4096, 1048576, 512, 0, 0, 0, 150528, 0, 0, 0, 5242880, 0, 7, 0, 14, 32, 1024, 2048, 12288, 1, 14, 32, 128, 1024, 7340032, 50331648, 0x80000000, 0, 0, 2048, 16384, 65536, 7340032, 50331648, 8, 32, 1024, 65536, 262144, 2097152, 1073741824, 0, 1, 6, 8, 32, 128, 1024, 65536, 2097152, 4194304, 50331648, 0x80000000, 0, 1, 2, 4, 2097152, 4194304, 67108864, 134217728, 536870912, 0, 32768, 4194304, 16777216, 0, 1, 2, 4, 50331648, 67108864, 0x80000000, 0, 0, 128, 50331648, 0, 0, 8, 33554432, 4096, 4194304, 268435456, 0, 0, 32768, 131072, 131072, 0, 32768, 32768, 268435968, 268435968, 1073743872, 268435968, 0, 128, 6144, 0, 229376, 128, 268435968, 16777220, 268436032, 256, 256, 256, 256, 257, 256, 256, 536871168, 256, 256, 256, 256, 384, -1879046336, -1879046334, 1073744256, -1879046334, -1879046326, -1879046334, -1879046334, -1879046326, -1879046326, -1845491902, -1878784182, 268444480, 268444480, 268444480, 268444480, 2100318145, 268436288, 268436288, 268436288, 268436288, 268436289, 268436288, 2100318149, 2100318149, 2100318149, 2100318149, 2100326337, 2100318149, 2100318149, 2100318145, 2100318149, 2100318145, 2100318149, 2100326341, 2100318149, 2100326341, 2100326341, 0, 1, 16, 32, 128, 512, 0, 4194304, 1, 1024, 0, 0, 229376, 0, 0, 12, 3145728, 0, 0, 576, 0, 0, 16, 8192, 0, 0, 16, 262144, 0, 384, 0, 0, 21, 266240, 1864, 0, 0, 0, 8388608, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 260, 512, 0, 1, 4036, 19939328, 2080374784, 0, 0, 0, 16777216, 0, 0, 0, 32, 0, 0, 0, 40, 67108864, 0, 19947520, 0, 0, 0, 19947520, 2304, 0, 8, 0, 512, 301989888, 0, 0, 262144, 16777216, 0, 1, 4, 64, 128, 64, 128, 3840, 16384, 19922944, 19922944, 2080374784, 0, 0, 29, 0, 0, 1536, 0x80000000, 0, 0, 32, 1, 8, 0, 33554432, 0, 0, 32768, 196608, 0, 0, 0, 33554432, 0, 0, 32768, 65536, 131072, 0, 0, 524288, 524288, 524288, 524288, 64, 64, 64, 32, 96, 8, 0, 33554432, 262144, 8192, 0, 0, 4194304, 1024, 0, 4096, 0, 1024, 2048, 16384, 3145728, 2048, 524288, 536870912, 1073741824, 8, 0, 0, 512, 131072, 0, 0, 64, 256, 1536, 2048, 33554432, 8192, 0, 0, 32, 64, 256, 32768, 65536, 16777216, 134217728, 536870912, 1073741824, 0, 3145728, 16777216, 536870912, 1073741824, 0, 0, 8192, 8192, 8192, 9216, 33554432, 0, 2097152, 16777216, 1073741824, 0, 0, 32768, 0, 16777216, 0, 16777216, 64, 0, 2, 0, 0, 32768, 16777216, 0, 0, 32, 512, 128, 131072, 0, 134218752, 0, 0, 44, 0, 66048, 0, 0, 0, 67108864, 0, 0, 0, 8192, 0, 8192, 0, 536870912, 0, 0, 0, 12289, 0, 268500992, 4243456, 0, 0, 59, 140224, 5505024, -1887436800, 0, 0, 2, 2, 4096, 4096, 0, 4096, 8192, 67108864, 0, 0, 1, 4032, 0, 4243456, 4096, 1048588, 12289, 1124073472, 1124073472, 1124073472, 1124073472, 1124073472, 1124073488, 1124073472, 1124073472, 1124073474, 1124073472, 1124073472, 1392574464, 1124073472, 12289, 1073754113, 12289, 12289, 1124073472, 12289, 12289, 1098920193, 1098920193, 1124073488, 1124073472, 1258292224, 1124073472, 1124073472, 1124073472, 1124085761, 1258304513, 1124085761, 1124085761, 1124085761, 1124085777, 1132474625, 1098920209, 1132474625, 1132474625, 1132474625, 1132474625, 1400975617, 2132360255, 2132622399, 2132622399, 2132360255, 2132360255, 2132360255, 2132360255, 2132622399, 2132360255, 2132360255, 2132360255, 2140749119, 2132360255, 2140749119, 2140749119, 0, 65536, 268435456, 49152, 184549376, 0, 0, 0, 83886080, 0, 0, 318767104, 0, 0, 32768, 100663296, 402653184, 1610612736, 0, 0, 0, 231488, 0, 12545, 25165824, 0, 0, 49152, 0, 0, 256, 1536, 65536, 0, 0, 58720256, 0, 0, 131072, 32768, 0, 0, 134217728, 0, 12305, 13313, 0, 0, 331776, 83886080, 117440512, 0, 0, 1, 6, 32, 64, 0, 78081, 327155712, 0, 0, 511808, 7864320, 512, 65536, 0, 0, 64, 65536, 1048576, 0, 0, 33554432, 1073741824, 0, 0, 110, 0, 0, 256, 8388608, 0, 0, 524288, 2097152, 0x80000000, 0, 0, 77824, 0, 0, 0, 268435456, 524288, 1048576, 16777216, 100663296, 134217728, 0, 339968, 0, 0, 128, 131072, 1024, 134217728, 0, 268435456, 0, 0, 128, 33554432, 0, 0, 1, 12288, 0, 0, 0, 134217728, 2048, 12288, 65536, 524288, 1048576, 1048576, 33554432, 67108864, 134217728, 805306368, 0, 327680, 0, 0, 256, 65536, 0, 0, 268435456, 1048576, 33554432, 134217728, 805306368, 1, 14, 16, 1024, 4096, 8192, 229376, 65536, 524288, 33554432, 134217728, 536870912, 1073741824, 0, 1, 14, 1024, 2048, 4096, 8192, 131072, 1048576, 8388608, 33554432, 134217728, 0x80000000, 0, 0, 4096, 65536, 524288, 134217728, 16384, 4194304, 0, 0, 999, 29619200, 2113929216, 0, 0, 0, 148480, 1, 12, 1024, 134217728, 0, 128, 134217728, 8, 0, 8, 8, 8, 0, 1, 4, 8, 134217728, 536870912, 0, 0, 1073741824, 32768, 0, 4, 8, 536870912, 0, 0, 1024, 1024, 0, 1024, 2048, 3145728, 0, 8, 32, 512, 4096, 8192, 0, 0, 68157440, 137363456, 0, 66, 66, 524288, 4100, 1024, 0, 0, 605247, 1058013184, 1073741824, 100680704, 25165824, 92274688, 25165824, 25165824, 92274688, 92274688, 25165952, 25165824, 25165824, 26214400, 92274688, 25165824, 92274688, 93323264, 92274688, 92274688, 92274688, 92274688, 92274720, 93323264, 25165890, 100721664, 25165890, 100721928, 100721928, 100787464, 100853000, 100721928, 100721928, 125977600, 125977600, 125977600, 125977600, 125846528, 125846528, 126895104, 125846528, 125846528, 125846528, 125846560, 125977600, 127026176, 125977600, 125977600, 127026176, 127026176, 281843, 1330419, 281843, 1330419, 281843, 281843, 1330419, 1330419, 281843, 281843, 5524723, 5524723, 5524723, 5524723, 93605107, 5524723, 39079155, 72633587, 72633587, 5524723, 92556531, 93605107, 93605107, 127290611, 97799411, 127290611, 131484915, 2097152, 134217728, 0, 0, 1024, 65536, 58368, 0, 0, 0, 301989888, 8, 124160, 189696, 0, 0, 605503, 1066401792, 0, 0, 3, 240, 19456, 262144, 0, 150528, 0, 0, 0, 536870912, 0, 1073741824, 0, 57344, 0, 0, 0, 1073741824, 0, 0, 0, 1, 2, 112, 128, 3072, 16384, 262144, 2048, 16384, 262144, 0, 0, 2097152, 16777216, 0, 0, 0, 1, 2, 48, 64, 0, 1, 2, 16, 32, 64, 384, 8192, 131072, 1048576, 32, 4096, 8192, 131072, 0, 0, 32768, 0, 256, 0, 256, 0, 65536, 1024, 2048, 262144, 0, 0, 32768, 256, 0, 0, 1024, 2097152, 0, 0, 0, 16384, 0, 0, 0, 4, 0, 0, 0, 5, 64, 128, 262144, 0, 0, 2097152, 268435456, 0, 0, 64, 128, 0, 0, 1536, 1792, 1, 2, 16, 64, 0, 0
 
21560
];
 
21561
 
 
21562
XQueryParser.TOKEN =
 
21563
[
 
21564
  "(0)",
 
21565
  "PragmaContents",
 
21566
  "DirCommentContents",
 
21567
  "DirPIContents",
 
21568
  "CDataSection",
 
21569
  "Wildcard",
 
21570
  "EQName",
 
21571
  "URILiteral",
 
21572
  "IntegerLiteral",
 
21573
  "DecimalLiteral",
 
21574
  "DoubleLiteral",
 
21575
  "StringLiteral",
 
21576
  "PredefinedEntityRef",
 
21577
  "'\"\"'",
 
21578
  "EscapeApos",
 
21579
  "ElementContentChar",
 
21580
  "QuotAttrContentChar",
 
21581
  "AposAttrContentChar",
 
21582
  "PITarget",
 
21583
  "NCName",
 
21584
  "QName",
 
21585
  "S",
 
21586
  "S",
 
21587
  "CharRef",
 
21588
  "CommentContents",
 
21589
  "EOF",
 
21590
  "'!'",
 
21591
  "'!='",
 
21592
  "'\"'",
 
21593
  "'#'",
 
21594
  "'#)'",
 
21595
  "'$'",
 
21596
  "'%'",
 
21597
  "''''",
 
21598
  "'('",
 
21599
  "'(#'",
 
21600
  "'(:'",
 
21601
  "')'",
 
21602
  "'*'",
 
21603
  "'*'",
 
21604
  "'+'",
 
21605
  "','",
 
21606
  "'-'",
 
21607
  "'-->'",
 
21608
  "'.'",
 
21609
  "'..'",
 
21610
  "'/'",
 
21611
  "'//'",
 
21612
  "'/>'",
 
21613
  "':'",
 
21614
  "':)'",
 
21615
  "'::'",
 
21616
  "':='",
 
21617
  "';'",
 
21618
  "'<'",
 
21619
  "'<!--'",
 
21620
  "'</'",
 
21621
  "'<<'",
 
21622
  "'<='",
 
21623
  "'<?'",
 
21624
  "'='",
 
21625
  "'>'",
 
21626
  "'>='",
 
21627
  "'>>'",
 
21628
  "'?'",
 
21629
  "'?>'",
 
21630
  "'@'",
 
21631
  "'NaN'",
 
21632
  "'['",
 
21633
  "']'",
 
21634
  "'after'",
 
21635
  "'all'",
 
21636
  "'allowing'",
 
21637
  "'ancestor'",
 
21638
  "'ancestor-or-self'",
 
21639
  "'and'",
 
21640
  "'any'",
 
21641
  "'append'",
 
21642
  "'array'",
 
21643
  "'as'",
 
21644
  "'ascending'",
 
21645
  "'at'",
 
21646
  "'attribute'",
 
21647
  "'base-uri'",
 
21648
  "'before'",
 
21649
  "'boundary-space'",
 
21650
  "'break'",
 
21651
  "'by'",
 
21652
  "'case'",
 
21653
  "'cast'",
 
21654
  "'castable'",
 
21655
  "'catch'",
 
21656
  "'check'",
 
21657
  "'child'",
 
21658
  "'collation'",
 
21659
  "'collection'",
 
21660
  "'comment'",
 
21661
  "'constraint'",
 
21662
  "'construction'",
 
21663
  "'contains'",
 
21664
  "'content'",
 
21665
  "'context'",
 
21666
  "'continue'",
 
21667
  "'copy'",
 
21668
  "'copy-namespaces'",
 
21669
  "'count'",
 
21670
  "'decimal-format'",
 
21671
  "'decimal-separator'",
 
21672
  "'declare'",
 
21673
  "'default'",
 
21674
  "'delete'",
 
21675
  "'descendant'",
 
21676
  "'descendant-or-self'",
 
21677
  "'descending'",
 
21678
  "'diacritics'",
 
21679
  "'different'",
 
21680
  "'digit'",
 
21681
  "'distance'",
 
21682
  "'div'",
 
21683
  "'document'",
 
21684
  "'document-node'",
 
21685
  "'element'",
 
21686
  "'else'",
 
21687
  "'empty'",
 
21688
  "'empty-sequence'",
 
21689
  "'encoding'",
 
21690
  "'end'",
 
21691
  "'entire'",
 
21692
  "'eq'",
 
21693
  "'every'",
 
21694
  "'exactly'",
 
21695
  "'except'",
 
21696
  "'exit'",
 
21697
  "'external'",
 
21698
  "'first'",
 
21699
  "'following'",
 
21700
  "'following-sibling'",
 
21701
  "'for'",
 
21702
  "'foreach'",
 
21703
  "'foreign'",
 
21704
  "'from'",
 
21705
  "'ft-option'",
 
21706
  "'ftand'",
 
21707
  "'ftnot'",
 
21708
  "'ftor'",
 
21709
  "'function'",
 
21710
  "'ge'",
 
21711
  "'greatest'",
 
21712
  "'group'",
 
21713
  "'grouping-separator'",
 
21714
  "'gt'",
 
21715
  "'idiv'",
 
21716
  "'if'",
 
21717
  "'import'",
 
21718
  "'in'",
 
21719
  "'index'",
 
21720
  "'infinity'",
 
21721
  "'inherit'",
 
21722
  "'insensitive'",
 
21723
  "'insert'",
 
21724
  "'instance'",
 
21725
  "'integrity'",
 
21726
  "'intersect'",
 
21727
  "'into'",
 
21728
  "'is'",
 
21729
  "'item'",
 
21730
  "'json'",
 
21731
  "'json-item'",
 
21732
  "'key'",
 
21733
  "'language'",
 
21734
  "'last'",
 
21735
  "'lax'",
 
21736
  "'le'",
 
21737
  "'least'",
 
21738
  "'let'",
 
21739
  "'levels'",
 
21740
  "'loop'",
 
21741
  "'lowercase'",
 
21742
  "'lt'",
 
21743
  "'minus-sign'",
 
21744
  "'mod'",
 
21745
  "'modify'",
 
21746
  "'module'",
 
21747
  "'most'",
 
21748
  "'namespace'",
 
21749
  "'namespace-node'",
 
21750
  "'ne'",
 
21751
  "'next'",
 
21752
  "'no'",
 
21753
  "'no-inherit'",
 
21754
  "'no-preserve'",
 
21755
  "'node'",
 
21756
  "'nodes'",
 
21757
  "'not'",
 
21758
  "'object'",
 
21759
  "'occurs'",
 
21760
  "'of'",
 
21761
  "'on'",
 
21762
  "'only'",
 
21763
  "'option'",
 
21764
  "'or'",
 
21765
  "'order'",
 
21766
  "'ordered'",
 
21767
  "'ordering'",
 
21768
  "'paragraph'",
 
21769
  "'paragraphs'",
 
21770
  "'parent'",
 
21771
  "'pattern-separator'",
 
21772
  "'per-mille'",
 
21773
  "'percent'",
 
21774
  "'phrase'",
 
21775
  "'position'",
 
21776
  "'preceding'",
 
21777
  "'preceding-sibling'",
 
21778
  "'preserve'",
 
21779
  "'previous'",
 
21780
  "'processing-instruction'",
 
21781
  "'relationship'",
 
21782
  "'rename'",
 
21783
  "'replace'",
 
21784
  "'return'",
 
21785
  "'returning'",
 
21786
  "'revalidation'",
 
21787
  "'same'",
 
21788
  "'satisfies'",
 
21789
  "'schema'",
 
21790
  "'schema-attribute'",
 
21791
  "'schema-element'",
 
21792
  "'score'",
 
21793
  "'self'",
 
21794
  "'sensitive'",
 
21795
  "'sentence'",
 
21796
  "'sentences'",
 
21797
  "'skip'",
 
21798
  "'sliding'",
 
21799
  "'some'",
 
21800
  "'stable'",
 
21801
  "'start'",
 
21802
  "'stemming'",
 
21803
  "'stop'",
 
21804
  "'strict'",
 
21805
  "'strip'",
 
21806
  "'structured-item'",
 
21807
  "'switch'",
 
21808
  "'text'",
 
21809
  "'then'",
 
21810
  "'thesaurus'",
 
21811
  "'times'",
 
21812
  "'to'",
 
21813
  "'treat'",
 
21814
  "'try'",
 
21815
  "'tumbling'",
 
21816
  "'type'",
 
21817
  "'typeswitch'",
 
21818
  "'union'",
 
21819
  "'unique'",
 
21820
  "'unordered'",
 
21821
  "'updating'",
 
21822
  "'uppercase'",
 
21823
  "'using'",
 
21824
  "'validate'",
 
21825
  "'value'",
 
21826
  "'variable'",
 
21827
  "'version'",
 
21828
  "'weight'",
 
21829
  "'when'",
 
21830
  "'where'",
 
21831
  "'while'",
 
21832
  "'wildcards'",
 
21833
  "'window'",
 
21834
  "'with'",
 
21835
  "'without'",
 
21836
  "'word'",
 
21837
  "'words'",
 
21838
  "'xquery'",
 
21839
  "'zero-digit'",
 
21840
  "'{'",
 
21841
  "'{{'",
 
21842
  "'{|'",
 
21843
  "'|'",
 
21844
  "'||'",
 
21845
  "'|}'",
 
21846
  "'}'",
 
21847
  "'}}'"
 
21848
];
 
21849
                                                            });
 
21850
 
 
21851
define('ace/mode/xquery/visitors/SemanticHighlighter', ['require', 'exports', 'module' ], function(require, exports, module) {
 
21852
 
 
21853
  var SemanticHighlighter = exports.SemanticHighlighter = function(ast) {
 
21854
    
 
21855
    this.tokens = {};
 
21856
 
 
21857
    this.getTokens = function() {
 
21858
      this.visit(ast);
 
21859
      return this.tokens;
 
21860
    };
 
21861
 
 
21862
   this.EQName = this.NCName = function(node)
 
21863
   {
 
21864
     var row = node.pos.sl;
 
21865
     this.tokens[row] = this.tokens[row] === undefined ? [] : this.tokens[row];
 
21866
     node.pos.type = "support.function";
 
21867
     this.tokens[row].push(node.pos);
 
21868
     return true;
 
21869
   };
 
21870
 
 
21871
    this.visit = function(node) {
 
21872
      var name = node.name;
 
21873
      var skip = false;
 
21874
 
 
21875
      if (typeof this[name] === "function") skip = this[name](node) === true ? true : false;
 
21876
 
 
21877
      if (!skip) {
 
21878
        this.visitChildren(node);
 
21879
      }
 
21880
    };
 
21881
 
 
21882
    this.visitChildren = function(node, handler) {
 
21883
      for (var i = 0; i < node.children.length; i++) {
 
21884
        var child = node.children[i];
 
21885
        if (handler !== undefined && typeof handler[child.name] === "function") {
 
21886
          handler[child.name](child);
 
21887
        }
 
21888
        else {
 
21889
          this.visit(child);
 
21890
        }
 
21891
      }
 
21892
    };
 
21893
    
 
21894
  };
 
21895
  
 
21896
});