rip-lang 3.15.4 → 3.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/bin/rip +167 -12
- package/docs/AGENTS.md +1 -1
- package/docs/RIP-APP.md +808 -0
- package/docs/RIP-DUCKDB.md +477 -0
- package/docs/RIP-INTRO.md +396 -0
- package/docs/RIP-LANG.md +59 -5
- package/docs/RIP-SCHEMA.md +191 -8
- package/docs/RIP-TYPES.md +74 -103
- package/docs/demo/README.md +4 -3
- package/docs/dist/rip.js +3627 -1470
- package/docs/dist/rip.min.js +671 -244
- package/docs/dist/rip.min.js.br +0 -0
- package/docs/example/index.json +7 -7
- package/docs/example/index.json.br +0 -0
- package/docs/extensions/duckdb/manifest.json +1 -1
- package/docs/extensions/duckdb/v1.5.2/linux_amd64/ripdb.duckdb_extension.gz +0 -0
- package/docs/extensions/duckdb/v1.5.2/osx_arm64/ripdb.duckdb_extension.gz +0 -0
- package/docs/extensions/vscode/print/index.html +2 -1
- package/docs/extensions/vscode/print/print-1.0.13.vsix +0 -0
- package/docs/extensions/vscode/print/print-1.0.14.vsix +0 -0
- package/docs/extensions/vscode/print/print-latest.vsix +0 -0
- package/docs/extensions/vscode/rip/rip-0.5.15.vsix +0 -0
- package/docs/extensions/vscode/rip/rip-latest.vsix +0 -0
- package/docs/ui/bundle.json +61 -0
- package/docs/ui/bundle.json.br +0 -0
- package/docs/ui/hljs-rip.js +0 -7
- package/docs/ui/index.css +66 -23
- package/docs/ui/index.html +6 -6
- package/package.json +9 -3
- package/rip-loader.js +64 -2
- package/src/AGENTS.md +63 -36
- package/src/browser.js +96 -14
- package/src/compiler.js +960 -143
- package/src/components.js +794 -88
- package/src/{types-emit.js → dts.js} +181 -71
- package/src/grammar/README.md +1 -1
- package/src/grammar/grammar.rip +111 -97
- package/src/lexer.js +132 -18
- package/src/parser.js +203 -205
- package/src/repl.js +74 -6
- package/src/schema/runtime-orm.js +168 -4
- package/src/schema/runtime-validate.js +146 -2
- package/src/schema/runtime.generated.js +314 -6
- package/src/schema/schema.js +5 -5
- package/src/sourcemaps.js +277 -1
- package/src/stdlib.js +253 -0
- package/src/typecheck.js +2023 -106
- package/src/types.js +127 -7
- package/docs/ui/accordion.rip +0 -103
- package/docs/ui/alert-dialog.rip +0 -53
- package/docs/ui/autocomplete.rip +0 -115
- package/docs/ui/avatar.rip +0 -37
- package/docs/ui/badge.rip +0 -15
- package/docs/ui/breadcrumb.rip +0 -47
- package/docs/ui/button-group.rip +0 -26
- package/docs/ui/button.rip +0 -23
- package/docs/ui/card.rip +0 -25
- package/docs/ui/carousel.rip +0 -110
- package/docs/ui/checkbox-group.rip +0 -61
- package/docs/ui/checkbox.rip +0 -33
- package/docs/ui/collapsible.rip +0 -50
- package/docs/ui/combobox.rip +0 -130
- package/docs/ui/context-menu.rip +0 -88
- package/docs/ui/date-picker.rip +0 -206
- package/docs/ui/dialog.rip +0 -60
- package/docs/ui/drawer.rip +0 -58
- package/docs/ui/editable-value.rip +0 -82
- package/docs/ui/field.rip +0 -53
- package/docs/ui/fieldset.rip +0 -22
- package/docs/ui/form.rip +0 -39
- package/docs/ui/grid.rip +0 -901
- package/docs/ui/input-group.rip +0 -28
- package/docs/ui/input.rip +0 -36
- package/docs/ui/label.rip +0 -16
- package/docs/ui/menu.rip +0 -134
- package/docs/ui/menubar.rip +0 -151
- package/docs/ui/meter.rip +0 -36
- package/docs/ui/multi-select.rip +0 -203
- package/docs/ui/native-select.rip +0 -33
- package/docs/ui/nav-menu.rip +0 -126
- package/docs/ui/number-field.rip +0 -162
- package/docs/ui/otp-field.rip +0 -89
- package/docs/ui/pagination.rip +0 -123
- package/docs/ui/popover.rip +0 -93
- package/docs/ui/preview-card.rip +0 -75
- package/docs/ui/progress.rip +0 -25
- package/docs/ui/radio-group.rip +0 -57
- package/docs/ui/resizable.rip +0 -123
- package/docs/ui/scroll-area.rip +0 -145
- package/docs/ui/select.rip +0 -151
- package/docs/ui/separator.rip +0 -17
- package/docs/ui/skeleton.rip +0 -22
- package/docs/ui/slider.rip +0 -165
- package/docs/ui/spinner.rip +0 -17
- package/docs/ui/table.rip +0 -27
- package/docs/ui/tabs.rip +0 -113
- package/docs/ui/textarea.rip +0 -48
- package/docs/ui/toast.rip +0 -87
- package/docs/ui/toggle-group.rip +0 -71
- package/docs/ui/toggle.rip +0 -24
- package/docs/ui/toolbar.rip +0 -38
- package/docs/ui/tooltip.rip +0 -85
- package/src/app.rip +0 -1571
- package/src/sourcemap-merge.js +0 -287
- /package/docs/demo/{components → routes}/_layout.rip +0 -0
- /package/docs/demo/{components → routes}/about.rip +0 -0
- /package/docs/demo/{components → routes}/card.rip +0 -0
- /package/docs/demo/{components → routes}/counter.rip +0 -0
- /package/docs/demo/{components → routes}/index.rip +0 -0
- /package/docs/demo/{components → routes}/todos.rip +0 -0
- /package/src/schema/{dts-emit.js → dts.js} +0 -0
package/docs/dist/rip.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var{defineProperty:
|
|
1
|
+
(()=>{var{defineProperty:K2,getOwnPropertyNames:F4,getOwnPropertyDescriptor:M4}=Object,z4=Object.prototype.hasOwnProperty;function W4(f){return this[f]}var O4=(f)=>{var _=(x2??=new WeakMap).get(f),i;if(_)return _;if(_=K2({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function"){for(var n of F4(f))if(!z4.call(_,n))K2(_,n,{get:W4.bind(f,n),enumerable:!(i=M4(f,n))||i.enumerable})}return x2.set(f,_),_},x2;var H4=(f)=>f;function K4(f,_){this[f]=H4.bind(null,_)}var d2=(f,_)=>{for(var i in _)K2(f,i,{get:_[i],enumerable:!0,configurable:!0,set:K4.bind(_,i)})};var Y0={};d2(Y0,{rip:()=>E3,processRipScripts:()=>S3,parser:()=>z1,importRip:()=>I1,getStdlibCode:()=>L1,getReactiveRuntime:()=>k1,getComponentRuntime:()=>p1,formatSExpr:()=>K1,formatErrorHTML:()=>B2,formatError:()=>b1,compileToJS:()=>Z1,compile:()=>$2,VERSION:()=>G3,RipError:()=>$1,Lexer:()=>Y1,Compiler:()=>d1,CodeEmitter:()=>D1,BUILD_DATE:()=>X3});var k2=`
|
|
2
2
|
// ---- Rip Schema Runtime ----------------------------------------------------
|
|
3
3
|
// Four layers, lazy compilation:
|
|
4
4
|
// 1 (descriptor) object passed to __schema({...}). Raw metadata.
|
|
@@ -28,7 +28,7 @@ var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = (function(
|
|
|
28
28
|
return globalThis.__ripSchema;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
`,
|
|
31
|
+
`,p2=`
|
|
32
32
|
// __schemaSetAdapter is server/migration-only. In validate or browser
|
|
33
33
|
// modes it doesn't exist; export an undefined slot so destructure works.
|
|
34
34
|
const __schemaSetAdapterExport = typeof __schemaSetAdapter !== 'undefined'
|
|
@@ -44,7 +44,7 @@ var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = (function(
|
|
|
44
44
|
})();
|
|
45
45
|
|
|
46
46
|
// === End Schema Runtime ===
|
|
47
|
-
`,
|
|
47
|
+
`,Q2=`class SchemaError extends Error {
|
|
48
48
|
constructor(issues, schemaName, schemaKind) {
|
|
49
49
|
super(__schemaFormatIssues(issues, schemaName));
|
|
50
50
|
this.name = 'SchemaError';
|
|
@@ -64,9 +64,21 @@ const __SCHEMA_RESERVED_STATIC = new Set([
|
|
|
64
64
|
'parse','safe','ok','find','findMany','where','all','first','count','create','toSQL',
|
|
65
65
|
]);
|
|
66
66
|
const __SCHEMA_RESERVED_INSTANCE = new Set([
|
|
67
|
-
'save','destroy','reload','ok','errors','toJSON',
|
|
67
|
+
'save','destroy','reload','ok','errors','toJSON','savedChanges','markDirty',
|
|
68
|
+
'_saving',
|
|
69
|
+
]);
|
|
70
|
+
// Implicit columns owned by directive-driven runtime behavior. Declaring
|
|
71
|
+
// them as user fields would either shadow the runtime API (savedChanges /
|
|
72
|
+
// markDirty in INSTANCE) or produce duplicate SET writes in the same
|
|
73
|
+
// UPDATE statement when @timestamps / @softDelete bump them.
|
|
74
|
+
const __SCHEMA_RESERVED_IMPLICIT = new Set([
|
|
75
|
+
'createdAt','updatedAt','deletedAt',
|
|
76
|
+
]);
|
|
77
|
+
const __SCHEMA_RESERVED = new Set([
|
|
78
|
+
...__SCHEMA_RESERVED_STATIC,
|
|
79
|
+
...__SCHEMA_RESERVED_INSTANCE,
|
|
80
|
+
...__SCHEMA_RESERVED_IMPLICIT,
|
|
68
81
|
]);
|
|
69
|
-
const __SCHEMA_RESERVED = new Set([...__SCHEMA_RESERVED_STATIC, ...__SCHEMA_RESERVED_INSTANCE]);
|
|
70
82
|
|
|
71
83
|
const __schemaTypes = {
|
|
72
84
|
string: v => typeof v === 'string',
|
|
@@ -128,6 +140,63 @@ function __schemaSnake(s) { return s.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLo
|
|
|
128
140
|
|
|
129
141
|
function __schemaCamel(col) { return String(col).replace(/_([a-z])/g, (_, c) => c.toUpperCase()); }
|
|
130
142
|
|
|
143
|
+
// Reject acronym-style camelCase like \`mdmID\`, \`userOrgID\`, or
|
|
144
|
+
// \`XMLHttpRequest\`. Two consecutive uppercase letters break the
|
|
145
|
+
// snake_case <-> camelCase bijection: \`mdmID\` would round-trip via
|
|
146
|
+
// __schemaSnake to \`mdm_i_d\` and back via __schemaCamel to \`mdmID\`,
|
|
147
|
+
// while a more natural snake_case spelling \`mdm_id\` round-trips to
|
|
148
|
+
// \`mdmId\` (different identifier). Forcing canonical camelCase at
|
|
149
|
+
// schema-definition time eliminates the entire class of edge case
|
|
150
|
+
// in field-name resolution (markDirty, savedChanges keys, snake
|
|
151
|
+
// aliases on hydrate). Same convention as Active Record / Java
|
|
152
|
+
// Beans / Swift's "Acronyms in API names" guidance.
|
|
153
|
+
//
|
|
154
|
+
// Accepts: lowercase-first, alphanumeric body, no two consecutive
|
|
155
|
+
// uppercase letters anywhere.
|
|
156
|
+
// ok: name, mrn, firstName, mdmId, userOrgId, line2, a1b2
|
|
157
|
+
// bad: ID, mdmID, userID, XMLHttpRequest, _foo, 1foo, foo_bar
|
|
158
|
+
function __schemaValidateCanonicalName(name) {
|
|
159
|
+
if (typeof name !== 'string' || !/^[a-z][a-zA-Z0-9]*$/.test(name)) return false;
|
|
160
|
+
if (/[A-Z]{2,}/.test(name)) return false;
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Snapshot the current values of every persisted column on an instance:
|
|
165
|
+
// the primary key, declared fields (from \`norm.fields\`), and \`belongsTo\`
|
|
166
|
+
// FK columns (from \`norm.relations\`). Used by \`_hydrate\` and the INSERT
|
|
167
|
+
// / UPDATE branches of \`__schemaSave\` (defined in the orm fragment,
|
|
168
|
+
// which loads after this one) so that a later .save() can compare and
|
|
169
|
+
// emit a SET only for columns the caller actually mutated. Lives in the
|
|
170
|
+
// validate fragment because \`_hydrate\` owns it; the orm fragment is
|
|
171
|
+
// the consumer.
|
|
172
|
+
//
|
|
173
|
+
// FK columns are keyed by their camelCase property name on the instance
|
|
174
|
+
// (e.g. \`userId\`) — same convention the dirty Set, savedChanges Map,
|
|
175
|
+
// and markDirty() resolver use.
|
|
176
|
+
//
|
|
177
|
+
// The primary key is captured so __schemaSave's UPDATE WHERE clause can
|
|
178
|
+
// target the originally-loaded row even if \`inst[pk]\` is reassigned in
|
|
179
|
+
// memory. PK never appears in the UPDATE SET; it's identity, not data.
|
|
180
|
+
function __schemaSnapshot(norm, inst) {
|
|
181
|
+
const snap = Object.create(null);
|
|
182
|
+
snap[norm.primaryKey] = inst[norm.primaryKey];
|
|
183
|
+
for (const [n] of norm.fields) snap[n] = inst[n];
|
|
184
|
+
for (const [, rel] of norm.relations) {
|
|
185
|
+
if (rel.kind !== 'belongsTo') continue;
|
|
186
|
+
const fkCamel = __schemaCamel(rel.foreignKey);
|
|
187
|
+
snap[fkCamel] = inst[fkCamel];
|
|
188
|
+
}
|
|
189
|
+
return snap;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// SameValue-Zero: like ===, except NaN equals NaN. Used by the dirty
|
|
193
|
+
// check so a persisted NaN doesn't trigger a wasted UPDATE on every
|
|
194
|
+
// save. Distinguishes from Object.is by treating +0/-0 as equal, which
|
|
195
|
+
// is the right semantics for SQL: the DB doesn't distinguish them.
|
|
196
|
+
function __schemaSameValue(a, b) {
|
|
197
|
+
return a === b || (a !== a && b !== b);
|
|
198
|
+
}
|
|
199
|
+
|
|
131
200
|
const __SchemaRegistry = {
|
|
132
201
|
_entries: new Map(),
|
|
133
202
|
register(def) {
|
|
@@ -192,9 +261,24 @@ class __SchemaDef {
|
|
|
192
261
|
if (this.kind === 'model' && __SCHEMA_RESERVED.has(n)) collision(n, 'reserved ORM name');
|
|
193
262
|
};
|
|
194
263
|
|
|
264
|
+
const requireCanonicalName = (n, kindLabel) => {
|
|
265
|
+
if (!__schemaValidateCanonicalName(n)) {
|
|
266
|
+
throw new SchemaError(
|
|
267
|
+
[{
|
|
268
|
+
field: n,
|
|
269
|
+
error: 'invalid-name',
|
|
270
|
+
message: kindLabel + " name '" + n + "' is not canonical camelCase. " +
|
|
271
|
+
"Use a lowercase-first, alphanumeric identifier with no consecutive uppercase letters " +
|
|
272
|
+
"(e.g. 'mdmId' not 'mdmID'). This keeps snake_case <-> camelCase mapping unambiguous.",
|
|
273
|
+
}],
|
|
274
|
+
this.name, this.kind);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
|
|
195
278
|
for (const e of this._desc.entries) {
|
|
196
279
|
switch (e.tag) {
|
|
197
280
|
case 'field':
|
|
281
|
+
requireCanonicalName(e.name, 'field');
|
|
198
282
|
noteCollision(e.name);
|
|
199
283
|
fields.set(e.name, {
|
|
200
284
|
name: e.name,
|
|
@@ -361,6 +445,20 @@ class __SchemaDef {
|
|
|
361
445
|
Object.defineProperty(this, '_dirty', { value: new Set(), enumerable: false, writable: false, configurable: true });
|
|
362
446
|
Object.defineProperty(this, '_persisted', { value: persisted === true, enumerable: false, writable: true, configurable: true });
|
|
363
447
|
Object.defineProperty(this, '_snapshot', { value: null, enumerable: false, writable: true, configurable: true });
|
|
448
|
+
// Re-entry guard for save(): set true while a save is in flight,
|
|
449
|
+
// cleared in __schemaSave's finally. Throws on same-instance
|
|
450
|
+
// re-entry (typically from a hook accidentally calling save()
|
|
451
|
+
// on its own instance) instead of looping forever or racing the
|
|
452
|
+
// snapshot / savedChanges machinery.
|
|
453
|
+
Object.defineProperty(this, '_saving', { value: false, enumerable: false, writable: true, configurable: true });
|
|
454
|
+
// Mirrors Active Record's \`saved_changes\`: populated by save()
|
|
455
|
+
// with the field-level diff of the just-completed write. INSERT
|
|
456
|
+
// produces \`[null, newValue]\` per written field; UPDATE produces
|
|
457
|
+
// \`[oldValue, newValue]\` per changed field. An empty Map after a
|
|
458
|
+
// save() call means nothing was actually written. Reset to a
|
|
459
|
+
// fresh Map at the start of every save() so it always reflects
|
|
460
|
+
// the most recent save, never accumulates across calls.
|
|
461
|
+
Object.defineProperty(this, 'savedChanges', { value: new Map(), enumerable: false, writable: true, configurable: true });
|
|
364
462
|
if (data && typeof data === 'object') {
|
|
365
463
|
for (const k of fieldNames) {
|
|
366
464
|
if (k in data && data[k] !== undefined) this[k] = data[k];
|
|
@@ -407,6 +505,43 @@ class __SchemaDef {
|
|
|
407
505
|
enumerable: false, configurable: true, writable: true,
|
|
408
506
|
value: function() { return def._validateFields(this, true); },
|
|
409
507
|
});
|
|
508
|
+
// Public API for forcing a column into the next UPDATE when value
|
|
509
|
+
// identity can't detect the change — typically after an in-place
|
|
510
|
+
// mutation of an object-valued field (json, Date) where the JS
|
|
511
|
+
// reference is unchanged. Validates the field name against the
|
|
512
|
+
// schema so typos throw instead of silently no-op'ing, and is
|
|
513
|
+
// restricted to persisted instances since INSERT writes every
|
|
514
|
+
// non-null field anyway (silently doing nothing is a footgun).
|
|
515
|
+
Object.defineProperty(klass.prototype, 'markDirty', {
|
|
516
|
+
enumerable: false, configurable: true, writable: true,
|
|
517
|
+
value: function(name) {
|
|
518
|
+
if (!this._persisted) {
|
|
519
|
+
throw new Error(
|
|
520
|
+
"schema: markDirty('" + name + "') is only valid on persisted instances; INSERT writes every set field"
|
|
521
|
+
);
|
|
522
|
+
}
|
|
523
|
+
const n = __schemaCamel(name);
|
|
524
|
+
const norm = def._normalize();
|
|
525
|
+
// Accept declared fields and \`belongsTo\` FK column names
|
|
526
|
+
// (camelCase or snake_case input both resolve via __schemaCamel).
|
|
527
|
+
let valid = norm.fields.has(n);
|
|
528
|
+
if (!valid) {
|
|
529
|
+
for (const [, rel] of norm.relations) {
|
|
530
|
+
if (rel.kind === 'belongsTo' && __schemaCamel(rel.foreignKey) === n) {
|
|
531
|
+
valid = true;
|
|
532
|
+
break;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
if (!valid) {
|
|
537
|
+
throw new Error(
|
|
538
|
+
"schema: markDirty('" + name + "') — '" + n + "' is not a declared field or belongs_to FK on " + (def.name || 'anon')
|
|
539
|
+
);
|
|
540
|
+
}
|
|
541
|
+
this._dirty.add(n);
|
|
542
|
+
return this;
|
|
543
|
+
},
|
|
544
|
+
});
|
|
410
545
|
// toJSON mirrors the instance's own enumerable properties, which by
|
|
411
546
|
// construction are: the primary key, declared fields, @timestamps
|
|
412
547
|
// columns, @softDelete timestamp, @belongs_to FK columns, and any
|
|
@@ -466,6 +601,15 @@ class __SchemaDef {
|
|
|
466
601
|
// Eager-derived fields re-run on hydrate — they're not persisted
|
|
467
602
|
// and must be re-computed from the declared fields now present.
|
|
468
603
|
this._applyEagerDerived(inst);
|
|
604
|
+
// Capture the as-loaded values so \`save()\` can emit a column-targeted
|
|
605
|
+
// UPDATE that only touches fields the caller actually mutated. Two
|
|
606
|
+
// reasons this matters: (a) avoids a pointless DB round-trip when the
|
|
607
|
+
// caller didn't change anything, and (b) sidesteps a hard DuckDB FK
|
|
608
|
+
// limitation — UPDATEs that touch indexed columns (PK / UNIQUE) on a
|
|
609
|
+
// row referenced by another table's FK are rejected even when the
|
|
610
|
+
// value isn't really changing. Writing only dirty columns keeps no-op
|
|
611
|
+
// saves out of the index path entirely.
|
|
612
|
+
inst._snapshot = __schemaSnapshot(this._normalize(), inst);
|
|
469
613
|
return inst;
|
|
470
614
|
}
|
|
471
615
|
|
|
@@ -845,7 +989,7 @@ function __schema(descriptor) {
|
|
|
845
989
|
if (def.name) __SchemaRegistry.register(def);
|
|
846
990
|
return def;
|
|
847
991
|
}
|
|
848
|
-
`;var
|
|
992
|
+
`;var e2=`// Browser stubs — throwing replacements for every ORM / DDL helper that
|
|
849
993
|
// the validate fragment references but doesn't implement. Loaded ONLY
|
|
850
994
|
// in browser mode.
|
|
851
995
|
//
|
|
@@ -881,32 +1025,34 @@ function __schemaDestroy() { throw new Error("schema instance.destroy() is no
|
|
|
881
1025
|
function __schemaTableName(m) { return null; } // returned only for :model normalize; never used downstream in browser
|
|
882
1026
|
function __schemaPluralize(w) { return w; } // identity — relations work for type-resolution but never query
|
|
883
1027
|
function __schemaFkName(m) { return ''; } // ditto
|
|
884
|
-
`;var h4={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,Schema:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,MapLiteral:46,AlphaNumeric:47,JS:48,Regex:49,UNDEFINED:50,NULL:51,BOOL:52,INFINITY:53,NAN:54,SYMBOL:55,NUMBER:56,String:57,Identifier:58,IDENTIFIER:59,Property:60,PROPERTY:61,STRING:62,STRING_START:63,Interpolations:64,STRING_END:65,InterpolationChunk:66,INTERPOLATION_START:67,INTERPOLATION_END:68,INDENT:69,OUTDENT:70,REGEX:71,REGEX_START:72,REGEX_END:73,RegexWithIndex:74,",":75,"=":76,REACTIVE_ASSIGN:77,COMPUTED_ASSIGN:78,Block:79,READONLY_ASSIGN:80,EFFECT:81,SimpleAssignable:82,Array:83,Object:84,ThisProperty:85,".":86,"?.":87,INDEX_START:88,INDEX_END:89,Slice:90,PICK_START:91,PickList:92,OptComma:93,PICK_END:94,OPTPICK_START:95,ES6_OPTIONAL_INDEX:96,"{":97,ObjAssignable:98,":":99,FOR:100,ForVariables:101,FOROF:102,"}":103,WHEN:104,OWN:105,AssignList:106,AssignObj:107,ObjRestValue:108,SimpleObjAssignable:109,"[":110,"]":111,"@":112,"...":113,ObjSpreadExpr:114,SUPER:115,Arguments:116,DYNAMIC_IMPORT:117,MAP_START:118,MAP_END:119,MapAssignList:120,MapAssignObj:121,MapAssignable:122,PickItem:123,PickKey:124,Elisions:125,ArgElisionList:126,OptElisions:127,ArgElision:128,Arg:129,Elision:130,RangeDots:131,"..":132,DEF:133,CALL_START:134,ParamList:135,CALL_END:136,PARAM_START:137,PARAM_END:138,FuncGlyph:139,"->":140,"=>":141,Param:142,ParamVar:143,Splat:144,ES6_OPTIONAL_CALL:145,ArgList:146,SimpleArgs:147,THIS:148,NEW_TARGET:149,IMPORT_META:150,"(":151,")":152,RETURN:153,THROW:154,YIELD:155,FROM:156,IfBlock:157,IF:158,ELSE:159,UnlessBlock:160,UNLESS:161,POST_IF:162,POST_UNLESS:163,TRY:164,Catch:165,FINALLY:166,CATCH:167,SWITCH:168,Whens:169,When:170,LEADING_WHEN:171,WhileSource:172,WHILE:173,UNTIL:174,Loop:175,LOOP:176,FORIN:177,BY:178,FORAS:179,AWAIT:180,FORASAWAIT:181,ForValue:182,CLASS:183,EXTENDS:184,ENUM:185,SCHEMA:186,SCHEMA_BODY:187,COMPONENT:188,ComponentBody:189,ComponentLine:190,OFFER:191,ACCEPT:192,RENDER:193,IMPORT:194,ImportDefaultSpecifier:195,ImportNamespaceSpecifier:196,ImportSpecifierList:197,ImportSpecifier:198,AS:199,DEFAULT:200,IMPORT_ALL:201,EXPORT:202,ExportSpecifierList:203,EXPORT_ALL:204,ExportSpecifier:205,UNARY:206,DO:207,DO_IIFE:208,UNARY_MATH:209,"-":210,"+":211,"?":212,PRESENCE:213,"--":214,"++":215,MATH:216,"**":217,SHIFT:218,COMPARE:219,"&":220,"^":221,"|":222,"||":223,"??":224,"&&":225,PIPE:226,RELATION:227,TERNARY:228,COMPOUND_ASSIGN:229},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",48:"JS",50:"UNDEFINED",51:"NULL",52:"BOOL",53:"INFINITY",54:"NAN",55:"SYMBOL",56:"NUMBER",59:"IDENTIFIER",61:"PROPERTY",62:"STRING",63:"STRING_START",65:"STRING_END",67:"INTERPOLATION_START",68:"INTERPOLATION_END",69:"INDENT",70:"OUTDENT",71:"REGEX",72:"REGEX_START",73:"REGEX_END",75:",",76:"=",77:"REACTIVE_ASSIGN",78:"COMPUTED_ASSIGN",80:"READONLY_ASSIGN",81:"EFFECT",86:".",87:"?.",88:"INDEX_START",89:"INDEX_END",91:"PICK_START",94:"PICK_END",95:"OPTPICK_START",96:"ES6_OPTIONAL_INDEX",97:"{",99:":",100:"FOR",102:"FOROF",103:"}",104:"WHEN",105:"OWN",110:"[",111:"]",112:"@",113:"...",115:"SUPER",117:"DYNAMIC_IMPORT",118:"MAP_START",119:"MAP_END",132:"..",133:"DEF",134:"CALL_START",136:"CALL_END",137:"PARAM_START",138:"PARAM_END",140:"->",141:"=>",145:"ES6_OPTIONAL_CALL",148:"THIS",149:"NEW_TARGET",150:"IMPORT_META",151:"(",152:")",153:"RETURN",154:"THROW",155:"YIELD",156:"FROM",158:"IF",159:"ELSE",161:"UNLESS",162:"POST_IF",163:"POST_UNLESS",164:"TRY",166:"FINALLY",167:"CATCH",168:"SWITCH",171:"LEADING_WHEN",173:"WHILE",174:"UNTIL",176:"LOOP",177:"FORIN",178:"BY",179:"FORAS",180:"AWAIT",181:"FORASAWAIT",183:"CLASS",184:"EXTENDS",185:"ENUM",186:"SCHEMA",187:"SCHEMA_BODY",188:"COMPONENT",191:"OFFER",192:"ACCEPT",193:"RENDER",194:"IMPORT",199:"AS",200:"DEFAULT",201:"IMPORT_ALL",202:"EXPORT",204:"EXPORT_ALL",206:"UNARY",207:"DO",208:"DO_IIFE",209:"UNARY_MATH",210:"-",211:"+",212:"?",213:"PRESENCE",214:"--",215:"++",216:"MATH",217:"**",218:"SHIFT",219:"COMPARE",220:"&",221:"^",222:"|",223:"||",224:"??",225:"&&",226:"PIPE",227:"RELATION",228:"TERNARY",229:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[112,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,1,1,0,2,1,5,-2,112,5,1,5,62,2,82,-3,-3,-3,-3,-3,30,1,5,62,1,1,5,25,11,25,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,131,-6,-6,-6,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,9,1,5,62,1,1,5,36,25,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,62,1,1,5,36,25,16,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,132,133,134,101,102,58,1,5,51,5,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,3,3,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,137,110,111,-13,-13,-13,-13,140,141,142,-13,143,-13,144,145,-13,-13,-13,-13,-13,-13,-13,138,-13,-13,146,-13,-13,139,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,135,136,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,62,1,1,5,11,1,1,1,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,147,148,149,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,62,1,1,5,36,25,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,62,1,1,5,36,25,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,150,151,152,153,154,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,18,6,52,1,10,1,5,8,1,1,12,13,2,1,22,1,2,4,1,-217,159,109,-217,-217,-217,161,162,160,104,164,163,158,155,-217,-217,156,157,111,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,166,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,165,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,168,169,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,171,172,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,173,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,179,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,180,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,181,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,182,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,48,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,57,184,185,186,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,183,75,76,98,104,87,91,88,89,94,174,175,95,96,90,92,93,86,178,48,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,57,184,185,186,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,187,75,76,98,104,87,91,88,89,94,174,175,95,96,90,92,93,86,178,64,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,188,189,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,190,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,192,191,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,193,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,194,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,2,69,10,167,195,2,69,10,167,196,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,14,40,18,1,24,1,1,12,4,4,5,2,31,37,2,200,159,109,161,162,160,104,197,198,87,163,202,199,201,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,203,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,204,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,94,1,5,8,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,4,3,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,1,13,4,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,24,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,184,185,186,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-349,167,-349,107,108,-349,205,207,75,76,98,-349,-349,104,-349,-349,-349,-349,-349,87,-349,91,-349,88,89,94,-349,-349,-349,174,-349,175,95,96,90,92,93,86,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,206,178,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,2,69,115,208,209,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,211,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,210,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,212,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,213,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,145,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,1,13,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,214,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-268,215,-268,107,108,-268,55,54,75,76,98,-268,-268,104,-268,-268,-268,-268,-268,87,-268,91,-268,88,89,94,-268,-268,68,-268,174,-268,175,95,96,90,92,93,86,-268,72,66,67,216,56,99,-268,57,100,-268,-268,58,62,59,-268,-268,60,103,-268,-268,-268,51,-268,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,2,58,1,217,109,2,58,1,218,109,1,187,219,6,15,20,102,2,1,1,221,220,44,45,95,96,144,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,1,13,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,222,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-265,223,-265,107,108,-265,55,54,75,76,98,-265,-265,104,-265,-265,-265,-265,-265,87,-265,91,-265,88,89,94,-265,-265,68,-265,174,-265,175,95,96,90,92,93,86,-265,72,66,67,56,99,-265,57,100,-265,-265,58,62,59,-265,-265,60,103,-265,-265,-265,51,-265,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,9,57,1,1,3,1,34,98,1,5,224,228,109,110,111,227,225,226,229,63,14,1,3,1,1,1,6,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,13,2,3,2,1,15,4,2,1,1,7,1,1,1,32,2,3,12,4,4,184,185,236,237,238,239,231,232,233,234,242,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,235,109,110,111,107,108,55,243,75,76,98,230,87,91,88,89,94,68,174,175,95,96,90,92,93,86,63,69,64,240,241,178,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,244,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,245,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,246,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,252,107,108,253,55,54,75,76,98,104,61,87,247,91,257,88,89,94,248,249,251,254,250,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,86,2,28,18,259,260,258,146,2,116,18,261,146,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,58,1,5,54,1,1,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,262,263,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,1,86,264,1,86,265,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,12,13,2,1,6,1,1,1,29,-155,283,274,275,278,277,276,279,280,284,105,106,271,109,272,263,110,111,-155,-155,107,108,-155,281,282,273,104,164,163,270,266,267,268,269,86,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,16,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,16,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,285,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,286,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,287,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,288,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,290,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,289,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,23,6,41,9,1,1,1,1,1,1,1,6,1,5,10,13,5,3,1,1,1,1,2,1,-116,296,105,106,298,109,299,263,110,111,-116,-116,-116,300,291,-116,292,297,301,293,294,295,302,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,48,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,57,184,185,186,35,36,37,303,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,243,75,76,98,104,87,91,88,89,94,174,175,95,96,90,92,93,86,178,67,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,4,3,3,1,10,1,3,1,1,2,3,15,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,59,1,5,56,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,57,5,1,1,2,1,307,110,111,304,305,306,114,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-5,308,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-5,-5,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,-5,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,309,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,310,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,311,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,312,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,313,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,314,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,315,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,316,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,317,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,320,170,318,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,319,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,323,170,321,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,322,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,326,170,324,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,325,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,327,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,328,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,329,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,330,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,331,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,14,40,18,1,24,1,1,12,4,4,5,2,31,37,2,335,159,109,161,162,160,104,332,333,87,163,202,334,201,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,336,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,337,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,116,18,338,146,2,60,1,339,263,2,60,1,340,263,111,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,346,80,81,82,83,84,85,105,106,97,109,110,111,342,107,108,344,55,54,75,76,98,343,104,61,87,91,348,88,89,94,345,347,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,8,58,1,1,1,8,23,31,1,353,109,354,263,350,349,351,352,8,58,1,1,1,8,23,31,1,353,109,354,263,356,355,351,352,1,88,357,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,1,2,2,1,11,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,361,107,108,55,54,75,76,98,104,61,87,91,257,88,89,94,360,68,358,44,45,95,96,256,359,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,60,1,363,263,2,60,1,364,263,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,365,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,366,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,368,367,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,369,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,371,370,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,372,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,374,373,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,375,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,377,376,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,378,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,380,379,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,381,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,11,6,63,1,5,18,1,9,8,8,17,2,-261,-261,-261,383,384,-261,-261,-261,-261,-261,382,6,6,63,1,5,61,2,-218,-218,-218,-218,-218,-218,7,6,63,1,5,1,60,2,-222,-222,-222,-222,385,-222,-222,15,6,52,1,10,1,5,8,1,1,12,13,2,24,2,5,-225,159,109,-225,-225,-225,161,162,160,104,164,163,-225,-225,386,11,6,63,1,5,1,26,34,2,39,2,2,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,11,6,63,1,5,1,26,34,2,39,2,2,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,11,6,63,1,5,1,26,34,2,39,2,2,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,11,6,63,1,5,1,26,34,2,39,2,2,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,2,60,1,262,263,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,252,107,108,253,55,54,75,76,98,104,61,87,247,91,257,88,89,94,248,249,251,254,250,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,9,1,5,62,1,1,5,36,25,16,-214,-214,-214,-214,-214,-214,-214,-214,-214,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,388,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,387,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,130,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,-420,123,-420,-420,-420,-420,9,1,5,62,1,1,5,36,25,16,-417,-417,-417,-417,-417,-417,-417,-417,-417,5,162,1,9,1,1,132,133,134,101,102,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,130,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,-421,123,-421,-421,-421,-421,9,1,5,62,1,1,5,36,25,16,-418,-418,-418,-418,-418,-418,-418,-418,-418,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,-422,130,-422,-422,-422,-422,-422,-422,-422,-422,-422,116,-422,-422,-422,-422,-422,-422,123,-422,-422,-422,-422,18,6,52,1,10,1,5,8,1,1,12,13,2,1,22,1,2,4,1,-217,159,109,-217,-217,-217,161,162,160,104,164,163,158,389,-217,-217,156,157,2,69,10,167,165,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,168,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,171,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,5,15,122,2,1,1,221,174,175,95,96,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,130,-423,-423,-423,-423,-423,-423,-423,-423,-423,116,-423,-423,-423,-423,-423,-423,123,-423,-423,-423,-423,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,130,-424,-424,-424,-424,-424,-424,-424,-424,-424,116,-424,-424,-424,-424,-424,-424,123,-424,-424,-424,-424,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,130,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,123,-427,-427,-427,-427,2,84,13,390,104,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-89,-89,-429,-429,-429,-429,-89,-89,-89,-89,-89,-89,-89,-89,-429,-89,-429,-89,-89,-429,-429,-429,-429,-429,-429,-429,-429,-429,-89,-429,-429,-89,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-89,-89,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,12,57,5,1,23,1,1,3,4,1,20,18,11,137,110,111,140,141,142,143,144,145,138,146,139,3,86,1,1,147,148,149,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-89,-89,-430,-430,-430,-430,-89,-89,-89,-89,-89,-89,-89,-89,-430,-89,-430,-89,-89,-430,-430,-430,-430,-430,-430,-430,-430,-430,-89,-430,-430,-89,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-89,-89,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,393,391,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,392,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,131,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,128,129,130,101,102,-86,-86,-86,-86,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,394,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,3,69,10,79,167,395,396,47,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,2,1,1,6,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,397,398,399,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,4,102,75,2,2,401,400,402,403,11,58,1,24,1,1,12,4,9,2,31,39,159,109,161,162,160,104,404,164,163,202,201,11,58,1,24,1,1,12,4,9,2,31,39,159,109,161,162,160,104,405,164,163,202,201,3,69,10,99,167,406,407,5,75,27,75,2,2,408,-347,-347,-347,-347,6,75,1,26,75,2,2,-345,409,-345,-345,-345,-345,22,69,31,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,410,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,3,169,1,1,411,412,413,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,414,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,63,1,5,56,1,5,1,1,5,1,1,1,1,1,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-89,-89,-353,167,-353,-353,-89,-89,-89,415,-89,-89,-89,-89,-89,-353,-89,-353,-89,-89,-353,-353,-353,-353,-353,-353,-353,-353,-353,-89,-353,-353,-89,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,416,-353,-353,-89,-89,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,419,420,421,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,417,418,422,423,65,73,74,46,47,71,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,424,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,131,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,130,101,102,-370,-370,-370,-370,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,130,-266,-266,-266,-266,-266,-266,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,13,425,104,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,130,-269,-269,-269,-269,-269,-269,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,13,426,104,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,427,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,3,69,10,55,167,429,428,2,69,10,167,430,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,9,1,5,62,1,1,5,36,25,16,-419,-419,-419,-419,-419,-419,-419,-419,-419,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,130,-263,-263,-263,-263,-263,-263,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,13,431,104,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,2,75,81,433,432,1,156,434,7,58,1,10,34,94,1,2,439,109,438,435,436,437,440,2,75,81,-387,-387,1,199,441,26,6,41,9,1,1,1,1,1,1,1,6,1,5,10,13,5,3,1,1,1,1,2,1,87,3,2,-116,296,105,106,446,109,299,263,110,111,445,-116,-116,300,291,442,292,297,301,293,294,295,302,447,443,444,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,448,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,449,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,450,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,156,451,60,1,5,56,1,5,1,1,5,2,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,151,152,153,154,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,2,6,146,112,452,110,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,453,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,30,6,63,1,5,25,11,2,18,1,4,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,131,-243,348,454,347,-243,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,253,55,54,75,76,98,104,61,87,455,91,257,88,89,94,457,456,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,11,6,63,1,5,18,1,9,8,8,8,9,-261,-261,-261,459,460,-261,-261,-261,-261,458,-261,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,16,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,461,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,5,6,63,1,5,36,-189,-189,-189,-189,-189,117,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,252,107,108,253,55,54,75,76,98,104,61,87,91,257,88,89,94,463,462,251,254,250,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,16,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,5,6,63,1,5,36,-194,-194,-194,-194,-194,6,6,63,1,5,36,25,-244,-244,-244,-244,-244,-244,6,6,63,1,5,36,25,-245,-245,-245,-245,-245,-245,111,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,12,3,10,1,1,3,2,1,15,3,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-246,464,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-246,-246,107,108,-246,55,54,75,76,98,104,61,87,-246,91,88,89,94,68,-246,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,60,1,465,263,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,466,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,467,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,2,60,1,468,263,2,60,1,469,263,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,471,470,-261,-261,-261,-261,-261,5,6,63,1,5,44,-156,-156,-156,-156,-156,1,99,472,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,473,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,99,-172,1,99,-173,1,99,-174,1,99,-175,1,99,-176,1,99,-177,1,99,-178,1,99,-179,1,99,-180,1,99,-181,1,99,-182,1,99,-183,1,99,-184,1,99,-185,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,474,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,475,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,131,-300,-300,476,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,130,101,102,-300,-300,-300,-300,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,131,-302,-302,477,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,130,101,102,-302,-302,-302,-302,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,46,1,5,62,1,1,5,4,10,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,167,-309,-309,478,-309,-309,-309,131,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,130,101,102,-309,-309,-309,-309,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,6,6,63,1,5,24,4,-121,-121,-121,-121,479,-121,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,481,480,-261,-261,-261,-261,-261,7,6,63,1,5,1,23,4,-130,-130,-130,-130,482,-130,-130,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,483,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,3,60,1,49,262,263,484,6,6,63,1,5,24,4,-133,-133,-133,-133,-133,-133,5,6,63,1,5,28,-117,-117,-117,-117,-117,13,6,63,1,5,1,10,1,1,3,4,4,4,31,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,13,6,63,1,5,1,10,1,1,3,4,4,4,31,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,13,6,63,1,5,1,10,1,1,3,4,4,4,31,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,-129,5,6,63,1,5,28,-122,-122,-122,-122,-122,17,39,4,1,14,1,1,1,23,1,12,12,3,2,1,2,31,3,488,490,489,298,109,299,263,487,300,104,485,91,486,491,492,90,86,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,493,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,6,57,5,1,2,1,1,307,110,111,494,495,306,4,62,1,2,2,-61,-61,-61,-61,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,496,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,498,497,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-66,-66,-66,-66,5,1,5,62,2,82,-4,-4,-4,-4,-4,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,130,-433,-433,-433,-433,-433,-433,-433,-433,115,116,-433,-433,-433,-433,-433,-433,123,-433,-433,-433,-433,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,130,-434,-434,-434,-434,-434,-434,-434,-434,115,116,-434,-434,-434,-434,-434,-434,123,-434,-434,-434,-434,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,130,-435,-435,-435,-435,-435,-435,-435,-435,-435,116,-435,-435,-435,-435,-435,-435,123,-435,-435,-435,-435,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,130,-436,-436,-436,-436,-436,-436,-436,-436,-436,116,-436,-436,-436,-436,-436,-436,123,-436,-436,-436,-436,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,130,-437,-437,-437,-437,-437,-437,114,113,115,116,-437,-437,-437,-437,-437,-437,123,-437,-437,-437,-437,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,130,-438,-438,-438,-438,-438,-438,114,113,115,116,117,-438,-438,-438,-438,-438,123,-438,-438,126,-438,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,130,-439,-439,-439,-439,-439,-439,114,113,115,116,117,118,-439,-439,-439,-439,123,-439,-439,126,-439,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,130,-440,-440,-440,-440,-440,-440,114,113,115,116,117,118,119,-440,-440,-440,123,-440,-440,126,-440,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,130,-441,-441,-441,-441,-441,-441,114,113,115,116,117,118,119,120,-441,-441,123,-441,-441,126,-441,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,130,-449,-449,-449,-449,-449,-449,114,113,115,116,117,118,119,120,121,-449,123,124,-449,126,-449,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,131,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,128,129,130,101,102,-450,-450,-450,-450,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,130,-448,-448,-448,-448,-448,-448,114,113,115,116,117,118,119,120,121,-448,123,-448,-448,126,-448,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,130,-451,-451,-451,-451,-451,-451,114,113,115,116,117,118,119,120,121,122,123,124,-451,126,-451,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,130,-452,-452,-452,-452,-452,-452,114,113,115,116,117,-452,-452,-452,-452,-452,123,-452,-452,-452,-452,22,99,1,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,499,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,131,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,500,-280,-280,130,101,102,-280,-280,-280,-280,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,131,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,130,101,102,-284,-284,-284,-284,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,102,75,2,2,502,501,503,504,11,58,1,24,1,1,12,4,9,2,31,39,159,109,161,162,160,104,505,164,163,202,201,11,58,1,24,1,1,12,4,9,2,31,39,159,109,161,162,160,104,506,164,163,202,201,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,507,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,131,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,130,101,102,-279,-279,-279,-279,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,131,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,130,101,102,-283,-283,-283,-283,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,25,89,11,13,18,1,30,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,508,131,348,509,347,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,109,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,510,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,511,104,61,87,91,348,88,89,94,345,347,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,89,512,1,89,513,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,514,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-208,107,108,55,54,75,76,98,-208,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,515,-48,-48,-48,-70,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,8,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,8,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,516,-261,-261,-261,-261,-261,7,58,1,1,1,31,31,1,353,109,354,263,518,351,352,4,6,64,5,19,-163,-163,-163,-163,6,6,64,5,1,18,5,-166,-166,-166,520,-166,519,6,6,64,5,1,18,5,-170,-170,-170,-170,-170,-170,6,6,64,5,1,18,5,-171,-171,-171,-171,-171,-171,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,521,-261,-261,-261,-261,-261,7,58,1,1,1,31,31,1,353,109,354,263,522,351,352,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,523,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,524,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,-236,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,526,525,-261,-261,-261,-261,-261,5,6,63,1,5,61,-238,-238,-238,-238,-238,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,361,107,108,55,54,75,76,98,104,61,87,91,257,88,89,94,360,68,44,45,95,96,256,527,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,25,11,25,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,131,-243,-243,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,22,89,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,528,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,529,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,130,-71,-71,-71,-71,-71,-71,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,530,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,531,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,131,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,128,129,130,101,102,-74,-74,-74,-74,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,532,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,533,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,131,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,128,129,130,101,102,-77,-77,-77,-77,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,534,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,131,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,128,129,130,101,102,-80,-80,-80,-80,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,535,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,536,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,131,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,128,129,130,101,102,-83,-83,-83,-83,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,537,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,139,1,1,538,95,96,19,6,52,1,10,1,13,1,1,9,3,6,7,1,1,1,6,17,6,1,-262,159,109,-262,-262,161,162,160,-262,104,-262,164,-262,163,158,-262,-262,539,157,2,6,63,540,541,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,542,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,6,6,63,1,5,61,2,-224,-224,-224,-224,-224,-224,59,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,2,6,64,112,543,11,6,63,1,5,18,1,9,8,8,17,2,-261,-261,-261,383,384,-261,-261,-261,-261,-261,544,1,70,545,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,130,-454,-454,-454,-454,-454,-454,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,546,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,547,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,131,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,128,129,130,101,102,-87,-87,-87,-87,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,548,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,549,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,2,69,10,167,550,6,58,1,10,10,5,13,551,109,167,553,552,104,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,554,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,555,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,556,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,557,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,102,558,1,179,559,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,560,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,10,58,1,24,1,1,12,13,2,31,39,159,109,161,162,160,104,164,163,202,561,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,562,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,3,169,1,1,563,412,413,4,70,89,11,1,564,565,566,413,3,70,89,12,-296,-296,-296,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,568,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,567,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,46,1,5,62,1,1,5,4,10,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,167,-351,-351,569,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,130,-351,-351,-351,-351,-351,-351,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,570,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,2,6,64,572,571,2,6,64,-361,-361,23,6,64,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,6,64,-365,-365,7,6,64,92,1,9,1,1,-366,-366,132,133,134,101,102,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,573,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,59,574,22,69,31,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,575,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,70,576,1,70,577,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,130,-271,-271,-271,-271,-271,-271,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,18,6,52,1,10,1,5,8,1,1,12,13,2,1,22,1,2,4,1,-217,159,109,-217,-217,-217,161,162,160,104,164,163,158,578,-217,-217,156,157,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,1,70,579,3,57,5,1,580,110,111,3,97,99,5,582,581,229,3,57,5,1,583,110,111,1,156,584,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,586,585,-261,-261,-261,-261,-261,5,6,63,1,5,28,-378,-378,-378,-378,-378,6,58,1,10,128,1,2,439,109,438,587,437,440,6,6,63,1,5,28,96,-383,-383,-383,-383,-383,588,6,6,63,1,5,28,96,-385,-385,-385,-385,-385,589,2,58,1,590,109,14,1,5,62,1,1,5,36,25,16,4,6,1,10,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,591,-389,-389,-389,-389,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,593,592,-261,-261,-261,-261,-261,5,6,63,1,5,28,-407,-407,-407,-407,-407,6,58,1,10,131,3,2,595,109,445,447,594,444,14,6,63,1,5,1,10,1,1,3,4,4,4,31,65,-412,-412,-412,-412,-127,-127,-127,-127,-127,-127,-127,-412,-127,596,6,6,63,1,5,28,96,-415,-415,-415,-415,-415,597,107,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,599,598,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,600,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,30,1,5,62,1,1,5,25,11,25,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,131,-402,-402,-402,-402,-402,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,84,13,601,104,3,57,5,1,602,110,111,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,2,6,64,112,603,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,604,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,16,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,461,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,5,6,63,1,5,36,-195,-195,-195,-195,-195,2,69,42,606,605,123,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,1,6,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-262,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-262,-262,107,108,253,55,54,75,76,98,-262,104,61,-262,87,-262,91,257,88,89,94,-262,608,607,254,250,68,-262,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,6,63,1,41,609,-196,-196,-196,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,16,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,11,6,63,1,5,18,1,9,8,8,8,9,-261,-261,-261,459,460,-261,-261,-261,-261,610,-261,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,12,3,10,2,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,253,55,54,75,76,98,104,61,87,91,257,88,89,94,457,456,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,25,11,25,26,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,131,-230,-230,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,22,89,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,611,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,612,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,3,6,63,50,614,615,613,37,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,11,1,1,9,3,6,7,1,1,1,6,2,1,14,15,-262,283,274,275,278,277,276,279,280,284,105,106,271,109,272,263,110,111,-262,-262,107,108,281,282,273,-262,104,-262,164,-262,163,270,-262,616,269,-262,86,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,617,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,618,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,26,6,63,1,5,25,19,43,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,131,-162,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,619,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,620,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,621,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,622,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,623,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,3,6,63,34,625,626,624,25,6,41,9,1,1,1,1,1,1,1,6,1,15,9,4,5,4,1,1,1,1,1,1,6,17,-262,296,105,106,298,109,299,263,110,111,-262,-262,300,-262,628,-262,627,301,293,294,-262,295,302,-262,-262,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,629,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,630,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,22,100,11,51,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,631,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,632,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,12,6,63,1,5,11,1,1,3,4,8,13,18,-134,-134,-134,-134,-136,-136,-136,-136,-136,-134,633,146,12,6,63,1,5,11,1,1,3,4,8,13,18,-135,-135,-135,-135,635,636,637,638,639,-135,634,146,11,6,63,1,5,11,1,1,3,4,8,31,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,11,6,63,1,5,11,1,1,3,4,8,31,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,11,6,63,1,5,11,1,1,3,4,8,31,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,11,6,63,1,5,11,1,1,3,4,8,31,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,4,86,2,28,18,259,260,640,146,2,116,18,641,146,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,59,1,5,56,1,2,2,1,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,62,1,2,2,-62,-62,-62,-62,2,6,62,112,642,110,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,643,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-65,-65,-65,-65,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,644,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,646,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,645,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,647,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,648,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,649,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,650,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,102,651,1,179,652,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,653,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,654,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-206,107,108,55,54,75,76,98,-206,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,25,70,30,13,18,1,30,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,655,131,348,509,347,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,70,656,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,23,70,19,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,657,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,2,6,88,659,658,14,6,52,1,1,1,8,1,24,9,8,8,4,1,12,-262,353,109,354,263,-262,-262,-262,-262,-262,-262,660,352,-262,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,661,-261,-261,-261,-261,-261,5,58,1,1,1,63,353,109,354,263,662,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,663,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,2,6,88,659,664,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,665,-261,-261,-261,-261,-261,22,89,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,666,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,667,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,3,6,63,67,669,670,668,119,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,1,10,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-262,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-262,-262,107,108,55,54,75,76,98,-262,104,61,-262,87,-262,91,257,88,89,94,-262,671,68,-262,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,526,672,-261,-261,-261,-261,-261,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,673,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,130,-72,-72,-72,-72,-72,-72,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,674,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,131,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,128,129,130,101,102,-75,-75,-75,-75,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,675,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,131,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,128,129,130,101,102,-78,-78,-78,-78,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,131,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,128,129,130,101,102,-81,-81,-81,-81,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,676,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,131,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,128,129,130,101,102,-84,-84,-84,-84,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,111,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,678,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,167,107,108,677,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,6,6,63,1,5,61,2,-219,-219,-219,-219,-219,-219,11,58,1,24,1,1,12,13,2,1,29,1,159,109,161,162,160,104,164,163,158,679,157,18,6,52,1,10,1,5,8,1,1,12,13,2,1,22,1,2,4,1,-217,159,109,-217,-217,-217,161,162,160,104,164,163,158,680,-217,-217,156,157,27,6,63,1,5,25,36,2,24,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,131,-223,-223,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,59,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,3,1,4,2,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,3,139,1,1,681,95,96,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,682,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,130,-456,-456,-456,-456,-456,-456,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,683,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,69,10,167,684,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,2,69,10,167,685,2,69,10,167,686,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,25,69,10,21,4,58,1,9,1,1,4,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,687,131,688,128,129,130,101,102,689,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,690,131,691,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,692,131,693,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,694,131,695,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,696,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,697,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,698,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,102,75,2,2,-348,-348,-348,-348,26,75,25,2,60,1,9,1,1,3,2,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-346,131,-346,128,129,130,101,102,-346,-346,-346,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,4,70,89,11,1,699,700,566,413,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,2,69,10,167,701,3,70,89,12,-297,-297,-297,3,69,6,4,167,703,702,23,69,6,25,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,46,1,5,62,1,1,5,4,10,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,167,-355,-355,704,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,130,-355,-355,-355,-355,-355,-355,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,113,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,2,1,1,1,1,8,4,1,1,1,1,1,3,1,-363,419,420,421,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-363,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,705,422,423,65,73,74,46,47,71,48,49,50,52,53,23,6,64,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,6,64,-368,-368,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,419,420,421,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,706,418,422,423,65,73,74,46,47,71,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,383,384,-261,-261,-261,-261,707,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,1,156,708,6,58,1,10,128,1,2,439,109,438,709,437,440,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,3,57,5,1,710,110,111,3,6,63,34,712,713,711,12,6,52,1,10,1,24,9,8,8,17,62,2,-262,439,109,-262,-262,-262,-262,-262,-262,-262,714,440,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,586,715,-261,-261,-261,-261,-261,2,58,1,716,109,2,58,1,717,109,1,156,-388,3,57,5,1,718,110,111,3,6,63,34,720,721,719,12,6,52,1,10,1,24,9,8,8,17,64,5,-262,595,109,-262,-262,-262,-262,-262,-262,-262,447,722,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,593,723,-261,-261,-261,-261,-261,6,6,63,1,5,28,96,-412,-412,-412,-412,-412,596,3,58,1,141,724,109,725,2,58,1,726,109,30,1,5,62,1,1,5,25,11,25,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,131,-395,-395,-395,-395,-395,130,-395,-395,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,727,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,728,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,70,729,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,1,152,730,22,100,11,51,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,731,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,117,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,252,107,108,253,55,54,75,76,98,104,61,87,91,257,88,89,94,463,732,251,254,250,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,36,-190,-190,-190,-190,-190,116,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,-197,-197,107,108,253,55,54,75,76,98,104,61,87,-197,91,257,88,89,94,457,456,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,12,3,10,2,1,2,2,1,7,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,253,55,54,75,76,98,104,61,87,91,257,88,89,94,463,733,254,250,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,69,1,606,734,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,735,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,29,39,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,11,1,1,12,13,2,1,8,1,29,283,274,275,278,277,276,279,280,284,105,106,271,109,272,263,110,111,107,108,281,282,273,104,164,163,270,736,269,86,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,1,12,13,2,1,6,1,1,1,29,-155,283,274,275,278,277,276,279,280,284,105,106,271,109,272,263,110,111,-155,-155,107,108,-155,281,282,273,104,164,163,270,-155,737,268,269,86,5,6,63,1,5,44,-157,-157,-157,-157,-157,26,6,63,1,5,25,19,43,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,131,-160,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,738,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,2,69,10,167,739,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,130,-301,-301,-301,-301,-301,-301,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,130,-303,-303,-303,-303,-303,-303,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,26,6,63,1,5,25,3,59,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,740,-123,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,741,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,17,47,9,1,1,1,1,1,1,1,22,13,9,1,1,1,2,1,296,105,106,298,109,299,263,110,111,300,628,742,301,293,294,295,302,23,6,41,9,1,1,1,1,1,1,1,6,1,5,10,13,5,3,1,1,1,1,2,1,-116,296,105,106,298,109,299,263,110,111,-116,-116,-116,300,628,-116,743,297,301,293,294,295,302,5,6,63,1,5,28,-118,-118,-118,-118,-118,6,6,63,1,5,24,4,-121,-121,-121,-121,744,-121,26,6,63,1,5,25,3,59,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-125,-125,-125,-125,131,-125,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,745,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,6,6,63,1,5,24,4,-131,-131,-131,-131,-131,-131,22,100,11,51,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,131,746,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,11,6,63,1,5,11,1,1,3,4,8,31,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,11,6,63,1,5,11,1,1,3,4,8,31,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,2,60,1,747,263,2,60,1,748,263,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,749,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,750,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,8,58,1,1,1,8,23,31,1,353,109,354,263,752,751,351,352,8,58,1,1,1,8,23,31,1,353,109,354,263,754,753,351,352,11,6,63,1,5,11,1,1,3,4,8,31,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,11,6,63,1,5,11,1,1,3,4,8,31,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,4,62,1,2,2,-63,-63,-63,-63,2,6,64,112,755,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,130,-453,-453,-453,-453,-453,-453,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,756,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,131,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,130,101,102,-282,-282,-282,-282,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,757,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,130,-328,-328,-328,758,-328,-328,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,759,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,130,-333,-333,-333,-333,-333,-333,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,760,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,130,-337,-337,-337,-337,-337,-337,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,761,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,130,-341,-341,-341,-341,-341,-341,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,762,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,763,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,130,-344,-344,-344,-344,-344,-344,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,70,19,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,89,764,1,89,765,22,89,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-69,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,6,58,1,1,1,62,1,353,109,354,263,766,352,4,6,64,5,19,-164,-164,-164,-164,2,6,64,659,767,5,6,64,5,1,18,-167,-167,-167,768,-167,25,6,64,5,19,6,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,2,6,64,659,769,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,770,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,57,1,5,56,1,5,1,1,3,2,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,257,88,89,94,771,68,44,45,95,96,256,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,362,255,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,361,107,108,55,54,75,76,98,104,61,87,91,257,88,89,94,360,68,44,45,95,96,256,772,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,61,-239,-239,-239,-239,-239,3,6,63,1,669,670,773,1,89,774,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,9,1,5,62,1,1,5,36,25,16,-213,-213,-213,-213,-213,-213,-213,-213,-213,6,6,63,1,5,61,2,-220,-220,-220,-220,-220,-220,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,383,775,-261,-261,-261,-261,-261,2,69,10,167,677,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,3,7,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,776,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,777,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,778,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,779,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,780,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,781,131,782,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,783,131,784,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,2,69,10,167,785,1,70,786,4,6,64,89,12,787,-298,-298,-298,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,788,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,2,6,64,-362,-362,2,6,64,572,789,2,69,10,167,790,3,57,5,1,791,110,111,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,586,792,-261,-261,-261,-261,-261,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,1,156,793,4,58,1,139,2,439,109,794,440,6,58,1,10,128,1,2,439,109,438,795,437,440,5,6,63,1,5,28,-379,-379,-379,-379,-379,3,6,63,1,712,713,796,5,6,63,1,5,28,-384,-384,-384,-384,-384,5,6,63,1,5,28,-386,-386,-386,-386,-386,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,14,1,5,62,1,1,5,36,25,16,4,6,1,10,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,797,-390,-390,-390,-390,4,58,1,141,5,595,109,447,798,6,58,1,10,131,3,2,595,109,445,447,799,444,5,6,63,1,5,28,-408,-408,-408,-408,-408,3,6,63,1,720,721,800,5,6,63,1,5,28,-413,-413,-413,-413,-413,5,6,63,1,5,28,-414,-414,-414,-414,-414,5,6,63,1,5,28,-416,-416,-416,-416,-416,30,1,5,62,1,1,5,25,11,25,16,10,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,131,-396,-396,-396,-396,-396,130,-396,-396,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,801,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,11,6,63,1,5,18,1,9,8,8,8,9,-261,-261,-261,459,460,-261,-261,-261,-261,802,-261,5,6,63,1,5,36,-191,-191,-191,-191,-191,5,6,63,1,5,36,-192,-192,-192,-192,-192,1,89,803,5,6,63,1,5,44,-158,-158,-158,-158,-158,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,471,804,-261,-261,-261,-261,-261,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,805,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,14,40,18,1,24,1,1,12,4,4,5,2,31,37,2,335,159,109,161,162,160,104,806,807,87,163,202,334,201,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,808,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,28,-119,-119,-119,-119,-119,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,481,809,-261,-261,-261,-261,-261,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,810,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,623,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,811,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,6,6,63,1,5,24,4,-132,-132,-132,-132,-132,-132,11,6,63,1,5,11,1,1,3,4,8,31,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,11,6,63,1,5,11,1,1,3,4,8,31,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,22,89,11,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,812,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,813,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,814,-261,-261,-261,-261,-261,7,58,1,1,1,31,31,1,353,109,354,263,815,351,352,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,816,-261,-261,-261,-261,-261,7,58,1,1,1,31,31,1,353,109,354,263,817,351,352,1,68,818,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,819,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,820,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,821,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,822,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,823,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,824,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,825,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,130,-335,-335,-335,-335,-335,-335,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,826,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,130,-339,-339,-339,-339,-339,-339,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,4,6,64,5,19,-165,-165,-165,-165,1,94,827,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,828,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,94,829,1,89,830,5,6,63,1,5,61,-240,-240,-240,-240,-240,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,526,831,-261,-261,-261,-261,-261,5,6,63,1,5,61,-241,-241,-241,-241,-241,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,3,6,63,1,540,541,832,24,69,10,21,62,1,9,1,1,4,32,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,833,131,128,129,130,101,102,834,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,24,69,10,21,4,58,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,835,131,836,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,837,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,838,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,839,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,840,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,841,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,70,842,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,3,70,89,12,-299,-299,-299,23,69,6,25,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,3,6,63,34,712,713,843,3,57,5,1,844,110,111,5,6,63,1,5,28,-380,-380,-380,-380,-380,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,586,845,-261,-261,-261,-261,-261,5,6,63,1,5,28,-381,-381,-381,-381,-381,3,57,5,1,846,110,111,5,6,63,1,5,28,-409,-409,-409,-409,-409,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,593,847,-261,-261,-261,-261,-261,5,6,63,1,5,28,-410,-410,-410,-410,-410,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,2,69,1,606,848,56,1,5,56,1,5,1,1,5,11,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,3,6,63,1,614,615,849,5,6,63,1,5,44,-161,-161,-161,-161,-161,4,102,75,2,2,850,501,503,504,11,58,1,24,1,1,12,4,9,2,31,39,159,109,161,162,160,104,851,164,163,202,201,5,6,63,1,5,28,-124,-124,-124,-124,-124,3,6,63,1,625,626,852,26,6,63,1,5,25,3,59,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,131,-123,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,28,-126,-126,-126,-126,-126,11,6,63,1,5,11,1,1,3,4,8,31,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,22,70,30,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,853,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,2,6,88,659,854,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,855,-261,-261,-261,-261,-261,2,6,88,659,856,10,6,63,1,5,18,1,9,8,8,17,-261,-261,-261,517,857,-261,-261,-261,-261,-261,4,62,1,2,2,-64,-64,-64,-64,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,130,-329,-329,-329,858,-329,-329,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,859,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,130,-330,-330,-330,-330,-330,-330,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,130,-334,-334,-334,-334,-334,-334,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,130,-338,-338,-338,-338,-338,-338,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,130,-342,-342,-342,-342,-342,-342,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,860,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,861,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,25,6,64,5,19,6,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,65,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,3,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,3,6,63,1,669,670,862,6,6,63,1,5,61,2,-221,-221,-221,-221,-221,-221,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,863,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,864,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,865,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,866,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,1,156,867,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,3,6,63,1,712,713,868,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,3,6,63,1,720,721,869,5,6,63,1,5,36,-193,-193,-193,-193,-193,5,6,63,1,5,44,-159,-159,-159,-159,-159,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,870,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,102,871,5,6,63,1,5,28,-120,-120,-120,-120,-120,1,89,872,11,6,63,1,5,11,1,1,3,4,8,31,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,2,6,64,659,873,11,6,63,1,5,11,1,1,3,4,8,31,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,2,6,64,659,874,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,875,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,876,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,130,-336,-336,-336,-336,-336,-336,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,130,-340,-340,-340,-340,-340,-340,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,5,6,63,1,5,61,-242,-242,-242,-242,-242,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,877,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,23,69,10,21,62,1,9,1,1,36,1,5,1,1,1,1,1,1,1,1,1,1,1,1,167,878,131,128,129,130,101,102,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,57,5,1,879,110,111,5,6,63,1,5,28,-382,-382,-382,-382,-382,5,6,63,1,5,28,-411,-411,-411,-411,-411,46,1,5,62,1,1,5,14,4,1,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,882,-333,880,-333,-333,-333,-333,-333,881,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,130,-333,-333,-333,-333,-333,-333,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,883,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,11,6,63,1,5,11,1,1,3,4,8,31,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,1,94,884,1,94,885,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,130,-331,-331,-331,-331,-331,-331,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,45,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,130,-332,-332,-332,-332,-332,-332,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,44,1,5,62,1,1,5,14,5,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,10,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,13,1,5,62,1,1,5,36,25,16,10,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,1,103,886,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,887,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,8,6,63,1,24,9,8,8,17,-262,-262,-262,-262,-262,-262,-262,-262,46,1,5,62,1,1,5,14,4,1,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,882,-335,888,-335,-335,-335,-335,-335,889,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,130,-335,-335,-335,-335,-335,-335,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,11,6,63,1,5,11,1,1,3,4,8,31,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,11,6,63,1,5,11,1,1,3,4,8,31,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,46,1,5,62,1,1,5,14,4,1,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,882,-334,890,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,130,-334,-334,-334,-334,-334,-334,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,1,103,891,105,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,892,170,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,105,106,97,109,110,111,107,108,55,54,75,76,98,104,61,87,91,88,89,94,68,174,175,95,96,90,92,93,86,72,66,67,56,99,57,100,58,62,59,101,102,60,103,51,63,69,70,64,65,73,74,176,177,178,48,49,50,52,53,1,103,893,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,46,1,5,62,1,1,5,14,4,1,5,1,2,1,1,7,2,6,13,4,2,14,7,3,1,9,1,1,3,1,1,2,29,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,882,-336,894,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,130,-336,-336,-336,-336,-336,-336,114,113,115,116,117,118,119,120,121,122,123,124,125,126,127,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,1,103,895,61,1,5,56,1,5,1,1,5,1,1,1,2,1,5,1,1,1,2,3,1,1,3,1,2,1,1,7,2,6,13,2,2,2,7,7,7,3,1,10,1,3,1,1,2,29,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114],l=[],h=0,w,u,_,D;while(h<f.length){w=f[h++],u={},_=0,D=[];while(w--)_+=f[h++],D.push(_);for(_ of D)u[_]=f[h++];l.push(u)}return l})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,47,1,47,1,58,1,60,1,57,1,57,3,64,1,64,2,66,3,66,5,66,2,66,1,49,1,49,3,74,3,74,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,37,1,37,1,37,1,82,1,82,1,82,3,82,3,82,4,82,6,82,4,82,6,82,5,82,5,82,7,82,7,82,4,82,5,82,7,82,3,82,3,82,4,82,6,84,10,84,12,84,11,84,13,84,4,106,0,106,1,106,3,106,4,106,6,107,1,107,1,107,3,107,5,107,3,107,5,109,1,109,1,109,1,98,1,98,3,98,4,98,1,108,2,108,2,114,1,114,1,114,1,114,1,114,1,114,2,114,2,114,2,114,2,114,3,114,3,114,4,114,6,114,5,114,5,114,7,114,7,46,2,46,4,120,0,120,1,120,3,120,4,120,6,121,3,121,5,121,2,92,1,92,3,92,4,123,1,123,3,123,3,123,5,124,1,124,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,83,2,83,3,83,4,126,1,126,3,126,4,126,4,126,6,128,1,128,2,127,1,127,2,125,1,125,2,130,1,130,2,131,1,131,1,40,5,90,3,90,2,90,2,90,1,32,6,32,3,15,5,15,2,35,5,35,2,139,1,139,1,135,0,135,1,135,3,135,4,135,6,142,1,142,3,142,2,142,1,143,1,143,1,143,1,143,1,144,2,41,2,41,2,41,3,41,2,41,2,116,2,116,4,146,1,146,3,146,4,146,4,146,6,129,1,129,1,129,1,129,1,147,1,147,3,43,1,43,1,85,2,44,3,44,4,44,6,45,3,45,3,79,2,79,3,39,3,39,5,93,0,93,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,157,3,157,5,160,3,160,5,22,1,22,3,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,165,3,165,3,165,2,26,5,26,7,26,4,26,6,169,1,169,2,170,3,170,4,172,2,172,4,172,2,172,4,24,2,24,2,24,2,24,1,175,2,175,2,175,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,182,1,182,3,101,1,101,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,34,2,28,4,28,6,189,1,189,3,189,2,190,1,190,1,190,1,190,2,190,2,29,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,197,1,197,3,197,4,197,4,197,6,198,1,198,3,198,1,198,3,195,1,196,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,203,1,203,3,203,4,203,4,203,6,205,1,205,3,205,3,205,1,205,3,36,2,36,2,36,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,42,2],ruleActions:(f,l,h,w)=>{let u=l,_=l.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[_]];case 3:case 61:case 117:case 156:case 163:case 194:case 198:case 218:case 238:case 247:case 296:case 347:case 361:case 378:case 407:return[u[_]];case 4:case 118:case 157:case 164:case 219:case 239:case 248:case 362:case 379:case 408:return[...u[_-2],u[_]];case 5:case 63:case 201:case 363:return u[_-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 51:case 52:case 53:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 89:case 90:case 91:case 92:case 93:case 122:case 127:case 128:case 129:case 130:case 133:case 136:case 137:case 138:case 139:case 140:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 180:case 181:case 182:case 183:case 184:case 189:case 215:case 216:case 222:case 226:case 227:case 228:case 229:case 243:case 244:case 245:case 261:case 262:case 276:case 278:case 307:case 345:case 364:case 365:case 366:case 383:case 385:case 387:case 412:case 415:return u[_];case 49:case 179:return"undefined";case 50:case 178:return"null";case 54:case 185:return["symbol",u[_]];case 60:return["str",...u[_-1]];case 62:case 195:case 199:case 297:return[...u[_-1],u[_]];case 64:case 237:case 241:case 381:case 410:return u[_-2];case 65:return"";case 68:return["regex",u[_-1]];case 69:return["regex-index",u[_-2],u[_]];case 70:return["regex-index",u[_],null];case 71:case 125:return["=",u[_-2],u[_]];case 72:return["=",u[_-3],u[_]];case 73:case 126:return["=",u[_-4],u[_-1]];case 74:return["state",u[_-2],u[_]];case 75:return["state",u[_-3],u[_]];case 76:return["state",u[_-4],u[_-1]];case 77:case 79:return["computed",u[_-2],u[_]];case 78:return["computed",u[_-3],u[_]];case 80:return["readonly",u[_-2],u[_]];case 81:return["readonly",u[_-3],u[_]];case 82:return["readonly",u[_-4],u[_-1]];case 83:case 85:return["effect",u[_-2],u[_]];case 84:return["effect",u[_-3],u[_]];case 86:case 87:case 88:return["effect",null,u[_]];case 94:case 107:case 145:return[".",u[_-2],u[_]];case 95:case 108:case 146:return["?.",u[_-2],u[_]];case 96:case 98:case 109:case 147:return["[]",u[_-3],u[_-1]];case 97:case 99:case 110:case 148:return["[]",u[_-5],u[_-2]];case 100:case 149:return[".{}",u[_-4],...u[_-2]];case 101:case 150:return["?.{}",u[_-4],...u[_-2]];case 102:case 151:return[".{}",u[_-6],...u[_-3]];case 103:case 152:return["?.{}",u[_-6],...u[_-3]];case 104:return[u[_-1][0],u[_-3],...u[_-1].slice(1)];case 105:return["optindex",u[_-4],u[_-1]];case 106:return["optindex",u[_-6],u[_-2]];case 111:return["object-comprehension",u[_-8],u[_-6],[["for-of",u[_-4],u[_-2],!1]],[]];case 112:return["object-comprehension",u[_-10],u[_-8],[["for-of",u[_-6],u[_-4],!1]],[u[_-2]]];case 113:return["object-comprehension",u[_-9],u[_-7],[["for-of",u[_-4],u[_-2],!0]],[]];case 114:return["object-comprehension",u[_-11],u[_-9],[["for-of",u[_-6],u[_-4],!0]],[u[_-2]]];case 115:return["object",...u[_-2]];case 116:case 155:case 196:case 217:case 236:return[];case 119:case 158:case 165:case 220:case 240:case 380:case 409:return[...u[_-3],u[_]];case 120:case 159:case 221:case 242:case 382:case 411:return[...u[_-5],...u[_-2]];case 121:return[null,u[_],u[_]];case 123:case 160:return[":",u[_-2],u[_]];case 124:case 161:return[":",u[_-4],u[_-1]];case 131:return["dynamicKey",u[_-1]];case 132:return["[]","this",u[_-1]];case 134:case 135:case 162:case 230:return["...",u[_]];case 141:case 234:return["super",...u[_]];case 142:case 143:case 144:case 232:case 235:return[u[_-1],...u[_]];case 153:return["map-literal"];case 154:return["map-literal",...u[_-2]];case 166:return[u[_],u[_],null];case 167:return[u[_-2],u[_],null];case 168:return[u[_-2],u[_-2],u[_]];case 169:return[u[_-4],u[_-2],u[_]];case 186:return["array"];case 187:return["array",...u[_-1]];case 188:return["array",...u[_-2],...u[_-1]];case 190:return[...u[_-2],...u[_]];case 191:return[...u[_-3],...u[_]];case 192:return[...u[_-2],...u[_-1]];case 193:return[...u[_-5],...u[_-4],...u[_-2],...u[_-1]];case 197:return[...u[_]];case 200:return null;case 202:return"..";case 203:case 246:return"...";case 204:return[u[_-2],u[_-3],u[_-1]];case 205:case 435:case 437:case 438:case 452:case 454:return[u[_-1],u[_-2],u[_]];case 206:return[u[_],u[_-1],null];case 207:return[u[_-1],null,u[_]];case 208:return[u[_],null,null];case 209:return["def",u[_-4],u[_-2],u[_]];case 210:return["def",u[_-1],[],u[_]];case 211:case 213:return[u[_-1],u[_-3],u[_]];case 212:case 214:return[u[_-1],[],u[_]];case 223:case 346:return["default",u[_-2],u[_]];case 224:return["rest",u[_]];case 225:return["expansion"];case 231:return["tagged-template",u[_-1],u[_]];case 233:return["optcall",u[_-2],...u[_]];case 249:case 250:return"this";case 251:return[".","this",u[_]];case 252:return[".","super",u[_]];case 253:return["[]","super",u[_-1]];case 254:return["[]","super",u[_-2]];case 255:return[".","new",u[_]];case 256:return[".","import",u[_]];case 257:return["block"];case 258:return["block",...u[_-1]];case 259:return u[_-1].length===1?u[_-1][0]:["block",...u[_-1]];case 260:return u[_-2].length===1?u[_-2][0]:["block",...u[_-2]];case 263:return["return",u[_]];case 264:return["return",u[_-1]];case 265:return["return"];case 266:return["throw",u[_]];case 267:return["throw",u[_-1]];case 268:return["yield"];case 269:return["yield",u[_]];case 270:return["yield",u[_-1]];case 271:return["yield-from",u[_]];case 272:return["if",u[_-1],u[_]];case 273:return u[_-4].length===3?["if",u[_-4][1],u[_-4][2],["if",u[_-1],u[_]]]:[...u[_-4],["if",u[_-1],u[_]]];case 274:return["if",["!",u[_-1]],u[_]];case 275:return["if",["!",u[_-3]],u[_-2],u[_]];case 277:return u[_-2].length===3?["if",u[_-2][1],u[_-2][2],u[_]]:[...u[_-2],u[_]];case 279:case 280:return["if",u[_],[u[_-2]]];case 281:return["?:",u[_-4],u[_-6],u[_-1]];case 282:return["?:",u[_-2],u[_-4],u[_]];case 283:case 284:return["if",["!",u[_]],[u[_-2]]];case 285:return["try",u[_]];case 286:return["try",u[_-1],u[_]];case 287:return["try",u[_-2],u[_]];case 288:return["try",u[_-3],u[_-2],u[_]];case 289:case 290:case 417:case 420:case 422:return[u[_-1],u[_]];case 291:return[null,u[_]];case 292:return["switch",u[_-3],u[_-1],null];case 293:return["switch",u[_-5],u[_-3],u[_-1]];case 294:return["switch",null,u[_-1],null];case 295:return["switch",null,u[_-3],u[_-1]];case 298:return["when",u[_-1],u[_]];case 299:return["when",u[_-2],u[_-1]];case 300:return["while",u[_]];case 301:return["while",u[_-2],u[_]];case 302:return["while",["!",u[_]]];case 303:return["while",["!",u[_-2]],u[_]];case 304:return u[_-1].length===2?[u[_-1][0],u[_-1][1],u[_]]:[u[_-1][0],u[_-1][1],u[_-1][2],u[_]];case 305:case 306:return u[_].length===2?[u[_][0],u[_][1],[u[_-1]]]:[u[_][0],u[_][1],u[_][2],[u[_-1]]];case 308:return["loop",u[_]];case 309:return["loop",[u[_]]];case 310:return["loop-n",u[_-1],u[_]];case 311:return["for-in",u[_-3],u[_-1],null,null,u[_]];case 312:return["for-in",u[_-5],u[_-3],null,u[_-1],u[_]];case 313:return["for-in",u[_-5],u[_-3],u[_-1],null,u[_]];case 314:return["for-in",u[_-7],u[_-5],u[_-1],u[_-3],u[_]];case 315:return["for-in",u[_-7],u[_-5],u[_-3],u[_-1],u[_]];case 316:return["for-of",u[_-3],u[_-1],!1,null,u[_]];case 317:return["for-of",u[_-5],u[_-3],!1,u[_-1],u[_]];case 318:return["for-of",u[_-3],u[_-1],!0,null,u[_]];case 319:return["for-of",u[_-5],u[_-3],!0,u[_-1],u[_]];case 320:return["for-as",u[_-3],u[_-1],!1,null,u[_]];case 321:return["for-as",u[_-5],u[_-3],!1,u[_-1],u[_]];case 322:case 324:return["for-as",u[_-3],u[_-1],!0,null,u[_]];case 323:case 325:return["for-as",u[_-5],u[_-3],!0,u[_-1],u[_]];case 326:return["for-in",[],u[_-1],null,null,u[_]];case 327:return["for-in",[],u[_-3],u[_-1],null,u[_]];case 328:return["comprehension",u[_-4],[["for-in",u[_-2],u[_],null]],[]];case 329:return["comprehension",u[_-6],[["for-in",u[_-4],u[_-2],null]],[u[_]]];case 330:return["comprehension",u[_-6],[["for-in",u[_-4],u[_-2],u[_]]],[]];case 331:return["comprehension",u[_-8],[["for-in",u[_-6],u[_-4],u[_]]],[u[_-2]]];case 332:return["comprehension",u[_-8],[["for-in",u[_-6],u[_-4],u[_-2]]],[u[_]]];case 333:return["comprehension",u[_-4],[["for-of",u[_-2],u[_],!1]],[]];case 334:return["comprehension",u[_-6],[["for-of",u[_-4],u[_-2],!1]],[u[_]]];case 335:return["comprehension",u[_-5],[["for-of",u[_-2],u[_],!0]],[]];case 336:return["comprehension",u[_-7],[["for-of",u[_-4],u[_-2],!0]],[u[_]]];case 337:return["comprehension",u[_-4],[["for-as",u[_-2],u[_],!1,null]],[]];case 338:return["comprehension",u[_-6],[["for-as",u[_-4],u[_-2],!1,null]],[u[_]]];case 339:return["comprehension",u[_-5],[["for-as",u[_-2],u[_],!0,null]],[]];case 340:return["comprehension",u[_-7],[["for-as",u[_-4],u[_-2],!0,null]],[u[_]]];case 341:return["comprehension",u[_-4],[["for-as",u[_-2],u[_],!0,null]],[]];case 342:return["comprehension",u[_-6],[["for-as",u[_-4],u[_-2],!0,null]],[u[_]]];case 343:return["comprehension",u[_-2],[["for-in",[],u[_],null]],[]];case 344:return["comprehension",u[_-4],[["for-in",[],u[_-2],u[_]]],[]];case 348:case 384:case 386:case 413:case 414:case 416:return[u[_-2],u[_]];case 349:return["class",null,null];case 350:return["class",null,null,u[_]];case 351:return["class",null,u[_]];case 352:return["class",null,u[_-1],u[_]];case 353:return["class",u[_],null];case 354:return["class",u[_-1],null,u[_]];case 355:return["class",u[_-2],u[_]];case 356:return["class",u[_-3],u[_-1],u[_]];case 357:return["enum",u[_-1],u[_]];case 358:return["schema",u[_]];case 359:return["component",null,["block",...u[_-1]]];case 360:return["component",u[_-3],["block",...u[_-1]]];case 367:return["offer",u[_]];case 368:return["accept",u[_]];case 369:case 370:return["render",u[_]];case 371:case 374:return["import","{}",u[_]];case 372:case 373:return["import",u[_-2],u[_]];case 375:return["import",u[_-4],u[_]];case 376:return["import",u[_-4],u[_-2],u[_]];case 377:return["import",u[_-7],u[_-4],u[_]];case 388:return["*",u[_]];case 389:return["export","{}"];case 390:return["export",u[_-2]];case 391:case 392:case 393:case 394:case 398:case 399:case 400:case 401:return["export",u[_]];case 395:return["export",["=",u[_-2],u[_]]];case 396:return["export",["=",u[_-3],u[_]]];case 397:return["export",["=",u[_-4],u[_-1]]];case 402:return["export-default",u[_]];case 403:return["export-default",u[_-1]];case 404:return["export-all",u[_]];case 405:return["export-from","{}",u[_]];case 406:return["export-from",u[_-4],u[_]];case 418:case 419:case 421:case 457:return["do-iife",u[_]];case 423:return["-",u[_]];case 424:return["+",u[_]];case 425:return["?",u[_-1]];case 426:return["presence",u[_-1]];case 427:return["await",u[_]];case 428:return["await",u[_-1]];case 429:return["--",u[_],!1];case 430:return["++",u[_],!1];case 431:return["--",u[_-1],!0];case 432:return["++",u[_-1],!0];case 433:return["+",u[_-2],u[_]];case 434:return["-",u[_-2],u[_]];case 436:return["**",u[_-2],u[_]];case 439:return["&",u[_-2],u[_]];case 440:return["^",u[_-2],u[_]];case 441:return["|",u[_-2],u[_]];case 442:case 443:case 444:case 445:case 446:case 447:return["control",u[_-1],u[_-2],u[_]];case 448:return["&&",u[_-2],u[_]];case 449:return["||",u[_-2],u[_]];case 450:return["??",u[_-2],u[_]];case 451:return["|>",u[_-2],u[_]];case 453:return["?:",u[_-4],u[_-2],u[_]];case 455:return[u[_-3],u[_-4],u[_-1]];case 456:return[u[_-2],u[_-3],u[_]]}},parseError(f,l){let h,w,u,_,D,c,A;if(l.recoverable)return this.trace(f);else throw u=(l.line||0)+1,h=l.loc?.c||0,A=l.token?` (token: ${l.token})`:"",c=l.text?` near '${l.text}'`:"",_=`line ${u}, column ${h}`,D=`Parse error at ${_}${A}${c}: ${f}`,w=Error(D),w.hash=l,w},parse(f){let l,h,w,u,_,D,c,A,$,R,M,z,F,W,Q,i,U,Y,H,O,q,n,K,Z,G,J,N,g;[q,g,M]=[[0],[null],[]],[W,J,Z,K,U]=[this.parseTable,"",0,0,0],[h,l]=[2,1],$=Object.create(this.lexer),H={ctx:{}};for(let L in this.ctx){if(!Object.hasOwn(this.ctx,L))continue;let T=this.ctx[L];H.ctx[L]=T}if($.setInput(f,H.ctx),[H.ctx.lexer,H.ctx.parser]=[$,this],$.loc==null)$.loc={};G=$.loc,M.push(G),this.parseError=typeof H.ctx.parseError==="function"?H.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let L;if(L=$.lex()||l,typeof L!=="number")L=this.symbolIds[L]||L;return L},n=Q=O=w=i=F=c=z=_=null,Y={};while(!0){if(O=q[q.length-1],n==null)n=A();if(w=W[O]?.[n],w==null){if(u="",!U)_=(()=>{let L=[];for(let T in W[O]){if(!Object.hasOwn(W[O],T))continue;if(this.tokenNames[T]&&T>h)L.push(`'${this.tokenNames[T]}'`)}return L})();throw u=(()=>{if($.showPosition)return`Parse error on line ${Z+1}:
|
|
885
|
-
${
|
|
886
|
-
Expecting ${_.join(", ")}, got '${this.tokenNames[n]||n}'`;else return`Parse error on line ${Z+1}: Unexpected ${n===l?"end of input":`'${this.tokenNames[n]||n}'`}`,this.parseError(u,{text:$.match,token:this.tokenNames[n]||n,line:$.line,loc:G,expected:_})})(),Error(u)}if(w>0)if(q.push(n,w),g.push($.text),M.push($.loc),n=null,!Q){if([K,J,Z,G]=[$.len,$.text,$.line,$.loc],U>0)U--}else[n,Q]=[Q,null];else if(w<0){if(c=this.ruleTable[-w*2+1],Y.$=g[g.length-c],R=M[M.length-(c||1)],Y._$={r:R.r,c:R.c},i=this.ruleActions.call(Y,-w,g,M,H.ctx),i!=null)Y.$=i;if(Array.isArray(Y.$))Y.$.loc=Y._$;if(c)q.length-=c*2,g.length-=c,M.length-=c;q.push(this.ruleTable[-w*2]),g.push(Y.$),M.push(Y._$),z=W[q[q.length-2]][q[q.length-1]],q.push(z)}else if(w===0)return g[g.length-1]}},trace(){},ctx:{}},w4=(f={})=>{let l=Object.create(h4);return Object.defineProperty(l,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),l},M1=w4();var w0=M1.parse.bind(M1);var $2=null;function V2(f){$2=f}var c4=new Set(["input","shape","model","mixin","enum"]),j2="input",D4=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"]),A4=new Set(["TERMINATOR","INDENT","OUTDENT","=","+=","-=","*=","/=","%=","**=","//=","%%=","?=","??=","&&=","||=","&=","|=","^=","<<=",">>=",">>>=","READONLY_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","THEN","IF","UNLESS","UNARY","!","NOT"]);function d1(f,l){if(f)f.prototype.rewriteSchema=function(){$4(this)},T1._LexerCtor=f;if(l)l.prototype.emitSchema=function(h,w,u){return Z4(this,h,w,u)},l.prototype.getSchemaRuntime=function(){let h=this.options?.schemaMode||"migration";return m4({mode:h})}}var T2=new Set(["defaultMaxString"]);function $4(f){let l=f.tokens,h={defaultMaxString:null},w=0,u=0;while(u<l.length){let _=l[u];if(_[0]==="INDENT")w++;else if(_[0]==="OUTDENT")w--;let D=R4(l,u,h,w);if(D>0){l.splice(u,D);continue}if(M4(l,u))U4(f,l,u,h);u++}}function R4(f,l,h,w){let u=f[l];if(!u||u[0]!=="IDENTIFIER"||u[1]!=="schema")return 0;if(f[l+1]?.[0]!==".")return 0;let _=f[l+2];if(!_||_[0]!=="PROPERTY")return 0;if(f[l+3]?.[0]!=="=")return 0;let D=f[l-1];if(D){let M=D[0];if(M!=="TERMINATOR"&&M!=="INDENT"&&M!=="OUTDENT")return 0}let c=_[1];if(!T2.has(c))throw b(_,`Unknown schema pragma 'schema.${c}'. Known pragmas: ${[...T2].join(", ")}.`);if(w>0)throw b(_,`Schema pragma 'schema.${c}' must be declared at file top level. It was found inside a nested block (function / class / if / loop body), where it would leak into later top-level schemas.`);let A=f[l+4];if(!A||A[0]!=="NUMBER")throw b(A||_,`Pragma 'schema.${c}' requires a number literal. Example: schema.${c} = 100.`);let $=Number(A[1]);if(!Number.isFinite($)||$<0||!Number.isInteger($))throw b(A,`Pragma 'schema.${c}' expects a non-negative integer (got ${A[1]}). Use 0 to disable.`);h[c]=$===0?null:$;let R=l+5;if(f[R]?.[0]==="TERMINATOR")R++;return R-l}function M4(f,l){let h=f[l];if(!h||h[0]!=="IDENTIFIER"||h[1]!=="schema")return!1;let w=f[l-1];if(w){let _=w[0];if(_==="."||_==="?.")return!1;if(w[0]==="IDENTIFIER"||w[0]==="PROPERTY"||w[0]===")"||w[0]==="]"||w[0]==="}"||w[0]==="STRING"||w[0]==="NUMBER"){if(!A4.has(_))return!1}}let u=l+1;if(f[u]?.[0]==="SYMBOL")u++;if(f[u]?.[0]==="TERMINATOR"){if(f[u][1]===";")return!0;u++}return f[u]?.[0]==="INDENT"}function U4(f,l,h,w){let u=l[h],_=null,D=j2,c=h+1;if(l[c]?.[0]==="SYMBOL"){_=l[c];let F=_[1];if(!c4.has(F))throw b(_,`Unknown schema kind :${F}. Expected one of :input, :shape, :model, :mixin, :enum.`);D=F,c++}let A,$;if(l[c]?.[0]==="TERMINATOR"&&l[c][1]===";"){let F=c+1,W=F,Q=0,i=l[F]?.loc?.r??null;while(W<l.length){let U=l[W],Y=U[0];if(Q===0&&i!=null&&U.loc&&U.loc.r>i)break;if(Y==="("||Y==="["||Y==="{"||Y==="CALL_START"||Y==="INDEX_START"||Y==="PARAM_START")Q++;else if(Y===")"||Y==="]"||Y==="}"||Y==="CALL_END"||Y==="INDEX_END"||Y==="PARAM_END")Q--;else if(Q===0&&Y==="TERMINATOR"&&U[1]!==";")break;else if(Q===0&&(Y==="INDENT"||Y==="OUTDENT"))break;else if(Q===0&&Y==="->")throw b(U,"Inline schema body does not support '->' (method/hook/transform). Use the indented form.");else if(Q===0&&Y==="EFFECT")throw b(U,"Inline schema body does not support '~>' (computed getter). Use the indented form.");else if(Q===0&&Y==="UNARY_MATH"&&U[1]==="!"&&l[W+1]?.[0]==="COMPARE"&&l[W+1][1]===">")throw b(U,"Inline schema body does not support '!>' (eager derived). Use the indented form.");W++}while(W>F&&l[W-1][0]==="TERMINATOR")W--;if(A=l.slice(F,W),$=W,!A.length)throw b(u,`Inline schema body is empty. Either add '; field; …' entries after 'schema${_?" :"+D:""};' or switch to the indented form.`)}else{if(l[c]?.[0]==="TERMINATOR")c++;if(l[c]?.[0]!=="INDENT")throw b(u,`Expected indented schema body after 'schema${_?" :"+D:""}'.`);let F=c,W=V4(l,F);if(W<0)throw b(l[F],"Unterminated schema body.");A=l.slice(F+1,W),$=W+1}let R=F4(D,A,{schemaLoc:u.loc,kindLoc:_?.loc??null,kind:D,defaultMaxString:w?.defaultMaxString??null}),M=R2("SCHEMA","schema",u),z=R2("SCHEMA_BODY",D,u);z.data={descriptor:R},l.splice(h,$-h,M,z)}function F4(f,l,h){let w=[],u=z4(l);if(f===j2&&!h.kindLoc&&u.length>0&&u[0][0]?.[0]==="SYMBOL")f="enum",h.kind="enum";if(f==="enum")for(let _ of u)G4(_,w);else{for(let _ of u)i4(f,_,w,h);if(f==="mixin")for(let _ of w){if(_.tag==="method"||_.tag==="computed"||_.tag==="hook")throw b({loc:_.headerLoc||_.loc},`:mixin schemas are fields-only. '${_.name}' is a ${_.tag}; move it to a :shape or :model.`);if(_.tag==="ensure")throw b({loc:_.headerLoc||_.loc},":mixin schemas don't accept @ensure refinements. Move the invariant to a :shape or :model that composes this mixin.");if(_.tag==="directive"&&_.name!=="mixin")throw b({loc:_.loc},`:mixin schemas only accept '@mixin Name' directives. '@${_.name}' is not allowed.`)}else if(f==="input")for(let _ of w){if(_.tag==="method"||_.tag==="computed"||_.tag==="hook")throw b({loc:_.headerLoc||_.loc},`:input schemas are fields-only. '${_.name}' is a ${_.tag}; use :shape or :model if you need behavior.`);if(_.tag==="directive"&&_.name!=="mixin")throw b({loc:_.loc},`:input schemas only accept '@mixin Name' and '@ensure'. '@${_.name}' is not allowed.`)}else if(f==="shape")for(let _ of w){if(_.tag==="hook")throw b({loc:_.headerLoc||_.loc},`:shape schemas don't have lifecycle hooks. '${_.name}' runs only on :model; move it or remove it.`);if(_.tag==="directive"&&_.name!=="mixin")throw b({loc:_.loc},`:shape schemas only accept '@mixin Name'. '@${_.name}' is :model-only.`)}}return{kind:f,loc:h.schemaLoc,kindLoc:h.kindLoc,entries:w}}function z4(f){let l=[],h=[],w=0;for(let u of f){let _=u[0];if(_==="INDENT")w++;if(_==="OUTDENT")w--;if(_==="TERMINATOR"&&w===0){if(h.length)l.push(h),h=[];continue}h.push(u)}if(h.length)l.push(h);return l}var W4=new Set(["string","email","url","phone","zip"]);function i4(f,l,h,w){let u=l[0];if(!u)return;if(u[0]==="@"){let n=l[1];if(!n||n[0]!=="IDENTIFIER"&&n[0]!=="PROPERTY")throw b(u,"Expected directive name after '@'.");let K=l.slice(2),Z=n[1];if(Z==="ensure"){let J=O4(K,u);for(let N of J)h.push({tag:"ensure",name:"ensure",message:N.message,paramTokens:N.paramTokens,bodyTokens:N.bodyTokens,loc:N.loc,headerLoc:u.loc});return}let G=null;if(Z==="belongs_to"||Z==="has_many"||Z==="has_one"||Z==="one"||Z==="many"||Z==="mixin"){let J=K[0];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")){let N=J.data?.predicate===!0;if(!N&&K[1]?.[0]==="?")N=!0;G=[{target:J[1],optional:N}]}}h.push({tag:"directive",name:Z,args:G,argTokens:K,loc:u.loc});return}if(u[0]==="PROPERTY"){Y4(f,u,l,h);return}if(u[0]!=="IDENTIFIER")throw b(u,`Unexpected ${u[0]} at schema top level. Allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), or computed getters ('name: ~> body').`);let _=u[1];if(l[1]?.[0]===":")throw b(l[1],"Schema fields use 'name type' (space, no colon). For methods or computed use 'name: -> body' or 'name: ~> body'.");let D=C4(u),c=1;while(c<l.length){let n=l[c];if(!(l[c-1]&&!l[c-1].spaced))break;if(n[0]==="#"||n[0]==="?"||n[0]==="!"){D.push(n[0]),c++;continue}break}let A=l[c];if(A?.[0]===":")throw b(A,"Schema fields use 'name type' (space, no colon). Got 'name:'. For methods/computed use 'name: -> body' or 'name: ~> body'.");let $="string",R=null;if(A?.[0]==="IDENTIFIER")$=A[1],c++;else if(A?.[0]==="STRING"){R=[JSON.parse(A[1])],c++;while(l[c]?.[0]==="|"&&l[c+1]?.[0]==="STRING")c++,R.push(JSON.parse(l[c][1])),c++;if(l[c]?.[0]==="|"){let n=l[c+1],K=n?.[0]??"<end>";throw b(n||l[c],`Literal unions contain string literals only. '${K}' is not allowed as a union member. Use the '?' modifier for nullability.`)}if(R.length<2)throw b(A,`Literal union needs at least two string literals. Use '${JSON.stringify(R[0])}' as a default with '[${JSON.stringify(R[0])}]' instead.`);$="literal-union"}let M=!1,z=l[c]?.[0],F=l[c+1]?.[0];if((z==="["||z==="INDEX_START")&&(F==="]"||F==="INDEX_END"))M=!0,c+=2;let W=l.slice(c);if((A?.[0]==="IDENTIFIER"||A?.[0]==="STRING")&&W[0]?.[0]==="->")throw b(W[0],`Field '${_}' has a transform after the type; a comma is required before '->'. Write '${_} ${$}, -> …'.`);let i=null,U=null,Y=null,H=null,O=null;if(W.length>0){if(W[0]?.[0]===",")W=W.slice(1);let n=C1(W);for(let K=0;K<n.length;K++){let Z=n[K];while(Z.length&&(Z[0][0]==="INDENT"||Z[0][0]==="TERMINATOR"))Z=Z.slice(1);if(!Z.length)continue;if(Z[0][0]!=="->"){let J=H4(Z);if(J>0)throw b(Z[J],`Field '${_}' has a transform after other content; a comma is required before '->'. Write 'name! <constraints>, -> <body>'.`)}let G=Z[0];if(G[0]!=="->"){while(Z.length&&(Z[Z.length-1][0]==="OUTDENT"||Z[Z.length-1][0]==="TERMINATOR"))Z=Z.slice(0,-1);if(!Z.length)continue;G=Z[0]}if(G[0]==="["||G[0]==="INDEX_START"){if(i)throw b(G,`Field '${_}' has more than one '[…]' constraint. At most one default / regex bracket per field.`);i=Z}else if(G[0]==="{"){if(U)throw b(G,`Field '${_}' has more than one '{…}' attrs bracket.`);U=Z}else if(Q4(Z)){if(Y)throw b(G,`Field '${_}' has more than one range constraint. Only one 'min..max' per field.`);Y=Z}else if(G[0]==="REGEX"&&Z.length===1){if(H)throw b(G,`Field '${_}' has more than one regex constraint.`);H=G}else if(G[0]==="->"){if(K!==n.length-1)throw b(G,`Transform '-> …' must be the last element on the field line for '${_}'.`);O=Z.slice(1)}else throw b(G,`Unexpected trailer for field '${_}'. Expected '[…]' default, '{…}' attrs, '/regex/', 'min..max' range, or '-> transform'.`)}}if(M&&R)throw b(A,"Array-of-literal-union is not supported. Use 'string[]' if you need an array of strings.");let q=null;if(w?.defaultMaxString!=null&&!H&&!R&&W4.has($))q=w.defaultMaxString;h.push({tag:"field",name:_,modifiers:D,typeName:$,array:M,literals:R,constraintTokens:i,attrsTokens:U,rangeTokens:Y,regexToken:H,transformTokens:O,defaultMax:q,loc:u.loc})}function H4(f){let l=0;for(let h=0;h<f.length;h++){let w=f[h][0];if(w==="("||w==="["||w==="{"||w==="CALL_START"||w==="INDEX_START"||w==="PARAM_START")l++;else if(w===")"||w==="]"||w==="}"||w==="CALL_END"||w==="INDEX_END"||w==="PARAM_END")l--;else if(l===0&&w==="->")return h}return-1}function Q4(f){let l=0,h=!1;if(f[l]?.[0]==="-"&&f[l+1]?.[0]==="NUMBER")l+=2,h=!0;else if(f[l]?.[0]==="NUMBER")l++,h=!0;if(f[l]?.[0]!=="..")return!1;l++;let w=!1;if(f[l]?.[0]==="-"&&f[l+1]?.[0]==="NUMBER")l+=2,w=!0;else if(f[l]?.[0]==="NUMBER")l++,w=!0;return(h||w)&&l===f.length}function Y4(f,l,h,w){let u=l[1],_=h[1];if(!_||_[0]!==":")throw b(l,`Expected ':' after '${u}' before arrow.`);let D=h[2],c=h[3],A,$,R;if(D&&D[0]==="->")A="->",$=D.loc,R=3;else if(D&&D[0]==="EFFECT")A="~>",$=D.loc,R=3;else if(D&&D[0]==="UNARY_MATH"&&D[1]==="!"&&c&&c[0]==="COMPARE"&&c[1]===">"&&!D.spaced)A="!>",$=D.loc,R=4;else throw b(_,`Schema top-level '${u}:' must be followed by '->' (method/hook), '~>' (computed getter), or '!>' (eager derived).`);let M=h.slice(R),z=D4.has(u),F;if(A==="~>")F="computed";else if(A==="!>")F="derived";else if(f==="model"&&z)F="hook";else F="method";w.push({tag:F,name:u,arrow:A,paramTokens:[],bodyTokens:M,headerLoc:l.loc,arrowLoc:$})}function O4(f,l){let h=f;if(!h.length)throw b(l,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");if(h[0]?.[0]==="CALL_START"&&h[h.length-1]?.[0]==="CALL_END")h=h.slice(1,-1);if(!h.length)throw b(l,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");let w=h[0];if(w[0]==="["||w[0]==="INDEX_START"){let _=K4(h,w),D=n4(_);if(D.length===0)throw b(w,"@ensure [...] must contain at least one 'message, fn' pair.");if(D.length%2!==0)throw b(w,`@ensure [...] must have pairs of 'message, fn' (got ${D.length} elements; odd count).`);let c=[];for(let A=0;A<D.length;A+=2)c.push(C2(D[A],D[A+1],w));return c}let u=C1(h);if(u.length<2)throw b(w,"@ensure inline form must be 'message, (x) -> body'. Did you forget the comma?");if(u.length>2)throw b(w,`@ensure inline form takes exactly 'message, fn' (got ${u.length} comma-separated parts). Use '@ensure [...]' for multiple refinements.`);return[C2(u[0],u[1],w)]}function K4(f,l){let h=0,w=[];for(let u=0;u<f.length;u++){let _=f[u],D=_[0];if(D==="["||D==="INDEX_START"){if(h++,h===1)continue}if(D==="]"||D==="INDEX_END"){if(h--,h===0){if(u<f.length-1)throw b(f[u+1],"@ensure [...] must be the only argument — extra tokens after ']'.");if(w.length>=2&&w[0][0]==="INDENT"&&w[w.length-1][0]==="OUTDENT"){let c=0,A=!1;for(let $=0;$<w.length;$++)if(w[$][0]==="INDENT")c++;else if(w[$][0]==="OUTDENT"){if(c--,c===0&&$===w.length-1){A=!0;break}if(c===0)break}if(A)w=w.slice(1,-1)}return w}}if(h>=1)w.push(_)}throw b(l,"@ensure: unclosed '['.")}function n4(f){let l=[],h=[],w=0;for(let u of f){let _=u[0];if(_==="("||_==="["||_==="{"||_==="CALL_START"||_==="INDEX_START"||_==="PARAM_START"||_==="INDENT")w++;if(_===")"||_==="]"||_==="}"||_==="CALL_END"||_==="INDEX_END"||_==="PARAM_END"||_==="OUTDENT")w--;if(w===0&&(_===","||_==="TERMINATOR")){if(h.length)l.push(h),h=[];continue}h.push(u)}if(h.length)l.push(h);return l}function C2(f,l,h){if(!f||!f.length)throw b(h,"@ensure: missing message (expected a string literal).");if(f.length!==1||f[0][0]!=="STRING")throw b(f[0]||h,"@ensure: each refinement's first element must be a string literal message.");let w=f[0],u=JSON.parse(w[1]);if(!l||!l.length)throw b(w,"@ensure: missing function after message.");let _=l[0];if(_[0]!=="("&&_[0]!=="PARAM_START")throw b(_,"@ensure: expected '(args) -> body' after the message. Predicates must declare their parameter explicitly — '(u) -> ...'.");let D=1,c=1,A=[];while(c<l.length&&D>0){let M=l[c],z=M[0];if(z==="("||z==="PARAM_START")D++;if(z===")"||z==="PARAM_END"){if(D--,D===0){c++;break}}A.push(M),c++}if(D!==0)throw b(_,"@ensure: unclosed '(' in predicate parameters.");let $=l[c];if(!$||$[0]!=="->")throw b($||l[c-1]||w,"@ensure: expected '->' after predicate parameters.");let R=l.slice(c+1);if(!R.length)throw b($,"@ensure: predicate function body is empty.");return{message:u,paramTokens:A,bodyTokens:R,loc:w.loc}}function q4(f,l){if(!f.length)return[];return C1(f).map((w)=>{let u=w.filter((_)=>_[0]!=="TERMINATOR");if(u.length!==1||u[0][0]!=="IDENTIFIER")throw b(u[0]||l,"@ensure: predicate parameters must be plain identifiers.");return u[0][1]})}function G4(f,l){let h=f[0];if(!h)return;if(h[0]==="@"){let _=f[1],D=_&&(_[0]==="IDENTIFIER"||_[0]==="PROPERTY")?_[1]:"directive";throw b(h,`:enum schemas don't accept '@${D}'. Enums hold only :symbol members. Move the invariant to a :shape or :model that uses this enum as a field type.`)}if(h[0]!=="SYMBOL")throw b(h,`Enum member must be a :symbol. Use ':${h[1]??"name"}' for a bare member or ':${h[1]??"name"} value' for a valued one.`);let w=h[1],u=f[1];if(!u){l.push({tag:"enum-member",name:w,value:void 0,loc:h.loc});return}if(u[0]===":")throw b(u,`Enum member ':${w}' — drop the ':' before the value. Use ':${w} value'.`);if(f.length>2)throw b(f[2],`Extra tokens after enum member ':${w}' value.`);l.push({tag:"enum-member",name:w,value:j4(u),loc:h.loc})}function Z4(f,l,h,w){let u=h[0],_=J4(u);if(!_)throw Error("schema: missing descriptor on SCHEMA_BODY token");f.usesSchemas=!0;let D=f._schemaName||null,c=[`kind: ${JSON.stringify(_.kind)}`];if(D)c.push(`name: ${JSON.stringify(D)}`);return c.push(`entries: [${_.entries.map((A)=>X4(f,A)).join(", ")}]`),`__schema({${c.join(", ")}})`}function J4(f){if(f&&typeof f==="object"){if(f.descriptor)return f.descriptor;if(f.data?.descriptor)return f.data.descriptor}return null}function X4(f,l){switch(l.tag){case"field":{let h=['tag: "field"',`name: ${JSON.stringify(l.name)}`,`modifiers: ${JSON.stringify(l.modifiers)}`,`typeName: ${JSON.stringify(l.typeName)}`,`array: ${l.array?"true":"false"}`];if(l.literals)h.push(`literals: ${JSON.stringify(l.literals)}`);let w=l.rangeTokens?y4(l.rangeTokens,l):null,u=l.constraintTokens?E4(l.constraintTokens,l):null,_=l.regexToken?I4(l.regexToken):null,D=B4(w,u,_,l);if(D)h.push(`constraints: ${D}`);if(l.transformTokens)h.push(`transform: ${P4(f,l.transformTokens)}`);return`{${h.join(", ")}}`}case"directive":{let h=['tag: "directive"',`name: ${JSON.stringify(l.name)}`],w=L4(l.name,l.argTokens||[]);if(w)h.push(`args: ${w}`);return`{${h.join(", ")}}`}case"ensure":{let h=N4(f,l);return`{${['tag: "ensure"',`message: ${JSON.stringify(l.message)}`,`fn: ${h}`].join(", ")}}`}case"computed":case"method":case"hook":case"derived":{let h=S4(f,l);return`{${[`tag: ${JSON.stringify(l.tag)}`,`name: ${JSON.stringify(l.name)}`,`fn: ${h}`].join(", ")}}`}case"enum-member":{let h=['tag: "enum-member"',`name: ${JSON.stringify(l.name)}`];if(l.value!==void 0)h.push(`value: ${JSON.stringify(l.value)}`);return`{${h.join(", ")}}`}default:return'{tag: "unknown"}'}}function S4(f,l){let h=T1(l.bodyTokens);if(!h)return"(function() {})";let w=["->",[],h];return f.emit(w,"value")}function P4(f,l){let h=T1(l);if(!h)return"(function() { return undefined; })";let w=["->",[],h];return f.emit(w,"value")}function N4(f,l){let h=T1(l.bodyTokens);if(!h)return"(function() { return undefined; })";let u=["->",q4(l.paramTokens,l),h];return f.emit(u,"value")}function E4(f,l){let h=f.slice(1,-1),w=C1(h);if(!w.length)return{c:null};let u=w.map((_)=>m2(_,l));if(u.length===1){let _=u[0];if(_ instanceof RegExp)throw b(f[0],`Regex constraints are written bare, not in brackets. Replace '[${_}]' with '${_}'.`);return{c:{default:_}}}if(u.length===2&&typeof u[0]==="number"&&typeof u[1]==="number")throw b(f[0],`Size/value ranges use 'min..max' syntax, not brackets. Replace '[${u[0]}, ${u[1]}]' with '${u[0]}..${u[1]}'.`);if(u.length===3&&u.every((_)=>typeof _==="number"))throw b(f[0],`Range + default is two separate constraints in v2. Replace '[${u[0]}, ${u[1]}, ${u[2]}]' with '${u[0]}..${u[1]}, [${u[2]}]'.`);throw b(f[0],`Constraint bracket takes a single default value in v2. Got ${u.length} elements.`)}function I4(f){let l=f[1],h=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(l);if(!h)throw b(f,`Invalid regex literal ${JSON.stringify(l)}.`);try{return new RegExp(h[1],h[2])}catch(w){throw b(f,`Invalid regex '${l}': ${w.message}`)}}function y4(f,l){let h=0,w=()=>{let c=1;if(f[h]?.[0]==="-")c=-1,h++;let A=f[h++],$=m2([A],l);if(typeof $!=="number")throw b(A,"Range endpoints must be numeric literals.");return c*$},u;if(f[h]?.[0]!=="..")u=w();h++;let _;if(h<f.length)_=w();if(u!==void 0&&_!==void 0&&u>_)throw b(f[0],`Range '${u}..${_}' is reversed. Write the smaller endpoint first.`);let D={};if(u!==void 0)D.min=u;if(_!==void 0)D.max=_;return D}function B4(f,l,h,w){let u=l&&l.c||{},_=f&&f.min===void 0;if(f){if(f.min!==void 0)u.min=f.min;if(f.max!==void 0)u.max=f.max;if(_&&u.min===void 0&&w?.modifiers?.includes("!"))u.min=1}if(h)u.regex=h;if(w?.defaultMax!=null&&u.max===void 0)u.max=w.defaultMax;if(u.min!==void 0&&u.max!==void 0&&u.min>u.max){let D=f&&f.min!==void 0?`range min ${f.min}`:"implicit min=1 from `!`",c=f&&f.max!==void 0?`range max ${f.max}`:`pragma defaultMaxString=${w?.defaultMax}`;throw b({loc:w?.loc},`Field '${w?.name}' would have impossible constraints min=${u.min} > max=${u.max} after sugar is applied (${D} vs ${c}). Write an explicit range or drop the conflicting pragma.`)}if(u.min===void 0&&u.max===void 0&&u.default===void 0&&u.regex===void 0)return null;return b4(u)}function b4(f){let l=[];if(f.min!==void 0)l.push(`min: ${A2(f.min)}`);if(f.max!==void 0)l.push(`max: ${A2(f.max)}`);if(f.default!==void 0)l.push(`default: ${A2(f.default)}`);if(f.regex!==void 0)l.push(`regex: ${f.regex.toString()}`);return l.length?`{${l.join(", ")}}`:null}function A2(f){if(f===null)return"null";if(f===void 0)return"undefined";if(typeof f==="string")return JSON.stringify(f);if(typeof f==="number"||typeof f==="boolean")return String(f);if(f instanceof RegExp)return f.toString();return JSON.stringify(f)}function L4(f,l){if(f==="idStart"&&!l.length)throw b(null,"@idStart requires an integer literal, e.g. @idStart 10001.");if(!l.length)return null;if(f==="belongs_to"||f==="has_many"||f==="has_one"||f==="one"||f==="many"||f==="mixin"){let h=l[0];if(!h||h[0]!=="IDENTIFIER"&&h[0]!=="PROPERTY")throw b(h||l[l.length-1],`@${f} requires a target name.`);let w=h[1],u=h.data?.predicate===!0,_=1;if(!u&&l[_]?.[0]==="?")u=!0,_++;let D=[`target: ${JSON.stringify(w)}`];if(u)D.push("optional: true");return`[{${D.join(", ")}}]`}if(f==="index"){let h=[],w=!1,u=0;if(l[u]?.[0]==="IDENTIFIER"||l[u]?.[0]==="PROPERTY")h.push(l[u][1]),u++;else if(l[u]?.[0]==="["||l[u]?.[0]==="INDEX_START"){let D=[],c=1;u++;while(u<l.length&&c>0){let A=l[u];if(A[0]==="["||A[0]==="INDEX_START")c++;if(A[0]==="]"||A[0]==="INDEX_END"){if(c--,c===0){u++;break}}D.push(A),u++}for(let A of C1(D))if(A[0]&&(A[0][0]==="IDENTIFIER"||A[0][0]==="PROPERTY"))h.push(A[0][1])}if(l[u]?.[0]==="#")w=!0;let _=[`fields: ${JSON.stringify(h)}`];if(w)_.push("unique: true");return`[{${_.join(", ")}}]`}if(f==="idStart"){let h=l[0],w=1,u=h;if(h&&h[0]==="-"&&l[1]&&l[1][0]==="NUMBER")w=-1,u=l[1];if(!u||u[0]!=="NUMBER")throw b(h||l[l.length-1],"@idStart requires an integer literal, e.g. @idStart 10001.");let _=w*Number(u[1]);if(!Number.isInteger(_))throw b(u,"@idStart requires an integer literal; got "+u[1]+".");return"[{value: "+_+"}]"}return null}function m2(f,l){if(!f.length)throw b(null,"Empty constraint value.");let h=f[0],w=h[0];if(f.length===1){if(w==="NUMBER")return Number(h[1]);if(w==="STRING")return JSON.parse(h[1]);if(w==="BOOL")return h[1]==="true";if(w==="NULL")return null;if(w==="UNDEFINED")return;if(w==="REGEX")return T4(h[1]);if(w==="SYMBOL")return h[1]}if(f.length===2&&w==="-"&&f[1][0]==="NUMBER")return-Number(f[1][1]);throw b(h,`Constraint values must be literals (number, string, boolean, null, regex, :symbol). Got ${w}.`)}function T4(f){let l=typeof f==="string"?f:String(f),h=l.match(/^\/(.*)\/([gimsuy]*)$/s);return h?new RegExp(h[1],h[2]):new RegExp(l)}function T1(f){if(!f||!f.length)return null;let l=T1._LexerCtor;if(!l)throw Error("schema: parseBodyTokens called before Lexer was wired");let h=Object.create(l.prototype),w=f.slice();if(w.length>=2&&w[0]?.[0]==="INDENT"){let $=0,R=-1;for(let M=0;M<w.length;M++)if(w[M][0]==="INDENT")$++;else if(w[M][0]==="OUTDENT"){if($--,$===0){R=M;break}}if(R===w.length-1)w=w.slice(1,-1)}if(h.tokens=w,h.seenFor=h.seenImport=h.seenExport=!1,h.ends=[],h.indent=0,h.outdebt=0,h.indents=[],h.tokens[h.tokens.length-1]?.[0]!=="TERMINATOR")h.tokens.push(R2("TERMINATOR",`
|
|
887
|
-
`,f[f.length-1]));try{
|
|
888
|
-
`+L2;break;case"server":case"migration":throw Error("schema runtime mode '"+f+"' is not available in the browser. ORM and DDL features require side-effect-importing loader-server.js.");default:throw Error(`unknown schema runtime mode: ${f}`)}return(B2+l+b2).trimStart()}V2(v2);var v4=v2({mode:"browser"});if(typeof globalThis<"u"&&!globalThis.__ripSchema)try{(0,eval)(v4)}catch{}function r2(f){let l=f.prototype;l.rewriteTypes=function(){let h=this.tokens,w=this.typeRefNames=new Set,u=(_,D,c)=>{let A=[_,D];if(A.pre=0,A.data=null,A.loc=c?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,c)A.origin=c;return A};this.scanTokens((_,D,c)=>{let A=_[0];if(A==="IDENTIFIER"){let $=c[D+1];if($&&$[0]==="COMPARE"&&$[1]==="<"&&!$.spaced){let R=c[D-1]?.[0]==="DEF",M=x2(c,D+1);if(M){let z=D+1+M.length,F=!R&&c[z]?.[0]==="="&&c[z+1]?.[0]==="COMPONENT";if(R||F){if(!_.data)_.data={};if(_.data.typeParams=Q1(M),c.splice(D+1,M.length),R&&c[D+1]?.[0]==="("){c[D+1][0]="CALL_START";let W=1,Q=D+2;while(Q<c.length&&W>0){if(c[Q][0]==="("||c[Q][0]==="CALL_START")W++;if(c[Q][0]===")"||c[Q][0]==="CALL_END")W--;if(W===0)c[Q][0]="CALL_END";Q++}}}}}}if(A==="TYPE_ANNOTATION"){let $=c[D-1];if(!$)return 1;let R=g2(c,D+1),M=Q1(R),z=$,F="type";if($[0]==="CALL_END"||$[0]===")"){let Q=1,i=D-2;while(i>=0&&Q>0){let U=c[i][0];if(U==="CALL_END"||U===")")Q++;if(U==="CALL_START"||U==="(")Q--;i--}if(i>=0)z=c[i];F="returnType"}else if($[0]==="PARAM_END"){let Q=D+1+R.consumed,i=c[Q];if(i&&(i[0]==="->"||i[0]==="=>"))z=i;F="returnType"}else if($[0]==="IDENTIFIER"&&D>=2&&c[D-2]?.[0]==="DEF")F="returnType";if(!z.data)z.data={};z.data[F]=M;for(let Q of R)if(Q[0]==="IDENTIFIER")w.add(Q[1]);let W=1+R.consumed;return c.splice(D,W),0}if(A==="IDENTIFIER"&&_[1]==="type"){let $=c[D-1]?.[0];if(!(!$||$==="TERMINATOR"||$==="INDENT"||$==="EXPORT"))return 1;let M=D+1,z=c[M];if(!z||z[0]!=="IDENTIFIER")return 1;let F=z[1],W=$==="EXPORT",Q=W?D-1:D,i=M+1;if(c[i]?.[0]==="COMPARE"&&c[i]?.[1]==="<"&&!c[i].spaced){let q=x2(c,i);if(q){if(!z.data)z.data={};z.data.typeParams=Q1(q),c.splice(i,q.length)}}if(c[i]?.[0]!=="=")return 1;let U=(q)=>{let n=u("TYPE_DECL",F,z);if(n.data={name:F,typeText:q,exported:W},z.data?.typeParams)n.data.typeParams=z.data.typeParams;return n},Y=i+1,H=c[Y];if(H&&(H[0]==="TERMINATOR"||H[0]==="INDENT")){let q=g4(c,Y);if(q)return c.splice(Q,q.endIdx-Q+1,U(q.typeText)),0}if(H&&H[0]==="INDENT"){let q=U2(c,Y);return c.splice(Q,q-Q+1,U(M2(c,Y))),0}let O=g2(c,Y);return c.splice(Q,Y+O.consumed-Q,U(Q1(O))),0}if(A==="INTERFACE"){let $=D>=1&&c[D-1]?.[0]==="EXPORT",R=D+1,M=c[R];if(!M)return 1;let z=M[1],F=null,W=R+1;if(c[W]?.[0]==="EXTENDS")F=c[W+1]?.[1],W=W+2;if(c[W]?.[0]==="INDENT"){let Q=M2(c,W),i=U2(c,W),U=u("TYPE_DECL",z,M);U.data={name:z,kind:"interface",extends:F,typeText:Q,exported:$};let Y=$?D-1:D,H=i-Y+1;return c.splice(Y,H,U),0}return 1}return 1});for(let _=h.length-1;_>=0;_--){if(h[_][0]!=="DEF")continue;let D=h[_+1];if(!D||D[0]!=="IDENTIFIER")continue;let c=_+2;if(h[c]?.[0]!=="CALL_START")continue;let A=1;c++;while(c<h.length&&A>0){if(h[c][0]==="CALL_START")A++;if(h[c][0]==="CALL_END")A--;c++}let $=c-1,R=h[c];if(R&&R[0]!=="TERMINATOR")continue;let M=D.data?.returnType;if(!M){for(let U=_+2;U<=$;U++)if(h[U].data?.type){M=!0;break}}if(!M)continue;let z=h.slice(_,c+1),F=_>=1&&h[_-1]?.[0]==="EXPORT",W=F?_-1:_,Q=c+1-W,i=u("TYPE_DECL",D[1],D);if(i.data={name:D[1],kind:"overload",overloadTokens:z,exported:F},D.data?.typeParams)i.data.typeParams=D.data.typeParams;h.splice(W,Q,i)}}}function g2(f,l){let h=[],w=0,u=l;while(l<f.length){let _=f[l],D=_[0],c=D==="("||D==="["||D==="{"||D==="CALL_START"||D==="PARAM_START"||D==="INDEX_START"||D==="COMPARE"&&_[1]==="<",A=D===")"||D==="]"||D==="}"||D==="CALL_END"||D==="PARAM_END"||D==="INDEX_END"||D==="COMPARE"&&_[1]===">";if(D==="SHIFT"&&_[1]===">>"&&w>=2){w-=2,h.push(_),l++;continue}if(c){w++,h.push(_),l++;continue}if(A){if(w>0){w--,h.push(_),l++;continue}break}if(w===0){if(D==="INDENT"&&h.length>0&&h[h.length-1][0]==="=>"){l++;let $=1;while(l<f.length&&$>0)if(f[l][0]==="INDENT")$++,l++;else if(f[l][0]==="OUTDENT")$--,l++;else h.push(f[l]),l++;continue}if(D==="="||D==="REACTIVE_ASSIGN"||D==="COMPUTED_ASSIGN"||D==="READONLY_ASSIGN"||D==="EFFECT"||D==="TERMINATOR"||D==="INDENT"||D==="OUTDENT"||D==="->"||D===",")break}h.push(_),l++}return h.consumed=l-u,h}function Q1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);let l=f.map((h)=>h[1]).join(" ").replace(/\s+/g," ").trim();return l=l.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": ").replace(/ : /g,": "),l}function x2(f,l){if(l>=f.length)return null;let h=f[l];if(h[0]!=="COMPARE"||h[1]!=="<")return null;let w=[h],u=1,_=l+1;while(_<f.length&&u>0){let D=f[_];if(w.push(D),D[0]==="COMPARE"&&D[1]==="<")u++;else if(D[0]==="COMPARE"&&D[1]===">")u--;_++}return u===0?w:null}function M2(f,l){let h=[],w=l+1,u=1;while(w<f.length&&u>0){let _=f[w];if(_[0]==="INDENT"){u++,w++;continue}if(_[0]==="OUTDENT"){if(u--,u===0)break;w++;continue}if(_[0]==="TERMINATOR"){w++;continue}if(u===1&&_[0]==="["){let c=[];w++;while(w<f.length&&f[w][0]!=="]")c.push(f[w]),w++;if(w++,f[w]?.[1]===":"||f[w]?.[0]==="TYPE_ANNOTATION")w++;let A=[];while(w<f.length){let M=f[w];if(M[0]==="TERMINATOR"||M[0]==="OUTDENT")break;A.push(M),w++}let $=Q1(c),R=Q1(A);h.push(`[${$}]: ${R}`);continue}let D=_[0]==="PROPERTY"||_[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test(_[1])&&f[w+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&D){let c=_[1],A=!1,$=!1;if(w++,c==="readonly"&&f[w]&&(f[w][0]==="PROPERTY"||f[w][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[w][1])&&f[w+1]?.[0]==="TYPE_ANNOTATION")){if($=!0,c=f[w][1],f[w].data?.predicate)A=!0;w++}if(_.data?.predicate)A=!0;if(f[w]?.[1]==="?"&&!f[w]?.spaced)A=!0,w++;if(f[w]?.[1]===":"||f[w]?.[0]==="TYPE_ANNOTATION")w++;let R=[],M=0;while(w<f.length){let Q=f[w];if(Q[0]==="IDENTIFIER"&&Q[1]==="type"&&f[w+1]?.[0]==="INDENT"){w++;let i=M2(f,w);R.push(["",i]);let U=1;w++;while(w<f.length&&U>0){if(f[w][0]==="INDENT")U++;if(f[w][0]==="OUTDENT")U--;w++}continue}if(Q[0]==="INDENT"){M++,w++;continue}if(Q[0]==="OUTDENT"){if(M>0){M--,w++;continue}break}if(Q[0]==="TERMINATOR"&&M===0)break;R.push(Q),w++}let z=Q1(R),F=$?"readonly ":"",W=A?"?":"";h.push(`${F}${c}${W}: ${z}`)}else w++}return"{ "+h.join("; ")+" }"}function U2(f,l){let h=0;for(let w=l;w<f.length;w++){if(f[w][0]==="INDENT")h++;if(f[w][0]==="OUTDENT"){if(h--,h===0)return w}}return f.length-1}function g4(f,l){let h=l;if(f[h]?.[0]==="TERMINATOR")h++;if(f[h]?.[0]!=="INDENT")return null;let w=h;h++;while(h<f.length&&f[h][0]==="TERMINATOR")h++;if(!f[h]||f[h][1]!=="|")return null;let u=[],_=1;h=w+1;while(h<f.length&&_>0){let c=f[h];if(c[0]==="INDENT"){_++,h++;continue}if(c[0]==="OUTDENT"){if(_--,_===0)break;h++;continue}if(c[0]==="TERMINATOR"){h++;continue}if(c[1]==="|"&&_===1){h++;let A=[];while(h<f.length){let $=f[h];if($[0]==="TERMINATOR"||$[0]==="OUTDENT"||$[1]==="|"&&_===1)break;A.push($),h++}if(A.length>0)u.push(Q1(A));continue}h++}if(u.length===0)return null;let D=U2(f,w);return{typeText:u.join(" | "),endIdx:D}}var a2=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),d2=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),z2={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s2=new Set(Object.keys(z2)),x4=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),r4=new Set(["break","continue","debugger"]),a4=new Set(["NEW","TYPEOF","DELETE"]),d4=new Set(["IN","OF","INSTANCEOF"]),o1=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),t1=new Set([...o1,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","MAP_END","SYMBOL"]),s1=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","MAP_START","--","++","SYMBOL"]),s4=new Set(["+","-"]),k4=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),o4=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}","MAP_END","SYMBOL"]),Y1=new Set(["(","[","{","MAP_START","PICK_START","OPTPICK_START","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),W1=new Set([")","]","}","MAP_END","PICK_END","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),t4={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START",MAP_START:"MAP_END",MAP_END:"MAP_START",PICK_START:"PICK_END",PICK_END:"PICK_START",OPTPICK_START:"PICK_END"},k2=new Set(["CATCH","THEN","ELSE","FINALLY",...W1]),F2=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),p4=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),e4=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT","FOR"]),u5=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","REGEX_END",")","CALL_END","]","INDEX_END","}","MAP_END","PICK_END","BOOL","NULL","UNDEFINED","INFINITY","NAN","SUPER","THIS","@","SYMBOL"]),o2=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),f5=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),N1=new Set(["INDENT","OUTDENT","TERMINATOR"]),O1=(f)=>f?.[0]==="IDENTIFIER"||f?.[0]==="PROPERTY",k1=(f,l)=>{if(f?.[0]===".")return!0;if(f?.[0]==="-")return f.spaced===!1&&!f.newLine&&l?.spaced===!1&&!l?.newLine;return!1},t2=new Set([".","?."]),p2=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),_5=new Set([...t1,"++","--"]),e2=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),l5=new Set(["*","/","%","//","%%"]),h5=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),w5=new Set(["<<",">>",">>>"]),c5=new Set(["!","~"]),D5=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,A5=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,$5=/^(?:<=>|::|\*>|[-=]>|~>|~=|:=|=!|===|!==|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,R5=/^[^\n\S]+/,M5=/^(?:\n[^\n\S]*)+/,U5=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,F5=/^[-=]>/,z5=/^(?:~[=>]|=!)/,W5=/^(?:'''\\|"""\\|'''|"""|'|")/,i5=/^(?:[^\\']|\\[\s\S])*/,H5=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,Q5=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,Y5=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,u3=/\n+([^\n\S]*)(?=\S)/g,O5=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,f3=/^\w*/,K5=/^(?!.*(.).*\1)[gimsuy]*$/,n5=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,q5=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,G5=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,Z5=/\s+$/,_3=/^\s*(?:,|\??\.(?![.\d]))/,J5=65279;function p1(f,l,{pre:h=0,row:w=0,col:u=0,len:_=0,data:D=null}={}){let c=[f,l];return c.pre=h,c.data=D,c.loc={r:w,c:u,n:_},c.spaced=h>0,c.newLine=!1,c}function U1(f,l,h){let w=p1(f,l);if(w.generated=!0,h)w.origin=h;return w}function F1(f,{row:l=0,col:h=0,len:w=1}={}){let u=SyntaxError(f);throw u.location={first_line:l,first_column:h,last_column:h+w-1},u}function X5(f){if(f==null)return NaN;switch(f.charAt(1)){case"b":return parseInt(f.slice(2).replace(/_/g,""),2);case"o":return parseInt(f.slice(2).replace(/_/g,""),8);case"x":return parseInt(f.slice(2).replace(/_/g,""),16);default:return parseFloat(f.replace(/_/g,""))}}class i1{tokenize(f,l={}){this.code=f,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=l.row||0,this.col=l.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,f=this.clean(f),this.code=f;while(this.pos<f.length){this.chunk=f.slice(this.pos);let h=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(h===0)F1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(h),l.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let h=this.ends[this.ends.length-1];F1(`missing ${h.tag}`,{row:this.row,col:this.col})}if(l.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(f){if(f.charCodeAt(0)===J5)f=f.slice(1);if(f=f.replace(/\r\n?/g,`
|
|
889
|
-
`),f=f.replace(
|
|
890
|
-
`+f;return f}advance(f){let
|
|
891
|
-
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,
|
|
892
|
-
`)return 0;let
|
|
893
|
-
`);if(this.isUnfinished()){if(
|
|
894
|
-
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&
|
|
895
|
-
`)u--;u++;let
|
|
896
|
-
`)}if(_===0&&l?.length===3)A=A.replace(/^\n/,"");if(_===f.length-1&&l?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:c.length,data:{quote:l}})}}if(f.length>1)this.emit("STRING_END",")",{len:l?.length||0});return w}numberToken(){let f=A5.exec(this.chunk);if(!f)return 0;let l=f[0],h=l.length,w={row:this.row,col:this.col};if(/^0[BOX]/.test(l))F1(`radix prefix in '${l}' must be lowercase`,{...w,col:w.col+1});if(/^0\d*[89]/.test(l))F1(`decimal literal '${l}' must not be prefixed with '0'`,{...w,len:h});if(/^0\d+/.test(l))F1(`octal literal '${l}' must be prefixed with '0o'`,{...w,len:h});let u=X5(l),_=u===1/0?"INFINITY":"NUMBER",D={parsedValue:u};if(_==="INFINITY")D.original=l;return this.emit(_,l,{len:h,data:D}),h}regexToken(){let f=this.matchWithInterpolations(n5,"///");if(f){let{tokens:$,index:R}=f,[M]=f3.exec(this.chunk.slice(R)),z=R+M.length;if($.length===1||!$.some((F)=>F[0]==="TOKENS")){let F=($[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${F}/${M}`,{len:z,data:{delimiter:"///",heregex:{flags:M}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens($,{quote:"///",endOffset:z-M.length}),M)this.emit(",",",",{len:0}),this.emit("STRING",`"${M}"`,{len:M.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return z}let l=O5.exec(this.chunk);if(!l)return 0;let[h,w,u]=l,_=this.prev();if(_){if(_.spaced&&o1.has(_[0])&&(!u||/^\/=?\s/.test(h)))return 0;if(_5.has(_[0])&&!(_.spaced&&o1.has(_[0])))return 0}if(!u)F1("missing / (unclosed regex)",{row:this.row,col:this.col});let D=h.length,[c]=f3.exec(this.chunk.slice(D)),A=D+c.length;if(!K5.test(c))F1(`invalid regular expression flags ${c}`,{row:this.row,col:this.col+D,len:c.length});return this.emit("REGEX",`/${w}/${c}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let f=G5.exec(this.chunk)||q5.exec(this.chunk);if(!f)return 0;let l=f[1],h=f[0].length;return this.emit("JS",l,{len:h,data:{here:f[0].startsWith("```")}}),h}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let h={"[":"]","(":")","{":"}","<":">"}[f]||f,w=h!==f,u=1,_=3;while(_<this.chunk.length&&u>0){let $=this.chunk[_];if($==="\\"){_+=2;continue}if(w&&$===f)u++;if($===h)u--;if(u>0)_++}if(u!==0)return 0;let D=this.chunk.slice(3,_),c=_+1,A=[];if(D.trim()){let $=D.trim().split(/(?<!\\)\s+/);for(let R of $)A.push(R.replace(/\\ /g," "))}this.emit("[","[",{len:c});for(let $=0;$<A.length;$++){if($>0)this.emit(",",",");this.emit("STRING",`"${A[$]}"`)}return this.emit("]","]"),c}symbolToken(){if(this.chunk[0]!==":")return 0;let f=this.chunk[1];if(!f||f==="="||f===":"||/\s/.test(f))return 0;if(!/[a-zA-Z_$]/.test(f))return 0;let l=/^((?:(?!\s)[$\w\x7f-\uffff])+)/.exec(this.chunk.slice(1));if(!l)return 0;let h=l[1],w=h.length+1;return this.emit("SYMBOL",h,{len:w}),w}literalToken(){let f=this.wordLiteral();if(f)return f;let l=this.symbolToken();if(l)return l;let h=$5.exec(this.chunk),w=h?h[0]:this.chunk.charAt(0),u=w,_=this.prev();if(F5.test(w))this.tagParameters();if(w==="="&&_&&_[1]==="."&&!_.spaced){let D=this.tokens,c=D.length-2;while(c>=1&&D[c][0]==="PROPERTY"&&D[c-1]?.[1]===".")c-=2;if(c>=0&&(D[c][0]==="IDENTIFIER"||D[c][0]===")"||D[c][0]==="]")){let A=D.slice(c,D.length-1);_[0]="=",_[1]="=";for(let $ of A)this.tokens.push(p1($[0],$[1],{pre:0,row:$[2],col:$[3],len:$[4]}));return this.tokens.push(p1(".",".",{pre:0,row:this.row,col:this.col,len:1})),w.length}}if(_&&(w==="="||e2.has(w))){if(w==="="&&(_[1]==="||"||_[1]==="&&"||_[1]==="??")&&!_.spaced)return _[0]="COMPOUND_ASSIGN",_[1]+="=",w.length}if(w==="("&&_?.[0]==="IMPORT")_[0]="DYNAMIC_IMPORT";if(w==="{"&&this.seenImport)this.importSpecifierList=!0;if(w==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(w==="{"&&_?.[0]==="EXPORT")this.exportSpecifierList=!0;if(w==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(w===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,u="TERMINATOR";else if(w==="|>")u="PIPE";else if(w==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(w==="::")u="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(w==="~=")u="COMPUTED_ASSIGN";else if(w===":=")u="REACTIVE_ASSIGN";else if(w==="<=>")u="BIND";else if(w==="~>")u="EFFECT",this.inTypeAnnotation=!1;else if(w==="=!")u="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(w==="*>"&&(!_||_[0]==="TERMINATOR"||_[0]==="INDENT"||_[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let D=this.chunk.slice(2),c=/^@(\s*)=(?!=)/.exec(D);if(c){let $=c[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let R=this.emit("PROPERTY","assign");return R.spaced=!0,this.emit("@","@"),this.emit(",",","),3+$.length+1}let A=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(D);if(A){let $=A[1],R=A[2],M=$[0]==="@",z=M?$.slice(1):$,F=z?z.split("."):[],W=()=>{if(M){if(this.emit("@","@"),F.length>0)this.emit("PROPERTY",F[0])}else this.emit("IDENTIFIER",F[0]);for(let i=1;i<F.length;i++)this.emit(".","."),this.emit("PROPERTY",F[i])};W(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),W(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let Q=this.prev();return Q.mergeClose=!0,2+$.length+R.length+1}}else if(w==="*"&&_?.[0]==="EXPORT")u="EXPORT_ALL";else if(l5.has(w))u="MATH";else if(h5.has(w))u="COMPARE";else if(e2.has(w))u="COMPOUND_ASSIGN";else if(c5.has(w))u="UNARY_MATH";else if(w5.has(w))u="SHIFT";else if(w==="?"&&_?.spaced)u="TERNARY";else if(w==="?!"&&_&&!_.spaced)u="PRESENCE";else if(w==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))u="?.";else if(_){if(w==="("&&!_.spaced&&o1.has(_[0])){if(_[0]==="?.")_[0]="ES6_OPTIONAL_CALL";u="CALL_START"}if(w==="["&&!_.spaced&&t1.has(_[0])){if(u="INDEX_START",_[0]==="?.")_[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(w==="="||u==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(w==="("||w==="{"||w==="[")this.ends.push({tag:t4[w],origin:[u,w]});else if(w===")"||w==="}"||w==="]")this.pair(w);return this.emit(u,w,{len:w.length}),w.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let f=this.tokens.length-1,l=[];this.tokens[f][0]="PARAM_END";while(f-- >0){let h=this.tokens[f];if(h[0]===")")l.push(h);else if(h[0]==="("||h[0]==="CALL_START")if(l.length)l.pop();else if(h[0]==="(")return h[0]="PARAM_START",this.tagDoIife(f-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(f){let l=this.tokens[f??this.tokens.length-1];if(l?.[0]==="DO")l[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.rewriteDottedPicks(),this.rewriteMapLiterals(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteSchema?.(),this.rewriteTypes(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}rewriteMapLiterals(){let f=this.tokens;for(let l=0;l<f.length;l++){if(f[l][0]!=="MATH"||f[l][1]!=="*")continue;let h=f[l+1];if(!h||h[0]!=="{")continue;if(f[l].spaced||f[l].newLine)continue;let w=f[l-1];if(w&&t1.has(w[0]))continue;f.splice(l,1),f[l][0]="MAP_START";let u=1;for(let _=l+1;_<f.length&&u>0;_++){let D=f[_][0];if(D==="{"||D==="MAP_START")u++;if(D==="}"){if(u--,u===0)f[_][0]="MAP_END"}}}}rewriteDottedPicks(){let f=this.tokens;for(let l=0;l<f.length;l++){let h=f[l][0];if(h!=="."&&h!=="?.")continue;let w=f[l+1];if(!w||w[0]!=="{")continue;if(f[l].spaced||f[l].newLine)continue;let u=f[l-1];if(!u||!t1.has(u[0]))continue;let _=h==="?.";f.splice(l,1),f[l][0]=_?"OPTPICK_START":"PICK_START";let D=1;for(let c=l+1;c<f.length&&D>0;c++){let A=f[c][0];if(A==="{"||A==="PICK_START"||A==="OPTPICK_START")D++;else if(A==="}"){if(D--,D===0){f[c][0]="PICK_END";break}}}}}closeOpenCalls(){this.scanTokens((f,l)=>{if(f[0]==="CALL_START")this.detectEnd(l+1,(h)=>h[0]===")"||h[0]==="CALL_END",(h)=>h[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,l)=>{if(f[0]==="INDEX_START")this.detectEnd(l+1,(h)=>h[0]==="]"||h[0]==="INDEX_END",(h,w)=>{if(this.tokens[w+1]?.[0]===":")f[0]="[",h[0]="]";else h[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,l=null,h=null,w=(_,D)=>{return _[1]!==";"&&f5.has(_[0])&&!(_[0]==="TERMINATOR"&&k2.has(this.tokens[D+1]?.[0]))&&!(_[0]==="ELSE"&&f!=="THEN")||_[0]==="INDENT"&&!_.generated&&(f==="->"||f==="=>")||_[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(D)&&!this.commaInImplicitObject(D)||t2.has(_[0])&&(this.tokens[D-1]?.newLine||this.tokens[D-1]?.[0]==="OUTDENT")},u=(_,D)=>{let c=this.tokens[D-1]?.[0]===","?D-1:D;this.tokens.splice(c,0,h)};this.scanTokens((_,D,c)=>{let[A]=_;if(A==="TERMINATOR"){if(this.tokens[D+1]?.[0]==="ELSE"&&this.tokens[D-1]?.[0]!=="OUTDENT")return c.splice(D,1,...this.makeIndentation()),1;if(k2.has(this.tokens[D+1]?.[0]))return c.splice(D,1),0}if(A==="CATCH")for(let $=1;$<=2;$++){let R=this.tokens[D+$]?.[0];if(R==="OUTDENT"||R==="TERMINATOR"||R==="FINALLY")return c.splice(D+$,0,...this.makeIndentation()),2+$}if((A==="->"||A==="=>")&&(this.tokens[D+1]?.[0]===","||this.tokens[D+1]?.[0]==="]"))return[l,h]=this.makeIndentation(),c.splice(D+1,0,l,h),1;if(o2.has(A)&&this.tokens[D+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[D+1]?.[0]==="IF")&&!(A==="ELSE"&&this.tokens[D-1]?.[0]!=="OUTDENT")){if(f=A,[l,h]=this.makeIndentation(),A==="THEN")l.fromThen=!0;if(c.splice(D+1,0,l),A==="THEN"&&this.singleLineOwner(D)==="LEADING_WHEN")this.detectWhenThenEnd(D+2,w,u);else this.detectEnd(D+2,w,u);if(A==="THEN")c.splice(D,1);return 1}return 1})}singleLineOwner(f){let l=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let h=f-1;h>=0;h--){let w=this.tokens[h],u=w?.[0];if(l.has(u))return u;if(N1.has(u)||w?.newLine)return null}return null}detectWhenThenEnd(f,l,h){let w=0,u=0;while(f<this.tokens.length){let _=this.tokens[f],D=_[0];if(w===0){if(D==="THEN"&&this.singleLineOwner(f)!=="LEADING_WHEN")u++;else if(D==="ELSE"&&u>0)u--;else if(l.call(this,_,f))return h.call(this,_,f)}if(Y1.has(D))w++;if(W1.has(D))w--;if(w<0)return h.call(this,_,f);f++}}tagPostfixConditionals(){let f=null,l=(w,u)=>{return w[0]==="TERMINATOR"||w[0]==="INDENT"&&!o2.has(this.tokens[u-1]?.[0])},h=(w)=>{if(w[0]!=="INDENT"||w.generated&&!w.fromThen)f[0]="POST_"+f[0]};this.scanTokens((w,u)=>{if(w[0]!=="IF"&&w[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=w,this.detectEnd(u+1,l,h),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let l=f.length-2;l>=0;l--)if(f[l][0]==="IDENTIFIER"&&f[l][1]==="$"&&(f[l+1]?.[0]==="STRING"||f[l+1]?.[0]==="STRING_START")){let h=f[l-1];if(h&&p4.has(h[0])){if(f.splice(l,1),h.spaced=!1,f[l].spaced=!1,f[l].pre=0,f[l].newLine)f[l].newLine=!1}}}addImplicitBracesAndParens(){let f=[],l=!1;this.scanTokens((h,w,u)=>{let[_]=h,D=u[w-1]||[],c=u[w+1]||[],[A]=D,[$]=c,R=w,M=(G)=>w-R+G,z=()=>f[f.length-1],F=(G)=>G?.[2]?.ours,W=()=>F(z())&&z()?.[0]==="(",Q=()=>F(z())&&z()?.[0]==="{",i=(G)=>{f.push(["(",G,{ours:!0}]),u.splice(G,0,U1("CALL_START","("))},U=()=>{f.pop(),u.splice(w,0,U1("CALL_END",")")),w+=1},Y=(G,J={})=>{f.push(["{",G,{sameLine:!0,startsLine:J.startsLine??!0,ours:!0}]);let N=U1("{","{");if(!N.data)N.data={};N.data.generated=!0,u.splice(G,0,N)},H=(G)=>{G=G??w,f.pop(),u.splice(G,0,U1("}","}")),w+=1},O=_==="FOR"&&!h.newLine&&u5.has(A);if((W()||Q())&&e4.has(_)&&!O)return f.push(["CONTROL",w,{ours:!0}]),M(1);if(_==="INDENT"&&F(z())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(W()||Q()&&A!==":")if(W())U();else H();if(z()?.[2]?.ours&&z()[0]==="CONTROL")f.pop();return f.push([_,w]),M(1)}if(Y1.has(_))return f.push([_,w]),M(1);if(W1.has(_)){while(F(z()))if(W())U();else if(Q())H();else f.pop();f.pop()}let q=!1;if($==="-"&&!c.spaced&&!c.newLine&&O1(h))for(let G=w;G<u.length-2;G+=2){if(!k1(u[G+1],u[G+2]))break;if(!O1(u[G+2]))break;if(u[G+3]?.[0]===":"){q=!0;break}}if(!q&&F2.has(_)&&h.spaced&&(s1.has($)||$==="..."&&s1.has(u[w+2]?.[0])||s4.has($)&&!c.spaced&&!c.newLine)&&!((_==="]"||_==="}")&&($==="->"||$==="=>")))return i(w+1),M(2);if(F2.has(_)&&this.tokens[w+1]?.[0]==="INDENT"&&this.looksObjectish(w+2)&&!this.findTagsBackwards(w,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return i(w+1),f.push(["INDENT",w+2]),M(3);if(_==="TERNARY")l=!0;if(_===":"){if(l)return l=!1,M(1);if(O1(u[w-1])&&k1(u[w-2],u[w-1])){let N=w-2;while(N>=2&&k1(u[N],u[N+1])&&O1(u[N-1]))N-=2;if(N+=1,O1(u[N])){let g="";for(let T=N;T<w;T++)g+=u[T][1];let L=U1("STRING",`"${g}"`,u[N]);L.pre=u[N].pre,L.spaced=u[N].spaced,L.newLine=u[N].newLine,L.loc=u[N].loc,u.splice(N,w-N,L),w=N+1}}let G=W1.has(this.tokens[w-1]?.[0])?f[f.length-1]?.[1]??w-1:w-1;if(this.tokens[w-2]?.[0]==="@")G=w-2;let J=G<=0||N1.has(this.tokens[G-1]?.[0])||this.tokens[G-1]?.newLine;if(z()){let[N,g]=z(),L=f[f.length-2],T=(X)=>X==="{"||X==="MAP_START"||X==="PICK_START"||X==="OPTPICK_START";if((T(N)||N==="INDENT"&&T(L?.[0])&&!F(L))&&(J||this.tokens[G-1]?.[0]===","||T(this.tokens[G-1]?.[0])||T(this.tokens[G]?.[0])))return M(1)}return Y(G,{startsLine:!!J}),M(2)}if(N1.has(_))for(let G=f.length-1;G>=0;G--){if(!F(f[G]))break;if(f[G][0]==="{")f[G][2].sameLine=!1}let n=A==="OUTDENT"||D.newLine,K=_==="||"||_==="&&",Z=!1;if(K){let G=w+1,J=u[G]?.[0];if(J==="("||J==="["||J==="{"){for(let N=1;++G<u.length&&N>0;)if(J=u[G][0],J==="("||J==="["||J==="{")N++;else if(J===")"||J==="]"||J==="}")N--}else if(J&&J!=="TERMINATOR"&&J!=="OUTDENT"&&J!==",")G++;Z=u[G]?.[0]===","}if(k4.has(_)&&!Z||t2.has(_)&&n)while(F(z())){let[G,,{sameLine:J,startsLine:N}]=z();if(W()&&A!==",")U();else if(Q()&&!K&&J&&_!=="TERMINATOR"&&A!==":")H();else if(Q()&&_==="TERMINATOR"&&A!==","&&!(N&&this.looksObjectish(w+1)))H();else if(z()?.[2]?.ours&&z()[0]==="CONTROL"&&u[z()[1]]?.[0]==="CLASS"&&_==="TERMINATOR")f.pop();else break}if(_===","&&!this.looksObjectish(w+1)&&Q()&&($!=="TERMINATOR"||!this.looksObjectish(w+2))){let G=$==="OUTDENT"?1:0;while(Q())H(w+G)}return M(1)})}addImplicitCallCommas(){let f=0,l=0,h=this.tokens;while(l<h.length){let w=h[l][0],u=l>0?h[l-1][0]:null;if(w==="CALL_START"||w==="(")f++;if(w==="CALL_END"||w===")")f--;if(f>0&&(w==="->"||w==="=>")&&o4.has(u))h.splice(l,0,U1(",",",")),l++;l++}}scanTokens(f){let l=0;while(l<this.tokens.length)l+=f.call(this,this.tokens[l],l,this.tokens)}detectEnd(f,l,h,w={}){let u=0;while(f<this.tokens.length){let _=this.tokens[f];if(u===0&&l.call(this,_,f))return h.call(this,_,f);if(Y1.has(_[0]))u++;if(W1.has(_[0]))u--;if(u<0){if(w.returnOnNegativeLevel)return;return h.call(this,_,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let l=0;l<f.length;l++){if(!f[l].mergeClose)continue;let h=0;for(let w=l+1;w<f.length;w++){let u=f[w][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")h++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")h--;if(h<0||h===0&&u==="TERMINATOR"){f.splice(w,0,U1("CALL_END",")",f[w-1]));break}if(w===f.length-1){f.splice(w+1,0,U1("CALL_END",")",f[w]));break}}}}commaInImplicitCall(f){let l=0;for(let h=f-1;h>=0;h--){let w=this.tokens[h][0];if(W1.has(w)){l++;continue}if(Y1.has(w)){if(w==="INDENT")return!1;if(l--,l<0)return!1;continue}if(l>0)continue;if(F2.has(w)&&this.tokens[h].spaced){let u=this.tokens[h+1]?.[0];return s1.has(u)||u==="..."&&s1.has(this.tokens[h+2]?.[0])}}return!1}commaInImplicitObject(f){let l=0;for(let h=f-1;h>=0;h--){let w=this.tokens[h][0];if(W1.has(w)){l++;continue}if(Y1.has(w)){if(l--,l<0)return!1;continue}if(l>0)continue;if(w===":"&&h>0&&this.tokens[h-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(N1.has(w))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(O1(this.tokens[f]))for(let l=f+1;l<this.tokens.length;l+=2){if(!k1(this.tokens[l],this.tokens[l+1]))break;if(!O1(this.tokens[l+1]))break;if(this.tokens[l+2]?.[0]===":")return!0}if(Y1.has(this.tokens[f]?.[0])){let l=null;if(this.detectEnd(f+1,(h)=>W1.has(h[0]),(h,w)=>l=w),l&&this.tokens[l+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,l){let h=new Set(l),w=[];while(f>=0){let u=this.tokens[f]?.[0];if(!w.length&&h.has(u))return!0;if(W1.has(u))w.push(u);if(Y1.has(u)&&w.length)w.pop();if(!w.length&&(Y1.has(u)&&!this.tokens[f]?.generated||N1.has(u)))break;f--}return!1}makeIndentation(f){let l=U1("INDENT",2),h=U1("OUTDENT",2);if(f)l.generated=h.generated=!0,l.origin=h.origin=f;else l.explicit=h.explicit=!0;return[l,h]}}r2(i1);d1(i1);var S5=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],l3=new Set(S5);var P5=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var N5=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],E5=["math","param","portal"],h3=new Set([...P5,...E5]),K1=new Set(N5),n1=new Set([...h3,...K1]);var w3="__bind_",c3="__",W2=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted","onError"]),I5=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),i2="http://www.w3.org/2000/svg";function y5(f){for(let l of f){if(!Array.isArray(l))continue;let h=l[1]instanceof String?l[1].valueOf():l[1],w=l[2]instanceof String?l[2].valueOf():l[2];if(h==="type"&&typeof w==="string")return w.replace(/^["']|["']$/g,"")}return null}function q1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function H2(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function Q2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function D3(f,l){let h=(c,A)=>c instanceof String?c[A]:void 0,w=l.prototype.classifyKeyword;l.prototype.classifyKeyword=function(c,A,$){if(c==="offer"||c==="accept"){let R=0;for(let M=this.tokens.length-1;M>=0;M--){let z=this.tokens[M][0];if(z==="OUTDENT")R++;else if(z==="INDENT")R--;if(R<0&&this.tokens[M-1]?.[0]==="COMPONENT")return c.toUpperCase()}return A}return w.call(this,c,A,$)},l.prototype.rewriteRender=function(){let c=(U,Y,H)=>{let O=[U,Y];if(O.pre=0,O.data=null,O.loc=H?.loc??{r:0,c:0,n:0},O.spaced=!1,O.newLine=!1,O.generated=!0,H)O.origin=H;return O},A=!1,$=0,R=0,M=[],z=(U)=>{let Y=U.split("#")[0];return n1.has(Y)},F=(U)=>{if(!U||typeof U!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(U)},W=(U)=>{return z(U)||F(U)},Q=(U,Y,H,O)=>{let q=1,n=Y;while(n>=0&&q>0){let K=U[n][0];if(K===H)q++;else if(K===O)q--;if(q>0)n--}return n},i=(U,Y)=>{let H=Y;while(H>0){let O=U[H-1][0];if(O==="TERMINATOR"||O==="RENDER")break;if(O==="INDENT"||O==="OUTDENT"){let q=U[H][0];if(q==="CALL_END"||q===")"){H=Q(U,H-1,q,q==="CALL_END"?"CALL_START":"(");continue}break}if(O==="CALL_END"||O===")"){H=Q(U,H-2,O,O==="CALL_END"?"CALL_START":"(");continue}if(O==="INTERPOLATION_END"){H=Q(U,H-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(O==="STRING_END"){H=Q(U,H-2,"STRING_END","STRING_START");continue}H--}return U[H]&&U[H][0]==="IDENTIFIER"&&(W(U[H][1])||(H===0||U[H-1][0]==="INDENT"||U[H-1][0]==="TERMINATOR"||U[H-1][0]==="RENDER"))};this.scanTokens(function(U,Y,H){let O=U[0],q=Y<H.length-1?H[Y+1]:null;if(O==="RENDER")return A=!0,$=R+1,1;if(O==="INDENT")return R++,1;if(O==="OUTDENT"){R--;let n=0;while(M.length>0&&M[M.length-1]>R){let K=c("CALL_END",")",U);H.splice(Y+1+n,0,K),M.pop(),n++}if(A&&R<$)A=!1;return 1+n}if(!A)return 1;if(O==="="&&Y>0){let n=H[Y-1][0];if(n==="TERMINATOR"||n==="INDENT"||n==="RENDER"){let K=c("IDENTIFIER","__text__",U),Z=c("CALL_START","(",U);return H.splice(Y,1,K,Z),this.detectEnd(Y+2,(G)=>G[0]==="TERMINATOR"||G[0]==="OUTDENT",(G,J)=>H.splice(J,0,c("CALL_END",")",G)),{returnOnNegativeLevel:!0}),2}}if(O==="UNARY_MATH"&&U[1]==="~"&&q&&q[0]==="IDENTIFIER"){U[0]="PROPERTY",U[1]="__transition__";let n=c(":",":",U),K=c("STRING",`"${q[1]}"`,q);return H.splice(Y+1,1,n,K),1}if(O==="PROPERTY"&&U[1][0]==="$"&&U[1].length>1)return U[0]="STRING",U[1]=`"data-${U[1].slice(1)}"`,1;if(O==="IDENTIFIER"&&!U.spaced){let n=[U[1]],K=Y+1;while(K+1<H.length){let Z=H[K],G=H[K+1];if(Z[0]==="-"&&!Z.spaced&&(G[0]==="IDENTIFIER"||G[0]==="PROPERTY")){if(n.push(G[1]),K+=2,G[0]==="PROPERTY")break}else break}if(n.length>1&&K>Y+1&&H[K-1][0]==="PROPERTY"){let Z=n.join("-");if(Z[0]==="$")Z="data-"+Z.slice(1);return U[0]="STRING",U[1]=`"${Z}"`,H.splice(Y+1,K-Y-1),1}}if(O==="."){let n=Y>0?H[Y-1]:null,K=n?n[0]:null;if(K==="INDENT"||K==="TERMINATOR"){if(q&&q[0]==="PROPERTY"){let Z=Y+2<H.length?H[Y+2]:null;if(!Z||Z[0]!==":"){let G=c("IDENTIFIER","div",U);return H.splice(Y,0,G),2}}if(!q||q[0]!=="(")return U[0]="IDENTIFIER",U[1]="div",0}}if(O==="IDENTIFIER"||O==="PROPERTY"){let n=H[Y+1],K=H[Y+2];if(n&&n[0]==="#"&&K&&(K[0]==="PROPERTY"||K[0]==="IDENTIFIER")){if(U[1]=U[1]+"#"+K[1],K.spaced)U.spaced=!0;return H.splice(Y+1,2),0}}if(O==="BIND"){let n=Y>0?H[Y-1]:null,K=H[Y+1];if(n&&(n[0]==="IDENTIFIER"||n[0]==="PROPERTY")&&K&&K[0]==="IDENTIFIER")return n[1]=`__bind_${n[1]}__`,U[0]=":",U[1]=":",1}if(O==="@"){let n=Y+1;if(n<H.length&&H[n][0]==="PROPERTY"){n++;while(n+1<H.length&&H[n][0]==="."&&H[n+1][0]==="PROPERTY")n+=2;if(n>Y+2&&n<H.length&&H[n][0]===":"){let K=c("[","[",U);H.splice(Y,0,K);let Z=c("]","]",H[n+1]);return H.splice(n+1,0,Z),2}}}if(O==="."&&q&&q[0]==="("){let n=Y>0?H[Y-1]:null,K=n?n[0]:null,Z=K==="INDENT"||K==="TERMINATOR",G=c("PROPERTY","__clsx",U);q[0]="CALL_START";let J=1;for(let N=Y+2;N<H.length&&J>0;N++)if(H[N][0]==="("||H[N][0]==="CALL_START")J++;else if(H[N][0]===")"){if(J--,J===0)H[N][0]="CALL_END"}else if(H[N][0]==="CALL_END")J--;if(Z){let N=c("IDENTIFIER","div",U);return H.splice(Y,0,N),H.splice(Y+2,0,G),3}else if(K===":")return H[Y]=c("IDENTIFIER","__clsx",U),1;else return H.splice(Y+1,0,G),2}if(q&&q[0]==="INDENT"){if(q.fromThen)return 1;if(O==="->"||O==="=>"||O==="CALL_START"||O==="(")return 1;let n=!1,K=Y>0?H[Y-1][0]:null,Z=K==="IF"||K==="UNLESS"||K==="WHILE"||K==="UNTIL"||K==="WHEN"||K==="FORIN"||K==="FOROF"||K==="FORAS"||K==="FORASAWAIT"||K==="BY",G=!1;if(O==="CALL_END"){let N=1;for(let g=Y-1;g>=0&&N>0;g--)if(H[g][0]==="CALL_END")N++;else if(H[g][0]==="CALL_START"){if(N--,N===0&&g>0&&H[g-1][0]==="PROPERTY"&&H[g-1][1]==="__clsx")G=!0}}let J=O==="IDENTIFIER"&&(K==="INDENT"||K==="TERMINATOR"||K==="RENDER");if(G)n=!0;else if(O==="IDENTIFIER"&&W(U[1])&&!Z)n=!0;else if(O==="IDENTIFIER"&&!Z)n=J||i(H,Y);else if(O==="PROPERTY"||O==="STRING"||O==="STRING_END"||O==="NUMBER"||O==="BOOL"||O==="CALL_END"||O===")"||O==="PRESENCE")n=i(H,Y);if(n){let N=!1;if(O==="PROPERTY"&&Y>0&&H[Y-1][0]==="."){let L=Y;while(L>=2&&H[L-1][0]==="."&&H[L-2][0]==="PROPERTY")L-=2;if(L>=2&&H[L-1][0]==="."&&H[L-2][0]==="IDENTIFIER"&&W(H[L-2][1])){let T=L>=3?H[L-3][0]:null;if(!T||T==="INDENT"||T==="OUTDENT"||T==="TERMINATOR"||T==="RENDER")N=!0}}if(G||O==="IDENTIFIER"&&(W(U[1])||J)||N){let L=c("CALL_START","(",U),T=c("->","->",U);return T.newLine=!0,H.splice(Y+1,0,L,T),M.push(R+1),3}else{let L=c(",",",",U),T=c("->","->",U);return T.newLine=!0,H.splice(Y+1,0,L,T),3}}}if(O==="IDENTIFIER"&&F(U[1])&&q&&(q[0]==="OUTDENT"||q[0]==="TERMINATOR"))return H.splice(Y+1,0,c("CALL_START","(",U),c("CALL_END",")",U)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(c){let A=c.split("#")[0];return n1.has(A.toLowerCase())},u.isComponent=function(c){if(!c||typeof c!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(c)},u.collectTemplateClasses=function(c){let A=[],$=c;while(this.is($,".")){let F=$[2];if(typeof F==="string"||F instanceof String)A.unshift(F.valueOf());$=$[1]}let R=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(R===null)return{tag:null,classes:A,id:void 0,base:$};let[M,z]=R.split("#");if(!M)M="div";return{tag:M,classes:A,id:z,base:$}};let _=(c)=>typeof c==="string"?c:c instanceof String?c.valueOf():null,D=(c,A)=>{if(!(c instanceof String))return A;let $=new String(A);if(c.predicate)$.predicate=!0;if(c.await)$.await=!0;return $.predicate||$.await?$:A};u.transformComponentMembers=function(c,A=new Set){let $=this._self;if(!Array.isArray(c)){let R=_(c);if(R&&A.has(R))return c;if(R&&this.reactiveMembers&&this.reactiveMembers.has(R))return[".",[".",$,R],D(c,"value")];if(R&&this.componentMembers&&this.componentMembers.has(R))return[".",$,D(c,R)];return c}if(c[0]==="."&&c[1]==="this"&&_(c[2])!=null){let R=c[2],M=_(R);if(this.reactiveMembers&&this.reactiveMembers.has(M))return[".",[".",$,M],D(R,"value")];return this._factoryMode?[".",$,R]:c}if(c[0]==="."||c[0]==="?.")return[c[0],this.transformComponentMembers(c[1]),c[2]];if(c[0]==="->"){let R=c[1],M=new Set(A);if(Array.isArray(R))for(let z of R){let F=_(Array.isArray(z)&&z[0]==="default"?z[1]:z);if(F)M.add(F)}return["=>",c[1],this.transformComponentMembers(c[2],M)]}if(c[0]==="object"||c[0]==="map-literal")return[c[0],...c.slice(1).map((R)=>{if(Array.isArray(R)&&R[0]==="...")return["...",this.transformComponentMembers(R[1],A)];if(Array.isArray(R)&&R.length>=2){let M=R[1],z=Array.isArray(M)?this.transformComponentMembers(M,A):M,F=this.transformComponentMembers(R[2],A);return[R[0],z,F]}return this.transformComponentMembers(R,A)})];if(c[0]==="block"||c[0]==="program"){let R=new Set(A),M=[c[0]];for(let z=1;z<c.length;z++){let F=c[z];if(Array.isArray(F)&&F[0]==="="){let W=_(F[1]);if(W&&!(this.reactiveMembers&&this.reactiveMembers.has(W))){M.push(["=",F[1],this.transformComponentMembers(F[2],R)]),R.add(W);continue}}M.push(this.transformComponentMembers(F,R))}return M}return c.map((R)=>this.transformComponentMembers(R,A))},u.emitComponent=function(c,A,$,R){let[,M]=A,z=this.is(M,"block")?M.slice(1):[],F=[],W=[],Q=[],i=[],U=[],Y=[],H=[],O=[],q=null,n=new Set,K=new Set;for(let S of z){if(!Array.isArray(S))continue;let[I]=S;if(I==="offer"){if(S=S[1],!Array.isArray(S))continue;I=S[0];let y=q1(S[1]);if(y)H.push(y)}if(I==="accept"){let y=typeof S[1]==="string"?S[1]:q1(S[1]);if(y)O.push(y),n.add(y),K.add(y)}else if(I==="."&&S[1]==="this"&&q1(S)){let y=typeof S[2]==="string"||S[2]instanceof String?S[2].valueOf():null;if(y)F.push({name:y,value:void 0,isPublic:!0,type:S[2]?.type||null,required:!0}),n.add(y),K.add(y)}else if(I==="state"){let y=q1(S[1]);if(y)F.push({name:y,value:S[2],isPublic:H2(S[1]),type:Q2(S[1])}),n.add(y),K.add(y)}else if(I==="computed"){let y=q1(S[1]);if(y)W.push({name:y,expr:S[2],type:Q2(S[1])}),n.add(y),K.add(y)}else if(I==="readonly"){let y=q1(S[1]);if(y)Q.push({name:y,value:S[2],isPublic:H2(S[1]),type:Q2(S[1])}),n.add(y)}else if(I==="="){let y=q1(S[1]);if(y)if(W2.has(y))U.push({name:y,value:S[2]});else{let v=S[2];if(Array.isArray(v)&&(v[0]==="->"||v[0]==="=>"))i.push({name:y,func:v}),n.add(y);else F.push({name:y,value:v,isPublic:H2(S[1])}),n.add(y),K.add(y)}}else if(I==="effect")Y.push(S);else if(I==="render")q=S;else if(I==="object")for(let y=1;y<S.length;y++){let v=S[y];if(!Array.isArray(v))continue;let[,k,h1]=v;if(typeof k==="string"&&W2.has(k))U.push({name:k,value:h1});else if(typeof k==="string")i.push({name:k,func:h1}),n.add(k)}}let Z=new Map;for(let{name:S}of i)if(/^on[A-Z]/.test(S)&&!W2.has(S)){let I=S[2].toLowerCase()+S.slice(3);if(l3.has(I))Z.set(I,S)}let G=A[0]?.valueOf?.()??null,J=new Set;for(let{name:S,isPublic:I}of F)if(I)J.add(S);for(let{name:S,isPublic:I}of Q)if(I)J.add(S);let N=this.componentMembers,g=this.reactiveMembers,L=this._autoEventHandlers,T=this._inheritsTag;if(this.componentMembers=n,this.reactiveMembers=K,this._autoEventHandlers=Z.size>0?Z:null,this._inheritsTag=G||null,this.options.stubComponents){let S=(P)=>P?P.replace(/::/g,":").replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined").replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined").replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"):null,I=[],y=this._componentTypeParams||"";I.push(`class ${y}{`),I.push(" declare _root: Element | null; declare app: any;"),I.push(" emit(_name: string, _detail?: any): void {}");let v=[];for(let{name:P,type:B,isPublic:V,required:r}of F){if(!V)continue;let o=S(B),e=r?"":"?";v.push(`${P}${e}: ${o||"any"}`),v.push(`__bind_${P}__?: Signal<${o||"any"}>`)}for(let{name:P,type:B,isPublic:V}of Q){if(!V)continue;let r=S(B);v.push(`${P}?: ${r||"any"}`)}{let B=v.length>0&&F.some((r)=>r.isPublic&&r.required)?"":"?",V=v.length>0?`{${v.join("; ")}}`:"{}";if(G)V+=` & __RipProps<'${G}'>`;I.push(` constructor(_props${B}: ${V}) {}`)}let k=(P)=>{let B=P?.valueOf?.()??P;if(typeof B!=="string")return null;if(B==="true"||B==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(B))return"number";if(B.startsWith('"')||B.startsWith("'"))return"string";return null};for(let{name:P,type:B,value:V}of F){let r=S(B)||k(V);I.push(r?` declare ${P}: Signal<${r}>;`:` declare ${P}: Signal<any>;`)}for(let{name:P,type:B,value:V}of Q){let r=S(B)||k(V);I.push(r?` declare ${P}: ${r};`:` declare ${P}: any;`)}for(let{name:P,expr:B,type:V}of W){let r=S(V),o=r?`: Computed<${r}>`:"";if(this.is(B,"block")){let e=this.transformComponentMembers(B),C=this.emitFunctionBody(e);I.push(` ${P}${o} = __computed(() => ${C});`)}else{let e=this.emitInComponent(B,"value");I.push(` ${P}${o} = __computed(() => ${e});`)}}I.push(" _init(props) {");for(let{name:P,value:B,isPublic:V}of Q){let r=this.emitInComponent(B,"value");I.push(V?` this.${P} = props.${P} ?? ${r};`:` this.${P} = ${r};`)}for(let{name:P,value:B,isPublic:V,required:r,type:o}of F)if(V&&r)I.push(` this.${P} = __state(props.__bind_${P}__ ?? props.${P});`);else if(V){let e=this.emitInComponent(B,"value");I.push(` this.${P} = __state(props.__bind_${P}__ ?? props.${P} ?? ${e});`)}else{let e=this.emitInComponent(B,"value");I.push(` this.${P} = __state(${e});`)}for(let P of Y){let B=P[2],V=this.containsAwait(B)?"async ":"";if(this.is(B,"block")){let r=this.transformComponentMembers(B),o=this.emitFunctionBody(r,[],!0);I.push(` __effect(${V}() => ${o});`)}else{let r=this.emitInComponent(B,"value");I.push(` __effect(${V}() => { ${r}; });`)}}I.push(" }");let h1=new Map;for(let[P,B]of Z)h1.set(B,P);if(q){let P=(B)=>{if(!Array.isArray(B))return;let V=B[0]?.valueOf?.()??B[0];if(typeof V==="string"&&V!=="object"&&V!=="switch"&&n1.has(V.split(/[.#]/)[0]))for(let r=1;r<B.length;r++){let o=B[r],e=this.is(o,"object")?o:null;if(!e&&Array.isArray(o)&&(o[0]==="->"||o[0]==="=>")&&this.is(o[2],"block")){for(let C=1;C<o[2].length;C++)if(this.is(o[2][C],"object")){e=o[2][C];break}}if(!e)continue;for(let C=1;C<e.length;C++){let a=e[C];if(!Array.isArray(a)||a.length<2)continue;let[,s,p]=a;if(Array.isArray(s)&&s[0]==="."&&s[1]==="this"&&Array.isArray(p)&&p[0]==="."&&p[1]==="this"){let E=typeof s[2]==="string"?s[2]:s[2]?.valueOf?.(),x=typeof p[2]==="string"?p[2]:p[2]?.valueOf?.();if(E&&x&&!h1.has(x))h1.set(x,E)}}}for(let r=1;r<B.length;r++)P(B[r])};P(q)}for(let{name:P,func:B}of i)if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>")){let[,V,r]=B;if((!V||Array.isArray(V)&&V.length===0)&&this.containsIt(r))V=["it"];let o=Array.isArray(V)?V.map((p)=>{let E=this.formatParam(p);if(p?.type)E+=`: ${p.type}`;return E}).join(", "):"",e=h1.get(P);if(e&&Array.isArray(V)&&V.length>0){let p=V[0];if(!(p?.type||p instanceof String&&p.type)&&typeof(p?.valueOf?.()??p)==="string"){let x=p?.valueOf?.()??p;o=o.replace(x,`${x}: HTMLElementEventMap['${e}']`)}}let C=this.reactiveMembers?this.transformComponentMembers(r):r,a=this.containsAwait(r),s=this.emitFunctionBody(C,V||[]);I.push(` ${a?"async ":""}${P}(${o}) ${s}`)}for(let{name:P,value:B}of U)if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>")){let[,V,r]=B,o=Array.isArray(V)?V.map((s)=>this.formatParam(s)).join(", "):"",e=this.reactiveMembers?this.transformComponentMembers(r):r,C=this.containsAwait(r),a=this.emitFunctionBody(e,V||[]);I.push(` ${C?"async ":""}${P}(${o}) ${a}`)}if(q){let P=[],B=0,V=this.options.source?.split(`
|
|
897
|
-
`),
|
|
898
|
-
`)}
|
|
1028
|
+
`;var Q4={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,Effect:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,Schema:34,CodeLine:35,OperationLine:36,Assignable:37,Literal:38,Parenthetical:39,Range:40,Invocation:41,DoIife:42,This:43,Super:44,MetaProperty:45,MapLiteral:46,Atom:47,JS:48,Regex:49,UNDEFINED:50,NULL:51,BOOL:52,INFINITY:53,NAN:54,SYMBOL:55,NUMBER:56,String:57,Identifier:58,IDENTIFIER:59,Property:60,PROPERTY:61,STRING:62,STRING_START:63,Interpolations:64,STRING_END:65,InterpolationChunk:66,INTERPOLATION_START:67,INTERPOLATION_END:68,INDENT:69,OUTDENT:70,REGEX:71,REGEX_START:72,REGEX_END:73,RegexWithIndex:74,",":75,"=":76,REACTIVE_ASSIGN:77,COMPUTED_ASSIGN:78,Block:79,READONLY_ASSIGN:80,EFFECT:81,SimpleAssignable:82,Array:83,Object:84,Subjectable:85,ThisProperty:86,".":87,"?.":88,INDEX_START:89,INDEX_END:90,Slice:91,PICK_START:92,PickList:93,OptComma:94,PICK_END:95,OPTPICK_START:96,ES6_OPTIONAL_INDEX:97,"{":98,ObjAssignable:99,":":100,FOR:101,ForVariables:102,FOROF:103,"}":104,WHEN:105,OWN:106,AssignList:107,AssignObj:108,ObjRestValue:109,SimpleObjAssignable:110,"[":111,"]":112,"@":113,"...":114,ObjSpreadExpr:115,SUPER:116,Arguments:117,DYNAMIC_IMPORT:118,MAP_START:119,MapAssignList:120,MAP_END:121,MapAssignObj:122,MapAssignable:123,PickItem:124,PickKey:125,Elisions:126,ArgElisionList:127,OptElisions:128,ArgElision:129,Arg:130,Elision:131,RangeDots:132,"..":133,DEF:134,CALL_START:135,ParamList:136,CALL_END:137,PARAM_START:138,PARAM_END:139,ArrowKind:140,"->":141,"=>":142,Param:143,ParamVar:144,Splat:145,ES6_OPTIONAL_CALL:146,ArgList:147,SimpleArgs:148,THIS:149,NEW_TARGET:150,IMPORT_META:151,"(":152,")":153,RETURN:154,THROW:155,YIELD:156,FROM:157,IfBlock:158,IF:159,IfElseTail:160,ELSE:161,UnlessBlock:162,UNLESS:163,POST_IF:164,POST_UNLESS:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,SWITCH:170,Cases:171,When:172,LEADING_WHEN:173,WhileSource:174,WHILE:175,UNTIL:176,Loop:177,LOOP:178,FORIN:179,BY:180,FORAS:181,AWAIT:182,FORASAWAIT:183,ForValue:184,ClassName:185,CLASS:186,EXTENDS:187,ENUM:188,SCHEMA:189,SCHEMA_BODY:190,COMPONENT:191,ComponentBody:192,ComponentLine:193,OFFER:194,ACCEPT:195,RENDER:196,IMPORT:197,ImportDefaultSpecifier:198,ImportNamespaceSpecifier:199,ImportSpecifierList:200,ImportSpecifier:201,AS:202,DEFAULT:203,IMPORT_ALL:204,EXPORT:205,ExportSpecifierList:206,EXPORT_ALL:207,ExportSpecifier:208,UNARY:209,DO:210,DO_IIFE:211,UNARY_MATH:212,"-":213,"+":214,"?":215,PRESENCE:216,"--":217,"++":218,MATH:219,"**":220,SHIFT:221,COMPARE:222,"&":223,"^":224,"|":225,"||":226,"??":227,"&&":228,PIPE:229,RELATION:230,TERNARY:231,COMPOUND_ASSIGN:232},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",48:"JS",50:"UNDEFINED",51:"NULL",52:"BOOL",53:"INFINITY",54:"NAN",55:"SYMBOL",56:"NUMBER",59:"IDENTIFIER",61:"PROPERTY",62:"STRING",63:"STRING_START",65:"STRING_END",67:"INTERPOLATION_START",68:"INTERPOLATION_END",69:"INDENT",70:"OUTDENT",71:"REGEX",72:"REGEX_START",73:"REGEX_END",75:",",76:"=",77:"REACTIVE_ASSIGN",78:"COMPUTED_ASSIGN",80:"READONLY_ASSIGN",81:"EFFECT",87:".",88:"?.",89:"INDEX_START",90:"INDEX_END",92:"PICK_START",95:"PICK_END",96:"OPTPICK_START",97:"ES6_OPTIONAL_INDEX",98:"{",100:":",101:"FOR",103:"FOROF",104:"}",105:"WHEN",106:"OWN",111:"[",112:"]",113:"@",114:"...",116:"SUPER",118:"DYNAMIC_IMPORT",119:"MAP_START",121:"MAP_END",133:"..",134:"DEF",135:"CALL_START",137:"CALL_END",138:"PARAM_START",139:"PARAM_END",141:"->",142:"=>",146:"ES6_OPTIONAL_CALL",149:"THIS",150:"NEW_TARGET",151:"IMPORT_META",152:"(",153:")",154:"RETURN",155:"THROW",156:"YIELD",157:"FROM",159:"IF",161:"ELSE",163:"UNLESS",164:"POST_IF",165:"POST_UNLESS",166:"TRY",168:"FINALLY",169:"CATCH",170:"SWITCH",173:"LEADING_WHEN",175:"WHILE",176:"UNTIL",178:"LOOP",179:"FORIN",180:"BY",181:"FORAS",182:"AWAIT",183:"FORASAWAIT",186:"CLASS",187:"EXTENDS",188:"ENUM",189:"SCHEMA",190:"SCHEMA_BODY",191:"COMPONENT",194:"OFFER",195:"ACCEPT",196:"RENDER",197:"IMPORT",202:"AS",203:"DEFAULT",204:"IMPORT_ALL",205:"EXPORT",207:"EXPORT_ALL",209:"UNARY",210:"DO",211:"DO_IIFE",212:"UNARY_MATH",213:"-",214:"+",215:"?",216:"PRESENCE",217:"--",218:"++",219:"MATH",220:"**",221:"SHIFT",222:"COMPARE",223:"&",224:"^",225:"|",226:"||",227:"??",228:"&&",229:"PIPE",230:"RELATION",231:"TERNARY",232:"COMPOUND_ASSIGN"},parseTable:(()=>{let f=[113,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-1,1,2,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,1,1,0,2,1,5,-2,113,5,1,5,62,2,83,-3,-3,-3,-3,-3,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,132,-6,-6,-6,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,9,1,5,62,1,1,5,37,25,16,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,62,1,1,5,37,25,16,11,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,133,134,135,102,103,58,1,5,51,5,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,3,4,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,138,111,112,-13,-13,-13,-13,-92,-92,-92,-13,-92,-13,-92,-92,-13,-13,-13,-13,-13,-13,-13,139,-13,-13,141,-13,-13,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,136,137,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,50,1,5,62,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-93,-93,-93,-14,-93,-14,-93,-93,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,62,1,1,5,37,25,16,-34,-34,-34,-34,-34,-34,-34,-34,-34,9,1,5,62,1,1,5,37,25,16,-35,-35,-35,-35,-35,-35,-35,-35,-35,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,142,143,144,145,146,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,147,-215,-215,148,149,112,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,158,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,157,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,160,161,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,163,164,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,165,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,171,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,172,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,173,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,174,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,175,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,179,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,180,181,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,182,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,184,183,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,185,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,2,69,10,159,186,2,69,10,159,187,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,191,151,110,153,154,152,105,188,189,87,155,193,190,192,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,194,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,195,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,51,1,5,52,1,9,1,1,5,4,7,4,5,5,1,2,1,1,7,1,1,7,12,4,2,14,8,3,1,10,1,3,1,1,2,2,2,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,199,110,-352,159,-352,-352,196,200,-352,-352,-352,-352,-352,-352,-352,-352,155,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,198,197,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,2,69,118,201,202,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,204,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,203,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,205,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,206,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,146,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,207,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-266,208,-266,108,109,-266,55,54,75,76,99,98,-266,-266,105,-266,-266,-266,-266,-266,87,-266,91,-266,88,89,94,-266,-266,68,-266,166,-266,167,95,96,90,92,93,86,-266,72,66,67,209,56,100,-266,57,101,-266,-266,58,62,59,-266,-266,60,104,-266,-266,-266,51,-266,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,2,58,1,210,110,2,58,1,211,110,1,190,212,6,15,20,103,2,1,1,214,213,44,45,95,96,145,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,1,1,4,5,3,2,1,2,1,1,6,1,1,1,2,2,1,2,12,1,3,1,1,1,1,1,7,1,1,1,1,1,1,1,2,1,2,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,3,2,1,2,5,1,8,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,215,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-263,216,-263,108,109,-263,55,54,75,76,99,98,-263,-263,105,-263,-263,-263,-263,-263,87,-263,91,-263,88,89,94,-263,-263,68,-263,166,-263,167,95,96,90,92,93,86,-263,72,66,67,56,100,-263,57,101,-263,-263,58,62,59,-263,-263,60,104,-263,-263,-263,51,-263,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,9,57,1,1,3,1,35,100,1,5,217,221,110,111,112,220,218,219,222,64,14,1,3,1,1,1,6,1,4,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,13,2,3,2,1,15,4,2,1,1,7,1,1,1,34,2,3,12,4,4,176,177,229,230,231,232,224,225,226,227,235,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,228,110,111,112,108,109,55,236,75,76,99,98,223,87,91,88,89,94,68,166,167,95,96,90,92,93,86,63,69,64,233,234,170,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,237,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,238,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,239,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,240,91,250,88,89,94,241,242,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,87,2,28,18,252,253,251,141,2,117,18,254,141,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,58,1,5,54,1,1,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,255,256,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,87,257,1,87,258,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,2,12,13,2,1,6,1,1,1,29,-152,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-152,-152,108,109,-152,273,274,265,105,156,155,262,259,-152,260,261,86,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,57,11,37,2,1,1,1,1,1,1,3,3,1,6,2,1,9,17,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-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,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,6,87,1,1,3,4,1,277,278,279,280,281,282,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,283,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,284,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,285,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,286,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,288,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,287,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,23,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,-114,294,106,107,296,110,297,256,111,112,-114,-114,-114,298,289,-114,290,295,299,291,292,293,300,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,49,14,1,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,10,1,1,1,1,12,13,2,3,2,1,19,2,1,1,7,1,1,1,59,176,177,178,35,36,37,301,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,236,75,76,99,98,105,87,91,88,89,94,166,167,95,96,90,92,93,86,170,67,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,4,4,3,1,10,1,3,1,1,2,4,15,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,59,1,5,56,1,2,2,1,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,57,5,1,1,2,1,305,111,112,302,303,304,115,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,1,1,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-5,306,-5,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-5,-5,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,-5,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,307,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,308,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,309,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,310,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,311,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,312,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,313,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,314,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,315,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,318,162,316,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,317,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,321,162,319,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,320,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,324,162,322,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,323,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,325,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,326,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,327,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,328,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,329,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,333,151,110,153,154,152,105,330,331,87,155,193,332,192,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,334,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,335,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,-428,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,2,117,18,336,141,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,3,1,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,337,44,45,95,96,249,338,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,343,342,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,344,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,346,345,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,347,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,349,348,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,350,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,352,351,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,353,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,109,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,355,354,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,356,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,11,6,63,1,5,19,1,9,8,9,16,2,-259,-259,-259,358,359,-259,-259,-259,-259,-259,357,6,6,63,1,5,62,2,-216,-216,-216,-216,-216,-216,7,6,63,1,5,1,61,2,-220,-220,-220,-220,360,-220,-220,15,6,52,1,10,1,5,8,1,2,12,13,2,24,2,5,-223,151,110,-223,-223,-223,153,154,152,105,156,155,-223,-223,361,11,6,63,1,5,1,27,34,2,40,2,2,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,11,6,63,1,5,1,27,34,2,40,2,2,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,11,6,63,1,5,1,27,34,2,40,2,2,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,11,6,63,1,5,1,27,34,2,40,2,2,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,2,60,1,255,256,119,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,240,91,250,88,89,94,241,242,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,9,1,5,62,1,1,5,37,25,16,-212,-212,-212,-212,-212,-212,-212,-212,-212,112,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,363,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,362,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,131,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,-423,124,-423,-423,-423,-423,9,1,5,62,1,1,5,37,25,16,-420,-420,-420,-420,-420,-420,-420,-420,-420,5,164,1,9,1,1,133,134,135,102,103,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,131,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,-424,124,-424,-424,-424,-424,9,1,5,62,1,1,5,37,25,16,-421,-421,-421,-421,-421,-421,-421,-421,-421,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,-425,131,-425,-425,-425,-425,-425,-425,-425,-425,-425,117,-425,-425,-425,-425,-425,-425,124,-425,-425,-425,-425,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,364,-215,-215,148,149,2,69,10,159,157,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,160,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,163,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,5,15,123,2,1,1,214,166,167,95,96,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,-426,131,-426,-426,-426,-426,-426,-426,-426,-426,-426,117,-426,-426,-426,-426,-426,-426,124,-426,-426,-426,-426,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,-427,131,-427,-427,-427,-427,-427,-427,-427,-427,-427,117,-427,-427,-427,-427,-427,-427,124,-427,-427,-427,-427,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,131,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,-430,124,-430,-430,-430,-430,2,84,14,365,105,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-432,-432,-89,-89,-432,-432,-432,-432,-89,-89,-89,-89,-89,-89,-89,-89,-432,-89,-432,-89,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-89,-432,-432,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-89,-89,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,-432,12,57,5,1,24,1,1,3,4,1,20,18,11,138,111,112,-92,-92,-92,-92,-92,-92,139,141,140,6,87,1,1,3,4,1,-93,-93,-93,-93,-93,-93,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-433,-433,-89,-89,-433,-433,-433,-433,-89,-89,-89,-89,-89,-89,-89,-89,-433,-89,-433,-89,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-89,-433,-433,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-89,-89,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,-433,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,-434,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,-435,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,368,366,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,367,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,132,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,129,130,131,102,103,-86,-86,-86,-86,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,369,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,47,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,2,1,1,6,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,370,371,372,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,4,103,76,2,2,374,373,375,376,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,377,156,155,193,192,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,378,156,155,193,192,3,69,10,101,159,379,380,5,75,28,76,2,2,381,-348,-348,-348,-348,6,75,1,27,76,2,2,-346,382,-346,-346,-346,-346,22,69,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,383,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,3,171,1,1,384,385,386,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,387,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,159,-356,-356,388,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,389,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,4,26,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,390,391,395,396,65,73,74,46,47,71,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,397,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,132,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,131,102,103,-373,-373,-373,-373,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,-264,131,-264,-264,-264,-264,-264,-264,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,398,105,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,131,-267,-267,-267,-267,-267,-267,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,399,105,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,400,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,69,10,56,159,402,401,2,69,10,159,403,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,9,1,5,62,1,1,5,37,25,16,-422,-422,-422,-422,-422,-422,-422,-422,-422,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,-460,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,131,-261,-261,-261,-261,-261,-261,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,404,105,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,2,75,82,406,405,1,157,407,7,58,1,10,35,96,1,2,412,110,411,408,409,410,413,2,75,82,-390,-390,1,202,414,26,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,89,3,2,-114,294,106,107,419,110,297,256,111,112,418,-114,-114,298,289,415,290,295,299,291,292,293,300,420,416,417,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,421,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,422,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,423,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,157,424,60,1,5,56,1,5,1,1,5,2,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,143,144,145,146,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,2,6,147,113,425,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,426,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,30,6,63,1,5,26,11,2,18,1,4,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,132,-241,429,427,428,-241,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,115,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,430,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,433,-259,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,436,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,5,6,63,1,5,37,-187,-187,-187,-187,-187,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,437,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,5,6,63,1,5,37,-192,-192,-192,-192,-192,6,6,63,1,5,37,25,-242,-242,-242,-242,-242,-242,6,6,63,1,5,37,25,-243,-243,-243,-243,-243,-243,112,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,12,3,10,1,1,3,2,1,15,3,1,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-244,439,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-244,-244,108,109,-244,55,54,75,76,99,98,105,61,87,-244,91,88,89,94,68,-244,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,2,60,1,440,256,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,441,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,442,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,65,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,65,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,4,26,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,2,60,1,443,256,2,60,1,444,256,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,446,445,-259,-259,-259,-259,-259,5,6,63,1,5,46,-153,-153,-153,-153,-153,1,100,447,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,448,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,100,-170,1,100,-171,1,100,-172,1,100,-173,1,100,-174,1,100,-175,1,100,-176,1,100,-177,1,100,-178,1,100,-179,1,100,-180,1,100,-181,1,100,-182,1,100,-183,2,60,1,449,256,2,60,1,450,256,112,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,7,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,451,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,456,80,81,82,83,84,85,106,107,97,110,111,112,452,108,109,454,55,54,75,76,99,98,453,105,61,87,91,429,88,89,94,455,428,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,58,1,1,1,8,24,31,1,461,110,462,256,458,457,459,460,8,58,1,1,1,8,24,31,1,461,110,462,256,464,463,459,460,1,89,465,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,466,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,467,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,132,-301,-301,468,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,131,102,103,-301,-301,-301,-301,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,132,-303,-303,469,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,131,102,103,-303,-303,-303,-303,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,159,-310,-310,470,-310,-310,-310,132,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,131,102,103,-310,-310,-310,-310,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,6,6,63,1,5,25,4,-119,-119,-119,-119,471,-119,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,473,472,-259,-259,-259,-259,-259,7,6,63,1,5,1,24,4,-128,-128,-128,-128,474,-128,-128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,475,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,60,1,50,255,256,476,6,6,63,1,5,25,4,-131,-131,-131,-131,-131,-131,5,6,63,1,5,29,-115,-115,-115,-115,-115,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,13,6,63,1,5,1,11,1,1,3,4,4,4,31,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,5,6,63,1,5,29,-120,-120,-120,-120,-120,17,39,4,1,14,1,1,1,23,2,12,12,3,2,1,2,31,3,480,482,481,296,110,297,256,479,298,105,477,91,478,483,484,90,86,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,485,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,6,57,5,1,2,1,1,305,111,112,486,487,304,4,62,1,2,2,-61,-61,-61,-61,113,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,488,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,490,489,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-66,-66,-66,-66,5,1,5,62,2,83,-4,-4,-4,-4,-4,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,-436,131,-436,-436,-436,-436,-436,-436,-436,-436,116,117,-436,-436,-436,-436,-436,-436,124,-436,-436,-436,-436,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,-437,131,-437,-437,-437,-437,-437,-437,-437,-437,116,117,-437,-437,-437,-437,-437,-437,124,-437,-437,-437,-437,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,-438,131,-438,-438,-438,-438,-438,-438,-438,-438,-438,117,-438,-438,-438,-438,-438,-438,124,-438,-438,-438,-438,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,-439,131,-439,-439,-439,-439,-439,-439,-439,-439,-439,117,-439,-439,-439,-439,-439,-439,124,-439,-439,-439,-439,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,-440,131,-440,-440,-440,-440,-440,-440,115,114,116,117,-440,-440,-440,-440,-440,-440,124,-440,-440,-440,-440,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,-441,131,-441,-441,-441,-441,-441,-441,115,114,116,117,118,-441,-441,-441,-441,-441,124,-441,-441,127,-441,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,-442,131,-442,-442,-442,-442,-442,-442,115,114,116,117,118,119,-442,-442,-442,-442,124,-442,-442,127,-442,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,-443,131,-443,-443,-443,-443,-443,-443,115,114,116,117,118,119,120,-443,-443,-443,124,-443,-443,127,-443,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,-444,131,-444,-444,-444,-444,-444,-444,115,114,116,117,118,119,120,121,-444,-444,124,-444,-444,127,-444,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,-445,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,-446,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,-452,131,-452,-452,-452,-452,-452,-452,115,114,116,117,118,119,120,121,122,-452,124,125,-452,127,-452,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,-447,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,-448,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-453,-453,-453,-453,-453,-453,-453,-453,-453,132,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,-453,129,130,131,102,103,-453,-453,-453,-453,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,-449,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,-450,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,-451,131,-451,-451,-451,-451,-451,-451,115,114,116,117,118,119,120,121,122,-451,124,-451,-451,127,-451,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,-454,131,-454,-454,-454,-454,-454,-454,115,114,116,117,118,119,120,121,122,123,124,125,-454,127,-454,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,-455,131,-455,-455,-455,-455,-455,-455,115,114,116,117,118,-455,-455,-455,-455,-455,124,-455,-455,-455,-455,22,100,1,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,491,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,132,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,492,-280,-280,131,102,103,-280,-280,-280,-280,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,132,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,131,102,103,-284,-284,-284,-284,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,494,493,495,496,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,497,156,155,193,192,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,498,156,155,193,192,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,499,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,132,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,131,102,103,-279,-279,-279,-279,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,132,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,131,102,103,-283,-283,-283,-283,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,500,-259,-259,-259,-259,-259,5,6,63,1,5,62,-236,-236,-236,-236,-236,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,44,45,95,96,249,502,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,26,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,132,-241,-241,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,131,-71,-71,-71,-71,-71,-71,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,503,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,504,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,132,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,129,130,131,102,103,-74,-74,-74,-74,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,505,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,506,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,132,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,129,130,131,102,103,-77,-77,-77,-77,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,507,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,132,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,129,130,131,102,103,-80,-80,-80,-80,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,508,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,509,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,-83,132,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,129,130,131,102,103,-83,-83,-83,-83,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,510,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,3,140,1,1,511,95,96,19,6,52,1,10,1,13,1,2,9,3,6,7,1,1,1,7,16,6,1,-260,151,110,-260,-260,153,154,152,-260,105,-260,156,-260,155,150,-260,-260,512,149,2,6,63,513,514,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,515,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,6,6,63,1,5,62,2,-222,-222,-222,-222,-222,-222,59,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,2,6,64,113,516,11,6,63,1,5,19,1,9,8,9,16,2,-259,-259,-259,358,359,-259,-259,-259,-259,-259,517,1,70,518,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,-457,131,-457,-457,-457,-457,-457,-457,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,519,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,520,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,132,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,129,130,131,102,103,-87,-87,-87,-87,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,521,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,2,69,10,159,522,8,58,1,10,10,4,1,14,13,523,110,159,526,525,524,105,156,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,527,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,528,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,529,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,530,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,531,1,181,532,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,533,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,10,58,1,24,1,2,12,13,2,31,40,151,110,153,154,152,105,156,155,193,534,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,535,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,171,1,1,536,385,386,4,70,91,11,1,537,538,539,386,3,70,91,12,-297,-297,-297,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,6,1,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,541,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,540,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,159,-354,-354,542,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,131,-354,-354,-354,-354,-354,-354,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,543,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,2,6,64,545,544,2,6,64,-364,-364,23,6,64,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,6,64,-368,-368,7,6,64,94,1,9,1,1,-369,-369,133,134,135,102,103,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,546,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,59,547,22,69,32,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,548,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,70,549,1,70,550,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,131,-269,-269,-269,-269,-269,-269,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,551,-215,-215,148,149,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,70,552,3,57,5,1,553,111,112,3,98,101,5,555,554,222,3,57,5,1,556,111,112,1,157,557,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,558,-259,-259,-259,-259,-259,5,6,63,1,5,29,-381,-381,-381,-381,-381,6,58,1,10,131,1,2,412,110,411,560,410,413,6,6,63,1,5,29,98,-386,-386,-386,-386,-386,561,6,6,63,1,5,29,98,-388,-388,-388,-388,-388,562,2,58,1,563,110,14,1,5,62,1,1,5,37,25,16,4,7,1,10,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,564,-392,-392,-392,-392,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,565,-259,-259,-259,-259,-259,5,6,63,1,5,29,-410,-410,-410,-410,-410,6,58,1,10,134,3,2,568,110,418,420,567,417,14,6,63,1,5,1,11,1,1,3,4,4,4,31,67,-415,-415,-415,-415,-125,-125,-125,-125,-125,-125,-125,-415,-125,569,6,6,63,1,5,29,98,-418,-418,-418,-418,-418,570,108,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,572,571,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,573,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,132,-405,-405,-405,-405,-405,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,84,14,574,105,3,57,5,1,575,111,112,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,2,6,64,113,576,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,577,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,58,11,37,2,1,1,1,1,1,1,3,3,1,7,1,1,9,9,8,3,10,2,3,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,436,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,63,1,5,37,-193,-193,-193,-193,-193,2,69,43,579,578,124,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,5,3,1,1,3,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-260,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-260,-260,108,109,246,55,54,75,76,99,98,-260,105,61,-260,87,-260,91,250,88,89,94,-260,581,580,247,243,68,-260,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,6,63,1,42,582,-194,-194,-194,62,6,5,37,2,1,1,1,1,1,1,3,3,1,6,1,1,1,3,6,17,3,10,1,1,1,2,2,1,15,4,3,1,7,1,1,1,2,1,1,3,4,3,4,5,1,2,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,583,-259,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,27,6,63,1,5,26,11,25,27,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,132,-228,-228,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,584,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,585,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,3,6,63,52,587,588,586,37,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,11,1,2,9,3,6,7,1,1,1,7,1,1,14,15,-260,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-260,-260,108,109,273,274,265,-260,105,-260,156,-260,155,262,-260,589,261,-260,86,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,590,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,591,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,26,6,63,1,5,26,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-159,-159,-159,-159,132,-159,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,25,90,11,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,592,132,429,593,428,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,110,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,5,7,3,10,2,1,2,2,1,13,1,1,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,594,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,595,105,61,87,91,429,88,89,94,455,428,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,90,596,1,90,597,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,598,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-206,108,109,55,54,75,76,99,98,-206,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,599,-48,-48,-48,-70,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,600,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,602,459,460,5,6,63,1,5,20,-160,-160,-160,-160,-160,7,6,63,1,5,1,19,5,-164,-164,-164,-164,604,-164,603,7,6,63,1,5,1,19,5,-168,-168,-168,-168,-168,-168,-168,7,6,63,1,5,1,19,5,-169,-169,-169,-169,-169,-169,-169,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,605,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,606,459,460,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,607,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,608,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,609,610,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,611,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,612,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,613,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,614,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,615,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,35,617,618,616,25,6,41,9,1,1,1,1,1,1,1,6,1,16,9,4,5,4,1,1,1,1,1,1,7,16,-260,294,106,107,296,110,297,256,111,112,-260,-260,298,-260,620,-260,619,299,291,292,-260,293,300,-260,-260,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,621,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,622,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,623,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,624,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,12,6,63,1,5,12,1,1,3,4,8,13,18,-132,-132,-132,-132,-134,-134,-134,-134,-134,-132,625,141,12,6,63,1,5,12,1,1,3,4,8,13,18,-133,-133,-133,-133,627,628,629,630,631,-133,626,141,11,6,63,1,5,12,1,1,3,4,8,31,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,-135,11,6,63,1,5,12,1,1,3,4,8,31,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,11,6,63,1,5,12,1,1,3,4,8,31,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,11,6,63,1,5,12,1,1,3,4,8,31,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,4,87,2,28,18,252,253,632,141,2,117,18,633,141,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,59,1,5,56,1,2,2,1,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,62,1,2,2,-62,-62,-62,-62,2,6,62,113,634,111,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,635,3,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,4,62,1,2,2,-65,-65,-65,-65,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,636,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,638,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,637,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,639,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,640,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,641,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,642,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,643,1,181,644,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,645,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,68,647,648,646,120,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,9,1,1,1,1,1,9,3,3,3,7,1,1,1,2,2,1,2,9,4,3,1,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,-260,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-260,-260,108,109,55,54,75,76,99,98,-260,105,61,-260,87,-260,91,250,88,89,94,-260,649,68,-260,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,650,-259,-259,-259,-259,-259,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,131,-72,-72,-72,-72,-72,-72,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,651,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,132,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,129,130,131,102,103,-75,-75,-75,-75,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,652,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,132,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,129,130,131,102,103,-78,-78,-78,-78,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,132,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,129,130,131,102,103,-81,-81,-81,-81,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,653,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,132,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,129,130,131,102,103,-84,-84,-84,-84,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,112,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,7,2,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,655,4,5,6,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,159,108,109,654,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,6,6,63,1,5,62,2,-217,-217,-217,-217,-217,-217,11,58,1,24,1,2,12,13,2,1,29,1,151,110,153,154,152,105,156,155,150,656,149,18,6,52,1,10,1,5,8,1,2,12,13,2,1,22,1,2,4,1,-215,151,110,-215,-215,-215,153,154,152,105,156,155,150,657,-215,-215,148,149,27,6,63,1,5,26,36,2,25,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,-221,-221,132,-221,-221,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,59,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,3,1,4,2,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,3,140,1,1,658,95,96,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,-431,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,659,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,-459,131,-459,-459,-459,-459,-459,-459,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,69,10,159,660,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,2,69,10,159,661,2,69,10,159,662,2,69,10,159,663,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,25,69,10,22,4,59,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,664,132,665,129,130,131,102,103,666,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,667,132,668,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,669,132,670,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,671,132,672,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,673,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,674,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,675,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,-349,-349,-349,-349,26,75,26,2,61,1,9,1,1,3,2,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-347,132,-347,129,130,131,102,103,-347,-347,-347,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,70,91,11,1,676,677,539,386,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,2,69,10,159,678,3,70,91,12,-298,-298,-298,3,69,6,4,159,680,679,23,69,6,26,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,46,1,5,62,1,1,5,4,11,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,159,-358,-358,681,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,131,-358,-358,-358,-358,-358,-358,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,114,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,2,1,1,1,1,8,4,1,1,1,1,1,3,1,-366,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-366,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,682,395,396,65,73,74,46,47,71,48,49,50,52,53,23,6,64,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,2,6,64,-371,-371,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,1,1,1,1,1,1,8,4,1,1,1,1,1,3,1,392,393,394,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,44,45,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,683,391,395,396,65,73,74,46,47,71,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,358,359,-259,-259,-259,-259,684,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,1,157,685,6,58,1,10,131,1,2,412,110,411,686,410,413,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,3,57,5,1,687,111,112,3,6,63,35,689,690,688,12,6,52,1,10,1,25,9,8,9,16,64,2,-260,412,110,-260,-260,-260,-260,-260,-260,-260,691,413,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,692,-259,-259,-259,-259,-259,2,58,1,693,110,2,58,1,694,110,1,157,-391,3,57,5,1,695,111,112,3,6,63,35,697,698,696,12,6,52,1,10,1,25,9,8,9,16,66,5,-260,568,110,-260,-260,-260,-260,-260,-260,-260,420,699,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,700,-259,-259,-259,-259,-259,6,6,63,1,5,29,98,-415,-415,-415,-415,-415,569,3,58,1,144,701,110,702,2,58,1,703,110,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,132,-398,-398,-398,-398,-398,131,-398,-398,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,704,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,705,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,70,706,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,1,153,707,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,708,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,118,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,1,2,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,245,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,709,244,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,37,-188,-188,-188,-188,-188,117,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,6,1,1,1,1,1,12,3,10,1,1,1,2,2,1,11,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-195,-195,108,109,246,55,54,75,76,99,98,105,61,87,-195,91,250,88,89,94,432,431,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,116,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,6,1,1,1,1,1,12,3,10,2,1,2,2,1,7,3,1,1,3,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,246,55,54,75,76,99,98,105,61,87,91,250,88,89,94,438,710,247,243,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,2,69,1,579,711,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,-251,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,712,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,29,39,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,11,1,2,12,13,2,1,8,1,29,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,108,109,273,274,265,105,156,155,262,713,261,86,35,6,33,8,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,6,1,1,1,3,8,1,2,12,13,2,1,6,1,1,1,29,-152,275,266,267,270,269,268,271,272,276,106,107,263,110,264,256,111,112,-152,-152,108,109,-152,273,274,265,105,156,155,262,714,-152,260,261,86,5,6,63,1,5,46,-154,-154,-154,-154,-154,26,6,63,1,5,26,20,43,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-157,-157,-157,-157,132,-157,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,715,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,108,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,9,1,1,1,1,1,4,8,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,716,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,-204,108,109,55,54,75,76,99,98,-204,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,25,70,31,13,18,1,31,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,717,132,429,593,428,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,70,718,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,23,70,20,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,719,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,26,721,722,720,14,6,52,1,1,1,8,1,25,9,8,9,3,1,12,-260,461,110,462,256,-260,-260,-260,-260,-260,-260,723,460,-260,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,724,-259,-259,-259,-259,-259,5,58,1,1,1,64,461,110,462,256,725,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,726,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,26,721,722,727,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,728,-259,-259,-259,-259,-259,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,729,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,730,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,3,69,10,80,159,732,731,2,69,10,159,733,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,131,-302,-302,-302,-302,-302,-302,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,131,-304,-304,-304,-304,-304,-304,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,734,-121,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,735,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,17,47,9,1,1,1,1,1,1,1,23,13,9,1,1,1,2,1,294,106,107,296,110,297,256,111,112,298,620,736,299,291,292,293,300,23,6,41,9,1,1,1,1,1,1,1,6,1,5,11,13,5,3,1,1,1,1,2,1,-114,294,106,107,296,110,297,256,111,112,-114,-114,-114,298,620,-114,737,295,299,291,292,293,300,5,6,63,1,5,29,-116,-116,-116,-116,-116,6,6,63,1,5,25,4,-119,-119,-119,-119,738,-119,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-123,-123,-123,-123,132,-123,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,739,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,6,6,63,1,5,25,4,-129,-129,-129,-129,-129,-129,22,101,11,52,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,132,740,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,11,6,63,1,5,12,1,1,3,4,8,31,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,11,6,63,1,5,12,1,1,3,4,8,31,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,2,60,1,741,256,2,60,1,742,256,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,743,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,744,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,58,1,1,1,8,24,31,1,461,110,462,256,746,745,459,460,8,58,1,1,1,8,24,31,1,461,110,462,256,748,747,459,460,11,6,63,1,5,12,1,1,3,4,8,31,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,11,6,63,1,5,12,1,1,3,4,8,31,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,-140,4,62,1,2,2,-63,-63,-63,-63,2,6,64,113,749,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,-456,131,-456,-456,-456,-456,-456,-456,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,750,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,132,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,131,102,103,-282,-282,-282,-282,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,751,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,131,-329,-329,-329,752,-329,-329,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,753,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,131,-334,-334,-334,-334,-334,-334,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,754,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,131,-338,-338,-338,-338,-338,-338,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,755,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,131,-342,-342,-342,-342,-342,-342,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,756,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,757,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,131,-345,-345,-345,-345,-345,-345,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,57,1,5,56,1,5,1,1,3,2,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,4,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,758,68,44,45,95,96,249,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,114,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,1,2,2,1,11,4,4,2,1,1,3,2,2,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,341,248,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,340,108,109,55,54,75,76,99,98,105,61,87,91,250,88,89,94,339,68,44,45,95,96,249,759,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,46,47,71,48,49,50,52,53,5,6,63,1,5,62,-237,-237,-237,-237,-237,3,6,63,1,647,648,760,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,9,1,5,62,1,1,5,37,25,16,-211,-211,-211,-211,-211,-211,-211,-211,-211,6,6,63,1,5,62,2,-218,-218,-218,-218,-218,-218,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,358,761,-259,-259,-259,-259,-259,2,69,10,159,654,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,-458,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,3,7,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,762,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,763,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,764,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,765,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,766,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,767,132,768,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,769,132,770,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,2,69,10,159,771,1,70,772,4,6,64,91,12,773,-299,-299,-299,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,774,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,6,64,-365,-365,2,6,64,545,775,2,69,10,159,776,3,57,5,1,777,111,112,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,778,-259,-259,-259,-259,-259,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,1,157,779,4,58,1,142,2,412,110,780,413,6,58,1,10,131,1,2,412,110,411,781,410,413,5,6,63,1,5,29,-382,-382,-382,-382,-382,3,6,63,1,689,690,782,5,6,63,1,5,29,-387,-387,-387,-387,-387,5,6,63,1,5,29,-389,-389,-389,-389,-389,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,14,1,5,62,1,1,5,37,25,16,4,7,1,10,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,783,-393,-393,-393,-393,4,58,1,144,5,568,110,420,784,6,58,1,10,134,3,2,568,110,418,420,785,417,5,6,63,1,5,29,-411,-411,-411,-411,-411,3,6,63,1,697,698,786,5,6,63,1,5,29,-416,-416,-416,-416,-416,5,6,63,1,5,29,-417,-417,-417,-417,-417,5,6,63,1,5,29,-419,-419,-419,-419,-419,30,1,5,62,1,1,5,26,11,25,16,11,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,132,-399,-399,-399,-399,-399,131,-399,-399,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,787,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,11,6,63,1,5,19,1,9,8,9,7,9,-259,-259,-259,434,435,-259,-259,-259,-259,788,-259,5,6,63,1,5,37,-189,-189,-189,-189,-189,5,6,63,1,5,37,-190,-190,-190,-190,-190,1,90,789,5,6,63,1,5,46,-155,-155,-155,-155,-155,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,446,790,-259,-259,-259,-259,-259,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,791,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,70,20,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,90,792,1,90,793,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-69,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,6,58,1,1,1,63,1,461,110,462,256,794,460,7,58,1,1,1,32,31,1,461,110,462,256,795,459,460,5,6,63,1,5,20,-161,-161,-161,-161,-161,3,6,63,1,721,722,796,6,6,63,1,5,1,19,-165,-165,-165,-165,797,-165,26,6,63,1,5,20,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,63,1,721,722,798,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,799,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,800,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,14,40,18,1,24,1,2,12,4,4,5,2,31,38,2,333,151,110,153,154,152,105,801,802,87,155,193,332,192,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,803,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,29,-117,-117,-117,-117,-117,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,473,804,-259,-259,-259,-259,-259,107,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,805,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,615,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,806,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,6,6,63,1,5,25,4,-130,-130,-130,-130,-130,-130,11,6,63,1,5,12,1,1,3,4,8,31,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,11,6,63,1,5,12,1,1,3,4,8,31,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,22,90,11,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,807,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,808,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,809,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,810,459,460,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,811,-259,-259,-259,-259,-259,7,58,1,1,1,32,31,1,461,110,462,256,812,459,460,1,68,813,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,814,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,815,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,816,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,817,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,818,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,819,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,820,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,821,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,131,-340,-340,-340,-340,-340,-340,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,62,-238,-238,-238,-238,-238,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,501,822,-259,-259,-259,-259,-259,5,6,63,1,5,62,-239,-239,-239,-239,-239,3,6,63,1,513,514,823,24,69,10,22,63,1,9,1,1,4,33,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,824,132,129,130,131,102,103,825,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,24,69,10,22,4,59,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,826,132,827,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,828,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,829,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,830,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,831,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,832,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,70,833,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,3,70,91,12,-300,-300,-300,23,69,6,26,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,3,6,63,35,689,690,834,3,57,5,1,835,111,112,5,6,63,1,5,29,-383,-383,-383,-383,-383,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,559,836,-259,-259,-259,-259,-259,5,6,63,1,5,29,-384,-384,-384,-384,-384,3,57,5,1,837,111,112,5,6,63,1,5,29,-412,-412,-412,-412,-412,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,566,838,-259,-259,-259,-259,-259,5,6,63,1,5,29,-413,-413,-413,-413,-413,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,2,69,1,579,839,56,1,5,56,1,5,1,1,5,12,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,3,6,63,1,587,588,840,5,6,63,1,5,46,-158,-158,-158,-158,-158,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,5,6,63,1,5,20,-162,-162,-162,-162,-162,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,841,-259,-259,-259,-259,-259,1,95,842,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,843,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,95,844,1,90,845,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,846,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,4,103,76,2,2,847,493,495,496,11,58,1,24,1,2,12,4,9,2,31,40,151,110,153,154,152,105,848,156,155,193,192,5,6,63,1,5,29,-122,-122,-122,-122,-122,3,6,63,1,617,618,849,26,6,63,1,5,26,3,60,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-121,-121,-121,-121,132,-121,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,29,-124,-124,-124,-124,-124,11,6,63,1,5,12,1,1,3,4,8,31,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,22,70,31,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,850,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,3,6,63,26,721,722,851,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,852,-259,-259,-259,-259,-259,3,6,63,26,721,722,853,10,6,63,1,5,19,1,9,8,9,16,-259,-259,-259,601,854,-259,-259,-259,-259,-259,4,62,1,2,2,-64,-64,-64,-64,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,131,-330,-330,-330,855,-330,-330,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,856,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,131,-331,-331,-331,-331,-331,-331,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,131,-335,-335,-335,-335,-335,-335,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,131,-339,-339,-339,-339,-339,-339,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,131,-343,-343,-343,-343,-343,-343,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,857,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,858,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,3,6,63,1,647,648,859,6,6,63,1,5,62,2,-219,-219,-219,-219,-219,-219,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,860,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,861,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,862,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,863,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,1,157,864,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,3,6,63,1,689,690,865,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,3,6,63,1,697,698,866,5,6,63,1,5,37,-191,-191,-191,-191,-191,5,6,63,1,5,46,-156,-156,-156,-156,-156,3,6,63,1,721,722,867,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,26,6,63,1,5,20,6,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,64,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,7,1,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,868,610,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,869,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,103,870,5,6,63,1,5,29,-118,-118,-118,-118,-118,1,90,871,11,6,63,1,5,12,1,1,3,4,8,31,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,3,6,63,1,721,722,872,11,6,63,1,5,12,1,1,3,4,8,31,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,3,6,63,1,721,722,873,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,874,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,875,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,131,-341,-341,-341,-341,-341,-341,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,5,6,63,1,5,62,-240,-240,-240,-240,-240,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,876,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,23,69,10,22,63,1,9,1,1,37,1,5,1,1,1,1,1,1,1,1,1,1,1,1,159,877,132,129,130,131,102,103,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,57,5,1,878,111,112,5,6,63,1,5,29,-385,-385,-385,-385,-385,5,6,63,1,5,29,-414,-414,-414,-414,-414,5,6,63,1,5,20,-163,-163,-163,-163,-163,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,881,-334,879,-334,-334,-334,-334,-334,880,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,131,-334,-334,-334,-334,-334,-334,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,882,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,11,6,63,1,5,12,1,1,3,4,8,31,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,1,95,883,1,95,884,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,131,-332,-332,-332,-332,-332,-332,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,45,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,131,-333,-333,-333,-333,-333,-333,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,44,1,5,62,1,1,5,15,5,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,10,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,13,1,5,62,1,1,5,37,25,16,11,1,10,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,1,104,885,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,886,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,8,6,63,1,25,9,8,9,16,-260,-260,-260,-260,-260,-260,-260,-260,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,881,-336,887,-336,-336,-336,-336,-336,888,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,131,-336,-336,-336,-336,-336,-336,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,11,6,63,1,5,12,1,1,3,4,8,31,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,11,6,63,1,5,12,1,1,3,4,8,31,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,881,-335,889,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,131,-335,-335,-335,-335,-335,-335,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,1,104,890,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,1,1,12,3,10,2,3,2,1,15,4,2,1,1,7,1,1,1,2,1,1,2,1,3,1,3,4,4,1,1,1,1,4,4,2,1,2,5,1,8,4,1,1,1,1,1,3,1,891,162,30,31,32,33,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,34,35,36,37,38,39,40,41,42,43,77,78,79,80,81,82,83,84,85,106,107,97,110,111,112,108,109,55,54,75,76,99,98,105,61,87,91,88,89,94,68,166,167,95,96,90,92,93,86,72,66,67,56,100,57,101,58,62,59,102,103,60,104,51,63,69,70,64,65,73,74,168,169,170,48,49,50,52,53,1,104,892,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,46,1,5,62,1,1,5,15,4,1,5,1,2,1,1,7,2,7,12,4,2,14,8,3,1,9,1,1,3,1,1,2,30,1,5,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,881,-337,893,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,131,-337,-337,-337,-337,-337,-337,115,114,116,117,118,119,120,121,122,123,124,125,126,127,128,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,-110,1,104,894,61,1,5,56,1,5,1,1,5,1,1,1,2,1,6,1,1,1,2,3,1,1,3,1,2,1,1,7,2,7,12,2,2,2,7,7,8,3,1,10,1,3,1,1,2,30,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112],_=[],i=0,n,u,l,c;while(i<f.length){n=f[i++],u={},l=0,c=[];while(n--)l+=f[i++],c.push(l);for(l of c)u[l]=f[i++];_.push(u)}return _})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,38,1,47,1,47,1,58,1,60,1,57,1,57,3,64,1,64,2,66,3,66,5,66,2,66,1,49,1,49,3,74,3,74,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,3,20,3,20,4,20,5,21,3,21,4,21,3,21,2,21,3,21,2,37,1,37,1,37,1,85,1,85,1,82,1,82,1,82,3,82,3,82,4,82,6,82,4,82,6,82,5,82,5,82,7,82,7,82,4,82,5,82,7,84,10,84,12,84,11,84,13,84,4,107,0,107,1,107,3,107,4,107,6,108,1,108,1,108,3,108,5,108,3,108,5,110,1,110,1,110,1,99,1,99,3,99,4,99,1,109,2,109,2,115,1,115,1,115,1,115,1,115,1,115,2,115,2,115,2,115,2,115,3,115,3,115,4,115,6,115,5,115,5,115,7,115,7,46,4,120,0,120,1,120,3,120,4,120,6,122,3,122,5,122,2,93,1,93,3,93,4,93,6,124,1,124,3,124,3,124,5,125,1,125,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,83,2,83,3,83,4,127,1,127,3,127,4,127,4,127,6,129,1,129,2,128,1,128,2,126,1,126,2,131,1,131,2,132,1,132,1,40,5,91,3,91,2,91,2,91,1,32,6,32,3,15,5,15,2,35,5,35,2,140,1,140,1,136,0,136,1,136,3,136,4,136,6,143,1,143,3,143,2,143,1,144,1,144,1,144,1,144,1,145,2,41,2,41,2,41,3,41,2,41,2,117,2,117,4,147,1,147,3,147,4,147,4,147,6,130,1,130,1,130,1,130,1,148,1,148,3,43,1,43,1,86,2,44,3,44,4,44,6,45,3,45,3,79,2,79,3,39,3,39,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,158,3,158,4,160,4,160,5,160,2,162,3,162,5,22,1,22,1,22,3,22,3,22,7,22,5,22,3,22,3,23,2,23,3,23,4,23,5,167,3,167,3,167,3,167,2,26,5,26,7,26,4,26,6,171,1,171,2,172,3,172,4,174,2,174,4,174,2,174,4,24,2,24,2,24,2,24,1,177,2,177,2,177,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,184,1,184,3,102,1,102,3,185,1,185,1,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,34,2,28,4,28,6,192,1,192,3,192,2,193,1,193,1,193,1,193,2,193,2,29,2,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,200,1,200,3,200,4,200,4,200,6,201,1,201,3,201,1,201,3,198,1,199,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,206,1,206,3,206,4,206,4,206,6,208,1,208,3,208,3,208,1,208,3,36,2,36,2,36,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,42,2],ruleActions:(f,_,i,n)=>{let u=_,l=_.length-1;switch(f){case 1:return["program"];case 2:return["program",...u[l]];case 3:case 61:case 115:case 153:case 160:case 192:case 196:case 216:case 236:case 245:case 297:case 348:case 364:case 381:case 410:return[u[l]];case 4:case 116:case 154:case 161:case 217:case 237:case 246:case 365:case 382:case 411:return[...u[l-2],u[l]];case 5:case 63:case 199:case 366:return u[l-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 51:case 52:case 53:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 120:case 125:case 126:case 127:case 128:case 131:case 134:case 135:case 136:case 137:case 138:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 178:case 179:case 180:case 181:case 182:case 187:case 213:case 214:case 220:case 224:case 225:case 226:case 227:case 241:case 242:case 243:case 259:case 260:case 274:case 277:case 278:case 308:case 346:case 350:case 351:case 367:case 368:case 369:case 386:case 388:case 390:case 415:case 418:return u[l];case 49:case 177:return"undefined";case 50:case 176:return"null";case 54:case 183:return["symbol",u[l]];case 60:return["str",...u[l-1]];case 62:case 193:case 197:case 298:return[...u[l-1],u[l]];case 64:case 235:case 239:case 384:case 413:return u[l-2];case 65:return"";case 68:return["regex",u[l-1]];case 69:return["regex-index",u[l-2],u[l]];case 70:return["regex-index",u[l],null];case 71:case 123:return["=",u[l-2],u[l]];case 72:return["=",u[l-3],u[l]];case 73:case 124:return["=",u[l-4],u[l-1]];case 74:return["state",u[l-2],u[l]];case 75:return["state",u[l-3],u[l]];case 76:return["state",u[l-4],u[l-1]];case 77:case 79:return["computed",u[l-2],u[l]];case 78:return["computed",u[l-3],u[l]];case 80:return["readonly",u[l-2],u[l]];case 81:return["readonly",u[l-3],u[l]];case 82:return["readonly",u[l-4],u[l-1]];case 83:case 85:return["effect",u[l-2],u[l]];case 84:return["effect",u[l-3],u[l]];case 86:case 87:case 88:return["effect",null,u[l]];case 96:case 143:return[".",u[l-2],u[l]];case 97:case 144:return["?.",u[l-2],u[l]];case 98:case 100:case 145:return["[]",u[l-3],u[l-1]];case 99:case 101:case 146:return["[]",u[l-5],u[l-2]];case 102:case 147:return[".{}",u[l-4],...u[l-2]];case 103:case 148:return["?.{}",u[l-4],...u[l-2]];case 104:case 149:return[".{}",u[l-6],...u[l-3]];case 105:case 150:return["?.{}",u[l-6],...u[l-3]];case 106:return[u[l-1][0],u[l-3],...u[l-1].slice(1)];case 107:return["optindex",u[l-4],u[l-1]];case 108:return["optindex",u[l-6],u[l-2]];case 109:return["object-comprehension",u[l-8],u[l-6],[["for-of",u[l-4],u[l-2],!1]],[]];case 110:return["object-comprehension",u[l-10],u[l-8],[["for-of",u[l-6],u[l-4],!1]],[u[l-2]]];case 111:return["object-comprehension",u[l-9],u[l-7],[["for-of",u[l-4],u[l-2],!0]],[]];case 112:return["object-comprehension",u[l-11],u[l-9],[["for-of",u[l-6],u[l-4],!0]],[u[l-2]]];case 113:return["object",...u[l-2]];case 114:case 152:case 194:case 215:case 234:return[];case 117:case 155:case 162:case 218:case 238:case 383:case 412:return[...u[l-3],u[l]];case 118:case 156:case 163:case 219:case 240:case 385:case 414:return[...u[l-5],...u[l-2]];case 119:return[null,u[l],u[l]];case 121:case 157:return[":",u[l-2],u[l]];case 122:case 158:return[":",u[l-4],u[l-1]];case 129:return["dynamicKey",u[l-1]];case 130:return["[]","this",u[l-1]];case 132:case 133:case 159:case 228:return["...",u[l]];case 139:case 232:return["super",...u[l]];case 140:case 141:case 142:case 230:case 233:return[u[l-1],...u[l]];case 151:return["map-literal",...u[l-2]];case 164:return[u[l],u[l],null];case 165:return[u[l-2],u[l],null];case 166:return[u[l-2],u[l-2],u[l]];case 167:return[u[l-4],u[l-2],u[l]];case 184:return["array"];case 185:return["array",...u[l-1]];case 186:return["array",...u[l-2],...u[l-1]];case 188:return[...u[l-2],...u[l]];case 189:return[...u[l-3],...u[l]];case 190:return[...u[l-2],...u[l-1]];case 191:return[...u[l-5],...u[l-4],...u[l-2],...u[l-1]];case 195:return[...u[l]];case 198:return null;case 200:return"..";case 201:case 244:return"...";case 202:return[u[l-2],u[l-3],u[l-1]];case 203:case 438:case 440:case 441:case 455:case 457:return[u[l-1],u[l-2],u[l]];case 204:return[u[l],u[l-1],null];case 205:return[u[l-1],null,u[l]];case 206:return[u[l],null,null];case 207:return["def",u[l-4],u[l-2],u[l]];case 208:return["def",u[l-1],[],u[l]];case 209:case 211:return[u[l-1],u[l-3],u[l]];case 210:case 212:return[u[l-1],[],u[l]];case 221:case 347:return["default",u[l-2],u[l]];case 222:return["rest",u[l]];case 223:return["expansion"];case 229:return["tagged-template",u[l-1],u[l]];case 231:return["optcall",u[l-2],...u[l]];case 247:case 248:return"this";case 249:return[".","this",u[l]];case 250:return[".","super",u[l]];case 251:return["[]","super",u[l-1]];case 252:return["[]","super",u[l-2]];case 253:return[".","new",u[l]];case 254:return[".","import",u[l]];case 255:return["block"];case 256:return["block",...u[l-1]];case 257:return u[l-1].length===1?(Array.isArray(u[l-1][0])&&u[l-1][0][0]==="="&&(u[l-1][0].parenthesized=!0),u[l-1][0]):["block",...u[l-1]];case 258:return u[l-2].length===1?(Array.isArray(u[l-2][0])&&u[l-2][0][0]==="="&&(u[l-2][0].parenthesized=!0),u[l-2][0]):["block",...u[l-2]];case 261:return["return",u[l]];case 262:return["return",u[l-1]];case 263:return["return"];case 264:return["throw",u[l]];case 265:return["throw",u[l-1]];case 266:return["yield"];case 267:return["yield",u[l]];case 268:return["yield",u[l-1]];case 269:return["yield-from",u[l]];case 270:case 272:return["if",u[l-1],u[l]];case 271:case 273:return["if",u[l-2],u[l-1],u[l]];case 275:return["if",["!",u[l-1]],u[l]];case 276:return["if",["!",u[l-3]],u[l-2],u[l]];case 279:case 280:return["if",u[l],[u[l-2]]];case 281:return["?:",u[l-4],u[l-6],u[l-1]];case 282:return["?:",u[l-2],u[l-4],u[l]];case 283:case 284:return["if",["!",u[l]],[u[l-2]]];case 285:return["try",u[l]];case 286:return["try",u[l-1],u[l]];case 287:return["try",u[l-2],u[l]];case 288:return["try",u[l-3],u[l-2],u[l]];case 289:case 290:case 291:case 420:case 423:case 425:return[u[l-1],u[l]];case 292:return[null,u[l]];case 293:return["switch",u[l-3],u[l-1],null];case 294:return["switch",u[l-5],u[l-3],u[l-1]];case 295:return["switch",null,u[l-1],null];case 296:return["switch",null,u[l-3],u[l-1]];case 299:return["when",u[l-1],u[l]];case 300:return["when",u[l-2],u[l-1]];case 301:return["while",u[l]];case 302:return["while",u[l-2],u[l]];case 303:return["while",["!",u[l]]];case 304:return["while",["!",u[l-2]],u[l]];case 305:return u[l-1].length===2?[u[l-1][0],u[l-1][1],u[l]]:[u[l-1][0],u[l-1][1],u[l-1][2],u[l]];case 306:case 307:return u[l].length===2?[u[l][0],u[l][1],[u[l-1]]]:[u[l][0],u[l][1],u[l][2],[u[l-1]]];case 309:return["loop",u[l]];case 310:return["loop",[u[l]]];case 311:return["loop-n",u[l-1],u[l]];case 312:return["for-in",u[l-3],u[l-1],null,null,u[l]];case 313:return["for-in",u[l-5],u[l-3],null,u[l-1],u[l]];case 314:return["for-in",u[l-5],u[l-3],u[l-1],null,u[l]];case 315:return["for-in",u[l-7],u[l-5],u[l-1],u[l-3],u[l]];case 316:return["for-in",u[l-7],u[l-5],u[l-3],u[l-1],u[l]];case 317:return["for-of",u[l-3],u[l-1],!1,null,u[l]];case 318:return["for-of",u[l-5],u[l-3],!1,u[l-1],u[l]];case 319:return["for-of",u[l-3],u[l-1],!0,null,u[l]];case 320:return["for-of",u[l-5],u[l-3],!0,u[l-1],u[l]];case 321:return["for-as",u[l-3],u[l-1],!1,null,u[l]];case 322:return["for-as",u[l-5],u[l-3],!1,u[l-1],u[l]];case 323:case 325:return["for-as",u[l-3],u[l-1],!0,null,u[l]];case 324:case 326:return["for-as",u[l-5],u[l-3],!0,u[l-1],u[l]];case 327:return["for-in",[],u[l-1],null,null,u[l]];case 328:return["for-in",[],u[l-3],u[l-1],null,u[l]];case 329:return["comprehension",u[l-4],[["for-in",u[l-2],u[l],null]],[]];case 330:return["comprehension",u[l-6],[["for-in",u[l-4],u[l-2],null]],[u[l]]];case 331:return["comprehension",u[l-6],[["for-in",u[l-4],u[l-2],u[l]]],[]];case 332:return["comprehension",u[l-8],[["for-in",u[l-6],u[l-4],u[l]]],[u[l-2]]];case 333:return["comprehension",u[l-8],[["for-in",u[l-6],u[l-4],u[l-2]]],[u[l]]];case 334:return["comprehension",u[l-4],[["for-of",u[l-2],u[l],!1]],[]];case 335:return["comprehension",u[l-6],[["for-of",u[l-4],u[l-2],!1]],[u[l]]];case 336:return["comprehension",u[l-5],[["for-of",u[l-2],u[l],!0]],[]];case 337:return["comprehension",u[l-7],[["for-of",u[l-4],u[l-2],!0]],[u[l]]];case 338:return["comprehension",u[l-4],[["for-as",u[l-2],u[l],!1,null]],[]];case 339:return["comprehension",u[l-6],[["for-as",u[l-4],u[l-2],!1,null]],[u[l]]];case 340:return["comprehension",u[l-5],[["for-as",u[l-2],u[l],!0,null]],[]];case 341:return["comprehension",u[l-7],[["for-as",u[l-4],u[l-2],!0,null]],[u[l]]];case 342:return["comprehension",u[l-4],[["for-as",u[l-2],u[l],!0,null]],[]];case 343:return["comprehension",u[l-6],[["for-as",u[l-4],u[l-2],!0,null]],[u[l]]];case 344:return["comprehension",u[l-2],[["for-in",[],u[l],null]],[]];case 345:return["comprehension",u[l-4],[["for-in",[],u[l-2],u[l]]],[]];case 349:case 387:case 389:case 416:case 417:case 419:return[u[l-2],u[l]];case 352:return["class",null,null];case 353:return["class",null,null,u[l]];case 354:return["class",null,u[l]];case 355:return["class",null,u[l-1],u[l]];case 356:return["class",u[l],null];case 357:return["class",u[l-1],null,u[l]];case 358:return["class",u[l-2],u[l]];case 359:return["class",u[l-3],u[l-1],u[l]];case 360:return["enum",u[l-1],u[l]];case 361:return["schema",u[l]];case 362:return["component",null,["block",...u[l-1]]];case 363:return["component",u[l-3],["block",...u[l-1]]];case 370:return["offer",u[l]];case 371:return["accept",u[l]];case 372:case 373:return["render",u[l]];case 374:case 377:return["import","{}",u[l]];case 375:case 376:return["import",u[l-2],u[l]];case 378:return["import",u[l-4],u[l]];case 379:return["import",u[l-4],u[l-2],u[l]];case 380:return["import",u[l-7],u[l-4],u[l]];case 391:return["*",u[l]];case 392:return["export","{}"];case 393:return["export",u[l-2]];case 394:case 395:case 396:case 397:case 401:case 402:case 403:case 404:return["export",u[l]];case 398:return["export",["=",u[l-2],u[l]]];case 399:return["export",["=",u[l-3],u[l]]];case 400:return["export",["=",u[l-4],u[l-1]]];case 405:return["export-default",u[l]];case 406:return["export-default",u[l-1]];case 407:return["export-all",u[l]];case 408:return["export-from","{}",u[l]];case 409:return["export-from",u[l-4],u[l]];case 421:case 422:case 424:case 460:return["do-iife",u[l]];case 426:return["-",u[l]];case 427:return["+",u[l]];case 428:return["?",u[l-1]];case 429:return["presence",u[l-1]];case 430:return["await",u[l]];case 431:return["await",u[l-1]];case 432:return["--",u[l],!1];case 433:return["++",u[l],!1];case 434:return["--",u[l-1],!0];case 435:return["++",u[l-1],!0];case 436:return["+",u[l-2],u[l]];case 437:return["-",u[l-2],u[l]];case 439:return["**",u[l-2],u[l]];case 442:return["&",u[l-2],u[l]];case 443:return["^",u[l-2],u[l]];case 444:return["|",u[l-2],u[l]];case 445:case 446:case 447:case 448:case 449:case 450:return["control",u[l-1],u[l-2],u[l]];case 451:return["&&",u[l-2],u[l]];case 452:return["||",u[l-2],u[l]];case 453:return["??",u[l-2],u[l]];case 454:return["|>",u[l-2],u[l]];case 456:return["?:",u[l-4],u[l-2],u[l]];case 458:return[u[l-3],u[l-4],u[l-1]];case 459:return[u[l-2],u[l-3],u[l]]}},parseError(f,_){let i,n,u,l,c,h,A;if(_.recoverable)return this.trace(f);else throw u=(_.line||0)+1,i=_.loc?.c||0,A=_.token?` (token: ${_.token})`:"",h=_.text?` near '${_.text}'`:"",l=`line ${u}, column ${i}`,c=`Parse error at ${l}${A}${h}: ${f}`,n=Error(c),n.hash=_,n},parse(f){let _,i,n,u,l,c,h,A,w,D,$,U,R,z,M,F,H,K,W,O,Q,Y,J,Z,q,G,P,L;[Q,L,$]=[[0],[null],[]],[z,G,Z,J,H]=[this.parseTable,"",0,0,0],[i,_]=[2,1],w=Object.create(this.lexer),W={ctx:{}};for(let I in this.ctx){if(!Object.hasOwn(this.ctx,I))continue;let e=this.ctx[I];W.ctx[I]=e}if(w.setInput(f,W.ctx),[W.ctx.lexer,W.ctx.parser]=[w,this],w.loc==null)w.loc={};q=w.loc,$.push(q),this.parseError=typeof W.ctx.parseError==="function"?W.ctx.parseError:Object.getPrototypeOf(this).parseError,A=()=>{let I;if(I=w.lex()||_,typeof I!=="number")I=this.symbolIds[I]||I;return I},Y=M=O=n=F=R=h=U=l=null,K={};while(!0){if(O=Q[Q.length-1],Y==null)Y=A();if(n=z[O]?.[Y],n==null){if(u="",!H)l=(()=>{let I=[];for(let e in z[O]){if(!Object.hasOwn(z[O],e))continue;if(this.tokenNames[e]&&e>i)I.push(`'${this.tokenNames[e]}'`)}return I})();throw u=(()=>{if(w.showPosition)return`Parse error on line ${Z+1}:
|
|
1029
|
+
${w.showPosition()}
|
|
1030
|
+
Expecting ${l.join(", ")}, got '${this.tokenNames[Y]||Y}'`;else return`Parse error on line ${Z+1}: Unexpected ${Y===_?"end of input":`'${this.tokenNames[Y]||Y}'`}`,this.parseError(u,{text:w.match,token:this.tokenNames[Y]||Y,line:w.line,loc:q,expected:l})})(),Error(u)}if(n>0)if(Q.push(Y,n),L.push(w.text),$.push(w.loc),Y=null,!M){if([J,G,Z,q]=[w.len,w.text,w.line,w.loc],H>0)H--}else[Y,M]=[M,null];else if(n<0){if(h=this.ruleTable[-n*2+1],K.$=L[L.length-h],D=$[$.length-(h||1)],K._$={r:D.r,c:D.c},F=this.ruleActions.call(K,-n,L,$,W.ctx),F!=null)K.$=F;if(Array.isArray(K.$))K.$.loc=K._$;if(h)Q.length-=h*2,L.length-=h,$.length-=h;Q.push(this.ruleTable[-n*2]),L.push(K.$),$.push(K._$),U=z[Q[Q.length-2]][Q[Q.length-1]],Q.push(U)}else if(n===0)return L[L.length-1]}},trace(){},ctx:{}},Y4=(f={})=>{let _=Object.create(Q4);return Object.defineProperty(_,"ctx",{value:{...f},enumerable:!1,writable:!0,configurable:!0}),_},z1=Y4();var J0=z1.parse.bind(z1);var Z2=null;function l3(f){Z2=f}var Z4=new Set(["input","shape","model","mixin","enum"]),_3="input",q4=new Set(["beforeValidation","afterValidation","beforeSave","afterSave","beforeCreate","afterCreate","beforeUpdate","afterUpdate","beforeDestroy","afterDestroy"]),J4=new Set(["TERMINATOR","INDENT","OUTDENT","=","+=","-=","*=","/=","%=","**=","//=","%%=","?=","??=","&&=","||=","&=","|=","^=","<<=",">>=",">>>=","READONLY_ASSIGN","REACTIVE_ASSIGN","COMPUTED_ASSIGN","RETURN","THROW","YIELD","AWAIT","EXPORT",",","(","[","{","CALL_START","PARAM_START","INDEX_START","->","=>",":","WHEN","THEN","IF","UNLESS","UNARY","!","NOT"]);function i2(f,_){if(f)f.prototype.rewriteSchema=function(){G4(this)},s1._LexerCtor=f;if(_)_.prototype.emitSchema=function(i,n,u){return m4(this,i,n,u)},_.prototype.getSchemaRuntime=function(){let i=this.options?.schemaMode||"migration";return i5({mode:i})}}var u3=new Set(["defaultMaxString"]);function G4(f){let _=f.tokens,i={defaultMaxString:null},n=0,u=0;while(u<_.length){let l=_[u];if(l[0]==="INDENT")n++;else if(l[0]==="OUTDENT")n--;let c=X4(_,u,i,n);if(c>0){_.splice(u,c);continue}if(P4(_,u))y4(f,_,u,i);u++}}function X4(f,_,i,n){let u=f[_];if(!u||u[0]!=="IDENTIFIER"||u[1]!=="schema")return 0;if(f[_+1]?.[0]!==".")return 0;let l=f[_+2];if(!l||l[0]!=="PROPERTY")return 0;if(f[_+3]?.[0]!=="=")return 0;let c=f[_-1];if(c){let $=c[0];if($!=="TERMINATOR"&&$!=="INDENT"&&$!=="OUTDENT")return 0}let h=l[1];if(!u3.has(h))throw r(l,`Unknown schema pragma 'schema.${h}'. Known pragmas: ${[...u3].join(", ")}.`);if(n>0)throw r(l,`Schema pragma 'schema.${h}' must be declared at file top level. It was found inside a nested block (function / class / if / loop body), where it would leak into later top-level schemas.`);let A=f[_+4];if(!A||A[0]!=="NUMBER")throw r(A||l,`Pragma 'schema.${h}' requires a number literal. Example: schema.${h} = 100.`);let w=Number(A[1]);if(!Number.isFinite(w)||w<0||!Number.isInteger(w))throw r(A,`Pragma 'schema.${h}' expects a non-negative integer (got ${A[1]}). Use 0 to disable.`);i[h]=w===0?null:w;let D=_+5;if(f[D]?.[0]==="TERMINATOR")D++;return D-_}function P4(f,_){let i=f[_];if(!i||i[0]!=="IDENTIFIER"||i[1]!=="schema")return!1;let n=f[_-1];if(n){let l=n[0];if(l==="."||l==="?.")return!1;if(n[0]==="IDENTIFIER"||n[0]==="PROPERTY"||n[0]===")"||n[0]==="]"||n[0]==="}"||n[0]==="STRING"||n[0]==="NUMBER"){if(!J4.has(l))return!1}}let u=_+1;if(f[u]?.[0]==="SYMBOL")u++;if(f[u]?.[0]==="TERMINATOR"){if(f[u][1]===";")return!0;u++}return f[u]?.[0]==="INDENT"}function y4(f,_,i,n){let u=_[i],l=null,c=_3,h=i+1;if(_[h]?.[0]==="SYMBOL"){l=_[h];let R=l[1];if(!Z4.has(R))throw r(l,`Unknown schema kind :${R}. Expected one of :input, :shape, :model, :mixin, :enum.`);c=R,h++}let A,w;if(_[h]?.[0]==="TERMINATOR"&&_[h][1]===";"){let R=h+1,z=R,M=0,F=_[R]?.loc?.r??null;while(z<_.length){let H=_[z],K=H[0];if(M===0&&F!=null&&H.loc&&H.loc.r>F)break;if(K==="("||K==="["||K==="{"||K==="CALL_START"||K==="INDEX_START"||K==="PARAM_START")M++;else if(K===")"||K==="]"||K==="}"||K==="CALL_END"||K==="INDEX_END"||K==="PARAM_END")M--;else if(M===0&&K==="TERMINATOR"&&H[1]!==";")break;else if(M===0&&(K==="INDENT"||K==="OUTDENT"))break;else if(M===0&&K==="->")throw r(H,"Inline schema body does not support '->' (method/hook/transform). Use the indented form.");else if(M===0&&K==="EFFECT")throw r(H,"Inline schema body does not support '~>' (computed getter). Use the indented form.");else if(M===0&&K==="UNARY_MATH"&&H[1]==="!"&&_[z+1]?.[0]==="COMPARE"&&_[z+1][1]===">")throw r(H,"Inline schema body does not support '!>' (eager derived). Use the indented form.");z++}while(z>R&&_[z-1][0]==="TERMINATOR")z--;if(A=_.slice(R,z),w=z,!A.length)throw r(u,`Inline schema body is empty. Either add '; field; …' entries after 'schema${l?" :"+c:""};' or switch to the indented form.`)}else{if(_[h]?.[0]==="TERMINATOR")h++;if(_[h]?.[0]!=="INDENT")throw r(u,`Expected indented schema body after 'schema${l?" :"+c:""}'.`);let R=h,z=l5(_,R);if(z<0)throw r(_[R],"Unterminated schema body.");A=_.slice(R+1,z),w=z+1}let D=S4(c,A,{schemaLoc:u.loc,kindLoc:l?.loc??null,kind:c,defaultMaxString:n?.defaultMaxString??null}),$=q2("SCHEMA","schema",u),U=q2("SCHEMA_BODY",c,u);U.data={descriptor:D},_.splice(i,w-i,$,U)}function S4(f,_,i){let n=[],u=E4(_);if(f===_3&&!i.kindLoc&&u.length>0&&u[0][0]?.[0]==="SYMBOL")f="enum",i.kind="enum";if(f==="enum")for(let l of u)r4(l,n);else{for(let l of u)b4(f,l,n,i);if(f==="mixin")for(let l of n){if(l.tag==="method"||l.tag==="computed"||l.tag==="hook")throw r({loc:l.headerLoc||l.loc},`:mixin schemas are fields-only. '${l.name}' is a ${l.tag}; move it to a :shape or :model.`);if(l.tag==="ensure")throw r({loc:l.headerLoc||l.loc},":mixin schemas don't accept @ensure refinements. Move the invariant to a :shape or :model that composes this mixin.");if(l.tag==="directive"&&l.name!=="mixin")throw r({loc:l.loc},`:mixin schemas only accept '@mixin Name' directives. '@${l.name}' is not allowed.`)}else if(f==="input")for(let l of n){if(l.tag==="method"||l.tag==="computed"||l.tag==="hook")throw r({loc:l.headerLoc||l.loc},`:input schemas are fields-only. '${l.name}' is a ${l.tag}; use :shape or :model if you need behavior.`);if(l.tag==="directive"&&l.name!=="mixin")throw r({loc:l.loc},`:input schemas only accept '@mixin Name' and '@ensure'. '@${l.name}' is not allowed.`)}else if(f==="shape")for(let l of n){if(l.tag==="hook")throw r({loc:l.headerLoc||l.loc},`:shape schemas don't have lifecycle hooks. '${l.name}' runs only on :model; move it or remove it.`);if(l.tag==="directive"&&l.name!=="mixin")throw r({loc:l.loc},`:shape schemas only accept '@mixin Name'. '@${l.name}' is :model-only.`)}}return{kind:f,loc:i.schemaLoc,kindLoc:i.kindLoc,entries:n}}function E4(f){let _=[],i=[],n=0;for(let u of f){let l=u[0];if(l==="INDENT")n++;if(l==="OUTDENT")n--;if(l==="TERMINATOR"&&n===0){if(i.length)_.push(i),i=[];continue}i.push(u)}if(i.length)_.push(i);return _}var N4=new Set(["string","email","url","phone","zip"]);function b4(f,_,i,n){let u=_[0];if(!u)return;if(u[0]==="@"){let Y=_[1];if(!Y||Y[0]!=="IDENTIFIER"&&Y[0]!=="PROPERTY")throw r(u,"Expected directive name after '@'.");let J=_.slice(2),Z=Y[1];if(Z==="ensure"){let G=L4(J,u);for(let P of G)i.push({tag:"ensure",name:"ensure",message:P.message,paramTokens:P.paramTokens,bodyTokens:P.bodyTokens,loc:P.loc,headerLoc:u.loc});return}let q=null;if(Z==="belongs_to"||Z==="has_many"||Z==="has_one"||Z==="one"||Z==="many"||Z==="mixin"){let G=J[0];if(G&&(G[0]==="IDENTIFIER"||G[0]==="PROPERTY")){let P=G.data?.optional===!0;if(!P&&J[1]?.[0]==="?")P=!0;q=[{target:G[1],optional:P}]}}i.push({tag:"directive",name:Z,args:q,argTokens:J,loc:u.loc});return}if(u[0]==="PROPERTY"){T4(f,u,_,i);return}if(u[0]!=="IDENTIFIER")throw r(u,`Unexpected ${u[0]} at schema top level. Allowed: fields ('name! type'), directives ('@name'), methods ('name: -> body'), or computed getters ('name: ~> body').`);let l=u[1];if(_[1]?.[0]===":")throw r(_[1],"Schema fields use 'name type' (space, no colon). For methods or computed use 'name: -> body' or 'name: ~> body'.");let c=f5(u),h=1;while(h<_.length){let Y=_[h];if(!(_[h-1]&&!_[h-1].spaced))break;if(Y[0]==="#"||Y[0]==="?"||Y[0]==="!"){c.push(Y[0]),h++;continue}break}let A=_[h];if(A?.[0]===":")throw r(A,"Schema fields use 'name type' (space, no colon). Got 'name:'. For methods/computed use 'name: -> body' or 'name: ~> body'.");let w="string",D=null;if(A?.[0]==="IDENTIFIER")w=A[1],h++;else if(A?.[0]==="STRING"){D=[JSON.parse(A[1])],h++;while(_[h]?.[0]==="|"&&_[h+1]?.[0]==="STRING")h++,D.push(JSON.parse(_[h][1])),h++;if(_[h]?.[0]==="|"){let Y=_[h+1],J=Y?.[0]??"<end>";throw r(Y||_[h],`Literal unions contain string literals only. '${J}' is not allowed as a union member. Use the '?' modifier for nullability.`)}if(D.length<2)throw r(A,`Literal union needs at least two string literals. Use '${JSON.stringify(D[0])}' as a default with '[${JSON.stringify(D[0])}]' instead.`);w="literal-union"}let $=!1,U=_[h]?.[0],R=_[h+1]?.[0];if((U==="["||U==="INDEX_START")&&(R==="]"||R==="INDEX_END"))$=!0,h+=2;let z=_.slice(h);if((A?.[0]==="IDENTIFIER"||A?.[0]==="STRING")&&z[0]?.[0]==="->")throw r(z[0],`Field '${l}' has a transform after the type; a comma is required before '->'. Write '${l} ${w}, -> …'.`);let F=null,H=null,K=null,W=null,O=null;if(z.length>0){if(z[0]?.[0]===",")z=z.slice(1);let Y=o1(z);for(let J=0;J<Y.length;J++){let Z=Y[J];while(Z.length&&(Z[0][0]==="INDENT"||Z[0][0]==="TERMINATOR"))Z=Z.slice(1);if(!Z.length)continue;if(Z[0][0]!=="->"){let G=I4(Z);if(G>0)throw r(Z[G],`Field '${l}' has a transform after other content; a comma is required before '->'. Write 'name! <constraints>, -> <body>'.`)}let q=Z[0];if(q[0]!=="->"){while(Z.length&&(Z[Z.length-1][0]==="OUTDENT"||Z[Z.length-1][0]==="TERMINATOR"))Z=Z.slice(0,-1);if(!Z.length)continue;q=Z[0]}if(q[0]==="["||q[0]==="INDEX_START"){if(F)throw r(q,`Field '${l}' has more than one '[…]' constraint. At most one default / regex bracket per field.`);F=Z}else if(q[0]==="{"){if(H)throw r(q,`Field '${l}' has more than one '{…}' attrs bracket.`);H=Z}else if(B4(Z)){if(K)throw r(q,`Field '${l}' has more than one range constraint. Only one 'min..max' per field.`);K=Z}else if(q[0]==="REGEX"&&Z.length===1){if(W)throw r(q,`Field '${l}' has more than one regex constraint.`);W=q}else if(q[0]==="->"){if(J!==Y.length-1)throw r(q,`Transform '-> …' must be the last element on the field line for '${l}'.`);O=Z.slice(1)}else throw r(q,`Unexpected trailer for field '${l}'. Expected '[…]' default, '{…}' attrs, '/regex/', 'min..max' range, or '-> transform'.`)}}if($&&D)throw r(A,"Array-of-literal-union is not supported. Use 'string[]' if you need an array of strings.");let Q=null;if(n?.defaultMaxString!=null&&!W&&!D&&N4.has(w))Q=n.defaultMaxString;i.push({tag:"field",name:l,modifiers:c,typeName:w,array:$,literals:D,constraintTokens:F,attrsTokens:H,rangeTokens:K,regexToken:W,transformTokens:O,defaultMax:Q,loc:u.loc})}function I4(f){let _=0;for(let i=0;i<f.length;i++){let n=f[i][0];if(n==="("||n==="["||n==="{"||n==="CALL_START"||n==="INDEX_START"||n==="PARAM_START")_++;else if(n===")"||n==="]"||n==="}"||n==="CALL_END"||n==="INDEX_END"||n==="PARAM_END")_--;else if(_===0&&n==="->")return i}return-1}function B4(f){let _=0,i=!1;if(f[_]?.[0]==="-"&&f[_+1]?.[0]==="NUMBER")_+=2,i=!0;else if(f[_]?.[0]==="NUMBER")_++,i=!0;if(f[_]?.[0]!=="..")return!1;_++;let n=!1;if(f[_]?.[0]==="-"&&f[_+1]?.[0]==="NUMBER")_+=2,n=!0;else if(f[_]?.[0]==="NUMBER")_++,n=!0;return(i||n)&&_===f.length}function T4(f,_,i,n){let u=_[1],l=i[1];if(!l||l[0]!==":")throw r(_,`Expected ':' after '${u}' before arrow.`);let c=i[2],h=i[3],A,w,D;if(c&&c[0]==="->")A="->",w=c.loc,D=3;else if(c&&c[0]==="EFFECT")A="~>",w=c.loc,D=3;else if(c&&c[0]==="UNARY_MATH"&&c[1]==="!"&&h&&h[0]==="COMPARE"&&h[1]===">"&&!c.spaced)A="!>",w=c.loc,D=4;else throw r(l,`Schema top-level '${u}:' must be followed by '->' (method/hook), '~>' (computed getter), or '!>' (eager derived).`);let $=i.slice(D),U=q4.has(u),R;if(A==="~>")R="computed";else if(A==="!>")R="derived";else if(f==="model"&&U)R="hook";else R="method";n.push({tag:R,name:u,arrow:A,paramTokens:[],bodyTokens:$,headerLoc:_.loc,arrowLoc:w})}function L4(f,_){let i=f;if(!i.length)throw r(_,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");if(i[0]?.[0]==="CALL_START"&&i[i.length-1]?.[0]==="CALL_END")i=i.slice(1,-1);if(!i.length)throw r(_,"@ensure requires 'message, (x) -> body' or '[...]' array of pairs.");let n=i[0];if(n[0]==="["||n[0]==="INDEX_START"){let l=C4(i,n),c=j4(l);if(c.length===0)throw r(n,"@ensure [...] must contain at least one 'message, fn' pair.");if(c.length%2!==0)throw r(n,`@ensure [...] must have pairs of 'message, fn' (got ${c.length} elements; odd count).`);let h=[];for(let A=0;A<c.length;A+=2)h.push(f3(c[A],c[A+1],n));return h}let u=o1(i);if(u.length<2)throw r(n,"@ensure inline form must be 'message, (x) -> body'. Did you forget the comma?");if(u.length>2)throw r(n,`@ensure inline form takes exactly 'message, fn' (got ${u.length} comma-separated parts). Use '@ensure [...]' for multiple refinements.`);return[f3(u[0],u[1],n)]}function C4(f,_){let i=0,n=[];for(let u=0;u<f.length;u++){let l=f[u],c=l[0];if(c==="["||c==="INDEX_START"){if(i++,i===1)continue}if(c==="]"||c==="INDEX_END"){if(i--,i===0){if(u<f.length-1)throw r(f[u+1],"@ensure [...] must be the only argument — extra tokens after ']'.");if(n.length>=2&&n[0][0]==="INDENT"&&n[n.length-1][0]==="OUTDENT"){let h=0,A=!1;for(let w=0;w<n.length;w++)if(n[w][0]==="INDENT")h++;else if(n[w][0]==="OUTDENT"){if(h--,h===0&&w===n.length-1){A=!0;break}if(h===0)break}if(A)n=n.slice(1,-1)}return n}}if(i>=1)n.push(l)}throw r(_,"@ensure: unclosed '['.")}function j4(f){let _=[],i=[],n=0;for(let u of f){let l=u[0];if(l==="("||l==="["||l==="{"||l==="CALL_START"||l==="INDEX_START"||l==="PARAM_START"||l==="INDENT")n++;if(l===")"||l==="]"||l==="}"||l==="CALL_END"||l==="INDEX_END"||l==="PARAM_END"||l==="OUTDENT")n--;if(n===0&&(l===","||l==="TERMINATOR")){if(i.length)_.push(i),i=[];continue}i.push(u)}if(i.length)_.push(i);return _}function f3(f,_,i){if(!f||!f.length)throw r(i,"@ensure: missing message (expected a string literal).");if(f.length!==1||f[0][0]!=="STRING")throw r(f[0]||i,"@ensure: each refinement's first element must be a string literal message.");let n=f[0],u=JSON.parse(n[1]);if(!_||!_.length)throw r(n,"@ensure: missing function after message.");let l=_[0];if(l[0]!=="("&&l[0]!=="PARAM_START")throw r(l,"@ensure: expected '(args) -> body' after the message. Predicates must declare their parameter explicitly — '(u) -> ...'.");let c=1,h=1,A=[];while(h<_.length&&c>0){let $=_[h],U=$[0];if(U==="("||U==="PARAM_START")c++;if(U===")"||U==="PARAM_END"){if(c--,c===0){h++;break}}A.push($),h++}if(c!==0)throw r(l,"@ensure: unclosed '(' in predicate parameters.");let w=_[h];if(!w||w[0]!=="->")throw r(w||_[h-1]||n,"@ensure: expected '->' after predicate parameters.");let D=_.slice(h+1);if(!D.length)throw r(w,"@ensure: predicate function body is empty.");return{message:u,paramTokens:A,bodyTokens:D,loc:n.loc}}function V4(f,_){if(!f.length)return[];return o1(f).map((n)=>{let u=n.filter((l)=>l[0]!=="TERMINATOR");if(u.length!==1||u[0][0]!=="IDENTIFIER")throw r(u[0]||_,"@ensure: predicate parameters must be plain identifiers.");return u[0][1]})}function r4(f,_){let i=f[0];if(!i)return;if(i[0]==="@"){let l=f[1],c=l&&(l[0]==="IDENTIFIER"||l[0]==="PROPERTY")?l[1]:"directive";throw r(i,`:enum schemas don't accept '@${c}'. Enums hold only :symbol members. Move the invariant to a :shape or :model that uses this enum as a field type.`)}if(i[0]!=="SYMBOL")throw r(i,`Enum member must be a :symbol. Use ':${i[1]??"name"}' for a bare member or ':${i[1]??"name"} value' for a valued one.`);let n=i[1],u=f[1];if(!u){_.push({tag:"enum-member",name:n,value:void 0,loc:i.loc});return}if(u[0]===":")throw r(u,`Enum member ':${n}' — drop the ':' before the value. Use ':${n} value'.`);if(f.length>2)throw r(f[2],`Extra tokens after enum member ':${n}' value.`);_.push({tag:"enum-member",name:n,value:_5(u),loc:i.loc})}function m4(f,_,i,n){let u=i[0],l=a4(u);if(!l)throw Error("schema: missing descriptor on SCHEMA_BODY token");f.usesSchemas=!0;let c=f._schemaName||null,h=[`kind: ${JSON.stringify(l.kind)}`];if(c)h.push(`name: ${JSON.stringify(c)}`);return h.push(`entries: [${l.entries.map((A)=>v4(f,A)).join(", ")}]`),`__schema({${h.join(", ")}})`}function a4(f){if(f&&typeof f==="object"){if(f.descriptor)return f.descriptor;if(f.data?.descriptor)return f.data.descriptor}return null}function v4(f,_){switch(_.tag){case"field":{let i=['tag: "field"',`name: ${JSON.stringify(_.name)}`,`modifiers: ${JSON.stringify(_.modifiers)}`,`typeName: ${JSON.stringify(_.typeName)}`,`array: ${_.array?"true":"false"}`];if(_.literals)i.push(`literals: ${JSON.stringify(_.literals)}`);let n=_.rangeTokens?d4(_.rangeTokens,_):null,u=_.constraintTokens?o4(_.constraintTokens,_):null,l=_.regexToken?x4(_.regexToken):null,c=k4(n,u,l,_);if(c)i.push(`constraints: ${c}`);if(_.transformTokens)i.push(`transform: ${t4(f,_.transformTokens)}`);return`{${i.join(", ")}}`}case"directive":{let i=['tag: "directive"',`name: ${JSON.stringify(_.name)}`],n=e4(_.name,_.argTokens||[]);if(n)i.push(`args: ${n}`);return`{${i.join(", ")}}`}case"ensure":{let i=s4(f,_);return`{${['tag: "ensure"',`message: ${JSON.stringify(_.message)}`,`fn: ${i}`].join(", ")}}`}case"computed":case"method":case"hook":case"derived":{let i=g4(f,_);return`{${[`tag: ${JSON.stringify(_.tag)}`,`name: ${JSON.stringify(_.name)}`,`fn: ${i}`].join(", ")}}`}case"enum-member":{let i=['tag: "enum-member"',`name: ${JSON.stringify(_.name)}`];if(_.value!==void 0)i.push(`value: ${JSON.stringify(_.value)}`);return`{${i.join(", ")}}`}default:return'{tag: "unknown"}'}}function g4(f,_){let i=s1(_.bodyTokens);if(!i)return"(function() {})";let n=["->",[],i];return f.emit(n,"value")}function t4(f,_){let i=s1(_);if(!i)return"(function() { return undefined; })";let n=["->",[],i];return f.emit(n,"value")}function s4(f,_){let i=s1(_.bodyTokens);if(!i)return"(function() { return undefined; })";let u=["->",V4(_.paramTokens,_),i];return f.emit(u,"value")}function o4(f,_){let i=f.slice(1,-1),n=o1(i);if(!n.length)return{c:null};let u=n.map((l)=>i3(l,_));if(u.length===1){let l=u[0];if(l instanceof RegExp)throw r(f[0],`Regex constraints are written bare, not in brackets. Replace '[${l}]' with '${l}'.`);return{c:{default:l}}}if(u.length===2&&typeof u[0]==="number"&&typeof u[1]==="number")throw r(f[0],`Size/value ranges use 'min..max' syntax, not brackets. Replace '[${u[0]}, ${u[1]}]' with '${u[0]}..${u[1]}'.`);if(u.length===3&&u.every((l)=>typeof l==="number"))throw r(f[0],`Range + default is two separate constraints in v2. Replace '[${u[0]}, ${u[1]}, ${u[2]}]' with '${u[0]}..${u[1]}, [${u[2]}]'.`);throw r(f[0],`Constraint bracket takes a single default value in v2. Got ${u.length} elements.`)}function x4(f){let _=f[1],i=/^\/((?:\\.|[^\\/])+)\/([a-z]*)$/.exec(_);if(!i)throw r(f,`Invalid regex literal ${JSON.stringify(_)}.`);try{return new RegExp(i[1],i[2])}catch(n){throw r(f,`Invalid regex '${_}': ${n.message}`)}}function d4(f,_){let i=0,n=()=>{let h=1;if(f[i]?.[0]==="-")h=-1,i++;let A=f[i++],w=i3([A],_);if(typeof w!=="number")throw r(A,"Range endpoints must be numeric literals.");return h*w},u;if(f[i]?.[0]!=="..")u=n();i++;let l;if(i<f.length)l=n();if(u!==void 0&&l!==void 0&&u>l)throw r(f[0],`Range '${u}..${l}' is reversed. Write the smaller endpoint first.`);let c={};if(u!==void 0)c.min=u;if(l!==void 0)c.max=l;return c}function k4(f,_,i,n){let u=_&&_.c||{},l=f&&f.min===void 0;if(f){if(f.min!==void 0)u.min=f.min;if(f.max!==void 0)u.max=f.max;if(l&&u.min===void 0&&n?.modifiers?.includes("!"))u.min=1}if(i)u.regex=i;if(n?.defaultMax!=null&&u.max===void 0)u.max=n.defaultMax;if(u.min!==void 0&&u.max!==void 0&&u.min>u.max){let c=f&&f.min!==void 0?`range min ${f.min}`:"implicit min=1 from `!`",h=f&&f.max!==void 0?`range max ${f.max}`:`pragma defaultMaxString=${n?.defaultMax}`;throw r({loc:n?.loc},`Field '${n?.name}' would have impossible constraints min=${u.min} > max=${u.max} after sugar is applied (${c} vs ${h}). Write an explicit range or drop the conflicting pragma.`)}if(u.min===void 0&&u.max===void 0&&u.default===void 0&&u.regex===void 0)return null;return p4(u)}function p4(f){let _=[];if(f.min!==void 0)_.push(`min: ${Y2(f.min)}`);if(f.max!==void 0)_.push(`max: ${Y2(f.max)}`);if(f.default!==void 0)_.push(`default: ${Y2(f.default)}`);if(f.regex!==void 0)_.push(`regex: ${f.regex.toString()}`);return _.length?`{${_.join(", ")}}`:null}function Y2(f){if(f===null)return"null";if(f===void 0)return"undefined";if(typeof f==="string")return JSON.stringify(f);if(typeof f==="number"||typeof f==="boolean")return String(f);if(f instanceof RegExp)return f.toString();return JSON.stringify(f)}function e4(f,_){if(f==="idStart"&&!_.length)throw r(null,"@idStart requires an integer literal, e.g. @idStart 10001.");if(!_.length)return null;if(f==="belongs_to"||f==="has_many"||f==="has_one"||f==="one"||f==="many"||f==="mixin"){let i=_[0];if(!i||i[0]!=="IDENTIFIER"&&i[0]!=="PROPERTY")throw r(i||_[_.length-1],`@${f} requires a target name.`);let n=i[1],u=i.data?.optional===!0,l=1;if(!u&&_[l]?.[0]==="?")u=!0,l++;let c=[`target: ${JSON.stringify(n)}`];if(u)c.push("optional: true");return`[{${c.join(", ")}}]`}if(f==="index"){let i=[],n=!1,u=0;if(_[u]?.[0]==="IDENTIFIER"||_[u]?.[0]==="PROPERTY")i.push(_[u][1]),u++;else if(_[u]?.[0]==="["||_[u]?.[0]==="INDEX_START"){let c=[],h=1;u++;while(u<_.length&&h>0){let A=_[u];if(A[0]==="["||A[0]==="INDEX_START")h++;if(A[0]==="]"||A[0]==="INDEX_END"){if(h--,h===0){u++;break}}c.push(A),u++}for(let A of o1(c))if(A[0]&&(A[0][0]==="IDENTIFIER"||A[0][0]==="PROPERTY"))i.push(A[0][1])}if(_[u]?.[0]==="#")n=!0;let l=[`fields: ${JSON.stringify(i)}`];if(n)l.push("unique: true");return`[{${l.join(", ")}}]`}if(f==="idStart"){let i=_[0],n=1,u=i;if(i&&i[0]==="-"&&_[1]&&_[1][0]==="NUMBER")n=-1,u=_[1];if(!u||u[0]!=="NUMBER")throw r(i||_[_.length-1],"@idStart requires an integer literal, e.g. @idStart 10001.");let l=n*Number(u[1]);if(!Number.isInteger(l))throw r(u,"@idStart requires an integer literal; got "+u[1]+".");return"[{value: "+l+"}]"}return null}function i3(f,_){if(!f.length)throw r(null,"Empty constraint value.");let i=f[0],n=i[0];if(f.length===1){if(n==="NUMBER")return Number(i[1]);if(n==="STRING")return JSON.parse(i[1]);if(n==="BOOL")return i[1]==="true";if(n==="NULL")return null;if(n==="UNDEFINED")return;if(n==="REGEX")return u5(i[1]);if(n==="SYMBOL")return i[1]}if(f.length===2&&n==="-"&&f[1][0]==="NUMBER")return-Number(f[1][1]);throw r(i,`Constraint values must be literals (number, string, boolean, null, regex, :symbol). Got ${n}.`)}function u5(f){let _=typeof f==="string"?f:String(f),i=_.match(/^\/(.*)\/([gimsuy]*)$/s);return i?new RegExp(i[1],i[2]):new RegExp(_)}function s1(f){if(!f||!f.length)return null;let _=s1._LexerCtor;if(!_)throw Error("schema: parseBodyTokens called before Lexer was wired");let i=Object.create(_.prototype),n=f.slice();if(n.length>=2&&n[0]?.[0]==="INDENT"){let w=0,D=-1;for(let $=0;$<n.length;$++)if(n[$][0]==="INDENT")w++;else if(n[$][0]==="OUTDENT"){if(w--,w===0){D=$;break}}if(D===n.length-1)n=n.slice(1,-1)}if(i.tokens=n,i.seenFor=i.seenImport=i.seenExport=!1,i.ends=[],i.indent=0,i.outdebt=0,i.indents=[],i.tokens[i.tokens.length-1]?.[0]!=="TERMINATOR")i.tokens.push(q2("TERMINATOR",`
|
|
1031
|
+
`,f[f.length-1]));try{i.rewriteTypes?.(),i.tagPostfixConditionals?.(),i.rewriteTaggedTemplates?.(),i.addImplicitBracesAndParens?.(),i.addImplicitCallCommas?.()}catch(w){throw r(f[0],`schema: failed to compile body: ${w.message}`)}let l=i.tokens.filter((w)=>w[0]!=="TYPE_DECL"),c=z1.lexer;z1.lexer={tokens:l,pos:0,setInput(){},lex(){if(this.pos>=this.tokens.length)return 1;let w=this.tokens[this.pos++],D=w[1];if(w.data)D=new String(D),Object.assign(D,w.data);return this.text=D,this.loc=w.loc,this.line=w.loc?.r,w[0]}};let h;try{h=z1.parse("")}finally{z1.lexer=c}if(!Array.isArray(h)||h[0]!=="program")return null;let A=h.slice(1);if(A.length===0)return null;if(A.length===1)return A[0];return["block",...A]}function f5(f){let _=[],i=f.data;if(i?.bang===!0)_.push("!");if(i?.optional===!0)_.push("?");return _}function l5(f,_){let i=0;for(let n=_;n<f.length;n++)if(f[n][0]==="INDENT")i++;else if(f[n][0]==="OUTDENT"){if(i--,i===0)return n}return-1}function o1(f){let _=[],i=[],n=0;for(let u of f){let l=u[0];if(l==="("||l==="["||l==="{"||l==="CALL_START"||l==="INDEX_START"||l==="PARAM_START"||l==="INDENT")n++;if(l===")"||l==="]"||l==="}"||l==="CALL_END"||l==="INDEX_END"||l==="PARAM_END"||l==="OUTDENT")n--;if(l===","&&n===0){if(i.length)_.push(i);i=[];continue}i.push(u)}if(i.length)_.push(i);return _}function _5(f){let _=f[0],i=f[1];if(_==="NUMBER")return Number(i);if(_==="STRING")return JSON.parse(i);if(_==="BOOL")return i==="true";if(_==="NULL")return null;if(_==="UNDEFINED")return;return i}function q2(f,_,i){let n=[f,_];if(n.pre=0,n.data=null,n.loc=i?.loc??{r:0,c:0,n:0},n.spaced=!1,n.newLine=!1,n.generated=!0,i)n.origin=i;return n}function r(f,_){let i=f?.loc||{r:0,c:0},n=Error(_);return n.name="SchemaSyntaxError",n.loc=i,n.line=i.r,n.column=i.c,n.phase="schema",n.code="E_SCHEMA",n}function i5(f={}){if(!Z2)throw Error("schema runtime provider not registered. Side-effect-import either './schema/loader-server.js' (CLI / server / tests) or './schema/loader-browser.js' (browser bundle) before calling any compileToJS that emits schemas.");return Z2(f)}function n3({mode:f="browser"}={}){let _;switch(f){case"validate":_=Q2;break;case"browser":_=Q2+`
|
|
1032
|
+
`+e2;break;case"server":case"migration":throw Error("schema runtime mode '"+f+"' is not available in the browser. ORM and DDL features require side-effect-importing loader-server.js.");default:throw Error(`unknown schema runtime mode: ${f}`)}return(k2+_+p2).trimStart()}l3(n3);var n5=n3({mode:"browser"});if(typeof globalThis<"u"&&!globalThis.__ripSchema)try{(0,eval)(n5)}catch{}function w3(f){let _=f.prototype;_.rewriteTypes=function(){let i=this.tokens,n=this.typeRefNames=new Set,u=(l,c,h)=>{let A=[l,c];if(A.pre=0,A.data=null,A.loc=h?.loc??{r:0,c:0,n:0},A.spaced=!1,A.newLine=!1,A.generated=!0,h)A.origin=h;return A};this.scanTokens((l,c,h)=>{let A=l[0];if(A==="IDENTIFIER"){let w=h[c+1];if(w&&w[0]==="COMPARE"&&w[1]==="<"&&!w.spaced){let D=h[c-1]?.[0]==="DEF",$=h3(h,c+1);if($){let U=c+1+$.length,R=!D&&h[U]?.[0]==="="&&h[U+1]?.[0]==="COMPONENT";if(D||R){if(!l.data)l.data={};if(l.data.typeParams=q1($),h.splice(c+1,$.length),D&&h[c+1]?.[0]==="("){h[c+1][0]="CALL_START";let z=1,M=c+2;while(M<h.length&&z>0){if(h[M][0]==="("||h[M][0]==="CALL_START")z++;if(h[M][0]===")"||h[M][0]==="CALL_END")z--;if(z===0)h[M][0]="CALL_END";M++}}}}}}if(A==="TYPE_ANNOTATION"){let w=h[c-1];if(!w)return 1;let D=c3(h,c+1),$=q1(D),U=w,R="type";if(w[0]==="CALL_END"||w[0]===")"){let M=1,F=c-2;while(F>=0&&M>0){let H=h[F][0];if(H==="CALL_END"||H===")")M++;if(H==="CALL_START"||H==="(")M--;F--}if(F>=0)U=h[F];R="returnType"}else if(w[0]==="PARAM_END"){let M=c+1+D.consumed,F=h[M];if(F&&(F[0]==="->"||F[0]==="=>"))U=F;R="returnType"}else if(w[0]==="IDENTIFIER"&&c>=2&&h[c-2]?.[0]==="DEF")R="returnType";if(!U.data)U.data={};U.data[R]=$;for(let M of D)if(M[0]==="IDENTIFIER")n.add(M[1]);let z=1+D.consumed;return h.splice(c,z),0}if(A==="IDENTIFIER"&&l[1]==="type"){let w=h[c-1]?.[0];if(!(!w||w==="TERMINATOR"||w==="INDENT"||w==="EXPORT"))return 1;let $=c+1,U=h[$];if(!U||U[0]!=="IDENTIFIER")return 1;let R=U[1],z=w==="EXPORT",M=z?c-1:c,F=$+1;if(h[F]?.[0]==="COMPARE"&&h[F]?.[1]==="<"&&!h[F].spaced){let Y=h3(h,F);if(Y){if(!U.data)U.data={};U.data.typeParams=q1(Y),h.splice(F,Y.length)}}if(h[F]?.[0]!=="=")return 1;let H=(Y)=>{let J=u("TYPE_DECL",R,U);if(J.data={name:R,typeText:Y,exported:z},U.data?.typeParams)J.data.typeParams=U.data.typeParams;return J},K=F+1,W=h[K],O=(Y,J)=>{for(let Z=Y;Z<=J&&Z<h.length;Z++)if(h[Z][0]==="IDENTIFIER")n.add(h[Z][1])};if(W&&(W[0]==="TERMINATOR"||W[0]==="INDENT")){let Y=c5(h,K);if(Y)return O(K,Y.endIdx),h.splice(M,Y.endIdx-M+1,H(Y.typeText)),0}if(W&&W[0]==="INDENT"){let Y=G2(h,K);return O(K,Y),h.splice(M,Y-M+1,H(J2(h,K))),0}let Q=c3(h,K);return O(K,K+Q.consumed-1),h.splice(M,K+Q.consumed-M,H(q1(Q))),0}if(A==="INTERFACE"){let w=c>=1&&h[c-1]?.[0]==="EXPORT",D=c+1,$=h[D];if(!$)return 1;let U=$[1],R=null,z=D+1;if(h[z]?.[0]==="EXTENDS")R=h[z+1]?.[1],z=z+2;if(h[z]?.[0]==="INDENT"){let M=J2(h,z),F=G2(h,z);for(let O=z;O<=F&&O<h.length;O++)if(h[O][0]==="IDENTIFIER")n.add(h[O][1]);if(R)n.add(R);let H=u("TYPE_DECL",U,$);H.data={name:U,kind:"interface",extends:R,typeText:M,exported:w};let K=w?c-1:c,W=F-K+1;return h.splice(K,W,H),0}return 1}return 1});for(let l=i.length-1;l>=0;l--){if(i[l][0]!=="DEF")continue;let c=i[l+1];if(!c||c[0]!=="IDENTIFIER")continue;let h=l+2;if(i[h]?.[0]!=="CALL_START")continue;let A=1;h++;while(h<i.length&&A>0){if(i[h][0]==="CALL_START")A++;if(i[h][0]==="CALL_END")A--;h++}let w=h-1,D=i[h];if(D&&D[0]!=="TERMINATOR")continue;let $=c.data?.returnType;if(!$){for(let H=l+2;H<=w;H++)if(i[H].data?.type){$=!0;break}}if(!$)continue;let U=i.slice(l,h+1),R=l>=1&&i[l-1]?.[0]==="EXPORT",z=R?l-1:l,M=h+1-z,F=u("TYPE_DECL",c[1],c);if(F.data={name:c[1],kind:"overload",overloadTokens:U,exported:R},c.data?.typeParams)F.data.typeParams=c.data.typeParams;i.splice(z,M,F)}}}function c3(f,_){let i=[],n=0,u=[],l=_;while(_<f.length){let c=f[_],h=c[0],A=h==="("||h==="["||h==="{"||h==="CALL_START"||h==="PARAM_START"||h==="INDEX_START"||h==="COMPARE"&&c[1]==="<",w=h===")"||h==="]"||h==="}"||h==="CALL_END"||h==="PARAM_END"||h==="INDEX_END"||h==="COMPARE"&&c[1]===">";if(h==="SHIFT"&&c[1]===">>"&&n>=2){if(n-=2,u[u.length-1]==="<")u.pop();if(u[u.length-1]==="<")u.pop();i.push(c),_++;continue}if(A){n++;let D=h==="{"?"{":h==="["||h==="INDEX_START"?"[":h==="COMPARE"&&c[1]==="<"?"<":"(";u.push(D),i.push(c),_++;continue}if(w){if(n>0){n--,u.pop(),i.push(c),_++;continue}break}if(n===0){if(h==="INDENT"&&i.length>0&&i[i.length-1][0]==="=>"){_++;let D=1;while(_<f.length&&D>0)if(f[_][0]==="INDENT")D++,_++;else if(f[_][0]==="OUTDENT")D--,_++;else i.push(f[_]),_++;continue}if(h==="="||h==="REACTIVE_ASSIGN"||h==="COMPUTED_ASSIGN"||h==="READONLY_ASSIGN"||h==="EFFECT"||h==="TERMINATOR"||h==="INDENT"||h==="OUTDENT"||h==="->"||h===",")break}if(n>0&&(h==="INDENT"||h==="OUTDENT")){_++;continue}if(n>0&&h==="TERMINATOR"){i.push(["",";"]),_++;continue}if(h==="PROPERTY"&&u[u.length-1]==="{"){let D=i[i.length-1],$=D?.[0],U=D?.[1];if(D&&$!=="{"&&$!==","&&!($===""&&U===";"))i.push(["",";"])}i.push(c),_++}return i.consumed=_-l,i}function q1(f){if(f.length===0)return"";if(f[0]?.[0]==="=>")f.unshift(["","()"]);{let n=0;for(let u of f){let l=u[0];if(l==="{")n++;else if(l==="}")n--;else if(l==="TYPE_ANNOTATION"&&n>0){let c=u.loc,h=c?` (line ${c.r}, col ${c.c})`:"",A=Error(`Use \`:\` (not \`::\`) inside a structural type literal${h}. \`::\` binds a name to a type; inside \`{ ... }\` in type position, fields use \`:\` (TS-style).`);throw A.loc=c,A}}}let i=f.map((n,u)=>{let l=f[u+1];if(n.data?.optional&&l&&(l[0]==="TYPE_ANNOTATION"||l[0]===":"))return`${n[1]}?`;return n[1]}).join(" ").replace(/\s+/g," ").trim();return i=i.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": ").replace(/ : /g,": "),i}function h3(f,_){if(_>=f.length)return null;let i=f[_];if(i[0]!=="COMPARE"||i[1]!=="<")return null;let n=[i],u=1,l=_+1;while(l<f.length&&u>0){let c=f[l];if(n.push(c),c[0]==="COMPARE"&&c[1]==="<")u++;else if(c[0]==="COMPARE"&&c[1]===">")u--;l++}return u===0?n:null}function J2(f,_){let i=[],n=_+1,u=1;while(n<f.length&&u>0){let l=f[n];if(l[0]==="INDENT"){u++,n++;continue}if(l[0]==="OUTDENT"){if(u--,u===0)break;n++;continue}if(l[0]==="TERMINATOR"){n++;continue}if(u===1&&l[0]==="["){let h=[];n++;while(n<f.length&&f[n][0]!=="]")h.push(f[n]),n++;if(n++,f[n]?.[1]===":"||f[n]?.[0]==="TYPE_ANNOTATION")n++;let A=[];while(n<f.length){let $=f[n];if($[0]==="TERMINATOR"||$[0]==="OUTDENT")break;A.push($),n++}let w=q1(h),D=q1(A);i.push(`[${w}]: ${D}`);continue}let c=l[0]==="PROPERTY"||l[0]==="IDENTIFIER"||u===1&&/^[a-zA-Z_$]/.test(l[1])&&f[n+1]?.[0]==="TYPE_ANNOTATION";if(u===1&&c){let h=l[1],A=!1,w=!1;if(n++,h==="readonly"&&f[n]&&(f[n][0]==="PROPERTY"||f[n][0]==="IDENTIFIER"||/^[a-zA-Z_$]/.test(f[n][1])&&f[n+1]?.[0]==="TYPE_ANNOTATION")){if(w=!0,h=f[n][1],f[n].data?.optional)A=!0;n++}if(l.data?.optional)A=!0;if(f[n]?.[1]==="?"&&!f[n]?.spaced)A=!0,n++;if(f[n]?.[1]===":"||f[n]?.[0]==="TYPE_ANNOTATION")n++;let D=[],$=0;while(n<f.length){let F=f[n];if(F[0]==="IDENTIFIER"&&F[1]==="type"&&f[n+1]?.[0]==="INDENT"){n++;let H=J2(f,n);D.push(["",H]);let K=1;n++;while(n<f.length&&K>0){if(f[n][0]==="INDENT")K++;if(f[n][0]==="OUTDENT")K--;n++}continue}if(F[0]==="INDENT"){$++,n++;continue}if(F[0]==="OUTDENT"){if($>0){$--,n++;continue}break}if(F[0]==="TERMINATOR"&&$===0)break;D.push(F),n++}let U=q1(D),R=w?"readonly ":"",z=A?"?":"",M=!1;if(!A&&U.startsWith("(")){let F=0;for(let H=0;H<U.length;H++){let K=U[H];if(K==="(")F++;else if(K===")"){if(F--,F===0){let W=U.slice(H+1).trimStart();if(W===""||W.startsWith(":")&&!W.startsWith("::"))M=!0;break}}}}if(M)i.push(`${R}${h}${U}`);else i.push(`${R}${h}${z}: ${U}`)}else n++}return"{ "+i.join("; ")+" }"}function G2(f,_){let i=0;for(let n=_;n<f.length;n++){if(f[n][0]==="INDENT")i++;if(f[n][0]==="OUTDENT"){if(i--,i===0)return n}}return f.length-1}function c5(f,_){let i=_;if(f[i]?.[0]==="TERMINATOR")i++;if(f[i]?.[0]!=="INDENT")return null;let n=i;i++;while(i<f.length&&f[i][0]==="TERMINATOR")i++;if(!f[i]||f[i][1]!=="|")return null;let u=[],l=1;i=n+1;while(i<f.length&&l>0){let h=f[i];if(h[0]==="INDENT"){l++,i++;continue}if(h[0]==="OUTDENT"){if(l--,l===0)break;i++;continue}if(h[0]==="TERMINATOR"){i++;continue}if(h[1]==="|"&&l===1){i++;let A=[];while(i<f.length){let w=f[i];if(w[0]==="TERMINATOR"||w[0]==="OUTDENT"||w[1]==="|"&&l===1)break;A.push(w),i++}if(A.length>0)u.push(q1(A));continue}i++}if(u.length===0)return null;let c=G2(f,n);return{typeText:u.join(" | "),endIdx:c}}var A3=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),D3=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),P2={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},U3=new Set(Object.keys(P2)),h5=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),w5=new Set(["break","continue","debugger"]),A5=new Set(["NEW","TYPEOF","DELETE"]),D5=new Set(["IN","OF","INSTANCEOF"]),h2=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),w2=new Set([...h2,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","MAP_END","SYMBOL"]),n2=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","MAP_START","--","++","SYMBOL"]),U5=new Set(["+","-"]),$5=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),R5=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}","MAP_END","SYMBOL"]),J1=new Set(["(","[","{","MAP_START","PICK_START","OPTPICK_START","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),Q1=new Set([")","]","}","MAP_END","PICK_END","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),F5={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START",MAP_START:"MAP_END",MAP_END:"MAP_START",PICK_START:"PICK_END",PICK_END:"PICK_START",OPTPICK_START:"PICK_END"},$3=new Set(["CATCH","THEN","ELSE","FINALLY",...Q1]),X2=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),M5=new Set(["IDENTIFIER","PROPERTY",")","CALL_END","]","INDEX_END"]),z5=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT","FOR"]),W5=new Set(["IDENTIFIER","PROPERTY","NUMBER","STRING","STRING_END","REGEX","REGEX_END",")","CALL_END","]","INDEX_END","}","MAP_END","PICK_END","BOOL","NULL","UNDEFINED","INFINITY","NAN","SUPER","THIS","@","SYMBOL"]),R3=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),O5=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),T1=new Set(["INDENT","OUTDENT","TERMINATOR"]),P1=(f)=>f?.[0]==="IDENTIFIER"||f?.[0]==="PROPERTY",c2=(f,_)=>{if(f?.[0]===".")return!0;if(f?.[0]==="-")return f.spaced===!1&&!f.newLine&&_?.spaced===!1&&!_?.newLine;return!1},F3=new Set([".","?."]),M3=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","TERNARY","EXTENDS"]),H5=new Set([...w2,"++","--"]),z3=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),K5=new Set(["*","/","%","//","%%"]),Q5=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),Y5=new Set(["<<",">>",">>>"]),Z5=new Set(["!","~"]),q5=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?![(]))?)([^\n\S]*:(?![=:]))?/,J5=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,G5=/^(?:<=>|::|\*>|[-=]>|~>|~=|:=|=!|===|!==|\?\!|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,X5=/^[^\n\S]+/,P5=/^(?:\n[^\n\S]*)+/,y5=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,S5=/^[-=]>/,E5=/^(?:~[=>]|=!)/,N5=/^(?:'''\\|"""\\|'''|"""|'|")/,b5=/^(?:[^\\']|\\[\s\S])*/,I5=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,B5=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,T5=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,W3=/\n+([^\n\S]*)(?=\S)/g,L5=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,O3=/^\w*/,C5=/^(?!.*(.).*\1)[gimsuy]*$/,j5=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,V5=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,r5=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,m5=/\s+$/,H3=/^\s*(?:,|\??\.(?![.\d]))/,a5=65279;function A2(f,_,{pre:i=0,row:n=0,col:u=0,len:l=0,data:c=null}={}){let h=[f,_];return h.pre=i,h.data=c,h.loc={r:n,c:u,n:l},h.spaced=i>0,h.newLine=!1,h}function O1(f,_,i){let n=A2(f,_);if(n.generated=!0,i)n.origin=i;return n}function H1(f,{row:_=0,col:i=0,len:n=1}={}){let u=SyntaxError(f);throw u.location={first_line:_,first_column:i,last_column:i+n-1},u}function v5(f){if(f==null)return NaN;switch(f.charAt(1)){case"b":return parseInt(f.slice(2).replace(/_/g,""),2);case"o":return parseInt(f.slice(2).replace(/_/g,""),8);case"x":return parseInt(f.slice(2).replace(/_/g,""),16);default:return parseFloat(f.replace(/_/g,""))}}class Y1{tokenize(f,_={}){this.code=f,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=_.row||0,this.col=_.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,this.inTypeAnnotation=!1,f=this.clean(f),this.code=f;while(this.pos<f.length){this.chunk=f.slice(this.pos);let i=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(i===0)H1(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(i),_.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let i=this.ends[this.ends.length-1];H1(`missing ${i.tag}`,{row:this.row,col:this.col})}if(_.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(f){if(f.charCodeAt(0)===a5)f=f.slice(1);if(f=f.replace(/\r\n?/g,`
|
|
1033
|
+
`),f=f.replace(m5,""),/^[^\n\S]/.test(f))f=`
|
|
1034
|
+
`+f;return f}advance(f){let _=this.code.slice(this.pos,this.pos+f);for(let i=0;i<_.length;i++)if(_[i]===`
|
|
1035
|
+
`)this.row++,this.col=0;else this.col++;this.pos+=f}emit(f,_,{len:i,data:n,pre:u}={}){let l=A2(f,_,{pre:u??0,row:this.row,col:this.col,len:i??(typeof _==="string"?_.length:0),data:n});return this.tokens.push(l),l}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let f=this.prev();return f?f[0]:void 0}prevVal(){let f=this.prev();return f?f[1]:void 0}isReturnTypeSlot(){let f=this.tokens.length;if(f<2)return!1;let _=this.tokens[f-1];if(!_||_[1]!==":")return!1;let i=this.tokens[f-2];if(!i)return!1;let n=i[0];return n===")"||n==="CALL_END"||n==="PARAM_END"}inPickKeyPos(){let f=this.prev();if(!f)return!1;let _=f[0];if(_!=="{"&&_!==","&&_!==":"&&_!=="TERMINATOR"&&_!=="INDENT"&&_!=="OUTDENT")return!1;let i=0,n=this.tokens;for(let u=n.length-1;u>=0;u--){let l=n[u],c=l[0];if(c==="}"||c==="PICK_END"){i++;continue}if(c==="{"||c==="PICK_START"||c==="OPTPICK_START"){if(i===0){let h=n[u-1];return!!(h&&(h[0]==="."||h[0]==="?.")&&!h.spaced&&!l.spaced)}i--;continue}if(i===0&&(c==="("||c==="CALL_START"||c==="["||c==="INDEX_START"))return!1}return!1}identifierToken(){if(E5.test(this.chunk))return 0;let f=q5.exec(this.chunk);if(!f)return 0;let[,_,i]=f,n=_.length,u={},l;if(_==="own"&&this.prevTag()==="FOR")return this.emit("OWN",_,{len:n}),n;if(_==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",_,{len:n}),n;if(_==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let D=this.prevTag();if(D==="DEFAULT"||D==="IMPORT_ALL"||D==="IDENTIFIER")return this.emit("AS",_,{len:n}),n}if((_==="as"||_==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(_==="as!"?"FORASAWAIT":"FORAS","as",{len:n}),n;if(_==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",_,{len:n}),n;let c;if(_==="do"&&(c=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),c[1].length+3;let h=this.prev();if(i&&h&&h[0]==="TERNARY")i=null;if(i&&i.length>1&&/[a-zA-Z_$]/.test(this.chunk[n+i.length]))i=null;if(i||h&&(h[0]==="."||h[0]==="?."||!h.spaced&&h[0]==="@")||this.inPickKeyPos()){if(l="PROPERTY",this.inRenderBlock&&h&&h[0]==="."&&!i){let D=this.chunk.slice(n);while(D[0]==="-"&&/^-[a-zA-Z]/.test(D)){let $=/^-([a-zA-Z][\w]*)/.exec(D);if(!$)break;_+="-"+$[1],n+=1+$[1].length,D=this.chunk.slice(n)}}}else l="IDENTIFIER";let A=_.endsWith("!")||_.endsWith("?")?_.slice(0,-1):_;if(l==="IDENTIFIER"&&!_.endsWith("!")&&!_.endsWith("?")&&(A3.has(_)||D3.has(_)||U3.has(_))&&!(this.exportSpecifierList&&U3.has(_))){if(P2[_]!==void 0)u.original=_,_=P2[_];l=this.classifyKeyword(_,l,u)}if(l==="IDENTIFIER"&&h5.has(A))if(A==="void"&&(this.inTypeAnnotation||this.prevTag()==="=>"||this.isReturnTypeSlot()));else H1(`reserved word '${A}'`,{row:this.row,col:this.col,len:n});if(l==="PROPERTY"&&h){if(h[0]==="."&&this.tokens.length>1){let D=this.tokens[this.tokens.length-2];if(D[0]==="UNARY"&&D[1]==="new")D[0]="NEW_TARGET";if(D[0]==="IMPORT"&&D[1]==="import")this.seenImport=!1,D[0]="IMPORT_META"}}if(_.length>1&&_.endsWith("!"))u.bang=!0,_=_.slice(0,-1);if(_.length>1&&_.endsWith("?"))u.optional=!0,_=_.slice(0,-1);let w=this.emit(l,_,{len:n,data:Object.keys(u).length?u:null});if(l==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(i)return this.emit(":",":",{len:1}),n+i.length;return n}classifyKeyword(f,_,i){switch(f){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return f}if(w5.has(f))return"STATEMENT";let n=f.toUpperCase();if(n==="WHEN"&&T1.has(this.prevTag()))return"LEADING_WHEN";if(n==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(n==="UNLESS")return"UNLESS";if(n==="IMPORT")return this.seenImport=!0,"IMPORT";if(n==="EXPORT")return this.seenExport=!0,"EXPORT";if(A5.has(n))return"UNARY";if(D5.has(n)){if(n!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+n;if(this.prevVal()==="!"){let u=this.tokens.pop();i.invert=u.data?.original||u[1]}return"RELATION"}if(A3.has(f)||D3.has(f))return n;return _}commentToken(){if(this.inRenderBlock){if(/^#[a-zA-Z_]/.test(this.chunk)){let _=this.prev();if(_&&(_[0]==="IDENTIFIER"||_[0]==="PROPERTY"))return 0;let i=/^#([a-zA-Z_][\w-]*)/.exec(this.chunk);if(i)return this.emit("IDENTIFIER","div#"+i[1]),i[0].length}if(/^\s+#[a-zA-Z_]/.test(this.chunk))return 0}if(this.chunk[0]==="#"){let _=this.prev();if(_&&!_.spaced&&!_.newLine&&(_[0]==="IDENTIFIER"||_[0]==="PROPERTY"))return 0}let f=y5.exec(this.chunk);if(!f)return 0;return f[0].length}whitespaceToken(){let f=X5.exec(this.chunk);if(!f&&this.chunk[0]!==`
|
|
1036
|
+
`)return 0;let _=this.prev();if(_)if(f)_.spaced=!0,_.pre=f[0].length;else _.newLine=!0;return f?f[0].length:0}lineToken(){let f=P5.exec(this.chunk);if(!f)return 0;let _=f[0],i=_.length-1-_.lastIndexOf(`
|
|
1037
|
+
`);if(this.isUnfinished()){if(i<this.indent&&/^\s*,/.test(this.chunk)&&!M3.has(this.prevTag())){if(this.outdentTo(i,_.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return _.length}return _.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(this.inTypeAnnotation=!1,i===this.indent)return this.emitNewline(),_.length;if(i>this.indent){if(!this.tokens.length)return this.indent=i,_.length;let n=i-this.indent;return this.emit("INDENT",n,{len:i}),this.indents.push(n),this.ends.push({tag:"OUTDENT"}),this.indent=i,_.length}return this.outdentTo(i,_.length),_.length}outdentTo(f,_=0){if(this.inRenderBlock&&f<=this.renderIndent)this.inRenderBlock=!1;let i=this.indent-f;while(i>0){let n=this.indents[this.indents.length-1];if(!n)i=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",i,{len:_}),i-=n}this.emitNewline(),this.indent=f}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
|
|
1038
|
+
`,{len:0})}isUnfinished(){if(this.inRenderBlock&&H3.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;if(this.inRenderBlock&&this.prevTag()==="."){let i=this.tokens.length;if(i>=2){let n=this.tokens[i-2][0];if(n==="INDENT"||n==="TERMINATOR"||n==="OUTDENT")return!1}}let f=this.tokens[this.tokens.length-1];if(f?.[0]==="COMPARE"&&f[1]===">"||f?.[0]==="SHIFT"&&(f[1]===">>"||f[1]===">>>")){let i=0;for(let n=this.tokens.length-1;n>=0;n--){let u=this.tokens[n];if(u[0]==="COMPARE"&&u[1]===">")i++;else if(u[0]==="SHIFT"&&u[1]===">>")i+=2;else if(u[0]==="SHIFT"&&u[1]===">>>")i+=3;else if(u[0]==="COMPARE"&&u[1]==="<")i--;if(i===0&&u[0]==="TYPE_ANNOTATION")return!1;if(i===0&&u[0]==="IDENTIFIER"&&u[1]==="type")return!1;if(u[0]==="INTERFACE")return!1;if(u[0]==="TERMINATOR"||u[0]==="INDENT"||u[0]==="OUTDENT"){let l=-1;if(u[0]==="INDENT")l=n;else{let c=u[0]==="OUTDENT"?1:0;for(let h=n-1;h>=0;h--){let A=this.tokens[h];if(A[0]==="OUTDENT")c++;else if(A[0]==="INDENT"){if(c===0){l=h;break}c--}}}if(l>0)for(let c=l-1;c>=0;c--){let h=this.tokens[c];if(h[0]==="TERMINATOR"||h[0]==="INDENT"||h[0]==="OUTDENT")break;if(h[0]==="INTERFACE")return!1;if(h[0]==="IDENTIFIER"&&h[1]==="type"){let A=this.tokens[c-1];if(!A||A[0]==="TERMINATOR"||A[0]==="EXPORT")return!1;break}}break}}}return H3.test(this.chunk)||M3.has(this.prevTag())}pair(f){let _=this.ends[this.ends.length-1];if(!_||f!==_.tag){if(_?.tag==="OUTDENT"){let i=this.indents[this.indents.length-1];if(i)this.outdentTo(this.indent-i);return this.pair(f)}H1(`unmatched ${f}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let f=N5.exec(this.chunk);if(!f)return 0;let _=f[0],i=_.length>1&&_.endsWith("\\"),n=i?_.slice(0,-1):_,u=this.prev();if(u&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))u[0]="FROM";let l;switch(n){case"'":l=b5;break;case'"':l=I5;break;case"'''":l=B5;break;case'"""':l=T5;break}let{tokens:c,index:h}=this.matchWithInterpolations(l,_,n),A=n.length===3,w=null;if(A)w=this.processHeredocIndent(h,n,c);return this.mergeInterpolationTokens(c,{quote:n,indent:w,endOffset:h,raw:i}),h}processHeredocIndent(f,_,i){let n=f-_.length,u=n-1;while(u>=0&&this.chunk[u]!==`
|
|
1039
|
+
`)u--;u++;let l=this.chunk.slice(u,n),c=/^\s*$/.test(l)?l.length:null,h="";for(let D of i)if(D[0]==="NEOSTRING")h+=D[1];let A=null,w;W3.lastIndex=0;while(w=W3.exec(h))if(A===null||w[1].length>0&&w[1].length<A.length)A=w[1];if(c===null)return A;if(A===null)return" ".repeat(c);if(c<=A.length)return" ".repeat(c);return A}matchWithInterpolations(f,_,i,n){if(!i)i=_;if(!n)n=/^[#$]\{/;let u=[],l=_.length;if(this.chunk.slice(0,l)!==_)return null;let c=this.chunk.slice(l);while(!0){let[h]=f.exec(c);u.push(["NEOSTRING",h,{offset:l}]),c=c.slice(h.length),l+=h.length;let A=n.exec(c);if(!A)break;let D=A[0].length-1,$=c.slice(D),U=new Y1().tokenize($,{row:this.row,col:this.col+l+D,untilBalanced:!0,rewrite:!1}),R=U.index+D;if(c[R-1]==="}"){let M=U.tokens[0],F=U.tokens[U.tokens.length-1];M[0]="INTERPOLATION_START",M[1]="(",F[0]="INTERPOLATION_END",F[1]=")"}if(U.tokens[1]?.[0]==="TERMINATOR")U.tokens.splice(1,1);let z=U.tokens.length;if(z>2&&U.tokens[z-3]?.[0]==="INDENT"&&U.tokens[z-2]?.[0]==="OUTDENT")U.tokens.splice(z-3,2);u.push(["TOKENS",U.tokens]),c=c.slice(R),l+=R}if(c.slice(0,i.length)!==i)H1(`missing ${i}`,{row:this.row,col:this.col});return{tokens:u,index:l+i.length}}mergeInterpolationTokens(f,{quote:_,indent:i,endOffset:n,raw:u}){if(f.length>1)this.emit("STRING_START","(",{len:_?.length||0,data:{quote:_}});for(let l=0;l<f.length;l++){let[c,h]=f[l];if(c==="TOKENS")for(let A of h)this.tokens.push(A);else if(c==="NEOSTRING"){let A=h;if(i){let w=new RegExp("\\n"+i,"g");A=A.replace(w,`
|
|
1040
|
+
`)}if(l===0&&_?.length===3)A=A.replace(/^\n/,"");if(l===f.length-1&&_?.length===3)A=A.replace(/\n[^\S\n]*$/,"");if(u)A=A.replace(/\\([nrtbfv0\\'"`xu])/g,"\\\\$1");this.emit("STRING",`"${A}"`,{len:h.length,data:{quote:_}})}}if(f.length>1)this.emit("STRING_END",")",{len:_?.length||0});return n}numberToken(){let f=J5.exec(this.chunk);if(!f)return 0;let _=f[0],i=_.length,n={row:this.row,col:this.col};if(/^0[BOX]/.test(_))H1(`radix prefix in '${_}' must be lowercase`,{...n,col:n.col+1});if(/^0\d*[89]/.test(_))H1(`decimal literal '${_}' must not be prefixed with '0'`,{...n,len:i});if(/^0\d+/.test(_))H1(`octal literal '${_}' must be prefixed with '0o'`,{...n,len:i});let u=v5(_),l=u===1/0?"INFINITY":"NUMBER",c={parsedValue:u};if(l==="INFINITY")c.original=_;return this.emit(l,_,{len:i,data:c}),i}regexToken(){let f=this.matchWithInterpolations(j5,"///");if(f){let{tokens:w,index:D}=f,[$]=O3.exec(this.chunk.slice(D)),U=D+$.length;if(w.length===1||!w.some((R)=>R[0]==="TOKENS")){let R=(w[0]?.[1]||"").replace(/(?<!\\)\//g,"\\/");this.emit("REGEX",`/${R}/${$}`,{len:U,data:{delimiter:"///",heregex:{flags:$}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(w,{quote:"///",endOffset:U-$.length}),$)this.emit(",",",",{len:0}),this.emit("STRING",`"${$}"`,{len:$.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return U}let _=L5.exec(this.chunk);if(!_)return 0;let[i,n,u]=_,l=this.prev();if(l){if(l.spaced&&h2.has(l[0])&&(!u||/^\/=?\s/.test(i)))return 0;if(H5.has(l[0])&&!(l.spaced&&h2.has(l[0])))return 0}if(!u)H1("missing / (unclosed regex)",{row:this.row,col:this.col});let c=i.length,[h]=O3.exec(this.chunk.slice(c)),A=c+h.length;if(!C5.test(h))H1(`invalid regular expression flags ${h}`,{row:this.row,col:this.col+c,len:h.length});return this.emit("REGEX",`/${n}/${h}`,{len:A,data:{delimiter:"/"}}),A}jsToken(){if(this.chunk[0]!=="`")return 0;let f=r5.exec(this.chunk)||V5.exec(this.chunk);if(!f)return 0;let _=f[1],i=f[0].length;return this.emit("JS",_,{len:i,data:{here:f[0].startsWith("```")}}),i}wordLiteral(){if(this.chunk[0]!=="%"||this.chunk[1]!=="w")return 0;let f=this.chunk[2];if(!f||/\s/.test(f))return 0;let i={"[":"]","(":")","{":"}","<":">"}[f]||f,n=i!==f,u=1,l=3;while(l<this.chunk.length&&u>0){let w=this.chunk[l];if(w==="\\"){l+=2;continue}if(n&&w===f)u++;if(w===i)u--;if(u>0)l++}if(u!==0)return 0;let c=this.chunk.slice(3,l),h=l+1,A=[];if(c.trim()){let w=c.trim().split(/(?<!\\)\s+/);for(let D of w)A.push(D.replace(/\\ /g," "))}this.emit("[","[",{len:h});for(let w=0;w<A.length;w++){if(w>0)this.emit(",",",");this.emit("STRING",`"${A[w]}"`)}return this.emit("]","]"),h}symbolToken(){if(this.chunk[0]!==":")return 0;let f=this.chunk[1];if(!f||f==="="||f===":"||/\s/.test(f))return 0;if(!/[a-zA-Z_$]/.test(f))return 0;let _=/^((?:(?!\s)[$\w\x7f-\uffff])+)/.exec(this.chunk.slice(1));if(!_)return 0;let i=_[1],n=i.length+1;return this.emit("SYMBOL",i,{len:n}),n}literalToken(){let f=this.wordLiteral();if(f)return f;let _=this.symbolToken();if(_)return _;let i=G5.exec(this.chunk),n=i?i[0]:this.chunk.charAt(0),u=n,l=this.prev();if(S5.test(n))this.tagParameters();if(n==="="&&l&&l[1]==="."&&!l.spaced){let c=this.tokens,h=c.length-2;while(h>=1&&c[h][0]==="PROPERTY"&&c[h-1]?.[1]===".")h-=2;if(h>=0&&(c[h][0]==="IDENTIFIER"||c[h][0]===")"||c[h][0]==="]")){let A=c.slice(h,c.length-1);l[0]="=",l[1]="=";for(let w of A)this.tokens.push(A2(w[0],w[1],{pre:0,row:w[2],col:w[3],len:w[4]}));return this.tokens.push(A2(".",".",{pre:0,row:this.row,col:this.col,len:1})),n.length}}if(l&&(n==="="||z3.has(n))){if(n==="="&&(l[1]==="||"||l[1]==="&&"||l[1]==="??")&&!l.spaced)return l[0]="COMPOUND_ASSIGN",l[1]+="=",n.length}if(n==="("&&l?.[0]==="IMPORT")l[0]="DYNAMIC_IMPORT";if(n==="{"&&this.seenImport)this.importSpecifierList=!0;if(n==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(n==="{"&&l?.[0]==="EXPORT")this.exportSpecifierList=!0;if(n==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(n===";")this.seenFor=this.seenImport=this.seenExport=!1,this.inTypeAnnotation=!1,u="TERMINATOR";else if(n==="|>")u="PIPE";else if(n==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(n==="::")u="TYPE_ANNOTATION",this.inTypeAnnotation=!0;else if(n==="~=")u="COMPUTED_ASSIGN";else if(n===":=")u="REACTIVE_ASSIGN";else if(n==="<=>")u="BIND";else if(n==="~>")u="EFFECT",this.inTypeAnnotation=!1;else if(n==="=!")u="READONLY_ASSIGN",this.inTypeAnnotation=!1;else if(n==="*>"&&(!l||l[0]==="TERMINATOR"||l[0]==="INDENT"||l[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[2]||"")||this.chunk[2]==="@")){let c=this.chunk.slice(2),h=/^@(\s*)=(?!=)/.exec(c);if(h){let w=h[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let D=this.emit("PROPERTY","assign");return D.spaced=!0,this.emit("@","@"),this.emit(",",","),3+w.length+1}let A=/^(@?(?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(c);if(A){let w=A[1],D=A[2],$=w[0]==="@",U=$?w.slice(1):w,R=U?U.split("."):[],z=()=>{if($){if(this.emit("@","@"),R.length>0)this.emit("PROPERTY",R[0])}else this.emit("IDENTIFIER",R[0]);for(let F=1;F<R.length;F++)this.emit(".","."),this.emit("PROPERTY",R[F])};z(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),z(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let M=this.prev();return M.mergeClose=!0,2+w.length+D.length+1}}else if(n==="*"&&l?.[0]==="EXPORT")u="EXPORT_ALL";else if(K5.has(n))u="MATH";else if(Q5.has(n))u="COMPARE";else if(z3.has(n))u="COMPOUND_ASSIGN";else if(Z5.has(n))u="UNARY_MATH";else if(Y5.has(n))u="SHIFT";else if(n==="?"&&l?.spaced)u="TERNARY";else if(n==="?!"&&l&&!l.spaced)u="PRESENCE";else if(n==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))u="?.";else if(l){if(n==="("&&!l.spaced&&h2.has(l[0])){if(l[0]==="?.")l[0]="ES6_OPTIONAL_CALL";u="CALL_START"}if(n==="["&&!l.spaced&&w2.has(l[0])){if(u="INDEX_START",l[0]==="?.")l[0]="ES6_OPTIONAL_INDEX"}}if(this.inTypeAnnotation&&(n==="="||u==="COMPOUND_ASSIGN"))this.inTypeAnnotation=!1;if(n==="="){let c=this.tokens.length;if(c>=2&&this.tokens[c-1][0]==="IDENTIFIER"&&this.tokens[c-2][0]==="IDENTIFIER"&&this.tokens[c-2][1]==="type"&&(c===2||this.tokens[c-3][0]==="TERMINATOR"||this.tokens[c-3][0]==="INDENT"||this.tokens[c-3][0]==="OUTDENT"||this.tokens[c-3][0]==="EXPORT"))this.inTypeAnnotation=!0}if(n==="("||n==="{"||n==="[")this.ends.push({tag:F5[n],origin:[u,n]});else if(n===")"||n==="}"||n==="]")this.pair(n);return this.emit(u,n,{len:n.length}),n.length}tagParameters(){let f=this.tokens.length-1;if(this.tokens[f]?.[0]!==")"){let n=this.tokens.length,u=0,l=n-1,c=-1;while(l>=0){let h=this.tokens[l],A=h[0];if(A===")"||A==="]"||A==="}"||A==="CALL_END"||A==="PARAM_END"||A==="INDEX_END"||A==="COMPARE"&&h[1]===">")u++;else if(A==="("||A==="["||A==="{"||A==="CALL_START"||A==="PARAM_START"||A==="INDEX_START"||A==="COMPARE"&&h[1]==="<")u--;else if(u===0){if(A==="TYPE_ANNOTATION"){if(l>0&&this.tokens[l-1][0]===")")c=l-1;break}if(A==="TERMINATOR"||A==="INDENT"||A==="OUTDENT"||A==="="||A==="->"||A==="=>")break}l--}if(c<0)return this.tagDoIife();f=c}let _=f,i=[];this.tokens[_][0]="PARAM_END";while(_-- >0){let n=this.tokens[_];if(n[0]===")")i.push(n);else if(n[0]==="("||n[0]==="CALL_START")if(i.length)i.pop();else if(n[0]==="(")return n[0]="PARAM_START",this.tagDoIife(_-1);else{this.tokens[f][0]="CALL_END";return}}}tagDoIife(f){let _=this.tokens[f??this.tokens.length-1];if(_?.[0]==="DO")_[0]="DO_IIFE"}rewrite(f){return this.tokens=f,this.removeLeadingNewlines(),this.rewriteDottedPicks(),this.rewriteMapLiterals(),this.closeMergeAssignments(),this.closeOpenCalls(),this.closeOpenIndexes(),this.rewriteTypes(),this.normalizeLines(),this.rewriteRender?.(),this.rewriteSchema?.(),this.tagPostfixConditionals(),this.rewriteTaggedTemplates(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.tokens}removeLeadingNewlines(){let f=0;while(this.tokens[f]?.[0]==="TERMINATOR")f++;if(f>0)this.tokens.splice(0,f)}rewriteMapLiterals(){let f=this.tokens;for(let _=0;_<f.length;_++){if(f[_][0]!=="MATH"||f[_][1]!=="*")continue;let i=f[_+1];if(!i||i[0]!=="{")continue;if(f[_].spaced||f[_].newLine)continue;let n=f[_-1];if(n&&w2.has(n[0]))continue;f.splice(_,1),f[_][0]="MAP_START";let u=1;for(let l=_+1;l<f.length&&u>0;l++){let c=f[l][0];if(c==="{"||c==="MAP_START")u++;if(c==="}"){if(u--,u===0)f[l][0]="MAP_END"}}}}rewriteDottedPicks(){let f=this.tokens;for(let _=0;_<f.length;_++){let i=f[_][0];if(i!=="."&&i!=="?.")continue;let n=f[_+1];if(!n||n[0]!=="{")continue;if(f[_].spaced||f[_].newLine)continue;let u=f[_-1];if(!u||!w2.has(u[0]))continue;let l=i==="?.";f.splice(_,1),f[_][0]=l?"OPTPICK_START":"PICK_START";let c=1;for(let h=_+1;h<f.length&&c>0;h++){let A=f[h][0];if(A==="{"||A==="PICK_START"||A==="OPTPICK_START")c++;else if(A==="}"){if(c--,c===0){f[h][0]="PICK_END";break}}}}}closeOpenCalls(){this.scanTokens((f,_)=>{if(f[0]==="CALL_START")this.detectEnd(_+1,(i)=>i[0]===")"||i[0]==="CALL_END",(i)=>i[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((f,_)=>{if(f[0]==="INDEX_START")this.detectEnd(_+1,(i)=>i[0]==="]"||i[0]==="INDEX_END",(i,n)=>{if(this.tokens[n+1]?.[0]===":")f[0]="[",i[0]="]";else i[0]="INDEX_END"});return 1})}normalizeLines(){let f=null,_=null,i=null,n=(l,c)=>{return l[1]!==";"&&O5.has(l[0])&&!(l[0]==="TERMINATOR"&&$3.has(this.tokens[c+1]?.[0]))&&!(l[0]==="ELSE"&&f!=="THEN")||l[0]==="INDENT"&&!l.generated&&(f==="->"||f==="=>")||l[0]===","&&(f==="->"||f==="=>")&&!this.commaInImplicitCall(c)&&!this.commaInImplicitObject(c)||F3.has(l[0])&&(this.tokens[c-1]?.newLine||this.tokens[c-1]?.[0]==="OUTDENT")},u=(l,c)=>{let h=this.tokens[c-1]?.[0]===","?c-1:c;this.tokens.splice(h,0,i)};this.scanTokens((l,c,h)=>{let[A]=l;if(A==="TERMINATOR"){if(this.tokens[c+1]?.[0]==="ELSE"&&this.tokens[c-1]?.[0]!=="OUTDENT")return h.splice(c,1,...this.makeIndentation()),1;if($3.has(this.tokens[c+1]?.[0]))return h.splice(c,1),0}if(A==="CATCH")for(let w=1;w<=2;w++){let D=this.tokens[c+w]?.[0];if(D==="OUTDENT"||D==="TERMINATOR"||D==="FINALLY")return h.splice(c+w,0,...this.makeIndentation()),2+w}if((A==="->"||A==="=>")&&(this.tokens[c+1]?.[0]===","||this.tokens[c+1]?.[0]==="]"))return[_,i]=this.makeIndentation(),h.splice(c+1,0,_,i),1;if(R3.has(A)&&this.tokens[c+1]?.[0]!=="INDENT"&&!(A==="ELSE"&&this.tokens[c+1]?.[0]==="IF")&&!(A==="ELSE"&&this.tokens[c-1]?.[0]!=="OUTDENT")){if(f=A,[_,i]=this.makeIndentation(),A==="THEN")_.fromThen=!0;if(h.splice(c+1,0,_),A==="THEN"&&this.singleLineOwner(c)==="LEADING_WHEN")this.detectWhenThenEnd(c+2,n,u);else this.detectEnd(c+2,n,u);if(A==="THEN")h.splice(c,1);return 1}return 1})}singleLineOwner(f){let _=new Set(["LEADING_WHEN","IF","POST_IF","UNLESS","POST_UNLESS","ELSE","CATCH","TRY","FINALLY","->","=>"]);for(let i=f-1;i>=0;i--){let n=this.tokens[i],u=n?.[0];if(_.has(u))return u;if(T1.has(u)||n?.newLine)return null}return null}detectWhenThenEnd(f,_,i){let n=0,u=0;while(f<this.tokens.length){let l=this.tokens[f],c=l[0];if(n===0){if(c==="THEN"&&this.singleLineOwner(f)!=="LEADING_WHEN")u++;else if(c==="ELSE"&&u>0)u--;else if(_.call(this,l,f))return i.call(this,l,f)}if(J1.has(c))n++;if(Q1.has(c))n--;if(n<0)return i.call(this,l,f);f++}}tagPostfixConditionals(){let f=null,_=(n,u)=>{return n[0]==="TERMINATOR"||n[0]==="INDENT"&&!R3.has(this.tokens[u-1]?.[0])},i=(n)=>{if(n[0]!=="INDENT"||n.generated&&!n.fromThen)f[0]="POST_"+f[0]};this.scanTokens((n,u)=>{if(n[0]!=="IF"&&n[0]!=="UNLESS")return 1;if(this.tokens[u-1]?.[0]==="INTERPOLATION_START")return 1;return f=n,this.detectEnd(u+1,_,i),1})}rewriteTaggedTemplates(){let f=this.tokens;for(let _=f.length-2;_>=0;_--)if(f[_][0]==="IDENTIFIER"&&f[_][1]==="$"&&(f[_+1]?.[0]==="STRING"||f[_+1]?.[0]==="STRING_START")){let i=f[_-1];if(i&&M5.has(i[0])){if(f.splice(_,1),i.spaced=!1,f[_].spaced=!1,f[_].pre=0,f[_].newLine)f[_].newLine=!1}}}addImplicitBracesAndParens(){let f=[],_=!1;this.scanTokens((i,n,u)=>{let[l]=i,c=u[n-1]||[],h=u[n+1]||[],[A]=c,[w]=h,D=n,$=(q)=>n-D+q,U=()=>f[f.length-1],R=(q)=>q?.[2]?.ours,z=()=>R(U())&&U()?.[0]==="(",M=()=>R(U())&&U()?.[0]==="{",F=(q)=>{f.push(["(",q,{ours:!0}]),u.splice(q,0,O1("CALL_START","("))},H=()=>{f.pop(),u.splice(n,0,O1("CALL_END",")")),n+=1},K=(q,G={})=>{f.push(["{",q,{sameLine:!0,startsLine:G.startsLine??!0,ours:!0}]);let P=O1("{","{");if(!P.data)P.data={};P.data.generated=!0,u.splice(q,0,P)},W=(q)=>{q=q??n,f.pop(),u.splice(q,0,O1("}","}")),n+=1},O=l==="FOR"&&!i.newLine&&W5.has(A);if((z()||M())&&z5.has(l)&&!O)return f.push(["CONTROL",n,{ours:!0}]),$(1);if(l==="INDENT"&&R(U())){if(A!=="=>"&&A!=="->"&&A!=="["&&A!=="("&&A!==","&&A!=="{"&&A!=="ELSE"&&A!=="=")while(z()||M()&&A!==":")if(z())H();else W();if(U()?.[2]?.ours&&U()[0]==="CONTROL")f.pop();return f.push([l,n]),$(1)}if(J1.has(l))return f.push([l,n]),$(1);if(Q1.has(l)){while(R(U()))if(z())H();else if(M())W();else f.pop();f.pop()}let Q=!1;if(w==="-"&&!h.spaced&&!h.newLine&&P1(i))for(let q=n;q<u.length-2;q+=2){if(!c2(u[q+1],u[q+2]))break;if(!P1(u[q+2]))break;if(u[q+3]?.[0]===":"){Q=!0;break}}if(!Q&&X2.has(l)&&i.spaced&&(n2.has(w)||w==="..."&&n2.has(u[n+2]?.[0])||U5.has(w)&&!h.spaced&&!h.newLine)&&!((l==="]"||l==="}")&&(w==="->"||w==="=>")))return F(n+1),$(2);if(X2.has(l)&&this.tokens[n+1]?.[0]==="INDENT"&&this.looksObjectish(n+2)&&!this.findTagsBackwards(n,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return F(n+1),f.push(["INDENT",n+2]),$(3);if(l==="TERNARY")_=!0;if(l===":"){if(_)return _=!1,$(1);if(P1(u[n-1])&&c2(u[n-2],u[n-1])){let P=n-2;while(P>=2&&c2(u[P],u[P+1])&&P1(u[P-1]))P-=2;if(P+=1,P1(u[P])){let L="";for(let e=P;e<n;e++)L+=u[e][1];let I=O1("STRING",`"${L}"`,u[P]);I.pre=u[P].pre,I.spaced=u[P].spaced,I.newLine=u[P].newLine,I.loc=u[P].loc,u.splice(P,n-P,I),n=P+1}}let q=Q1.has(this.tokens[n-1]?.[0])?f[f.length-1]?.[1]??n-1:n-1;if(this.tokens[n-2]?.[0]==="@")q=n-2;let G=q<=0||T1.has(this.tokens[q-1]?.[0])||this.tokens[q-1]?.newLine;if(U()){let[P,L]=U(),I=f[f.length-2],e=(p)=>p==="{"||p==="MAP_START"||p==="PICK_START"||p==="OPTPICK_START";if((e(P)||P==="INDENT"&&e(I?.[0])&&!R(I))&&(G||this.tokens[q-1]?.[0]===","||e(this.tokens[q-1]?.[0])||e(this.tokens[q]?.[0])))return $(1)}return K(q,{startsLine:!!G}),$(2)}if(T1.has(l))for(let q=f.length-1;q>=0;q--){if(!R(f[q]))break;if(f[q][0]==="{")f[q][2].sameLine=!1}let Y=A==="OUTDENT"||c.newLine,J=l==="||"||l==="&&",Z=!1;if(J){let q=n+1,G=u[q]?.[0];if(G==="("||G==="["||G==="{"){for(let P=1;++q<u.length&&P>0;)if(G=u[q][0],G==="("||G==="["||G==="{")P++;else if(G===")"||G==="]"||G==="}")P--}else if(G&&G!=="TERMINATOR"&&G!=="OUTDENT"&&G!==",")q++;Z=u[q]?.[0]===","}if($5.has(l)&&!Z||F3.has(l)&&Y)while(R(U())){let[q,,{sameLine:G,startsLine:P}]=U();if(z()&&A!==",")H();else if(M()&&!J&&G&&l!=="TERMINATOR"&&A!==":")W();else if(M()&&l==="TERMINATOR"&&A!==","&&!(P&&this.looksObjectish(n+1)))W();else if(U()?.[2]?.ours&&U()[0]==="CONTROL"&&u[U()[1]]?.[0]==="CLASS"&&l==="TERMINATOR")f.pop();else break}if(l===","&&!this.looksObjectish(n+1)&&M()&&(w!=="TERMINATOR"||!this.looksObjectish(n+2))){let q=w==="OUTDENT"?1:0;while(M())W(n+q)}return $(1)})}addImplicitCallCommas(){let f=0,_=0,i=this.tokens;while(_<i.length){let n=i[_][0],u=_>0?i[_-1][0]:null;if(n==="CALL_START"||n==="(")f++;if(n==="CALL_END"||n===")")f--;if(f>0&&(n==="->"||n==="=>")&&R5.has(u))i.splice(_,0,O1(",",",")),_++;_++}}scanTokens(f){let _=0;while(_<this.tokens.length)_+=f.call(this,this.tokens[_],_,this.tokens)}detectEnd(f,_,i,n={}){let u=0;while(f<this.tokens.length){let l=this.tokens[f];if(u===0&&_.call(this,l,f))return i.call(this,l,f);if(J1.has(l[0]))u++;if(Q1.has(l[0]))u--;if(u<0){if(n.returnOnNegativeLevel)return;return i.call(this,l,f)}f++}}closeMergeAssignments(){let f=this.tokens;for(let _=0;_<f.length;_++){if(!f[_].mergeClose)continue;let i=0;for(let n=_+1;n<f.length;n++){let u=f[n][0];if(u==="("||u==="["||u==="{"||u==="CALL_START"||u==="INDEX_START"||u==="INDENT")i++;if(u===")"||u==="]"||u==="}"||u==="CALL_END"||u==="INDEX_END"||u==="OUTDENT")i--;if(i<0||i===0&&u==="TERMINATOR"){f.splice(n,0,O1("CALL_END",")",f[n-1]));break}if(n===f.length-1){f.splice(n+1,0,O1("CALL_END",")",f[n]));break}}}}commaInImplicitCall(f){let _=0;for(let i=f-1;i>=0;i--){let n=this.tokens[i][0];if(Q1.has(n)){_++;continue}if(J1.has(n)){if(n==="INDENT")return!1;if(_--,_<0)return!1;continue}if(_>0)continue;if(X2.has(n)&&this.tokens[i].spaced){let u=this.tokens[i+1]?.[0];return n2.has(u)||u==="..."&&n2.has(this.tokens[i+2]?.[0])}}return!1}commaInImplicitObject(f){let _=0;for(let i=f-1;i>=0;i--){let n=this.tokens[i][0];if(Q1.has(n)){_++;continue}if(J1.has(n)){if(_--,_<0)return!1;continue}if(_>0)continue;if(n===":"&&i>0&&this.tokens[i-1][0]==="PROPERTY")return this.looksObjectish(f+1);if(T1.has(n))return!1}return!1}looksObjectish(f){if(!this.tokens[f])return!1;if(this.tokens[f]?.[0]==="@"&&this.tokens[f+2]?.[0]===":")return!0;if(this.tokens[f+1]?.[0]===":")return!0;if(P1(this.tokens[f]))for(let _=f+1;_<this.tokens.length;_+=2){if(!c2(this.tokens[_],this.tokens[_+1]))break;if(!P1(this.tokens[_+1]))break;if(this.tokens[_+2]?.[0]===":")return!0}if(J1.has(this.tokens[f]?.[0])){let _=null;if(this.detectEnd(f+1,(i)=>Q1.has(i[0]),(i,n)=>_=n),_&&this.tokens[_+1]?.[0]===":")return!0}return!1}findTagsBackwards(f,_){let i=new Set(_),n=[];while(f>=0){let u=this.tokens[f]?.[0];if(!n.length&&i.has(u))return!0;if(Q1.has(u))n.push(u);if(J1.has(u)&&n.length)n.pop();if(!n.length&&(J1.has(u)&&!this.tokens[f]?.generated||T1.has(u)))break;f--}return!1}makeIndentation(f){let _=O1("INDENT",2),i=O1("OUTDENT",2);if(f)_.generated=i.generated=!0,_.origin=i.origin=f;else _.explicit=i.explicit=!0;return[_,i]}}w3(Y1);i2(Y1);var g5=["abort","animationcancel","animationend","animationiteration","animationstart","auxclick","beforeinput","beforematch","beforetoggle","blur","cancel","canplay","canplaythrough","change","click","close","compositionend","compositionstart","compositionupdate","contextlost","contextmenu","contextrestored","copy","cuechange","cut","dblclick","drag","dragend","dragenter","dragleave","dragover","dragstart","drop","durationchange","emptied","ended","error","focus","focusin","focusout","formdata","fullscreenchange","fullscreenerror","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadeddata","loadedmetadata","loadstart","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","paste","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointermove","pointerout","pointerover","pointerrawupdate","pointerup","progress","ratechange","reset","resize","scroll","scrollend","securitypolicyviolation","seeked","seeking","select","selectionchange","selectstart","slotchange","stalled","submit","suspend","timeupdate","toggle","touchcancel","touchend","touchmove","touchstart","transitioncancel","transitionend","transitionrun","transitionstart","volumechange","waiting","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend","wheel"],K3=new Set(g5);var t5=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","link","main","map","mark","menu","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","script","search","section","select","slot","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"];var s5=["animate","animateMotion","animateTransform","circle","clipPath","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","stop","svg","switch","symbol","text","textPath","tspan","use","view"],o5=["math","param","portal"],Q3=new Set([...t5,...o5]),y1=new Set(s5),S1=new Set([...Q3,...y1]);var Y3="__bind_",Z3="__",y2=new Set(["beforeMount","mounted","beforeUnmount","unmounted","onError"]),x5=new Set(["disabled","hidden","readonly","required","checked","selected","autofocus","autoplay","controls","loop","muted","multiple","novalidate","open","reversed","defer","async","formnovalidate","allowfullscreen","inert"]),S2="http://www.w3.org/2000/svg";function d5(f){for(let _ of f){if(!Array.isArray(_))continue;let i=_[1]instanceof String?_[1].valueOf():_[1],n=_[2]instanceof String?_[2].valueOf():_[2];if(i==="type"&&typeof n==="string")return n.replace(/^["']|["']$/g,"")}return null}function E1(f){if(typeof f==="string"||f instanceof String)return f.valueOf();if(Array.isArray(f)&&f[0]==="."&&f[1]==="this"&&(typeof f[2]==="string"||f[2]instanceof String))return f[2].valueOf();return null}function E2(f){return Array.isArray(f)&&f[0]==="."&&f[1]==="this"}function N2(f){if(f instanceof String&&f.type)return f.type;if(Array.isArray(f)&&f[2]instanceof String&&f[2].type)return f[2].type;return null}function b2(f){if(f instanceof String&&f.optional)return!0;if(Array.isArray(f)&&f[2]instanceof String&&f[2].optional)return!0;return!1}function q3(f,_){let i=(w,D)=>w instanceof String?w[D]:void 0,n=_.prototype.classifyKeyword;_.prototype.classifyKeyword=function(w,D,$){if(w==="offer"||w==="accept"){let U=0;for(let R=this.tokens.length-1;R>=0;R--){let z=this.tokens[R][0];if(z==="OUTDENT")U++;else if(z==="INDENT")U--;if(U<0&&this.tokens[R-1]?.[0]==="COMPONENT")return w.toUpperCase()}return D}return n.call(this,w,D,$)},_.prototype.rewriteRender=function(){let w=(W,O,Q)=>{let Y=[W,O];if(Y.pre=0,Y.data=null,Y.loc=Q?.loc??{r:0,c:0,n:0},Y.spaced=!1,Y.newLine=!1,Y.generated=!0,Q)Y.origin=Q;return Y},D=!1,$=0,U=0,R=[],z=(W)=>{let O=W.split("#")[0];return S1.has(O)},M=(W)=>{if(!W||typeof W!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(W)},F=(W)=>{return z(W)||M(W)},H=(W,O,Q,Y)=>{let J=1,Z=O;while(Z>=0&&J>0){let q=W[Z][0];if(q===Q)J++;else if(q===Y)J--;if(J>0)Z--}return Z},K=(W,O)=>{let Q=O;while(Q>0){let Y=W[Q-1][0];if(Y==="TERMINATOR"||Y==="RENDER")break;if(Y==="INDENT"||Y==="OUTDENT"){let J=W[Q][0];if(J==="CALL_END"||J===")"){Q=H(W,Q-1,J,J==="CALL_END"?"CALL_START":"(");continue}break}if(Y==="CALL_END"||Y===")"){Q=H(W,Q-2,Y,Y==="CALL_END"?"CALL_START":"(");continue}if(Y==="INTERPOLATION_END"){Q=H(W,Q-2,"INTERPOLATION_END","INTERPOLATION_START");continue}if(Y==="STRING_END"){Q=H(W,Q-2,"STRING_END","STRING_START");continue}Q--}return W[Q]&&W[Q][0]==="IDENTIFIER"&&(F(W[Q][1])||(Q===0||W[Q-1][0]==="INDENT"||W[Q-1][0]==="TERMINATOR"||W[Q-1][0]==="RENDER"))};this.scanTokens(function(W,O,Q){let Y=W[0],J=O<Q.length-1?Q[O+1]:null;if(Y==="RENDER")return D=!0,$=U+1,1;if(Y==="INDENT")return U++,1;if(Y==="OUTDENT"){U--;let Z=0;while(R.length>0&&R[R.length-1]>U){let q=w("CALL_END",")",W);Q.splice(O+1+Z,0,q),R.pop(),Z++}if(D&&U<$)D=!1;return 1+Z}if(!D)return 1;if(Y==="="&&O>0){let Z=Q[O-1][0];if(Z==="TERMINATOR"||Z==="INDENT"||Z==="RENDER"){let q=w("IDENTIFIER","__text__",W),G=w("CALL_START","(",W);return Q.splice(O,1,q,G),this.detectEnd(O+2,(P)=>P[0]==="TERMINATOR"||P[0]==="OUTDENT",(P,L)=>Q.splice(L,0,w("CALL_END",")",P)),{returnOnNegativeLevel:!0}),2}}if(Y==="UNARY_MATH"&&W[1]==="~"&&J&&J[0]==="IDENTIFIER"){W[0]="PROPERTY",W[1]="__transition__";let Z=w(":",":",W),q=w("STRING",`"${J[1]}"`,J);return Q.splice(O+1,1,Z,q),1}if(Y==="PROPERTY"&&W[1][0]==="$"&&W[1].length>1)return W[0]="STRING",W[1]=`"data-${W[1].slice(1)}"`,1;if(Y==="IDENTIFIER"&&!W.spaced){let Z=[W[1]],q=O+1;while(q+1<Q.length){let G=Q[q],P=Q[q+1];if(G[0]==="-"&&!G.spaced&&(P[0]==="IDENTIFIER"||P[0]==="PROPERTY")){if(Z.push(P[1]),q+=2,P[0]==="PROPERTY")break}else break}if(Z.length>1&&q>O+1&&Q[q-1][0]==="PROPERTY"){let G=Z.join("-");if(G[0]==="$")G="data-"+G.slice(1);return W[0]="STRING",W[1]=`"${G}"`,Q.splice(O+1,q-O-1),1}}if(Y==="."){let Z=O>0?Q[O-1]:null,q=Z?Z[0]:null;if(q==="INDENT"||q==="TERMINATOR"){if(J&&J[0]==="PROPERTY"){let G=O+2<Q.length?Q[O+2]:null;if(!G||G[0]!==":"){let P=w("IDENTIFIER","div",W);return Q.splice(O,0,P),2}}if(!J||J[0]!=="(")return W[0]="IDENTIFIER",W[1]="div",0}}if(Y==="IDENTIFIER"||Y==="PROPERTY"){let Z=Q[O+1],q=Q[O+2];if(Z&&Z[0]==="#"&&q&&(q[0]==="PROPERTY"||q[0]==="IDENTIFIER")){if(W[1]=W[1]+"#"+q[1],q.spaced)W.spaced=!0;return Q.splice(O+1,2),0}}if(Y==="BIND"){let Z=O>0?Q[O-1]:null,q=Q[O+1];if(Z&&(Z[0]==="IDENTIFIER"||Z[0]==="PROPERTY")&&q&&q[0]==="IDENTIFIER")return Z[1]=`__bind_${Z[1]}__`,W[0]=":",W[1]=":",1}if(Y==="@"){let Z=O+1;if(Z<Q.length&&Q[Z][0]==="PROPERTY"){Z++;while(Z+1<Q.length&&Q[Z][0]==="."&&Q[Z+1][0]==="PROPERTY")Z+=2;if(Z>O+2&&Z<Q.length&&Q[Z][0]===":"){let q=w("[","[",W);Q.splice(O,0,q);let G=w("]","]",Q[Z+1]);return Q.splice(Z+1,0,G),2}}}if(Y==="."&&J&&J[0]==="("){let Z=O>0?Q[O-1]:null,q=Z?Z[0]:null,G=q==="INDENT"||q==="TERMINATOR",P=w("PROPERTY","__clsx",W);J[0]="CALL_START";let L=1;for(let I=O+2;I<Q.length&&L>0;I++)if(Q[I][0]==="("||Q[I][0]==="CALL_START")L++;else if(Q[I][0]===")"){if(L--,L===0)Q[I][0]="CALL_END"}else if(Q[I][0]==="CALL_END")L--;if(G){let I=w("IDENTIFIER","div",W);return Q.splice(O,0,I),Q.splice(O+2,0,P),3}else if(q===":")return Q[O]=w("IDENTIFIER","__clsx",W),1;else return Q.splice(O+1,0,P),2}if(J&&J[0]==="INDENT"){if(J.fromThen)return 1;if(Y==="->"||Y==="=>"||Y==="CALL_START"||Y==="(")return 1;let Z=!1,q=O>0?Q[O-1][0]:null,G=q==="IF"||q==="UNLESS"||q==="WHILE"||q==="UNTIL"||q==="WHEN"||q==="FORIN"||q==="FOROF"||q==="FORAS"||q==="FORASAWAIT"||q==="BY",P=!1;if(Y==="CALL_END"){let I=1;for(let e=O-1;e>=0&&I>0;e--)if(Q[e][0]==="CALL_END")I++;else if(Q[e][0]==="CALL_START"){if(I--,I===0&&e>0&&Q[e-1][0]==="PROPERTY"&&Q[e-1][1]==="__clsx")P=!0}}let L=Y==="IDENTIFIER"&&(q==="INDENT"||q==="TERMINATOR"||q==="RENDER");if(P)Z=!0;else if(Y==="IDENTIFIER"&&F(W[1])&&!G)Z=!0;else if(Y==="IDENTIFIER"&&!G)Z=L||K(Q,O);else if(Y==="PROPERTY"||Y==="STRING"||Y==="STRING_END"||Y==="NUMBER"||Y==="BOOL"||Y==="CALL_END"||Y===")"||Y==="PRESENCE")Z=K(Q,O);if(Z){let I=!1;if(Y==="PROPERTY"&&O>0&&Q[O-1][0]==="."){let p=O;while(p>=2&&Q[p-1][0]==="."&&Q[p-2][0]==="PROPERTY")p-=2;if(p>=2&&Q[p-1][0]==="."&&Q[p-2][0]==="IDENTIFIER"&&F(Q[p-2][1])){let N=p>=3?Q[p-3][0]:null;if(!N||N==="INDENT"||N==="OUTDENT"||N==="TERMINATOR"||N==="RENDER")I=!0}}if(P||Y==="IDENTIFIER"&&(F(W[1])||L)||I){let p=w("CALL_START","(",W),N=w("->","->",W);return N.newLine=!0,Q.splice(O+1,0,p,N),R.push(U+1),3}else{let p=w(",",",",W),N=w("->","->",W);return N.newLine=!0,Q.splice(O+1,0,p,N),3}}}if(Y==="IDENTIFIER"&&M(W[1])&&J&&(J[0]==="OUTDENT"||J[0]==="TERMINATOR"))return Q.splice(O+1,0,w("CALL_START","(",W),w("CALL_END",")",W)),3;return 1})};let u=f.prototype;u.isHtmlTag=function(w){let D=w.split("#")[0];return S1.has(D.toLowerCase())},u.isComponent=function(w){if(!w||typeof w!=="string")return!1;return/^[A-Z][A-Za-z0-9]*[a-z][A-Za-z0-9]*$/.test(w)},u.collectTemplateClasses=function(w){let D=[],$=w;while(this.is($,".")){let M=$[2];if(typeof M==="string"||M instanceof String)D.unshift(M.valueOf());$=$[1]}let U=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(U===null)return{tag:null,classes:D,id:void 0,base:$};let[R,z]=U.split("#");if(!R)R="div";return{tag:R,classes:D,id:z,base:$}};let l=(w)=>typeof w==="string"?w:w instanceof String?w.valueOf():null,c=(w,D)=>{if(!(w instanceof String))return D;let $=new String(D);if(w.optional)$.optional=!0;if(w.bang)$.bang=!0;return $.optional||$.bang?$:D};u.addBodyRipSrcMarkers=function(w,D){if(typeof w!=="string"||!w)return w;let $=Array.isArray(D)&&D[0]==="block"?D.slice(1):Array.isArray(D)?[D]:[];if($.length===0)return w;let U=(F)=>{if(F==null)return null;if(!Array.isArray(F))return F?.loc?.r??null;if(F.loc?.r)return F.loc.r;if(F[0]?.loc?.r)return F[0].loc.r;for(let H of F){if(H?.loc?.r)return H.loc.r;if(Array.isArray(H)){let K=U(H);if(K!=null)return K}}return null},R=$.map(U);if(R.every((F)=>F==null))return w;let z=w.split(`
|
|
1041
|
+
`),M=0;for(let F=0;F<z.length&&M<R.length;F++){let H=z[F].trim();if(!H)continue;if(H==="{"||H==="}"||H.startsWith("//"))continue;if(z[F].includes("@rip-src:")){M++;continue}if(R[M]!=null)z[F]=`${z[F]} // @rip-src:${R[M]}`;M++}return z.join(`
|
|
1042
|
+
`)},u.transformComponentMembers=function(w,D=new Set){let $=this._self;if(!Array.isArray(w)){let U=l(w);if(U&&D.has(U))return w;if(U&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".",$,U],c(w,"value")];if(U&&this.componentMembers&&this.componentMembers.has(U))return[".",$,c(w,U)];return w}if(w[0]==="."&&w[1]==="this"&&l(w[2])!=null){let U=w[2],R=l(U);if(this.reactiveMembers&&this.reactiveMembers.has(R))return[".",[".",$,R],c(U,"value")];return this._factoryMode?[".",$,U]:w}if(w[0]==="."||w[0]==="?.")return[w[0],this.transformComponentMembers(w[1]),w[2]];if(w[0]==="->"){let U=w[1],R=new Set(D);if(Array.isArray(U))for(let z of U){let M=l(Array.isArray(z)&&z[0]==="default"?z[1]:z);if(M)R.add(M)}return["=>",w[1],this.transformComponentMembers(w[2],R)]}if(w[0]==="object"||w[0]==="map-literal")return[w[0],...w.slice(1).map((U)=>{if(Array.isArray(U)&&U[0]==="...")return["...",this.transformComponentMembers(U[1],D)];if(Array.isArray(U)&&U.length>=2){let R=U[1],z=Array.isArray(R)?this.transformComponentMembers(R,D):R,M=this.transformComponentMembers(U[2],D);return[U[0],z,M]}return this.transformComponentMembers(U,D)})];if(w[0]==="block"||w[0]==="program"){let U=new Set(D),R=[w[0]];for(let z=1;z<w.length;z++){let M=w[z];if(Array.isArray(M)&&M[0]==="="){let F=l(M[1]);if(F&&!(this.reactiveMembers&&this.reactiveMembers.has(F))){R.push(["=",M[1],this.transformComponentMembers(M[2],U)]),U.add(F);continue}}R.push(this.transformComponentMembers(M,U))}return R}return w.map((U)=>this.transformComponentMembers(U,D))},u.emitComponent=function(w,D,$,U){let[,R]=D,z=this.is(R,"block")?R.slice(1):[],M=[],F=[],H=[],K=[],W=[],O=[],Q=[],Y=[],J=null,Z=new Set,q=new Set;for(let b of z){if(!Array.isArray(b))continue;let[B]=b;if(B==="offer"){if(b=b[1],!Array.isArray(b))continue;B=b[0];let T=E1(b[1]);if(T)Q.push(T)}if(B==="accept"){let T=typeof b[1]==="string"?b[1]:E1(b[1]);if(T)Y.push(T),Z.add(T),q.add(T)}else if(B==="."&&b[1]==="this"&&E1(b)){let T=typeof b[2]==="string"||b[2]instanceof String?b[2].valueOf():null;if(T){let k=b2(b);M.push({name:T,value:void 0,isPublic:!0,type:b[2]?.type||null,required:!k,optional:k,srcLine:b.loc?.r}),Z.add(T),q.add(T)}}else if(B==="state"){let T=E1(b[1]);if(T)M.push({name:T,value:b[2],isPublic:E2(b[1]),type:N2(b[1]),optional:b2(b[1]),srcLine:b.loc?.r}),Z.add(T),q.add(T)}else if(B==="computed"){let T=E1(b[1]);if(T)F.push({name:T,expr:b[2],type:N2(b[1]),srcLine:b.loc?.r}),Z.add(T),q.add(T)}else if(B==="readonly"){let T=E1(b[1]);if(T)H.push({name:T,value:b[2],isPublic:E2(b[1]),type:N2(b[1]),optional:b2(b[1]),srcLine:b.loc?.r}),Z.add(T)}else if(B==="="){let T=E1(b[1]);if(T)if(y2.has(T))W.push({name:T,value:b[2]});else{let k=b[2];if(Array.isArray(k)&&(k[0]==="->"||k[0]==="=>"))K.push({name:T,func:k}),Z.add(T);else M.push({name:T,value:k,isPublic:E2(b[1]),srcLine:b.loc?.r}),Z.add(T),q.add(T)}}else if(B==="effect")O.push(b);else if(B==="render")J=b;else if(B==="object")for(let T=1;T<b.length;T++){let k=b[T];if(!Array.isArray(k))continue;let[,x,y]=k;if(typeof x==="string"&&y2.has(x))W.push({name:x,value:y});else if(typeof x==="string")K.push({name:x,func:y}),Z.add(x)}}let G=new Map;for(let{name:b}of K)if(/^on[A-Z]/.test(b)&&!y2.has(b)){let B=b[2].toLowerCase()+b.slice(3);if(K3.has(B))G.set(B,b)}let P=D[0]?.valueOf?.()??null,L=new Set;for(let{name:b,isPublic:B}of M)if(B)L.add(b);for(let{name:b,isPublic:B}of H)if(B)L.add(b);if(P)Z.add("rest"),q.add("rest");let I=this.componentMembers,e=this.reactiveMembers,p=this._autoEventHandlers,N=this._inheritsTag;if(this.componentMembers=Z,this.reactiveMembers=q,this._autoEventHandlers=G.size>0?G:null,this._inheritsTag=P||null,this.options.stubComponents){let b=(E)=>E?E.replace(/::/g,":"):null,B=[],T=this._componentTypeParams||"";B.push(`class ${T}{`),B.push(" declare _root: Element | null; declare app: any; declare router: any; declare params: Record<string, string>; declare query: URLSearchParams; declare children: any;");let k=new Set(W.map((E)=>E.name)),x=[];if(!k.has("beforeMount"))x.push("beforeMount?(): void;");if(!k.has("mounted"))x.push("mounted?(): void;");if(!k.has("beforeUnmount"))x.push("beforeUnmount?(): void;");if(!k.has("unmounted"))x.push("unmounted?(): void;");if(!k.has("onError"))x.push("onError?(err: { status?: number; message?: string; error?: Error; path?: string }): void;");if(x.length)B.push(" "+x.join(" "));B.push(" emit(_name: string, _detail?: any): void {}");let y=[];for(let{name:E,type:j,isPublic:s,required:g,optional:n1}of M){if(!s)continue;let c1=b(j),C=n1??!g?"?":"";y.push(`${E}${C}: ${c1||"any"}`),y.push(`__bind_${E}__?: Signal<${c1||"any"}>`)}for(let{name:E,type:j,isPublic:s}of H){if(!s)continue;let g=b(j);y.push(`${E}?: ${g||"any"}`)}{let j=y.length>0&&M.some((g)=>g.isPublic&&g.required&&!g.optional)?"":"?",s=y.length>0?`{${y.join("; ")}}`:"{}";if(P)s+=` & __RipProps<'${P}'>`;B.push(` constructor(_props${j}: ${s}) {}`)}let m=(E)=>{let j=E?.valueOf?.()??E;if(typeof j!=="string")return null;if(j==="true"||j==="false")return"boolean";if(/^-?\d+(\.\d+)?$/.test(j))return"number";if(j.startsWith('"')||j.startsWith("'"))return"string";return null};for(let{name:E,type:j,value:s,optional:g,srcLine:n1}of M){let c1=b(j)||m(s),d=c1?g&&s===void 0?`${c1} | undefined`:c1:null,h1=n1!=null?` // @rip-src:${n1}`:"";B.push((d?` declare ${E}: Signal<${d}>;`:` declare ${E}: Signal<any>;`)+h1)}if(P)B.push(` declare rest: Signal<__RipProps<'${P}'>>;`);for(let{name:E,type:j,value:s}of H){let g=b(j)||m(s);B.push(g?` declare ${E}: ${g};`:` declare ${E}: any;`)}for(let{name:E,expr:j,type:s}of F){let g=b(s),n1=g?`: Computed<${g}>`:"";if(this.is(j,"block")){let c1=this.transformComponentMembers(j),C=this.emitFunctionBody(c1);B.push(` ${E}${n1} = __computed(() => ${C});`)}else{let c1=this.emitInComponent(j,"value");B.push(` ${E}${n1} = __computed(() => ${c1});`)}}B.push(" _init(props) {");for(let{name:E,value:j,isPublic:s,srcLine:g}of H){let n1=this.emitInComponent(j,"value"),c1=g!=null?` // @rip-src:${g}`:"";B.push((s?` this.${E} = props.${E} ?? ${n1};`:` this.${E} = ${n1};`)+c1)}for(let{name:E,value:j,isPublic:s,required:g,type:n1,srcLine:c1}of M){let C=c1!=null?` // @rip-src:${c1}`:"";if(s&&(g||j===void 0))B.push(` this.${E} = __state(props.__bind_${E}__ ?? props.${E});`+C);else if(s){let d=this.emitInComponent(j,"value");B.push(` this.${E} = __state(props.__bind_${E}__ ?? props.${E} ?? ${d});`+C)}else{let d=this.emitInComponent(j,"value");B.push(` this.${E} = __state(${d});`+C)}}for(let E of O){let j=E[2],s=this.containsAwait(j)?"async ":"";if(this.is(j,"block")){let g=this.transformComponentMembers(j),n1=this.emitFunctionBody(g);B.push(` __effect(${s}() => ${n1});`)}else{let g=this.emitInComponent(j,"value");B.push(` __effect(${s}() => { return ${g}; });`)}}B.push(" }");let l1=new Map;for(let[E,j]of G)l1.set(j,E);if(J){let E=(j)=>{if(!Array.isArray(j))return;let s=j[0]?.valueOf?.()??j[0];if(typeof s==="string"&&s!=="object"&&s!=="switch"&&S1.has(s.split(/[.#]/)[0]))for(let g=1;g<j.length;g++){let n1=j[g],c1=this.is(n1,"object")?n1:null;if(!c1&&Array.isArray(n1)&&(n1[0]==="->"||n1[0]==="=>")&&this.is(n1[2],"block")){for(let C=1;C<n1[2].length;C++)if(this.is(n1[2][C],"object")){c1=n1[2][C];break}}if(!c1)continue;for(let C=1;C<c1.length;C++){let d=c1[C];if(!Array.isArray(d)||d.length<2)continue;let[,h1,_1]=d;if(Array.isArray(h1)&&h1[0]==="."&&h1[1]==="this"&&Array.isArray(_1)&&_1[0]==="."&&_1[1]==="this"){let S=typeof h1[2]==="string"?h1[2]:h1[2]?.valueOf?.(),a=typeof _1[2]==="string"?_1[2]:_1[2]?.valueOf?.();if(S&&a&&!l1.has(a))l1.set(a,S)}}}for(let g=1;g<j.length;g++)E(j[g])};E(J)}for(let{name:E,func:j}of K)if(Array.isArray(j)&&(j[0]==="->"||j[0]==="=>")){let[,s,g]=j;if((!s||Array.isArray(s)&&s.length===0)&&this.containsIt(g))s=["it"];let n1=Array.isArray(s)?s.map((_1)=>{let S=this.formatParam(_1);if(_1?.type)S+=`: ${_1.type}`;return S}).join(", "):"",c1=l1.get(E);if(c1&&Array.isArray(s)&&s.length>0){let _1=s[0];if(!(_1?.type||_1 instanceof String&&_1.type)&&typeof(_1?.valueOf?.()??_1)==="string"){let a=_1?.valueOf?.()??_1;n1=n1.replace(a,`${a}: HTMLElementEventMap['${c1}']`)}}let C=this.reactiveMembers?this.transformComponentMembers(g):g,d=this.containsAwait(g),h1=this.emitFunctionBody(C,s||[]);h1=this.addBodyRipSrcMarkers(h1,g),B.push(` ${d?"async ":""}${E}(${n1}) ${h1}`)}for(let{name:E,value:j}of W)if(Array.isArray(j)&&(j[0]==="->"||j[0]==="=>")){let[,s,g]=j,n1=Array.isArray(s)?s.map((h1)=>this.formatParam(h1)).join(", "):"",c1=this.reactiveMembers?this.transformComponentMembers(g):g,C=this.containsAwait(g),d=this.emitFunctionBody(c1,s||[]);d=this.addBodyRipSrcMarkers(d,g),B.push(` ${C?"async ":""}${E}(${n1}) ${d}`)}if(J){let E=[],j=0,s=this.options.source?.split(`
|
|
1043
|
+
`),g=(C)=>{let d=[],h1=[];for(let _1 of C){let S=null;if(this.is(_1,"object"))S=_1;else if(Array.isArray(_1)&&(_1[0]==="->"||_1[0]==="=>")&&this.is(_1[2],"block")){for(let a=1;a<_1[2].length;a++)if(this.is(_1[2][a],"object")){S=_1[2][a];break}}if(S)for(let a=1;a<S.length;a++){let t=S[a],[,o,f1]=t,V=t.loc?.r??S.loc?.r;if(Array.isArray(o)&&o[0]==="."&&o[1]==="this"){try{let i1=this.emitInComponent(f1,"value");h1.push({code:i1,srcLine:V})}catch{}continue}if(typeof o==="string"&&o.startsWith("@")){try{let i1=this.emitInComponent(f1,"value");h1.push({code:i1,srcLine:V})}catch{}continue}if(typeof o==="string")if(o.startsWith("__bind_")&&o.endsWith("__")){let i1=typeof f1==="string"&&this.reactiveMembers?.has(f1)?`this.${f1}`:this.emitInComponent(f1,"value");d.push({code:`${o}: ${i1}`,srcLine:V})}else{let i1=this.emitInComponent(f1,"value");d.push({code:`${o}: ${i1}`,srcLine:V})}}}return d.sideExprs=h1,d},n1=(C,d)=>{let h1=[],_1=(S)=>{if(d!=="a")return S;if(typeof S!=="string")return S;if(S.length<2)return S;if(S[0]!=="`")return S;if(S[1]!=="/")return S;return`__ripRoute(${S})`};for(let S of C){let a=null;if(this.is(S,"object"))a=S;else if(Array.isArray(S)&&(S[0]==="->"||S[0]==="=>")&&this.is(S[2],"block")){for(let t=1;t<S[2].length;t++)if(this.is(S[2][t],"object")){a=S[2][t];break}}if(a)for(let t=1;t<a.length;t++){let o=a[t];if(!Array.isArray(o)||o.length<2)continue;let[,f1,V]=o,i1=o.loc?.r??a.loc?.r;if(Array.isArray(f1)&&f1[0]==="."&&f1[1]==="this"){let A1=typeof f1[2]==="string"?f1[2]:f1[2]?.valueOf?.();if(!A1)continue;let M1="@"+A1.split(".")[0],O2=this.emitInComponent(V,"value");h1.push({code:`'${M1}': ${O2}`,srcLine:i1})}else if(typeof f1==="string"){if(f1==="key"){let A1=this.emitInComponent(V,"value"),M1=i1!=null?` // @rip-src:${i1}`:"";E.push(` (${A1});${M1}`);continue}if(f1.startsWith("__bind_")&&f1.endsWith("__")){let A1=f1.slice(7,-2),M1=this.emitInComponent(V,"value");h1.push({code:`${A1}: ${M1}`,srcLine:i1})}else{let A1=this.emitInComponent(V,"value"),M1=f1==="href"?_1(A1):A1;h1.push({code:`${f1}: ${M1}`,srcLine:i1})}}}}return h1},c1=(C)=>{if(!Array.isArray(C))return;let d=C[0]?.valueOf?.()??C[0];if(Array.isArray(d)&&d[0]==="."){let S=[],a=(t)=>{if(typeof t==="string")return S.push(t),!0;if(Array.isArray(t)&&t[0]==="."&&S.length===0){if(!a(t[1]))return!1;if(typeof t[2]!=="string"||!/^[\w-]+$/.test(t[2]))return!1;return S.push(".",t[2]),!0}return!1};if(a(d)&&S.length>=3&&/^[a-z][\w-]*$/.test(S[0])){let t=S.join(""),o=[t];for(let V=1;V<C.length;V++)o.push(C[V]);if(C.loc)o.loc=C.loc;o._astNode=C;let f1=(V)=>{if(Array.isArray(V)&&V[0]==="."){if(V.loc)delete V.loc;f1(V[1])}};f1(d),C=o,d=t}}if(d==="object")return;if(d==="if"||d==="unless"){let S=C[1];if(S!=null){let a=this.emitInComponent(S,"value"),t=C.loc?.r,o=t!=null?` // @rip-src:${t}`:"";E.push(` ${a};${o}`)}}else if(d==="?:"){let S=this.emitInComponent(C,"value"),a=C.loc?.r,t=a!=null?` // @rip-src:${a}`:"";E.push(` ${S};${t}`)}else if(d==="switch"){let S=C[1];if(S!=null){let a=this.emitInComponent(S,"value"),t=C.loc?.r,o=t!=null?` // @rip-src:${t}`:"";E.push(` ${a};${o}`)}}else if(d==="for-in"||d==="for-of"||d==="for-as"){let S=C[1],a=C[2];if(a!=null){let t=this.emitInComponent(a,"value"),o=C.loc?.r,f1=o!=null?` // @rip-src:${o}`:"",V;if(Array.isArray(S))if(S.length===1){let i1=S[0];V=Array.isArray(i1)?this.emitDestructuringPattern(i1):String(i1)}else if(d==="for-of")V=`[${S.map((i1)=>String(i1)).join(", ")}]`;else V=String(S[0]);else V=String(S);if(d==="for-of")E.push(` for (const ${V} of Object.entries(${t})) {${f1}`);else E.push(` for (const ${V} of ${t}) {${f1}`);for(let i1=3;i1<C.length;i1++)if(C[i1]!=null)c1(C[i1]);E.push(" }");return}}else if(d==="__text__"){let S=C[1];if(S!=null){let a=this.emitInComponent(S,"value"),t=C.loc?.r,o=t!=null?` // @rip-src:${t}`:"";E.push(` ${a};${o}`)}return}else if(d==="str"){try{let S=this.emitInComponent(C,"value"),a=C.loc?.r,t=a!=null?` // @rip-src:${a}`:"";E.push(` ${S};${t}`)}catch{}return}let h1=(S,a,t)=>{if(typeof S!=="string"||!/^[a-z][\w-]*$/.test(S))return;if(f.GENERATORS[S])return;if(S==="null"||S==="undefined"||S==="true"||S==="false")return;let o=a.loc?.r,f1=null;if(o!=null&&s){let i1=new RegExp(`\\b${S}\\b`,"g");for(let A1=o;A1<s.length;A1++){let M1=s[A1];if(!M1)continue;let O2=A1===a.loc.r?a.loc.c+1:0;i1.lastIndex=O2;let _2,H2=-1;while((_2=i1.exec(M1))!==null){let o2=_2.index>0?M1[_2.index-1]:"";if(o2==="."||o2==="#")continue;H2=_2.index;break}if(H2>=0){o=A1,f1=H2;break}}}let V=o!=null?` // @rip-src:${o}`:"";if(o!=null&&f1!=null){let i1=a._astNode||a;if(!i1._anchors)i1._anchors=[];i1._anchors.push({name:S,origLine:o,origCol:f1})}if(this.componentMembers&&this.componentMembers.has(S))E.push(` this.${S};${V}`);else if(t)E.push(` ${S};${V}`);else E.push(` __ripEl('${S}');${V}`)},_1=typeof d==="string"&&/^[a-z][\w-]*(?:[.#][\w-]+)*$/.test(d)&&!f.GENERATORS[d]&&S1.has(d.split(/[.#]/)[0]);if(d==="block")for(let S=1;S<C.length;S++)h1(C[S],C,!1);else if(_1){for(let S=1;S<C.length;S++)h1(C[S],C,!0);for(let S=1;S<C.length;S++){let a=C[S];if(!Array.isArray(a))continue;let t=a[0]?.valueOf?.()??a[0];if(t==="object"||t==="block"||t==="__text__")continue;if(typeof t==="string"){if(/^[A-Z]/.test(t))continue;if(S1.has(t.split(/[.#]/)[0]))continue;if(/^[a-z][\w-]*$/.test(t)&&!f.GENERATORS[t])continue;if(/^(if|unless|switch|for-in|for-of|for-as|while|until|loop|loop-n|try|throw|break|continue|break-if|continue-if|control|when|return|def|->|=>|class|enum|state|computed|readonly|effect|=|program)$/.test(t))continue}try{let o=this.emitInComponent(a,"value"),f1=a.loc?.r??C.loc?.r,V=f1!=null?` // @rip-src:${f1}`:"";E.push(` ${o};${V}`)}catch{}}}for(let S=1;S<C.length;S++)c1(C[S]);if(typeof d==="string"&&/^[A-Z]/.test(d)){let S=g(C.slice(1)),a=`_${j++}`,t=`ConstructorParameters<typeof ${d}>[0] & {}`;if(S.length===0){let o=C.loc?.r;E.push(` const ${a}: ${t} = {};`+(o!=null?` // @rip-src:${o}`:""))}else if(S.length===1){let o=C.loc?.r??S[0].srcLine;E.push(` const ${a}: ${t} = {${S[0].code}};`+(o!=null?` // @rip-src:${o}`:""))}else{let o=C.loc?.r;if(new Set(S.map((V)=>V.srcLine).filter((V)=>V!=null)).size<=1){let V=S[0].srcLine??o;E.push(` const ${a}: ${t} = {${S.map((i1)=>i1.code).join(", ")}};`+(V!=null?` // @rip-src:${V}`:""))}else{E.push(` const ${a}: ${t} = {`+(o!=null?` // @rip-src:${o}`:""));for(let V of S)E.push(` ${V.code},`+(V.srcLine!=null?` // @rip-src:${V.srcLine}`:""));E.push(" };")}}if(S.sideExprs)for(let o of S.sideExprs)E.push(` ${o.code};`+(o.srcLine!=null?` // @rip-src:${o.srcLine}`:""))}else if(typeof d==="string"&&!f.GENERATORS[d]&&(S1.has(d.split(/[.#]/)[0])||/^[a-z][\w-]*$/.test(d)&&C.length>1)){let S=d.split(/[.#]/)[0],a=n1(C.slice(1),S),t=C.loc?.r,o=t!=null?` // @rip-src:${t}`:"";if(a.length===0)E.push(` __ripEl('${S}');${o}`);else if(a.length===1){let f1=a[0].srcLine??t,V=f1!=null?` // @rip-src:${f1}`:"";E.push(` __ripEl('${S}', {${a[0].code}});${V}`)}else if(new Set(a.map((V)=>V.srcLine).filter((V)=>V!=null)).size<=1){let V=a[0].srcLine??t,i1=V!=null?` // @rip-src:${V}`:"";E.push(` __ripEl('${S}', {${a.map((A1)=>A1.code).join(", ")}});${i1}`)}else{E.push(` __ripEl('${S}', {${o}`);for(let V of a)E.push(` ${V.code},`+(V.srcLine!=null?` // @rip-src:${V.srcLine}`:""));E.push(" });")}}};if(c1(J),E.length>0){B.push(" _render() {");for(let C of E)B.push(C);B.push(" }")}}return B.push("}"),this.componentMembers=I,this.reactiveMembers=e,this._autoEventHandlers=p,this._inheritsTag=N,B.join(`
|
|
1044
|
+
`)}this.usesTemplates=!0,this.usesReactivity=!0;let X=[],u1="";X.push("class extends __Component {"),X.push(" _init(props) {");for(let{name:b,value:B,isPublic:T}of H){let k=this.emitInComponent(B,"value");X.push(T?` this.${b} = props.${b} ?? ${k};`:` this.${b} = ${k};`)}for(let b of Y)X.push(` this.${b} = getContext('${b}');`);for(let{name:b,value:B,isPublic:T,required:k}of M)if(T&&(k||B===void 0))X.push(` this.${b} = __state(props.__bind_${b}__ ?? props.${b});`);else if(T){let x=this.emitInComponent(B,"value");X.push(` this.${b} = __state(props.__bind_${b}__ ?? props.${b} ?? ${x});`)}else{let x=this.emitInComponent(B,"value");X.push(` this.${b} = __state(${x});`)}if(P){if(X.push(" this._rest = {};"),X.push(" for (const __k in props) {"),L.size>0){let b=[...L].map((B)=>`__k !== '${B}'`).join(" && ");X.push(` if (${b} && !__k.startsWith('__bind_')) this._rest[__k] = props[__k];`)}else X.push(" if (!__k.startsWith('__bind_')) this._rest[__k] = props[__k];");X.push(" }"),X.push(" this.rest = __state(this._rest);")}for(let{name:b,expr:B}of F)if(this.is(B,"block")){let T=this.transformComponentMembers(B),k=this.emitFunctionBody(T);X.push(` this.${b} = __computed(() => ${k});`)}else{let T=this.emitInComponent(B,"value");X.push(` this.${b} = __computed(() => ${T});`)}for(let b of Q)X.push(` setContext('${b}', this.${b});`);for(let b of O){let B=b[2],T=this.containsAwait(B)?"async ":"";if(this.is(B,"block")){let k=this.transformComponentMembers(B),x=this.emitFunctionBody(k);X.push(` __effect(${T}() => ${x});`)}else{let k=this.emitInComponent(B,"value");X.push(` __effect(${T}() => { return ${k}; });`)}}if(X.push(" }"),P)X.push(" _setRestProp(key, value) {"),X.push(" if (key.startsWith('__bind_')) return;"),X.push(" this._rest || (this._rest = {});"),X.push(" if (value == null) delete this._rest[key];"),X.push(" else this._rest[key] = value;"),X.push(" this.rest.touch();"),X.push(" this._applyInheritedProp(this._inheritedEl, key, value);"),X.push(" }"),X.push(" _applyRestToInheritedEl() {"),X.push(" if (!this._inheritedEl || !this._rest) return;"),X.push(" for (const key in this._rest) this._applyInheritedProp(this._inheritedEl, key, this._rest[key]);"),X.push(" }"),X.push(" _applyInheritedProp(el, key, value) {"),X.push(" if (!el || key === 'key' || key === 'ref' || key === 'children' || key.startsWith('__bind_')) return;"),X.push(" if (key[0] === '@') {"),X.push(" const event = key.slice(1).split('.')[0];"),X.push(" this._restHandlers || (this._restHandlers = {});"),X.push(" const prev = this._restHandlers[key];"),X.push(" if (prev) el.removeEventListener(event, prev);"),X.push(" if (typeof value === 'function') {"),X.push(" const next = (e) => __batch(() => value(e));"),X.push(" this._restHandlers[key] = next;"),X.push(" el.addEventListener(event, next);"),X.push(" } else {"),X.push(" delete this._restHandlers[key];"),X.push(" }"),X.push(" return;"),X.push(" }"),X.push(" if (key === 'class' || key === 'className') {"),X.push(" if (el instanceof SVGElement) el.setAttribute('class', __clsx(value));"),X.push(" else el.className = __clsx(value);"),X.push(" return;"),X.push(" }"),X.push(" if (key === 'style') {"),X.push(" if (value == null) { el.removeAttribute('style'); return; }"),X.push(" if (typeof value === 'string') { el.setAttribute('style', value); return; }"),X.push(" if (typeof value === 'object') { Object.assign(el.style, value); return; }"),X.push(" }"),X.push(" if (key === 'innerHTML' || key === 'textContent' || key === 'innerText') {"),X.push(" el[key] = value ?? '';"),X.push(" return;"),X.push(" }"),X.push(" if (key in el && !key.includes('-')) {"),X.push(" el[key] = value;"),X.push(" return;"),X.push(" }"),X.push(" if (value == null || value === false) {"),X.push(" el.removeAttribute(key);"),X.push(" return;"),X.push(" }"),X.push(" if (value === true) {"),X.push(" el.setAttribute(key, '');"),X.push(" return;"),X.push(" }"),X.push(" el.setAttribute(key, value);"),X.push(" }");for(let{name:b,func:B}of K)if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>")){let[,T,k]=B;if((!T||Array.isArray(T)&&T.length===0)&&this.containsIt(k))T=["it"];let x=Array.isArray(T)?T.map((E)=>this.formatParam(E)).join(", "):"",y=this.reactiveMembers?this.transformComponentMembers(k):k,m=this.containsAwait(k),l1=this.emitFunctionBody(y,T||[]);X.push(` ${m?"async ":""}${b}(${x}) ${l1}`)}for(let{name:b,value:B}of W)if(Array.isArray(B)&&(B[0]==="->"||B[0]==="=>")){let[,T,k]=B,x=Array.isArray(T)?T.map((E)=>this.formatParam(E)).join(", "):"",y=this.reactiveMembers?this.transformComponentMembers(k):k,m=this.containsAwait(k),l1=this.emitFunctionBody(y,T||[]);X.push(` ${m?"async ":""}${b}(${x}) ${l1}`)}if(J){let b=J[1],B=this.buildRender(b);if(B.blockFactories.length>0)u1=B.blockFactories.join(`
|
|
899
1045
|
|
|
900
1046
|
`)+`
|
|
901
1047
|
|
|
902
|
-
`;X.push(" _create() {");for(let
|
|
903
|
-
${
|
|
1048
|
+
`;X.push(" _create() {");for(let T of B.createLines)X.push(` ${T}`);if(X.push(` return ${B.rootVar};`),X.push(" }"),B.setupLines.length>0){X.push(" _setup() {");for(let T of B.setupLines)X.push(` ${T}`);X.push(" }")}}if(X.push("}"),this.componentMembers=I,this.reactiveMembers=e,this._autoEventHandlers=p,this._inheritsTag=N,u1)return`(() => {
|
|
1049
|
+
${u1}return ${X.join(`
|
|
904
1050
|
`)};
|
|
905
1051
|
})()`;return X.join(`
|
|
906
|
-
`)},u.emitInComponent=function(c,A){if(typeof c==="string"&&this.reactiveMembers&&this.reactiveMembers.has(c))return`${this._self}.${c}.value`;if(typeof c==="string"&&this.componentMembers&&this.componentMembers.has(c))return`${this._self}.${c}`;if(Array.isArray(c)&&this.reactiveMembers){let $=this.transformComponentMembers(c);return this.emit($,A)}return this.emit(c,A)},u.emitRender=function(c,A,$,R){this.error("render blocks can only be used inside a component",R)},u.emitOffer=function(c,A,$,R){this.error("offer can only be used inside a component",R)},u.emitAccept=function(c,A,$,R){this.error("accept can only be used inside a component",R)},u.buildRender=function(c){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let A=this.is(c,"block")?c.slice(1):[c],$;if(A.length===0||A.length===1&&A[0]==="null")$="null";else if(A.length===1)this._pendingAutoWire=!!this._autoEventHandlers,$=this.emitNode(A[0]),this._pendingAutoWire=!1;else{$=this.newElementVar("frag"),this._createLines.push(`${$} = document.createDocumentFragment();`);let R=[];for(let M of A){let z=this.emitNode(M);this._createLines.push(`${$}.appendChild(${z});`),R.push(z)}this._fragChildren.set($,R)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:$}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(c="el"){let A=`_${c}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(A);return this._factoryMode?A:`this.${A}`},u.newTextVar=function(){let c=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(c);return this._factoryMode?c:`this.${c}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(c){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${c} }));`);else this._setupLines.push(`__effect(() => { ${c} });`)},u.emitNode=function(c){if(typeof c==="string"||c instanceof String){let F=c.valueOf();if(F.startsWith('"')||F.startsWith("'")||F.startsWith("`")){let Y=this.newTextVar();return this._createLines.push(`${Y} = document.createTextNode(${F});`),Y}if(this.reactiveMembers&&this.reactiveMembers.has(F)){let Y=this.newTextVar();return this._createLines.push(`${Y} = document.createTextNode('');`),this._pushEffect(`${Y}.data = ${this._self}.${F}.value;`),Y}if(F==="slot"&&this.componentMembers){let Y=this._self,H=this.newElementVar("slot");return this._createLines.push(`${H} = ${Y}.children instanceof Node ? ${Y}.children : (${Y}.children != null ? document.createTextNode(String(${Y}.children)) : document.createComment(''));`),H}let[W,Q]=F.split("#"),i=this.newElementVar(),U=W||"div";if(K1.has(U)||this._svgDepth>0)this._createLines.push(`${i} = document.createElementNS('${i2}', '${U}');`);else this._createLines.push(`${i} = document.createElement('${U}');`);if(Q)this._createLines.push(`${i}.id = '${Q}';`);return this._bindInheritedTarget(U,i),i}if(!Array.isArray(c)){let F=this.newElementVar("c");return this._createLines.push(`${F} = document.createComment('unknown');`),F}let[A,...$]=c,R=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(R&&this.isComponent(R))return this.emitChildComponent(R,$);if(R==="slot"&&this.componentMembers){let F=this._self,W=this.newElementVar("slot");return this._createLines.push(`${W} = ${F}.children instanceof Node ? ${F}.children : (${F}.children != null ? document.createTextNode(String(${F}.children)) : document.createComment(''));`),W}if(R==="switch"){let F=$[0],W=$[1]||[],i=$[2]||null;for(let Y=W.length-1;Y>=0;Y--){let[,H,O]=W[Y],q;if(F===null)q=H.length===1?H[0]:H.reduce((n,K)=>n?["||",n,K]:K,null);else q=H.length===1?["==",F,H[0]]:H.map((n)=>["==",F,n]).reduce((n,K)=>n?["||",n,K]:K,null);i=["if",q,O,i]}if(i){if(Array.isArray(i)&&i[0]==="if")return this.emitConditional(i);return this.emitTemplateBlock(i)}let U=this.newElementVar("c");return this._createLines.push(`${U} = document.createComment('switch');`),U}if(R&&this.isHtmlTag(R)&&!h(A,"text")){let[F,W]=R.split("#");return this.emitTag(F||"div",[],$,W)}if(R==="."){let[,F,W]=c;if(F==="this"&&typeof W==="string"){let q=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(W)){let K=this.newTextVar();return this._createLines.push(`${K} = document.createTextNode('');`),this._pushEffect(`${K}.data = ${q}.${W}.value;`),K}let n=this.newElementVar("slot");return this._createLines.push(`${n} = ${q}.${W} instanceof Node ? ${q}.${W} : (${q}.${W} != null ? document.createTextNode(String(${q}.${W})) : document.createComment(''));`),n}let{tag:Q,classes:i,id:U,base:Y}=this.collectTemplateClasses(c);if(!h(Y,"text")&&Q&&this.isHtmlTag(Q))return this.emitTag(Q,i,[],U);let H=this.newTextVar(),O=this.emitInComponent(c,"value");return this._createLines.push(`${H} = document.createTextNode(String(${O}));`),H}if(Array.isArray(A)){if(Array.isArray(A[0])&&A[0][0]==="."&&(A[0][2]==="__clsx"||A[0][2]instanceof String&&A[0][2].valueOf()==="__clsx")){let i=A[0][1],U=A.slice(1);if(Array.isArray(i)){let{tag:H,classes:O,id:q}=this.collectTemplateClasses(i);if(H){let n=O.map((K)=>`"${K}"`);return this.emitDynamicTag(H,U,$,n,q)}}let Y=typeof i==="string"?i:i.valueOf();return this.emitDynamicTag(Y,U,$)}let{tag:F,classes:W,id:Q}=this.collectTemplateClasses(A);if(F&&this.isHtmlTag(F)){if(W.length>0&&W[W.length-1]==="__clsx"){let U=W.slice(0,-1).map((Y)=>`"${Y}"`);return this.emitDynamicTag(F,$,[],U,Q)}return this.emitTag(F,W,$,Q)}}if(R==="->"||R==="=>")return this.emitTemplateBlock($[1]);if(R==="if")return this.emitConditional(c);if(R==="for"||R==="for-in"||R==="for-of"||R==="for-as")return this.emitTemplateLoop(c);if(R==="__text__"){let F=$[0]??"undefined",W=this.newTextVar(),Q=this.emitInComponent(F,"value");if(this.hasReactiveDeps(F))this._createLines.push(`${W} = document.createTextNode('');`),this._pushEffect(`${W}.data = String(${Q});`);else this._createLines.push(`${W} = document.createTextNode(String(${Q}));`);return W}let M=this.newTextVar(),z=this.emitInComponent(c,"value");if(this.hasReactiveDeps(c))this._createLines.push(`${M} = document.createTextNode('');`),this._pushEffect(`${M}.data = ${z};`);else this._createLines.push(`${M} = document.createTextNode(String(${z}));`);return M},u.appendChildren=function(c,A){for(let $ of A)if(this.is($,"->")||this.is($,"=>")){let R=$[2];if(this.is(R,"block"))for(let M of R.slice(1))if(this.is(M,"object"))this.emitAttributes(c,M);else{let z=this.emitNode(M);this._createLines.push(`${c}.appendChild(${z});`)}else if(R){let M=this.emitNode(R);this._createLines.push(`${c}.appendChild(${M});`)}}else if(this.is($,"object"))this.emitAttributes(c,$);else if(typeof $==="string"||$ instanceof String){let R=$.valueOf(),M=R.split(/[#.]/)[0];if(this.isHtmlTag(M||"div")||this.isComponent(M)){let z=this.emitNode($);this._createLines.push(`${c}.appendChild(${z});`)}else{let z=this.newTextVar();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${R}.value;`);else if(this.componentMembers&&this.componentMembers.has(R))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${R}));`);else this._createLines.push(`${z} = document.createTextNode(${this.emitInComponent($,"value")});`);this._createLines.push(`${c}.appendChild(${z});`)}}else if($){let R=this.emitNode($);this._createLines.push(`${c}.appendChild(${R});`)}},u._claimAutoWire=function(c){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=c,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(c,A){if(!A)return;for(let[$,R]of this._autoEventHandlers)if(!this._autoWireExplicit.has($))this._createLines.push(`${c}.addEventListener('${$}', (e) => __batch(() => ${this._self}.${R}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(c,A){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(c!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${A};`),this._createLines.push("this._applyRestToInheritedEl();")},u.emitTag=function(c,A,$,R){let M=this.newElementVar(),z=K1.has(c)||this._svgDepth>0;if(z)this._createLines.push(`${M} = document.createElementNS('${i2}', '${c}');`);else this._createLines.push(`${M} = document.createElement('${c}');`);if(R)this._createLines.push(`${M}.id = '${R}';`);if(this._bindInheritedTarget(c,M),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${M}.setAttribute('data-part', '${this._componentName}');`);let F=this._claimAutoWire(M),W=this._pendingClassArgs,Q=this._pendingClassEl;if(A.length>0)this._pendingClassArgs=[`'${A.join(" ")}'`],this._pendingClassEl=M;if(c==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(M,$),c==="svg")this._svgDepth--;if(A.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${M}.setAttribute('class', '${A.join(" ")}');`);else this._createLines.push(`${M}.className = '${A.join(" ")}';`);else{let i=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${M}.setAttribute('class', __clsx(${i}));`);else this._pushEffect(`${M}.className = __clsx(${i});`)}this._pendingClassArgs=W,this._pendingClassEl=Q}return this._emitAutoWire(M,F),M},u.emitDynamicTag=function(c,A,$,R,M){let z=this.newElementVar();if(K1.has(c)||this._svgDepth>0)this._createLines.push(`${z} = document.createElementNS('${i2}', '${c}');`);else this._createLines.push(`${z} = document.createElement('${c}');`);if(M)this._createLines.push(`${z}.id = '${M}';`);this._bindInheritedTarget(c,z);let F=this._claimAutoWire(z),W=[...R||[],...A.map((U)=>this.emitInComponent(U,"value"))],Q=this._pendingClassArgs,i=this._pendingClassEl;if(this._pendingClassArgs=W,this._pendingClassEl=z,c==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,$),c==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let U=this._pendingClassArgs.join(", ");if(K1.has(c)||this._svgDepth>0)this._pushEffect(`${z}.setAttribute('class', __clsx(${U}));`);else this._pushEffect(`${z}.className = __clsx(${U});`)}return this._pendingClassArgs=Q,this._pendingClassEl=i,this._emitAutoWire(z,F),z},u.emitAttributes=function(c,A){let $=y5(A.slice(1));for(let R=1;R<A.length;R++){let[,M,z]=A[R];if(this.is(M,".")&&M[1]==="this"){let F=M[2];if(this._autoWireExplicit&&this._autoWireEl===c)this._autoWireExplicit.add(F);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${c}.addEventListener('${F}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let W=this.emitInComponent(z,"value");this._createLines.push(`${c}.addEventListener('${F}', (e) => __batch(() => (${W})(e)));`)}continue}if(typeof M==="string"||M instanceof String){if(M.startsWith('"')&&M.endsWith('"'))M=M.slice(1,-1);if(M==="class"||M==="className"){let W=this.emitInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===c)this._pendingClassArgs.push(W);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${c}.setAttribute('class', __clsx(${W}));`);else this._pushEffect(`${c}.className = __clsx(${W});`);else if(this._svgDepth>0)this._createLines.push(`${c}.setAttribute('class', ${W});`);else this._createLines.push(`${c}.className = ${W};`);continue}if(M==="__transition__"){let W=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${W}";`);continue}if(M==="ref"){let W=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${W} = ${c};`);continue}if(M.startsWith(w3)&&M.endsWith(c3)){let W=M.slice(w3.length,-c3.length),Q=this.emitInComponent(z,"value"),i,U;if(W==="checked")i="change",U="e.target.checked";else i="input",U=$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${c}.${W} = ${Q};`);let Y=`${Q} = ${U}`,H=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(H)Y+=`; ${this._self}.${H}.touch?.()`;this._createLines.push(`${c}.addEventListener('${i}', (e) => { ${Y}; });`);continue}let F=this.emitInComponent(z,"value");if((M==="value"||M==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${c}.${M} = ${F};`);continue}if(M==="innerHTML"||M==="textContent"||M==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${c}.${M} = ${F};`);else this._createLines.push(`${c}.${M} = ${F};`);else if(I5.has(M))if(this.hasReactiveDeps(z))this._pushEffect(`${c}.toggleAttribute('${M}', !!${F});`);else this._createLines.push(`if (${F}) ${c}.setAttribute('${M}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${F}; __v == null ? ${c}.removeAttribute('${M}') : ${c}.setAttribute('${M}', __v); }`);else this._pushEffect(`${c}.setAttribute('${M}', ${F});`);else if(Array.isArray(z)&&z[0]==="presence")this._createLines.push(`{ const __v = ${F}; if (__v != null) ${c}.setAttribute('${M}', __v); }`);else this._createLines.push(`${c}.setAttribute('${M}', ${F});`)}}},u.emitTemplateBlock=function(c){if(!Array.isArray(c)||c[0]!=="block")return this.emitNode(c);let A=c.slice(1);if(A.length===0){let M=this.newElementVar("empty");return this._createLines.push(`${M} = document.createComment('');`),M}if(A.length===1)return this.emitNode(A[0]);let $=this.newElementVar("frag");this._createLines.push(`${$} = document.createDocumentFragment();`);let R=[];for(let M of A){let z=this.emitNode(M);this._createLines.push(`${$}.appendChild(${z});`),R.push(z)}return this._fragChildren.set($,R),$},u.emitConditional=function(c){if(this._pendingAutoWire=!1,c.length>4){let O=c[c.length-1];for(let q=c.length-2;q>=3;q--)O=[...c[q],O];c=[c[0],c[1],c[2],O]}let[,A,$,R]=c,M=this.newElementVar("anchor");this._createLines.push(`${M} = document.createComment('if');`);let z=this.emitInComponent(A,"value"),F=this._loopVarStack.map((O)=>`${O.itemVar}, ${O.indexVar}`).join(", "),W=F?`, ${F}`:"",Q=this.newBlockVar();this.emitConditionBranch(Q,$);let i=null;if(R)i=this.newBlockVar(),this.emitConditionBranch(i,R);let U=[];U.push(`// Conditional: ${Q}${i?" / "+i:""}`),U.push("{"),U.push(` const anchor = ${M};`),U.push(" let currentBlock = null;"),U.push(" let showing = null;");let Y=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",H=this._factoryMode?"}));":"});";if(U.push(` ${Y}`),U.push(` const show = !!(${z});`),U.push(` const want = show ? 'then' : ${R?"'else'":"null"};`),U.push(" if (want === showing) return;"),U.push(""),U.push(" if (currentBlock) {"),U.push(" const leaving = currentBlock;"),U.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),U.push(" else { leaving.d(true); }"),U.push(" currentBlock = null;"),U.push(" }"),U.push(" showing = want;"),U.push(""),U.push(" if (want === 'then') {"),U.push(` currentBlock = ${Q}(${this._self}${W});`),U.push(" currentBlock.c();"),U.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),U.push(` currentBlock.p(${this._self}${W});`),U.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),U.push(" }"),R)U.push(" if (want === 'else') {"),U.push(` currentBlock = ${i}(${this._self}${W});`),U.push(" currentBlock.c();"),U.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),U.push(` currentBlock.p(${this._self}${W});`),U.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),U.push(" }");if(U.push(` ${H}`),this._factoryMode)U.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");return U.push("}"),this._setupLines.push(U.join(`
|
|
907
|
-
`)),
|
|
908
|
-
`))},u.emitTemplateLoop=function(
|
|
909
|
-
`)),
|
|
1052
|
+
`)},u.emitInComponent=function(w,D){if(typeof w==="string"&&this.reactiveMembers&&this.reactiveMembers.has(w))return`${this._self}.${w}.value`;if(typeof w==="string"&&this.componentMembers&&this.componentMembers.has(w))return`${this._self}.${w}`;if(Array.isArray(w)&&this.reactiveMembers){let $=this.transformComponentMembers(w);return this.emit($,D)}return this.emit(w,D)},u.emitRender=function(w,D,$,U){this.error("render blocks can only be used inside a component",U)},u.emitOffer=function(w,D,$,U){this.error("offer can only be used inside a component",U)},u.emitAccept=function(w,D,$,U){this.error("accept can only be used inside a component",U)},u.buildRender=function(w){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[],this._loopVarStack=[],this._factoryMode=!1,this._factoryVars=null,this._renderLocalScope=new Set,this._renderTopLocals=new Set,this._fragChildren=new Map,this._pendingAutoWire=!1,this._autoWireEl=null,this._autoWireExplicit=null,this._inheritsTargetBound=!1;let D=this.is(w,"block")?w.slice(1):[w],$=D.reduce((R,z)=>R+(this._isRenderBinding(z)?0:1),0),U;if(D.length===0||D.length===1&&D[0]==="null")U="null";else if($===0){for(let R of D)this.emitNode(R);U=this.newElementVar("empty"),this._createLines.push(`${U} = document.createComment('');`)}else if($===1){this._pendingAutoWire=!!this._autoEventHandlers;let R=null;for(let z of D){let M=this.emitNode(z);if(M!=null)R=M}this._pendingAutoWire=!1,U=R}else{U=this.newElementVar("frag"),this._createLines.push(`${U} = document.createDocumentFragment();`);let R=[];for(let z of D){let M=this.emitNode(z);if(M==null)continue;this._createLines.push(`${U}.appendChild(${M});`),R.push(M)}this._fragChildren.set(U,R)}if(this._renderTopLocals.size>0){let R=`let ${[...this._renderTopLocals].join(", ")};`;this._createLines.unshift(R)}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:U}},u.newBlockVar=function(){return`create_block_${this._blockCount++}`},u.newElementVar=function(w="el"){let D=`_${w}${this._elementCount++}`;if(this._factoryVars)this._factoryVars.add(D);return this._factoryMode?D:`this.${D}`},u.newTextVar=function(){let w=`_t${this._textCount++}`;if(this._factoryVars)this._factoryVars.add(w);return this._factoryMode?w:`this.${w}`},Object.defineProperty(u,"_self",{get(){return this._factoryMode?"ctx":"this"}}),u._pushEffect=function(w){if(this._factoryMode)this._setupLines.push(`disposers.push(__effect(() => { ${w} }, {skipRegister: true}));`);else this._setupLines.push(`__effect(() => { ${w} });`)};let h=(w)=>typeof w==="string"&&/^[A-Za-z_$][\w$]*$/.test(w),A=new Set(["=","+=","-=","*=","/=","%=","**=","&&=","||=","?=","??="]);u._isRenderBinding=function(w){return Array.isArray(w)&&A.has(w[0])&&h(w[1])},u._addRenderLocal=function(w){if(this._renderLocalScope)this._renderLocalScope.add(w)},u._isRenderLocal=function(w){if(!w||typeof w!=="string")return!1;if(this._renderLocalScope&&this._renderLocalScope.has(w))return!0;if(this._loopVarStack){for(let D of this._loopVarStack)if(D.itemVar===w||D.indexVar===w)return!0}return!1},u.emitNode=function(w){if(this._isRenderBinding(w)){let[M,F,H]=w,K=this.emitInComponent(H,"value");if(M==="=")(this._factoryMode?this._factoryVars:this._renderTopLocals).add(F),this._addRenderLocal(F);return this._createLines.push(`${F} ${M} ${K};`),null}if(typeof w==="string"||w instanceof String){let M=w.valueOf();if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`")){let O=this.newTextVar();return this._createLines.push(`${O} = document.createTextNode(${M});`),O}if(this.reactiveMembers&&this.reactiveMembers.has(M)){let O=this.newTextVar();return this._createLines.push(`${O} = document.createTextNode('');`),this._pushEffect(`${O}.data = ${this._self}.${M}.value;`),O}if(this._isRenderLocal(M)){let O=this.newTextVar();return this._createLines.push(`${O} = document.createTextNode(String(${M}));`),O}if(M==="slot"&&this.componentMembers){let O=this._self,Q=this.newElementVar("slot");return this._createLines.push(`${Q} = ${O}.children instanceof Node ? ${O}.children : (${O}.children != null ? document.createTextNode(String(${O}.children)) : document.createComment(''));`),Q}let[F,H]=M.split("#"),K=this.newElementVar(),W=F||"div";if(y1.has(W)||this._svgDepth>0)this._createLines.push(`${K} = document.createElementNS('${S2}', '${W}');`);else this._createLines.push(`${K} = document.createElement('${W}');`);if(H)this._createLines.push(`${K}.id = '${H}';`);return this._bindInheritedTarget(W,K),K}if(!Array.isArray(w)){let M=this.newElementVar("c");return this._createLines.push(`${M} = document.createComment('unknown');`),M}let[D,...$]=w,U=typeof D==="string"?D:D instanceof String?D.valueOf():null;if(U&&this.isComponent(U))return this.emitChildComponent(U,$);if(U==="slot"&&this.componentMembers){let M=this._self,F=this.newElementVar("slot");return this._createLines.push(`${F} = ${M}.children instanceof Node ? ${M}.children : (${M}.children != null ? document.createTextNode(String(${M}.children)) : document.createComment(''));`),F}if(U==="switch"){let M=$[0],F=$[1]||[],K=$[2]||null;for(let O=F.length-1;O>=0;O--){let[,Q,Y]=F[O],J;if(M===null)J=Q.length===1?Q[0]:Q.reduce((Z,q)=>Z?["||",Z,q]:q,null);else J=Q.length===1?["==",M,Q[0]]:Q.map((Z)=>["==",M,Z]).reduce((Z,q)=>Z?["||",Z,q]:q,null);K=["if",J,Y,K]}if(K){if(Array.isArray(K)&&K[0]==="if")return this.emitConditional(K);return this.emitTemplateBlock(K)}let W=this.newElementVar("c");return this._createLines.push(`${W} = document.createComment('switch');`),W}if(U&&this.isHtmlTag(U)&&!i(D,"text")&&!this._isRenderLocal(U)){let[M,F]=U.split("#");return this.emitTag(M||"div",[],$,F)}if(U==="."){let[,M,F]=w;if(M==="this"&&typeof F==="string"){let J=this._self;if(this.reactiveMembers&&this.reactiveMembers.has(F)){let q=this.newTextVar();return this._createLines.push(`${q} = document.createTextNode('');`),this._pushEffect(`${q}.data = ${J}.${F}.value;`),q}let Z=this.newElementVar("slot");return this._createLines.push(`${Z} = ${J}.${F} instanceof Node ? ${J}.${F} : (${J}.${F} != null ? document.createTextNode(String(${J}.${F})) : document.createComment(''));`),Z}let{tag:H,classes:K,id:W,base:O}=this.collectTemplateClasses(w);if(!i(O,"text")&&H&&this.isHtmlTag(H)&&!this._isRenderLocal(H))return this.emitTag(H,K,[],W);let Q=this.newTextVar(),Y=this.emitInComponent(w,"value");return this._createLines.push(`${Q} = document.createTextNode(String(${Y}));`),Q}if(Array.isArray(D)){if(Array.isArray(D[0])&&D[0][0]==="."&&(D[0][2]==="__clsx"||D[0][2]instanceof String&&D[0][2].valueOf()==="__clsx")){let K=D[0][1],W=D.slice(1);if(Array.isArray(K)){let{tag:Q,classes:Y,id:J}=this.collectTemplateClasses(K);if(Q){let Z=Y.map((q)=>`"${q}"`);return this.emitDynamicTag(Q,W,$,Z,J)}}let O=typeof K==="string"?K:K.valueOf();return this.emitDynamicTag(O,W,$)}let{tag:M,classes:F,id:H}=this.collectTemplateClasses(D);if(M&&this.isHtmlTag(M)&&!this._isRenderLocal(M)){if(F.length>0&&F[F.length-1]==="__clsx"){let W=F.slice(0,-1).map((O)=>`"${O}"`);return this.emitDynamicTag(M,$,[],W,H)}return this.emitTag(M,F,$,H)}}if(U==="->"||U==="=>")return this.emitTemplateBlock($[1]);if(U==="if")return this.emitConditional(w);if(U==="for"||U==="for-in"||U==="for-of"||U==="for-as")return this.emitTemplateLoop(w);if(U==="__text__"){let M=$[0]??"undefined",F=this.newTextVar(),H=this.emitInComponent(M,"value");if(this.hasReactiveDeps(M))this._createLines.push(`${F} = document.createTextNode('');`),this._pushEffect(`${F}.data = String(${H});`);else this._createLines.push(`${F} = document.createTextNode(String(${H}));`);return F}let R=this.newTextVar(),z=this.emitInComponent(w,"value");if(this.hasReactiveDeps(w))this._createLines.push(`${R} = document.createTextNode('');`),this._pushEffect(`${R}.data = ${z};`);else this._createLines.push(`${R} = document.createTextNode(String(${z}));`);return R},u.appendChildren=function(w,D){for(let $ of D)if(this.is($,"->")||this.is($,"=>")){let U=$[2];if(this.is(U,"block"))for(let R of U.slice(1))if(this.is(R,"object"))this.emitAttributes(w,R);else{let z=this.emitNode(R);if(z==null)continue;this._createLines.push(`${w}.appendChild(${z});`)}else if(U){let R=this.emitNode(U);if(R!=null)this._createLines.push(`${w}.appendChild(${R});`)}}else if(this.is($,"object"))this.emitAttributes(w,$);else if(typeof $==="string"||$ instanceof String){let U=$.valueOf(),R=U.split(/[#.]/)[0];if(!this._isRenderLocal(R)&&(this.isHtmlTag(R||"div")||this.isComponent(R))){let z=this.emitNode($);this._createLines.push(`${w}.appendChild(${z});`)}else{let z=this.newTextVar();if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))this._createLines.push(`${z} = document.createTextNode(${U});`);else if(this.reactiveMembers&&this.reactiveMembers.has(U))this._createLines.push(`${z} = document.createTextNode('');`),this._pushEffect(`${z}.data = ${this._self}.${U}.value;`);else if(this.componentMembers&&this.componentMembers.has(U))this._createLines.push(`${z} = document.createTextNode(String(${this._self}.${U}));`);else this._createLines.push(`${z} = document.createTextNode(${this.emitInComponent($,"value")});`);this._createLines.push(`${w}.appendChild(${z});`)}}else if($){let U=this.emitNode($);if(U!=null)this._createLines.push(`${w}.appendChild(${U});`)}},u._claimAutoWire=function(w){if(!this._pendingAutoWire||!this._autoEventHandlers?.size)return!1;return this._pendingAutoWire=!1,this._autoWireEl=w,this._autoWireExplicit=new Set,!0},u._emitAutoWire=function(w,D){if(!D)return;for(let[$,U]of this._autoEventHandlers)if(!this._autoWireExplicit.has($))this._createLines.push(`${w}.addEventListener('${$}', (e) => __batch(() => ${this._self}.${U}(e)));`);this._autoWireEl=null,this._autoWireExplicit=null},u._bindInheritedTarget=function(w,D){if(!this._inheritsTag||this._factoryMode||this._inheritsTargetBound)return;if(w!==this._inheritsTag)return;this._inheritsTargetBound=!0,this._createLines.push(`this._inheritedEl = ${D};`),this._createLines.push("this._applyRestToInheritedEl();")},u.emitTag=function(w,D,$,U){let R=this.newElementVar(),z=y1.has(w)||this._svgDepth>0;if(z)this._createLines.push(`${R} = document.createElementNS('${S2}', '${w}');`);else this._createLines.push(`${R} = document.createElement('${w}');`);if(U)this._createLines.push(`${R}.id = '${U}';`);if(this._bindInheritedTarget(w,R),this._componentName&&this._elementCount===1&&!this._factoryMode&&!this.options.skipDataPart)this._createLines.push(`${R}.setAttribute('data-part', '${this._componentName}');`);let M=this._claimAutoWire(R),F=this._pendingClassArgs,H=this._pendingClassEl;if(D.length>0)this._pendingClassArgs=[`'${D.join(" ")}'`],this._pendingClassEl=R;if(w==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(R,$),w==="svg")this._svgDepth--;if(D.length>0){if(this._pendingClassArgs.length===1)if(z)this._createLines.push(`${R}.setAttribute('class', '${D.join(" ")}');`);else this._createLines.push(`${R}.className = '${D.join(" ")}';`);else{let K=this._pendingClassArgs.join(", ");if(z)this._pushEffect(`${R}.setAttribute('class', __clsx(${K}));`);else this._pushEffect(`${R}.className = __clsx(${K});`)}this._pendingClassArgs=F,this._pendingClassEl=H}return this._emitAutoWire(R,M),R},u.emitDynamicTag=function(w,D,$,U,R){let z=this.newElementVar();if(y1.has(w)||this._svgDepth>0)this._createLines.push(`${z} = document.createElementNS('${S2}', '${w}');`);else this._createLines.push(`${z} = document.createElement('${w}');`);if(R)this._createLines.push(`${z}.id = '${R}';`);this._bindInheritedTarget(w,z);let M=this._claimAutoWire(z),F=[...U||[],...D.map((W)=>this.emitInComponent(W,"value"))],H=this._pendingClassArgs,K=this._pendingClassEl;if(this._pendingClassArgs=F,this._pendingClassEl=z,w==="svg")this._svgDepth=(this._svgDepth||0)+1;if(this.appendChildren(z,$),w==="svg")this._svgDepth--;if(this._pendingClassArgs.length>0){let W=this._pendingClassArgs.join(", ");if(y1.has(w)||this._svgDepth>0)this._pushEffect(`${z}.setAttribute('class', __clsx(${W}));`);else this._pushEffect(`${z}.className = __clsx(${W});`)}return this._pendingClassArgs=H,this._pendingClassEl=K,this._emitAutoWire(z,M),z},u.emitAttributes=function(w,D){let $=d5(D.slice(1));for(let U=1;U<D.length;U++){let[,R,z]=D[U];if(this.is(R,".")&&R[1]==="this"){let M=R[2];if(this._autoWireExplicit&&this._autoWireEl===w)this._autoWireExplicit.add(M);if(typeof z==="string"&&this.componentMembers?.has(z))this._createLines.push(`${w}.addEventListener('${M}', (e) => __batch(() => ${this._self}.${z}(e)));`);else{let F=this.emitInComponent(z,"value");this._createLines.push(`${w}.addEventListener('${M}', (e) => __batch(() => (${F})(e)));`)}continue}if(typeof R==="string"||R instanceof String){if(R.startsWith('"')&&R.endsWith('"'))R=R.slice(1,-1);if(R==="class"||R==="className"){let F=this.emitInComponent(z,"value");if(this._pendingClassArgs&&this._pendingClassEl===w)this._pendingClassArgs.push(F);else if(this.hasReactiveDeps(z))if(this._svgDepth>0)this._pushEffect(`${w}.setAttribute('class', __clsx(${F}));`);else this._pushEffect(`${w}.className = __clsx(${F});`);else if(this._svgDepth>0)this._createLines.push(`${w}.setAttribute('class', ${F});`);else this._createLines.push(`${w}.className = ${F};`);continue}if(R==="__transition__"){let F=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`this._t = "${F}";`);continue}if(R==="ref"){let F=String(z).replace(/^["']|["']$/g,"");this._createLines.push(`${this._self}.${F} = ${w};`);continue}if(R.startsWith(Y3)&&R.endsWith(Z3)){let F=R.slice(Y3.length,-Z3.length),H=this.emitInComponent(z,"value"),K,W;if(F==="checked")K="change",W="e.target.checked";else K="input",W=$==="number"||$==="range"?"e.target.valueAsNumber":"e.target.value";this._pushEffect(`${w}.${F} = ${H};`);let O=`${H} = ${W}`,Q=!this.isSimpleAssignable(z)&&this.findRootReactiveMember(z);if(Q)O+=`; ${this._self}.${Q}.touch?.()`;this._createLines.push(`${w}.addEventListener('${K}', (e) => { ${O}; });`);continue}let M=this.emitInComponent(z,"value");if((R==="value"||R==="checked")&&this.hasReactiveDeps(z)){this._pushEffect(`${w}.${R} = ${M};`);continue}if(R==="innerHTML"||R==="textContent"||R==="innerText")if(this.hasReactiveDeps(z))this._pushEffect(`${w}.${R} = ${M};`);else this._createLines.push(`${w}.${R} = ${M};`);else if(x5.has(R))if(this.hasReactiveDeps(z))this._pushEffect(`${w}.toggleAttribute('${R}', !!${M});`);else this._createLines.push(`if (${M}) ${w}.setAttribute('${R}', '');`);else if(this.hasReactiveDeps(z))if(Array.isArray(z)&&z[0]==="presence")this._pushEffect(`{ const __v = ${M}; __v == null ? ${w}.removeAttribute('${R}') : ${w}.setAttribute('${R}', __v); }`);else this._pushEffect(`${w}.setAttribute('${R}', ${M});`);else if(Array.isArray(z)&&z[0]==="presence")this._createLines.push(`{ const __v = ${M}; if (__v != null) ${w}.setAttribute('${R}', __v); }`);else this._createLines.push(`${w}.setAttribute('${R}', ${M});`)}}},u.emitTemplateBlock=function(w){if(!Array.isArray(w)||w[0]!=="block"){let z=this.emitNode(w);if(z!=null)return z;let M=this.newElementVar("empty");return this._createLines.push(`${M} = document.createComment('');`),M}let D=w.slice(1);if(D.length===0){let z=this.newElementVar("empty");return this._createLines.push(`${z} = document.createComment('');`),z}let $=D.reduce((z,M)=>z+(this._isRenderBinding(M)?0:1),0);if($===0){for(let M of D)this.emitNode(M);let z=this.newElementVar("empty");return this._createLines.push(`${z} = document.createComment('');`),z}if($===1){let z=null;for(let M of D){let F=this.emitNode(M);if(F!=null)z=F}return z}let U=this.newElementVar("frag");this._createLines.push(`${U} = document.createDocumentFragment();`);let R=[];for(let z of D){let M=this.emitNode(z);if(M==null)continue;this._createLines.push(`${U}.appendChild(${M});`),R.push(M)}return this._fragChildren.set(U,R),U},u.emitConditional=function(w){if(this._pendingAutoWire=!1,w.length>4){let Y=w[w.length-1];for(let J=w.length-2;J>=3;J--)Y=[...w[J],Y];w=[w[0],w[1],w[2],Y]}let[,D,$,U]=w,R=this.newElementVar("anchor");this._createLines.push(`${R} = document.createComment('if');`);let z=this.emitInComponent(D,"value"),M=this._loopVarStack.map((Y)=>`${Y.itemVar}, ${Y.indexVar}`).join(", "),F=M?`, ${M}`:"",H=this.newBlockVar();this.emitConditionBranch(H,$);let K=null;if(U)K=this.newBlockVar(),this.emitConditionBranch(K,U);let W=[];W.push(`// Conditional: ${H}${K?" / "+K:""}`),W.push("{"),W.push(` const anchor = ${R};`),W.push(" let currentBlock = null;"),W.push(" let showing = null;");let O=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",Q=this._factoryMode?"}, {skipRegister: true}));":"});";if(W.push(` ${O}`),W.push(` const show = !!(${z});`),W.push(` const want = show ? 'then' : ${U?"'else'":"null"};`),W.push(" if (want === showing) return;"),W.push(""),W.push(" if (currentBlock) {"),W.push(" const leaving = currentBlock;"),W.push(" if (leaving._t) { __transition(leaving._first, leaving._t, 'leave', () => leaving.d(true)); }"),W.push(" else { leaving.d(true); }"),W.push(" currentBlock = null;"),W.push(" }"),W.push(" showing = want;"),W.push(""),W.push(" if (want === 'then') {"),W.push(` currentBlock = ${H}(${this._self}${F});`),W.push(" currentBlock.c();"),W.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),W.push(` currentBlock.p(${this._self}${F});`),W.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),W.push(" }"),U)W.push(" if (want === 'else') {"),W.push(` currentBlock = ${K}(${this._self}${F});`),W.push(" currentBlock.c();"),W.push(" if (anchor.parentNode) currentBlock.m(anchor.parentNode, anchor.nextSibling);"),W.push(` currentBlock.p(${this._self}${F});`),W.push(" if (currentBlock._t) __transition(currentBlock._first, currentBlock._t, 'enter');"),W.push(" }");if(W.push(` ${Q}`),this._factoryMode)W.push(" disposers.push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } });");else W.push(" { const __cur = globalThis.__ripComponent?.__getCurrentComponent?.(); if (__cur) (__cur._disposers ??= []).push(() => { if (currentBlock) { currentBlock.d(true); currentBlock = null; } }); }");return W.push("}"),this._setupLines.push(W.join(`
|
|
1053
|
+
`)),R},u.emitConditionBranch=function(w,D){let $=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set,this._renderLocalScope=new Set;let U=this.emitTemplateBlock(D),R=this._createLines,z=this._setupLines,M=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope]=$;let F=this._loopVarStack.map((K)=>`${K.itemVar}, ${K.indexVar}`).join(", "),H=F?`, ${F}`:"";this.emitBlockFactory(w,`ctx${H}`,U,R,z,M)},u.emitBlockFactory=function(w,D,$,U,R,z,M){let F=[];if(F.push(`function ${w}(${D}) {`),z.size>0)F.push(` let ${[...z].join(", ")};`);let H=R.length>0;if(H)F.push(" let disposers = [];");if(F.push(" let _factoryChildren = [];"),F.push(" return {"),M)F.push(" _s: true,");let K=this._fragChildren.get($),W=K?K[0]:$;F.push(" c() {");for(let O of U)F.push(` ${O}`);if(F.push(` this._first = ${W};`),F.push(" },"),F.push(" m(target, anchor) {"),K)for(let O of K)F.push(` if (target) target.insertBefore(${O}, anchor);`);else F.push(` if (target) target.insertBefore(${$}, anchor);`);if(F.push(" },"),F.push(` p(${D}) {`),H){F.push(" disposers.forEach(d => d());"),F.push(" disposers = [];");for(let O of R)F.push(` ${O}`)}if(F.push(" },"),F.push(" d(detaching) {"),F.push(" for (const __c of _factoryChildren) { try { __c.unmount?.({removeDOM: false}); } catch (__e) { console.error('[Rip] factory child unmount error:', __e); } }"),F.push(" _factoryChildren = [];"),H)F.push(" disposers.forEach(d => d());");if(K)for(let O of K)F.push(` if (detaching && ${O}) ${O}.remove();`);else F.push(` if (detaching && ${$}) ${$}.remove();`);F.push(" }"),F.push(" };"),F.push("}"),this._blockFactories.push(F.join(`
|
|
1054
|
+
`))},u.emitTemplateLoop=function(w){this._pendingAutoWire=!1;let[D,$,U,R,z,M]=w,F=this.newBlockVar(),H=this.newElementVar("anchor");this._createLines.push(`${H} = document.createComment('for');`);let K=Array.isArray($)?$:[$],W=K[0],O=K[1]||null;if(!O){let x=new Set(this._loopVarStack.flatMap((y)=>[y.itemVar,y.indexVar]));x.add(W),this._collectBodyBindings(M,x);for(let y of["i","j","k","l","m","n"])if(!x.has(y)){O=y;break}O=O||`__rip_idx${this._loopVarStack.length}`}let Q=this.emitInComponent(U,"value"),Y=W;if(this.is(M,"block")&&M.length>1){let x=M[1];if(Array.isArray(x))for(let y of x){if(this.is(y,"object"))for(let m=1;m<y.length;m++){let[l1,E]=y[m];if(l1==="key"){Y=this.emit(E,"value");break}}if(Y!==W)break}}let J=[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope];this._createLines=[],this._setupLines=[],this._factoryMode=!0,this._factoryVars=new Set,this._renderLocalScope=new Set;let Z=this._loopVarStack.map((x)=>`${x.itemVar}, ${x.indexVar}`).join(", "),q=Z?`, ${Z}`:"",G=this.hasReactiveDeps(U);this._loopVarStack.push({itemVar:W,indexVar:O,reactiveSource:G});let P=this.emitTemplateBlock(M);this._loopVarStack.pop();let L=this._createLines,I=this._setupLines,e=this._factoryVars;[this._createLines,this._setupLines,this._factoryMode,this._factoryVars,this._renderLocalScope]=J;let p=I.length===0,N=`ctx, ${W}, ${O}${q}`;this.emitBlockFactory(F,N,P,L,I,e,p);let u1=Y!==W?`(${W}, ${O}) => ${Y}`:"null",b=Z?`, ${Z}`:"",B=[];B.push(`// Loop: ${F}`),B.push("{"),B.push(" const __s = { blocks: [], keys: [] };");let T=this._factoryMode?"disposers.push(__effect(() => {":"__effect(() => {",k=this._factoryMode?"}, {skipRegister: true}));":"});";if(B.push(` ${T}`),B.push(` __reconcile(${H}, __s, ${Q}, ${this._self}, ${F}, ${u1}${b});`),B.push(` ${k}`),this._factoryMode)B.push(" disposers.push(() => { for (const __b of __s.blocks) { try { __b.d(true); } catch {} } __s.blocks = []; __s.keys = []; __s.items = []; });");else B.push(" { const __cur = globalThis.__ripComponent?.__getCurrentComponent?.(); if (__cur) (__cur._disposers ??= []).push(() => { for (const __b of __s.blocks) { try { __b.d(true); } catch {} } __s.blocks = []; __s.keys = []; __s.items = []; }); }");return B.push("}"),this._setupLines.push(B.join(`
|
|
1055
|
+
`)),H},u.emitChildComponent=function(w,D){this._pendingAutoWire=!1;let $=this.newElementVar("inst"),U=this.newElementVar("el"),{propsCode:R,reactiveProps:z,eventBindings:M,childrenSetupLines:F}=this.buildComponentProps(D),H=this._self;if(this._createLines.push(`{ const __prev = __pushComponent(${H}); try {`),this._createLines.push("try {"),this._createLines.push(`${$} = new ${w}(${R});`),this._createLines.push(`if (${$} && ${$}._initFailed) {`),this._createLines.push(` try { ${$}.unmount({removeDOM: false}); } catch (__ue) { console.error('[Rip] partial-init unmount error:', __ue); }`),this._createLines.push(` ${$} = null;`),this._createLines.push(` ${U} = document.createComment('rip:child-init-failed: ${w}');`),this._createLines.push("} else {"),this._createLines.push(` { const __cprev = __pushComponent(${$}); try {`),this._createLines.push(` ${U} = ${$}._root = ${$}._create();`),this._createLines.push(" } finally { __popComponent(__cprev); } }"),this._factoryMode)this._createLines.push(` _factoryChildren.push(${$});`);else this._createLines.push(` (${H}._children || (${H}._children = [])).push(${$});`);this._createLines.push("}"),this._createLines.push("} catch (__childErr) {"),this._createLines.push(` console.error('[Rip] ${w} construction failed:', __childErr);`),this._createLines.push(` if (${$}) { try { ${$}.unmount({removeDOM: false}); } catch (__ue) { console.error('[Rip] partial-child unmount error:', __ue); } }`),this._createLines.push(` ${$} = null;`),this._createLines.push(` ${U} = document.createComment('rip:child-error: ${w}');`),this._createLines.push("}"),this._createLines.push("} finally { __popComponent(__prev); } }");for(let{event:K,value:W}of M){let O=this.emitInComponent(W,"value");this._createLines.push(`if (${$}) ${U}.addEventListener('${K}', (e) => __batch(() => (${O})(e)));`)}this._setupLines.push(`if (${$} && !${$}._isSetup) { ${$}._isSetup = true; const __cprev = __pushComponent(${$}); try { try { if (${$}.beforeMount) ${$}.beforeMount(); if (${$}._setup) ${$}._setup(); if (${$}.mounted) ${$}.mounted(); } catch (__e) { __handleComponentError(__e, ${$}); } } finally { __popComponent(__cprev); } }`);for(let{key:K,valueCode:W}of z)this._pushEffect(`if (${$}) { if (${$}.${K} && typeof ${$}.${K} === 'object' && 'value' in ${$}.${K}) ${$}.${K}.value = ${W}; else if (${$}._setRestProp) ${$}._setRestProp('${K}', ${W}); }`);for(let K of F)this._setupLines.push(K);return U},u.buildComponentProps=function(w){let D=[],$=[],U=[],R=null,z=[],M=(O,Q)=>{if(O.startsWith("@")){U.push({event:O.slice(1).split(".")[0],value:Q});return}if(this.reactiveMembers&&(typeof Q==="string"&&this.reactiveMembers.has(Q)||Array.isArray(Q)&&Q[0]==="."&&Q[1]==="this"&&typeof Q[2]==="string"&&this.reactiveMembers.has(Q[2]))){let J=typeof Q==="string"?Q:Q[2];D.push(`${O}: ${this._self}.${J}`)}else{let J=this.emitInComponent(Q,"value");if(D.push(`${O}: ${J}`),this.hasReactiveDeps(Q))$.push({key:O,valueCode:J})}},F=(O)=>{for(let Q=1;Q<O.length;Q++){let[,Y,J]=O[Q];if(typeof Y==="string")M(Y,J);else if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")U.push({event:Y[2],value:J})}},H=/^[a-zA-Z_$][\w$]*$/,K=(O)=>typeof O==="string"&&H.test(O);for(let O of w)if(this.is(O,"object"))F(O);else if(K(O))M(O,"true");else if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let Q=O[2];if(Q){if(this.is(Q,"block")){let Y=[];for(let J of Q.slice(1))if(this.is(J,"object"))F(J);else Y.push(J);Q=Y.length>0?["block",...Y]:null}if(Q){let Y=this._createLines,J=this._setupLines;this._createLines=[],this._setupLines=[],R=this.emitTemplateBlock(Q);let Z=this._createLines,q=this._setupLines;this._createLines=Y,this._setupLines=J;for(let G of Z)this._createLines.push(G);z.push(...q),D.push(`children: ${R}`)}}}else if(O&&!R){let Q=this.newTextVar(),Y=this.emitInComponent(O,"value");if(this.hasReactiveDeps(O)){this._createLines.push(`${Q} = document.createTextNode('');`);let J=`${Q}.data = ${Y};`,Z=this._factoryMode?`disposers.push(__effect(() => { ${J} }, {skipRegister: true}));`:`__effect(() => { ${J} });`;z.push(Z)}else this._createLines.push(`${Q} = document.createTextNode(${Y});`);R=Q,D.push(`children: ${R}`)}return{propsCode:D.length>0?`{ ${D.join(", ")} }`:"{}",reactiveProps:$,eventBindings:U,childrenSetupLines:z}},u.hasReactiveDeps=function(w){if(typeof w==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(w));if(!Array.isArray(w))return!1;if(w[0]==="."&&w[1]==="this"&&typeof w[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(w[2]));if(w[0]==="."&&this._rootsAtThis(w[1]))return!0;if((w[0]==="."||w[0]==="[]")&&this._rootsAtReactiveLoopVar(w))return!0;if(Array.isArray(w[0])&&w[0][0]==="."&&w[0][1]==="this"){let D=l(w[0][2]);if(D&&this.componentMembers?.has(D))return!0}for(let D of w)if(this.hasReactiveDeps(D))return!0;return!1},u._collectBodyBindings=function(w,D){if(!Array.isArray(w))return;let $=w[0];if($==="for-in"||$==="for-of"||$==="for-as"){let U=w[1],R=Array.isArray(U)?U:[U];for(let z of R)if(typeof z==="string")D.add(z)}else if($==="="&&h(w[1]))D.add(w[1]);for(let U=1;U<w.length;U++)this._collectBodyBindings(w[U],D)},u.isSimpleAssignable=function(w){if(typeof w==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(w));if(Array.isArray(w)&&w[0]==="."&&w[1]==="this"&&typeof w[2]==="string")return!!(this.reactiveMembers&&this.reactiveMembers.has(w[2]));return!1},u.findRootReactiveMember=function(w){if(typeof w==="string")return this.reactiveMembers?.has(w)?w:null;if(!Array.isArray(w))return null;if(w[0]==="."&&w[1]==="this"&&typeof w[2]==="string")return this.reactiveMembers?.has(w[2])?w[2]:null;if(w[0]==="."||w[0]==="[]")return this.findRootReactiveMember(w[1]);return null},u._rootsAtThis=function(w){if(typeof w==="string")return w==="this";if(!Array.isArray(w)||w[0]!==".")return!1;return this._rootsAtThis(w[1])},u._rootsAtReactiveLoopVar=function(w){if(typeof w==="string"){if(!this._loopVarStack||this._loopVarStack.length===0)return!1;for(let D=this._loopVarStack.length-1;D>=0;D--){let $=this._loopVarStack[D];if($.itemVar===w)return!!$.reactiveSource}return!1}if(!Array.isArray(w))return!1;if(w[0]==="."||w[0]==="[]")return this._rootsAtReactiveLoopVar(w[1]);return!1},u.getComponentRuntime=function(){return`
|
|
910
1056
|
// ============================================================================
|
|
911
1057
|
// Rip Component Runtime
|
|
912
1058
|
// ============================================================================
|
|
@@ -914,8 +1060,21 @@ ${_1}return ${X.join(`
|
|
|
914
1060
|
let __currentComponent = null;
|
|
915
1061
|
|
|
916
1062
|
function __pushComponent(component) {
|
|
917
|
-
component
|
|
1063
|
+
// The component stack tracks the currently-active scope (so __effect
|
|
1064
|
+
// and friends can find it). Parent assignment happens ONCE — on the
|
|
1065
|
+
// first push that has a non-self predecessor. Later pushes (mount,
|
|
1066
|
+
// beforeMount, factory re-entry) preserve the existing chain.
|
|
1067
|
+
//
|
|
1068
|
+
// Without the "set once" guard, the renderer's careful threading of
|
|
1069
|
+
// outer-layout -> inner-layout -> page would survive construction
|
|
1070
|
+
// but get clobbered the moment any of those components got re-pushed
|
|
1071
|
+
// for its own lifecycle — a subsequent push with prev=null would
|
|
1072
|
+
// overwrite the construction-time parent. Cross-layout context
|
|
1073
|
+
// (offer in outer / accept in page) was silently broken.
|
|
918
1074
|
const prev = __currentComponent;
|
|
1075
|
+
if (component && component._parent == null && prev && prev !== component) {
|
|
1076
|
+
component._parent = prev;
|
|
1077
|
+
}
|
|
919
1078
|
__currentComponent = component;
|
|
920
1079
|
return prev;
|
|
921
1080
|
}
|
|
@@ -924,6 +1083,13 @@ function __popComponent(prev) {
|
|
|
924
1083
|
__currentComponent = prev;
|
|
925
1084
|
}
|
|
926
1085
|
|
|
1086
|
+
// Bridge for the reactive runtime in compiler.js. __effect calls this to
|
|
1087
|
+
// auto-register its disposer with the component currently being
|
|
1088
|
+
// constructed/mounted, so the disposer fires on component unmount.
|
|
1089
|
+
function __getCurrentComponent() {
|
|
1090
|
+
return __currentComponent;
|
|
1091
|
+
}
|
|
1092
|
+
|
|
927
1093
|
function setContext(key, value) {
|
|
928
1094
|
if (!__currentComponent) throw new Error('setContext must be called during component initialization');
|
|
929
1095
|
if (!__currentComponent._context) __currentComponent._context = new Map();
|
|
@@ -932,7 +1098,11 @@ function setContext(key, value) {
|
|
|
932
1098
|
|
|
933
1099
|
function getContext(key) {
|
|
934
1100
|
let component = __currentComponent;
|
|
935
|
-
|
|
1101
|
+
// Cycle guard: see __handleComponentError above. A buggy _parent
|
|
1102
|
+
// chain shouldn't hang lookup of a missing key.
|
|
1103
|
+
const visited = new Set();
|
|
1104
|
+
while (component && !visited.has(component)) {
|
|
1105
|
+
visited.add(component);
|
|
936
1106
|
if (component._context && component._context.has(key)) return component._context.get(key);
|
|
937
1107
|
component = component._parent;
|
|
938
1108
|
}
|
|
@@ -941,7 +1111,9 @@ function getContext(key) {
|
|
|
941
1111
|
|
|
942
1112
|
function hasContext(key) {
|
|
943
1113
|
let component = __currentComponent;
|
|
944
|
-
|
|
1114
|
+
const visited = new Set();
|
|
1115
|
+
while (component && !visited.has(component)) {
|
|
1116
|
+
visited.add(component);
|
|
945
1117
|
if (component._context && component._context.has(key)) return true;
|
|
946
1118
|
component = component._parent;
|
|
947
1119
|
}
|
|
@@ -988,6 +1160,7 @@ function __reconcile(anchor, state, items, ctx, factory, keyFn, ...outer) {
|
|
|
988
1160
|
if (!parent) return;
|
|
989
1161
|
|
|
990
1162
|
const oldKeys = state.keys;
|
|
1163
|
+
const oldItems = state.items || [];
|
|
991
1164
|
const oldBlocks = state.blocks;
|
|
992
1165
|
const oldLen = oldKeys.length;
|
|
993
1166
|
const newLen = items.length;
|
|
@@ -1009,14 +1182,24 @@ function __reconcile(anchor, state, items, ctx, factory, keyFn, ...outer) {
|
|
|
1009
1182
|
parent.insertBefore(frag, anchor);
|
|
1010
1183
|
}
|
|
1011
1184
|
state.keys = hasKeyFn ? newKeys : items.slice();
|
|
1185
|
+
state.items = items.slice();
|
|
1012
1186
|
state.blocks = newBlocks;
|
|
1013
1187
|
return;
|
|
1014
1188
|
}
|
|
1015
1189
|
|
|
1016
|
-
// Phase 1: prefix scan — skip p()
|
|
1190
|
+
// Phase 1: prefix scan — skip p() ONLY when key AND item identity
|
|
1191
|
+
// match. With a custom keyFn, a stable key can be reused across
|
|
1192
|
+
// different item references (e.g. when the user replaces an item
|
|
1193
|
+
// object with a new one that has the same id but different fields);
|
|
1194
|
+
// skipping p() in that case would leave the block displaying stale
|
|
1195
|
+
// data. Reference identity guards this.
|
|
1017
1196
|
let start = 0;
|
|
1018
1197
|
const minLen = oldLen < newLen ? oldLen : newLen;
|
|
1019
1198
|
while (start < minLen && oldKeys[start] === newKeys[start]) {
|
|
1199
|
+
if (oldItems[start] !== items[start]) {
|
|
1200
|
+
const block = oldBlocks[start];
|
|
1201
|
+
if (!block._s) block.p(ctx, items[start], start, ...outer);
|
|
1202
|
+
}
|
|
1020
1203
|
newBlocks[start] = oldBlocks[start];
|
|
1021
1204
|
start++;
|
|
1022
1205
|
}
|
|
@@ -1086,6 +1269,7 @@ function __reconcile(anchor, state, items, ctx, factory, keyFn, ...outer) {
|
|
|
1086
1269
|
}
|
|
1087
1270
|
|
|
1088
1271
|
state.keys = hasKeyFn ? newKeys : items.slice();
|
|
1272
|
+
state.items = items.slice();
|
|
1089
1273
|
state.blocks = newBlocks;
|
|
1090
1274
|
}
|
|
1091
1275
|
|
|
@@ -1130,7 +1314,13 @@ function __transition(el, name, dir, done) {
|
|
|
1130
1314
|
|
|
1131
1315
|
function __handleComponentError(error, component) {
|
|
1132
1316
|
let current = component;
|
|
1133
|
-
|
|
1317
|
+
// Defensive cycle guard: if the parent chain is corrupted (e.g. by
|
|
1318
|
+
// a buggy _parent assignment), we still terminate. The fix is in
|
|
1319
|
+
// __pushComponent above, but cycle detection here is cheap belt-
|
|
1320
|
+
// and-suspenders so a bad _parent never hangs the runtime.
|
|
1321
|
+
const visited = new Set();
|
|
1322
|
+
while (current && !visited.has(current)) {
|
|
1323
|
+
visited.add(current);
|
|
1134
1324
|
if (current.onError) {
|
|
1135
1325
|
try { current.onError(error, component); return; } catch (_) {}
|
|
1136
1326
|
}
|
|
@@ -1144,13 +1334,36 @@ class __Component {
|
|
|
1144
1334
|
Object.assign(this, props);
|
|
1145
1335
|
if (!this.app && globalThis.__ripApp) this.app = globalThis.__ripApp;
|
|
1146
1336
|
const prev = __pushComponent(this);
|
|
1147
|
-
try {
|
|
1337
|
+
try {
|
|
1338
|
+
this._init(props);
|
|
1339
|
+
} catch (e) {
|
|
1340
|
+
__popComponent(prev);
|
|
1341
|
+
// Mark this instance as having failed initialization so parent
|
|
1342
|
+
// emit-sites (emitChildComponent) can substitute a placeholder
|
|
1343
|
+
// instead of running _create / _setup on a broken instance.
|
|
1344
|
+
this._initFailed = true;
|
|
1345
|
+
// Run the user's error hook (parent-onError walk). If a boundary
|
|
1346
|
+
// handles it, control returns here and we leave the broken
|
|
1347
|
+
// instance to be handled via _initFailed. If no boundary exists,
|
|
1348
|
+
// __handleComponentError re-throws and the caller's outer
|
|
1349
|
+
// try/catch in emitChildComponent will substitute the same
|
|
1350
|
+
// placeholder.
|
|
1351
|
+
__handleComponentError(e, this);
|
|
1352
|
+
return;
|
|
1353
|
+
}
|
|
1148
1354
|
__popComponent(prev);
|
|
1149
1355
|
}
|
|
1150
1356
|
_init() {}
|
|
1151
1357
|
mount(target) {
|
|
1152
1358
|
if (typeof target === "string") target = document.querySelector(target);
|
|
1153
1359
|
this._target = target;
|
|
1360
|
+
// _create / _setup are wrapped with __pushComponent so any __effect
|
|
1361
|
+
// created inside (reactive attribute bindings, reactive text nodes,
|
|
1362
|
+
// child components, user '~>' effects) auto-registers its disposer
|
|
1363
|
+
// with this component via __getCurrentComponent in the runtime.
|
|
1364
|
+
// Without this wrapping, effects created here lived forever and
|
|
1365
|
+
// their cleanup functions never fired on unmount.
|
|
1366
|
+
const prev = __pushComponent(this);
|
|
1154
1367
|
try {
|
|
1155
1368
|
this._root = this._create();
|
|
1156
1369
|
if (this._root) target.appendChild(this._root);
|
|
@@ -1158,17 +1371,52 @@ class __Component {
|
|
|
1158
1371
|
if (this.mounted) this.mounted();
|
|
1159
1372
|
} catch (error) {
|
|
1160
1373
|
__handleComponentError(error, this);
|
|
1374
|
+
} finally {
|
|
1375
|
+
__popComponent(prev);
|
|
1161
1376
|
}
|
|
1162
1377
|
return this;
|
|
1163
1378
|
}
|
|
1164
|
-
unmount() {
|
|
1379
|
+
unmount({ removeDOM = true } = {}) {
|
|
1380
|
+
// Symmetric to mount: tear down lifecycle hooks, all auto-registered
|
|
1381
|
+
// effect disposers, child components, and (optionally) the DOM.
|
|
1382
|
+
//
|
|
1383
|
+
// beforeUnmount - user hook; runs while signals/effects are still
|
|
1384
|
+
// live, so user code can read final state.
|
|
1385
|
+
// children - cascade BEFORE this instance's disposers so
|
|
1386
|
+
// children can react to parent state during their
|
|
1387
|
+
// own teardown.
|
|
1388
|
+
// _disposers - effect disposers auto-registered by __effect
|
|
1389
|
+
// (cleared eagerly so a re-mount starts fresh).
|
|
1390
|
+
// unmounted - user hook; final notification.
|
|
1391
|
+
// DOM removal - skipped when caller wants to keep the old DOM
|
|
1392
|
+
// visible until replacement (route transitions).
|
|
1393
|
+
//
|
|
1394
|
+
// Idempotent: a child can be unmounted by its enclosing factory's
|
|
1395
|
+
// d(detaching) AND later by the parent's unmount cascade. Without
|
|
1396
|
+
// the _unmounted guard, beforeUnmount/unmounted hooks would re-fire
|
|
1397
|
+
// and cleanup would walk an already-empty graph for no benefit.
|
|
1398
|
+
if (this._unmounted) return;
|
|
1399
|
+
this._unmounted = true;
|
|
1400
|
+
try {
|
|
1401
|
+
if (this.beforeUnmount) this.beforeUnmount();
|
|
1402
|
+
} catch (e) { console.error('[Rip] beforeUnmount error:', e); }
|
|
1165
1403
|
if (this._children) {
|
|
1166
1404
|
for (const child of this._children) {
|
|
1167
|
-
child.unmount();
|
|
1405
|
+
try { child.unmount({ removeDOM }); }
|
|
1406
|
+
catch (e) { console.error('[Rip] child unmount error:', e); }
|
|
1407
|
+
}
|
|
1408
|
+
this._children = null;
|
|
1409
|
+
}
|
|
1410
|
+
if (this._disposers) {
|
|
1411
|
+
for (const d of this._disposers) {
|
|
1412
|
+
try { d(); } catch (e) { console.error('[Rip] effect disposer error:', e); }
|
|
1168
1413
|
}
|
|
1414
|
+
this._disposers = null;
|
|
1169
1415
|
}
|
|
1170
|
-
|
|
1171
|
-
|
|
1416
|
+
try {
|
|
1417
|
+
if (this.unmounted) this.unmounted();
|
|
1418
|
+
} catch (e) { console.error('[Rip] unmounted error:', e); }
|
|
1419
|
+
if (removeDOM && this._root && this._root.parentNode) {
|
|
1172
1420
|
this._root.parentNode.removeChild(this._root);
|
|
1173
1421
|
}
|
|
1174
1422
|
}
|
|
@@ -1184,34 +1432,85 @@ class __Component {
|
|
|
1184
1432
|
|
|
1185
1433
|
// Register on globalThis for runtime deduplication
|
|
1186
1434
|
if (typeof globalThis !== 'undefined') {
|
|
1187
|
-
globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
1435
|
+
globalThis.__ripComponent = { __pushComponent, __popComponent, __getCurrentComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component };
|
|
1188
1436
|
}
|
|
1189
1437
|
|
|
1190
|
-
`}}function
|
|
1191
|
-
|
|
1438
|
+
`}}function W1(f){let _="",i=f<0?-f<<1|1:f<<1;do{let n=i&31;if(i>>>=5,i>0)n|=32;_+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[n]}while(i>0);return _}class I2{constructor(f,_,i=null){this.file=f,this.source=_,this.sourceContent=i,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine(f){while(this.lines.length<=f)this.lines.push([])}addName(f){if(this.nameIndex.has(f))return this.nameIndex.get(f);let _=this.names.length;return this.names.push(f),this.nameIndex.set(f,_),_}addMapping(f,_,i,n,u){if(this.ensureLine(f),this.currentLine!==f)this.prevGenCol=0,this.currentLine=f;if(i==null){this.lines[f].push(W1(_-this.prevGenCol)),this.prevGenCol=_;return}this.mappings.push({genLine:f,genCol:_,origLine:i,origCol:n});let l=W1(_-this.prevGenCol);if(this.prevGenCol=_,l+=W1(0),l+=W1(i-this.prevOrigLine),this.prevOrigLine=i,l+=W1(n-this.prevOrigCol),this.prevOrigCol=n,u!=null){let c=this.addName(u);l+=W1(c-this.prevNameIdx),this.prevNameIdx=c}this.lines[f].push(l)}toReverseMap(){let f=new Map;for(let _ of this.mappings){if(!f.has(_.origLine))f.set(_.origLine,[]);f.get(_.origLine).push({origCol:_.origCol,genLine:_.genLine,genCol:_.genCol})}return f}toJSON(){let f=this.lines.map((i)=>i.join(",")).join(";"),_={version:3,file:this.file,sources:[this.source],names:this.names,mappings:f};if(this.sourceContent!=null)_.sourcesContent=[this.sourceContent];return JSON.stringify(_)}}function k5(f){let _=[],i=0;while(i<f.length){let n=0,u=0,l;do l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(f[i++]),n|=(l&31)<<u,u+=5;while(l&32);_.push(n&1?-(n>>1):n>>1)}return _}var p5=`
|
|
1439
|
+
;
|
|
1440
|
+
`,e5=2;function u0(f){let _=/\n?\/\/# sourceMappingURL=data:application\/json(?:;charset=[^;,]+)?;base64,([A-Za-z0-9+/=]+)\s*$/,i=f.match(_);if(!i)return{js:f,mapJSON:null};let n;try{let u=atob(i[1]),l=new Uint8Array(u.length);for(let c=0;c<u.length;c++)l[c]=u.charCodeAt(c);n=new TextDecoder().decode(l)}catch{return{js:f.slice(0,i.index),mapJSON:null}}return{js:f.slice(0,i.index),mapJSON:n}}function f0(f){let _=0;for(let i=0;i<f.length;i++)if(f.charCodeAt(i)===10)_++;return _}function l0(f){let _=f.split(";"),i=[],n=0,u=0,l=0,c=0;for(let h of _){let A=[],w=0;if(h.length>0)for(let D of h.split(",")){if(D.length===0)continue;let $=k5(D);if(w+=$[0],$.length===1)A.push({genCol:w});else{n+=$[1],u+=$[2],l+=$[3];let U={genCol:w,src:n,origLine:u,origCol:l};if($.length>=5)c+=$[4],U.name=c;A.push(U)}}i.push(A)}return i}function _0(f){let _=0,i=0,n=0,u=0,l=0,c=[];for(let h of f){_=0;let A=[];for(let w of h){if(w.src==null)A.push(W1(w.genCol-_));else{let D=W1(w.genCol-_);if(D+=W1(w.src-i),D+=W1(w.origLine-n),D+=W1(w.origCol-u),w.name!=null)D+=W1(w.name-l),l=w.name;i=w.src,n=w.origLine,u=w.origCol,A.push(D)}_=w.genCol}c.push(A.join(","))}return c.join(";")}function i0(f){let _=f.map((H)=>{if(H.mapJSON!==void 0)return{js:H.js,mapJSON:H.mapJSON};return u0(H.js)}),i=_.some((H)=>H.mapJSON),n=_.map((H)=>H.js).join(p5);if(!i)return{js:n,mapJSON:null};let u=[],l=[],c=new Map,h=[],A=new Map;function w(H,K){if(c.has(H))return c.get(H);let W=u.length;return u.push(H),l.push(K??null),c.set(H,W),W}function D(H){if(A.has(H))return A.get(H);let K=h.length;return h.push(H),A.set(H,K),K}let $=[],U=0;for(let H=0;H<_.length;H++){let K=_[H],W={lineOffset:U,srcRemap:[],nameRemap:[],perLineSegs:null};if(K.mapJSON){let Y;try{Y=JSON.parse(K.mapJSON)}catch{Y=null}if(Y&&typeof Y.mappings==="string"){let J=Y.sources||[],Z=Y.sourcesContent||[];W.srcRemap=J.map((G,P)=>w(G,Z[P]));let q=Y.names||[];W.nameRemap=q.map((G)=>D(G)),W.perLineSegs=l0(Y.mappings)}}$.push(W);let O=f0(K.js),Q=H<_.length-1?e5:0;U+=O+Q}let R=U+1,z=Array(R).fill(null).map(()=>[]);for(let H of $){if(!H.perLineSegs)continue;for(let K=0;K<H.perLineSegs.length;K++){let W=H.lineOffset+K;if(W>=z.length)while(z.length<=W)z.push([]);for(let O of H.perLineSegs[K])if(O.src==null)z[W].push({genCol:O.genCol});else{let Q={genCol:O.genCol,src:H.srcRemap[O.src],origLine:O.origLine,origCol:O.origCol};if(O.name!=null)Q.name=H.nameRemap[O.name];z[W].push(Q)}}}let M=_0(z);return{js:n,mapJSON:JSON.stringify({version:3,sources:u,sourcesContent:l,names:h,mappings:M})}}function n0(f){if(typeof Buffer<"u")return Buffer.from(f,"utf8").toString("base64");let _=new TextEncoder().encode(f),i="";for(let n=0;n<_.length;n++)i+=String.fromCharCode(_[n]);return btoa(i)}function J3(f){let{js:_,mapJSON:i}=i0(f);if(!i)return _;let n=n0(i);return _+`
|
|
1441
|
+
//# sourceMappingURL=data:application/json;base64,`+n+`
|
|
1442
|
+
`}function L1(){return`// rip:stdlib:begin
|
|
1443
|
+
globalThis.abort ??= (msg) => { if (msg) console.error(msg); process.exit(1); };
|
|
1444
|
+
globalThis.assert ??= (v, msg) => { if (!v) throw new Error(msg || "Assertion failed"); };
|
|
1445
|
+
globalThis.exit ??= (code) => process.exit(code || 0);
|
|
1446
|
+
globalThis.kind ??= (v) => v != null ? (v.constructor?.name || Object.prototype.toString.call(v).slice(8, -1)).toLowerCase() : String(v);
|
|
1447
|
+
globalThis.noop ??= () => {};
|
|
1448
|
+
globalThis.p ??= console.log;
|
|
1449
|
+
globalThis.pp ??= (v) => { console.dir(v, { depth: null, colors: true }); return v; };
|
|
1450
|
+
globalThis.pj ??= (v) => { console.log(JSON.stringify(v, null, 2)); return v; };
|
|
1451
|
+
globalThis.pr ??= (() => {
|
|
1452
|
+
const BARE = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
1453
|
+
const esc = (s, q) => s.replace(/\\\\/g, "\\\\\\\\").replace(/\\n/g, "\\\\n").replace(/\\r/g, "\\\\r").replace(/\\t/g, "\\\\t").replace(new RegExp(q, 'g'), "\\\\" + q);
|
|
1454
|
+
const qs = (s) => !s.includes("'") ? "'" + esc(s, "'") + "'" : !s.includes('"') ? '"' + esc(s, '"').split("#{").join("\\\\#{") + '"' : "'" + esc(s, "'") + "'";
|
|
1455
|
+
const ks = (k) => { if (typeof k === 'symbol') { const n = Symbol.keyFor(k); return n && BARE.test(n) ? ':' + n : qs(String(k)); } return BARE.test(k) ? k : qs(k); };
|
|
1456
|
+
const fmt = (v, d) => {
|
|
1457
|
+
if (v === null) return 'null';
|
|
1458
|
+
if (v === undefined) return 'undefined';
|
|
1459
|
+
const t = typeof v;
|
|
1460
|
+
if (t === 'number' || t === 'boolean') return String(v);
|
|
1461
|
+
if (t === 'string') return qs(v);
|
|
1462
|
+
if (t === 'symbol') { const n = Symbol.keyFor(v); return n && BARE.test(n) ? ':' + n : null; }
|
|
1463
|
+
if (Array.isArray(v)) {
|
|
1464
|
+
if (v.length === 0) return '[]';
|
|
1465
|
+
const pad = ' '.repeat(d + 1), end = ' '.repeat(d);
|
|
1466
|
+
return '[\\n' + pad + v.map(x => fmt(x, d + 1) ?? 'null').join('\\n' + pad) + '\\n' + end + ']';
|
|
1467
|
+
}
|
|
1468
|
+
if (t === 'object') {
|
|
1469
|
+
const proto = Object.getPrototypeOf(v);
|
|
1470
|
+
if (proto !== Object.prototype && proto !== null) return null;
|
|
1471
|
+
const keys = Object.keys(v);
|
|
1472
|
+
if (keys.length === 0) return '{}';
|
|
1473
|
+
const pad = ' '.repeat(d + 1), end = ' '.repeat(d);
|
|
1474
|
+
return '{\\n' + pad + keys.map(k => ks(k) + ': ' + (fmt(v[k], d + 1) ?? 'null')).join('\\n' + pad) + '\\n' + end + '}';
|
|
1475
|
+
}
|
|
1476
|
+
return null;
|
|
1477
|
+
};
|
|
1478
|
+
return (v) => { const s = fmt(v, 0); s !== null ? console.log(s) : console.dir(v, { depth: null, colors: true }); return v; };
|
|
1479
|
+
})();
|
|
1480
|
+
globalThis.raise ??= (a, b) => { throw (b !== undefined ? new a(b) : new Error(a)); };
|
|
1481
|
+
globalThis.rand ??= (a, b) => b !== undefined ? (a > b && ([a, b] = [b, a]), Math.floor(Math.random() * (b - a + 1) + a)) : a ? Math.floor(Math.random() * a) : Math.random();
|
|
1482
|
+
globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
1483
|
+
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
1484
|
+
globalThis.warn ??= console.warn;
|
|
1485
|
+
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
1486
|
+
// rip:stdlib:end
|
|
1487
|
+
`}class $1 extends Error{constructor(f,{code:_=null,file:i=null,line:n=null,column:u=null,length:l=1,source:c=null,suggestion:h=null,phase:A=null}={}){super(f);this.name="RipError",this.code=_,this.file=i,this.line=n,this.column=u,this.length=l,this.source=c,this.suggestion=h,this.phase=A}static fromLexer(f,_,i){let n=f.location||{};return new $1(f.message,{code:"E_SYNTAX",file:i,line:n.first_line??null,column:n.first_column??null,length:n.last_column!=null&&n.first_column!=null?n.last_column-n.first_column+1:1,source:_,phase:"lexer"})}static fromParser(f,_,i){let n=f.hash||{},u=n.loc||{},l=n.line??u.r??null,c=u.first_column??u.c??null,h=null;if(n.expected?.length){if(h=`Expected ${n.expected.slice(0,5).map((U)=>U.replace(/'/g,"")).join(", ")}`,n.expected.length>5)h+=`, ... (${n.expected.length} total)`}let A=n.token||"token",w=n.text?` near '${n.text}'`:"",D=`Unexpected ${A}${w}`;return new $1(D,{code:"E_PARSE",file:i,line:l,column:c,length:n.text?.length||1,source:_,suggestion:h,phase:"parser"})}static fromSExpr(f,_,i,n,u){let l=_?.loc||{};return new $1(f,{code:"E_CODEGEN",file:n,line:l.r??null,column:l.c??null,length:l.n??1,source:i,suggestion:u,phase:"codegen"})}get locationString(){let f=[];if(this.file)f.push(this.file);if(this.line!=null)f.push(`${this.line+1}:${(this.column??0)+1}`);return f.join(":")}format({color:f=!0}={}){let _=f?{red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",dim:"\x1B[2m",bold:"\x1B[1m",reset:"\x1B[0m"}:{red:"",yellow:"",cyan:"",dim:"",bold:"",reset:""},i=[],n=this.locationString,u=n?`${_.cyan}${n}${_.reset} `:"";i.push(`${u}${_.red}${_.bold}error${_.reset}${_.bold}: ${this.message}${_.reset}`);let l=this._snippet();if(l){i.push("");for(let c of l)if(c.type==="source")i.push(`${_.dim}${c.gutter}${_.reset}${c.text}`);else if(c.type==="caret")i.push(`${_.dim}${c.gutter}${_.reset}${_.red}${_.bold}${c.text}${_.reset}`)}if(this.suggestion)i.push(""),i.push(`${_.yellow}hint${_.reset}: ${this.suggestion}`);return i.join(`
|
|
1488
|
+
`)}formatHTML(){let f=[];f.push('<div class="rip-error">'),f.push("<style>"),f.push('.rip-error { font-family: ui-monospace, "SF Mono", Menlo, Monaco, monospace; font-size: 13px; line-height: 1.5; padding: 16px 20px; background: #1e1e2e; color: #cdd6f4; border-radius: 8px; overflow-x: auto; }'),f.push(".rip-error .re-header { color: #f38ba8; font-weight: 600; }"),f.push(".rip-error .re-loc { color: #89b4fa; }"),f.push(".rip-error .re-gutter { color: #585b70; user-select: none; }"),f.push(".rip-error .re-caret { color: #f38ba8; font-weight: 700; }"),f.push(".rip-error .re-hint { color: #f9e2af; }"),f.push(".rip-error .re-snippet { margin: 8px 0; }"),f.push("</style>");let _=this.locationString,i=_?`<span class="re-loc">${N1(_)}</span> `:"";f.push(`<div class="re-header">${i}error: ${N1(this.message)}</div>`);let n=this._snippet();if(n){f.push('<pre class="re-snippet">');for(let u of n)if(u.type==="source")f.push(`<span class="re-gutter">${N1(u.gutter)}</span>${N1(u.text)}`);else if(u.type==="caret")f.push(`<span class="re-gutter">${N1(u.gutter)}</span><span class="re-caret">${N1(u.text)}</span>`);f.push("</pre>")}if(this.suggestion)f.push(`<div class="re-hint">hint: ${N1(this.suggestion)}</div>`);return f.push("</div>"),f.join(`
|
|
1192
1489
|
`)}_snippet(){if(this.source==null||this.line==null)return null;let f=this.source.split(`
|
|
1193
|
-
`),
|
|
1194
|
-
`)>=0){let
|
|
1195
|
-
`).map((
|
|
1196
|
-
`)}let
|
|
1197
|
-
`))return" ".repeat(
|
|
1198
|
-
`))
|
|
1199
|
-
`).map((
|
|
1200
|
-
`)}else
|
|
1201
|
-
`)){
|
|
1202
|
-
`)}class
|
|
1203
|
-
`).length}}
|
|
1204
|
-
`)
|
|
1205
|
-
`))
|
|
1206
|
-
`),
|
|
1207
|
-
`),
|
|
1208
|
-
|
|
1209
|
-
|
|
1490
|
+
`),_=this.line;if(_<0||_>=f.length)return null;let i=2,n=Math.max(0,_-i),u=Math.min(f.length-1,_+i),l=String(u+1).length,c=[];for(let h=n;h<=u;h++){let w=` ${String(h+1).padStart(l)} │ `;if(c.push({type:"source",gutter:w,text:f[h]}),h===_&&this.column!=null){let D=" ".repeat(this.column),$=Math.max(1,Math.min(this.length||1,f[h].length-this.column)),U="^".repeat($),R=" ".repeat(l+2)+"│ ";c.push({type:"caret",gutter:R,text:`${D}${U}`})}}return c}}function c0(f){return f instanceof SyntaxError&&f.location!=null}function h0(f){return!(f instanceof SyntaxError)&&f.hash!=null}function C1(f,_,i){if(f instanceof $1){if(i&&!f.file)f.file=i;if(_&&!f.source)f.source=_;return f}if(c0(f))return $1.fromLexer(f,_,i);if(h0(f))return $1.fromParser(f,_,i);return new $1(f.message,{file:i,source:_,phase:"unknown"})}function b1(f,{source:_,file:i,color:n=!0}={}){return(f instanceof $1?f:C1(f,_,i)).format({color:n})}function B2(f,{source:_,file:i}={}){return(f instanceof $1?f:C1(f,_,i)).formatHTML()}function N1(f){return f.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var D2=null;var w1=(f,_)=>f instanceof String?f[_]:void 0,v=(f)=>f instanceof String?f.valueOf():f,w0=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]),A0=new Set(["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try","throw"]),D0=new Set(["true","false","null","undefined","Infinity","NaN"]);function U2(f){if(!Array.isArray(f)||f.length===0)return!1;let _=f[0]?.valueOf?.()??f[0];if(w0.has(_))return!0;return f.length<=4&&!f.some(Array.isArray)}function x1(f){if(Array.isArray(f))return"(???)";if(typeof f==="number")return String(f);if(f===null)return"null";if(f==="")return'""';let _=String(f);if(_[0]==="/"&&_.indexOf(`
|
|
1491
|
+
`)>=0){let i=_.match(/\/([gimsuvy]*)$/),n=i?i[1]:"",u=_.slice(1);return u=n?u.slice(0,-n.length-1):u.slice(0,-1),`"/${u.split(`
|
|
1492
|
+
`).map((h)=>h.replace(/#.*$/,"").trim()).join("")}/${n}"`}return _}function K1(f,_=0,i=!1){if(!Array.isArray(f))return x1(f);if(i&&f[0]==="program"){let w=f[1],$=[Array.isArray(w)?"(program":"(program "+x1(w)],U=Array.isArray(w)?1:2;for(let R=U;R<f.length;R++){let z=K1(f[R],2,!1);$.push(z[0]==="("?" "+z:z)}return $.push(")"),$.join(`
|
|
1493
|
+
`)}let n=f[0];if(U2(f)&&f.slice(1).every((w)=>!Array.isArray(w)||U2(w))){let D=`(${f.map(($)=>Array.isArray($)?K1($,0,!1):x1($)).join(" ")})`;if(!D.includes(`
|
|
1494
|
+
`))return" ".repeat(_)+D}let l=" ".repeat(_),c;if(Array.isArray(n)){if(c=K1(n,0,!1),c.includes(`
|
|
1495
|
+
`))c=c.split(`
|
|
1496
|
+
`).map((D,$)=>$===0?D:" ".repeat(_+2)+D).join(`
|
|
1497
|
+
`)}else c=x1(n);let h=[`${l}(${c}`],A=n==="block";for(let w=1;w<f.length;w++){let D=f[w];if(!Array.isArray(D))h[h.length-1]+=" "+x1(D);else{let $=U2(D)&&D.every((U)=>!Array.isArray(U)||U2(U));if(!A&&$){let U=K1(D,0,!1);if(!U.includes(`
|
|
1498
|
+
`)){h[h.length-1]+=" "+U;continue}}h.push(K1(D,_+2,!1))}}return h[h.length-1]+=")",h.join(`
|
|
1499
|
+
`)}class D1{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"emitProgram","&&":"emitLogicalAnd","||":"emitLogicalOr","+":"emitBinaryOp","-":"emitBinaryOp","*":"emitBinaryOp","/":"emitBinaryOp","%":"emitBinaryOp","**":"emitBinaryOp","==":"emitBinaryOp","===":"emitBinaryOp","!=":"emitBinaryOp","!==":"emitBinaryOp","<":"emitBinaryOp",">":"emitBinaryOp","<=":"emitBinaryOp",">=":"emitBinaryOp","??":"emitBinaryOp","&":"emitBinaryOp","|":"emitBinaryOp","^":"emitBinaryOp","<<":"emitBinaryOp",">>":"emitBinaryOp",">>>":"emitBinaryOp","%%":"emitModulo","%%=":"emitModuloAssign","//":"emitFloorDiv","//=":"emitFloorDivAssign","..":"emitRange","=":"emitAssignment","+=":"emitAssignment","-=":"emitAssignment","*=":"emitAssignment","/=":"emitAssignment","%=":"emitAssignment","**=":"emitAssignment","&&=":"emitAssignment","||=":"emitAssignment","??=":"emitAssignment","?=":"emitAssignment","&=":"emitAssignment","|=":"emitAssignment","^=":"emitAssignment","<<=":"emitAssignment",">>=":"emitAssignment",">>>=":"emitAssignment","...":"emitRange","!":"emitNot","~":"emitBitwiseNot","++":"emitIncDec","--":"emitIncDec","=~":"emitRegexMatch",instanceof:"emitInstanceof",in:"emitIn",of:"emitOf",typeof:"emitTypeof",delete:"emitDelete",new:"emitNew",array:"emitArray",object:"emitObject","map-literal":"emitMap",block:"emitBlock",".":"emitPropertyAccess","?.":"emitOptionalProperty","[]":"emitIndexAccess",optindex:"emitOptIndex",optcall:"emitOptCall","regex-index":"emitRegexIndex",".{}":"emitPick","?.{}":"emitOptPick",def:"emitDef","->":"emitThinArrow","=>":"emitFatArrow",return:"emitReturn",state:"emitState",computed:"emitComputed",readonly:"emitReadonly",effect:"emitEffect",break:"emitBreak",continue:"emitContinue","?":"emitExistential",presence:"emitPresence","?:":"emitTernary","|>":"emitPipe",loop:"emitLoop","loop-n":"emitLoopN",await:"emitAwait",yield:"emitYield","yield-from":"emitYieldFrom",if:"emitIf","for-in":"emitForIn","for-of":"emitForOf","for-as":"emitForAs",while:"emitWhile",try:"emitTry",throw:"emitThrow",control:"emitControl",switch:"emitSwitch",when:"emitWhen",comprehension:"emitComprehension","object-comprehension":"emitObjectComprehension",class:"emitClass",super:"emitSuper",component:"emitComponent",render:"emitRender",offer:"emitOffer",accept:"emitAccept",enum:"emitEnum",schema:"emitSchema",import:"emitImport",export:"emitExport","export-default":"emitExportDefault","export-all":"emitExportAll","export-from":"emitExportFrom","do-iife":"emitDoIIFE",regex:"emitRegex","tagged-template":"emitTaggedTemplate",str:"emitString",symbol:"emitSymbol"};constructor(f={}){if(this.options=f,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=f.dataSection,this.sourceMap=f.sourceMap||null,f.reactiveVars)this.reactiveVars=new Set(f.reactiveVars)}error(f,_,{suggestion:i}={}){throw $1.fromSExpr(f,_,this.options.source,this.options.filename,i)}compile(f){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(f);let _=this.emit(f);if(this.sourceMap)this.buildMappings();return _}buildMappings(){if(this._importEntries){let _=0;for(let i of this._importEntries){if(i.loc)this.sourceMap.addMapping(_,0,i.loc.r,i.loc.c);if(i.sexpr&&i.loc)this.recordSubMappings(i.code,i.sexpr,_);_+=i.code.split(`
|
|
1500
|
+
`).length}}if(!this._stmtEntries)return;let f=this._preambleLines;for(let _ of this._stmtEntries){if(_.loc)this.sourceMap.addMapping(f,0,_.loc.r,_.loc.c);if(_.sexpr&&_.loc)this.recordSubMappings(_.code,_.sexpr,f);f+=_.code.split(`
|
|
1501
|
+
`).length}}static _isColInsideString(f,_){let i=!1,n="",u=0;for(let l=0;l<f.length&&l<_;l++){let c=f[l];if(i){if(c==="\\"){l++;continue}if(n==="`"&&c==="$"&&f[l+1]==="{"){u=1,i=!1,l++;continue}if(c===n)i=!1}else if(u>0){if(c==="{")u++;else if(c==="}"){if(u--,u===0)i=!0,n="`"}else if(c==='"'||c==="'"||c==="`")i=!0,n=c}else if(c==='"'||c==="'"||c==="`")i=!0,n=c}return i}recordSubMappings(f,_,i){let n=_.loc?_.loc.r:0,u=[];this.collectSubExprs(_,u);let l=f.split(`
|
|
1502
|
+
`),c=[0];for(let R=0;R<f.length;R++)if(f.charCodeAt(R)===10)c.push(R+1);let h=(R)=>{let z=0,M=c.length-1;while(z<=M){let F=z+M>>1;if(c[F]<=R)z=F+1;else M=F-1}return M},A=new Set,w=new Map,D=(R)=>{if(w.has(R))return w.get(R);let z=l[R],M=z&&z.match(/\/\/ @rip-src:(\d+)\s*$/),F=M?parseInt(M[1],10):null;return w.set(R,F),F},$=new Map,U=(R)=>{if($.has(R))return $.get(R);let z=l[R],M=[];if(z&&/\)\s*(\{|=>)\s*$/.test(z)){let F=/\b[a-zA-Z_$][\w$]*\??\s*:\s*\{/g,H;while((H=F.exec(z))!==null){let K=H.index+H[0].length-1;if(D1._isColInsideString(z,K))continue;let W=1,O=K+1,Q=!1,Y="";while(O<z.length&&W>0){let J=z[O];if(Q){if(J==="\\"){O+=2;continue}if(J===Y)Q=!1}else if(J==='"'||J==="'"||J==="`")Q=!0,Y=J;else if(J==="{")W++;else if(J==="}")W--;O++}M.push([K,O]),F.lastIndex=O}}return $.set(R,M),M};for(let{name:R,origLine:z,origCol:M}of u){let F=R.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),H=new RegExp("\\b"+F+"\\b","g"),K,W=null,O=1/0,Q=null,Y=1/0,J=z-n;while((K=H.exec(f))!==null){let q=h(K.index),G=K.index-c[q],P=l[q],L=D(q),I=L!=null&&L===z;if(P&&D1._isColInsideString(P,G)&&!I)continue;let e=U(q);if(e.length&&e.some(([u1,b])=>G>=u1&&G<b))continue;let p=i+q,N=I?Math.abs(G-M):Math.abs(q-J)*1e4+Math.abs(G-M);if(N<O)O=N,W={genLine:p,genCol:G};let X=p+":"+G;if(!A.has(X)&&N<Y)Y=N,Q={genLine:p,genCol:G}}let Z=Q||W;if(Z)this.sourceMap.addMapping(Z.genLine,Z.genCol,z,M),A.add(Z.genLine+":"+Z.genCol)}}collectSubExprs(f,_){if(!Array.isArray(f))return;let i=f[0];if(Array.isArray(i)||i!=null&&typeof i!=="string"&&!(i instanceof String)){for(let u=0;u<f.length;u++)if(Array.isArray(f[u]))this.collectSubExprs(f[u],_);if(Array.isArray(f._anchors))for(let u of f._anchors)_.push(u);return}if(f.loc){i=v(i);let u=null,l=f.loc.c;if(i==="."){if(typeof f[2]==="string"){if(u=f[2],typeof f[1]==="string")l=f.loc.c+f[1].length+1}}else if(typeof i==="string"&&/^[=+\-*/%<>!&|?~^]|^\.{1,3}$|^def$|^class$|^state$|^computed$|^readonly$|^for-/.test(i)){if(typeof f[1]==="string"&&/^[a-zA-Z_$]/.test(f[1])){if(u=f[1],i==="...")l=f.loc.c+3}}else if(typeof i==="string"&&/^[a-zA-Z_$]/.test(i))u=i;if(u)_.push({name:u,origLine:f.loc.r,origCol:l});if((i==="->"||i==="=>")&&Array.isArray(f[2])&&v(f[2][0])==="block"){let c=f[2];for(let h=1;h<c.length;h++){let A=c[h],w=typeof A==="string"||A instanceof String?v(A):null;if(w&&/^[a-zA-Z_$][\w$]*$/.test(w)&&!A.loc){let D=this._scanForIdentAfter(w,f.loc);if(D)_.push(D)}}}}if(Array.isArray(f._anchors))for(let u of f._anchors)_.push(u);let n=i==="->"||i==="=>"?2:1;for(let u=n;u<f.length;u++)if(Array.isArray(f[u]))this.collectSubExprs(f[u],_)}_scanForIdentAfter(f,_){let i=this.options&&this.options.source;if(!i||!_)return null;let n=this._sourceLinesCache||(this._sourceLinesCache=i.split(`
|
|
1503
|
+
`)),u=new RegExp("\\b"+f.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g"),l=_.r,c=_.c;for(let h=l;h<Math.min(n.length,l+20);h++){let A=n[h];if(!A)continue;u.lastIndex=h===l?c:0;let w;while((w=u.exec(A))!==null){if(D1._isColInsideString(A,w.index))continue;return{name:f,origLine:h,origCol:w.index}}}return null}collectProgramVariables(f){if(!Array.isArray(f))return;let[_,...i]=f;if(_=v(_),Array.isArray(_)){f.forEach((n)=>this.collectProgramVariables(n));return}if(_==="export"||_==="export-default"||_==="export-all"||_==="export-from")return;if(_==="state"||_==="computed"){let[n]=i,u=v(n)??n;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(u);return}if(_==="readonly"){let[n]=i,u=v(n)??n;if(!this.readonlyVars)this.readonlyVars=new Set;this.readonlyVars.add(u);return}if(_==="component")return;if(_==="enum")return;if(D1.ASSIGNMENT_OPS.has(_)){let[n,u]=i;if(typeof n==="string"||n instanceof String){let l=v(n);if(!this.reactiveVars?.has(l)&&!this.readonlyVars?.has(l))this.programVars.add(l)}else if(this.is(n,"array"))this.collectVarsFromArray(n,this.programVars);else if(this.is(n,"object"))this.collectVarsFromObject(n,this.programVars);this.collectProgramVariables(u);return}if(_==="for-in"||_==="for-of"||_==="for-as"){i.slice(1).forEach((n)=>this.collectProgramVariables(n));return}if(_==="def"||_==="->"||_==="=>"||_==="effect")return;if(_==="if"){let[n,u,l]=i;if(this.collectProgramVariables(n),this.collectProgramVariables(u),l)this.collectProgramVariables(l);return}if(_==="try"){if(this.collectProgramVariables(i[0]),i.length>=2&&Array.isArray(i[1])&&i[1].length===2&&i[1][0]!=="block"){let[n,u]=i[1];if(n&&this.is(n,"object"))n.slice(1).forEach((l)=>{if(Array.isArray(l)&&l.length===2&&typeof l[1]==="string")this.programVars.add(l[1])});else if(n&&this.is(n,"array"))n.slice(1).forEach((l)=>{if(typeof l==="string")this.programVars.add(l)});this.collectProgramVariables(u)}if(i.length===3)this.collectProgramVariables(i[2]);else if(i.length===2&&(!Array.isArray(i[1])||i[1][0]==="block"))this.collectProgramVariables(i[1]);return}i.forEach((n)=>this.collectProgramVariables(n))}collectFunctionVariables(f){let _=new Set,i=(n)=>{if(!Array.isArray(n))return;let[u,...l]=n;if(u=v(u),Array.isArray(u)){n.forEach((c)=>i(c));return}if(D1.ASSIGNMENT_OPS.has(u)){let[c,h]=l;if(typeof c==="string"||c instanceof String)_.add(v(c));else if(this.is(c,"array"))this.collectVarsFromArray(c,_);else if(this.is(c,"object"))this.collectVarsFromObject(c,_);i(h);return}if(u==="for-in"||u==="for-of"||u==="for-as"){l.slice(1).forEach(i);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;if(u==="try"){if(i(l[0]),l.length>=2&&Array.isArray(l[1])&&l[1].length===2&&l[1][0]!=="block"){let[c,h]=l[1];if(c&&this.is(c,"object"))c.slice(1).forEach((A)=>{if(Array.isArray(A)&&A.length===2&&typeof A[1]==="string")_.add(A[1])});else if(c&&this.is(c,"array"))c.slice(1).forEach((A)=>{if(typeof A==="string")_.add(A)});i(h)}if(l.length===3)i(l[2]);else if(l.length===2&&(!Array.isArray(l[1])||l[1][0]==="block"))i(l[1]);return}l.forEach((c)=>i(c))};return i(f),_}collectTypedLocals(f){let _=new Map,i=(n)=>{if(!Array.isArray(n))return;let[u,...l]=n;if(u=v(u),Array.isArray(u)){n.forEach(i);return}if(D1.ASSIGNMENT_OPS.has(u)){let[c,h]=l;if(c instanceof String&&c.type&&!_.has(v(c)))_.set(v(c),c.type);i(h);return}if(u==="def"||u==="->"||u==="=>"||u==="effect")return;l.forEach(i)};return i(f),_}emit(f,_="statement"){if(f instanceof String){if(w1(f,"bang")===!0)return`await ${v(f)}()`;if(w1(f,"optional"))return`(${v(f)} != null)`;if(w1(f,"delimiter")==="///"&&w1(f,"heregex")){let h=v(f),A=h.match(/^\/(.*)\/([gimsuvy]*)$/s);if(A){let[,w,D]=A;return`/${this.processHeregex(w)}/${D}`}return h}let c=w1(f,"quote");if(c){let h=v(f);if(c==='"""'||c==="'''"){let w=this.extractStringContent(f);return w=w.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${w}\``}if(h[0]===c)return h;let A=h.slice(1,-1);return`${c}${A}${c}`}f=v(f)}if(typeof f==="string"){if(f.startsWith('"')||f.startsWith("'")||f.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",f);let c=f.slice(1,-1);if(c.includes(`
|
|
1504
|
+
`))return`\`${c.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let h=c.includes("'")&&!c.includes('"')?'"':"'",A=c.replace(new RegExp(h,"g"),`\\${h}`);return`${h}${A}${h}`}if(this.reactiveVars?.has(f)&&!this.suppressReactiveUnwrap)return`${f}.value`;return f}if(typeof f==="number")return String(f);if(f===null||f===void 0)return"null";if(!Array.isArray(f))this.error(`Invalid s-expression: ${JSON.stringify(f)}`,f);let[i,...n]=f,u=w1(i,"bang");i=v(i);let l=D1.GENERATORS[i];if(l)return this[l](i,n,_,f);if(typeof i==="string"&&!i.startsWith('"')&&!i.startsWith("'")){if(D1.NUMBER_START_RE.test(i))return i;if(i==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${this._emitArgs(n)})`;let c=this._tryPostfixCall(i,n,_);if(c)return c;let h=u===!0,A=`${this.emit(i,"value")}(${this._emitArgs(n)})`;return h?`await ${A}`:A}if(Array.isArray(i)&&typeof i[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","return","throw"].includes(i[0]))return`(${f.map((h)=>this.emit(h,"value")).join(", ")})`}if(Array.isArray(i)){if(i[0]==="."&&(i[2]==="new"||v(i[2])==="new")){let D=i[1],$=this.emit(D,"value");return`new ${Array.isArray(D)?`(${$})`:$}(${this._emitArgs(n)})`}let c=this._tryPostfixCall(i,n,_);if(c)return c;let h=!1,A;if(i[0]==="."&&w1(i[2],"bang")===!0){h=!0;let[D,$]=i.slice(1),U=this.emit(D,"value");A=`${D1.NUMBER_LITERAL_RE.test(U)||(this.is(D,"object")||this.is(D,"await")||this.is(D,"yield"))||/^(await|yield)\s/.test(U)?`(${U})`:U}.${v($)}`}else A=this.emit(i,"value");let w=`${A}(${this._emitArgs(n)})`;return h?`await ${w}`:w}this.error(`Unknown s-expression type: ${i}`,f)}emitProgram(f,_,i,n){let u="",l=[],c=[];for(let R of _){if(!Array.isArray(R)){c.push(R);continue}if(R[0]==="import")l.push(R);else c.push(R)}let h=["def","class","if","for-in","for-of","for-as","while","loop","switch","try"],A=c.map((R,z)=>{let M=c.length===1&&l.length===0,F=this.is(R,"object"),H=F&&R.length===2&&Array.isArray(R[1])&&Array.isArray(R[1][2])&&R[1][2][0]==="comprehension",K=this.is(R,"comprehension")||this.is(R,"object-comprehension")||this.is(R,"do-iife"),W=this.programVars.size===0,O=M&&F&&W&&!K&&!H,Y=z===c.length-1&&K,J;if(O)J=`(${this.emit(R,"value")})`;else if(Y)J=this.emit(R,"value");else J=this.emit(R,"statement");if(J&&!J.endsWith(";")){let q=Array.isArray(R)?R[0]:null;if(!h.includes(q)||!J.endsWith("}"))J+=";"}let Z=Array.isArray(R)?R.loc:null;return{code:J,loc:Z,sexpr:Array.isArray(R)?R:null}}),w=A.map((R)=>R.code).join(`
|
|
1505
|
+
`),D=!1;if(l.length>0){let R=l.map((z)=>{return{code:this.addSemicolon(z,this.emit(z,"statement")),loc:Array.isArray(z)?z.loc:null,sexpr:Array.isArray(z)?z:null}});this._importEntries=R,u+=R.map((z)=>z.code).join(`
|
|
1506
|
+
`),D=!0}if(this.programVars.size>0){let R=this.programVars.has("_");if(R)this.programVars.delete("_");if(this.programVars.size>0){let z=Array.from(this.programVars).sort().join(", ");if(z){if(D)u+=`
|
|
1507
|
+
`;u+=`let ${z};
|
|
1508
|
+
`,D=!0}}if(R){if(D)u+=`
|
|
1210
1509
|
`;u+=`var _;
|
|
1211
|
-
`,
|
|
1212
|
-
`;u+=
|
|
1213
|
-
`,
|
|
1214
|
-
`,
|
|
1510
|
+
`,D=!0}}let $=this.options.skipPreamble,U=this.options.skipRuntimes;if(!$){if(D)u+=`
|
|
1511
|
+
`;u+=L1(),D=!0;let R=U?"var":"const";if(this.helpers.has("slice"))u+=`${R} slice = [].slice;
|
|
1512
|
+
`,D=!0;if(this.helpers.has("modulo"))u+=`${R} modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
1513
|
+
`,D=!0;if(this.helpers.has("toMatchable"))u+=`${R} toMatchable = (v, allowNewlines) => {
|
|
1215
1514
|
`,u+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
1216
1515
|
`,u+=` if (v == null) return "";
|
|
1217
1516
|
`,u+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
@@ -1225,172 +1524,175 @@ if (typeof globalThis !== 'undefined') {
|
|
|
1225
1524
|
`,u+=` }
|
|
1226
1525
|
`,u+=` return "";
|
|
1227
1526
|
`,u+=`};
|
|
1228
|
-
`,
|
|
1527
|
+
`,D=!0}if(this.usesReactivity&&!$){if(U)u+=`var { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
1229
1528
|
`;else if(typeof globalThis<"u"&&globalThis.__rip)u+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
1230
|
-
`;else u+=this.getReactiveRuntime();
|
|
1529
|
+
`;else u+=this.getReactiveRuntime();D=!0}if(this.usesTemplates&&!$){if(U)u+=`var { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
1231
1530
|
`;else if(typeof globalThis<"u"&&globalThis.__ripComponent)u+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __lis, __reconcile, __transition, __handleComponentError, __Component } = globalThis.__ripComponent;
|
|
1232
|
-
`;else u+=this.getComponentRuntime();
|
|
1531
|
+
`;else u+=this.getComponentRuntime();D=!0}if(this.usesSchemas&&!$){if(U)u+=`var { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
1233
1532
|
`;else if(typeof globalThis<"u"&&globalThis.__ripSchema)u+=`const { __schema, SchemaError, __SchemaRegistry, __schemaSetAdapter } = globalThis.__ripSchema;
|
|
1234
|
-
`;else u+=this.getSchemaRuntime();
|
|
1533
|
+
`;else u+=this.getSchemaRuntime();D=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!$)u+=`var DATA;
|
|
1235
1534
|
_setDataSection();
|
|
1236
|
-
`,
|
|
1535
|
+
`,D=!0;if(D&&u.length>0)u+=`
|
|
1237
1536
|
`;if(this._stmtEntries=A,this._preambleLines=u.length===0?0:u.split(`
|
|
1238
|
-
`).length-1,u
|
|
1537
|
+
`).length-1,u+=w,this.dataSection!==null&&this.dataSection!==void 0)u+=`
|
|
1239
1538
|
|
|
1240
1539
|
function _setDataSection() {
|
|
1241
1540
|
DATA = ${JSON.stringify(this.dataSection)};
|
|
1242
|
-
}`;return u}emitBinaryOp(f,l,h,w){if((f==="+"||f==="-")&&l.length===1)return`(${f}${this.emit(l[0],"value")})`;let[u,_]=l;if(f==="*"){let c=u?.valueOf?.()??u;if(typeof c==="string"&&/^["']/.test(c))return`${this.emit(u,"value")}.repeat(${this.emit(_,"value")})`}let D=new Set(["<",">","<=",">="]);if(D.has(f)&&Array.isArray(u)){let c=u[0]?.valueOf?.()??u[0];if(D.has(c)){let A=this.emit(u[1],"value"),$=this.emit(u[2],"value"),R=this.emit(_,"value");return`((${A} ${c} ${$}) && (${$} ${f} ${R}))`}}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.emit(u,"value")} ${f} ${this.emit(_,"value")})`}emitModulo(f,l){let[h,w]=l;return this.helpers.add("modulo"),`modulo(${this.emit(h,"value")}, ${this.emit(w,"value")})`}emitModuloAssign(f,l){let[h,w]=l;this.helpers.add("modulo");let u=this.emit(h,"value"),_=this.emit(w,"value");return`${u} = modulo(${u}, ${_})`}emitFloorDiv(f,l){let[h,w]=l;return`Math.floor(${this.emit(h,"value")} / ${this.emit(w,"value")})`}emitFloorDivAssign(f,l){let[h,w]=l,u=this.emit(h,"value"),_=this.emit(w,"value");return`${u} = Math.floor(${u} / ${_})`}emitAssignment(f,l,h,w){let[u,_]=l,D=f==="?="?"??=":f,c=this._findOptionalInTarget(u);if(c){let H=this.emit(c.guard,"value"),O=this.emit(c.rewritten,"value"),q=this.emit(_,"value");if(h==="value")return`(${H} != null ? (${O} ${D} ${q}) : undefined)`;return`if (${H} != null) ${O} ${D} ${q}`}let A=this.is(_,"->")||this.is(_,"=>")||this.is(_,"def");if(u instanceof String&&l1(u,"await")!==void 0&&!A){let H=l1(u,"await")===!0?"!":"&";this.error(`Cannot use ${H} sigil in variable declaration '${m(u)}'`,w)}if(u instanceof String&&l1(u,"await")===!0&&A)this.nextFunctionIsVoid=!0;let $=this.is(u,"array",0),R=this.is(u,"object",0);if($||R){let H=this.emit(_,"value");return R&&h==="statement"?`(${H})`:H}if(Array.isArray(_)&&D==="="&&_[0]==="control"){let[,H,O,q]=_,n=m(H),K=q[0]==="return",Z=this.emit(u,"value"),G=this.emit(O,"value"),J=q.length>1?q[1]:null,N=K?J?`return ${this.emit(J,"value")}`:"return":J?`throw ${this.emit(J,"value")}`:"throw new Error()";if(h==="value"){if(n==="??")return`(() => { const __v = ${G}; if (__v == null) ${N}; return (${Z} = __v); })()`;if(n==="||")return`(() => { const __v = ${G}; if (!__v) ${N}; return (${Z} = __v); })()`;return`(() => { const __v = ${G}; if (__v) ${N}; return (${Z} = __v); })()`}if(n==="??")return`if ((${Z} = ${G}) == null) ${N}`;if(n==="||")return`if (!(${Z} = ${G})) ${N}`;return`if ((${Z} = ${G})) ${N}`}if(this.is(u,"array")){let H=u.slice(1).findIndex((O)=>this.is(O,"...")||O==="...");if(H!==-1&&H<u.length-2){let O=u.slice(1),q=O.slice(H+1),n=q.length;if(n>0){let K=this.emit(_,"value"),G=O.slice(0,H).map((T)=>T===","?"":typeof T==="string"?T:this.emit(T,"value")).join(", "),J=q.map((T)=>T===","?"":typeof T==="string"?T:this.emit(T,"value")).join(", ");this.helpers.add("slice"),O.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let N=O[H],g=this.is(N,"...")?N[1]:null,L=[];if(G)L.push(`[${G}] = ${K}`);if(g)L.push(`[...${g}] = ${K}.slice(${H}, -${n})`);return L.push(`[${J}] = slice.call(${K}, -${n})`),L.join(", ")}}}if(h==="statement"&&f==="="&&Array.isArray(_)&&(_[0]==="||"||_[0]==="&&")&&_.length===3){let[H,O,q]=_;if(this.is(q,"if")&&q.length===3){let[,n,K]=q,Z=Array.isArray(K)&&K.length===1?K[0]:K,G=[H,O,Z],J=this.emit(u,"value"),N=this.emit(n,"value"),g=this.emit(G,"value");return`if (${N}) ${J} = ${g}`}}if(h==="statement"&&f==="="&&Array.isArray(_)&&_.length===3){let[H,O,q]=_,n=Array.isArray(q)&&q.length===1&&(!Array.isArray(q[0])||q[0][0]!=="block");if(H==="if"&&n){let K=Array.isArray(q)&&q.length===1?q[0]:q,Z=this.emit(u,"value"),G=this.unwrapLogical(this.emit(O,"value")),J=this.emit(K,"value");return`if (${G}) ${Z} = ${J}`}}let M;if(u instanceof String&&l1(u,"await")!==void 0)M=m(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))M=`${u}.value`;else M=this.emit(u,"value");let z=this._componentName,F=this._componentTypeParams,W=this._schemaName;if(this.is(_,"component")&&(typeof u==="string"||u instanceof String))this._componentName=m(u),this._componentTypeParams=u.typeParams||"";if(this.is(_,"schema")&&(typeof u==="string"||u instanceof String))this._schemaName=m(u);let Q=this.emit(_,"value");if(this._componentName=z,this._componentTypeParams=F,this._schemaName=W,!(this.is(_,"object")||this.is(_,".{}")||this.is(_,"?.{}")))Q=this.unwrap(Q);let U=h==="value",Y=h==="statement"&&this.is(u,"object");if(U||Y)return`(${M} ${D} ${Q})`;return`${M} ${D} ${Q}`}emitPropertyAccess(f,l,h,w){let[u,_]=l;if(this._atParamMap&&u==="this"){let $=this._atParamMap.get(m(_));if($)return $}let D=this.emit(u,"value"),A=w1.NUMBER_LITERAL_RE.test(D)||D.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${D})`:D;if(l1(_,"await")===!0)return`await ${A}.${m(_)}()`;if(l1(_,"predicate"))return`(${A}.${m(_)} != null)`;return`${A}.${m(_)}`}emitOptionalProperty(f,l){let[h,w]=l;return`${this.emit(h,"value")}?.${w}`}emitPick(f,l,h,w){let[u,..._]=l,D=this.emit(u,"value"),c=this._isSimplePickSource(u),A=c?D:"_",$=_.map(([R,M,z])=>{let F=`${A}.${m(R)}`;if(z!==null&&z!==void 0)F=`(${F} ?? ${this.emit(z,"value")})`;return`${m(M)}: ${F}`}).join(", ");if(c)return`({${$}})`;return`((_) => ({${$}}))(${D})`}emitOptPick(f,l,h,w){let[u,..._]=l,D=this.emit(u,"value"),c=this._isSimplePickSource(u),A=c?D:"_",$=_.map(([R,M,z])=>{let F=`${A}.${m(R)}`;if(z!==null&&z!==void 0)F=`(${F} ?? ${this.emit(z,"value")})`;return`${m(M)}: ${F}`}).join(", ");if(c)return`(${D} == null ? undefined : {${$}})`;return`((_) => _ == null ? undefined : ({${$}}))(${D})`}_isSimplePickSource(f){if(typeof f!=="string")return!1;return f==="this"||f==="@"||/^[A-Za-z_$][\w$]*$/.test(f)}emitRegexIndex(f,l){let[h,w,u]=l;this.helpers.add("toMatchable"),this.programVars.add("_");let _=this.emit(h,"value"),D=this.emit(w,"value"),c=u!==null?this.emit(u,"value"):"0",A=D.includes("/m")?", true":"";return`(_ = toMatchable(${_}${A}).match(${D})) && _[${c}]`}emitIndexAccess(f,l){let[h,w]=l;if(this.is(w,"..")||this.is(w,"...")){let u=w[0]==="..",_=this.emit(h,"value"),[D,c]=w.slice(1),A=(z)=>{if(z===null)return null;let F=m(z)??z;if(typeof F==="number")return F;if(typeof F==="string"&&/^\d+$/.test(F))return+F;if(Array.isArray(z)&&z[0]==="-"&&z.length===2){let W=m(z[1])??z[1];if(typeof W==="number")return-W;if(typeof W==="string"&&/^\d+$/.test(W))return-W}return null},$=(z,F,W)=>{let Q=A(W);if(Q!==null&&Q!==-1)return`${_}.slice(${z}, ${Q+1})`;return`${_}.slice(${z}, +${F} + 1 || 9e9)`};if(D===null&&c===null)return`${_}.slice()`;if(D===null){if(u&&this.is(c,"-",1)&&(m(c[1])??c[1])==1)return`${_}.slice(0)`;let z=this.emit(c,"value");return u?$("0",z,c):`${_}.slice(0, ${z})`}if(c===null)return`${_}.slice(${this.emit(D,"value")})`;let R=this.emit(D,"value");if(u&&this.is(c,"-",1)&&(m(c[1])??c[1])==1)return`${_}.slice(${R})`;let M=this.emit(c,"value");return u?$(R,M,c):`${_}.slice(${R}, ${M})`}if(this.is(w,"-",1)){let u=m(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(h,"value")}.at(-${u})`}return`${this.emit(h,"value")}[${this.unwrap(this.emit(w,"value"))}]`}emitOptIndex(f,l){let[h,w]=l;if(this.is(w,"-",1)){let u=m(w[1])??w[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(h,"value")}?.at(-${u})`}return`${this.emit(h,"value")}?.[${this.emit(w,"value")}]`}emitOptCall(f,l){let[h,...w]=l;return`${this.emit(h,"value")}?.(${w.map((u)=>this.emit(u,"value")).join(", ")})`}emitDef(f,l,h,w){let[u,_,D]=l,c=l1(u,"await")===!0,A=m(u),$=this.emitParamList(_),R=this.emitFunctionBody(D,_,c),M=this.containsAwait(D),z=this.containsYield(D);return`${M?"async ":""}function${z?"*":""} ${A}(${$}) ${R}`}emitThinArrow(f,l,h,w){let[u,_]=l;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(_))u=["it"];let D=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let c=this.emitParamList(u),A=this.emitFunctionBody(_,u,D),$=this.containsAwait(_),R=this.containsYield(_),M=`${$?"async ":""}function${R?"*":""}(${c}) ${A}`;return h==="value"?`(${M})`:M}emitFatArrow(f,l,h,w){let[u,_]=l;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(_))u=["it"];let D=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let c=this.emitParamList(u),$=u.length===1&&typeof u[0]==="string"&&!c.includes("=")&&!c.includes("...")&&!c.includes("[")&&!c.includes("{")?c:`(${c})`,M=this.containsAwait(_)?"async ":"";if(!D){if(this.is(_,"block")&&_.length===2){let F=_[1],W=Array.isArray(F)?F[0]:null;if(W!=="return"&&!T5.has(W)){let Q=this.emit(F,"value");if(Q[0]==="{")Q=`(${Q})`;return`${M}${$} => ${Q}`}}if(!Array.isArray(_)||_[0]!=="block"){let F=this.emit(_,"value");if(F[0]==="{")F=`(${F})`;return`${M}${$} => ${F}`}}let z=this.emitFunctionBody(_,u,D);return`${M}${$} => ${z}`}emitReturn(f,l,h,w){if(l.length===0)return"return";let[u]=l;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))this.error("Cannot return a value from a void function (declared with !)",w);if(this.is(u,"if")){let[,_,D,...c]=u;if(c.length===0){let A=Array.isArray(D)&&D.length===1?D[0]:D;return`if (${this.emit(_,"value")}) return ${this.emit(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,_,D]=u[1],c=Array.isArray(D)&&D.length===1?D[0]:D;return`if (${this.emit(_,"value")}) return ${this.emit(["new",c],"value")}`}return`return ${this.emit(u,"value")}`}emitState(f,l){let[h,w]=l;this.usesReactivity=!0;let u=m(h)??h;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.emit(w,"value")})`}emitComputed(f,l){let[h,w]=l;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=m(h)??h;if(this.reactiveVars.add(u),this.is(w,"block")&&w.length>2)return`const ${u} = __computed(() => ${this.emitFunctionBody(w)})`;return`const ${u} = __computed(() => ${this.emit(w,"value")})`}emitReadonly(f,l){let[h,w]=l;return`const ${m(h)??h} = ${this.emit(w,"value")}`}emitEffect(f,l){let[h,w]=l;this.usesReactivity=!0;let u;if(this.is(w,"block"))u=this.emitFunctionBody(w);else if(this.is(w,"->")||this.is(w,"=>")){let D=this.emit(w,"value");if(h)return`const ${m(h)??this.emit(h,"value")} = __effect(${D})`;return`__effect(${D})`}else u=`{ ${this.emit(w,"value")}; }`;let _=`__effect(() => ${u})`;if(h)return`const ${m(h)??this.emit(h,"value")} = ${_}`;return _}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(f,l){return`(${this.emit(l[0],"value")} != null)`}emitPresence(f,l){return`(${this.emit(l[0],"value")} ? true : undefined)`}emitTernary(f,l,h){let[w,u,_]=l;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)){let c=this.emit(u[1],"value"),A=this.emit(u[2],"value"),$=this.emit(_,"value");return`${c} = (${this.unwrap(this.emit(w,"value"))} ? ${A} : ${$})`}return`(${this.unwrap(this.emit(w,"value"))} ? ${this.emit(u,"value")} : ${this.emit(_,"value")})`}emitPipe(f,l){let[h,w]=l,u=this.emit(h,"value");if(Array.isArray(w)&&w.length>1){let _=w[0];if(Array.isArray(_)||typeof _==="string"&&/^[a-zA-Z_$]/.test(_)){let c=this.emit(_,"value"),A=w.slice(1).map(($)=>this.emit($,"value"));return`${c}(${u}, ${A.join(", ")})`}}return`${this.emit(w,"value")}(${u})`}emitLoop(f,l){return`while (true) ${this.emitLoopBody(l[0])}`}emitLoopN(f,l){let[h,w]=l;return`for (let it = 0; it < ${this.emit(h,"value")}; it++) ${this.emitLoopBody(w)}`}emitAwait(f,l){return`await ${this.emit(l[0],"value")}`}emitYield(f,l){return l.length===0?"yield":`yield ${this.emit(l[0],"value")}`}emitYieldFrom(f,l){return`yield* ${this.emit(l[0],"value")}`}emitIf(f,l,h,w){let[u,_,...D]=l;return h==="value"?this.emitIfAsExpression(u,_,D):this.emitIfAsStatement(u,_,D)}emitForIn(f,l,h,w){let[u,_,D,c,A]=l;if(h==="value"&&this.comprehensionDepth===0){let i=["for-in",u,_,D];return this.emit(["comprehension",A,[i],c?[c]:[]],h)}let $=Array.isArray(u)?u:[u],R=$.length===0,[M,z]=R?["_i",null]:$,F=this.is(M,"array")||this.is(M,"object")?this.emitDestructuringPattern(M):M;if(D&&D!==null){let i=this.emit(_,"value"),U=z||"_i",Y=this.emit(D,"value"),H=this.is(D,"-",1),O=H&&(D[1]==="1"||D[1]===1||m(D[1])==="1"),q=!H&&(D==="1"||D===1||m(D)==="1"),n;if(O)n=`for (let ${U} = ${i}.length - 1; ${U} >= 0; ${U}--) `;else if(q)n=`for (let ${U} = 0; ${U} < ${i}.length; ${U}++) `;else if(H)n=`for (let ${U} = ${i}.length - 1; ${U} >= 0; ${U} += ${Y}) `;else n=`for (let ${U} = 0; ${U} < ${i}.length; ${U} += ${Y}) `;if(this.is(A,"block")){let K=A.slice(1);this.indentLevel++;let Z=[];if(!R)Z.push(`let ${F} = ${i}[${U}];`);if(c)Z.push(`if (${this.emit(c,"value")}) {`),this.indentLevel++,Z.push(...this.formatStatements(K)),this.indentLevel--,Z.push(this.indent()+"}");else Z.push(...K.map((G)=>this.addSemicolon(G,this.emit(G,"statement"))));return this.indentLevel--,n+`{
|
|
1243
|
-
${Z.map((
|
|
1541
|
+
}`;return u}emitBinaryOp(f,_,i,n){if((f==="+"||f==="-")&&_.length===1)return`(${f}${this.emit(_[0],"value")})`;let[u,l]=_;if(f==="*"){let h=u?.valueOf?.()??u;if(typeof h==="string"&&/^["']/.test(h))return`${this.emit(u,"value")}.repeat(${this.emit(l,"value")})`}let c=new Set(["<",">","<=",">="]);if(c.has(f)&&Array.isArray(u)){let h=u[0]?.valueOf?.()??u[0];if(c.has(h)){let A=this.emit(u[1],"value"),w=this.emit(u[2],"value"),D=this.emit(l,"value");return`((${A} ${h} ${w}) && (${w} ${f} ${D}))`}}if(f==="==")f="===";if(f==="!=")f="!==";return`(${this.emit(u,"value")} ${f} ${this.emit(l,"value")})`}emitModulo(f,_){let[i,n]=_;return this.helpers.add("modulo"),`modulo(${this.emit(i,"value")}, ${this.emit(n,"value")})`}emitModuloAssign(f,_){let[i,n]=_;this.helpers.add("modulo");let u=this.emit(i,"value"),l=this.emit(n,"value");return`${u} = modulo(${u}, ${l})`}emitFloorDiv(f,_){let[i,n]=_;return`Math.floor(${this.emit(i,"value")} / ${this.emit(n,"value")})`}emitFloorDivAssign(f,_){let[i,n]=_,u=this.emit(i,"value"),l=this.emit(n,"value");return`${u} = Math.floor(${u} / ${l})`}emitAssignment(f,_,i,n){let[u,l]=_,c=f==="?="?"??=":f;if(this.is(u,"array")||this.is(u,"object"))this._validateBindingPattern(u,n);let h=this._findOptionalInTarget(u);if(h){let K=this.emit(h.guard,"value"),W=this.emit(h.rewritten,"value"),O=this.emit(l,"value");if(i==="value")return`(${K} != null ? (${W} ${c} ${O}) : undefined)`;return`if (${K} != null) ${W} ${c} ${O}`}this.applyVoidMarker(u,l,n);let A=this.is(u,"array",0),w=this.is(u,"object",0);if(A||w){let K=this.emit(l,"value");return w&&i==="statement"?`(${K})`:K}if(Array.isArray(l)&&c==="="&&l[0]==="control"){let[,K,W,O]=l,Q=v(K),Y=O[0]==="return",J=this.emit(u,"value"),Z=this.emit(W,"value"),q=O.length>1?O[1]:null,G=Y?q?`return ${this.emit(q,"value")}`:"return":q?`throw ${this.emit(q,"value")}`:"throw new Error()";if(i==="value"){if(Q==="??")return`(() => { const __v = ${Z}; if (__v == null) ${G}; return (${J} = __v); })()`;if(Q==="||")return`(() => { const __v = ${Z}; if (!__v) ${G}; return (${J} = __v); })()`;return`(() => { const __v = ${Z}; if (__v) ${G}; return (${J} = __v); })()`}if(Q==="??")return`if ((${J} = ${Z}) == null) ${G}`;if(Q==="||")return`if (!(${J} = ${Z})) ${G}`;return`if ((${J} = ${Z})) ${G}`}if(this.is(u,"array")){let K=u.slice(1).findIndex((W)=>this.is(W,"...")||W==="...");if(K!==-1&&K<u.length-2){let W=u.slice(1),O=W.slice(K+1),Q=O.length;if(Q>0){let Y=this.emit(l,"value"),Z=W.slice(0,K).map((I)=>I===","?"":typeof I==="string"?I:this.emit(I,"value")).join(", "),q=O.map((I)=>I===","?"":typeof I==="string"?I:this.emit(I,"value")).join(", ");this.helpers.add("slice"),W.forEach((I)=>{if(I===","||I==="...")return;if(typeof I==="string")this.programVars.add(I);else if(this.is(I,"...")&&typeof I[1]==="string")this.programVars.add(I[1])});let G=W[K],P=this.is(G,"...")?G[1]:null,L=[];if(Z)L.push(`[${Z}] = ${Y}`);if(P)L.push(`[...${P}] = ${Y}.slice(${K}, -${Q})`);return L.push(`[${q}] = slice.call(${Y}, -${Q})`),L.join(", ")}}}if(i==="statement"&&f==="="&&Array.isArray(l)&&(l[0]==="||"||l[0]==="&&")&&l.length===3){let[K,W,O]=l;if(this.is(O,"if")&&O.length===3){let[,Q,Y]=O,J=Array.isArray(Y)&&Y.length===1?Y[0]:Y,Z=[K,W,J],q=this.emit(u,"value"),G=this.emit(Q,"value"),P=this.emit(Z,"value");return`if (${G}) ${q} = ${P}`}}if(i==="statement"&&f==="="&&Array.isArray(l)&&l.length===3){let[K,W,O]=l,Q=Array.isArray(O)&&O.length===1&&(!Array.isArray(O[0])||O[0][0]!=="block");if(K==="if"&&Q){let Y=Array.isArray(O)&&O.length===1?O[0]:O,J=this.emit(u,"value"),Z=this.unwrapLogical(this.emit(W,"value")),q=this.emit(Y,"value");return`if (${Z}) ${J} = ${q}`}}let D;if(u instanceof String&&w1(u,"bang")!==void 0)D=v(u);else if(typeof u==="string"&&this.reactiveVars?.has(u))D=`${u}.value`;else D=this.emit(u,"value");let $=this._componentName,U=this._componentTypeParams,R=this._schemaName;if(this.is(l,"component")&&(typeof u==="string"||u instanceof String))this._componentName=v(u),this._componentTypeParams=u.typeParams||"";if(this.is(l,"schema")&&(typeof u==="string"||u instanceof String))this._schemaName=v(u);let z=this.emit(l,"value");if(this._componentName=$,this._componentTypeParams=U,this._schemaName=R,!(this.is(l,"object")||this.is(l,".{}")||this.is(l,"?.{}")))z=this.unwrap(z);let F=i==="value",H=i==="statement"&&this.is(u,"object");if(F||H)return`(${D} ${c} ${z})`;return`${D} ${c} ${z}`}emitPropertyAccess(f,_,i,n){let[u,l]=_;if(this._atParamMap&&u==="this"){let w=this._atParamMap.get(v(l));if(w)return w}let c=this.emit(u,"value"),A=D1.NUMBER_LITERAL_RE.test(c)||c.startsWith("await ")||(this.is(u,"object")||this.is(u,"yield"))?`(${c})`:c;if(w1(l,"bang")===!0)return`await ${A}.${v(l)}()`;if(w1(l,"optional"))return`(${A}.${v(l)} != null)`;return`${A}.${v(l)}`}emitOptionalProperty(f,_){let[i,n]=_;return`${this.emit(i,"value")}?.${n}`}emitPick(f,_,i,n){let[u,...l]=_,c=this.emit(u,"value"),h=this._isSimplePickSource(u),A=h?c:"_",w=l.map(([D,$,U])=>{let R=`${A}.${v(D)}`;if(U!==null&&U!==void 0)R=`(${R} ?? ${this.emit(U,"value")})`;return`${v($)}: ${R}`}).join(", ");if(h)return`({${w}})`;return`((_) => ({${w}}))(${c})`}emitOptPick(f,_,i,n){let[u,...l]=_,c=this.emit(u,"value"),h=this._isSimplePickSource(u),A=h?c:"_",w=l.map(([D,$,U])=>{let R=`${A}.${v(D)}`;if(U!==null&&U!==void 0)R=`(${R} ?? ${this.emit(U,"value")})`;return`${v($)}: ${R}`}).join(", ");if(h)return`(${c} == null ? undefined : {${w}})`;return`((_) => _ == null ? undefined : ({${w}}))(${c})`}_isSimplePickSource(f){if(typeof f!=="string")return!1;return f==="this"||f==="@"||/^[A-Za-z_$][\w$]*$/.test(f)}emitRegexIndex(f,_){let[i,n,u]=_;this.helpers.add("toMatchable"),this.programVars.add("_");let l=this.emit(i,"value"),c=this.emit(n,"value"),h=u!==null?this.emit(u,"value"):"0",A=c.includes("/m")?", true":"";return`(_ = toMatchable(${l}${A}).match(${c})) && _[${h}]`}emitIndexAccess(f,_){let[i,n]=_;if(this.is(n,"..")||this.is(n,"...")){let u=n[0]==="..",l=this.emit(i,"value"),[c,h]=n.slice(1),A=(U)=>{if(U===null)return null;let R=v(U)??U;if(typeof R==="number")return R;if(typeof R==="string"&&/^\d+$/.test(R))return+R;if(Array.isArray(U)&&U[0]==="-"&&U.length===2){let z=v(U[1])??U[1];if(typeof z==="number")return-z;if(typeof z==="string"&&/^\d+$/.test(z))return-z}return null},w=(U,R,z)=>{let M=A(z);if(M!==null&&M!==-1)return`${l}.slice(${U}, ${M+1})`;return`${l}.slice(${U}, +${R} + 1 || 9e9)`};if(c===null&&h===null)return`${l}.slice()`;if(c===null){if(u&&this.is(h,"-",1)&&(v(h[1])??h[1])==1)return`${l}.slice(0)`;let U=this.emit(h,"value");return u?w("0",U,h):`${l}.slice(0, ${U})`}if(h===null)return`${l}.slice(${this.emit(c,"value")})`;let D=this.emit(c,"value");if(u&&this.is(h,"-",1)&&(v(h[1])??h[1])==1)return`${l}.slice(${D})`;let $=this.emit(h,"value");return u?w(D,$,h):`${l}.slice(${D}, ${$})`}if(this.is(n,"-",1)){let u=v(n[1])??n[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(i,"value")}.at(-${u})`}return`${this.emit(i,"value")}[${this.unwrap(this.emit(n,"value"))}]`}emitOptIndex(f,_){let[i,n]=_;if(this.is(n,"-",1)){let u=v(n[1])??n[1];if(typeof u==="number"||typeof u==="string"&&/^\d+$/.test(u))return`${this.emit(i,"value")}?.at(-${u})`}return`${this.emit(i,"value")}?.[${this.emit(n,"value")}]`}emitOptCall(f,_){let[i,...n]=_;return`${this.emit(i,"value")}?.(${n.map((u)=>this.emit(u,"value")).join(", ")})`}emitDef(f,_,i,n){let[u,l,c]=_,h=w1(u,"bang")===!0,A=v(u),w=this.emitParamList(l),D=this.emitFunctionBody(c,l,h),$=this.containsAwait(c),U=this.containsYield(c);return`${$?"async ":""}function${U?"*":""} ${A}(${w}) ${D}`}emitThinArrow(f,_,i,n){let[u,l]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(l))u=["it"];let c=n.isVoid||!1,h=this.emitParamList(u),A=this.emitFunctionBody(l,u,c),w=this.containsAwait(l),D=this.containsYield(l),$=`${w?"async ":""}function${D?"*":""}(${h}) ${A}`;return i==="value"?`(${$})`:$}emitFatArrow(f,_,i,n){let[u,l]=_;if((!u||Array.isArray(u)&&u.length===0)&&this.containsIt(l))u=["it"];let c=n.isVoid||!1,h=this.emitParamList(u),w=u.length===1&&typeof u[0]==="string"&&!h.includes("=")&&!h.includes("...")&&!h.includes("[")&&!h.includes("{")?h:`(${h})`,$=this.containsAwait(l)?"async ":"";if(!c){if(this.is(l,"block")&&l.length===2){let R=l[1],z=Array.isArray(R)?R[0]:null;if(z!=="return"&&!A0.has(z)){let M=this.emit(R,"value");if(M[0]==="{")M=`(${M})`;return`${$}${w} => ${M}`}}if(!Array.isArray(l)||l[0]!=="block"){let R=this.emit(l,"value");if(R[0]==="{")R=`(${R})`;return`${$}${w} => ${R}`}}let U=this.emitFunctionBody(l,u,c);return`${$}${w} => ${U}`}emitReturn(f,_,i,n){if(_.length===0)return"return";let[u]=_;if(this.sideEffectOnly&&!(this.is(u,"->")||this.is(u,"=>")))this.error("Cannot return a value from a void function (declared with !)",n);if(this.is(u,"if")){let[,l,c,...h]=u;if(h.length===0){let A=Array.isArray(c)&&c.length===1?c[0]:c;return`if (${this.emit(l,"value")}) return ${this.emit(A,"value")}`}}if(this.is(u,"new")&&Array.isArray(u[1])&&u[1][0]==="if"){let[,l,c]=u[1],h=Array.isArray(c)&&c.length===1?c[0]:c;return`if (${this.emit(l,"value")}) return ${this.emit(["new",h],"value")}`}return`return ${this.emit(u,"value")}`}emitState(f,_){let[i,n]=_;this.usesReactivity=!0;let u=v(i)??i;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(u),`const ${u} = __state(${this.emit(n,"value")})`}emitComputed(f,_){let[i,n]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let u=v(i)??i;if(this.reactiveVars.add(u),this.is(n,"block")&&n.length>2)return`const ${u} = __computed(() => ${this.emitFunctionBody(n)})`;return`const ${u} = __computed(() => ${this.emit(n,"value")})`}emitReadonly(f,_){let[i,n]=_;return`const ${v(i)??i} = ${this.emit(n,"value")}`}emitEffect(f,_){let[i,n]=_;this.usesReactivity=!0;let u;if(this.is(n,"block"))u=this.emitFunctionBody(n);else if(this.is(n,"->")||this.is(n,"=>")){let c=this.emit(n,"value");if(i)return`const ${v(i)??this.emit(i,"value")} = __effect(${c})`;return`__effect(${c})`}else u=`{ ${this.emit(n,"value")}; }`;let l=`__effect(() => ${u})`;if(i)return`const ${v(i)??this.emit(i,"value")} = ${l}`;return l}emitBreak(){return"break"}emitContinue(){return"continue"}emitExistential(f,_){return`(${this.emit(_[0],"value")} != null)`}emitPresence(f,_){return`(${this.emit(_[0],"value")} ? true : undefined)`}emitTernary(f,_,i){let[n,u,l]=_;if((u?.[0]?.valueOf?.()??u?.[0])==="="&&Array.isArray(u)&&!u.parenthesized){let h=this.emit(u[1],"value"),A=this.emit(u[2],"value"),w=this.emit(l,"value");return`${h} = (${this.unwrap(this.emit(n,"value"))} ? ${A} : ${w})`}return`(${this.unwrap(this.emit(n,"value"))} ? ${this.emit(u,"value")} : ${this.emit(l,"value")})`}emitPipe(f,_){let[i,n]=_,u=this.emit(i,"value");if(Array.isArray(n)&&n.length>1){let l=n[0];if(Array.isArray(l)||typeof l==="string"&&/^[a-zA-Z_$]/.test(l)){let h=this.emit(l,"value"),A=n.slice(1).map((w)=>this.emit(w,"value"));return`${h}(${u}, ${A.join(", ")})`}}return`${this.emit(n,"value")}(${u})`}emitLoop(f,_){return`while (true) ${this.emitLoopBody(_[0])}`}emitLoopN(f,_){let[i,n]=_;return`for (let it = 0; it < ${this.emit(i,"value")}; it++) ${this.emitLoopBody(n)}`}emitAwait(f,_){return`await ${this.emit(_[0],"value")}`}emitYield(f,_){return _.length===0?"yield":`yield ${this.emit(_[0],"value")}`}emitYieldFrom(f,_){return`yield* ${this.emit(_[0],"value")}`}emitIf(f,_,i,n){let[u,l,...c]=_;return i==="value"?this.emitIfAsExpression(u,l,c):this.emitIfAsStatement(u,l,c)}emitForIn(f,_,i,n){let[u,l,c,h,A]=_;if(i==="value"&&this.comprehensionDepth===0){let F=["for-in",u,l,c];return this.emit(["comprehension",A,[F],h?[h]:[]],i)}let w=Array.isArray(u)?u:[u],D=w.length===0,[$,U]=D?["_i",null]:w,R=this.is($,"array")||this.is($,"object")?this.emitDestructuringPattern($):$;if(c&&c!==null){let F=this.emit(l,"value"),H=U||"_i",K=this.emit(c,"value"),W=this.is(c,"-",1),O=W&&(c[1]==="1"||c[1]===1||v(c[1])==="1"),Q=!W&&(c==="1"||c===1||v(c)==="1"),Y;if(O)Y=`for (let ${H} = ${F}.length - 1; ${H} >= 0; ${H}--) `;else if(Q)Y=`for (let ${H} = 0; ${H} < ${F}.length; ${H}++) `;else if(W)Y=`for (let ${H} = ${F}.length - 1; ${H} >= 0; ${H} += ${K}) `;else Y=`for (let ${H} = 0; ${H} < ${F}.length; ${H} += ${K}) `;if(this.is(A,"block")){let J=A.slice(1);this.indentLevel++;let Z=[];if(!D)Z.push(`let ${R} = ${F}[${H}];`);if(h)Z.push(`if (${this.emit(h,"value")}) {`),this.indentLevel++,Z.push(...this.formatStatements(J)),this.indentLevel--,Z.push(this.indent()+"}");else Z.push(...J.map((q)=>this.addSemicolon(q,this.emit(q,"statement"))));return this.indentLevel--,Y+`{
|
|
1542
|
+
${Z.map((q)=>this.indent()+q).join(`
|
|
1244
1543
|
`)}
|
|
1245
|
-
${this.indent()}}`}if(
|
|
1246
|
-
`,this.indentLevel++,
|
|
1247
|
-
`,
|
|
1248
|
-
`,this.indentLevel++,
|
|
1544
|
+
${this.indent()}}`}if(D)return h?Y+`{ if (${this.emit(h,"value")}) ${this.emit(A,"statement")}; }`:Y+`{ ${this.emit(A,"statement")}; }`;return h?Y+`{ let ${R} = ${F}[${H}]; if (${this.emit(h,"value")}) ${this.emit(A,"statement")}; }`:Y+`{ let ${R} = ${F}[${H}]; ${this.emit(A,"statement")}; }`}if(U){let F=this.emit(l,"value"),H=`for (let ${U} = 0; ${U} < ${F}.length; ${U}++) `;if(this.is(A,"block")){if(H+=`{
|
|
1545
|
+
`,this.indentLevel++,H+=this.indent()+`let ${R} = ${F}[${U}];
|
|
1546
|
+
`,h)H+=this.indent()+`if (${this.unwrap(this.emit(h,"value"))}) {
|
|
1547
|
+
`,this.indentLevel++,H+=this.formatStatements(A.slice(1)).join(`
|
|
1249
1548
|
`)+`
|
|
1250
|
-
`,this.indentLevel--,
|
|
1251
|
-
`;else
|
|
1549
|
+
`,this.indentLevel--,H+=this.indent()+`}
|
|
1550
|
+
`;else H+=this.formatStatements(A.slice(1)).join(`
|
|
1252
1551
|
`)+`
|
|
1253
|
-
`;this.indentLevel--,
|
|
1254
|
-
${
|
|
1552
|
+
`;this.indentLevel--,H+=this.indent()+"}"}else H+=h?`{ let ${R} = ${F}[${U}]; if (${this.unwrap(this.emit(h,"value"))}) ${this.emit(A,"statement")}; }`:`{ let ${R} = ${F}[${U}]; ${this.emit(A,"statement")}; }`;return H}let z=Array.isArray(l)&&l[0];if(z instanceof String)z=v(z);if(z===".."||z==="..."){let F=z==="...",[H,K]=l.slice(1),W=(O)=>typeof O==="number"||typeof O==="string"&&!O.includes("(")||O instanceof String&&!v(O).includes("(")||this.is(O,".");if(W(H)&&W(K)){let O=this.emit(H,"value"),Q=this.emit(K,"value"),Y=F?"<":"<=",J=c?`${R} += ${this.emit(c,"value")}`:`${R}++`,Z=`for (let ${R} = ${O}; ${R} ${Y} ${Q}; ${J}) `;return Z+=h?this.emitLoopBodyWithGuard(A,h):this.emitLoopBody(A),Z}}let M=`for (let ${R} of ${this.emit(l,"value")}) `;return M+=h?this.emitLoopBodyWithGuard(A,h):this.emitLoopBody(A),M}emitForOf(f,_,i,n){let[u,l,c,h,A]=_;if(i==="value"&&this.comprehensionDepth===0){let R=["for-of",u,l,c];return this.emit(["comprehension",A,[R],h?[h]:[]],i)}let[w,D]=Array.isArray(u)?u:[u],$=this.emit(l,"value"),U=`for (let ${w} in ${$}) `;if(c&&!D&&!h){if(this.is(A,"block")){this.indentLevel++;let R=[`if (!Object.hasOwn(${$}, ${w})) continue;`,...A.slice(1).map((z)=>this.addSemicolon(z,this.emit(z,"statement")))];return this.indentLevel--,U+`{
|
|
1553
|
+
${R.map((z)=>this.indent()+z).join(`
|
|
1255
1554
|
`)}
|
|
1256
|
-
${this.indent()}}`}return
|
|
1257
|
-
${
|
|
1555
|
+
${this.indent()}}`}return U+`{ if (!Object.hasOwn(${$}, ${w})) continue; ${this.emit(A,"statement")}; }`}if(D){if(this.is(A,"block")){let z=A.slice(1);this.indentLevel++;let M=[];if(c)M.push(`if (!Object.hasOwn(${$}, ${w})) continue;`);if(M.push(`let ${D} = ${$}[${w}];`),h)M.push(`if (${this.emit(h,"value")}) {`),this.indentLevel++,M.push(...z.map((F)=>this.addSemicolon(F,this.emit(F,"statement")))),this.indentLevel--,M.push(this.indent()+"}");else M.push(...z.map((F)=>this.addSemicolon(F,this.emit(F,"statement"))));return this.indentLevel--,U+`{
|
|
1556
|
+
${M.map((F)=>this.indent()+F).join(`
|
|
1258
1557
|
`)}
|
|
1259
|
-
${this.indent()}}`}let
|
|
1260
|
-
${
|
|
1558
|
+
${this.indent()}}`}let R="";if(c)R+=`if (!Object.hasOwn(${$}, ${w})) continue; `;if(R+=`let ${D} = ${$}[${w}]; `,h)R+=`if (${this.emit(h,"value")}) `;return R+=`${this.emit(A,"statement")};`,U+`{ ${R} }`}return U+=h?this.emitLoopBodyWithGuard(A,h):this.emitLoopBody(A),U}emitForAs(f,_,i,n){let u=Array.isArray(_[0])?_[0]:[_[0]],[l]=u,c=_[1],h=_[2],A=_[3],w=_[4],D=!1,$=[];if(this.is(l,"array")){let F=l.slice(1),H=F.findIndex((K)=>this.is(K,"...")||K==="...");if(H!==-1&&H<F.length-1){D=!0;let K=F.slice(H+1),W=K.length,O=F.slice(0,H),Q=F[H],Y=this.is(Q,"...")?Q[1]:"_rest",J=O.map((G)=>G===","?"":typeof G==="string"?G:this.emit(G,"value")).join(", "),Z=J?`${J}, ...${Y}`:`...${Y}`,q=K.map((G)=>G===","?"":typeof G==="string"?G:this.emit(G,"value")).join(", ");$.push(`[${Z}] = _item`),$.push(`[${q}] = ${Y}.splice(-${W})`),this.helpers.add("slice"),F.forEach((G)=>{if(G===","||G==="...")return;if(typeof G==="string")this.programVars.add(G);else if(this.is(G,"...")&&typeof G[1]==="string")this.programVars.add(G[1])})}}let U=this.emit(c,"value"),R=h?"await ":"",z;if(D)z="_item";else if(this.is(l,"array")||this.is(l,"object"))z=this.emitDestructuringPattern(l);else z=l;let M=`for ${R}(let ${z} of ${U}) `;if(D&&$.length>0){let F=this.unwrapBlock(w),H=this.withIndent(()=>[...$.map((K)=>this.indent()+K+";"),...this.formatStatements(F)]);M+=`{
|
|
1559
|
+
${H.join(`
|
|
1261
1560
|
`)}
|
|
1262
|
-
${this.indent()}}`}else
|
|
1263
|
-
|
|
1561
|
+
${this.indent()}}`}else M+=A?this.emitLoopBodyWithGuard(w,A):this.emitLoopBody(w);return M}emitWhile(f,_){let i=_[0],n=_.length===3?_[1]:null,u=_[_.length-1];return`while (${this.unwrap(this.emit(i,"value"))}) `+(n?this.emitLoopBodyWithGuard(u,n):this.emitLoopBody(u))}emitRange(f,_){if(f==="..."){if(_.length===1)return`...${this.emit(_[0],"value")}`;let[c,h]=_,A=this.emit(c,"value"),w=this.emit(h,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${w})`}let[i,n]=_,u=this.emit(i,"value"),l=this.emit(n,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${u}, ${l})`}emitNot(f,_){let[i]=_;if(typeof i==="string"||i instanceof String)return`!${this.emit(i,"value")}`;if(Array.isArray(i)){if([".","?.","[]","optindex","optcall"].includes(i[0]))return`!${this.emit(i,"value")}`}let n=this.emit(i,"value");return n.startsWith("(")?`!${n}`:`(!${n})`}emitBitwiseNot(f,_){return`(~${this.emit(_[0],"value")})`}emitIncDec(f,_){let[i,n]=_,u=this.emit(i,"value");return n?`(${u}${f})`:`(${f}${u})`}emitTypeof(f,_){return`typeof ${this.emit(_[0],"value")}`}emitDelete(f,_){return`(delete ${this.emit(_[0],"value")})`}emitInstanceof(f,_,i,n){let[u,l]=_,c=w1(n[0],"invert"),h=`(${this.emit(u,"value")} instanceof ${this.emit(l,"value")})`;return c?`(!${h})`:h}emitIn(f,_,i,n){let[u,l]=_,c=this.emit(u,"value"),h=w1(n[0],"invert");if(this.is(l,"object")){let D=`(${c} in ${this.emit(l,"value")})`;return h?`(!${D})`:D}let A=this.emit(l,"value"),w=`(Array.isArray(${A}) || typeof ${A} === 'string' ? ${A}.includes(${c}) : (${c} in ${A}))`;return h?`(!${w})`:w}emitOf(f,_,i,n){let[u,l]=_,c=this.emit(u,"value"),h=this.emit(l,"value"),A=w1(n[0],"invert"),w=`(${c} in ${h})`;return A?`(!${w})`:w}emitRegexMatch(f,_){let[i,n]=_;this.helpers.add("toMatchable"),this.programVars.add("_");let u=this.emit(n,"value"),l=u.includes("/m")?", true":"";return`(_ = toMatchable(${this.emit(i,"value")}${l}).match(${u}))`}emitNew(f,_){let[i]=_;if(this.is(i,".")||this.is(i,"?.")){let[n,u,l]=i;if(Array.isArray(u)&&!u[0].startsWith)return`(${this.emit(["new",u],"value")}).${l}`;return`new ${this.emit(u,"value")}.${l}`}if(Array.isArray(i)){let[n,...u]=i;return`new ${this.emit(n,"value")}(${u.map((l)=>this.unwrap(this.emit(l,"value"))).join(", ")})`}return`new ${this.emit(i,"value")}()`}emitLogicalAnd(f,_,i,n){let u=this.flattenBinaryChain(n).slice(1);if(u.length===0)return"true";if(u.length===1)return this.emit(u[0],"value");return`(${u.map((l)=>this.emit(l,"value")).join(" && ")})`}emitLogicalOr(f,_,i,n){let u=this.flattenBinaryChain(n).slice(1);if(u.length===0)return"true";if(u.length===1)return this.emit(u[0],"value");return`(${u.map((l)=>this.emit(l,"value")).join(" || ")})`}emitSymbol(f,_,i,n){if(n&&n.loc&&typeof _[0]==="string")n._anchors=(n._anchors||[]).concat([{name:"Symbol",origLine:n.loc.r,origCol:n.loc.c+1}]);return`Symbol.for(${JSON.stringify(_[0])})`}emitArray(f,_){let i=_.length>0&&_[_.length-1]===",",n=_.map((u)=>{if(u===",")return"";if(u==="...")return"";if(this.is(u,"..."))return`...${this.emit(u[1],"value")}`;return this.emit(u,"value")}).join(", ");return i?`[${n},]`:`[${n}]`}emitObject(f,_,i){if(_.length===1&&Array.isArray(_[0])&&Array.isArray(_[0][2])&&_[0][2][0]==="comprehension"){let[,U,R]=_[0],[,z,M,F]=R;return this.emit(["object-comprehension",U,z,M,F],i)}let n=(U,R,z=0,M=1/0)=>{let F=this.options&&this.options.source;if(!F||typeof R!=="string"||!/^[A-Za-z_$][\w$]*$/.test(R))return-1;let K=(this._sourceLinesCache||(this._sourceLinesCache=F.split(`
|
|
1562
|
+
`)))[U];if(!K)return-1;let W=new RegExp("\\b"+R.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g");W.lastIndex=Math.max(0,z);let O;while((O=W.exec(K))!==null){if(O.index>=M)return-1;return O.index}return-1},u=(U,R,z=0,M=1/0)=>{let F=this.options&&this.options.source;if(!F||typeof R!=="string"||!/^[A-Za-z_$][\w$]*$/.test(R))return-1;let K=(this._sourceLinesCache||(this._sourceLinesCache=F.split(`
|
|
1563
|
+
`)))[U];if(!K)return-1;let W=new RegExp("\\b"+R.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b","g");W.lastIndex=Math.max(0,z);let O,Q=-1;while((O=W.exec(K))!==null){if(O.index>=M)break;Q=O.index}return Q},l=!1,c=Array(_.length).fill(!1),h=_.map((U,R)=>{if(this.is(U,"..."))return`...${this.emit(U[1],"value")}`;let[z,M,F]=U,H,K=!1;if(this.is(M,"dynamicKey"))H=`[${this.emit(M[1],"value")}]`;else if(this.is(M,"str"))H=`[${this.emit(M,"value")}]`;else this.suppressReactiveUnwrap=!0,H=this.emit(M,"value"),this.suppressReactiveUnwrap=!1,K=!Array.isArray(M)&&typeof H==="string"&&/^[A-Za-z_$][\w$]*$/.test(H);if(z===":"&&K&&this.is(F,"->")){let[,O,Q]=F;if((!O||Array.isArray(O)&&O.length===0)&&this.containsIt(Q))O=["it"];let Y=F.isVoid||!1,J=this.emitParamList(O),Z=this.emitFunctionBody(Q,O,Y),q=this.containsAwait(Q),G=this.containsYield(Q),P=q?"async ":"",L=G?"*":"";if(F&&F.loc&&Array.isArray(O)&&O.length){let I=F.loc.r,e=F.loc.c,p=[],N=e;for(let X of O){if(typeof X!=="string")continue;let u1=n(I,X,N);if(u1>=0)p.push({name:X,origLine:I,origCol:u1}),N=u1+X.length}if(p.length)F._anchors=(F._anchors||[]).concat(p)}return l=!0,c[R]=!0,`${P}${L}${H}(${J}) ${Z}`}let W=this.emit(F,"value");if(z===":"&&K&&Array.isArray(U)&&U.loc&&typeof M==="string"){let O=n(U.loc.r,M,0,U.loc.c+M.length+1);if(O>=0)U._anchors=(U._anchors||[]).concat([{name:M,origLine:U.loc.r,origCol:O}])}if(z==="=")return`${H} = ${W}`;if(z===":")return`${H}: ${W}`;if(H===W&&!Array.isArray(M)){if(Array.isArray(U)&&U.loc&&typeof M==="string"){let O=u(U.loc.r,M,0,U.loc.c+1);if(O>=0)U._anchors=(U._anchors||[]).concat([{name:M,origLine:U.loc.r,origCol:O}])}return H}return`${H}: ${W}`});if(!l)return`{${h.join(", ")}}`;let A=[],w=[];for(let U=0;U<h.length;U++)if(c[U]||U>0&&c[U-1]){if(w.length&&A.length===0)A.push(w.join(", ")),w=[];A.push(h[U])}else if(A.length===0)w.push(h[U]);else A.push(h[U]);if(w.length&&A.length===0)A.push(w.join(", "));let D=A[0],$=A.slice(1);return $.length===0?`{${D}}`:`{${D},
|
|
1564
|
+
${$.join(`,
|
|
1565
|
+
`)}}`}emitMap(f,_,i){if(_.length===0)return"new Map()";return`new Map([${_.map((u)=>{if(this.is(u,"..."))return`...${this.emit(u[1],"value")}`;let[,l,c]=u,h;if(Array.isArray(l))h=this.emit(l,"value");else{let w=v(l)??l;h=!w.startsWith('"')&&!w.startsWith("'")&&!w.startsWith("/")&&!D1.NUMBER_START_RE.test(w)&&!D0.has(w)?`"${w}"`:this.emit(l,"value")}let A=this.emit(c,"value");return`[${h}, ${A}]`}).join(", ")}])`}emitBlock(f,_,i){if(i==="statement")return`{
|
|
1566
|
+
${this.withIndent(()=>this.formatStatements(_)).join(`
|
|
1264
1567
|
`)}
|
|
1265
|
-
${this.indent()}}`;if(
|
|
1266
|
-
${this.withIndent(()=>
|
|
1568
|
+
${this.indent()}}`;if(_.length===0)return"undefined";if(_.length===1)return this.emit(_[0],i);let n=_[_.length-1];if(Array.isArray(n)&&["break","continue","return","throw"].includes(n[0])){let l=_.map((c)=>this.addSemicolon(c,this.emit(c,"statement")));return`{
|
|
1569
|
+
${this.withIndent(()=>l.map((c)=>this.indent()+c).join(`
|
|
1267
1570
|
`))}
|
|
1268
|
-
${this.indent()}}`}return`(${
|
|
1269
|
-
${this.indent()} ${
|
|
1270
|
-
${this.indent()}}`}}let u=`throw ${this.emit(
|
|
1271
|
-
`;this.indentLevel++;for(let
|
|
1272
|
-
`}this.indentLevel++,
|
|
1273
|
-
`,this.indentLevel++,
|
|
1274
|
-
`;this.indentLevel++,this.comprehensionDepth++,
|
|
1275
|
-
`;for(let
|
|
1276
|
-
`,this.indentLevel++,
|
|
1277
|
-
`}else if(
|
|
1278
|
-
`,this.indentLevel++,
|
|
1279
|
-
`;if(
|
|
1280
|
-
`}else if(
|
|
1281
|
-
`,this.indentLevel++}}for(let
|
|
1282
|
-
`,this.indentLevel++;let A=(
|
|
1283
|
-
`;else if(Array.isArray(
|
|
1284
|
-
`;else
|
|
1285
|
-
`}else if(A(
|
|
1286
|
-
`;else if(Array.isArray(w
|
|
1287
|
-
`;else
|
|
1288
|
-
`;for(let
|
|
1289
|
-
`;for(let
|
|
1290
|
-
`;return
|
|
1291
|
-
`,this.indentLevel--,this.comprehensionDepth--,
|
|
1571
|
+
${this.indent()}}`}return`(${_.map((l)=>this.emit(l,"value")).join(", ")})`}emitTry(f,_,i){let n=i==="value",u="try ",l=_[0];if(u+=n&&this.is(l,"block")?this.emitBlockWithReturns(l):this.emit(l,"statement"),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[c,h]=_[1];if(u+=" catch",c&&(this.is(c,"object")||this.is(c,"array"))){u+=" (error)";let A=`(${this.emit(c,"value")} = error)`;h=this.is(h,"block")?["block",A,...h.slice(1)]:["block",A,h]}else if(c)u+=` (${c})`;u+=" "+(n&&this.is(h,"block")?this.emitBlockWithReturns(h):this.emit(h,"statement"))}else if(_.length===2)u+=" finally "+this.emit(_[1],"statement");if(_.length===3)u+=" finally "+this.emit(_[2],"statement");if(_.length===1)u+=" catch {}";if(n){let c=this.containsAwait(_[0])||_[1]&&this.containsAwait(_[1])||_[2]&&this.containsAwait(_[2]);return this.asyncIIFE(c,u)}return u}emitThrow(f,_,i){let[n]=_;if(Array.isArray(n)){let l=n,c=null;if(n[0]==="new"&&Array.isArray(n[1])&&n[1][0]==="if")c="new",l=n[1];else if(n[0]==="if")l=n;if(l[0]==="if"){let[,h,A]=l,w=Array.isArray(A)&&A.length===1?A[0]:A;n=c==="new"?["new",w]:w;let D=this.emit(h,"value"),$=`throw ${this.emit(n,"value")}`;return`if (${D}) {
|
|
1572
|
+
${this.indent()} ${$};
|
|
1573
|
+
${this.indent()}}`}}let u=`throw ${this.emit(n,"value")}`;return i==="value"?`(() => { ${u}; })()`:u}emitControl(f,_,i){let[n,u,l]=_,c=v(n),h=l[0]==="return",A=this.emit(u,"value"),w=l.length>1?l[1]:null,D=h?w?`return ${this.emit(w,"value")}`:"return":w?`throw ${this.emit(w,"value")}`:"throw new Error()",$=this.wrapForCondition(A);if(i==="value"){if(c==="??")return`(() => { const __v = ${A}; if (__v == null) ${D}; return __v; })()`;if(c==="||")return`(() => { const __v = ${A}; if (!__v) ${D}; return __v; })()`;return`(() => { const __v = ${A}; if (__v) ${D}; return __v; })()`}if(c==="??")return`if (${$} == null) ${D}`;if(c==="||")return`if (!${$}) ${D}`;return`if (${$}) ${D}`}emitSwitch(f,_,i){let[n,u,l]=_;if(n===null)return this.emitSwitchAsIfChain(u,l,i);let c=`switch (${this.emit(n,"value")}) {
|
|
1574
|
+
`;this.indentLevel++;for(let h of u){let[,A,w]=h;for(let D of A){let $=v(D)??D,U;if(Array.isArray($))U=this.emit($,"value");else if(typeof $==="string"&&($.startsWith('"')||$.startsWith("'")))U=`'${$.slice(1,-1)}'`;else U=this.emit($,"value");c+=this.indent()+`case ${U}:
|
|
1575
|
+
`}this.indentLevel++,c+=this.emitSwitchCaseBody(w,i),this.indentLevel--}if(l)c+=this.indent()+`default:
|
|
1576
|
+
`,this.indentLevel++,c+=this.emitSwitchCaseBody(l,i),this.indentLevel--;if(this.indentLevel--,c+=this.indent()+"}",i==="value"){let h=this.containsAwait(n)||u.some((A)=>this.containsAwait(A[1])||this.containsAwait(A[2]))||l&&this.containsAwait(l);return this.asyncIIFE(h,c)}return c}emitWhen(f,_,i,n){this.error("when clause should be handled by switch",n)}_forInHeader(f,_,i){let n=Array.isArray(f)?f:[f],u=n.length===0,[l,c]=u?["_i",null]:n,h=this.is(l,"array")||this.is(l,"object")?this.emitDestructuringPattern(l):l;if(i&&i!==null){let A=Array.isArray(_)&&_[0];if(A instanceof String)A=v(A);if(A===".."||A==="..."){let K=A==="...",[W,O]=_.slice(1),Q=this.emit(W,"value"),Y=this.emit(O,"value"),J=this.emit(i,"value");return{header:`for (let ${h} = ${Q}; ${h} ${K?"<":"<="} ${Y}; ${h} += ${J})`,setup:null}}let D=this.emit(_,"value"),$=c||"_i",U=this.emit(i,"value"),R=this.is(i,"-",1),z=R&&(i[1]==="1"||i[1]===1||v(i[1])==="1"),M=!R&&(i==="1"||i===1||v(i)==="1"),F=z?`${$}--`:M?`${$}++`:`${$} += ${U}`;return{header:R?`for (let ${$} = ${D}.length - 1; ${$} >= 0; ${F})`:`for (let ${$} = 0; ${$} < ${D}.length; ${F})`,setup:u?null:`let ${h} = ${D}[${$}];`}}if(c){let A=this.emit(_,"value");return{header:`for (let ${c} = 0; ${c} < ${A}.length; ${c}++)`,setup:`let ${h} = ${A}[${c}];`}}return{header:`for (let ${h} of ${this.emit(_,"value")})`,setup:null}}_forOfHeader(f,_,i){let n=Array.isArray(f)?f:[f],[u,l]=n,c=this.is(u,"array")||this.is(u,"object")?this.emitDestructuringPattern(u):u,h=this.emit(_,"value");return{header:`for (let ${c} in ${h})`,own:i,vv:l,oc:h,kvp:c}}_forAsHeader(f,_,i){let n=Array.isArray(f)?f:[f],[u]=n,l=this.is(u,"array")||this.is(u,"object")?this.emitDestructuringPattern(u):u;return{header:`for ${i?"await ":""}(let ${l} of ${this.emit(_,"value")})`}}emitComprehension(f,_,i){let[n,u,l]=_;if(i==="statement")return this.emitComprehensionAsLoop(n,u,l);if(this.comprehensionTarget){let D=this.comprehensionTarget;this.comprehensionTarget=null;try{return this.emitComprehensionWithTarget(n,u,l,D)}finally{this.comprehensionTarget=D}}let c=this.containsAwait(n)||u.some((D)=>this.containsAwait(D))||l.some((D)=>this.containsAwait(D)),h=this.asyncIIFEOpen(c)+`
|
|
1577
|
+
`;this.indentLevel++,this.comprehensionDepth++,h+=this.indent()+`const result = [];
|
|
1578
|
+
`;for(let D of u){let[$,U,R,z]=D;if($==="for-in"){let{header:M,setup:F}=this._forInHeader(U,R,z);if(h+=this.indent()+M+` {
|
|
1579
|
+
`,this.indentLevel++,F)h+=this.indent()+F+`
|
|
1580
|
+
`}else if($==="for-of"){let{header:M,own:F,vv:H,oc:K,kvp:W}=this._forOfHeader(U,R,z);if(h+=this.indent()+M+` {
|
|
1581
|
+
`,this.indentLevel++,F)h+=this.indent()+`if (!Object.hasOwn(${K}, ${W})) continue;
|
|
1582
|
+
`;if(H)h+=this.indent()+`let ${H} = ${K}[${W}];
|
|
1583
|
+
`}else if($==="for-as"){let{header:M}=this._forAsHeader(U,R,D[3]);h+=this.indent()+M+` {
|
|
1584
|
+
`,this.indentLevel++}}for(let D of l)h+=this.indent()+`if (${this.emit(D,"value")}) {
|
|
1585
|
+
`,this.indentLevel++;let A=(D)=>{if(typeof D==="string"&&(D==="break"||D==="continue"))return!0;if(!Array.isArray(D))return!1;if(["break","continue","return","throw"].includes(D[0]))return!0;if(D[0]==="if")return D.slice(1).some(A);return D.some(A)},w=["for-in","for-of","for-as","while","loop"];if(this.is(n,"block"))for(let D=0;D<n.length-1;D++){let $=n[D+1];if(D!==n.length-2||A($))h+=this.indent()+this.emit($,"statement")+`;
|
|
1586
|
+
`;else if(Array.isArray($)&&w.includes($[0]))h+=this.indent()+this.emit($,"statement")+`;
|
|
1587
|
+
`;else h+=this.indent()+`result.push(${this.emit($,"value")});
|
|
1588
|
+
`}else if(A(n))h+=this.indent()+this.emit(n,"statement")+`;
|
|
1589
|
+
`;else if(Array.isArray(n)&&w.includes(n[0]))h+=this.indent()+this.emit(n,"statement")+`;
|
|
1590
|
+
`;else h+=this.indent()+`result.push(${this.emit(n,"value")});
|
|
1591
|
+
`;for(let D=0;D<l.length;D++)this.indentLevel--,h+=this.indent()+`}
|
|
1592
|
+
`;for(let D=0;D<u.length;D++)this.indentLevel--,h+=this.indent()+`}
|
|
1593
|
+
`;return h+=this.indent()+`return result;
|
|
1594
|
+
`,this.indentLevel--,this.comprehensionDepth--,h+=this.indent()+"})()",h}emitObjectComprehension(f,_,i){let[n,u,l,c]=_,h=this.containsAwait(n)||this.containsAwait(u)||l.some((w)=>this.containsAwait(w))||c.some((w)=>this.containsAwait(w)),A=this.asyncIIFEOpen(h)+`
|
|
1292
1595
|
`;this.indentLevel++,A+=this.indent()+`const result = {};
|
|
1293
|
-
`;for(let
|
|
1294
|
-
`,this.indentLevel++,
|
|
1295
|
-
`;if(
|
|
1296
|
-
`}}for(let
|
|
1297
|
-
`,this.indentLevel++;A+=this.indent()+`result[${this.emit(
|
|
1298
|
-
`;for(let
|
|
1299
|
-
`;for(let
|
|
1596
|
+
`;for(let w of l){let[D,$,U,R]=w;if(D==="for-of"){let[z,M]=$,F=this.emit(U,"value");if(A+=this.indent()+`for (let ${z} in ${F}) {
|
|
1597
|
+
`,this.indentLevel++,R)A+=this.indent()+`if (!Object.hasOwn(${F}, ${z})) continue;
|
|
1598
|
+
`;if(M)A+=this.indent()+`let ${M} = ${F}[${z}];
|
|
1599
|
+
`}}for(let w of c)A+=this.indent()+`if (${this.emit(w,"value")}) {
|
|
1600
|
+
`,this.indentLevel++;A+=this.indent()+`result[${this.emit(n,"value")}] = ${this.emit(u,"value")};
|
|
1601
|
+
`;for(let w=0;w<c.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
1602
|
+
`;for(let w=0;w<l.length;w++)this.indentLevel--,A+=this.indent()+`}
|
|
1300
1603
|
`;return A+=this.indent()+`return result;
|
|
1301
|
-
`,this.indentLevel--,A+=this.indent()+"})()",A}emitClass(f,
|
|
1302
|
-
`,
|
|
1303
|
-
`;else
|
|
1304
|
-
`}else
|
|
1305
|
-
`;this.indentLevel--}else{this.indentLevel++;for(let
|
|
1306
|
-
`;else
|
|
1307
|
-
`;this.indentLevel--}}}return
|
|
1308
|
-
`}else if(
|
|
1309
|
-
`;else
|
|
1310
|
-
`}return
|
|
1311
|
-
|
|
1312
|
-
`;if(
|
|
1313
|
-
`;let
|
|
1314
|
-
|
|
1315
|
-
`;return}
|
|
1316
|
-
`;return}}
|
|
1317
|
-
`;return}if(!(
|
|
1318
|
-
`;return}
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
`;
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
`;
|
|
1325
|
-
`;
|
|
1326
|
-
`;
|
|
1327
|
-
|
|
1328
|
-
|
|
1604
|
+
`,this.indentLevel--,A+=this.indent()+"})()",A}emitClass(f,_,i){let[n,u,...l]=_,c=n?`class ${n}`:"class";if(u)c+=` extends ${this.emit(u,"value")}`;if(c+=` {
|
|
1605
|
+
`,l.length>0&&Array.isArray(l[0])){let h=l[0];if(h[0]==="block"){let A=h.slice(1);if(A.length>0&&Array.isArray(A[0])&&A[0][0]==="object"){let D=A[0].slice(1);this.indentLevel++,c+=this._emitClassMembers(D,u);for(let $ of A.slice(1))if(this.is($,"class")){let[,U,R,...z]=$;if(this.is(U,".")&&U[1]==="this")c+=this.indent()+`static ${U[2]} = ${this.emit(["class",null,R,...z],"value")};
|
|
1606
|
+
`;else c+=this.indent()+this.emit($,"statement")+`;
|
|
1607
|
+
`}else c+=this.indent()+this.emit($,"statement")+`;
|
|
1608
|
+
`;this.indentLevel--}else{this.indentLevel++;for(let D of A)if(this.is(D,"=")&&Array.isArray(D[1])&&D[1][0]==="."&&D[1][1]==="this")c+=this.indent()+`static ${D[1][2]} = ${this.emit(D[2],"value")};
|
|
1609
|
+
`;else c+=this.indent()+this.emit(D,"statement")+`;
|
|
1610
|
+
`;this.indentLevel--}}}return c+=this.indent()+"}",c}_emitClassMembers(f,_){let i="",n=[];for(let[,u,l]of f){let c=this.is(u,".")&&u[1]==="this",h=this.is(u,"computed"),A=this.extractMemberName(u);if(this.is(l,"=>")&&!c&&!h&&A!=="constructor")n.push(A)}for(let[,u,l]of f){let c=this.is(u,".")&&u[1]==="this",h=this.is(u,"computed"),A=this.extractMemberName(u);if(this.is(l,"->")||this.is(l,"=>")){let[,w,D]=l,$=this.containsAwait(D),U=this.containsYield(D),R=w,z=[];if(A==="constructor"){let H=!!_,K=H?new Map:null;R=w.map((W)=>{if(this.is(W,".")&&W[1]==="this"){let O=v(W[2]),Q=H?`_${O}`:O;if(z.push(`this.${O} = ${Q}`),H)K.set(O,Q);return Q}if(this.is(W,"default")&&this.is(W[1],".")&&W[1][1]==="this"){let O=v(W[1][2]),Q=H?`_${O}`:O;if(z.push(`this.${O} = ${Q}`),H)K.set(O,Q);return["default",Q,W[2]]}return W});for(let W of n)z.unshift(`this.${W} = this.${W}.bind(this)`);if(K?.size>0)this._atParamMap=K}let M=this.emitParamList(R),F=(c?"static ":"")+($?"async ":"")+(U?"*":"");if(i+=this.indent()+`${F}${A}(${M}) `,!h)this.currentMethodName=A;i+=this.emitMethodBody(D,z,A==="constructor",R),this._atParamMap=null,this.currentMethodName=null,i+=`
|
|
1611
|
+
`}else if(c)i+=this.indent()+`static ${A} = ${this.emit(l,"value")};
|
|
1612
|
+
`;else i+=this.indent()+`${A} = ${this.emit(l,"value")};
|
|
1613
|
+
`}return i}emitSuper(f,_){if(_.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let i=_.map((n)=>this.unwrap(this.emit(n,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${i})`;return`super(${i})`}emitImport(f,_,i,n){if(_.length===1){let h=`import(${this.emit(_[0],"value")})`;if(w1(n[0],"bang")===!0)return`(await ${h})`;return h}if(this.options.skipImports)return"";if(_.length===3){let[h,A,w]=_,D=this.addJsExtensionAndAssertions(w);if(A[0]==="*"&&A.length===2)return`import ${h}, * as ${A[1]} from ${D}`;let $=A.map((U)=>Array.isArray(U)&&U.length===2?`${U[0]} as ${U[1]}`:U).join(", ");return this._attachImportSpecifierAnchors(n,[h,...A.flatMap((U)=>Array.isArray(U)?U:[U])]),`import ${h}, { ${$} } from ${D}`}let[u,l]=_,c=this.addJsExtensionAndAssertions(l);if(typeof u==="string")return`import ${u} from ${c}`;if(Array.isArray(u)){if(u[0]==="*"&&u.length===2)return`import * as ${u[1]} from ${c}`;let h=u.map((A)=>Array.isArray(A)&&A.length===2?`${A[0]} as ${A[1]}`:A).join(", ");return this._attachImportSpecifierAnchors(n,u.flatMap((A)=>Array.isArray(A)?A:[A])),`import { ${h} } from ${c}`}return`import ${this.emit(u,"value")} from ${c}`}_attachImportSpecifierAnchors(f,_){if(!f||!f.loc)return;let i=this.options&&this.options.source;if(!i||!_||!_.length)return;let n=this._sourceLinesCache||(this._sourceLinesCache=i.split(`
|
|
1614
|
+
`)),u=f.loc.r,l=f.loc.c,c=[];for(let h of _){if(typeof h!=="string"||!/^[A-Za-z_$][\w$]*$/.test(h))continue;let A=new RegExp("\\b"+h.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b"),w=!1;while(u<n.length){let $=(n[u]||"").replace(/#.*$/,"");A.lastIndex=0;let U=$.slice(l),R=A.exec(U);if(R){let z=l+R.index;c.push({name:h,origLine:u,origCol:z}),l=z+h.length,w=!0;break}u++,l=0}if(!w)break}if(c.length)f._anchors=(f._anchors||[]).concat(c)}applyVoidMarker(f,_,i){let n=this.is(_,"->")||this.is(_,"=>")||this.is(_,"def");if(f instanceof String&&w1(f,"bang")!==void 0&&!n){let u=w1(f,"bang")===!0?"!":"&";this.error(`Cannot use ${u} sigil in variable declaration '${v(f)}'`,i)}if(f instanceof String&&w1(f,"bang")===!0&&n)_.isVoid=!0}emitExport(f,_){let[i]=_;if(this.options.skipExports){if(this.is(i,"=")){let n=this._componentName,u=this._componentTypeParams,l=this._schemaName;if(this.is(i[2],"component"))this._componentName=v(i[1]),this._componentTypeParams=i[1]?.typeParams||"";if(this.is(i[2],"schema"))this._schemaName=v(i[1]);this.applyVoidMarker(i[1],i[2],i);let c=`const ${i[1]} = ${this.emit(i[2],"value")}`;return this._componentName=n,this._componentTypeParams=u,this._schemaName=l,c}if(Array.isArray(i)&&i.every((n)=>typeof n==="string"))return"";return this.emit(i,"statement")}if(this.is(i,"=")){let n=this._componentName,u=this._componentTypeParams,l=this._schemaName;if(this.is(i[2],"component"))this._componentName=v(i[1]),this._componentTypeParams=i[1]?.typeParams||"";if(this.is(i[2],"schema"))this._schemaName=v(i[1]);this.applyVoidMarker(i[1],i[2],i);let c=`export const ${i[1]} = ${this.emit(i[2],"value")}`;return this._componentName=n,this._componentTypeParams=u,this._schemaName=l,c}if(Array.isArray(i)&&i.every((n)=>typeof n==="string"))return`export { ${i.join(", ")} }`;return`export ${this.emit(i,"statement")}`}emitExportDefault(f,_){let[i]=_;if(this.options.skipExports){if(this.is(i,"="))return this.applyVoidMarker(i[1],i[2],i),`const ${i[1]} = ${this.emit(i[2],"value")}`;return this.emit(i,"statement")}if(this.is(i,"="))return this.applyVoidMarker(i[1],i[2],i),`const ${i[1]} = ${this.emit(i[2],"value")};
|
|
1615
|
+
export default ${i[1]}`;return`export default ${this.emit(i,"statement")}`}emitExportAll(f,_){if(this.options.skipExports)return"";return`export * from ${this.addJsExtensionAndAssertions(_[0])}`}emitExportFrom(f,_){if(this.options.skipExports)return"";let[i,n]=_,u=this.addJsExtensionAndAssertions(n);if(Array.isArray(i))return`export { ${i.map((c)=>Array.isArray(c)&&c.length===2?`${c[0]} as ${c[1]}`:c).join(", ")} } from ${u}`;return`export ${i} from ${u}`}emitDoIIFE(f,_){return`(${this.emit(_[0],"statement")})()`}emitRegex(f,_){return _.length===0?f:this.emit(_[0],"value")}emitTaggedTemplate(f,_){let[i,n]=_,u=this.emit(i,"value"),l=this.emit(n,"value");if(l.startsWith("`"))return`${u}${l}`;if(l.startsWith('"')||l.startsWith("'"))return`${u}\`${l.slice(1,-1)}\``;return`${u}\`${l}\``}emitString(f,_){let i="`";for(let n of _)if(n instanceof String)i+=this.extractStringContent(n);else if(typeof n==="string")if(n.startsWith('"')||n.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",n);i+=n.slice(1,-1)}else i+=n;else if(Array.isArray(n))if(n.length===1&&typeof n[0]==="string"&&!Array.isArray(n[0])){let u=n[0];i+=/^[\d"']/.test(u)?"${"+this.emit(u,"value")+"}":"${"+u+"}"}else{let u=n.length===1&&Array.isArray(n[0])?n[0]:n;i+="${"+this.emit(u,"value")+"}"}return i+"`"}findPostfixConditional(f){if(!Array.isArray(f))return null;let _=f[0];if(_==="if"&&f.length===3)return{type:_,condition:f[1],value:f[2]};if(_==="+"||_==="-"||_==="*"||_==="/")for(let i=1;i<f.length;i++){let n=this.findPostfixConditional(f[i]);if(n)return n.parentOp=_,n.operandIndex=i,n.otherOperands=f.slice(1).filter((u,l)=>l!==i-1),n}return null}rebuildWithoutConditional(f){let _=Array.isArray(f.value)&&f.value.length===1?f.value[0]:f.value;if(f.parentOp)return[f.parentOp,...f.otherOperands,_];return _}_tryPostfixCall(f,_,i){if(i!=="statement"||_.length!==1)return null;let n=this.findPostfixConditional(_[0]);if(!n)return null;let u=this.rebuildWithoutConditional(n),l=this.emit(f,"value"),c=this.emit(n.condition,"value"),h=this.emit(u,"value");return`if (${c}) ${l}(${h})`}_emitArgs(f){return f.map((_)=>this.unwrap(this.emit(_,"value"))).join(", ")}emitDestructuringPattern(f){return this.formatParam(f)}emitParamList(f){let _=f.findIndex((n)=>this.is(n,"expansion"));if(_!==-1){let n=f.slice(0,_),u=f.slice(_+1),l=n.map((c)=>this.formatParam(c)).join(", ");return this.expansionAfterParams=u,l?`${l}, ..._rest`:"..._rest"}let i=f.findIndex((n)=>this.is(n,"rest"));if(i!==-1&&i<f.length-1){let n=f.slice(0,i),u=f[i],l=f.slice(i+1),c=n.map((h)=>this.formatParam(h));return this.restMiddleParam={restName:u[1],afterParams:l,beforeCount:n.length},c.length>0?`${c.join(", ")}, ...${u[1]}`:`...${u[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,f.map((n)=>this.formatParam(n)).join(", ")}formatParam(f){if(typeof f==="string")return f;if(f instanceof String){if(this.options.inlineTypes&&f.type)return`${f.valueOf()}: ${f.type.replace(/::/g,":")}`;return f.valueOf()}if(this.is(f,"rest")){let _=f[1];if(this.options.inlineTypes&&_ instanceof String&&_.type)return`...${_.valueOf()}: ${_.type.replace(/::/g,":")}`;return`...${_}`}if(this.is(f,"default"))return`${this.formatParam(f[1])} = ${this.emit(f[2],"value")}`;if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"array"))return`[${f.slice(1).map((i)=>{if(i===",")return"";if(i==="...")return"";if(this.is(i,"..."))return`...${i[1]}`;if(this.is(i,"=")&&typeof i[1]==="string")return`${i[1]} = ${this.emit(i[2],"value")}`;if(typeof i==="string")return i;return this.formatParam(i)}).join(", ")}]`;if(this.is(f,"object"))return`{${f.slice(1).map((i)=>{if(this.is(i,"..."))return`...${i[1]}`;if(this.is(i,"default"))return`${i[1]} = ${this.emit(i[2],"value")}`;let[n,u,l]=i;if(n==="=")return`${u} = ${this.emit(l,"value")}`;if(u===l)return u;return`${u}: ${this.formatParam(l)}`}).join(", ")}}`;return JSON.stringify(f)}emitBodyWithReturns(f,_=[],i={}){let{sideEffectOnly:n=!1,autoAssignments:u=[],isConstructor:l=!1,hasExpansionParams:c=!1}=i,h=this.sideEffectOnly;this.sideEffectOnly=n;let A=new Set,w=(M)=>{if(typeof M==="string"||M instanceof String)A.add(v(M));else if(Array.isArray(M)){if(M[0]==="rest"||M[0]==="..."){if(typeof M[1]==="string"||M[1]instanceof String)A.add(v(M[1]))}else if(M[0]==="default"){if(typeof M[1]==="string"||M[1]instanceof String)A.add(v(M[1]))}else if(M[0]==="array"||M[0]==="object")this.collectVarsFromArray(M,A)}};if(Array.isArray(_))_.forEach(w);let D=this.collectFunctionVariables(f),$=new Set([...D].filter((M)=>!this.programVars.has(M)&&!this.reactiveVars?.has(M)&&!A.has(M)&&!this.scopeStack.some((F)=>F.has(M)))),U=["return","throw","break","continue"],R=["for-in","for-of","for-as","while","loop"];if(this.scopeStack.push(new Set([...$,...A])),this.is(f,"block")){let M=this.unwrapBlock(f);if(c&&this.expansionAfterParams?.length>0)M=[...this.expansionAfterParams.map((O,Q)=>{return`const ${typeof O==="string"?O:JSON.stringify(O)} = _rest[_rest.length - ${this.expansionAfterParams.length-Q}]`}),...M],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:W,afterParams:O}=this.restMiddleParam,Q=O.length,Y=[];if(O.forEach((J,Z)=>{let q=typeof J==="string"?J:this.is(J,"default")?J[1]:JSON.stringify(J);Y.push(`const ${q} = ${W}[${W}.length - ${Q-Z}]`)}),Q>0)Y.push(`${W} = ${W}.slice(0, -${Q})`);M=[...Y,...M],this.restMiddleParam=null}this.indentLevel++;let F=`{
|
|
1616
|
+
`;if($.size>0){let W=this.options.inlineTypes?this.collectTypedLocals(f):null,O=Array.from($).sort().map((Q)=>{let Y=W?.get(Q);return Y?`${Q}: ${Y}`:Q});F+=this.indent()+`let ${O.join(", ")};
|
|
1617
|
+
`}let H=u.length>0&&M.length>0&&Array.isArray(M[0])&&M[0][0]==="super",K=(W)=>{W.forEach((O,Q)=>{let Y=Q===W.length-1,J=Array.isArray(O)?O[0]:null;if(!Y&&J==="comprehension"){let[,P,L,I]=O;F+=this.indent()+this.emitComprehensionAsLoop(P,L,I)+`
|
|
1618
|
+
`;return}if(!l&&!n&&Y&&J==="if"){let[P,L,...I]=O.slice(1),e=(N)=>this.is(N,"block")&&N.length>2;if(this.hasStatementInBranch(L)||I.some((N)=>this.hasStatementInBranch(N))||e(L)||I.some(e)){F+=this.emitIfElseWithEarlyReturns(O)+`
|
|
1619
|
+
`;return}}if(!l&&!n&&Y&&J==="="){let[P,L]=O.slice(1);if(typeof P==="string"&&Array.isArray(L)){let I=L[0];if(I==="comprehension"||I==="for-in"){this.comprehensionTarget=P,F+=this.emit(L,"value"),this.comprehensionTarget=null,F+=this.indent()+`return ${P};
|
|
1620
|
+
`;return}}}if(!l&&!n&&Y&&R.includes(J)){if(this.containsYield(O)){F+=this.indent()+this.addSemicolon(O,this.emit(O,"statement"))+`
|
|
1621
|
+
`;return}if(!(J==="for-in"||J==="for-of"||J==="for-as")){F+=this.indent()+this.addSemicolon(O,this.emit(O,"statement"))+`
|
|
1622
|
+
`;return}F+=this.indent()+`const _result = [];
|
|
1623
|
+
`,this.comprehensionTarget="_result";let L=this._skipCompTargetInit;this._skipCompTargetInit=!0,F+=this.emit(O,"value"),this._skipCompTargetInit=L,this.comprehensionTarget=null,F+=this.indent()+`return _result;
|
|
1624
|
+
`;return}let Z=!l&&!n&&Y&&!U.includes(J)&&!this.hasExplicitControlFlow(O),q=Z?"value":"statement",G=this.emit(O,q);if(Z)F+=this.indent()+"return "+G+`;
|
|
1625
|
+
`;else F+=this.indent()+this.addSemicolon(O,G)+`
|
|
1626
|
+
`})};if(H){if(M.length===1&&!l)F+=this.indent()+"return "+this.emit(M[0],"value")+`;
|
|
1627
|
+
`;else F+=this.indent()+this.emit(M[0],"statement")+`;
|
|
1628
|
+
`;for(let O of u)F+=this.indent()+O+`;
|
|
1629
|
+
`;K(M.slice(1))}else{for(let W of u)F+=this.indent()+W+`;
|
|
1630
|
+
`;K(M)}if(n&&M.length>0){let W=Array.isArray(M[M.length-1])?M[M.length-1][0]:null;if(!U.includes(W))F+=this.indent()+`return;
|
|
1631
|
+
`}return this.indentLevel--,F+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=h,F}this.sideEffectOnly=h;let z;if(l&&u.length>0){let M=Array.isArray(f)&&f[0]==="super",F=this.emit(f,"statement"),H=u.map((K)=>`${K};`).join(" ");z=M?`{ ${F}; ${H} }`:`{ ${H} ${F}; }`}else if(l||this.hasExplicitControlFlow(f))z=`{ ${this.emit(f,"statement")}; }`;else if(Array.isArray(f)&&(U.includes(f[0])||R.includes(f[0])))z=`{ ${this.emit(f,"statement")}; }`;else if(n)z=`{ ${this.emit(f,"statement")}; return; }`;else z=`{ return ${this.emit(f,"value")}; }`;return this.scopeStack.pop(),z}emitFunctionBody(f,_=[],i=!1){return this.emitBodyWithReturns(f,_,{sideEffectOnly:i,hasExpansionParams:this.expansionAfterParams?.length>0})}emitMethodBody(f,_=[],i=!1,n=[]){return this.emitBodyWithReturns(f,n,{autoAssignments:_,isConstructor:i})}emitBlockWithReturns(f){if(!Array.isArray(f)||f[0]!=="block")return this.emit(f,"statement");let _=this.unwrapBlock(f);return`{
|
|
1632
|
+
${this.withIndent(()=>_.map((n,u)=>{let l=u===_.length-1,c=Array.isArray(n)?n[0]:null,h=l&&!["return","throw","break","continue"].includes(c),A=this.emit(n,h?"value":"statement");return h?this.indent()+"return "+A+";":this.indent()+A+";"})).join(`
|
|
1329
1633
|
`)}
|
|
1330
|
-
${this.indent()}}`}emitLoopBody(f){if(!Array.isArray(f))return`{ ${this.emit(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let
|
|
1331
|
-
${this.withIndent(()=>
|
|
1634
|
+
${this.indent()}}`}emitLoopBody(f){if(!Array.isArray(f))return`{ ${this.emit(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let _=f[0]==="block"?f.slice(1):f;return`{
|
|
1635
|
+
${this.withIndent(()=>_.map((n)=>{if(this.is(n,"comprehension")){let[,u,l,c]=n;return this.indent()+this.emitComprehensionAsLoop(u,l,c)}return this.indent()+this.addSemicolon(n,this.emit(n,"statement"))})).join(`
|
|
1332
1636
|
`)}
|
|
1333
|
-
${this.indent()}}`}return`{ ${this.emit(f,"statement")}; }`}emitLoopBodyWithGuard(f,
|
|
1334
|
-
`,
|
|
1335
|
-
${u}${
|
|
1637
|
+
${this.indent()}}`}return`{ ${this.emit(f,"statement")}; }`}emitLoopBodyWithGuard(f,_){let i=this.unwrap(this.emit(_,"value"));if(!Array.isArray(f))return`{ if (${i}) ${this.emit(f,"statement")}; }`;if(f[0]==="block"||Array.isArray(f[0])){let n=f[0]==="block"?f.slice(1):f,u=this.withIndent(()=>this.indent()),l=`if (${i}) {
|
|
1638
|
+
`,c=this.withIndent(()=>{this.indentLevel++;let A=this.formatStatements(n);return this.indentLevel--,A}),h=this.withIndent(()=>this.indent()+"}");return`{
|
|
1639
|
+
${u}${l}${c.join(`
|
|
1336
1640
|
`)}
|
|
1337
|
-
${
|
|
1338
|
-
${this.indent()}}`}return`{ if (${this.emit(
|
|
1339
|
-
`;let
|
|
1340
|
-
`;else u+=this.indent()+`${
|
|
1341
|
-
`}else if(
|
|
1342
|
-
`;else u+=this.indent()+`${
|
|
1343
|
-
`};if(
|
|
1344
|
-
`,this.indentLevel++,
|
|
1345
|
-
`;if(
|
|
1346
|
-
`,this.indentLevel++;if(
|
|
1641
|
+
${h}
|
|
1642
|
+
${this.indent()}}`}return`{ if (${this.emit(_,"value")}) ${this.emit(f,"statement")}; }`}emitComprehensionWithTarget(f,_,i,n){let u="";if(!this._skipCompTargetInit)u+=this.indent()+`${n} = [];
|
|
1643
|
+
`;let l=(h)=>{if(typeof h==="string"&&(h==="break"||h==="continue"))return!0;if(!Array.isArray(h))return!1;if(["break","continue","return","throw"].includes(h[0]))return!0;if(h[0]==="if")return h.slice(1).some(l);return h.some(l)},c=()=>{let h=["for-in","for-of","for-as","while","loop"];if(this.is(f,"block"))for(let A=0;A<f.length-1;A++){let w=f[A+1];if(A!==f.length-2||l(w)||Array.isArray(w)&&h.includes(w[0]))u+=this.indent()+this.emit(w,"statement")+`;
|
|
1644
|
+
`;else u+=this.indent()+`${n}.push(${this.emit(w,"value")});
|
|
1645
|
+
`}else if(l(f))u+=this.indent()+this.emit(f,"statement")+`;
|
|
1646
|
+
`;else u+=this.indent()+`${n}.push(${this.emit(f,"value")});
|
|
1647
|
+
`};if(_.length===1){let[h,A,w,D]=_[0];if(h==="for-in"){let{header:$,setup:U}=this._forInHeader(A,w,D);if(u+=this.indent()+$+` {
|
|
1648
|
+
`,this.indentLevel++,U)u+=this.indent()+U+`
|
|
1649
|
+
`;if(i?.length>0)u+=this.indent()+`if (${i.map((R)=>this.emit(R,"value")).join(" && ")}) {
|
|
1650
|
+
`,this.indentLevel++;if(c(),i?.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
1347
1651
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
1348
|
-
`,u}if(
|
|
1349
|
-
`,this.indentLevel++,
|
|
1350
|
-
`;if(
|
|
1351
|
-
`;if(
|
|
1352
|
-
`,this.indentLevel++;if(
|
|
1652
|
+
`,u}if(h==="for-of"){let{header:$,own:U,vv:R,oc:z,kvp:M}=this._forOfHeader(A,w,D);if(u+=this.indent()+$+` {
|
|
1653
|
+
`,this.indentLevel++,U)u+=this.indent()+`if (!Object.hasOwn(${z}, ${M})) continue;
|
|
1654
|
+
`;if(R)u+=this.indent()+`let ${R} = ${z}[${M}];
|
|
1655
|
+
`;if(i?.length>0)u+=this.indent()+`if (${i.map((F)=>this.emit(F,"value")).join(" && ")}) {
|
|
1656
|
+
`,this.indentLevel++;if(c(),i?.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
1353
1657
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
1354
|
-
`,u}if(
|
|
1355
|
-
`,this.indentLevel++,
|
|
1356
|
-
`,this.indentLevel++;if(
|
|
1658
|
+
`,u}if(h==="for-as"){let{header:$}=this._forAsHeader(A,w,D);if(u+=this.indent()+$+` {
|
|
1659
|
+
`,this.indentLevel++,i?.length>0)u+=this.indent()+`if (${i.map((U)=>this.emit(U,"value")).join(" && ")}) {
|
|
1660
|
+
`,this.indentLevel++;if(c(),i?.length>0)this.indentLevel--,u+=this.indent()+`}
|
|
1357
1661
|
`;return this.indentLevel--,u+=this.indent()+`}
|
|
1358
|
-
`,u}}return u="",u+=this.indent()+`${
|
|
1359
|
-
`,u}emitComprehensionAsLoop(f,
|
|
1360
|
-
`,this.indentLevel++,
|
|
1361
|
-
`,this.indentLevel--,
|
|
1362
|
-
`;else
|
|
1363
|
-
`};if(
|
|
1364
|
-
`,this.indentLevel
|
|
1365
|
-
`;return
|
|
1366
|
-
`,this.indentLevel++,
|
|
1367
|
-
`,this.indentLevel
|
|
1368
|
-
`;if(
|
|
1369
|
-
`;return
|
|
1370
|
-
|
|
1371
|
-
`,
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
`;else
|
|
1375
|
-
|
|
1376
|
-
`;else
|
|
1377
|
-
`;else
|
|
1378
|
-
|
|
1379
|
-
`;else
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
`;this.
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
`);if(
|
|
1391
|
-
`))l=l.
|
|
1392
|
-
`))l=l.slice(0,-1);return l}processHeregex(f){let l="",h=!1,w=0,u=()=>{let _=0,D=w-1;while(D>=0&&f[D]==="\\")_++,D--;return _%2===1};while(w<f.length){let _=f[w];if(_==="["&&!u()){h=!0,l+=_,w++;continue}if(_==="]"&&h&&!u()){h=!1,l+=_,w++;continue}if(h){l+=_,w++;continue}if(/\s/.test(_)){w++;continue}if(_==="#"){if(u()){l+=_,w++;continue}let D=w-1;while(D>=0&&f[D]==="\\")D--;if(D<w-1){l+=_,w++;continue}while(w<f.length&&f[w]!==`
|
|
1393
|
-
`)w++;continue}l+=_,w++}return l}addJsExtensionAndAssertions(f){if(f instanceof String)f=m(f);if(typeof f!=="string")return f;let h=f.startsWith('"')||f.startsWith("'")?f.slice(1,-1):f,w=h.startsWith("./")||h.startsWith("../"),u=h,_="";if(w){let D=h.lastIndexOf("/"),c=D>=0?h.substring(D+1):h;if(c.includes(".")){if(c.endsWith(".json"))_=" with { type: 'json' }"}else u=h+".js"}return`'${u}'`+_}containsIt(f){if(!f)return!1;if(f==="it"||f instanceof String&&m(f)==="it")return!0;if(typeof f!=="object")return!1;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>"))return!1;if(Array.isArray(f))return f.some((l)=>this.containsIt(l));return!1}containsAwait(f){if(!f)return!1;if(f instanceof String&&l1(f,"await")===!0)return!0;if(typeof f!=="object")return!1;if(this.is(f,"await"))return!0;if(this.is(f,"for-as")&&f[3]===!0)return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((l)=>this.containsAwait(l));return!1}containsYield(f){if(!f)return!1;if(typeof f!=="object")return!1;if(this.is(f,"yield")||this.is(f,"yield-from"))return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((l)=>this.containsYield(l));return!1}extractMemberName(f){if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"computed"))return`[${this.emit(f[1],"value")}]`;return f}getReactiveRuntime(){return`// ============================================================================
|
|
1662
|
+
`,u}}return u="",u+=this.indent()+`${n} = ${this.emit(["comprehension",f,_,i||[]],"value")};
|
|
1663
|
+
`,u}emitComprehensionAsLoop(f,_,i){let n="",u=i?.length?i.map((c)=>this.emit(c,"value")).join(" && "):null,l=()=>{if(u)n+=this.indent()+`if (${u}) {
|
|
1664
|
+
`,this.indentLevel++,n+=this.indent()+this.emit(f,"statement")+`;
|
|
1665
|
+
`,this.indentLevel--,n+=this.indent()+`}
|
|
1666
|
+
`;else n+=this.indent()+this.emit(f,"statement")+`;
|
|
1667
|
+
`};if(_.length===1){let[c,h,A,w]=_[0];if(c==="for-in"){let{header:D,setup:$}=this._forInHeader(h,A,w);if(n+=D+` {
|
|
1668
|
+
`,this.indentLevel++,$)n+=this.indent()+$+`
|
|
1669
|
+
`;return l(),this.indentLevel--,n+=this.indent()+"}",n}if(c==="for-as"){let{header:D}=this._forAsHeader(h,A,w);return n+=D+` {
|
|
1670
|
+
`,this.indentLevel++,l(),this.indentLevel--,n+=this.indent()+"}",n}if(c==="for-of"){let{header:D,own:$,vv:U,oc:R,kvp:z}=this._forOfHeader(h,A,w);if(n+=D+` {
|
|
1671
|
+
`,this.indentLevel++,$)n+=this.indent()+`if (!Object.hasOwn(${R}, ${z})) continue;
|
|
1672
|
+
`;if(U)n+=this.indent()+`let ${U} = ${R}[${z}];
|
|
1673
|
+
`;return l(),this.indentLevel--,n+=this.indent()+"}",n}}return this.emit(["comprehension",f,_,i],"value")}emitIfElseWithEarlyReturns(f){let[,_,i,...n]=f;return this.indent()+this.emitIfElseEarlyReturnsChain(_,i,n)}emitIfElseEarlyReturnsChain(f,_,i){let n=`if (${this.emit(f,"value")}) {
|
|
1674
|
+
`;n+=this.withIndent(()=>this.emitBranchWithReturn(_)),n+=this.indent()+"}";for(let u of i)if(n+=" else ",this.is(u,"if")){let[,l,c,...h]=u;n+=this.emitIfElseEarlyReturnsChain(l,c,h)}else n+=`{
|
|
1675
|
+
`,n+=this.withIndent(()=>this.emitBranchWithReturn(u)),n+=this.indent()+"}";return n}emitBranchWithReturn(f){f=this.unwrapIfBranch(f);let _=this.unwrapBlock(f),i="";for(let n=0;n<_.length;n++){let u=n===_.length-1,l=_[n],c=Array.isArray(l)?l[0]:null;if(u&&!(c==="return"||c==="throw"||c==="break"||c==="continue"))i+=this.indent()+`return ${this.emit(l,"value")};
|
|
1676
|
+
`;else i+=this.indent()+this.emit(l,"statement")+`;
|
|
1677
|
+
`}return i}emitIfAsExpression(f,_,i){if(this.is(_,"block")&&_.length>2||this.hasStatementInBranch(_)||i.some((h)=>this.is(h,"block")&&h.length>2||this.hasStatementInBranch(h)||this.hasNestedMultiStatement(h))){let h=this.containsAwait(f)||this.containsAwait(_)||i.some((A)=>this.containsAwait(A));return this.asyncIIFEOpen(h)+" "+this.emitIfChain(f,_,i)+" })()"}let u=this.extractExpression(this.unwrapIfBranch(_)),l=this.buildTernaryChain(i),c=this.emit(f,"value");if(this.is(f,"yield")||this.is(f,"await"))c=`(${c})`;return`(${c} ? ${u} : ${l})`}emitIfChain(f,_,i){let n=`if (${this.emit(f,"value")}) `+this.emitBlockWithReturns(_);for(let u of i)if(n+=" else ",this.is(u,"if")){let[,l,c,...h]=u;n+=this.emitIfChain(l,c,h)}else n+=this.emitBlockWithReturns(u);return n}emitIfAsStatement(f,_,i){let n=`if (${this.unwrap(this.emit(f,"value"))}) `;n+=this.emit(this.unwrapIfBranch(_),"statement");for(let u of i)n+=" else "+this.emit(this.unwrapIfBranch(u),"statement");return n}emitSwitchCaseBody(f,_){let i="",n=this.hasExplicitControlFlow(f),u=this.unwrapBlock(f);if(n)for(let l of u)i+=this.indent()+this.emit(l,"statement")+`;
|
|
1678
|
+
`;else if(_==="value")if(this.is(f,"block")&&f.length>2)for(let l=0;l<u.length;l++)if(l===u.length-1)i+=this.indent()+`return ${this.emit(u[l],"value")};
|
|
1679
|
+
`;else i+=this.indent()+this.emit(u[l],"statement")+`;
|
|
1680
|
+
`;else i+=this.indent()+`return ${this.extractExpression(f)};
|
|
1681
|
+
`;else{if(u.length===1&&this.is(u[0],"if")&&!this.hasStatementInBranch(u[0])&&!this.hasNestedMultiStatement(u[0])){let[l,c,h,...A]=u[0],w=this.extractExpression(this.unwrapIfBranch(h)),D=this.buildTernaryChain(A);i+=this.indent()+`(${this.unwrap(this.emit(c,"value"))} ? ${w} : ${D});
|
|
1682
|
+
`}else if(this.is(f,"block")&&f.length>1)for(let l of u)i+=this.indent()+this.emit(l,"statement")+`;
|
|
1683
|
+
`;else i+=this.indent()+this.emit(f,"statement")+`;
|
|
1684
|
+
`;i+=this.indent()+`break;
|
|
1685
|
+
`}return i}emitSwitchAsIfChain(f,_,i){let n="";for(let u=0;u<f.length;u++){let[,l,c]=f[u],h=Array.isArray(l)?l[0]:l;if(n+=(u===0?"":" else ")+`if (${this.emit(h,"value")}) {
|
|
1686
|
+
`,this.indentLevel++,i==="value")n+=this.indent()+`return ${this.extractExpression(c)};
|
|
1687
|
+
`;else for(let A of this.unwrapBlock(c))n+=this.indent()+this.emit(A,"statement")+`;
|
|
1688
|
+
`;this.indentLevel--,n+=this.indent()+"}"}if(_){if(n+=` else {
|
|
1689
|
+
`,this.indentLevel++,i==="value")n+=this.indent()+`return ${this.extractExpression(_)};
|
|
1690
|
+
`;else for(let u of this.unwrapBlock(_))n+=this.indent()+this.emit(u,"statement")+`;
|
|
1691
|
+
`;this.indentLevel--,n+=this.indent()+"}"}if(i==="value"){let u=f.some((l)=>this.containsAwait(l[1])||this.containsAwait(l[2]))||_&&this.containsAwait(_);return this.asyncIIFE(u,n)}return n}asyncIIFE(f,_){return`${f?"await ":""}(${f?"async ":""}() => { ${_} })()`}asyncIIFEOpen(f){return`${f?"await ":""}(${f?"async ":""}() => {`}extractExpression(f){let _=this.unwrapBlock(f);return _.length>0?this.emit(_[_.length-1],"value"):"undefined"}unwrapBlock(f){if(!Array.isArray(f))return[f];if(f[0]==="block")return f.slice(1);if(Array.isArray(f[0])){if(typeof f[0][0]==="string")return[f];return f}return[f]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(f,_){if(!_||_.endsWith(";"))return!1;if(!_.endsWith("}"))return!0;let i=Array.isArray(f)?f[0]:null;return!["def","class","if","for-in","for-of","for-as","while","loop","switch","try"].includes(i)}addSemicolon(f,_){return _+(this.needsSemicolon(f,_)?";":"")}formatStatements(f,_="statement"){return f.map((i)=>this.indent()+this.addSemicolon(i,this.emit(i,_)))}wrapForCondition(f){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(f))return f;if(f.startsWith("(")&&f.endsWith(")"))return f;return`(${f})`}hasExplicitControlFlow(f){if(!Array.isArray(f))return!1;let _=f[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return f.slice(1).some((i)=>Array.isArray(i)&&["return","throw","break","continue"].includes(i[0]));if(_==="switch"){let[,,i]=f;return i?.some((n)=>{return this.unwrapBlock(n[2]).some((l)=>Array.isArray(l)&&["return","throw","break","continue"].includes(l[0]))})}if(_==="if"){let[,,i,n]=f;return this.branchHasControlFlow(i)&&n&&this.branchHasControlFlow(n)}return!1}branchHasControlFlow(f){if(!Array.isArray(f))return!1;let _=this.unwrapBlock(f);if(_.length===0)return!1;let i=_[_.length-1];return Array.isArray(i)&&["return","throw","break","continue"].includes(i[0])}withIndent(f){this.indentLevel++;let _=f();return this.indentLevel--,_}is(f,_,i){if(!Array.isArray(f))return null;if((v(f[0])??f[0])!==_)return null;let n=f.slice(1);if(i!=null&&n.length!==i)return null;return n}unwrap(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let _=0,i=0,n=!0,u=!1;for(let l=0;l<f.length;l++){if(f[l]==="(")_++;if(f[l]===")")_--;if(f[l]==="["||f[l]==="{")i++;if(f[l]==="]"||f[l]==="}")i--;if(f[l]===","&&_===1&&i===0)u=!0;if(_===0&&l<f.length-1){n=!1;break}}if(u)n=!1;if(n)f=f.slice(1,-1);else break}return f}_findOptionalInTarget(f){if(!Array.isArray(f))return null;if(f[0]==="?.")return{guard:f[1],rewritten:[".",f[1],f[2]]};if(f[0]==="optindex")return{guard:f[1],rewritten:["[]",f[1],f[2]]};if(f[0]==="."||f[0]==="[]"){let _=this._findOptionalInTarget(f[1]);if(_)return{guard:_.guard,rewritten:[f[0],_.rewritten,f[2]]}}return null}_validateBindingPattern(f,_){if(!Array.isArray(f))return;let i=f[0];if(i==="comprehension"||i==="object-comprehension")this.error(`Cannot use ${i} as a destructuring target`,_);if(i==="array"){for(let n of f.slice(1))this._validateBindingPattern(n,_);return}if(i==="object"){for(let n of f.slice(1)){if(!Array.isArray(n))continue;let u=n[0];if(u===null)this._validateBindingPattern(n[2],_);else if(u===":")this._validateBindingPattern(n[2],_);else if(u==="=")this._validateBindingPattern(n[1],_);else if(u==="...")this._validateBindingPattern(n[1],_);else this.error(`Unexpected object entry '${u}' in destructuring target`,_)}return}if(i==="..."||i==="default"||i==="="){this._validateBindingPattern(f[1],_);return}if(i==="."||i==="[]")return;if(i==="?."||i==="optindex"||i==="optcall")this.error("Cannot use optional chain as a destructuring target",_);this.error(`Cannot use '${i}' expression as a destructuring target`,_)}unwrapLogical(f){if(typeof f!=="string")return f;while(f.startsWith("(")&&f.endsWith(")")){let _=0,i=1/0;for(let n=1;n<f.length-1;n++){if(f[n]==="(")_++;if(f[n]===")")_--;i=Math.min(i,_)}if(i>=0)f=f.slice(1,-1);else break}return f}unwrapIfBranch(f){if(Array.isArray(f)&&f.length===1&&(!Array.isArray(f[0])||f[0][0]!=="block"))return f[0];return f}flattenBinaryChain(f){if(!Array.isArray(f)||f.length<3)return f;let[_,...i]=f;if(_!=="&&"&&_!=="||")return f;let n=[],u=(l)=>{if(Array.isArray(l)&&l[0]===_)for(let c=1;c<l.length;c++)u(l[c]);else n.push(l)};for(let l of i)u(l);return[_,...n]}hasStatementInBranch(f){if(!Array.isArray(f))return!1;if(f.length===1&&Array.isArray(f[0]))return this.hasStatementInBranch(f[0]);let _=f[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return f.slice(1).some((i)=>this.hasStatementInBranch(i));return!1}hasNestedMultiStatement(f){if(!Array.isArray(f))return!1;if(f[0]==="if"){let[_,i,n,...u]=f;return this.is(n,"block")&&n.length>2||u.some((l)=>this.hasNestedMultiStatement(l))}return!1}buildTernaryChain(f){if(f.length===0)return"undefined";let _=this.unwrapIfBranch(f[0]);if(this.is(_,"if")){let[,i,n,...u]=_,l=this.extractExpression(this.unwrapIfBranch(n)),c=this.buildTernaryChain(u);return`(${this.emit(i,"value")} ? ${l} : ${c})`}return this.extractExpression(_)}collectVarsFromArray(f,_){f.slice(1).forEach((i)=>{if(i===","||i==="...")return;if(typeof i==="string"){_.add(i);return}if(Array.isArray(i)){if(i[0]==="..."&&typeof i[1]==="string")_.add(i[1]);else if(i[0]==="="&&typeof i[1]==="string")_.add(i[1]);else if(i[0]==="array")this.collectVarsFromArray(i,_);else if(i[0]==="object")this.collectVarsFromObject(i,_)}})}collectVarsFromLoopHead(f,_){if(!Array.isArray(f))return;f.forEach((i)=>{if(i==null)return;if(typeof i==="string"){_.add(i);return}if(Array.isArray(i)){if(i[0]==="array")this.collectVarsFromArray(i,_);else if(i[0]==="object")this.collectVarsFromObject(i,_)}})}collectVarsFromObject(f,_){f.slice(1).forEach((i)=>{if(!Array.isArray(i))return;if(i[0]==="..."&&typeof i[1]==="string"){_.add(i[1]);return}if(i.length>=2){let[n,u,l]=i;if(n==="="){if(typeof u==="string")_.add(u)}else if(typeof l==="string")_.add(l);else if(Array.isArray(l)){if(l[0]==="array")this.collectVarsFromArray(l,_);else if(l[0]==="object")this.collectVarsFromObject(l,_)}}})}extractStringContent(f){let _=v(f).slice(1,-1),i=w1(f,"indent");if(i)_=_.replace(new RegExp(`\\n${i}`,"g"),`
|
|
1692
|
+
`);if(w1(f,"initialChunk")&&_.startsWith(`
|
|
1693
|
+
`))_=_.slice(1);if(w1(f,"finalChunk")&&_.endsWith(`
|
|
1694
|
+
`))_=_.slice(0,-1);return _}processHeregex(f){let _="",i=!1,n=0,u=()=>{let l=0,c=n-1;while(c>=0&&f[c]==="\\")l++,c--;return l%2===1};while(n<f.length){let l=f[n];if(l==="["&&!u()){i=!0,_+=l,n++;continue}if(l==="]"&&i&&!u()){i=!1,_+=l,n++;continue}if(i){_+=l,n++;continue}if(/\s/.test(l)){n++;continue}if(l==="#"){if(u()){_+=l,n++;continue}let c=n-1;while(c>=0&&f[c]==="\\")c--;if(c<n-1){_+=l,n++;continue}while(n<f.length&&f[n]!==`
|
|
1695
|
+
`)n++;continue}_+=l,n++}return _}addJsExtensionAndAssertions(f){if(f instanceof String)f=v(f);if(typeof f!=="string")return f;let i=f.startsWith('"')||f.startsWith("'")?f.slice(1,-1):f,n=i.startsWith("./")||i.startsWith("../"),u=i,l="";if(n){let c=i.lastIndexOf("/"),h=c>=0?i.substring(c+1):i;if(h.includes(".")){if(h.endsWith(".json"))l=" with { type: 'json' }"}else u=i+".js"}return`'${u}'`+l}containsIt(f){if(!f)return!1;if(f==="it"||f instanceof String&&v(f)==="it")return!0;if(typeof f!=="object")return!1;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsIt(_));return!1}containsAwait(f){if(!f)return!1;if(f instanceof String&&w1(f,"bang")===!0)return!0;if(typeof f!=="object")return!1;if(this.is(f,"await"))return!0;if(this.is(f,"for-as")&&f[3]===!0)return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsAwait(_));return!1}containsYield(f){if(!f)return!1;if(typeof f!=="object")return!1;if(this.is(f,"yield")||this.is(f,"yield-from"))return!0;if(this.is(f,"def")||this.is(f,"->")||this.is(f,"=>")||this.is(f,"class"))return!1;if(Array.isArray(f))return f.some((_)=>this.containsYield(_));return!1}extractMemberName(f){if(this.is(f,".")&&f[1]==="this")return f[2];if(this.is(f,"computed"))return`[${this.emit(f[1],"value")}]`;return f}getReactiveRuntime(){return`// ============================================================================
|
|
1394
1696
|
// Rip Reactive Runtime
|
|
1395
1697
|
// A minimal, fine-grained reactivity system
|
|
1396
1698
|
//
|
|
@@ -1417,10 +1719,15 @@ let __pendingEffects = new Set(); // Effects queued to run
|
|
|
1417
1719
|
let __batching = false; // Are we inside a batch()?
|
|
1418
1720
|
|
|
1419
1721
|
// Flush all pending effects (called after state updates, or at end of batch)
|
|
1722
|
+
// Defense in depth: skip disposed effects. The primary guard is in
|
|
1723
|
+
// effect.run() itself — but filtering here avoids even calling .run() on
|
|
1724
|
+
// a known-dead effect, which is faster and clearer in stack traces.
|
|
1420
1725
|
function __flushEffects() {
|
|
1421
1726
|
const effects = [...__pendingEffects];
|
|
1422
1727
|
__pendingEffects.clear();
|
|
1423
|
-
for (const effect of effects)
|
|
1728
|
+
for (const effect of effects) {
|
|
1729
|
+
if (!effect._disposed) effect.run();
|
|
1730
|
+
}
|
|
1424
1731
|
}
|
|
1425
1732
|
|
|
1426
1733
|
// Shared primitive coercion (used by state and computed)
|
|
@@ -1536,11 +1843,46 @@ function __computed(fn) {
|
|
|
1536
1843
|
return computed;
|
|
1537
1844
|
}
|
|
1538
1845
|
|
|
1539
|
-
function __effect(fn) {
|
|
1846
|
+
function __effect(fn, opts) {
|
|
1847
|
+
let controller = null;
|
|
1848
|
+
let runId = 0; // increments per run; async resolutions check this to drop stale results
|
|
1540
1849
|
const effect = {
|
|
1541
1850
|
dependencies: new Set(),
|
|
1851
|
+
_disposed: false,
|
|
1852
|
+
signal: null, // AbortSignal for the current run; aborts on re-run / dispose
|
|
1542
1853
|
|
|
1543
1854
|
run() {
|
|
1855
|
+
// Zombie-run guard. An effect can be queued in __pendingEffects
|
|
1856
|
+
// (when a signal it subscribes to changes) and then disposed
|
|
1857
|
+
// before the flush reaches it — e.g. its parent block was
|
|
1858
|
+
// destroyed by an earlier effect in the same flush, and that
|
|
1859
|
+
// destruction's disposers ran effect.dispose(). Without this
|
|
1860
|
+
// guard, run() would execute fn() with __currentEffect = effect,
|
|
1861
|
+
// and any signal .value read inside fn() would re-subscribe the
|
|
1862
|
+
// effect by adding it back to the signal's subscribers Set —
|
|
1863
|
+
// accumulating one leaked subscriber per flush cycle that hits
|
|
1864
|
+
// this race. Symptom: each navigation creates one more component
|
|
1865
|
+
// instance than the previous (N visits => N synchronous mounts
|
|
1866
|
+
// on visit N).
|
|
1867
|
+
if (effect._disposed) return;
|
|
1868
|
+
// Abort the previous run's signal before allocating a new one.
|
|
1869
|
+
// Any async work from the previous run that's still mid-flight
|
|
1870
|
+
// (an await fetch with the signal, for example) sees its signal
|
|
1871
|
+
// go aborted and can bail. This also fires the 'abort' event on
|
|
1872
|
+
// the previous signal so user code subscribed via
|
|
1873
|
+
// signal.addEventListener can run.
|
|
1874
|
+
if (controller) {
|
|
1875
|
+
try { controller.abort(); } catch {}
|
|
1876
|
+
}
|
|
1877
|
+
controller = (typeof AbortController !== 'undefined') ? new AbortController() : null;
|
|
1878
|
+
effect.signal = controller ? controller.signal : null;
|
|
1879
|
+
// Per-run id captured by the closures below. When the effect
|
|
1880
|
+
// re-runs (signal changed) while a prior async body is still
|
|
1881
|
+
// awaiting, the prior body's eventual resolution sees myRun !==
|
|
1882
|
+
// runId and bails — preventing stale cleanup from overwriting
|
|
1883
|
+
// the current run's cleanup.
|
|
1884
|
+
const myRun = ++runId;
|
|
1885
|
+
|
|
1544
1886
|
if (effect._cleanup) { effect._cleanup(); effect._cleanup = null; }
|
|
1545
1887
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
1546
1888
|
effect.dependencies.clear();
|
|
@@ -1548,11 +1890,63 @@ function __effect(fn) {
|
|
|
1548
1890
|
__currentEffect = effect;
|
|
1549
1891
|
try {
|
|
1550
1892
|
const result = fn();
|
|
1551
|
-
if (typeof result === 'function')
|
|
1893
|
+
if (typeof result === 'function') {
|
|
1894
|
+
effect._cleanup = result;
|
|
1895
|
+
} else if (result && typeof result.then === 'function') {
|
|
1896
|
+
// Async effect body. We can't unwind a pending await, but we
|
|
1897
|
+
// CAN intercept the eventual resolution and decide whether
|
|
1898
|
+
// to honor any cleanup it returned. Two failure modes are
|
|
1899
|
+
// handled:
|
|
1900
|
+
// - Effect disposed while body was awaiting: run cleanup
|
|
1901
|
+
// immediately so resources release, but don't store it.
|
|
1902
|
+
// - Effect re-ran (newer run superseded this one): same.
|
|
1903
|
+
// In both cases we do NOT touch effect._cleanup, which now
|
|
1904
|
+
// belongs to a different run.
|
|
1905
|
+
result.then(
|
|
1906
|
+
(cleanup) => {
|
|
1907
|
+
if (myRun !== runId || effect._disposed) {
|
|
1908
|
+
if (typeof cleanup === 'function') {
|
|
1909
|
+
try { cleanup(); }
|
|
1910
|
+
catch (e) { console.error('[Rip] superseded async cleanup error:', e); }
|
|
1911
|
+
}
|
|
1912
|
+
return;
|
|
1913
|
+
}
|
|
1914
|
+
if (typeof cleanup === 'function') effect._cleanup = cleanup;
|
|
1915
|
+
},
|
|
1916
|
+
(err) => {
|
|
1917
|
+
// AbortError from a dispose or supersede is expected
|
|
1918
|
+
// (the user passed our signal to fetch/etc. and it
|
|
1919
|
+
// aborted). Swallow silently.
|
|
1920
|
+
if (err && err.name === 'AbortError') return;
|
|
1921
|
+
// Stale rejection from a superseded run: caller has
|
|
1922
|
+
// already moved on, no point surfacing.
|
|
1923
|
+
if (myRun !== runId || effect._disposed) return;
|
|
1924
|
+
console.error('[Rip] async effect error:', err);
|
|
1925
|
+
}
|
|
1926
|
+
);
|
|
1927
|
+
}
|
|
1552
1928
|
} finally { __currentEffect = prev; }
|
|
1553
1929
|
},
|
|
1554
1930
|
|
|
1555
1931
|
dispose() {
|
|
1932
|
+
// Idempotent: a parent disposer chain may legitimately reach the
|
|
1933
|
+
// same effect twice in tangled cleanup paths. Quick exit avoids
|
|
1934
|
+
// re-running cleanup and re-walking already-empty dependencies.
|
|
1935
|
+
if (effect._disposed) return;
|
|
1936
|
+
effect._disposed = true;
|
|
1937
|
+
// Proactive pending-set eviction. The flush-time guard in
|
|
1938
|
+
// __flushEffects also handles this, but pulling the effect out
|
|
1939
|
+
// of __pendingEffects here keeps the set bounded across long
|
|
1940
|
+
// batched cycles and makes disposal semantics direct rather
|
|
1941
|
+
// than dependent on flush ordering.
|
|
1942
|
+
__pendingEffects.delete(effect);
|
|
1943
|
+
// Abort the current signal so any in-flight async work (a
|
|
1944
|
+
// user's fetch with the signal, a setTimeout-via-signal, etc.)
|
|
1945
|
+
// unwinds via AbortError and the body can bail without mutating
|
|
1946
|
+
// signals on a destroyed component.
|
|
1947
|
+
if (controller) {
|
|
1948
|
+
try { controller.abort(); } catch {}
|
|
1949
|
+
}
|
|
1556
1950
|
if (effect._cleanup) { effect._cleanup(); effect._cleanup = null; }
|
|
1557
1951
|
for (const dep of effect.dependencies) dep.delete(effect);
|
|
1558
1952
|
effect.dependencies.clear();
|
|
@@ -1560,7 +1954,29 @@ function __effect(fn) {
|
|
|
1560
1954
|
};
|
|
1561
1955
|
|
|
1562
1956
|
effect.run();
|
|
1563
|
-
|
|
1957
|
+
const dispose = () => effect.dispose();
|
|
1958
|
+
// Auto-register with the current component (if any) so disposers fire
|
|
1959
|
+
// on component unmount. Without this, every __effect created inside a
|
|
1960
|
+
// component's _init / _setup / _create lived forever — its callback
|
|
1961
|
+
// stayed subscribed to its signals, the closure pinned the component,
|
|
1962
|
+
// and any DOM/event-listener cleanup the effect had returned never
|
|
1963
|
+
// fired. The bridge is intentionally cross-module: the reactive
|
|
1964
|
+
// runtime (this file) doesn't depend on components.js, but components.js
|
|
1965
|
+
// exposes a getter on globalThis.__ripComponent at registration time
|
|
1966
|
+
// and we read it lazily so module-load order is irrelevant.
|
|
1967
|
+
//
|
|
1968
|
+
// {skipRegister: true} opts out of auto-registration. Used by factory
|
|
1969
|
+
// blocks (for-loops, if-blocks in render) that maintain their own
|
|
1970
|
+
// local disposers array and call them via the d(detaching) hook.
|
|
1971
|
+
// Without skipRegister, those effects would be registered TWICE — once
|
|
1972
|
+
// in the local factory disposers and again on the parent component's
|
|
1973
|
+
// _disposers — leaking stale disposer references on every block
|
|
1974
|
+
// re-render until the parent itself unmounts.
|
|
1975
|
+
if (!opts || !opts.skipRegister) {
|
|
1976
|
+
const cur = globalThis.__ripComponent?.__getCurrentComponent?.();
|
|
1977
|
+
if (cur) (cur._disposers ??= []).push(dispose);
|
|
1978
|
+
}
|
|
1979
|
+
return dispose;
|
|
1564
1980
|
}
|
|
1565
1981
|
|
|
1566
1982
|
function __batch(fn) {
|
|
@@ -1574,6 +1990,24 @@ function __batch(fn) {
|
|
|
1574
1990
|
}
|
|
1575
1991
|
}
|
|
1576
1992
|
|
|
1993
|
+
// Returns the AbortSignal of the currently-running effect, or null if
|
|
1994
|
+
// called outside an effect or before AbortController is available.
|
|
1995
|
+
// Designed for async-aware effect bodies — capture the signal BEFORE
|
|
1996
|
+
// any await so it stays valid for the duration of the body:
|
|
1997
|
+
//
|
|
1998
|
+
// (in Rip source)
|
|
1999
|
+
// ~>
|
|
2000
|
+
// signal = getEffectSignal()
|
|
2001
|
+
// data = fetch! url, {signal}
|
|
2002
|
+
// this.data = data
|
|
2003
|
+
//
|
|
2004
|
+
// On effect re-run or component unmount, the signal aborts; the
|
|
2005
|
+
// fetch rejects with AbortError; the body unwinds without touching
|
|
2006
|
+
// signals on a destroyed component.
|
|
2007
|
+
function __getEffectSignal() {
|
|
2008
|
+
return __currentEffect ? __currentEffect.signal : null;
|
|
2009
|
+
}
|
|
2010
|
+
|
|
1577
2011
|
function __readonly(value) {
|
|
1578
2012
|
return Object.freeze({ value });
|
|
1579
2013
|
}
|
|
@@ -1615,45 +2049,38 @@ function __catchErrors(fn) {
|
|
|
1615
2049
|
|
|
1616
2050
|
// Register on globalThis for runtime deduplication
|
|
1617
2051
|
if (typeof globalThis !== 'undefined') {
|
|
1618
|
-
globalThis.__rip = { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors };
|
|
2052
|
+
globalThis.__rip = { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors, __getEffectSignal };
|
|
2053
|
+
// Stdlib-style global so user code can call getEffectSignal() in a
|
|
2054
|
+
// ~> body without importing or destructuring. Mirrors how p, pp,
|
|
2055
|
+
// assert, etc. are registered for ergonomic use.
|
|
2056
|
+
globalThis.getEffectSignal ??= __getEffectSignal;
|
|
1619
2057
|
}
|
|
1620
2058
|
|
|
1621
2059
|
// === End Reactive Runtime ===
|
|
1622
|
-
`}}class
|
|
1623
|
-
`),u=
|
|
2060
|
+
`}}class d1{constructor(f={}){this.options={showTokens:!1,showSExpr:!1,...f}}compile(f,_){if(_)this.options={...this.options,..._};let i=null,n=f.split(`
|
|
2061
|
+
`),u=n.findIndex((F)=>F==="__DATA__");if(u!==-1){let F=n.slice(u+1);i=F.length>0?F.join(`
|
|
1624
2062
|
`)+`
|
|
1625
|
-
`:"",f=
|
|
1626
|
-
`)}let
|
|
1627
|
-
//# sourceMappingURL=data:application/json;base64,${
|
|
1628
|
-
//# sourceMappingURL=${this.options.filename}.js.map`;if(A&&
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
globalThis.
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
globalThis.sleep ??= (ms) => new Promise(r => setTimeout(r, ms));
|
|
1638
|
-
globalThis.todo ??= (msg) => { throw new Error(msg || "Not implemented"); };
|
|
1639
|
-
globalThis.warn ??= console.warn;
|
|
1640
|
-
globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
|
|
1641
|
-
`}function v1(){return new w1({}).getReactiveRuntime()}function g1(){return new w1({}).getComponentRuntime()}var V5=`
|
|
1642
|
-
;
|
|
1643
|
-
`,j5=2;function m5(f){let l=/\n?\/\/# sourceMappingURL=data:application\/json(?:;charset=[^;,]+)?;base64,([A-Za-z0-9+/=]+)\s*$/,h=f.match(l);if(!h)return{js:f,mapJSON:null};let w;try{let u=atob(h[1]),_=new Uint8Array(u.length);for(let D=0;D<u.length;D++)_[D]=u.charCodeAt(D);w=new TextDecoder().decode(_)}catch{return{js:f.slice(0,h.index),mapJSON:null}}return{js:f.slice(0,h.index),mapJSON:w}}function v5(f){let l=0;for(let h=0;h<f.length;h++)if(f.charCodeAt(h)===10)l++;return l}function g5(f){let l=f.split(";"),h=[],w=0,u=0,_=0,D=0;for(let c of l){let A=[],$=0;if(c.length>0)for(let R of c.split(",")){if(R.length===0)continue;let M=A3(R);if($+=M[0],M.length===1)A.push({genCol:$});else{w+=M[1],u+=M[2],_+=M[3];let z={genCol:$,src:w,origLine:u,origCol:_};if(M.length>=5)D+=M[4],z.name=D;A.push(z)}}h.push(A)}return h}function x5(f){let l=0,h=0,w=0,u=0,_=0,D=[];for(let c of f){l=0;let A=[];for(let $ of c){if($.src==null)A.push(R1($.genCol-l));else{let R=R1($.genCol-l);if(R+=R1($.src-h),R+=R1($.origLine-w),R+=R1($.origCol-u),$.name!=null)R+=R1($.name-_),_=$.name;h=$.src,w=$.origLine,u=$.origCol,A.push(R)}l=$.genCol}D.push(A.join(","))}return D.join(";")}function r5(f){let l=f.map((U)=>{if(U.mapJSON!==void 0)return{js:U.js,mapJSON:U.mapJSON};return m5(U.js)}),h=l.some((U)=>U.mapJSON),w=l.map((U)=>U.js).join(V5);if(!h)return{js:w,mapJSON:null};let u=[],_=[],D=new Map,c=[],A=new Map;function $(U,Y){if(D.has(U))return D.get(U);let H=u.length;return u.push(U),_.push(Y??null),D.set(U,H),H}function R(U){if(A.has(U))return A.get(U);let Y=c.length;return c.push(U),A.set(U,Y),Y}let M=[],z=0;for(let U=0;U<l.length;U++){let Y=l[U],H={lineOffset:z,srcRemap:[],nameRemap:[],perLineSegs:null};if(Y.mapJSON){let n;try{n=JSON.parse(Y.mapJSON)}catch{n=null}if(n&&typeof n.mappings==="string"){let K=n.sources||[],Z=n.sourcesContent||[];H.srcRemap=K.map((J,N)=>$(J,Z[N]));let G=n.names||[];H.nameRemap=G.map((J)=>R(J)),H.perLineSegs=g5(n.mappings)}}M.push(H);let O=v5(Y.js),q=U<l.length-1?j5:0;z+=O+q}let F=z+1,W=Array(F).fill(null).map(()=>[]);for(let U of M){if(!U.perLineSegs)continue;for(let Y=0;Y<U.perLineSegs.length;Y++){let H=U.lineOffset+Y;if(H>=W.length)while(W.length<=H)W.push([]);for(let O of U.perLineSegs[Y])if(O.src==null)W[H].push({genCol:O.genCol});else{let q={genCol:O.genCol,src:U.srcRemap[O.src],origLine:O.origLine,origCol:O.origCol};if(O.name!=null)q.name=U.nameRemap[O.name];W[H].push(q)}}}let Q=x5(W);return{js:w,mapJSON:JSON.stringify({version:3,sources:u,sourcesContent:_,names:c,mappings:Q})}}function a5(f){if(typeof Buffer<"u")return Buffer.from(f,"utf8").toString("base64");let l=new TextEncoder().encode(f),h="";for(let w=0;w<l.length;w++)h+=String.fromCharCode(l[w]);return btoa(h)}function $3(f){let{js:l,mapJSON:h}=r5(f);if(!h)return l;let w=a5(h);return l+`
|
|
1644
|
-
//# sourceMappingURL=data:application/json;base64,`+w+`
|
|
1645
|
-
`}var R3="3.15.4",M3="2026-04-27@08:44:03GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(v1())();if(!globalThis.__ripComponent)Function(g1())()}var d5=(f)=>{let l=f.match(/^[ \t]*(?=\S)/gm),h=Math.min(...(l||[]).map((w)=>w.length));return f.replace(RegExp(`^[ ]{${h}}`,"gm"),"").trim()},K2=(f)=>String(f).replace(/[\r\n]/g,"").replace(/\s+$/g,"");function U3(f,l){let w=`//# sourceURL=${K2(l)}`,u=/\n?\/\/# sourceMappingURL=[^\n]*\s*$/,_=f.match(u);if(_)return f.slice(0,_.index)+`
|
|
1646
|
-
`+w+f.slice(_.index);return f+`
|
|
1647
|
-
`+w}function F3(f,l){if(!l)return f;return f.replace(/\/\/# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/,(h,w)=>{let u;try{let A=atob(w),$=new Uint8Array(A.length);for(let R=0;R<A.length;R++)$[R]=A.charCodeAt(R);u=new TextDecoder().decode($)}catch{return h}let _;try{_=JSON.parse(u)}catch{return h}_.mappings=";".repeat(l)+_.mappings;let D=new TextEncoder().encode(JSON.stringify(_)),c="";for(let A=0;A<D.length;A++)c+=String.fromCharCode(D[A]);return`//# sourceMappingURL=data:application/json;base64,${btoa(c)}`})}function s5(f,l){let h=`${K2(l)}.js`,w=F3(f,1);return`(async()=>{
|
|
1648
|
-
${U3(w,h)}
|
|
1649
|
-
})()`}if(typeof globalThis<"u")globalThis.__ripDebug={enabled:!0,offsetSourceMap:F3,addSourceURL:U3,sanitizeSourceURL:K2};async function z3(){let f=[],l=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),h=l?.getAttribute("data-src");if(h){for(let w of h.trim().split(/\s+/))if(w)f.push({url:w})}for(let w of document.querySelectorAll('script[type="text/rip"]'))if(w.src)f.push({url:w.src});else{let u=d5(w.textContent);if(u)f.push({code:u})}if(f.length>0){let w=await Promise.allSettled(f.map(async(A)=>{if(!A.url)return;let $=await fetch(A.url);if(!$.ok)throw Error(`${A.url} (${$.status})`);if(A.url.endsWith(".rip"))A.code=await $.text();else{let R=await $.json();A.bundle=R}}));for(let A of w)if(A.status==="rejected")console.warn("Rip: fetch failed:",A.reason.message);let u=[],_=[];for(let A of f)if(A.bundle)u.push(A.bundle);else if(A.code)_.push(A);let D=l?.getAttribute("data-router");if(D!=null&&u.length>0){let A=l?.getAttribute("data-debug")!=="false";if(globalThis.__ripDebug)globalThis.__ripDebug.enabled=A;let $={skipRuntimes:!0,skipExports:!0,skipImports:!0},R=0;for(let z of _){let F=z.url||`inline-${++R}.rip`,W=A?{...$,sourceMap:"inline",filename:F}:$,Q;try{Q=H1(z.code,W)}catch(i){console.error(Z1(i,{source:z.code,file:F,color:!1}));continue}try{await(0,eval)(A?s5(Q,F):`(async()=>{
|
|
2063
|
+
`:"",f=n.slice(0,u).join(`
|
|
2064
|
+
`)}let l=new Y1,c;try{c=l.tokenize(f)}catch(F){throw C1(F,f,this.options.filename)}if(this.options.showTokens)c.forEach((F)=>console.log(`${F[0].padEnd(12)} ${JSON.stringify(F[1])}`)),console.log();let h=null,A=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)A=[...c];if(c=c.filter((F)=>F[0]!=="TYPE_DECL"),l.typeRefNames?.size>0&&!this.options.inlineTypes){let F=new Set,H=!1;for(let W of c){if(W[0]==="IMPORT"){H=!0;continue}if(H&&W[0]==="TERMINATOR"){H=!1;continue}if(H)continue;if(W[0]==="IDENTIFIER")F.add(W[1])}let K=(W)=>!F.has(W);for(let W=c.length-1;W>=0;W--){if(c[W][0]!=="IMPORT")continue;let O=W+1;if(O>=c.length)continue;if(c[O][0]==="CALL_START"||c[O][0]==="(")continue;if(c[O][0]==="STRING")continue;let Q=-1,Y=O;while(Y<c.length&&c[Y][0]!=="TERMINATOR"){if(Q===-1&&c[Y][0]==="FROM")Q=Y;Y++}if(Q===-1)continue;let J=-1,Z=-1;for(let N=W+1;N<Q;N++)if(c[N][0]==="{"){J=N;break}if(J!==-1){for(let N=J+1;N<Q;N++)if(c[N][0]==="}"){Z=N;break}}let q=!1,G=J!==-1?J:Q;for(let N=W+1;N<G;N++){let X=c[N][0];if(X==="IDENTIFIER"||X==="*"){q=!0;break}}if(J===-1||Z===-1){if(q){let N=[],X=W+1;while(X<Q)if(c[X][0]==="AS"&&X+1<Q&&c[X+1][0]==="IDENTIFIER")N.push(c[X+1][1]),X+=2;else if(c[X][0]==="IDENTIFIER")N.push(c[X][1]),X++;else X++;if(N.length===0||!N.every(K))continue;let u1=Y<c.length?Y+1:Y;c.splice(W,u1-W)}continue}let P=[],L=J+1;while(L<Z){let N=L;while(N<Z&&c[N][0]!==",")N++;if(N>L)P.push({start:L,end:N});L=N+1}for(let N of P){let X=null;for(let u1=N.start;u1<N.end;u1++){if(c[u1][0]!=="IDENTIFIER")continue;if(X===null)X=c[u1][1];else if(c[u1-1]?.[0]==="AS")X=c[u1][1]}N.local=X,N.drop=X!=null&&K(X)}if(!P.some((N)=>N.drop))continue;let e=P.every((N)=>N.drop),p=[];if(e&&q){let N=W+1;while(N<J)if(c[N][0]==="AS"&&N+1<J&&c[N+1][0]==="IDENTIFIER")p.push(c[N+1][1]),N+=2;else if(c[N][0]==="IDENTIFIER")p.push(c[N][1]),N++;else N++}if(e)if(!q){let N=Y<c.length?Y+1:Y;c.splice(W,N-W)}else if(p.length>0&&p.every(K)){let N=Y<c.length?Y+1:Y;c.splice(W,N-W)}else{let N=J,X=Z+1,u1=J-1;while(u1>W&&c[u1][0]!==","&&c[u1][0]!=="IDENTIFIER"&&c[u1][0]!=="*")u1--;if(u1>W&&c[u1][0]===",")N=u1;c.splice(N,X-N)}else for(let N=P.length-1;N>=0;N--){let X=P[N];if(!X.drop)continue;let{start:u1,end:b}=X;if(b<Z&&c[b][0]===",")b++;else if(u1>J+1&&c[u1-1][0]===",")u1--;c.splice(u1,b-u1)}}}while(c.length>0&&c[0][0]==="TERMINATOR")c.shift();if(c.every((F)=>F[0]==="TERMINATOR")){if(A&&D2)h=D2(A,["program"],f);return{tokens:c,sexpr:["program"],code:"",dts:h,data:i,reactiveVars:{}}}let w=null;z1.lexer={tokens:c,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let F=this.tokens[this.pos++],H=F[1];if(F.data)H=new String(H),Object.assign(H,F.data);return this.text=H,this.loc=F.loc,this.line=F.loc?.r,w=F.loc,F[0]}};let D;try{D=z1.parse(f)}catch(F){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(f)||/\?\s+\w+\s+\?\s+/.test(f))throw new $1("Nested ternary operators are not supported",{code:"E_PARSE",source:f,file:this.options.filename,suggestion:"Use if/else statements instead.",phase:"parser"});let H=C1(F,f,this.options.filename);if(H.phase==="parser"&&w)H.line=w.r??H.line,H.column=w.c??H.column,H.length=w.n||1;throw H}if(this.options.showSExpr)console.log(K1(D,0,!0)),console.log();let $=null;if(this.options.sourceMap){let F=(this.options.filename||"output")+".js",H=this.options.filename||"input.rip";$=new I2(F,H,f)}let U=new D1({dataSection:i,source:f,filename:this.options.filename,skipPreamble:this.options.skipPreamble,skipRuntimes:this.options.skipRuntimes,skipExports:this.options.skipExports,skipImports:this.options.skipImports,skipDataPart:this.options.skipDataPart,stubComponents:this.options.stubComponents,reactiveVars:this.options.reactiveVars,inlineTypes:this.options.inlineTypes,schemaMode:this.options.schemaMode,sourceMap:$}),R=U.compile(D),z=$?$.toJSON():null,M=$?$.toReverseMap():null;if(z&&this.options.sourceMap==="inline"){let F;if(typeof Buffer<"u")F=Buffer.from(z,"utf8").toString("base64");else{let H=new TextEncoder().encode(z),K="";for(let W=0;W<H.length;W++)K+=String.fromCharCode(H[W]);F=btoa(K)}R+=`
|
|
2065
|
+
//# sourceMappingURL=data:application/json;base64,${F}`}else if(z&&this.options.filename)R+=`
|
|
2066
|
+
//# sourceMappingURL=${this.options.filename}.js.map`;if(A&&D2)h=D2(A,D,f);return{tokens:c,sexpr:D,code:R,dts:h,map:z,reverseMap:M,data:i,reactiveVars:U.reactiveVars}}compileToJS(f){return this.compile(f).code}compileToSExpr(f){return this.compile(f).sexpr}}q3(D1,Y1);D1.prototype.emitEnum=function(_,i,n){let[u,l]=i,c=u?.valueOf?.()??u,h=[];if(Array.isArray(l)){let D=l[0]==="block"?l.slice(1):[l];for(let $ of D)if(Array.isArray($)){if($[0]?.valueOf?.()==="="){let U=$[1]?.valueOf?.()??$[1],R=$[2]?.valueOf?.()??$[2];h.push([U,R])}}}if(h.length===0)return`const ${c} = {}`;let A=h.map(([D,$])=>`${D}: ${$}`).join(", "),w=h.map(([D,$])=>`${$}: "${D}"`).join(", ");return`const ${c} = {${A}, ${w}}`};i2(null,D1);function $2(f,_={}){return new d1(_).compile(f)}function Z1(f,_={}){return new d1(_).compileToJS(f)}function k1(){return new D1({}).getReactiveRuntime()}function p1(){return new D1({}).getComponentRuntime()}var G3="3.16.1",X3="2026-06-05@18:16:05GMT";if(typeof globalThis<"u"){if(!globalThis.__rip)Function(k1())();if(!globalThis.__ripComponent)Function(p1())()}var U0=(f)=>{let _=f.match(/^[ \t]*(?=\S)/gm),i=Math.min(...(_||[]).map((n)=>n.length));return f.replace(RegExp(`^[ ]{${i}}`,"gm"),"").trim()},L2=(f)=>String(f).replace(/[\r\n]/g,"").replace(/\s+$/g,"");function T2(f){let _=/^(\s*)import\s+([^'"]+?)\s+from\s+['"](@rip-lang\/[^'"]+)['"];?\s*$/gm;return f.replace(_,(i,n,u,l)=>{let c=u.trim();if(c.startsWith("type "))return`${n}// type-only import erased: ${l}`;let h=c.indexOf("{"),A=c.lastIndexOf("}");if(h<0||A<=h)return console.warn(`[Rip] Skipping non-named import from ${l}; only \`import { … } from '@rip-lang/*'\` is supported in browser bundles.`),i;let w=c.slice(h+1,A),D=[];for(let $ of w.split(",")){let U=$.trim().replace(/^type\s+/,"");if(!U)continue;if(/\s+as\s+/.test(U)){let[R,z]=U.split(/\s+as\s+/).map((M)=>M.trim());D.push(`${R}: ${z}`)}else D.push(U)}if(D.length===0)return`${n}// import erased: ${l}`;return`${n}const { ${D.join(", ")} } = globalThis;`})}function P3(f,_){let n=`//# sourceURL=${L2(_)}`,u=/\n?\/\/# sourceMappingURL=[^\n]*\s*$/,l=f.match(u);if(l)return f.slice(0,l.index)+`
|
|
2067
|
+
`+n+f.slice(l.index);return f+`
|
|
2068
|
+
`+n}function y3(f,_){if(!_)return f;return f.replace(/\/\/# sourceMappingURL=data:application\/json;base64,([A-Za-z0-9+/=]+)/,(i,n)=>{let u;try{let A=atob(n),w=new Uint8Array(A.length);for(let D=0;D<A.length;D++)w[D]=A.charCodeAt(D);u=new TextDecoder().decode(w)}catch{return i}let l;try{l=JSON.parse(u)}catch{return i}l.mappings=";".repeat(_)+l.mappings;let c=new TextEncoder().encode(JSON.stringify(l)),h="";for(let A=0;A<c.length;A++)h+=String.fromCharCode(c[A]);return`//# sourceMappingURL=data:application/json;base64,${btoa(h)}`})}function $0(f,_){let i=`${L2(_)}.js`,n=y3(f,1);return`(async()=>{
|
|
2069
|
+
${P3(n,i)}
|
|
2070
|
+
})()`}if(typeof globalThis<"u")globalThis.__ripDebug={enabled:!0,offsetSourceMap:y3,addSourceURL:P3,sanitizeSourceURL:L2};async function S3(){let f=[],_,i=document.querySelector('script[src$="rip.min.js"], script[src$="rip.js"]'),n=i?.getAttribute("data-src");if(n!==null&&n!==void 0){for(let c of n.trim().split(/\s+/))if(c)f.push({url:c})}else if(i&&/^https?:$/.test(location.protocol))f.push({url:"/app",optional:!0});for(let c of document.querySelectorAll('script[type="text/rip"]'))if(c.src)f.push({url:c.src});else{let h=U0(c.textContent);if(h)f.push({code:h})}if(f.length>0){let c=await Promise.allSettled(f.map(async(U)=>{if(!U.url)return;let R=await fetch(U.url);if(!R.ok)throw Error(`${U.url} (${R.status})`);if(U.url.endsWith(".rip"))U.code=await R.text();else{let z=await R.json();U.bundle=z}}));for(let U=0;U<c.length;U++){let R=c[U];if(R.status==="rejected"&&!f[U].optional)console.warn("Rip: fetch failed:",R.reason.message)}let h=[],A=[];for(let U of f)if(U.bundle)h.push(U.bundle);else if(U.code)A.push(U);let w=i?.getAttribute("data-router");_=h[h.length-1];let D,$;if(w!=null)D=w!=="false",$=w==="hash";else D=!!_?.data?.router,$=!1;if(D&&h.length>0){let U=i?.getAttribute("data-debug")!=="false";if(globalThis.__ripDebug)globalThis.__ripDebug.enabled=U;let R={skipRuntimes:!0,skipExports:!0,skipImports:!0},z=0;for(let F of A){let H=F.url||`inline-${++z}.rip`,K=U?{...R,sourceMap:"inline",filename:H}:R,W;try{W=T2(Z1(F.code,K))}catch(O){console.error(b1(O,{source:F.code,file:H,color:!1}));continue}try{await(0,eval)(U?$0(W,H):`(async()=>{
|
|
2071
|
+
${W}
|
|
2072
|
+
})()`)}catch(O){console.error(`Rip runtime error in ${H}:`,O)}}let M=I1.modules?.["app.rip"];if(M?.launch){let F=i.getAttribute("data-persist"),H={bundle:_,hash:$};if(F!=null)H.persist=F==="local"?"local":!0;await M.launch(H)}}else{let U=[];for(let H of h){let K=H.modules||H.components||{};for(let[W,O]of Object.entries(K))U.push({code:O,url:W});if(H.data){let W=i?.getAttribute("data-state"),O={};if(W)try{O=JSON.parse(W)}catch{}Object.assign(O,H.data),i?.setAttribute("data-state",JSON.stringify(O))}}if(U.push(...A),h.length>0&&typeof globalThis.createComponents==="function"){let H=globalThis.createComponents();for(let K of h){let W=K.modules||K.components;if(W)H.load(W)}if(typeof window<"u"){if(!window.__RIP__)window.__RIP__={};window.__RIP__.components=H}}let R=i?.getAttribute("data-debug")!=="false";if(globalThis.__ripDebug)globalThis.__ripDebug.enabled=R;let z={skipRuntimes:!0,skipExports:!0,skipImports:!0},M=[],F=0;for(let H of U){if(!H.code)continue;let K=H.url||`inline-${++F}.rip`,W=R?{...z,sourceMap:"inline",filename:K}:z;try{let O=T2(Z1(H.code,W));M.push({js:O,url:K})}catch(O){console.error(b1(O,{source:H.code,file:K,color:!1}))}}if(!globalThis.__ripApp&&i){let H=globalThis.createStash;if(H){let K={},W=i.getAttribute("data-state");if(W)try{K=JSON.parse(W)}catch(Y){console.error("Rip: invalid data-state JSON:",Y.message)}let O=H({data:K});if(globalThis.__ripApp=O,typeof window<"u")window.app=O;let Q=i.getAttribute("data-persist");if(Q!=null&&globalThis.persistStash)globalThis.persistStash(O,{local:Q==="local"})}}if(M.length>0){let H=i?.getAttribute("data-mount"),K=i?.getAttribute("data-target")||"body",W=H?`
|
|
2073
|
+
${H}.mount(${JSON.stringify(K)});
|
|
2074
|
+
`:"",O=J3(M.map((J)=>({js:J.js}))),Q=H?O.replace(/(\n\/\/# sourceMappingURL=[^\n]*\n?)?$/,W+"$1"):O,Y=!0;try{await(0,eval)(`(async()=>{
|
|
1650
2075
|
${Q}
|
|
1651
|
-
})()`)}catch(
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
${l}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");w=w.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(w);if(u&&typeof u.then==="function")return u.then((_)=>{if(_!==void 0)globalThis._=_;return _});if(u!==void 0)globalThis._=u;return u}catch(l){console.error(Z1(l,{source:f,color:!1}));return}}if(typeof globalThis<"u")globalThis.rip=W3,globalThis.importRip=J1,globalThis.compileToJS=H1,globalThis.__ripExports={compile:f2,compileToJS:H1,formatSExpr:z1,getStdlibCode:m1,VERSION:R3,BUILD_DATE:M3,getReactiveRuntime:v1,getComponentRuntime:g1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let l=()=>z3().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(l));else queueMicrotask(l)});var h2={};y2(h2,{throttle:()=>p5,stash:()=>r3,setContext:()=>v3,raw:()=>L1,persistStash:()=>a3,launch:()=>u0,isStash:()=>k5,hold:()=>e5,hasContext:()=>T3,getContext:()=>b3,delay:()=>d3,debounce:()=>t5,createRouter:()=>k3,createResource:()=>o5,createRenderer:()=>o3,createComponents:()=>s3});var n2,i3,X2,H3,S2,P1,c1,Q3,Y3,P2,O3,K3,y1,A1,n3,q3,G3,Z3,J3,X3,S3,P3,$1,q2,r1,a1,l2,N3,E3,_2,x1,I3,y3,B3,G2,Z2,b3,L3,N2,T3,C3,J2,S1,E2,V3,j3,B1,m3,v3,X1,g3,I1,b1,x3;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,l)=>{if(!f)throw Error(l||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.raise??=(f,l)=>{throw l!==void 0?new f(l):Error(f)};globalThis.rand??=(f,l)=>l!==void 0?(f>l&&([f,l]=[l,f]),Math.floor(Math.random()*(l-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((l)=>setTimeout(l,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((l,h)=>f.map((w)=>w[h]));({__state:c1,__effect:P1,__batch:S2}=globalThis.__rip);({setContext:v3,getContext:b3,hasContext:T3}=globalThis.__ripComponent||{});X2=new WeakMap;n2=new WeakMap;q2=0;l2=c1(0);$1=0;J2=function(f){return typeof f==="string"&&(f.indexOf(".")!==-1||f.indexOf("/")!==-1||f.indexOf("[")!==-1)};C3=function(f){return/^-?\d+$/.test(f)};N2=function(f,l){let h;if(!f[Symbol.for("signals")])Object.defineProperty(f,Symbol.for("signals"),{value:new Map,enumerable:!1});if(h=f[Symbol.for("signals")].get(l),!h)h=c1(f[l]),f[Symbol.for("signals")].set(l,h);return h};S1=function(f){return N2(f,Symbol.for("keys"))};x3=function(f){let l;if(!(f!=null&&typeof f==="object"))return f;if(f[Symbol.for("stash")])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(l=X2.get(f),l)return l;return E2(f)};E2=function(f){let l,h;return h=null,l={get:function(w,u){let _,D,c;if(u===Symbol.for("stash"))return!0;if(u===Symbol.for("raw"))return w;if(typeof u==="symbol")return Reflect.get(w,u);if(u==="length"&&Array.isArray(w))return S1(w).value,w.length;if(!$1&&J2(u))return X1(h,u);if(_=g3(h,u),_)return _;if(D=N2(w,u),c=D.value,c!=null&&typeof c==="object")return x3(c);return c},set:function(w,u,_){let D,c;if(!$1&&J2(u))return I1(h,u,_),!0;if(D=w[u],c=_?.[Symbol.for("raw")]?_[Symbol.for("raw")]:_,c===D)return!0;if(w[u]=c,w[Symbol.for("signals")]?.has(u))w[Symbol.for("signals")].get(u).value=c;if(D===void 0&&c!==void 0)S1(w).value=++q2;return l2.value++,!0},deleteProperty:function(w,u){let _;if(delete w[u],_=w[Symbol.for("signals")]?.get(u),_!=null)_.value=void 0;return S1(w).value=++q2,l2.value++,!0},ownKeys:function(w){return S1(w).value,Reflect.ownKeys(w)}},h=new Proxy(f,l),X2.set(f,h),h};i3=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;b1=function(f){let l,h,w,u,_;w=("."+f).split(i3),w.shift(),_=[],h=0;while(h<w.length){if(u=w[h],l=u[0],l==="."||l==="/")_.push(u.slice(1));else if(l==="[")if(u[1]==='"'||u[1]==="'")_.push(u.slice(2,-2));else _.push(+u.slice(1,-1));h+=2}return _};B1=function(f,l){let h;if(typeof f==="number"&&f<0){if(h=L1(l),Array.isArray(h))return h.length+f}return f};X1=function(f,l){let h,w,u;return u=b1(l),h=f,$1++,(()=>{try{for(let _ of u){if(h==null)return;h=h[B1(_,h)]}return h}finally{$1--}})()};I1=function(f,l,h){let w,u,_,D,c,A;return A=b1(l),D=f,$1++,(()=>{try{for(let $=0;$<A.length;$++){let R=A[$];if(u=B1(R,D),$===A.length-1)D[u]=h;else{if(D[u]==null)_=A[$+1],D[u]=typeof _==="number"||C3(_)?[]:{};D=D[u]}}return h}finally{$1--}})()};H3={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0};g3=function(f,l){let h,w;if(!H3[l])return;if(h=n2.get(f),!h)h={},n2.set(f,h);if(h[l])return h[l];return w=(()=>{switch(l){case"inc":return function(u,_=1){let D;return D=X1(f,u)??0,I1(f,u,D+_)};case"dec":return function(u,_=1){let D;return D=X1(f,u)??0,I1(f,u,D-_)};case"flip":return function(u){let _;return _=X1(f,u)??!1,I1(f,u,!_)};case"join":return function(u,_){return S2(function(){let D,c,A;if(c=X1(f,u),!(c!=null&&typeof c==="object"))I1(f,u,{}),c=X1(f,u);return $1++,(()=>{try{return(()=>{let $=[];for(let R in _){let M=_[R];$.push(c[R]=M)}return $})()}finally{$1--}})()})};case"keys":return function(u){let _,D,c,A;return $1++,(()=>{try{c=b1(u),_=f;for(let $ of c){if(_==null)return[];_=_[B1($,_)]}if(!(_!=null&&typeof _==="object"))return[];return A=L1(_),S1(A).value,Object.keys(A)}finally{$1--}})()};case"has":return function(u){let _,D,c,A,$,R;return $1++,(()=>{try{if($=b1(u),!($.length>0))return!1;c=f;for(let M=0;M<$.length;M++){let z=$[M];if(D=B1(z,c),M===$.length-1)return R=L1(c),S1(R).value,Object.prototype.hasOwnProperty.call(R,D);if(c==null)return!1;c=c[D]}return!1}finally{$1--}})()};case"del":return function(u){let _,D,c,A,$;return $1++,(()=>{try{if($=b1(u),!($.length>0))return;return c=f,(()=>{let R=[];for(let M=0;M<$.length;M++){let z=$[M];if(D=B1(z,c),M===$.length-1){delete c[D];return}if(c==null)return;R.push(c=c[D])}return R})()}finally{$1--}})()}}})(),h[l]=w,w};var r3=function(f={}){return E2(f)},L1=function(f){return f?.[Symbol.for("raw")]?f[Symbol.for("raw")]:f},k5=function(f){return f?.[Symbol.for("stash")]===!0},a3=function(f,l={}){let h,w,u,_,D,c,A,$;if(A=L1(f)||f,A[Symbol.for("persisted")])return;A[Symbol.for("persisted")]=!0,D=l.local?localStorage:sessionStorage,c=l.key||"__rip_app";try{if(u=D.getItem(c),u){_=JSON.parse(u);for(let R in _){let M=_[R];f.data[R]=M}}}catch{}return h=function(){return(()=>{try{return D.setItem(c,JSON.stringify(L1(f.data)))}catch{return null}})()},P1(function(){let R;return l2.value,R=setTimeout(h,2000),function(){return clearTimeout(R)}}),window.addEventListener("beforeunload",h)},o5=function(f,l={}){let h,w,u,_,D;if(h=c1(l.initial||null),u=c1(!1),w=c1(null),_=async function(){let c;return u.value=!0,w.value=null,await(async()=>{try{return c=await f(),h.value=c}catch(A){return w.value=A}finally{u.value=!1}})()},D={data:void 0,loading:void 0,error:void 0,refetch:_},Object.defineProperty(D,"data",{get:function(){return h.value}}),Object.defineProperty(D,"loading",{get:function(){return u.value}}),Object.defineProperty(D,"error",{get:function(){return w.value}}),!l.lazy)_();return D};a1=function(f){return typeof f==="function"?f:function(){return f.value}};r1=function(f,l){let h;return h={read:function(){return f.read()}},Object.defineProperty(h,"value",{get:function(){return f.value},set:function(w){return l.value=w}}),h};var d3=function(f,l){let h,w;return h=a1(l),w=c1(!!h()),P1(function(){let u;if(h())return u=setTimeout(function(){return w.value=!0},f),function(){return clearTimeout(u)};else return w.value=!1}),typeof l!=="function"?r1(w,l):w},t5=function(f,l){let h,w;return h=a1(l),w=c1(h()),P1(function(){let u,_;return _=h(),u=setTimeout(function(){return w.value=_},f),function(){return clearTimeout(u)}}),typeof l!=="function"?r1(w,l):w},p5=function(f,l){let h,w,u;return h=a1(l),u=c1(h()),w=0,P1(function(){let _,D,c,A;if(A=h(),_=Date.now(),D=f-(_-w),D<=0)return u.value=A,w=_;else return c=setTimeout(function(){return u.value=h(),w=Date.now()},D),function(){return clearTimeout(c)}}),typeof l!=="function"?r1(u,l):u},e5=function(f,l){let h,w;return h=a1(l),w=c1(!!h()),P1(function(){let u;if(h())return w.value=!0;else return u=setTimeout(function(){return w.value=!1},f),function(){return clearTimeout(u)}}),typeof l!=="function"?r1(w,l):w},s3=function(){let f,l,h,w;return l=new Map,w=[],f=new Map,h=function(u,_){let D,c=[];for(let A of w)c.push(A(u,_));return c},{read:function(u){return l.get(u)},write:function(u,_){let D;return D=!l.has(u),l.set(u,_),f.delete(u),h(D?"create":"change",u)},del:function(u){return l.delete(u),f.delete(u),h("delete",u)},exists:function(u){return l.has(u)},size:function(){return l.size},list:function(u=""){let _,D,c,A;A=[],D=u?u+"/":"";for(let[$]of l)if($.startsWith(D)){if(c=$.slice(D.length),c.includes("/"))continue;A.push($)}return A},listAll:function(u=""){let _,D,c;c=[],D=u?u+"/":"";for(let[A]of l)if(A.startsWith(D))c.push(A);return c},load:function(u){let _,D,c=[];for(let A in u){let $=u[A];c.push(l.set(A,$))}return c},watch:function(u){return w.push(u),function(){return w.splice(w.indexOf(u),1)}},getCompiled:function(u){return f.get(u)},setCompiled:function(u,_){return f.set(u,_)}}};B3=function(f){let l;if(l=f.replace(/\.rip$/,""),l=l.replace(/\[\.\.\.(\w+)\]/g,"*$1"),l=l.replace(/\[(\w+)\]/g,":$1"),l==="index")return"/";return l=l.replace(/\/index$/,""),"/"+l};j3=function(f){let l,h;return l=[],h=f.replace(/\*(\w+)/g,function(w,u){return l.push(u),"(.+)"}).replace(/:(\w+)/g,function(w,u){return l.push(u),"([^/]+)"}),{regex:new RegExp("^"+h+"$"),names:l}};V3=function(f,l){let h,w,u,_,D;for(let c of l)if(w=f.match(c.regex.regex),w){_={};for(let A=0;A<c.regex.names.length;A++){let $=c.regex.names[A];_[$]=decodeURIComponent(w[A+1])}return{route:c,params:_}}return null};_2=function(f,l="components"){let h,w,u,_,D,c,A,$,R,M;$=[],_=new Map,h=f.listAll(l);for(let z of h){if(A=z.slice(l.length+1),!A.endsWith(".rip"))continue;if(D=A.split("/").pop(),D==="_layout.rip"){w=A==="_layout.rip"?"":A.slice(0,-12),_.set(w,z);continue}if(D.startsWith("_"))continue;if(R=A.split("/"),R.length>1&&R.some(function(F,W){return W<R.length-1&&F.startsWith("_")}))continue;M=B3(A),c=j3(M),$.push({pattern:M,regex:c,file:z,rel:A})}return $.sort(function(z,F){let W,Q,i,U;if(Q=(z.pattern.match(/:/g)||[]).length,U=(F.pattern.match(/:/g)||[]).length,W=z.pattern.includes("*")?1:0,i=F.pattern.includes("*")?1:0,W!==i)return W-i;if(Q!==U)return Q-U;return z.pattern.localeCompare(F.pattern)}),{routes:$,layouts:_}};L3=function(f,l,h){let w,u,_,D,c,A;if(w=[],D=f.slice(l.length+1),A=D.split("/"),u="",h.has(""))w.push(h.get(""));for(let $=0;$<A.length;$++){let R=A[$];if($===A.length-1)break;if(u=u?u+"/"+R:R,h.has(u))w.push(h.get(u))}return w};var k3=function(f,l={}){let h,w,u,_,D,c,A,$,R,M,z,F,W,Q,i,U,Y,H,O,q,n;if(Y=l.root||"components",R=l.base||"",M=l.hash||!1,W=l.onError||null,O=function(K){return R&&K.startsWith(R)?K.slice(R.length)||"/":K},$=function(K){return R?R+K:K},i=function(){let K;if(M){if(K=location.hash.slice(1),!K)return"/";return K[0]==="/"?K:"/"+K}else return location.pathname+location.search+location.hash},n=function(K){return M?K==="/"?location.pathname:"#"+K.slice(1):$(K)},D=c1(O(M?i():location.pathname)),_=c1({}),A=c1(null),w=c1([]),c=c1({}),h=c1(""),u=d3(100,c1(!1)),q=_2(f,Y),z=new Set,f.watch(function(K,Z){if(!Z.startsWith(Y+"/"))return;return q=_2(f,Y)}),U=function(K){let Z,G,J,N,g,L;if(g=K.split("?")[0].split("#")[0],J=O(g),J=J[0]==="/"?J:"/"+J,N=K.split("?")[1]?.split("#")[0]||"",G=K.includes("#")?K.split("#")[1]:"",L=V3(J,q.routes),L){S2(function(){return D.value=J,_.value=L.params,A.value=L.route,w.value=L3(L.route.file,Y,q.layouts),c.value=Object.fromEntries(new URLSearchParams(N)),h.value=G});for(let T of z)T(H.current);return!0}if(W)W({status:404,path:J});return!1},Q=function(){return U(i())},typeof window<"u")window.addEventListener("popstate",Q);if(F=function(K){let Z,G,J;if(K.button!==0||K.metaKey||K.ctrlKey||K.shiftKey||K.altKey)return;G=K.target;while(G&&G.tagName!=="A")G=G.parentElement;if(!G?.href)return;if(J=new URL(G.href,location.origin),J.origin!==location.origin)return;if(G.target==="_blank"||G.hasAttribute("data-external"))return;return K.preventDefault(),Z=M&&J.hash?J.hash.slice(1)||"/":J.pathname+J.search+J.hash,H.push(Z)},typeof document<"u")document.addEventListener("click",F);return H={push:function(K){return U(K)?history.pushState(null,"",n(D.read())):void 0},replace:function(K){return U(K)?history.replaceState(null,"",n(D.read())):void 0},back:function(){return history.back()},forward:function(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate:function(K){return z.add(K),function(){return z.delete(K)}},rebuild:function(){return q=_2(f,Y)},routes:void 0,init:function(){return U(i()),H},destroy:function(){if(typeof window<"u")window.removeEventListener("popstate",Q);if(typeof document<"u")document.removeEventListener("click",F);return z.clear()}},Object.defineProperty(H,"current",{get:function(){return{path:D.value,params:_.value,route:A.value,layouts:w.value,query:c.value,hash:h.value}}}),Object.defineProperty(H,"path",{get:function(){return D.value}}),Object.defineProperty(H,"params",{get:function(){return _.value}}),Object.defineProperty(H,"route",{get:function(){return A.value}}),Object.defineProperty(H,"layouts",{get:function(){return w.value}}),Object.defineProperty(H,"query",{get:function(){return c.value}}),Object.defineProperty(H,"hash",{get:function(){return h.value}}),Object.defineProperty(H,"navigating",{get:function(){return u.value},set:function(K){return u.value=K}}),Object.defineProperty(H,"routes",{get:function(){return q.routes}}),H};N3=function(f,l){let h,w;if(f.length!==l.length)return!1;for(let u=0;u<f.length;u++)if(f[u]!==l[u])return!1;return!0};Z2=function(f){let l,h;for(let w in f){let u=f[w];if(typeof u==="function"&&(u.prototype?.mount||u.prototype?._create))return u}return typeof f.default==="function"?f.default:void 0};G2=function(f){let l,h,w;h={};for(let u in f){let _=f[u];if(typeof _==="function"&&(_.prototype?.mount||_.prototype?._create))h[u]=_}return h};y3=function(f){let l;return l=f.split("/").pop().replace(/\.rip$/,""),l.replace(/(^|[-_])([a-z])/g,function(h,w,u){return u.toUpperCase()})};E3=function(f,l="components"){let h,w,u,_;w={};for(let D of f.listAll(l)){if(!D.endsWith(".rip"))continue;if(h=D.split("/").pop(),h.startsWith("_"))continue;if(u=y3(D),w[u])console.warn(`[Rip] Component name collision: ${u} (${w[u]} vs ${D})`);w[u]=D}return w};m3=function(f,l,h){let w,u,_,D,c,A;if(_=f.replace(/^(\.\.\/|\.\/)+/,""),w=_.split("/").pop(),l){c=l.split("/"),c.pop();for(let $ of f.split("/"))if($==="..")c.pop();else if($!==".")c.push($);if(u=c.join("/"),h.exists(u))return u}if(h.exists(`components/_lib/${_}`))return`components/_lib/${_}`;if(h.exists(`components/${_}`))return`components/${_}`;for(let $ of h.listAll("components"))if($.endsWith(`/${w}`))return $;return null};x1=async function(f,l,h=null,w=null,u=null){let _,D,c,A,$,R,M,z,F,W,Q,i,U,Y,H,O,q,n,K,Z,G,J,N,g,L,T,X,_1,S,I,y,v,k,h1;if(h&&w){if(c=h.getCompiled(w),c)return c}if(u&&w)u.compiling??={},u.compiling[w]=!0;if(A=globalThis?.__ripDebug?.enabled&&w,_1=0,U=A?l(f,{sourceMap:"inline",filename:w}):l(f),u){if(i=new Set,h){I=/^(\s*import\s+(?:\{([^}]+)\}\s+from\s+|.*?\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm,O=Array.from(U.matchAll(I));for(let P=O.length-1;P>=0;P--){let B=O[P];if([W,T,G,y,L]=B,v=m3(y,w,h),v===w)continue;if(!v){if(n=`[Rip] Could not resolve import: ${y}`,w)n+=` (from ${w})`;console.warn(n);continue}if(!u.blobUrls?.[v]){if(u.compiling?.[v])continue;if(M=h.read(v),M)await x1(M,l,h,v,u)}if(D=u.blobUrls?.[v],D){if(S=`${T}${D}${L}`,U=U.slice(0,B.index)+S+U.slice(B.index+W.length),G)for(let V of G.split(","))i.add(V.trim().split(/\s+as\s+/).pop().trim())}}}N={};for(let P in u.map){let B=u.map[P];if(i.has(P))continue;if(B!==w&&U.includes(`new ${P}(`)){if(!u.classes[P]){if(M=h.read(B),M){$=await x1(M,l,h,B,u),F=G2($);for(let V in F){let r=F[V];u.classes[V]=r}}}if(u.classes[P])N[P]=!0}}if(J=Object.keys(N),J.length>0)X=`const {${J.join(", ")}} = globalThis['${u.key}'];
|
|
1658
|
-
|
|
1659
|
-
`:"",Q)_1+=1;if(z=Q+U,A&&_1>0){if(g=globalThis?.__ripDebug?.offsetSourceMap,g)z=g(z,_1)}if(_=new Blob([z],{type:"application/javascript"}),k=URL.createObjectURL(_),u&&w){if(u.blobUrls??={},u.blobUrls[w]=k,u.compiling)delete u.compiling[w]}if(q=await import(k),u){F=G2(q);for(let P in F){let B=F[P];u.classes[P]=B}}if(h&&w)h.setCompiled(w,q);return q};var o3=function(f={}){let l,h,w,u,_,D,c,A,$,R,M,z,F,W,Q,i,U,Y,H,O,q,n;if({router:O,app:l,components:_,resolver:H,compile:w,target:q,onError:U}=f,D=typeof q==="string"?document.querySelector(q):q||document.getElementById("app"),!D)D=document.createElement("div"),D.id="app",document.body.appendChild(D);return c=null,R=null,$=null,A=[],F=[],Q=D,z=0,M=null,u=new Map,W=f.cacheSize||10,h=function(){let K,Z;if(c&&R){if(c.beforeUnmount)c.beforeUnmount();if(u.set(R,c),u.size>W){if(Z=u.keys().next().value,K=u.get(Z),K.unmounted)K.unmounted();u.delete(Z)}return c=null,R=null}},n=function(){let K;h();for(let Z=F.length-1;Z>=0;Z--){let G=F[Z];if(G.beforeUnmount)G.beforeUnmount();if(G.unmounted)G.unmounted();G._target?.remove()}return F=[],Q=D},_.watch(function(K,Z){let G;if(u.has(Z)){if(G=u.get(Z),G.unmounted)G.unmounted();return u.delete(Z)}}),i=async function(K){let Z,G,J,N,g,L,T,X,_1,S,I,y,v,k,h1,P,B,V,r,o,e,C,a;if({route:o,params:B,layouts:_1,query:r}=K,!o)return;if(o.file===R&&JSON.stringify(B)===JSON.stringify($))return;return $=B,N=++z,O.navigating=!0,await(async()=>{try{if(C=_.read(o.file),!C){if(U)U({status:404,message:`File not found: ${o.file}`});O.navigating=!1;return}if(v=await x1(C,w,_,o.file,H),N!==z){O.navigating=!1;return}if(Z=Z2(v),!Z){if(U)U({status:500,message:`No component found in ${o.file}`});O.navigating=!1;return}if(y=!N3(_1,A),h1=c?._target,y)n();else h();if(k=y?D:Q,y&&_1.length>0){D.innerHTML="",k=D;for(let s of _1){if(I=_.read(s),!I)continue;if(S=await x1(I,w,_,s,H),N!==z){O.navigating=!1;return}if(G=Z2(S),!G)continue;if(L=new G({app:l,params:B,router:O}),L.beforeMount)L.beforeMount();a=document.createElement("div"),a.setAttribute("data-layout",s),k.appendChild(a),L.mount(a),F.push(L),e=a.querySelector("#content")||a,k=e}A=[..._1],Q=k}else if(y)D.innerHTML="",A=[],Q=D;if(J=u.get(o.file),J){if(u.delete(o.file),k.appendChild(J._target),c=J,R=o.file,B)J.params=B;if(r)J.query=r;if(J.mounted)J.mounted();if(J.load)await J.load(B,r)}else{if(P=document.createElement("div"),P.setAttribute("data-component",o.file),k.appendChild(P),T=new Z({app:l,params:B,query:r,router:O}),T.beforeMount)T.beforeMount();if(T.mount(P),c=T,R=o.file,T.load)await T.load(B,r)}return h1?.remove(),O.navigating=!1}catch(s){if(O.navigating=!1,console.error(`Renderer: error mounting ${o.file}:`,s),U)U({status:500,message:s.message,error:s});g=!1;for(let p=F.length-1;p>=0;p--){let E=F[p];if(E.onError)try{E.onError(s),g=!0;break}catch(x){console.error("Renderer: error boundary failed:",x)}}return(()=>{if(!g)return V=document.createElement("pre"),V.style.cssText="color:red;padding:1em",V.textContent=s.stack||s.message,D.innerHTML="",D.appendChild(V)})()}})()},Y={start:function(){return M=P1(function(){let K;return K=O.current,K.route?i(K):void 0}),O.init(),Y},stop:function(){if(n(),M)M(),M=null;return D.innerHTML=""},remount:function(){let K;return K=O.current,K.route?i(K):void 0},cache:u},Y};I3=function(f){let l,h,w;return w=1000,h=30000,l=function(){let u;return u=new EventSource(f),u.addEventListener("connected",function(){return w=1000,console.log("[Rip] Hot reload connected")}),u.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),u.addEventListener("css",function(){let _,D=[];for(let c of document.querySelectorAll('link[rel="stylesheet"]'))f=new URL(c.href),f.searchParams.set("_t",Date.now()),c.href=f.toString();return D}),u.onerror=function(){return u.close(),setTimeout(l,w),w=Math.min(w*2,h)}},l()};var u0=async function(f="",l={}){let h,w,u,_,D,c,A,$,R,M,z,F,W,Q,i,U,Y;if(globalThis.__ripLaunched=!0,typeof f==="object")l=f,f="";if(f=f.replace(/\/+$/,""),Y=l.target||"#app",c=l.compile||null,F=l.persist||!1,M=l.hash||!1,!c)c=globalThis?.compileToJS||null;if(typeof document<"u"&&!document.querySelector(Y))A=document.createElement("div"),A.id=Y.replace(/^#/,""),document.body.prepend(A);if(l.bundle)u=l.bundle;else if(l.bundleUrl){if(z={},R=`__rip_etag_${l.bundleUrl}`,_=sessionStorage.getItem(R),_)z["If-None-Match"]=_;if(Q=await fetch(l.bundleUrl,{headers:z}),Q.status===304)u=JSON.parse(sessionStorage.getItem(`${R}_data`));else if(Q.ok){if(u=await Q.json(),$=Q.headers.get("etag"),$)sessionStorage.setItem(R,$),sessionStorage.setItem(`${R}_data`,JSON.stringify(u))}else throw Error(`launch: ${l.bundleUrl} (${Q.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(h=r3({components:{},routes:{},data:{}}),globalThis.__ripApp=h,u.data)h.data=u.data;if(u.routes)h.routes=u.routes;if(F&&typeof sessionStorage<"u")a3(h,{local:F==="local",key:`__rip_${f}`});if(w=s3(),u.components)w.load(u.components);if(D=`__rip_${f.replace(/\//g,"_")||"app"}`,i={map:E3(w),classes:{},key:D},typeof globalThis<"u")globalThis[D]=i.classes;if(h.data.title&&typeof document<"u")document.title=h.data.title;if(U=k3(w,{root:"components",base:f,hash:M,onError:function(H){return console.error(`[Rip] Error ${H.status}: ${H.message||H.path}`)}}),W=o3({router:U,app:h,components:w,resolver:i,compile:c,target:Y,onError:function(H){return console.error(`[Rip] ${H.message}`,H.error)}}),W.start(),u.data?.watch)I3(`${f}/watch`);if(typeof window<"u")window.app=h,window.__RIP__={app:h,components:w,router:U,renderer:W,resolver:i,cache:W.cache,version:"0.3.0"};return{app:h,components:w,router:U,renderer:W}};A1=function(f,l){if(!l)return;return f.preventDefault(),f.stopPropagation(),l()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(f){return globalThis.__ariaLastFocusedEl=f.target},!0),globalThis.__ariaFocusTrackerBound=!0;O3=function(f,l){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return A1(f,l.next);case"ArrowUp":return A1(f,l.prev);case"Home":case"PageUp":return A1(f,l.first);case"End":case"PageDown":return A1(f,l.last);case"Enter":case" ":return A1(f,l.select);case"Escape":return A1(f,l.dismiss);case"Tab":return l.tab?.();default:return f.key.length===1?l.char?.(f.key):void 0}})()};n3=function(f,l,h,w=[],u=null){let _,D,c;if(!f)return;return _=function(A){return typeof A==="function"?A():A},D=(A)=>{return![_(l),...w.map(_)].some(function($){return $?.contains(A.target)})?h():void 0},c=(A)=>{if(_(l)?.contains(A.target))return;return u?u():h()},document.addEventListener("mousedown",D),window.addEventListener("scroll",c,!0),function(){return document.removeEventListener("mousedown",D),window.removeEventListener("scroll",c,!0)}};q3=function(f=250){let l;return l=0,{block:function(h=f){return l=Date.now()+h},canOpen:function(){return Date.now()>=l}}};Y3=function(f,l,h,w=null){let u,_,D,c,A,$,R,M,z,F,W;if(c=function(Q){return typeof Q==="function"?Q():Q},u=function(){let Q,i;if(Q=document.activeElement,Q&&Q!==document.body)return Q;if(i=globalThis.__ariaLastFocusedEl,i?.isConnected!==!1)return i;return null},D=c(l),!D)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(R=null,W=function(Q){if(Q){D.hidden=!1;try{D.inert=!1}catch{}return D.removeAttribute("aria-hidden")}else{try{D.inert=!0}catch{}return D.setAttribute("aria-hidden","true"),D.hidden=!0}},M=function(){let Q,i;if(i=R,R=null,!i?.focus)return;return Q=function(U=6){if(i.isConnected===!1)return;try{i.focus({preventScroll:!0})}catch{i.focus()}if(document.activeElement===i||U<=1)return;return setTimeout(function(){return Q(U-1)},16)},requestAnimationFrame(function(){return Q()})},A=function(Q){let i;if(i=Q.newState==="open",i)R=c(w)||u(),W(!0);else W(!1),M();return h?.(i)},D.addEventListener("toggle",A),z=D.matches(":popover-open"),_=!!f,z!==_){if(F=c(w),_)R=F||u(),W(!0);$=F&&_?{force:_,source:F}:{force:_};try{D.togglePopover($)}catch{}}else W(_);return function(){return D.removeEventListener("toggle",A)}};Q3=function(f,l,h,w=!0){let u,_,D,c,A,$,R,M;if(D=function(z){return typeof z==="function"?z():z},u=function(){let z,F;if(z=document.activeElement,z&&z!==document.body)return z;if(F=globalThis.__ariaLastFocusedEl,F?.isConnected!==!1)return F;return null},_=D(l),!_?.showModal)return;if($=null,M=function(z){if(z){_.hidden=!1;try{_.inert=!1}catch{}return _.removeAttribute("aria-hidden")}else{try{_.inert=!0}catch{}return _.setAttribute("aria-hidden","true"),_.hidden=!0}},R=function(){let z,F;if(F=$,$=null,!F?.focus)return;return z=function(W=6){if(F.isConnected===!1)return;try{F.focus({preventScroll:!0})}catch{F.focus()}if(document.activeElement===F||W<=1)return;return setTimeout(function(){return z(W-1)},16)},requestAnimationFrame(function(){return z()})},c=function(z){if(!w){z.preventDefault();return}return h?.(!1)},A=function(){return h?.(!1),M(!1),R()},_.addEventListener("cancel",c),_.addEventListener("close",A),f&&!_.open){if(!$)$=u();M(!0);try{_.showModal()}catch{}}else if(!f&&_.open)_.close();else M(!!f);return function(){return _.removeEventListener("cancel",c),_.removeEventListener("close",A)}};J3=function(f,l,h="vertical"){let w,u;if(f.isComposing)return;return u=h!=="horizontal",w=h!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?A1(f,l.next):void 0;case"ArrowUp":return u?A1(f,l.prev):void 0;case"ArrowRight":return w?A1(f,l.next):void 0;case"ArrowLeft":return w?A1(f,l.prev):void 0;case"Home":case"PageUp":return A1(f,l.first);case"End":case"PageDown":return A1(f,l.last);case"Enter":case" ":return A1(f,l.select);case"Escape":return A1(f,l.dismiss);default:return f.key.length===1?l.char?.(f.key):void 0}})()};Z3=function(f,l,h=4,w=!0){let u,_;if(!(f&&l))return;if(_=f.getBoundingClientRect(),l.style.position="fixed",l.style.left=`${_.left}px`,l.style.top=`${_.bottom+h}px`,l.style.minWidth=`${_.width}px`,u=l.getBoundingClientRect(),u.bottom>window.innerHeight)l.style.top=`${_.top-u.height-h}px`;if(u.right>window.innerWidth)l.style.left=`${window.innerWidth-u.width-h}px`;return w?l.style.visibility="visible":void 0};var f0='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';X3=function(f){let l;return l=function(h){let w,u,_;if(h.key!=="Tab")return;if(_=Array.from(f.querySelectorAll(f0)).filter(function(D){return D.offsetParent!==null}),!_.length)return;return w=_[0],u=_[_.length-1],h.shiftKey?document.activeElement===w?(h.preventDefault(),u.focus()):void 0:document.activeElement===u?(h.preventDefault(),w.focus()):void 0},f.addEventListener("keydown",l),function(){return f.removeEventListener("keydown",l)}};P3=function(f,l){let h,w;if(!f)return;if(w=f.querySelector("h1,h2,h3,h4,h5,h6"),w)w.id??=`${l}-title`,f.setAttribute("aria-labelledby",w.id);if(h=f.querySelector("p"),h)return h.id??=`${l}-desc`,f.setAttribute("aria-describedby",h.id)};y1=[];K3=function(f){let l;if(l=window.scrollY,y1.push({instance:f,scrollY:l}),y1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${l}px`,document.body.style.width="100%"};S3=function(f){let l,h;if(l=y1.findIndex(function(w){return w.instance===f}),l<0)return;if({scrollY:h}=y1.splice(l,1)[0],!y1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,h)};P2=function(){let f,l,h;return(()=>{try{if(!document?.createElement)return!1;return f=document.createElement("div"),l=document.createElement("div"),f.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",l.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(f),document.body.appendChild(l),h=l.getBoundingClientRect(),f.remove(),l.remove(),h.top>50}catch{return!1}})()}();G3=function(f,l,h={}){let w,u,_,D,c,A,$;if(!(f&&l))return;if(c=h.placement??"bottom start",D=h.offset??4,u=h.matchWidth??!1,P2){switch(_=`--anchor-${l.id||Math.random().toString(36).slice(2,8)}`,f.style.anchorName=_,l.style.positionAnchor=_,l.style.position="fixed",l.style.inset="auto",l.style.margin="0",l.style.positionArea=c,l.style.positionTry="flip-block, flip-inline, flip-block flip-inline",l.style.positionVisibility="anchors-visible",[$]=c.split(" "),l.style.marginTop="",l.style.marginBottom="",l.style.marginLeft="",l.style.marginRight="",$){case"bottom":l.style.marginTop=`${D}px`;break;case"top":l.style.marginBottom=`${D}px`;break;case"left":l.style.marginRight=`${D}px`;break;case"right":l.style.marginLeft=`${D}px`;break}return u?l.style.minWidth="anchor-size(width)":void 0}else{switch(A=f.getBoundingClientRect(),l.style.position="fixed",l.style.inset="auto",l.style.margin="0",[$,w]=c.split(" "),w??="start",$){case"bottom":l.style.top=`${A.bottom+D}px`;break;case"top":l.style.bottom=`${window.innerHeight-A.top+D}px`;break;case"left":l.style.right=`${window.innerWidth-A.left+D}px`;break;case"right":l.style.left=`${A.right+D}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes($):($ in["bottom","top"]))switch(w){case"start":l.style.left=`${A.left}px`;break;case"center":l.style.left=`${A.left+A.width/2}px`,l.style.transform="translateX(-50%)";break;case"end":l.style.right=`${window.innerWidth-A.right}px`;break}else switch(w){case"start":l.style.top=`${A.top}px`;break;case"center":l.style.top=`${A.top+A.height/2}px`,l.style.transform="translateY(-50%)";break;case"end":l.style.bottom=`${window.innerHeight-A.bottom}px`;break}return u?l.style.minWidth=`${A.width}px`:void 0}};globalThis.__aria??={listNav:O3,rovingNav:J3,popupDismiss:n3,popupGuard:q3,bindPopover:Y3,bindDialog:Q3,positionBelow:Z3,trapFocus:X3,wireAria:P3,lockScroll:K3,unlockScroll:S3,position:G3,hasAnchor:P2};globalThis.ARIA??=globalThis.__aria;J1.modules["app.rip"]=h2;for(let[f,l]of Object.entries(h2))if(typeof l==="function")globalThis[f]=l;})();
|
|
2076
|
+
})()`)}catch(J){if(Y=!1,J instanceof SyntaxError)console.error(`Rip syntax error: ${J.message}`);else console.error("Rip runtime error:",J)}if(Y)document.body.classList.add("ready")}}}let u=i?.getAttribute("data-reload");if((u!=null?u!=="false":!!_?.data?.watch)&&!globalThis.__ripLaunched){let c=!1,h=1000,A=30000,w=()=>{let D=new EventSource("/watch");D.addEventListener("connected",()=>{if(h=1000,c)location.reload();c=!0}),D.addEventListener("reload",($)=>{if($.data==="styles"){let U=Date.now(),R=0;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((z)=>{if(new URL(z.href).origin!==location.origin)return;let M=new URL(z.href);M.searchParams.set("_r",U),z.href=M.toString(),R++}),!R)location.reload()}else location.reload()}),D.onerror=()=>{D.close(),setTimeout(w,h),h=Math.min(h*2,A)}};w()}}async function I1(f){for(let[c,h]of Object.entries(I1.modules))if(f.includes(c))return h;let _=await fetch(f).then((c)=>{if(!c.ok)throw Error(`importRip: ${f} (${c.status})`);return c.text()}),i=T2(Z1(_)),n=`// ${f}
|
|
2077
|
+
`,u=new Blob([n+i],{type:"application/javascript"});return await import(URL.createObjectURL(u))}I1.modules={};function E3(f){try{let _=f.replace(/^/gm," "),n=Z1(`do ->
|
|
2078
|
+
${_}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");n=n.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let u=(0,eval)(n);if(u&&typeof u.then==="function")return u.then((l)=>{if(l!==void 0)globalThis._=l;return l});if(u!==void 0)globalThis._=u;return u}catch(_){console.error(b1(_,{source:f,color:!1}));return}}if(typeof globalThis<"u")globalThis.rip=E3,globalThis.importRip=I1,globalThis.compileToJS=Z1,globalThis.__ripExports={compile:$2,compileToJS:Z1,formatSExpr:K1,getStdlibCode:L1,VERSION:G3,BUILD_DATE:X3,getReactiveRuntime:k1,getComponentRuntime:p1};if(typeof document<"u")globalThis.__ripScriptsReady=new Promise((f)=>{let _=()=>S3().then(f);if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",()=>queueMicrotask(_));else queueMicrotask(_)});var W2={};d2(W2,{unwrapStash:()=>v1,throttle:()=>O0,setContext:()=>R0,persistStash:()=>A4,launch:()=>K0,hold:()=>H0,hasContext:()=>M0,getContext:()=>F0,delay:()=>D4,debounce:()=>W0,createStash:()=>w4,createRouter:()=>$4,createResource:()=>z0,createRenderer:()=>R4,createComponents:()=>U4});var C2,N3,a2,b3,I3,v2,B3,X1,z2,U1,R2,e1,T3,L3,C3,g2,j3,V3,V1,R1,r3,m3,a3,v3,g3,t3,s3,o3,x3,g1,F1,F2,f2,l2,u2,d3,t1,k3,M2,r1,p3,j2,e3,u4,V2,r2,f4,t2,l4,m2,G1,s2,_4,i4,m1,n4,B1,c4,j1,a1,h4;globalThis.abort??=(f)=>{if(f)console.error(f);process.exit(1)};globalThis.assert??=(f,_)=>{if(!f)throw Error(_||"Assertion failed")};globalThis.exit??=(f)=>process.exit(f||0);globalThis.kind??=(f)=>f!=null?(f.constructor?.name||Object.prototype.toString.call(f).slice(8,-1)).toLowerCase():String(f);globalThis.noop??=()=>{};globalThis.p??=console.log;globalThis.pp??=(f)=>{return console.dir(f,{depth:null,colors:!0}),f};globalThis.pj??=(f)=>{return console.log(JSON.stringify(f,null,2)),f};globalThis.pr??=(()=>{let f=/^[A-Za-z_$][A-Za-z0-9_$]*$/,_=(l,c)=>l.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(new RegExp(c,"g"),"\\"+c),i=(l)=>!l.includes("'")?"'"+_(l,"'")+"'":!l.includes('"')?'"'+_(l,'"').split("#{").join("\\#{")+'"':"'"+_(l,"'")+"'",n=(l)=>{if(typeof l==="symbol"){let c=Symbol.keyFor(l);return c&&f.test(c)?":"+c:i(String(l))}return f.test(l)?l:i(l)},u=(l,c)=>{if(l===null)return"null";if(l===void 0)return"undefined";let h=typeof l;if(h==="number"||h==="boolean")return String(l);if(h==="string")return i(l);if(h==="symbol"){let A=Symbol.keyFor(l);return A&&f.test(A)?":"+A:null}if(Array.isArray(l)){if(l.length===0)return"[]";let A=" ".repeat(c+1),w=" ".repeat(c);return`[
|
|
2079
|
+
`+A+l.map((D)=>u(D,c+1)??"null").join(`
|
|
2080
|
+
`+A)+`
|
|
2081
|
+
`+w+"]"}if(h==="object"){let A=Object.getPrototypeOf(l);if(A!==Object.prototype&&A!==null)return null;let w=Object.keys(l);if(w.length===0)return"{}";let D=" ".repeat(c+1),$=" ".repeat(c);return`{
|
|
2082
|
+
`+D+w.map((U)=>n(U)+": "+(u(l[U],c+1)??"null")).join(`
|
|
2083
|
+
`+D)+`
|
|
2084
|
+
`+$+"}"}return null};return(l)=>{let c=u(l,0);return c!==null?console.log(c):console.dir(l,{depth:null,colors:!0}),l}})();globalThis.raise??=(f,_)=>{throw _!==void 0?new f(_):Error(f)};globalThis.rand??=(f,_)=>_!==void 0?(f>_&&([f,_]=[_,f]),Math.floor(Math.random()*(_-f+1)+f)):f?Math.floor(Math.random()*f):Math.random();globalThis.sleep??=(f)=>new Promise((_)=>setTimeout(_,f));globalThis.todo??=(f)=>{throw Error(f||"Not implemented")};globalThis.warn??=console.warn;globalThis.zip??=(...f)=>f[0].map((_,i)=>f.map((n)=>n[i]));({__state:U1,__computed:B3,__effect:X1,__batch:v2}=globalThis.__rip);z2=globalThis.__ripComponent||{};var R0=function(f,_){return z2.setContext(f,_)},F0=function(f){return z2.getContext(f)},M0=function(f){return z2.hasContext(f)};t1=function(f){if(typeof window>"u"||typeof document>"u")throw Error(`Rip App: '${f}' requires a browser environment`)};a2=new WeakMap;C2=new WeakMap;F2=0;u2=U1(0);F1=0;m2=function(f){return typeof f==="string"&&(f.indexOf(".")!==-1||f.indexOf("/")!==-1||f.indexOf("[")!==-1)};l4=function(f){return/^-?\d+$/.test(f)};t2=function(f,_){let i;if(!f[Symbol.for("signals")])Object.defineProperty(f,Symbol.for("signals"),{value:new Map,enumerable:!1});if(i=f[Symbol.for("signals")].get(_),!i)i=U1(f[_]),f[Symbol.for("signals")].set(_,i);return i};G1=function(f){return t2(f,Symbol.for("keys"))};h4=function(f){let _;if(!(f!=null&&typeof f==="object"))return f;if(f[Symbol.for("stash")])return f;if(f instanceof Date||f instanceof RegExp||f instanceof Map||f instanceof Set||f instanceof Promise)return f;if(_=a2.get(f),_)return _;return s2(f)};s2=function(f){let _,i;return i=null,_={get(n,u){let l,c,h;if(u===Symbol.for("stash"))return!0;if(u===Symbol.for("raw"))return n;if(typeof u==="symbol")return Reflect.get(n,u);if(u==="length"&&Array.isArray(n))return G1(n).value,n.length;if(!F1&&m2(u))return B1(i,u);if(l=c4(i,u),l)return l;if(c=t2(n,u),h=c.value,h!=null&&typeof h==="object")return h4(h);return h},set(n,u,l){let c,h,A,w,D;if(!F1&&m2(u))return j1(i,u,l),!0;if(Array.isArray(n)&&u==="length"){if(A=n.length,c=+l,n.length=c,c!==A){if(n[Symbol.for("signals")]){for(let $ of((U,R)=>Array.from({length:Math.max(0,Math.abs(R-U))},(z,M)=>U+M*(U<=R?1:-1)))(Math.min(A,c),Math.max(A,c)))if(D=n[Symbol.for("signals")].get(String($)),D!=null)D.value=n[$]}G1(n).value=++F2,u2.value++}return!0}if(h=n[u],w=l?.[Symbol.for("raw")]?l[Symbol.for("raw")]:l,w===h)return!0;if(n[u]=w,n[Symbol.for("signals")]?.has(u))n[Symbol.for("signals")].get(u).value=w;if(h===void 0&&w!==void 0)G1(n).value=++F2;return u2.value++,!0},deleteProperty(n,u){let l;if(delete n[u],l=n[Symbol.for("signals")]?.get(u),l!=null)l.value=void 0;return G1(n).value=++F2,u2.value++,!0},ownKeys(n){return G1(n).value,Reflect.ownKeys(n)}},i=new Proxy(f,_),a2.set(f,i),i};N3=/([./][^./\[\s]+|\[[-+]?\d+\]|\[(?:"[^"]+"|'[^']+')\])/;a1=function(f){let _,i,n,u,l;n=("."+f).split(N3),n.shift(),l=[],i=0;while(i<n.length){if(u=n[i],_=u[0],_==="."||_==="/")l.push(u.slice(1));else if(_==="[")if(u[1]==='"'||u[1]==="'")l.push(u.slice(2,-2));else l.push(+u.slice(1,-1));i+=2}return l};m1=function(f,_){let i;if(typeof f==="number"&&f<0){if(i=v1(_),Array.isArray(i))return i.length+f}return f};B1=function(f,_){let i,n;return n=a1(_),i=f,F1++,(()=>{try{for(let u of n){if(i==null)return;i=i[m1(u,i)]}return i}finally{F1--}})()};j1=function(f,_,i){let n,u,l,c;return c=a1(_),l=f,F1++,(()=>{try{for(let h=0;h<c.length;h++){let A=c[h];if(n=m1(A,l),h===c.length-1)l[n]=i;else{if(l[n]==null)u=c[h+1],l[n]=typeof u==="number"||l4(u)?[]:{};l=l[n]}}return i}finally{F1--}})()};b3={inc:!0,dec:!0,flip:!0,join:!0,keys:!0,has:!0,del:!0};c4=function(f,_){let i,n;if(!b3[_])return;if(i=C2.get(f),!i)i={},C2.set(f,i);if(i[_])return i[_];return n=(()=>{switch(_){case"inc":return function(u,l=1){let c;return c=B1(f,u)??0,j1(f,u,c+l)};case"dec":return function(u,l=1){let c;return c=B1(f,u)??0,j1(f,u,c-l)};case"flip":return function(u){let l;return l=B1(f,u)??!1,j1(f,u,!l)};case"join":return function(u,l){return v2(function(){let c;if(c=B1(f,u),!(c!=null&&typeof c==="object"))j1(f,u,{}),c=B1(f,u);return F1++,(()=>{try{return(()=>{let h=[];for(let A in l){let w=l[A];h.push(c[A]=w)}return h})()}finally{F1--}})()})};case"keys":return function(u){let l,c,h;return F1++,(()=>{try{c=a1(u),l=f;for(let A of c){if(l==null)return[];l=l[m1(A,l)]}if(!(l!=null&&typeof l==="object"))return[];return h=v1(l),G1(h).value,Object.keys(h)}finally{F1--}})()};case"has":return function(u){let l,c,h,A;return F1++,(()=>{try{if(h=a1(u),!(h.length>0))return!1;c=f;for(let w=0;w<h.length;w++){let D=h[w];if(l=m1(D,c),w===h.length-1)return A=v1(c),G1(A).value,Object.prototype.hasOwnProperty.call(A,l);if(c==null)return!1;c=c[l]}return!1}finally{F1--}})()};case"del":return function(u){let l,c,h;return F1++,(()=>{try{if(h=a1(u),!(h.length>0))return;return c=f,(()=>{let A=[];for(let w=0;w<h.length;w++){let D=h[w];if(l=m1(D,c),w===h.length-1){delete c[l];return}if(c==null)return;A.push(c=c[l])}return A})()}finally{F1--}})()}}})(),i[_]=n,n};function w4(f={}){return s2(f)}function v1(f){return f?.[Symbol.for("raw")]?f[Symbol.for("raw")]:f}function A4(f,_={}){let i,n,u,l,c,h,A,w;return t1("persistStash"),w=v1(f)||f,function(){return w[Symbol.for("persisted")]?null:void 0};w[Symbol.for("persisted")]=!0,h=_.local?localStorage:sessionStorage,A=_.key||"__rip_app";try{if(l=h.getItem(A),l){c=JSON.parse(l);for(let D in c){let $=c[D];f.data[D]=$}}}catch{}return i=function(){return(()=>{try{return h.setItem(A,JSON.stringify(v1(f.data)))}catch{return null}})()},u=X1(function(){let D;return u2.value,D=setTimeout(i,2000),function(){return clearTimeout(D)}}),window.addEventListener("beforeunload",i),n=!1,function(){if(n)return;return n=!0,u?.(),window.removeEventListener("beforeunload",i),i(),w[Symbol.for("persisted")]=!1}}function z0(f,_={}){let i,n,u,l,c,h,A,w;if(i=U1(_.initial??null),u=U1(!1),n=U1(null),h=0,l=null,A=async function(){let D,$;return l?.abort(),l=typeof AbortController<"u"?new AbortController:null,D=++h,u.value=!0,n.value=null,await(async()=>{try{if($=await f(l?.signal),D!==h)return;return i.value=$,$}catch(U){if(D!==h)return;if(U?.name==="AbortError")return;throw n.value=U,U}finally{if(D===h)u.value=!1}})()},c=function(){return h++,l?.abort(),l=null,u.value=!1,n.value=null},w={data:void 0,loading:void 0,error:void 0,refetch:A,dispose:c},Object.defineProperty(w,"data",{get(){return i.value}}),Object.defineProperty(w,"loading",{get(){return u.value}}),Object.defineProperty(w,"error",{get(){return n.value}}),!_.lazy)A().catch(function(){return null});return w}l2=function(f){return typeof f==="function"?f:function(){return f.value}};g1=function(f,_){return Object.defineProperty(f,"dispose",{value(){return _?.()},configurable:!0,writable:!0}),f};f2=function(f,_,i){let n;return n={read(){return f.read()}},Object.defineProperty(n,"value",{get(){return f.value},set(u){return _.value=u}}),g1(n,i)};var D4=function(f,_){let i,n,u;return n=l2(_),u=U1(!!n()),i=X1(function(){let l;if(n())return l=setTimeout(function(){return u.value=!0},f),function(){return clearTimeout(l)};else return u.value=!1}),typeof _!=="function"?f2(u,_,i):g1(u,i)},W0=function(f,_){let i,n,u;return n=l2(_),u=U1(n()),i=X1(function(){let l,c;return c=n(),l=setTimeout(function(){return u.value=c},f),function(){return clearTimeout(l)}}),typeof _!=="function"?f2(u,_,i):g1(u,i)},O0=function(f,_){let i,n,u,l;return n=l2(_),l=U1(n()),u=0,i=X1(function(){let c,h,A,w;if(w=n(),c=Date.now(),h=f-(c-u),h<=0)return l.value=w,u=c;else return A=setTimeout(function(){return l.value=n(),u=Date.now()},h),function(){return clearTimeout(A)}}),typeof _!=="function"?f2(l,_,i):g1(l,i)},H0=function(f,_){let i,n,u;return n=l2(_),u=U1(!!n()),i=X1(function(){let l;if(n())return u.value=!0;else return l=setTimeout(function(){return u.value=!1},f),function(){return clearTimeout(l)}}),typeof _!=="function"?f2(u,_,i):g1(u,i)};function U4(){let f,_,i,n;return _=new Map,n=new Set,f=new Map,i=function(u,l){let c=[];for(let h of Array.from(n))c.push((()=>{try{return h(u,l)}catch(A){return console.error("[Rip] watcher error:",A)}})());return c},{read(u){return _.get(u)},write(u,l){let c;return c=!_.has(u),_.set(u,l),f.delete(u),i(c?"create":"change",u)},del(u){return _.delete(u),f.delete(u),i("delete",u)},exists(u){return _.has(u)},size(){return _.size},list(u=""){let l,c,h;h=[],l=u?u+"/":"";for(let[A]of _)if(A.startsWith(l)){if(c=A.slice(l.length),c.includes("/"))continue;h.push(A)}return h},listAll(u=""){let l,c;c=[],l=u?u+"/":"";for(let[h]of _)if(h.startsWith(l))c.push(h);return c},load(u){let l=[];for(let c in u){let h=u[c];_.set(c,h),l.push(f.delete(c))}return l},watch(u){let l;return n.add(u),l=!1,function(){if(l)return;return l=!0,n.delete(u)}},getCompiled(u){return f.get(u)},setCompiled(u,l){return f.set(u,l)}}}u4=function(f){let _;if(_=f.replace(/\.rip$/,""),_=_.replace(/\[\.\.\.(\w+)\]/g,"*$1"),_=_.replace(/\[(\w+)\]/g,":$1"),_==="index")return"/";return _=_.replace(/\/index$/,""),"/"+_};i4=function(f){let _,i,n;return i=[],_=f.replace(/[.+?^${}()|[\]\\]/g,"\\$&"),n=_.replace(/\*(\w+)/g,function(u,l){return i.push(l),"(.*)"}).replace(/:(\w+)/g,function(u,l){return i.push(l),"([^/]+)"}),{regex:new RegExp("^"+n+"$"),names:i}};_4=function(f,_){let i,n;for(let u of _)if(i=f.match(u.regex.regex),i){n={};for(let l=0;l<u.regex.names.length;l++){let c=u.regex.names[l];n[c]=decodeURIComponent(i[l+1])}return{route:u,params:n}}return null};M2=function(f,_="_route"){let i,n,u,l,c,h,A,w,D;A=[],u=new Map,i=f.listAll(_);for(let $ of i){if(h=$.slice(_.length+1),!h.endsWith(".rip"))continue;if(l=h.split("/").pop(),l==="_layout.rip"){n=h==="_layout.rip"?"":h.slice(0,-12),u.set(n,$);continue}if(l.startsWith("_"))continue;if(w=h.split("/"),w.length>1&&w.some(function(U,R){return R<w.length-1&&U.startsWith("_")}))continue;D=u4(h),c=i4(D),A.push({pattern:D,regex:c,file:$,rel:h})}return A.sort(function($,U){let R,z,M,F;if(z=($.pattern.match(/:/g)||[]).length,F=(U.pattern.match(/:/g)||[]).length,R=$.pattern.includes("*")?1:0,M=U.pattern.includes("*")?1:0,R!==M)return R-M;if(z!==F)return z-F;return $.pattern.localeCompare(U.pattern)}),{routes:A,layouts:u}};f4=function(f,_,i){let n,u,l,c;if(n=[],l=f.slice(_.length+1),c=l.split("/"),u="",i.has(""))n.push(i.get(""));for(let h=0;h<c.length;h++){let A=c[h];if(h===c.length-1)break;if(u=u?u+"/"+A:A,i.has(u))n.push(i.get(u))}return n};function $4(f,_={}){let i,n,u,l,c,h,A,w,D,$,U,R,z,M,F,H,K,W,O,Q,Y,J,Z,q,G,P,L,I,e,p,N,X,u1,b,B,T,k,x;if(t1("createRouter"),p=_.root||"_route",H=_.base||"",W=_.hash||!1,J=_.onError||null,B=function(y){if(!H)return y;if(y===H)return"/";if(y.startsWith(H+"/"))return y.slice(H.length);return y},$=function(y){return H?H+y:y},I=function(){let y;if(W){if(y=location.hash.slice(1),!y)return"/";return y[0]==="/"?y:"/"+y}else return location.pathname+location.search+location.hash},x=function(y){return W?y==="/"?location.pathname:"#"+y.slice(1):$(y)},A=U1(B(W?I():location.pathname)),h=U1({}),D=U1(null),u=U1([]),w=U1({}),n=U1(""),l=D4(100,U1(!1)),c=U1(A.value),T=M2(f,p),O=new Set,k=f.watch(function(y,m){if(!m.startsWith(p+"/"))return;return T=M2(f,p)}),e=function(y){let m,l1,E,j,s,g,n1;if(s=y.split("?")[0].split("#")[0],E=B(s),E=E[0]==="/"?E:"/"+E,j=y.split("?")[1]?.split("#")[0]||"",l1=y.includes("#")?y.split("#")[1]:"",g=_4(E,T.routes),g){if(m=E,j)m+=`?${j}`;if(l1)m+=`#${l1}`;v2(function(){return A.value=E,h.value=g.params,D.value=g.route,u.value=f4(g.route.file,p,T.layouts),w.value=Object.fromEntries(new URLSearchParams(j)),n.value=l1,c.value=m}),n1=Array.from(O);for(let c1 of n1)try{c1(N.current)}catch(C){console.error("[Rip] router onNavigate callback error:",C)}return!0}if(J)J({status:404,path:E});return!1},P=null,typeof history<"u"&&"scrollRestoration"in history)P=history.scrollRestoration,history.scrollRestoration="manual";if(L=function(y){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(y):setTimeout(y,16)},R=function(y){let m,l1;if(typeof window>"u")return;return m=0,l1=function(){let E;return E=Math.max(0,(document?.documentElement?.scrollHeight||0)-window.innerHeight),window.scrollTo(0,Math.min(y,E)),m+=1,y>E&&m<20?L(l1):void 0},L(l1)},u1=null,q=function(){if(u1||typeof window>"u")return;return u1=setTimeout(function(){return u1=null,(()=>{try{return history.replaceState({...history.state||{},_ripScroll:window.scrollY},"",location.href)}catch{}})()},100)},typeof window<"u")window.addEventListener("scroll",q,{passive:!0});if(Z=function(y){let m;return m=y?.state?._ripScroll,e(I()),typeof m==="number"?R(m):void 0},typeof window<"u")window.addEventListener("popstate",Z);if(b=function(y){let m;if(!y?.href)return!0;if(m=(()=>{try{return new URL(y.href,location.origin)}catch{return null}})(),!m)return!0;if(m.origin!==location.origin)return!0;if(y.target==="_blank")return!0;if(y.hasAttribute("download"))return!0;if(y.hasAttribute("data-router-ignore"))return!0;if(H&&!W){if(!(m.pathname===H||m.pathname.startsWith(H+"/")))return!0}return!1},Y=function(y){let m,l1,E,j;if(y.defaultPrevented)return;if(y.button!==0||y.metaKey||y.ctrlKey||y.shiftKey||y.altKey)return;E=y.target;while(E&&E.tagName!=="A")E=E.parentElement;if(!E)return;if(b(E))return;return j=new URL(E.href,location.origin),y.preventDefault(),m=W&&j.hash?j.hash.slice(1)||"/":j.pathname+j.search+j.hash,l1=E.hasAttribute("data-router-noscroll"),N.push(m,{noScroll:l1})},typeof document<"u")document.addEventListener("click",Y);return G=new WeakSet,Q=function(y){let m;if(m=y.split("?")[0].split("#")[0],m=decodeURIComponent(m),m=B(m),m[0]!=="/")m="/"+m;if(m.length>1&&m.endsWith("/"))m=m.slice(0,-1);return m},K=function(){let y;if(y=W?B(I()).split("?")[0].split("#")[0]:A.value.split("?")[0].split("#")[0],y[0]!=="/")y="/"+y;if(y.length>1&&y.endsWith("/"))y=y.slice(0,-1);return y},U=function(){let y,m,l1,E,j,s;if(typeof document>"u")return;m=K(),y=document.querySelectorAll("a[href]");for(let g of y){if(b(g))continue;if(s=(()=>{try{return new URL(g.href,location.origin)}catch{return null}})(),!s)continue;if(j=Q(s.pathname+s.search+s.hash),l1=null,j===m)l1="page";if(!l1&&m!=="/"&&m.startsWith(j+"/")&&j!=="")l1="true";if(E=g.getAttribute("aria-current"),l1){if(E&&!G.has(g))continue;g.setAttribute("aria-current",l1),G.add(g)}else if(G.has(g))g.removeAttribute("aria-current"),G.delete(g)}return},M=null,F=!1,X=function(){let y;if(F)return;return F=!0,y=function(){return F=!1,U()},typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(y):setTimeout(y,0)},z=X1(function(){let y;if(typeof document>"u")return;if(K(),X(),!M)M=new MutationObserver(function(){return X()}),y=document.body||document.documentElement,M.observe(y,{childList:!0,subtree:!0});return}),N={push(y,m){let l1;if(l1=typeof window<"u"?window.scrollY:0,e(y)){try{history.replaceState({...history.state||{},_ripScroll:l1},"",location.href)}catch{}return history.pushState({_ripScroll:0},"",x(c.read())),!m?.noScroll&&typeof window<"u"?window.scrollTo(0,0):void 0}},replace(y,m){if(e(y))return history.replaceState({_ripScroll:0},"",x(c.read())),!m?.noScroll&&typeof window<"u"?window.scrollTo(0,0):void 0},back(){return history.back()},forward(){return history.forward()},current:void 0,path:void 0,params:void 0,route:void 0,layouts:void 0,query:void 0,hash:void 0,navigating:void 0,onNavigate(y){return O.add(y),function(){return O.delete(y)}},rebuild(){return T=M2(f,p)},routes:void 0,init(){return e(I()),N},destroy(){if(typeof window<"u")window.removeEventListener("popstate",Z);if(typeof window<"u")window.removeEventListener("scroll",q);if(typeof document<"u")document.removeEventListener("click",Y);if(P!==null&&typeof history<"u")history.scrollRestoration=P;return M?.disconnect(),M=null,z?.(),k?.(),k=null,l?.dispose?.(),O.clear()}},i=B3(function(){return{path:A.value,params:h.value,route:D.value,layouts:u.value,query:w.value,hash:n.value}}),Object.defineProperty(N,"current",{get(){return i.value}}),Object.defineProperty(N,"path",{get(){return A.value}}),Object.defineProperty(N,"params",{get(){return h.value}}),Object.defineProperty(N,"route",{get(){return D.value}}),Object.defineProperty(N,"layouts",{get(){return u.value}}),Object.defineProperty(N,"query",{get(){return w.value}}),Object.defineProperty(N,"hash",{get(){return n.value}}),Object.defineProperty(N,"navigating",{get(){return l.value},set(y){return l.value=y}}),Object.defineProperty(N,"routes",{get(){return T.routes}}),N}d3=function(f,_){if(f.length!==_.length)return!1;for(let i=0;i<f.length;i++)if(f[i]!==_[i])return!1;return!0};r2=function(f){if(typeof f.default==="function"&&(f.default.prototype?.mount||f.default.prototype?._create))return f.default;for(let _ in f){let i=f[_];if(typeof i==="function"&&(i.prototype?.mount||i.prototype?._create))return i}return typeof f.default==="function"?f.default:void 0};V2=function(f){let _;_={};for(let i in f){let n=f[i];if(typeof n==="function"&&(n.prototype?.mount||n.prototype?._create))_[i]=n}return _};e3=function(f){let _;return _=f.split("/").pop().replace(/\.rip$/,""),_.replace(/(^|[-_])([a-z])/g,function(i,n,u){return u.toUpperCase()})};k3=function(f,_=["_app","_lib","_pkg","_route"]){let i,n,u,l,c;n={},c=Array.isArray(_)?_:[_],l=[];for(let h of c)for(let A of f.listAll(h))l.push(A);for(let h of l){if(!h.endsWith(".rip"))continue;if(i=h.split("/").pop(),i.startsWith("_"))continue;if(u=e3(h),n[u])console.warn(`[Rip] Component name collision: ${u} (${n[u]} vs ${h})`);n[u]=h}return n};n4=function(f,_,i){let n,u,l,c;if(u=f.replace(/^(\.\.\/|\.\/)+/,""),_){l=_.split("/"),l.pop();for(let h of f.split("/"))if(h==="..")l.pop();else if(h!==".")l.push(h);if(n=l.join("/"),i.exists(n))return n}if(i.exists(u))return u;for(let h of["_pkg","_lib","_app","_route"])if(c=`${h}/${u}`,i.exists(c))return c;return null};j2=function(f){let _,i,n,u,l,c,h;if(!f)return[];if(c=f.trim(),!c)return[];if(u=[],_=c.indexOf("{"),_>=0){if(i=c.lastIndexOf("}"),i<0)return u;n=c.slice(_+1,i);for(let A of n.split(",")){if(h=A.trim(),!h)continue;u.push(h.split(/\s+as\s+/).pop().trim())}c=c.slice(0,_).replace(/,\s*$/,"").trim()}for(let A of c.split(",")){if(l=A.trim(),!l)continue;if(/^\*\s+as\s+/.test(l))u.push(l.replace(/^\*\s+as\s+/,"").trim());else u.push(l)}return u};r1=async function(f,_,i=null,n=null,u=null){let l,c,h,A,w,D,$,U,R,z,M,F,H,K,W,O,Q,Y,J,Z,q,G,P,L,I,e,p,N,X,u1,b,B,T,k;if(i&&n){if(D=i.getCompiled(n),D)return D}if(u&&n)u.compiling??={},u.compiling[n]=!0;return await(async()=>{try{if(U=globalThis?.__ripDebug?.enabled&&n,N=0,O=U?_(f,{sourceMap:"inline",filename:n}):_(f),u){if(W=new Set,L=u.packages||{},Object.keys(L).length>0)c=/^(\s*import\s+(?:.*?\s+from\s+)?['"])(@rip-lang\/[^\/'"]+)((?:\/[^'"]*)?)(['"];?\s*)$/gm,O=O.replace(c,function(x,y,m,l1,E){let j,s;if(j=L[m],!j)return x;return s=!l1?`_pkg/${j.short}/${j.entry}`:l1.endsWith(".rip")?`_pkg/${j.short}${l1}`:`_pkg/${j.short}${l1}.rip`,`${y}${s}${E}`});if(i){b=/^(\s*import\s+(?:(.*?)\s+from\s+)?['"])([^'"]*\.rip)(['"];?\s*)$/gm,Y=Array.from(O.matchAll(b));for(let x=Y.length-1;x>=0;x--){let y=Y[x];if([H,e,h,B,I]=y,T=n4(B,n,i),T===n)continue;if(!T){if(Z=`[Rip] Could not resolve import: ${B}`,n)Z+=` (from ${n})`;console.warn(Z);continue}if(!u.blobUrls?.[T]){if(u.compiling?.[T])continue;if(z=i.read(T),z)await r1(z,_,i,T,u)}if(w=u.blobUrls?.[T],w){u1=`${e}${w}${I}`,O=O.slice(0,y.index)+u1+O.slice(y.index+H.length);for(let m of j2(h))W.add(m)}}}l=/^\s*import\s+(?:(.*?)\s+from\s+)?['"][^'"]*['"];?\s*$/gm;for(let x of O.matchAll(l))for(let y of j2(x[1]))W.add(y);G={};for(let x in u.map){let y=u.map[x];if(W.has(x))continue;if(y!==n&&O.includes(`new ${x}(`)){if(!u.classes[x]){if(z=i.read(y),z){R=await r1(z,_,i,y,u),F=V2(R);for(let m in F){let l1=F[m];u.classes[m]=l1}}}if(u.classes[x])G[x]=!0}}if(q=Object.keys(G),q.length>0)Q=JSON.stringify(u.key),p=`const {${q.join(", ")}} = globalThis[${Q}];
|
|
2085
|
+
`,O=p+O,N+=1}if(K=n?`// ${n}
|
|
2086
|
+
`:"",K)N+=1;if(M=K+O,U&&N>0){if(P=globalThis?.__ripDebug?.offsetSourceMap,P)M=P(M,N)}if(A=new Blob([M],{type:"application/javascript"}),k=URL.createObjectURL(A),X=null,u&&n){if(u.blobUrls??={},X=u.blobUrls[n],X&&X!==k)try{URL.revokeObjectURL(X)}catch{}u.blobUrls[n]=k}if(J=await import(k),$=!0,u){F=V2(J);for(let x in F){let y=F[x];u.classes[x]=y}}if(i&&n)i.setCompiled(n,J);return J}finally{if(u&&n){if(u.compiling)delete u.compiling[n]}if(!$&&k&&u&&n){try{URL.revokeObjectURL(k)}catch{}if(u.blobUrls?.[n]===k)delete u.blobUrls[n]}}})()};function R4(f){let _,i,n,u,l,c,h,A,w,D,$,U,R,z,M,F,H,K,W,O,Q,Y,J,Z,q;if(t1("createRenderer"),{router:W,app:_,components:n,resolver:K,compile:i,target:Y,onError:F}=f,u=typeof Y==="string"?document.querySelector(Y):Y||document.getElementById("app"),!u)u=document.createElement("div"),u.id="app",document.body.appendChild(u);return l=null,w=null,h=null,A=null,c=[],R=[],z=u,$=0,D=null,q=null,U=function(G){if(!K)return;if(K.blobUrls?.[G]){try{URL.revokeObjectURL(K.blobUrls[G])}catch{}delete K.blobUrls[G]}return K.classes&&K.map?(()=>{let P=[];for(let L in K.map){let I=K.map[L];P.push(I===G?delete K.classes[L]:void 0)}return P})():void 0},Z=function(){if(l){try{l.unmount?.({removeDOM:!1})}catch(G){console.error("[Rip] page unmount error:",G)}return l=null,w=null}},J=function(){Z();for(let G=R.length-1;G>=0;G--){let P=R[G];try{P.unmount?.({removeDOM:!0})}catch(L){console.error("[Rip] layout unmount error:",L)}}return R=[],z=u,h=null,A=null,c=[]},O=function(G,P){if(!(G&&P))return!1;if(Object.keys(G).length!==Object.keys(P).length)return!1;for(let L in G){let I=G[L];if(P[L]!==I)return!1}return!0},M=async function(G,P=!1){let L,I,e,p,N,X,u1,b,B,T,k,x,y,m,l1,E,j,s,g,n1,c1,C,d,h1,_1,S,a,t,o,f1;if({route:S,params:C,layouts:k,query:_1}=G,!S)return;if(a=S.file===w&&O(C,h),a&&!P){if(!O(_1,A)){if(A=_1,l?.load)try{await l.load(C,_1)}catch(V){if(console.error(`Renderer: error in query-only load for ${S.file}:`,V),F)F({status:500,message:V.message,error:V})}}return}return u1=++$,W.navigating=!0,await(async()=>{try{if(o=n.read(S.file),!o){if(F)F({status:404,message:`File not found: ${S.file}`});W.navigating=!1;return}if(l1=await r1(o,i,n,S.file,K),u1!==$){W.navigating=!1;return}if(L=r2(l1),!L){if(F)F({status:500,message:`No component found in ${S.file}`});W.navigating=!1;return}if(m=!d3(k,c),j=l?._target,m)J();else Z();if(h=C,A=_1,E=m?u:z,m&&k.length>0){u.innerHTML="",E=u,X=globalThis.__ripComponent?.__pushComponent,p=globalThis.__ripComponent?.__popComponent,s=null;for(let V of k){if(y=n.read(V),!y)continue;if(x=await r1(y,i,n,V,K),u1!==$){W.navigating=!1;return}if(I=r2(x),!I)continue;h1=X?.(s);try{B=new I({app:_,params:C,router:W})}finally{p?.(h1)}if(B.beforeMount){e=X?.(B);try{B.beforeMount()}finally{p?.(e)}}f1=document.createElement("div"),f1.setAttribute("data-layout",V),E.appendChild(f1),B.mount(f1),R.push(B),s=B,t=f1.querySelector("#content")||f1,E=t}c=[...k],z=E}else if(m)u.innerHTML="",c=[],z=u;c1=document.createElement("div"),c1.setAttribute("data-component",S.file),E.appendChild(c1),X=globalThis.__ripComponent?.__pushComponent,p=globalThis.__ripComponent?.__popComponent,g=R[R.length-1]||null,n1=X?.(g);try{T=new L({app:_,params:C,query:_1,router:W})}finally{p?.(n1)}if(T.beforeMount){N=X?.(T);try{T.beforeMount()}finally{p?.(N)}}if(T.mount(c1),l=T,w=S.file,T.load)await T.load(C,_1);return j?.remove(),W.navigating=!1}catch(V){if(W.navigating=!1,console.error(`Renderer: error mounting ${S.file}:`,V),F)F({status:500,message:V.message,error:V});b=!1;for(let i1=R.length-1;i1>=0;i1--){let A1=R[i1];if(A1.onError)try{A1.onError(V),b=!0;break}catch(M1){console.error("Renderer: error boundary failed:",M1)}}return(()=>{if(!b)return J(),d=document.createElement("pre"),d.style.cssText="color:red;padding:1em",d.textContent=V.stack||V.message,u.innerHTML="",u.appendChild(d)})()}})()},Q=!1,H={start(){if(Q)return H;return Q=!0,D=X1(function(){let G;return G=W.current,G.route?M(G):void 0}),q=n?.watch(function(G,P){return(Array.isArray(["change","delete"])?["change","delete"].includes(G):(G in["change","delete"]))?U(P):void 0}),W.init(),H},stop(){if(!Q)return;if(Q=!1,J(),D)D(),D=null;if(q?.(),q=null,K?.blobUrls){for(let G in K.blobUrls){if(!Object.hasOwn(K.blobUrls,G))continue;let P=K.blobUrls[G];try{URL.revokeObjectURL(P)}catch{}}K.blobUrls={}}return u.innerHTML=""},remount(G=!1){let P,L;return L=typeof G==="object"?!!G.force:!!G,P=W.current,P.route?M(P,L):void 0}},H}p3=function(f){let _,i,n,u,l,c;return t1("connectWatch"),l=1000,u=30000,_=!1,n=null,c=null,i=function(){if(_)return;return n=new EventSource(f),n.addEventListener("connected",function(){return l=1000,console.log("[Rip] Hot reload connected")}),n.addEventListener("reload",function(){return console.log("[Rip] Reloading..."),location.reload()}),n.addEventListener("css",function(){let h,A;A=document.querySelectorAll('link[rel="stylesheet"]');let w=[];for(let D of A)h=new URL(D.href),h.searchParams.set("_t",Date.now()),D.href=h.toString();return w}),n.onerror=function(){if(n.close(),n=null,_)return;return c=setTimeout(i,l),l=Math.min(l*2,u)}},i(),function(){if(_)return;if(_=!0,c)clearTimeout(c),c=null;return n?.close(),n=null}};async function K0(f={}){let _,i,n,u,l,c,h,A,w,D,$,U,R,z,M,F,H,K,W,O,Q,Y,J,Z,q,G,P,L;if(t1("launch"),i=(f.base||"").replace(/\/+$/,""),G=f.target||"#app",h=f.compile||null,M=f.persist||!1,R=f.hash||!1,!h)h=globalThis?.compileToJS||null;if(!document.querySelector(G))D=document.createElement("div"),D.id=G.replace(/^#/,""),document.body.prepend(D);if(f.bundle)u=f.bundle;else if(f.bundleUrl){if(z={},U=`__rip_etag_${f.bundleUrl}`,l=sessionStorage.getItem(U),l)z["If-None-Match"]=l;if(K=await fetch(f.bundleUrl,{headers:z}),K.status===304)u=JSON.parse(sessionStorage.getItem(`${U}_data`));else if(K.ok){if(u=await K.json(),$=K.headers.get("etag"),$)sessionStorage.setItem(U,$),sessionStorage.setItem(`${U}_data`,JSON.stringify(u))}else throw Error(`launch: ${f.bundleUrl} (${K.status})`)}else throw Error("launch: no bundle or bundleUrl provided");if(_=w4({components:{},routes:{},data:{}}),globalThis.__ripApp=_,n=U4(),u.modules)n.load(u.modules);if(c=`__rip_${i.replace(/\//g,"_")||"app"}`,W={map:k3(n),classes:{},key:c,packages:u.packages||{}},globalThis[c]=W.classes,Z=null,J="_app/stash.rip",n.exists(J)){if(q=n.read(J),q)try{if(Y=await r1(q,h,n,J,W),Y?.stash)Z=Y.stash}catch(I){console.error(`[Rip] Failed to load app/stash.rip: ${I.message}`,I)}}if(Z&&u.data)for(let I in u.data){let e=u.data[I];Z[I]=e}if(Q=Z??u.data,Q)_.data=Q;if(u.routes)_.routes=u.routes;if(F=null,M)F=A4(_,{local:M==="local",key:`__rip_${i}`});if(_.data.title)document.title=_.data.title;if(O=$4(n,{root:"_route",base:i,hash:R,onError(I){return console.error(`[Rip] Error ${I.status}: ${I.message||I.path}`)}}),H=R4({router:O,app:_,components:n,resolver:W,compile:h,target:G,onError(I){return console.error(`[Rip] ${I.message}`,I.error)}}),H.start(),P=null,u.data?.watch)P=p3(`${i}/watch`);return L=window,w=!1,A=function(){if(w)return;if(w=!0,P?.(),H.stop(),O.destroy(),F?.(),delete globalThis[c],delete globalThis.__ripApp,delete globalThis.__ripLaunched,L.app===_)delete L.app;return L.__RIP__?.app===_?delete L.__RIP__:void 0},L.app=_,L.__RIP__={app:_,components:n,router:O,renderer:H,resolver:W,destroy:A,version:"0.3.0"},globalThis.__ripLaunched=!0,{app:_,components:n,router:O,renderer:H,destroy:A}}R1=function(f,_){if(!_)return;return f.preventDefault(),f.stopPropagation(),_()};globalThis.__ariaLastFocusedEl??=null;if(typeof document<"u"&&!globalThis.__ariaFocusTrackerBound)document.addEventListener("focusin",function(f){return globalThis.__ariaLastFocusedEl=f.target},!0),globalThis.__ariaFocusTrackerBound=!0;j3=function(f,_){if(f.isComposing)return;return(()=>{switch(f.key){case"ArrowDown":return R1(f,_.next);case"ArrowUp":return R1(f,_.prev);case"Home":case"PageUp":return R1(f,_.first);case"End":case"PageDown":return R1(f,_.last);case"Enter":case" ":return R1(f,_.select);case"Escape":return R1(f,_.dismiss);case"Tab":return _.tab?.();default:return f.key.length===1?_.char?.(f.key):void 0}})()};r3=function(f,_,i,n=[],u=null){let l,c,h,A,w;if(c=function(D){return typeof D==="function"?D():D},w=c(_),w&&w.__ariaPopupDismiss)w.__ariaPopupDismiss(),w.__ariaPopupDismiss=null;if(!(f&&w))return;return h=(D)=>{return![w,...n.map(c)].some(function($){return $?.contains(D.target)})?i():void 0},A=(D)=>{if(w?.contains(D.target))return;return u?u():i()},document.addEventListener("mousedown",h),window.addEventListener("scroll",A,!0),l=function(){return document.removeEventListener("mousedown",h),window.removeEventListener("scroll",A,!0)},w.__ariaPopupDismiss=l,l};m3=function(f=250){let _;return _=0,{block(i=f){return _=Date.now()+i},canOpen(){return Date.now()>=_}}};L3=function(f,_,i,n=null){let u,l,c,h,A,w,D,$,U,R,z;if(h=function(M){return typeof M==="function"?M():M},u=function(){let M,F;if(M=document.activeElement,M&&M!==document.body)return M;if(F=globalThis.__ariaLastFocusedEl,F?.isConnected!==!1)return F;return null},c=h(_),!c)return;if(!Object.hasOwn(HTMLElement.prototype,"togglePopover"))return;if(D=null,z=function(M){if(M){c.hidden=!1;try{c.inert=!1}catch{}return c.removeAttribute("aria-hidden")}else{try{c.inert=!0}catch{}return c.setAttribute("aria-hidden","true"),c.hidden=!0}},$=function(){let M,F;if(F=D,D=null,!F?.focus)return;return M=function(H=6){if(F.isConnected===!1)return;try{F.focus({preventScroll:!0})}catch{F.focus()}if(document.activeElement===F||H<=1)return;return setTimeout(function(){return M(H-1)},16)},requestAnimationFrame(function(){return M()})},c.__ariaBindPopover)c.removeEventListener("toggle",c.__ariaBindPopover),c.__ariaBindPopover=null;if(A=function(M){let F;if(F=M.newState==="open",F)D=h(n)||u(),z(!0);else z(!1),$();return i?.(F)},c.addEventListener("toggle",A),c.__ariaBindPopover=A,U=c.matches(":popover-open"),l=!!f,U!==l){if(R=h(n),l)D=R||u(),z(!0);w=R&&l?{force:l,source:R}:{force:l};try{c.togglePopover(w)}catch{}}else z(l);return function(){return c.removeEventListener("toggle",A),c.__ariaBindPopover===A?c.__ariaBindPopover=null:void 0}};T3=function(f,_,i,n=!0){let u,l,c,h,A,w,D,$,U,R;if(c=function(z){return typeof z==="function"?z():z},u=function(){let z,M;if(z=document.activeElement,z&&z!==document.body)return z;if(M=globalThis.__ariaLastFocusedEl,M?.isConnected!==!1)return M;return null},l=c(_),!l?.showModal)return;if($=null,R=function(z){if(z){l.hidden=!1;try{l.inert=!1}catch{}return l.removeAttribute("aria-hidden")}else{try{l.inert=!0}catch{}return l.setAttribute("aria-hidden","true"),l.hidden=!0}},U=function(){let z,M;if(M=$,$=null,!M?.focus)return;return z=function(F=6){if(M.isConnected===!1)return;try{M.focus({preventScroll:!0})}catch{M.focus()}if(document.activeElement===M||F<=1)return;return setTimeout(function(){return z(F-1)},16)},requestAnimationFrame(function(){return z()})},l.__ariaBindDialog)[w,D]=l.__ariaBindDialog,l.removeEventListener("cancel",w),l.removeEventListener("close",D),l.__ariaBindDialog=null;if(h=function(z){if(!n){z.preventDefault();return}return i?.(!1)},A=function(){return i?.(!1),R(!1),U()},l.addEventListener("cancel",h),l.addEventListener("close",A),l.__ariaBindDialog=[h,A],f&&!l.open){if(!$)$=u();R(!0);try{l.showModal()}catch{}}else if(!f&&l.open)l.close();else R(!!f);return function(){return l.removeEventListener("cancel",h),l.removeEventListener("close",A),l.__ariaBindDialog?.[0]===h?l.__ariaBindDialog=null:void 0}};t3=function(f,_,i="vertical"){let n,u;if(f.isComposing)return;return u=i!=="horizontal",n=i!=="vertical",(()=>{switch(f.key){case"ArrowDown":return u?R1(f,_.next):void 0;case"ArrowUp":return u?R1(f,_.prev):void 0;case"ArrowRight":return n?R1(f,_.next):void 0;case"ArrowLeft":return n?R1(f,_.prev):void 0;case"Home":case"PageUp":return R1(f,_.first);case"End":case"PageDown":return R1(f,_.last);case"Enter":case" ":return R1(f,_.select);case"Escape":return R1(f,_.dismiss);default:return f.key.length===1?_.char?.(f.key):void 0}})()};v3=function(f,_,i=4,n=!0){let u,l;if(!(f&&_))return;if(l=f.getBoundingClientRect(),_.style.position="fixed",_.style.left=`${l.left}px`,_.style.top=`${l.bottom+i}px`,_.style.minWidth=`${l.width}px`,u=_.getBoundingClientRect(),u.bottom>window.innerHeight)_.style.top=`${l.top-u.height-i}px`;if(u.right>window.innerWidth)_.style.left=`${window.innerWidth-u.width-i}px`;return n?_.style.visibility="visible":void 0};var Q0='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';s3=function(f){let _;return _=function(i){let n,u,l,c;if(i.key!=="Tab")return;if(c=f.querySelectorAll(Q0),l=Array.from(c).filter(function(h){return h.offsetParent!==null}),!l.length)return;return n=l[0],u=l[l.length-1],i.shiftKey?document.activeElement===n?(i.preventDefault(),u.focus()):void 0:document.activeElement===u?(i.preventDefault(),n.focus()):void 0},f.addEventListener("keydown",_),function(){return f.removeEventListener("keydown",_)}};x3=function(f,_){let i,n;if(!f)return;if(n=f.querySelector("h1,h2,h3,h4,h5,h6"),n)n.id??=`${_}-title`,f.setAttribute("aria-labelledby",n.id);if(i=f.querySelector("p"),i)return i.id??=`${_}-desc`,f.setAttribute("aria-describedby",i.id)};V1=[];V3=function(f){let _;if(_=window.scrollY,V1.push({instance:f,scrollY:_}),V1.length===1)return document.body.style.position="fixed",document.body.style.top=`-${_}px`,document.body.style.width="100%"};o3=function(f){let _,i;if(_=V1.findIndex(function(n){return n.instance===f}),_<0)return;if({scrollY:i}=V1.splice(_,1)[0],!V1.length)return document.body.style.position="",document.body.style.top="",document.body.style.width="",window.scrollTo(0,i)};R2=!1;e1=!1;g2=function(){let f,_,i;if(R2)return e1;if(!(typeof document<"u"&&document.body))return!1;return(()=>{try{return f=document.createElement("div"),_=document.createElement("div"),f.style.cssText="position:fixed;top:100px;left:100px;width:10px;height:10px;anchor-name:--probe",_.style.cssText="position:fixed;inset:auto;margin:0;position-anchor:--probe;position-area:bottom start;width:10px;height:10px",document.body.appendChild(f),document.body.appendChild(_),i=_.getBoundingClientRect(),f.remove(),_.remove(),e1=i.top>50,R2=!0,e1}catch{return R2=!0,e1=!1}})()};I3=["position","inset","top","right","bottom","left","margin","marginTop","marginRight","marginBottom","marginLeft","transform","minWidth","positionAnchor","positionArea","positionTry","positionVisibility"];g3=function(f){let _=[];for(let i of I3)_.push(f.style[i]="");return _};a3=function(f,_,i={}){let n,u,l,c,h,A,w,D;if(!(f&&_))return;if(h=i.placement??"bottom start",c=i.offset??4,u=i.matchWidth??!1,g3(_),g2()){if(l=`--anchor-${_.id||Math.random().toString(36).slice(2,8)}`,A=_.__ariaPrevTrigger,A&&A!==f)try{A.style.anchorName=""}catch{}switch(_.__ariaPrevTrigger=f,f.style.anchorName=l,_.style.positionAnchor=l,_.style.position="fixed",_.style.inset="auto",_.style.margin="0",_.style.positionArea=h,_.style.positionTry="flip-block, flip-inline, flip-block flip-inline",_.style.positionVisibility="anchors-visible",[D]=h.split(" "),D){case"bottom":_.style.marginTop=`${c}px`;break;case"top":_.style.marginBottom=`${c}px`;break;case"left":_.style.marginRight=`${c}px`;break;case"right":_.style.marginLeft=`${c}px`;break}return u?_.style.minWidth="anchor-size(width)":void 0}else{switch(w=f.getBoundingClientRect(),_.style.position="fixed",_.style.inset="auto",_.style.margin="0",[D,n]=h.split(" "),n??="start",D){case"bottom":_.style.top=`${w.bottom+c}px`;break;case"top":_.style.bottom=`${window.innerHeight-w.top+c}px`;break;case"left":_.style.right=`${window.innerWidth-w.left+c}px`;break;case"right":_.style.left=`${w.right+c}px`;break}if(Array.isArray(["bottom","top"])?["bottom","top"].includes(D):(D in["bottom","top"]))switch(n){case"start":_.style.left=`${w.left}px`;break;case"center":_.style.left=`${w.left+w.width/2}px`,_.style.transform="translateX(-50%)";break;case"end":_.style.right=`${window.innerWidth-w.right}px`;break}else switch(n){case"start":_.style.top=`${w.top}px`;break;case"center":_.style.top=`${w.top+w.height/2}px`,_.style.transform="translateY(-50%)";break;case"end":_.style.bottom=`${window.innerHeight-w.bottom}px`;break}return u?_.style.minWidth=`${w.width}px`:void 0}};C3=function(...f){return function(){let _=[];for(let i of f)_.push((()=>{try{return i?.()}catch{return null}})());return _}};globalThis.__aria??={listNav:j3,rovingNav:t3,popupDismiss:r3,popupGuard:m3,bindPopover:L3,bindDialog:T3,positionBelow:v3,trapFocus:s3,wireAria:x3,lockScroll:V3,unlockScroll:o3,position:a3,hasAnchor:g2,combine:C3};globalThis.ARIA??=globalThis.__aria;I1.modules["app.rip"]=W2;for(let[f,_]of Object.entries(W2))if(typeof _==="function")globalThis[f]=_;})();
|