@scout9/app 1.0.0-alpha.0.7.6 → 1.0.0-alpha.0.7.7

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var spirits = require("./spirits-552ab0ad.cjs");
3
+ var spirits = require("./spirits-9b4c57da.cjs");
4
4
  var require$$0$4 = require('util');
5
5
  var require$$0$3 = require('stream');
6
6
  var require$$1 = require('path');
@@ -21,7 +21,7 @@ var node_url = require('node:url');
21
21
  var node_events = require('node:events');
22
22
  var Stream = require('node:stream');
23
23
  var node_string_decoder = require('node:string_decoder');
24
- var macros = require("./macros-346a3755.cjs");
24
+ var macros = require("./macros-44de7397.cjs");
25
25
  var readline = require('node:readline');
26
26
  var process$2 = require('node:process');
27
27
  var node_os = require('node:os');
@@ -30176,7 +30176,7 @@ common.createRequestFunction = createRequestFunction;
30176
30176
  var configuration = {};
30177
30177
 
30178
30178
  var name$1 = "@scout9/admin";
30179
- var version$2 = "1.0.0-alpha.0.0.59";
30179
+ var version$2 = "1.0.0-alpha.0.0.60";
30180
30180
  var description$1 = "";
30181
30181
  var main$2 = "./build/index.js";
30182
30182
  var types$1 = "./build/index.d.ts";
@@ -35241,7 +35241,7 @@ function _loadUserPackageJson() {
35241
35241
  targetPkgUrl = isTest ? packageTestJsonUrl : packageJsonUrl;
35242
35242
  _context2.t0 = JSON;
35243
35243
  _context2.next = 10;
35244
- return fs__default["default"].readFile(new URL(targetPkgUrl, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('dev-39cc4ace.js', document.baseURI).href))), 'utf-8');
35244
+ return fs__default["default"].readFile(new URL(targetPkgUrl, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('dev-992cfc50.js', document.baseURI).href))), 'utf-8');
35245
35245
  case 10:
35246
35246
  _context2.t1 = _context2.sent;
35247
35247
  pkg = _context2.t0.parse.call(_context2.t0, _context2.t1);
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var spirits = require("./spirits-552ab0ad.cjs");
4
- var dev = require("./dev-39cc4ace.cjs");
5
- var macros = require("./macros-346a3755.cjs");
3
+ var spirits = require("./spirits-9b4c57da.cjs");
4
+ var dev = require("./dev-992cfc50.cjs");
5
+ var macros = require("./macros-44de7397.cjs");
6
6
  var require$$0 = require('fs');
7
7
  var require$$2$1 = require('events');
8
8
  var require$$1 = require('path');
@@ -29483,7 +29483,7 @@ class Body {
29483
29483
  }
29484
29484
  const {
29485
29485
  toFormData
29486
- } = await Promise.resolve().then(function () { return require("./multipart-parser-bb9514c7.cjs"); });
29486
+ } = await Promise.resolve().then(function () { return require("./multipart-parser-75be3d2e.cjs"); });
29487
29487
  return toFormData(this.body, ct);
29488
29488
  }
29489
29489
 
@@ -41884,7 +41884,7 @@ function _loadUserPackageJson() {
41884
41884
  targetPkgUrl = isTest ? packageTestJsonUrl : packageJsonUrl;
41885
41885
  _context.t0 = JSON;
41886
41886
  _context.next = 10;
41887
- return fs__default["default"].readFile(new URL(targetPkgUrl, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-2ec44f44.js', document.baseURI).href))), 'utf-8');
41887
+ return fs__default["default"].readFile(new URL(targetPkgUrl, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-6610bfda.js', document.baseURI).href))), 'utf-8');
41888
41888
  case 10:
41889
41889
  _context.t1 = _context.sent;
41890
41890
  pkg = _context.t0.parse.call(_context.t0, _context.t1);
@@ -43176,7 +43176,7 @@ var ProjectFiles = /*#__PURE__*/function () {
43176
43176
  return ProjectFiles;
43177
43177
  }();
43178
43178
 
43179
- var __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-2ec44f44.js', document.baseURI).href)));
43179
+ var __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-6610bfda.js', document.baseURI).href)));
43180
43180
  var __dirname$1 = path__default["default"].dirname(__filename$1);
43181
43181
  function zipDirectory(source, out) {
43182
43182
  var archive = archiver$1('tar', {
@@ -43391,7 +43391,7 @@ function _buildApp() {
43391
43391
  case 11:
43392
43392
  _context4.t0 = JSON;
43393
43393
  _context4.next = 14;
43394
- return fs__default["default"].readFile(new URL(templatePackagePath, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-2ec44f44.js', document.baseURI).href))), 'utf-8');
43394
+ return fs__default["default"].readFile(new URL(templatePackagePath, (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('index-6610bfda.js', document.baseURI).href))), 'utf-8');
43395
43395
  case 14:
43396
43396
  _context4.t1 = _context4.sent;
43397
43397
  packageTemplate = _context4.t0.parse.call(_context4.t0, _context4.t1);
package/dist/index.cjs CHANGED
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require("./index-2ec44f44.cjs");
6
- var dev = require("./dev-39cc4ace.cjs");
7
- require("./spirits-552ab0ad.cjs");
8
- require("./macros-346a3755.cjs");
5
+ var index = require("./index-6610bfda.cjs");
6
+ var dev = require("./dev-992cfc50.cjs");
7
+ require("./spirits-9b4c57da.cjs");
8
+ require("./macros-44de7397.cjs");
9
9
  require('fs');
10
10
  require('events');
11
11
  require('path');
@@ -4464,6 +4464,9 @@ var _EntityConfigurationSchema = z.object({
4464
4464
  id: zId('Id', z.string({
4465
4465
  description: 'If not provided, the id will default to the route (folder) name'
4466
4466
  })).optional(),
4467
+ model: z.any({
4468
+ description: 'model data'
4469
+ }).optional(),
4467
4470
  type: EntityTypeEnum.optional(),
4468
4471
  references: z.string({
4469
4472
  description: 'If type="reference" then this field determines which core entity this categorical entity is referencing'
@@ -2,9 +2,9 @@
2
2
 
3
3
  require('node:fs');
4
4
  require('node:path');
5
- var index = require("./index-2ec44f44.cjs");
6
- require("./spirits-552ab0ad.cjs");
7
- require("./dev-39cc4ace.cjs");
5
+ var index = require("./index-6610bfda.cjs");
6
+ require("./spirits-9b4c57da.cjs");
7
+ require("./dev-992cfc50.cjs");
8
8
  require('util');
9
9
  require('stream');
10
10
  require('path');
@@ -23,7 +23,7 @@ require('node:url');
23
23
  require('node:events');
24
24
  require('node:stream');
25
25
  require('node:string_decoder');
26
- require("./macros-346a3755.cjs");
26
+ require("./macros-44de7397.cjs");
27
27
  require('node:readline');
28
28
  require('node:process');
29
29
  require('node:os');
package/dist/schemas.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var macros = require("./macros-346a3755.cjs");
5
+ var macros = require("./macros-44de7397.cjs");
6
6
 
7
7
 
8
8
 
@@ -774,6 +774,7 @@ var Spirits = {
774
774
  oldKeyCount,
775
775
  newKeyCount,
776
776
  noNewContext,
777
+ _messages2,
777
778
  slots,
778
779
  hasNoInstructions,
779
780
  hasNoCustomMessage,
@@ -1051,9 +1052,21 @@ var Spirits = {
1051
1052
  lockedReason: ''
1052
1053
  });
1053
1054
  }
1054
- noNewContext = Object.keys(parsePayload.context).length === 0; // 3. Run the workflow
1055
+ noNewContext = Object.keys(parsePayload.context).length === 0; // upsert parse system messages
1056
+ if (parsePayload.contextMessages.length) {
1057
+ (_messages2 = messages).push.apply(_messages2, _toConsumableArray(parsePayload.contextMessages.map(function (text) {
1058
+ return {
1059
+ id: idGenerator('sys'),
1060
+ role: 'system',
1061
+ content: text,
1062
+ time: new Date().toISOString()
1063
+ };
1064
+ })));
1065
+ }
1066
+
1067
+ // 3. Run the workflow
1055
1068
  progress('Running workflow', 'info', 'SET_PROCESSING', 'system');
1056
- _context2.next = 46;
1069
+ _context2.next = 47;
1057
1070
  return workflow({
1058
1071
  messages: messages,
1059
1072
  conversation: conversation,
@@ -1082,7 +1095,7 @@ var Spirits = {
1082
1095
  return accumulator;
1083
1096
  }, []);
1084
1097
  });
1085
- case 46:
1098
+ case 47:
1086
1099
  slots = _context2.sent;
1087
1100
  hasNoInstructions = slots.every(function (s) {
1088
1101
  return !s.instructions || Array.isArray(s.instructions) && s.instructions.length === 0;
@@ -1109,20 +1122,20 @@ var Spirits = {
1109
1122
  resettedIntent = false;
1110
1123
  /** @type {Array<string> | undefined} */
1111
1124
  _iterator = _createForOfIteratorHelper(slots);
1112
- _context2.prev = 54;
1125
+ _context2.prev = 55;
1113
1126
  _iterator.s();
1114
- case 56:
1127
+ case 57:
1115
1128
  if ((_step = _iterator.n()).done) {
1116
- _context2.next = 127;
1129
+ _context2.next = 128;
1117
1130
  break;
1118
1131
  }
1119
1132
  _step$value = _step.value, forward = _step$value.forward, forwardNote = _step$value.forwardNote, instructions = _step$value.instructions, removeInstructions = _step$value.removeInstructions, manualMessage = _step$value.message, scheduled = _step$value.scheduled, resetIntent = _step$value.resetIntent, secondsDelay = _step$value.secondsDelay, contextUpsert = _step$value.contextUpsert, anticipate = _step$value.anticipate, slotFollowup = _step$value.followup, slotEntityContextUpsert = _step$value.entityContextUpsert, tasks = _step$value.tasks;
1120
1133
  if (!anticipate) {
1121
- _context2.next = 71;
1134
+ _context2.next = 72;
1122
1135
  break;
1123
1136
  }
1124
1137
  if (!Array.isArray(anticipate)) {
1125
- _context2.next = 66;
1138
+ _context2.next = 67;
1126
1139
  break;
1127
1140
  }
1128
1141
  // 'literal' anticipation
@@ -1142,11 +1155,11 @@ var Spirits = {
1142
1155
  slots: _slots,
1143
1156
  map: map
1144
1157
  });
1145
- _context2.next = 71;
1158
+ _context2.next = 72;
1146
1159
  break;
1147
- case 66:
1160
+ case 67:
1148
1161
  if (!('yes' in anticipate && 'no' in anticipate && 'did' in anticipate)) {
1149
- _context2.next = 70;
1162
+ _context2.next = 71;
1150
1163
  break;
1151
1164
  }
1152
1165
  // "did" anticipation
@@ -1158,11 +1171,11 @@ var Spirits = {
1158
1171
  },
1159
1172
  did: anticipate.did
1160
1173
  });
1161
- _context2.next = 71;
1174
+ _context2.next = 72;
1162
1175
  break;
1163
- case 70:
1164
- throw new Error("Invalid anticipate payload \"".concat(JSON.stringify(anticipate), "\""));
1165
1176
  case 71:
1177
+ throw new Error("Invalid anticipate payload \"".concat(JSON.stringify(anticipate), "\""));
1178
+ case 72:
1166
1179
  // tasks from auto/manual ingress to execute
1167
1180
  if (!!tasks && Array.isArray(tasks) && !!tasks.length) {
1168
1181
  if (!_tasks) _tasks = [];
@@ -1218,19 +1231,19 @@ var Spirits = {
1218
1231
 
1219
1232
  // Insert instructions context
1220
1233
  if (!instructions) {
1221
- _context2.next = 90;
1234
+ _context2.next = 91;
1222
1235
  break;
1223
1236
  }
1224
1237
  if (!(typeof instructions === 'string')) {
1225
- _context2.next = 80;
1238
+ _context2.next = 81;
1226
1239
  break;
1227
1240
  }
1228
1241
  addInstruction(instructions, previousLockAttempt);
1229
- _context2.next = 90;
1242
+ _context2.next = 91;
1230
1243
  break;
1231
- case 80:
1244
+ case 81:
1232
1245
  if (!Array.isArray(instructions)) {
1233
- _context2.next = 85;
1246
+ _context2.next = 86;
1234
1247
  break;
1235
1248
  }
1236
1249
  _iterator4 = _createForOfIteratorHelper(instructions);
@@ -1248,25 +1261,25 @@ var Spirits = {
1248
1261
  } finally {
1249
1262
  _iterator4.f();
1250
1263
  }
1251
- _context2.next = 90;
1264
+ _context2.next = 91;
1252
1265
  break;
1253
- case 85:
1266
+ case 86:
1254
1267
  if (!(_typeof(instructions) === 'object' && 'content' in instructions)) {
1255
- _context2.next = 89;
1268
+ _context2.next = 90;
1256
1269
  break;
1257
1270
  }
1258
1271
  addInstruction(instructions.content, previousLockAttempt, instructions.id);
1259
- _context2.next = 90;
1272
+ _context2.next = 91;
1260
1273
  break;
1261
- case 89:
1262
- throw new Error("SpiritsError: instructions must be a string or array or {content: \"<instruction>\"}, got: ".concat(JSON.stringify(instructions)));
1263
1274
  case 90:
1275
+ throw new Error("SpiritsError: instructions must be a string or array or {content: \"<instruction>\"}, got: ".concat(JSON.stringify(instructions)));
1276
+ case 91:
1264
1277
  if (!removeInstructions) {
1265
- _context2.next = 107;
1278
+ _context2.next = 108;
1266
1279
  break;
1267
1280
  }
1268
1281
  _iterator5 = _createForOfIteratorHelper(removeInstructions);
1269
- _context2.prev = 92;
1282
+ _context2.prev = 93;
1270
1283
  _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop() {
1271
1284
  var instructionId, index;
1272
1285
  return _regeneratorRuntime().wrap(function _loop$(_context) {
@@ -1291,29 +1304,29 @@ var Spirits = {
1291
1304
  }, _loop);
1292
1305
  });
1293
1306
  _iterator5.s();
1294
- case 95:
1307
+ case 96:
1295
1308
  if ((_step5 = _iterator5.n()).done) {
1296
- _context2.next = 99;
1309
+ _context2.next = 100;
1297
1310
  break;
1298
1311
  }
1299
- return _context2.delegateYield(_loop(), "t0", 97);
1300
- case 97:
1301
- _context2.next = 95;
1312
+ return _context2.delegateYield(_loop(), "t0", 98);
1313
+ case 98:
1314
+ _context2.next = 96;
1302
1315
  break;
1303
- case 99:
1304
- _context2.next = 104;
1316
+ case 100:
1317
+ _context2.next = 105;
1305
1318
  break;
1306
- case 101:
1307
- _context2.prev = 101;
1308
- _context2.t1 = _context2["catch"](92);
1319
+ case 102:
1320
+ _context2.prev = 102;
1321
+ _context2.t1 = _context2["catch"](93);
1309
1322
  _iterator5.e(_context2.t1);
1310
- case 104:
1311
- _context2.prev = 104;
1323
+ case 105:
1324
+ _context2.prev = 105;
1312
1325
  _iterator5.f();
1313
- return _context2.finish(104);
1314
- case 107:
1326
+ return _context2.finish(105);
1327
+ case 108:
1315
1328
  if (!manualMessage) {
1316
- _context2.next = 123;
1329
+ _context2.next = 124;
1317
1330
  break;
1318
1331
  }
1319
1332
  /** @type {import('@scout9/app').Message} */
@@ -1325,25 +1338,25 @@ var Spirits = {
1325
1338
  time: new Date().toISOString()
1326
1339
  };
1327
1340
  if (!(_typeof(manualMessage) === 'object')) {
1328
- _context2.next = 115;
1341
+ _context2.next = 116;
1329
1342
  break;
1330
1343
  }
1331
1344
  Object.assign(manualMessageObj, manualMessage);
1332
1345
  manualMessageObj.role = 'agent';
1333
1346
  manualMessageObj.time = new Date().toISOString();
1334
- _context2.next = 120;
1347
+ _context2.next = 121;
1335
1348
  break;
1336
- case 115:
1349
+ case 116:
1337
1350
  if (!(typeof manualMessage === 'string')) {
1338
- _context2.next = 119;
1351
+ _context2.next = 120;
1339
1352
  break;
1340
1353
  }
1341
1354
  manualMessageObj.content = manualMessage;
1342
- _context2.next = 120;
1355
+ _context2.next = 121;
1343
1356
  break;
1344
- case 119:
1345
- throw new Error('Manual message must be of type "string" or "DirectMessage"');
1346
1357
  case 120:
1358
+ throw new Error('Manual message must be of type "string" or "DirectMessage"');
1359
+ case 121:
1347
1360
  if (scheduled) {
1348
1361
  manualMessageObj.time = new Date(scheduled * 1000).toISOString();
1349
1362
  manualMessageObj.scheduled = manualMessageObj.time;
@@ -1355,7 +1368,7 @@ var Spirits = {
1355
1368
  }
1356
1369
  messages.push(manualMessageObj);
1357
1370
  progress('Added manual message', 'info', 'ADD_MESSAGE', messages[messages.length - 1]);
1358
- case 123:
1371
+ case 124:
1359
1372
  if (contextUpsert) {
1360
1373
  context = updateContext(context, contextUpsert);
1361
1374
  progress('Upserted context', 'info', 'UPDATE_CONTEXT', contextUpsert);
@@ -1363,21 +1376,21 @@ var Spirits = {
1363
1376
  if (resetIntent) {
1364
1377
  resettedIntent = true;
1365
1378
  }
1366
- case 125:
1367
- _context2.next = 56;
1379
+ case 126:
1380
+ _context2.next = 57;
1368
1381
  break;
1369
- case 127:
1370
- _context2.next = 132;
1382
+ case 128:
1383
+ _context2.next = 133;
1371
1384
  break;
1372
- case 129:
1373
- _context2.prev = 129;
1374
- _context2.t2 = _context2["catch"](54);
1385
+ case 130:
1386
+ _context2.prev = 130;
1387
+ _context2.t2 = _context2["catch"](55);
1375
1388
  _iterator.e(_context2.t2);
1376
- case 132:
1377
- _context2.prev = 132;
1389
+ case 133:
1390
+ _context2.prev = 133;
1378
1391
  _iterator.f();
1379
- return _context2.finish(132);
1380
- case 135:
1392
+ return _context2.finish(133);
1393
+ case 136:
1381
1394
  if (resettedIntent && !_forward) {
1382
1395
  conversation.intent = null;
1383
1396
  conversation.intentScore = null;
@@ -1396,14 +1409,14 @@ var Spirits = {
1396
1409
  // 4. Generate response
1397
1410
  // If conversation previously locked, don't generate
1398
1411
  if (input.conversation.locked) {
1399
- _context2.next = 187;
1412
+ _context2.next = 188;
1400
1413
  break;
1401
1414
  }
1402
1415
  if (!((!conversation.locked || !hasNoInstructions) && !!hasNoCustomMessage)) {
1403
- _context2.next = 153;
1416
+ _context2.next = 154;
1404
1417
  break;
1405
1418
  }
1406
- _context2.prev = 138;
1419
+ _context2.prev = 139;
1407
1420
  progress('Generating message', 'info', 'SET_PROCESSING', 'system');
1408
1421
 
1409
1422
  /** @type {import('@scout9/admin').GenerateRequestOneOf1} */
@@ -1417,9 +1430,9 @@ var Spirits = {
1417
1430
  if (!!_tasks && Array.isArray(_tasks) && !!_tasks.length) {
1418
1431
  generatorInput.tasks = _tasks;
1419
1432
  }
1420
- _context2.next = 144;
1433
+ _context2.next = 145;
1421
1434
  return generator(generatorInput);
1422
- case 144:
1435
+ case 145:
1423
1436
  generatorPayload = _context2.sent;
1424
1437
  if (!generatorPayload.send) {
1425
1438
  progress('Generated response', 'failed', undefined, {
@@ -1488,30 +1501,30 @@ var Spirits = {
1488
1501
  }
1489
1502
  }
1490
1503
  }
1491
- _context2.next = 153;
1504
+ _context2.next = 154;
1492
1505
  break;
1493
- case 148:
1494
- _context2.prev = 148;
1495
- _context2.t3 = _context2["catch"](138);
1506
+ case 149:
1507
+ _context2.prev = 149;
1508
+ _context2.t3 = _context2["catch"](139);
1496
1509
  onError(_context2.t3);
1497
1510
  console.error("Spirits: Locking conversation, error generating response: ".concat(_context2.t3.message));
1498
1511
  conversation = lockConversation(conversation, 'API: ' + _context2.t3.message);
1499
- case 153:
1512
+ case 154:
1500
1513
  if (!(messagesToTransform.length && transformer)) {
1501
- _context2.next = 186;
1514
+ _context2.next = 187;
1502
1515
  break;
1503
1516
  }
1504
- _context2.prev = 154;
1517
+ _context2.prev = 155;
1505
1518
  _iterator3 = _createForOfIteratorHelper(messagesToTransform);
1506
- _context2.prev = 156;
1519
+ _context2.prev = 157;
1507
1520
  _iterator3.s();
1508
- case 158:
1521
+ case 159:
1509
1522
  if ((_step3 = _iterator3.n()).done) {
1510
- _context2.next = 169;
1523
+ _context2.next = 170;
1511
1524
  break;
1512
1525
  }
1513
1526
  _step3.value;
1514
- _context2.next = 162;
1527
+ _context2.next = 163;
1515
1528
  return transformer({
1516
1529
  message: messagesToTransform,
1517
1530
  persona: persona,
@@ -1519,7 +1532,7 @@ var Spirits = {
1519
1532
  messages: messages,
1520
1533
  context: context
1521
1534
  });
1522
- case 162:
1535
+ case 163:
1523
1536
  transformResponse = _context2.sent;
1524
1537
  progress('Generated response', 'success', undefined, undefined);
1525
1538
  // Check if already had message
@@ -1539,37 +1552,37 @@ var Spirits = {
1539
1552
  });
1540
1553
  progress('Added agent message', 'info', 'ADD_MESSAGE', messages[messages.length - 1]);
1541
1554
  }
1542
- case 167:
1543
- _context2.next = 158;
1555
+ case 168:
1556
+ _context2.next = 159;
1544
1557
  break;
1545
- case 169:
1546
- _context2.next = 174;
1558
+ case 170:
1559
+ _context2.next = 175;
1547
1560
  break;
1548
- case 171:
1549
- _context2.prev = 171;
1550
- _context2.t4 = _context2["catch"](156);
1561
+ case 172:
1562
+ _context2.prev = 172;
1563
+ _context2.t4 = _context2["catch"](157);
1551
1564
  _iterator3.e(_context2.t4);
1552
- case 174:
1553
- _context2.prev = 174;
1565
+ case 175:
1566
+ _context2.prev = 175;
1554
1567
  _iterator3.f();
1555
- return _context2.finish(174);
1556
- case 177:
1557
- _context2.next = 184;
1568
+ return _context2.finish(175);
1569
+ case 178:
1570
+ _context2.next = 185;
1558
1571
  break;
1559
- case 179:
1560
- _context2.prev = 179;
1561
- _context2.t5 = _context2["catch"](154);
1572
+ case 180:
1573
+ _context2.prev = 180;
1574
+ _context2.t5 = _context2["catch"](155);
1562
1575
  console.error("Locking conversation, error transforming response: ".concat(_context2.t5.message));
1563
1576
  conversation = lockConversation(conversation, 'API: ' + _context2.t5.message);
1564
1577
  onError(_context2.t5);
1565
- case 184:
1566
- _context2.next = 187;
1578
+ case 185:
1579
+ _context2.next = 188;
1567
1580
  break;
1568
- case 186:
1581
+ case 187:
1569
1582
  if (messagesToTransform.length) {
1570
1583
  console.warn("No transformer provided");
1571
1584
  }
1572
- case 187:
1585
+ case 188:
1573
1586
  progress('Parsing message', 'info', 'SET_PROCESSING', null);
1574
1587
  return _context2.abrupt("return", {
1575
1588
  conversation: {
@@ -1593,11 +1606,11 @@ var Spirits = {
1593
1606
  followup: followup,
1594
1607
  entityContextUpsert: entityContextUpsert
1595
1608
  });
1596
- case 189:
1609
+ case 190:
1597
1610
  case "end":
1598
1611
  return _context2.stop();
1599
1612
  }
1600
- }, _callee, null, [[54, 129, 132, 135], [92, 101, 104, 107], [138, 148], [154, 179], [156, 171, 174, 177]]);
1613
+ }, _callee, null, [[55, 130, 133, 136], [93, 102, 105, 108], [139, 149], [155, 180], [157, 172, 175, 178]]);
1601
1614
  }));
1602
1615
  function customer(_x) {
1603
1616
  return _customer.apply(this, arguments);
package/dist/spirits.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var spirits = require("./spirits-552ab0ad.cjs");
5
+ var spirits = require("./spirits-9b4c57da.cjs");
6
6
 
7
7
 
8
8
 
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dev = require("./dev-39cc4ace.cjs");
6
- require("./spirits-552ab0ad.cjs");
5
+ var dev = require("./dev-992cfc50.cjs");
6
+ require("./spirits-9b4c57da.cjs");
7
7
  require('util');
8
8
  require('stream');
9
9
  require('path');
@@ -24,7 +24,7 @@ require('node:url');
24
24
  require('node:events');
25
25
  require('node:stream');
26
26
  require('node:string_decoder');
27
- require("./macros-346a3755.cjs");
27
+ require("./macros-44de7397.cjs");
28
28
  require('node:readline');
29
29
  require('node:process');
30
30
  require('node:os');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scout9/app",
3
- "version": "1.0.0-alpha.0.7.6",
3
+ "version": "1.0.0-alpha.0.7.7",
4
4
  "description": "Build and deploy your Scout9 app for SMS auto replies",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -105,7 +105,7 @@
105
105
  "zod-validation-error": "^3.4.0"
106
106
  },
107
107
  "peerDependencies": {
108
- "@scout9/admin": ">= 1.0.0-alpha.0.0.59"
108
+ "@scout9/admin": ">= 1.0.0-alpha.0.0.60"
109
109
  },
110
110
  "engines": {
111
111
  "node": ">=18.13"
@@ -35,6 +35,7 @@ const EntityTypeEnum = z.enum(['entity', 'reference'], {description: 'The type o
35
35
 
36
36
  const _EntityConfigurationSchema = z.object({
37
37
  id: zId('Id', z.string({description: 'If not provided, the id will default to the route (folder) name'})).optional(),
38
+ model: z.any({description: 'model data'}).optional(),
38
39
  type: EntityTypeEnum.optional(),
39
40
  references: z.string({description: 'If type="reference" then this field determines which core entity this categorical entity is referencing'}).optional(),
40
41
  definitions: z.array(EntityConfigurationDefinitionSchema).optional(),
@@ -342,6 +342,16 @@ export const Spirits = {
342
342
 
343
343
  const noNewContext = Object.keys(parsePayload.context).length === 0;
344
344
 
345
+ // upsert parse system messages
346
+ if (parsePayload.contextMessages.length) {
347
+ messages.push(...parsePayload.contextMessages.map((text) => ({
348
+ id: idGenerator('sys'),
349
+ role: 'system',
350
+ content: text,
351
+ time: new Date().toISOString()
352
+ })));
353
+ }
354
+
345
355
  // 3. Run the workflow
346
356
  progress('Running workflow', 'info', 'SET_PROCESSING', 'system');
347
357
 
package/types/index.d.ts CHANGED
@@ -1684,6 +1684,7 @@ declare module '@scout9/app/schemas' {
1684
1684
  entities: z.ZodArray<z.ZodEffects<z.ZodObject<{
1685
1685
  type: z.ZodOptional<z.ZodEnum<["entity", "reference"]>>;
1686
1686
  id: z.ZodOptional<z.ZodString>;
1687
+ model: z.ZodOptional<z.ZodAny>;
1687
1688
  references: z.ZodOptional<z.ZodString>;
1688
1689
  definitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
1689
1690
  utterance: z.ZodOptional<z.ZodString>;
@@ -1770,6 +1771,7 @@ declare module '@scout9/app/schemas' {
1770
1771
  } | null;
1771
1772
  type?: "entity" | "reference" | undefined;
1772
1773
  id?: string | undefined;
1774
+ model?: any;
1773
1775
  references?: string | undefined;
1774
1776
  definitions?: {
1775
1777
  value: string;
@@ -1800,6 +1802,7 @@ declare module '@scout9/app/schemas' {
1800
1802
  } | null;
1801
1803
  type?: "entity" | "reference" | undefined;
1802
1804
  id?: string | undefined;
1805
+ model?: any;
1803
1806
  references?: string | undefined;
1804
1807
  definitions?: {
1805
1808
  value: string;
@@ -1830,6 +1833,7 @@ declare module '@scout9/app/schemas' {
1830
1833
  } | null;
1831
1834
  type?: "entity" | "reference" | undefined;
1832
1835
  id?: string | undefined;
1836
+ model?: any;
1833
1837
  references?: string | undefined;
1834
1838
  definitions?: {
1835
1839
  value: string;
@@ -1860,6 +1864,7 @@ declare module '@scout9/app/schemas' {
1860
1864
  } | null;
1861
1865
  type?: "entity" | "reference" | undefined;
1862
1866
  id?: string | undefined;
1867
+ model?: any;
1863
1868
  references?: string | undefined;
1864
1869
  definitions?: {
1865
1870
  value: string;
@@ -1964,6 +1969,7 @@ declare module '@scout9/app/schemas' {
1964
1969
  } | null;
1965
1970
  type?: "entity" | "reference" | undefined;
1966
1971
  id?: string | undefined;
1972
+ model?: any;
1967
1973
  references?: string | undefined;
1968
1974
  definitions?: {
1969
1975
  value: string;
@@ -2084,6 +2090,7 @@ declare module '@scout9/app/schemas' {
2084
2090
  } | null;
2085
2091
  type?: "entity" | "reference" | undefined;
2086
2092
  id?: string | undefined;
2093
+ model?: any;
2087
2094
  references?: string | undefined;
2088
2095
  definitions?: {
2089
2096
  value: string;
@@ -2163,6 +2170,7 @@ declare module '@scout9/app/schemas' {
2163
2170
  }>>;
2164
2171
  export const EntityConfigurationSchema: z.ZodEffects<z.ZodObject<{
2165
2172
  id: z.ZodOptional<z.ZodString>;
2173
+ model: z.ZodOptional<z.ZodAny>;
2166
2174
  type: z.ZodOptional<z.ZodEnum<["entity", "reference"]>>;
2167
2175
  references: z.ZodOptional<z.ZodString>;
2168
2176
  definitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -2215,6 +2223,7 @@ declare module '@scout9/app/schemas' {
2215
2223
  }>, "many">>;
2216
2224
  }, "strict", z.ZodTypeAny, {
2217
2225
  id?: string | undefined;
2226
+ model?: any;
2218
2227
  type?: "entity" | "reference" | undefined;
2219
2228
  references?: string | undefined;
2220
2229
  definitions?: {
@@ -2235,6 +2244,7 @@ declare module '@scout9/app/schemas' {
2235
2244
  }[] | undefined;
2236
2245
  }, {
2237
2246
  id?: string | undefined;
2247
+ model?: any;
2238
2248
  type?: "entity" | "reference" | undefined;
2239
2249
  references?: string | undefined;
2240
2250
  definitions?: {
@@ -2255,6 +2265,7 @@ declare module '@scout9/app/schemas' {
2255
2265
  }[] | undefined;
2256
2266
  }>, {
2257
2267
  id?: string | undefined;
2268
+ model?: any;
2258
2269
  type?: "entity" | "reference" | undefined;
2259
2270
  references?: string | undefined;
2260
2271
  definitions?: {
@@ -2275,6 +2286,7 @@ declare module '@scout9/app/schemas' {
2275
2286
  }[] | undefined;
2276
2287
  }, {
2277
2288
  id?: string | undefined;
2289
+ model?: any;
2278
2290
  type?: "entity" | "reference" | undefined;
2279
2291
  references?: string | undefined;
2280
2292
  definitions?: {
@@ -2296,6 +2308,7 @@ declare module '@scout9/app/schemas' {
2296
2308
  }>;
2297
2309
  export const EntitiesRootConfigurationSchema: z.ZodArray<z.ZodEffects<z.ZodObject<{
2298
2310
  id: z.ZodOptional<z.ZodString>;
2311
+ model: z.ZodOptional<z.ZodAny>;
2299
2312
  type: z.ZodOptional<z.ZodEnum<["entity", "reference"]>>;
2300
2313
  references: z.ZodOptional<z.ZodString>;
2301
2314
  definitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -2348,6 +2361,7 @@ declare module '@scout9/app/schemas' {
2348
2361
  }>, "many">>;
2349
2362
  }, "strict", z.ZodTypeAny, {
2350
2363
  id?: string | undefined;
2364
+ model?: any;
2351
2365
  type?: "entity" | "reference" | undefined;
2352
2366
  references?: string | undefined;
2353
2367
  definitions?: {
@@ -2368,6 +2382,7 @@ declare module '@scout9/app/schemas' {
2368
2382
  }[] | undefined;
2369
2383
  }, {
2370
2384
  id?: string | undefined;
2385
+ model?: any;
2371
2386
  type?: "entity" | "reference" | undefined;
2372
2387
  references?: string | undefined;
2373
2388
  definitions?: {
@@ -2388,6 +2403,7 @@ declare module '@scout9/app/schemas' {
2388
2403
  }[] | undefined;
2389
2404
  }>, {
2390
2405
  id?: string | undefined;
2406
+ model?: any;
2391
2407
  type?: "entity" | "reference" | undefined;
2392
2408
  references?: string | undefined;
2393
2409
  definitions?: {
@@ -2408,6 +2424,7 @@ declare module '@scout9/app/schemas' {
2408
2424
  }[] | undefined;
2409
2425
  }, {
2410
2426
  id?: string | undefined;
2427
+ model?: any;
2411
2428
  type?: "entity" | "reference" | undefined;
2412
2429
  references?: string | undefined;
2413
2430
  definitions?: {
@@ -2433,6 +2450,7 @@ declare module '@scout9/app/schemas' {
2433
2450
  export const EntityRootProjectConfigurationSchema: z.ZodEffects<z.ZodObject<{
2434
2451
  type: z.ZodOptional<z.ZodEnum<["entity", "reference"]>>;
2435
2452
  id: z.ZodOptional<z.ZodString>;
2453
+ model: z.ZodOptional<z.ZodAny>;
2436
2454
  references: z.ZodOptional<z.ZodString>;
2437
2455
  definitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2438
2456
  utterance: z.ZodOptional<z.ZodString>;
@@ -2519,6 +2537,7 @@ declare module '@scout9/app/schemas' {
2519
2537
  } | null;
2520
2538
  type?: "entity" | "reference" | undefined;
2521
2539
  id?: string | undefined;
2540
+ model?: any;
2522
2541
  references?: string | undefined;
2523
2542
  definitions?: {
2524
2543
  value: string;
@@ -2549,6 +2568,7 @@ declare module '@scout9/app/schemas' {
2549
2568
  } | null;
2550
2569
  type?: "entity" | "reference" | undefined;
2551
2570
  id?: string | undefined;
2571
+ model?: any;
2552
2572
  references?: string | undefined;
2553
2573
  definitions?: {
2554
2574
  value: string;
@@ -2579,6 +2599,7 @@ declare module '@scout9/app/schemas' {
2579
2599
  } | null;
2580
2600
  type?: "entity" | "reference" | undefined;
2581
2601
  id?: string | undefined;
2602
+ model?: any;
2582
2603
  references?: string | undefined;
2583
2604
  definitions?: {
2584
2605
  value: string;
@@ -2609,6 +2630,7 @@ declare module '@scout9/app/schemas' {
2609
2630
  } | null;
2610
2631
  type?: "entity" | "reference" | undefined;
2611
2632
  id?: string | undefined;
2633
+ model?: any;
2612
2634
  references?: string | undefined;
2613
2635
  definitions?: {
2614
2636
  value: string;
@@ -2630,6 +2652,7 @@ declare module '@scout9/app/schemas' {
2630
2652
  export const EntitiesRootProjectConfigurationSchema: z.ZodArray<z.ZodEffects<z.ZodObject<{
2631
2653
  type: z.ZodOptional<z.ZodEnum<["entity", "reference"]>>;
2632
2654
  id: z.ZodOptional<z.ZodString>;
2655
+ model: z.ZodOptional<z.ZodAny>;
2633
2656
  references: z.ZodOptional<z.ZodString>;
2634
2657
  definitions: z.ZodOptional<z.ZodArray<z.ZodObject<{
2635
2658
  utterance: z.ZodOptional<z.ZodString>;
@@ -2716,6 +2739,7 @@ declare module '@scout9/app/schemas' {
2716
2739
  } | null;
2717
2740
  type?: "entity" | "reference" | undefined;
2718
2741
  id?: string | undefined;
2742
+ model?: any;
2719
2743
  references?: string | undefined;
2720
2744
  definitions?: {
2721
2745
  value: string;
@@ -2746,6 +2770,7 @@ declare module '@scout9/app/schemas' {
2746
2770
  } | null;
2747
2771
  type?: "entity" | "reference" | undefined;
2748
2772
  id?: string | undefined;
2773
+ model?: any;
2749
2774
  references?: string | undefined;
2750
2775
  definitions?: {
2751
2776
  value: string;
@@ -2776,6 +2801,7 @@ declare module '@scout9/app/schemas' {
2776
2801
  } | null;
2777
2802
  type?: "entity" | "reference" | undefined;
2778
2803
  id?: string | undefined;
2804
+ model?: any;
2779
2805
  references?: string | undefined;
2780
2806
  definitions?: {
2781
2807
  value: string;
@@ -2806,6 +2832,7 @@ declare module '@scout9/app/schemas' {
2806
2832
  } | null;
2807
2833
  type?: "entity" | "reference" | undefined;
2808
2834
  id?: string | undefined;
2835
+ model?: any;
2809
2836
  references?: string | undefined;
2810
2837
  definitions?: {
2811
2838
  value: string;
@@ -167,5 +167,5 @@
167
167
  null,
168
168
  null
169
169
  ],
170
- "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;cC8BlBC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCzBC,8BAA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC3F9BC,4BAA4BA;;;;;;;;;;;;;;;;;;;;;;cAwC5BC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBzBC,+BAA+BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBnBC,mBAAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKnBC,8BAA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqC9BC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAQzBC,0BAA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqB1BC,sBAAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKtBC,sBAAsBA"
170
+ "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;cC8BlBC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAsCzBC,8BAA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC3F9BC,4BAA4BA;;;;;;;;;;;;;;;;;;;;;;cAyC5BC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBzBC,+BAA+BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiB/BC,oCAAoCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAYpCC,sCAAsCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCjFtCC,iBAAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAIjBC,sBAAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEtBC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAEpBC,qBAAqBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOrBC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOpBC,sBAAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAMtBC,uBAAuBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCvCvBC,oCAAoCA;;;;;;;;;;cAKpCC,oBAAoBA;;;;;;;;;;cCJpBC,mBAAmBA;;;;;;;;;;;;;;;;;;;cAQnBC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cCPbC,mBAAmBA;cAEnBC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBdC,WAAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAiCXC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEbC,wBAAwBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAIxBC,0BAA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAI1BC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEzBC,2BAA2BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAE3BC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAEZC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cClEdC,aAAaA;;;;;;;;;;;;;cAWbC,uBAAuBA;;;;;;;;;;;;;cAYvBjD,iCAAiCA;;;;;;;;;;;;;;;;;;;;cAWjCC,uBAAuBA;;;;;;;;;;;;;;;;;;;cAavBC,kCAAkCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuBlCgD,iBAAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASjBC,kBAAkBA;;;;;;;;;;;;;;;;cAUlBC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAUdC,2BAA2BA;;;;;;;;;;cAU3BC,4BAA4BA;;;;;;;;;;cAE5BC,yBAAyBA;;;;;;;;;;;;;cAMzBC,mBAAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoBnBC,mBAAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKnBC,8BAA8BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqC9BC,yBAAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAQzBC,0BAA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAqB1BC,sBAAsBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKtBC,sBAAsBA"
171
171
  }