@holistics/cli-core 2.3.23 → 2.3.24

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.
Files changed (2) hide show
  1. package/dist/commands.js +549 -444
  2. package/package.json +4 -4
package/dist/commands.js CHANGED
@@ -27421,13 +27421,13 @@ var require_ignore = __commonJS((exports2, module2) => {
27421
27421
  ],
27422
27422
  [
27423
27423
  /((?:\\\\)*?)(\\?\s+)$/,
27424
- (_4, m12, m23) => m12 + (m23.indexOf("\\") === 0 ? SPACE : EMPTY)
27424
+ (_4, m13, m23) => m13 + (m23.indexOf("\\") === 0 ? SPACE : EMPTY)
27425
27425
  ],
27426
27426
  [
27427
27427
  /(\\+?)\s/g,
27428
- (_4, m12) => {
27429
- const { length } = m12;
27430
- return m12.slice(0, length - length % 2) + SPACE;
27428
+ (_4, m13) => {
27429
+ const { length } = m13;
27430
+ return m13.slice(0, length - length % 2) + SPACE;
27431
27431
  }
27432
27432
  ],
27433
27433
  [
@@ -27462,9 +27462,9 @@ var require_ignore = __commonJS((exports2, module2) => {
27462
27462
  ],
27463
27463
  [
27464
27464
  /(^|[^\\]+)(\\\*)+(?=.+)/g,
27465
- (_4, p13, p22) => {
27465
+ (_4, p12, p22) => {
27466
27466
  const unescaped = p22.replace(/\\\*/g, "[^\\/]*");
27467
- return p13 + unescaped;
27467
+ return p12 + unescaped;
27468
27468
  }
27469
27469
  ],
27470
27470
  [
@@ -27489,12 +27489,12 @@ var require_ignore = __commonJS((exports2, module2) => {
27489
27489
  var MODE_CHECK_IGNORE = "checkRegex";
27490
27490
  var UNDERSCORE = "_";
27491
27491
  var TRAILING_WILD_CARD_REPLACERS = {
27492
- [MODE_IGNORE](_4, p13) {
27493
- const prefix = p13 ? `${p13}[^/]+` : "[^/]*";
27492
+ [MODE_IGNORE](_4, p12) {
27493
+ const prefix = p12 ? `${p12}[^/]+` : "[^/]*";
27494
27494
  return `${prefix}(?=$|\\/$)`;
27495
27495
  },
27496
- [MODE_CHECK_IGNORE](_4, p13) {
27497
- const prefix = p13 ? `${p13}[^/]*` : "[^/]*";
27496
+ [MODE_CHECK_IGNORE](_4, p12) {
27497
+ const prefix = p12 ? `${p12}[^/]*` : "[^/]*";
27498
27498
  return `${prefix}(?=$|\\/$)`;
27499
27499
  }
27500
27500
  };
@@ -27799,7 +27799,7 @@ var require_dist3 = __commonJS((exports2) => {
27799
27799
  exports2.default = deferred;
27800
27800
  });
27801
27801
  // package.json
27802
- var version = "2.3.23";
27802
+ var version = "2.3.24";
27803
27803
 
27804
27804
  // ../../node_modules/.pnpm/@commander-js+extra-typings@13.1.0_commander@13.1.0/node_modules/@commander-js/extra-typings/esm.mjs
27805
27805
  var import__ = __toESM(require_extra_typings(), 1);
@@ -38201,7 +38201,7 @@ import fs from "fs";
38201
38201
  import os from "os";
38202
38202
  import path2 from "path";
38203
38203
 
38204
- // ../../node_modules/.pnpm/js-yaml@4.3.1/node_modules/js-yaml/dist/js-yaml.mjs
38204
+ // ../../node_modules/.pnpm/js-yaml@4.3.2/node_modules/js-yaml/dist/js-yaml.mjs
38205
38205
  function getDefaultExportFromCjs(x) {
38206
38206
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
38207
38207
  }
@@ -39535,16 +39535,21 @@ function requireLoader() {
39535
39535
  state.result += _result;
39536
39536
  }
39537
39537
  }
39538
+ function chargeMergeWork(state) {
39539
+ state.totalMergeKeys++;
39540
+ if (state.maxTotalMergeKeys !== -1 && state.totalMergeKeys > state.maxTotalMergeKeys) {
39541
+ throwError(state, "merge keys exceeded maxTotalMergeKeys (" + state.maxTotalMergeKeys + ")");
39542
+ }
39543
+ }
39538
39544
  function mergeMappings(state, destination, source, overridableKeys) {
39539
39545
  if (!common2.isObject(source)) {
39540
39546
  throwError(state, "cannot merge mappings; the provided source object is unacceptable");
39541
39547
  }
39548
+ chargeMergeWork(state);
39542
39549
  const sourceKeys = Object.keys(source);
39543
39550
  for (let index = 0, quantity = sourceKeys.length;index < quantity; index += 1) {
39544
39551
  const key = sourceKeys[index];
39545
- if (state.maxTotalMergeKeys !== -1 && ++state.totalMergeKeys > state.maxTotalMergeKeys) {
39546
- throwError(state, "merge keys exceeded maxTotalMergeKeys (" + state.maxTotalMergeKeys + ")");
39547
- }
39552
+ chargeMergeWork(state);
39548
39553
  if (!_hasOwnProperty.call(destination, key)) {
39549
39554
  setProperty(destination, key, source[key]);
39550
39555
  overridableKeys[key] = true;
@@ -39572,6 +39577,9 @@ function requireLoader() {
39572
39577
  }
39573
39578
  if (keyTag === "tag:yaml.org,2002:merge") {
39574
39579
  if (Array.isArray(valueNode)) {
39580
+ if (valueNode.length > 100) {
39581
+ throwError(state, "abnormal merge sequence size");
39582
+ }
39575
39583
  for (let index = 0, quantity = valueNode.length;index < quantity; index += 1) {
39576
39584
  mergeMappings(state, _result, valueNode[index], overridableKeys);
39577
39585
  }
@@ -65786,11 +65794,53 @@ Func rel_config(rel: Relationship, active: Boolean, direction: 'one_to_many' | '
65786
65794
  }
65787
65795
  }
65788
65796
 
65789
- Type Relationship {
65797
+ // One column pair beyond the \`from\`/\`to\` pair. Blocks combine with AND.
65798
+ Type RelationshipKey {
65799
+ from: FieldRef
65800
+ to: FieldRef
65801
+ }
65802
+
65803
+ // Each expression must reference columns of exactly one of the two models. It is
65804
+ // emitted into the join condition, not into WHERE, so it restricts the match
65805
+ // without deleting rows from the measure side.
65806
+ Type RelationshipFilter {
65807
+ from (optional): Heredoc['aql']
65808
+ to (optional): Heredoc['aql']
65809
+ }
65810
+
65811
+ Type EqualityRelationship (elem_name_as: 'name') {
65790
65812
  type: 'many_to_one' | 'one_to_one'
65791
65813
  from: FieldRef
65792
65814
  to: FieldRef
65815
+ on (multiple: true, optional): RelationshipKey
65816
+ where (optional): RelationshipFilter
65817
+ }
65818
+
65819
+ // The \`to\` side stores both ends of the range, and \`match\` says which end is
65820
+ // inclusive. \`match\` carries the whole condition, including any equality that
65821
+ // partitions the ranges, so \`from\` and \`to\` are the unique key of each side here
65822
+ // rather than the two sides of an equality. The reverse direction fans out and
65823
+ // dedupes on the \`to\` key. The type claims many to one, so ranges within a
65824
+ // partition must not overlap. Nothing checks that claim.
65825
+ Type RangeRelationship (elem_name_as: 'name') {
65826
+ type: 'range'
65827
+ from: FieldRef
65828
+ to: FieldRef
65829
+ match: Heredoc['aql']
65830
+ where (optional): RelationshipFilter
65831
+ }
65832
+
65833
+ // \`match\` carries the whole condition, so \`from\` and \`to\` are the unique key of
65834
+ // each side here rather than the two sides of an equality. Both ends fan out.
65835
+ Type ManyToManyRelationship (elem_name_as: 'name') {
65836
+ type: 'many_to_many'
65837
+ from: FieldRef
65838
+ to: FieldRef
65839
+ match: Heredoc['aql']
65840
+ where (optional): RelationshipFilter
65793
65841
  }
65842
+
65843
+ Type Relationship = EqualityRelationship | RangeRelationship | ManyToManyRelationship
65794
65844
  `, "project_settings.aml": `Type ProjectSettings {
65795
65845
  viz(optional) {
65796
65846
  default_color_palette(optional): ColorPalette
@@ -76807,18 +76857,18 @@ var TE2 = Xv2({
76807
76857
  ...EE2
76808
76858
  });
76809
76859
  var {
76810
- tokenize: xM,
76860
+ tokenize: CM,
76811
76861
  parse: BE2,
76812
76862
  generate: IE2,
76813
- lexer: CM,
76814
- createLexer: SM,
76863
+ lexer: SM,
76864
+ createLexer: EM,
76815
76865
  walk: PE2,
76816
- find: EM,
76817
- findLast: TM,
76818
- findAll: BM,
76819
- toPlainObject: IM,
76820
- fromPlainObject: PM,
76821
- fork: DM
76866
+ find: TM,
76867
+ findLast: BM,
76868
+ findAll: IM,
76869
+ toPlainObject: PM,
76870
+ fromPlainObject: DM,
76871
+ fork: FM
76822
76872
  } = TE2;
76823
76873
  function DE2(e, t) {
76824
76874
  const n = BE2(e, { parseCustomProperty: false });
@@ -79344,11 +79394,11 @@ var gA2 = [
79344
79394
  { label: "Dec 31", format: { pattern: "LLL dd" } },
79345
79395
  { label: "31 Dec", format: { pattern: "dd LLL" } }
79346
79396
  ];
79347
- var LM = [
79397
+ var NM = [
79348
79398
  { label: "Default", format: { pattern: "LLL dd yyyy" } },
79349
79399
  ...gA2
79350
79400
  ];
79351
- var NM = [
79401
+ var MM = [
79352
79402
  { label: "Inherited", format: { pattern: "inherited" } },
79353
79403
  ...gA2
79354
79404
  ];
@@ -79520,7 +79570,17 @@ var jI2 = (e, t) => {
79520
79570
  throw new Error(`Destination model '${n.rel.to.model}' not found`);
79521
79571
  });
79522
79572
  };
79523
- var UI2 = (e, t) => {
79573
+ var UI2 = (e) => {
79574
+ const t = {};
79575
+ return e.name && (t.name = e.name), (e.type === "many_to_one" || e.type === "one_to_one") && e.on?.length && (t.extra_keys = e.on.map((n) => ({
79576
+ source_field: n.from.field,
79577
+ dest_field: n.to.field
79578
+ }))), (e.type === "range" || e.type === "many_to_many") && (t.match = e.match.content), (e.where?.from || e.where?.to) && (t.where = {
79579
+ ...e.where.from ? { source: e.where.from.content } : {},
79580
+ ...e.where.to ? { dest: e.where.to.content } : {}
79581
+ }), t;
79582
+ };
79583
+ var KI2 = (e, t) => {
79524
79584
  jI2(e, t);
79525
79585
  const n = e.map((i) => {
79526
79586
  const r2 = t.find((s2) => s2.name === $o3(i.rel.from, i.rel.from.model)), a = t.find((s2) => s2.name === $o3(i.rel.to, i.rel.to.model));
@@ -79529,7 +79589,8 @@ var UI2 = (e, t) => {
79529
79589
  link_type: i.rel.type,
79530
79590
  source_model_id: r2.name,
79531
79591
  dest_model_id: a.name,
79532
- join_on: `\${SOURCE.${i.rel.from.field}} = \${DEST.${i.rel.to.field}}`
79592
+ join_on: `\${SOURCE.${i.rel.from.field}} = \${DEST.${i.rel.to.field}}`,
79593
+ ...UI2(i.rel)
79533
79594
  };
79534
79595
  }), o2 = import_lodash.zipWith(e, n, (i, r2) => {
79535
79596
  const {
@@ -79537,25 +79598,33 @@ var UI2 = (e, t) => {
79537
79598
  source_model_id: s2,
79538
79599
  dest_model_id: l2,
79539
79600
  join_on: c3,
79540
- link_type: u
79541
- } = r2, { active: d2, direction: m3, rlp_propagation: h2, nullable: f3 } = i;
79601
+ link_type: u,
79602
+ name: d2,
79603
+ extra_keys: m3,
79604
+ match: h2,
79605
+ where: f3
79606
+ } = r2, { active: g3, direction: b2, rlp_propagation: x2, nullable: w2 } = i;
79542
79607
  return {
79543
79608
  join_id: a,
79544
- active: d2,
79545
- direction: m3,
79546
- rlp_propagation: h2,
79547
- nullable: f3,
79609
+ active: g3,
79610
+ direction: b2,
79611
+ rlp_propagation: x2,
79612
+ nullable: w2,
79548
79613
  join: {
79549
79614
  source_model: s2,
79550
79615
  dest_model: l2,
79551
79616
  join_on: c3,
79552
- link_type: u
79617
+ link_type: u,
79618
+ ...d2 ? { name: d2 } : {},
79619
+ ...m3 ? { extra_keys: m3 } : {},
79620
+ ...h2 ? { match: h2 } : {},
79621
+ ...f3 ? { where: f3 } : {}
79553
79622
  }
79554
79623
  };
79555
79624
  });
79556
79625
  return { relationships: n, joinConfigs: o2 };
79557
79626
  };
79558
- var KI2 = (e, t) => ({
79627
+ var HI2 = (e, t) => ({
79559
79628
  name: e,
79560
79629
  type: t.type,
79561
79630
  mode: t.mode ?? "val",
@@ -79568,16 +79637,16 @@ var SA2 = (e) => ({
79568
79637
  label: e.label,
79569
79638
  description: e.description,
79570
79639
  hidden: e.hidden ?? false,
79571
- params: Object.entries(e.param ?? {}).map(([t, n]) => KI2(t, n)),
79640
+ params: Object.entries(e.param ?? {}).map(([t, n]) => HI2(t, n)),
79572
79641
  functions: import_lodash.mapValues(e.function ?? {}, SA2),
79573
79642
  return_type: e.return_type,
79574
79643
  definition: e.definition.content
79575
79644
  });
79576
- var HI2 = (e) => {
79645
+ var QI2 = (e) => {
79577
79646
  if (e)
79578
79647
  return import_lodash.mapValues(e, SA2);
79579
79648
  };
79580
- var QI2 = (e, t) => {
79649
+ var WI2 = (e, t) => {
79581
79650
  const {
79582
79651
  name: n,
79583
79652
  field: o2,
@@ -79600,7 +79669,7 @@ var QI2 = (e, t) => {
79600
79669
  };
79601
79670
  };
79602
79671
  var Pi2 = (e) => {
79603
- const t = import_lodash.map(e.models, (c3) => Wc2(c3)), { relationships: n, joinConfigs: o2 } = UI2(e.relationships, t), i = bi2(e);
79672
+ const t = import_lodash.map(e.models, (c3) => Wc2(c3)), { relationships: n, joinConfigs: o2 } = KI2(e.relationships, t), i = bi2(e);
79604
79673
  import_lodash.forEach(e.dimension, (c3) => {
79605
79674
  const u = bi2(c3.model), d2 = t.find((h2) => h2.name === u), m3 = Rl2(c3, c3.model, "dimension");
79606
79675
  d2?.dimensions.push({
@@ -79611,7 +79680,7 @@ var Pi2 = (e) => {
79611
79680
  const r2 = import_lodash.map(e.metric, (c3) => $I2(c3));
79612
79681
  let a;
79613
79682
  e.view?.length && (a = e.view.map((c3) => (yI2(c3, t, r2), bI2(c3))));
79614
- const s2 = import_lodash.mapValues(e.permission || {}, (c3) => QI2(i, c3)), l2 = {
79683
+ const s2 = import_lodash.mapValues(e.permission || {}, (c3) => WI2(i, c3)), l2 = {
79615
79684
  amlBaseFqn: e.__baseFqn__,
79616
79685
  id: i,
79617
79686
  name: i,
@@ -79624,7 +79693,7 @@ var Pi2 = (e) => {
79624
79693
  data_source_name: Ml2(e.data_source_name),
79625
79694
  owner: e.owner || "",
79626
79695
  metrics: r2,
79627
- functions: HI2(e.function),
79696
+ functions: QI2(e.function),
79628
79697
  views: a,
79629
79698
  pre_aggregates: e.pre_aggregates || {},
79630
79699
  row_level_permission_rules: s2
@@ -79643,7 +79712,7 @@ var Pi2 = (e) => {
79643
79712
  }
79644
79713
  return e.__decorators__?.tag?.length && (l2.tags = to2(e.__decorators__.tag)), l2;
79645
79714
  };
79646
- function eP(e, t) {
79715
+ function tP(e, t) {
79647
79716
  const n = [], o2 = [];
79648
79717
  function i(s2) {
79649
79718
  if (s2) {
@@ -79670,7 +79739,7 @@ function eP(e, t) {
79670
79739
  throw new Error(`Cannot find dataset ${s2}`);
79671
79740
  }), a;
79672
79741
  }
79673
- function tP(e) {
79742
+ function nP(e) {
79674
79743
  const { timezone: t } = e, n = !!e.allow_timezone_change, o2 = e.autorun_on_changes === undefined ? undefined : !!e.autorun_on_changes, i = e.show_field_description === undefined ? undefined : !!e.show_field_description;
79675
79744
  let r2 = Number(e.cache_duration);
79676
79745
  Number.isFinite(r2) ? r2 < 10 && (r2 = 10) : r2 = undefined;
@@ -79685,7 +79754,7 @@ function tP(e) {
79685
79754
  show_field_description: i
79686
79755
  }, (l2) => l2 === undefined);
79687
79756
  }
79688
- function nP(e, t) {
79757
+ function oP(e, t) {
79689
79758
  const { uname: n, def: o2 } = e;
79690
79759
  try {
79691
79760
  const i = String(o2.__type__), r2 = o2.__decorators__?.tag?.length ? { tags: to2(o2.__decorators__?.tag) } : {};
@@ -79796,7 +79865,7 @@ var Ol2 = [
79796
79865
  "PopBlock",
79797
79866
  "DateDrillBlock"
79798
79867
  ];
79799
- function oP(e) {
79868
+ function iP(e) {
79800
79869
  switch (e.__type__) {
79801
79870
  case "StringParamMetadata":
79802
79871
  return {
@@ -79830,10 +79899,10 @@ function oP(e) {
79830
79899
  };
79831
79900
  }
79832
79901
  }
79833
- function iP(e) {
79902
+ function rP(e) {
79834
79903
  try {
79835
79904
  const t = e?.param;
79836
- return !t || typeof t != "object" ? {} : Object.values(t).reduce((n, o2) => (n[o2.uname] = oP(o2.def), n), {});
79905
+ return !t || typeof t != "object" ? {} : Object.values(t).reduce((n, o2) => (n[o2.uname] = iP(o2.def), n), {});
79837
79906
  } catch {
79838
79907
  return {};
79839
79908
  }
@@ -79843,7 +79912,7 @@ function TA2(e) {
79843
79912
  blockWidth: e.block_width,
79844
79913
  blockHeight: e.block_height,
79845
79914
  group: e.group,
79846
- params: iP(e.func)
79915
+ params: rP(e.func)
79847
79916
  } : {};
79848
79917
  }
79849
79918
  function BA2(e, t) {
@@ -79852,7 +79921,7 @@ function BA2(e, t) {
79852
79921
  field: t
79853
79922
  } : t;
79854
79923
  }
79855
- function rP(e) {
79924
+ function aP(e) {
79856
79925
  const t = e?.value;
79857
79926
  if (!t || typeof t != "object" || Array.isArray(t))
79858
79927
  return false;
@@ -79866,7 +79935,7 @@ function rP(e) {
79866
79935
  const o2 = t.__type__ ?? t.def?.__type__;
79867
79936
  return !!o2 && Ol2.includes(o2);
79868
79937
  }
79869
- function aP(e) {
79938
+ function sP(e) {
79870
79939
  const { value: t, fqn: n } = e, o2 = ze3(n) ?? e.name.replace(/::/g, "."), i = t.__decorators__.template, {
79871
79940
  funcType: r2,
79872
79941
  title: a,
@@ -79900,10 +79969,10 @@ function aP(e) {
79900
79969
  metadata: u
79901
79970
  };
79902
79971
  }
79903
- var jM = {
79972
+ var UM = {
79904
79973
  typeName: vt3.BlockTemplate,
79905
- matches: rP,
79906
- transform: (e) => ({ ...e, _type: vt3.BlockTemplate, value: aP(e) })
79974
+ matches: aP,
79975
+ transform: (e) => ({ ...e, _type: vt3.BlockTemplate, value: sP(e) })
79907
79976
  };
79908
79977
  function Yc2(e, t) {
79909
79978
  const n = (e.__fqn__ || e.uname).replace(/::/g, ".");
@@ -79918,78 +79987,78 @@ function Yc2(e, t) {
79918
79987
  blocks: [],
79919
79988
  interactions: [],
79920
79989
  views: []
79921
- }, i = eP(e, t), r2 = mr3(e, "block");
79922
- return o2.blocks = r2.map((a) => nP(a, i)), o2.interactions = e.explicit_interactions ? gI2(e.explicit_interactions, o2.blocks, i) : fI2(e.interactions || [], o2.blocks, i), e.view && (o2.views = [
79990
+ }, i = tP(e, t), r2 = mr3(e, "block");
79991
+ return o2.blocks = r2.map((a) => oP(a, i)), o2.interactions = e.explicit_interactions ? gI2(e.explicit_interactions, o2.blocks, i) : fI2(e.interactions || [], o2.blocks, i), e.view && (o2.views = [
79923
79992
  mA2(e.view, 0, o2.blocks)
79924
- ]), o2.settings = tP(e.settings || {}), o2.theme = OE2(e.theme), o2;
79993
+ ]), o2.settings = nP(e.settings || {}), o2.theme = OE2(e.theme), o2;
79925
79994
  } catch (o2) {
79926
79995
  throw new Error(`Dashboard "${n}": ${o2.message}`);
79927
79996
  }
79928
79997
  }
79929
- function LP(e) {
79998
+ function NP(e) {
79930
79999
  return typeof e != "object" || e === null ? false : oi2.some((t) => (t in e));
79931
80000
  }
79932
80001
  function bm2(e) {
79933
80002
  return typeof e == "string" ? _2(e) : String(e);
79934
80003
  }
79935
- function NP(e) {
80004
+ function MP(e) {
79936
80005
  const t = [];
79937
80006
  return import_lodash.isNil(e.applyOrder) || t.push(`apply_order: ${e.applyOrder}`), t.push(`direction: ${_2(e.direction)}`), `{
79938
80007
  ${t.join(`
79939
80008
  `)}
79940
80009
  }`;
79941
80010
  }
79942
- function MP(e, t) {
80011
+ function RP(e, t) {
79943
80012
  const n = [];
79944
- return t.label && n.push(`label: ${_2(t.label)}`), n.push(`type: ${_2(t.type)}`), t.sort && n.push(j4("sort", NP(t.sort))), t.dataType && n.push(`data_type: ${_2(t.dataType)}`), `field ${e} {
80013
+ return t.label && n.push(`label: ${_2(t.label)}`), n.push(`type: ${_2(t.type)}`), t.sort && n.push(j4("sort", MP(t.sort))), t.dataType && n.push(`data_type: ${_2(t.dataType)}`), `field ${e} {
79945
80014
  ${n.join(`
79946
80015
  `)}
79947
80016
  }`;
79948
80017
  }
79949
- function RP(e, t) {
80018
+ function OP(e, t) {
79950
80019
  const n = [];
79951
80020
  return t.label && n.push(`label: ${_2(t.label)}`), n.push(`type: ${_2(t.type)}`), t.options?.length && n.push(`options: [${t.options.map(bm2).join(", ")}]`), import_lodash.isNil(t.defaultValue) || n.push(`default_value: ${bm2(t.defaultValue)}`), `option ${e} {
79952
80021
  ${n.join(`
79953
80022
  `)}
79954
80023
  }`;
79955
80024
  }
79956
- function OP(e) {
80025
+ function zP(e) {
79957
80026
  return `fields {
79958
- ${import_lodash.sortBy(Object.entries(e), ([, n]) => n.order).map(([n, o2]) => MP(n, o2)).join(`
80027
+ ${import_lodash.sortBy(Object.entries(e), ([, n]) => n.order).map(([n, o2]) => RP(n, o2)).join(`
79959
80028
  `)}
79960
80029
  }`;
79961
80030
  }
79962
- function zP(e) {
79963
- const t = import_lodash.sortBy(Object.entries(e ?? {}), ([, n]) => n.order).map(([n, o2]) => RP(n, o2));
80031
+ function VP(e) {
80032
+ const t = import_lodash.sortBy(Object.entries(e ?? {}), ([, n]) => n.order).map(([n, o2]) => OP(n, o2));
79964
80033
  if (t.length !== 0)
79965
80034
  return `options {
79966
80035
  ${t.join(`
79967
80036
  `)}
79968
80037
  }`;
79969
80038
  }
79970
- function VP(e, t) {
80039
+ function GP(e, t) {
79971
80040
  const n = rt3(e, { sanitizeHeredocTermination: true });
79972
80041
  return `template: @${t ?? "vgl"}
79973
80042
  ${n}
79974
80043
  ;;`;
79975
80044
  }
79976
- function GP(e) {
80045
+ function jP(e) {
79977
80046
  const t = [];
79978
- t.push(`label: ${_2(e.label)}`), e.description && t.push(`description: ${_2(e.description)}`), e.icon && t.push(`icon: ${_2(e.icon)}`), t.push(OP(e.fields));
79979
- const n = zP(e.options);
79980
- return n && t.push(n), t.push(VP(e.template, e.templateSyntax)), `{
80047
+ t.push(`label: ${_2(e.label)}`), e.description && t.push(`description: ${_2(e.description)}`), e.icon && t.push(`icon: ${_2(e.icon)}`), t.push(zP(e.fields));
80048
+ const n = VP(e.options);
80049
+ return n && t.push(n), t.push(GP(e.template, e.templateSyntax)), `{
79981
80050
  ${t.join(`
79982
80051
  `)}
79983
80052
  }`;
79984
80053
  }
79985
- function jP(e, t) {
80054
+ function UP(e, t) {
79986
80055
  if (e._id && t)
79987
80056
  return e._id;
79988
- const n = GP(e);
80057
+ const n = jP(e);
79989
80058
  return `CustomChartDef ${e._id ? e._id.split(".").pop() : ""} ${n}`;
79990
80059
  }
79991
80060
  var Ys2;
79992
- var UP = /* @__PURE__ */ new Map([
80061
+ var KP = /* @__PURE__ */ new Map([
79993
80062
  [0, 65533],
79994
80063
  [128, 8364],
79995
80064
  [130, 8218],
@@ -80023,9 +80092,9 @@ var wm2 = (Ys2 = String.fromCodePoint) !== null && Ys2 !== undefined ? Ys2 : (e)
80023
80092
  let t = "";
80024
80093
  return e > 65535 && (e -= 65536, t += String.fromCharCode(e >>> 10 & 1023 | 55296), e = 56320 | e & 1023), t += String.fromCharCode(e), t;
80025
80094
  };
80026
- function KP(e) {
80095
+ function HP(e) {
80027
80096
  var t;
80028
- return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = UP.get(e)) !== null && t !== undefined ? t : e;
80097
+ return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = KP.get(e)) !== null && t !== undefined ? t : e;
80029
80098
  }
80030
80099
  function $A2(e) {
80031
80100
  const t = typeof atob == "function" ? atob(e) : typeof Buffer.from == "function" ? Buffer.from(e, "base64").toString("binary") : new Buffer(e, "base64").toString("binary"), n = t.length & -2, o2 = new Uint16Array(n / 2);
@@ -80035,8 +80104,8 @@ function $A2(e) {
80035
80104
  }
80036
80105
  return o2;
80037
80106
  }
80038
- var HP = /* @__PURE__ */ $A2("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
80039
- var QP = /* @__PURE__ */ $A2("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");
80107
+ var QP = /* @__PURE__ */ $A2("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IAAOA12J/c8iFvaxBhAAhOVGFjZGZnbG1vcHFzdHV4owOlA6kDsAO/A8IDxgPNA9ID8gP9AwEEFAQeBCAEJQRHAEphSAA7gNAA0EBjAHUAdABlADuAyQDJQIABYWl5ALYDuQO+A/Ihb24aYXIAYwA7gMoAykAtZG8AdAAWYXIAAOA12AjdcgBhAHYAZQA7gMgAyEDlIm1lbnQAoAgiAAFhcNYD2QNjAHIAEmF0AHkAUwLhAwAAAADpA20lYWxsU3F1YXJlAACg+yVlJ3J5U21hbGxTcXVhcmUAAKCrJQABZ3D2A/kDbwBuABhhZgAA4DXYPN3zImlsb26VY3UAAAFhaQYEDgRsAFSgdSppImxkZQAAoEIi7CNpYnJpdW0AoMwhAAFjaRgEGwRyAACgMCFtAACgcyphAJdjbQBsADuAywDLQAABaXApBC0E8yF0cwCgAyLvJG5lbnRpYWxFAKBHIYACY2Zpb3MAPQQ/BEMEXQRyBHkAJGRyAADgNdgJ3WwibGVkAFMCTAQAAAAAVARtJWFsbFNxdWFyZQAAoPwlZSdyeVNtYWxsU3F1YXJlAACgqiVwA2UEAABpBAAAAABtBGYAAOA12D3dwSFsbACgACLyI2llcnRyZgCgMSFjAPIAcQQABkpUYWJjZGZnb3JzdIgEiwSOBJMElwSkBKcEqwStBLIE5QTqBGMAeQADZDuAPgA+QO0hbWFkoJMD3GNyImV2ZQAeYYABZWl5AJ0EoASjBOQhaWwiYXIAYwAcYRNkbwB0ACBhcgAA4DXYCt0AoNkicABmAADgNdg+3eUiYXRlcgADRUZHTFNUvwTIBM8E1QTZBOAEcSJ1YWwATKBlIuUhc3MAoNsidSRsbEVxdWFsAACgZyJyI2VhdGVyAACgoirlIXNzAKB3IuwkYW50RXF1YWwAoH4qaSJsZGUAAKBzImMAcgAA4DXYotwAoGsiAARBYWNmaW9zdfkE/QQFBQgFCwUTBSIFKwVSIkRjeQAqZAABY3QBBQQFZQBrAMdiXmDpIXJjJGFyAACgDCFsJWJlcnRTcGFjZQAAoAsh8AEYBQAAGwVmAACgDSHpJXpvbnRhbExpbmUAoAAlAAFjdCYFKAXyABIF8iFvayZhbQBwAEQBMQU5BW8AdwBuAEgAdQBtAPAAAAFxInVhbAAAoE8iAAdFSk9hY2RmZ21ub3N0dVMFVgVZBVwFYwVtBXAFcwV6BZAFtgXFBckFzQVjAHkAFWTsIWlnMmFjAHkAAWRjAHUAdABlADuAzQDNQAABaXlnBWwFcgBjADuAzgDOQBhkbwB0ADBhcgAAoBEhcgBhAHYAZQA7gMwAzEAAoREhYXB/BYsFAAFjZ4MFhQVyACphaSNuYXJ5SQAAoEghbABpAGUA8wD6AvQBlQUAAKUFZaAsIgABZ3KaBZ4F8iFhbACgKyLzI2VjdGlvbgCgwiJpI3NpYmxlAAABQ1SsBbEFbyJtbWEAAKBjIGkibWVzAACgYiCAAWdwdAC8Bb8FwwVvAG4ALmFmAADgNdhA3WEAmWNjAHIAAKAQIWkibGRlAChh6wHSBQAA1QVjAHkABmRsADuAzwDPQIACY2Zvc3UA4QXpBe0F8gX9BQABaXnlBegFcgBjADRhGWRyAADgNdgN3XAAZgAA4DXYQd3jAfcFAAD7BXIAAOA12KXc8iFjeQhk6yFjeQRkgANISmFjZm9zAAwGDwYSBhUGHQYhBiYGYwB5ACVkYwB5AAxk8CFwYZpjAAFleRkGHAbkIWlsNmEaZHIAAOA12A7dcABmAADgNdhC3WMAcgAA4DXYptyABUpUYWNlZmxtb3N0AD0GQAZDBl4GawZkB2gHcAd0B80H2gdjAHkACWQ7gDwAPECAAmNtbnByAEwGTwZSBlUGWwb1IXRlOWHiIWRhm2NnAACg6ifsI2FjZXRyZgCgEiFyAACgniGAAWFleQBkBmcGagbyIW9uPWHkIWlsO2EbZAABZnNvBjQHdAAABUFDREZSVFVWYXKABp4GpAbGBssG3AYDByEHwQIqBwABbnKEBowGZyVsZUJyYWNrZXQAAKDoJ/Ihb3cAoZAhQlKTBpcGYQByAACg5CHpJGdodEFycm93AKDGIWUjaWxpbmcAAKAII28A9QGqBgAAsgZiJWxlQnJhY2tldAAAoOYnbgDUAbcGAAC+BmUkZVZlY3RvcgAAoGEp5SJjdG9yQqDDIWEAcgAAoFkpbCJvb3IAAKAKI2kiZ2h0AAABQVbSBtcGciJyb3cAAKCUIeUiY3RvcgCgTikAAWVy4AbwBmUAAKGjIkFW5gbrBnIicm93AACgpCHlImN0b3IAoFopaSNhbmdsZQBCorIi+wYAAAAA/wZhAHIAAKDPKXEidWFsAACgtCJwAIABRFRWAAoHEQcYB+8kd25WZWN0b3IAoFEpZSRlVmVjdG9yAACgYCnlImN0b3JCoL8hYQByAACgWCnlImN0b3JCoLwhYQByAACgUilpAGcAaAB0AGEAcgByAG8A9wDMAnMAAANFRkdMU1Q/B0cHTgdUB1gHXwfxJXVhbEdyZWF0ZXIAoNoidSRsbEVxdWFsAACgZiJyI2VhdGVyAACgdiLlIXNzAKChKuwkYW50RXF1YWwAoH0qaSJsZGUAAKByInIAAOA12A/dZaDYIuYjdGFycm93AKDaIWkiZG90AD9hgAFucHcAege1B7kHZwAAAkxSbHKCB5QHmwerB+UhZnQAAUFSiAeNB3Iicm93AACg9SfpJGdodEFycm93AKD3J+kkZ2h0QXJyb3cAoPYn5SFmdAABYXLcAqEHaQBnAGgAdABhAHIAcgBvAPcA5wJpAGcAaAB0AGEAcgByAG8A9wDuAmYAAOA12EPdZQByAAABTFK/B8YHZSRmdEFycm93AACgmSHpJGdodEFycm93AKCYIYABY2h0ANMH1QfXB/IAWgYAoLAh8iFva0FhAKBqIgAEYWNlZmlvc3XpB+wH7gf/BwMICQgOCBEIcAAAoAUpeQAcZAABZGzyB/kHaSR1bVNwYWNlAACgXyBsI2ludHJmAACgMyFyAADgNdgQ3e4jdXNQbHVzAKATInAAZgAA4DXYRN1jAPIA/gecY4AESmFjZWZvc3R1ACEIJAgoCDUIgQiFCDsKQApHCmMAeQAKZGMidXRlAENhgAFhZXkALggxCDQI8iFvbkdh5CFpbEVhHWSAAWdzdwA7CGEIfQjhInRpdmWAAU1UVgBECEwIWQhlJWRpdW1TcGFjZQAAoAsgaABpAAABY25SCFMIawBTAHAAYQBjAOUASwhlAHIAeQBUAGgAaQDuAFQI9CFlZAABR0xnCHUIcgBlAGEAdABlAHIARwByAGUAYQB0AGUA8gDrBGUAcwBzAEwAZQBzAPMA2wdMImluZQAKYHIAAOA12BHdAAJCbnB0jAiRCJkInAhyImVhawAAoGAgwiZyZWFraW5nU3BhY2WgYGYAAKAVIUOq7CqzCMIIzQgAAOcIGwkAAAAAAAAtCQAAbwkAAIcJAACdCcAJGQoAADQKAAFvdbYIvAjuI2dydWVudACgYiJwIkNhcAAAoG0ibyh1YmxlVmVydGljYWxCYXIAAKAmIoABbHF4ANII1wjhCOUibWVudACgCSL1IWFsVKBgImkibGRlAADgQiI4A2kic3RzAACgBCJyI2VhdGVyAACjbyJFRkdMU1T1CPoIAgkJCQ0JFQlxInVhbAAAoHEidSRsbEVxdWFsAADgZyI4A3IjZWF0ZXIAAOBrIjgD5SFzcwCgeSLsJGFudEVxdWFsAOB+KjgDaSJsZGUAAKB1IvUhbXBEASAJJwnvI3duSHVtcADgTiI4A3EidWFsAADgTyI4A2UAAAFmczEJRgn0JFRyaWFuZ2xlQqLqIj0JAAAAAEIJYQByAADgzyk4A3EidWFsAACg7CJzAICibiJFR0xTVABRCVYJXAlhCWkJcSJ1YWwAAKBwInIjZWF0ZXIAAKB4IuUhc3MA4GoiOAPsJGFudEVxdWFsAOB9KjgDaSJsZGUAAKB0IuUic3RlZAABR0x1CX8J8iZlYXRlckdyZWF0ZXIA4KIqOAPlI3NzTGVzcwDgoSo4A/IjZWNlZGVzAKGAIkVTjwmVCXEidWFsAADgryo4A+wkYW50RXF1YWwAoOAiAAFlaaAJqQl2JmVyc2VFbGVtZW50AACgDCLnJWh0VHJpYW5nbGVCousitgkAAAAAuwlhAHIAAODQKTgDcSJ1YWwAAKDtIgABcXXDCeAJdSNhcmVTdQAAAWJwywnVCfMhZXRF4I8iOANxInVhbAAAoOIi5SJyc2V0ReCQIjgDcSJ1YWwAAKDjIoABYmNwAOYJ8AkNCvMhZXRF4IIi0iBxInVhbAAAoIgi4yJlZWRzgKGBIkVTVAD6CQAKBwpxInVhbAAA4LAqOAPsJGFudEVxdWFsAKDhImkibGRlAADgfyI4A+UicnNldEXggyLSIHEidWFsAACgiSJpImxkZQCAoUEiRUZUACIKJwouCnEidWFsAACgRCJ1JGxsRXF1YWwAAKBHImkibGRlAACgSSJlJXJ0aWNhbEJhcgAAoCQiYwByAADgNdip3GkAbABkAGUAO4DRANFAnWMAB0VhY2RmZ21vcHJzdHV2XgphCmgKcgp2CnoKgQqRCpYKqwqtCrsKyArNCuwhaWdSYWMAdQB0AGUAO4DTANNAAAFpeWwKcQpyAGMAO4DUANRAHmRiImxhYwBQYXIAAOA12BLdcgBhAHYAZQA7gNIA0kCAAWFlaQCHCooKjQpjAHIATGFnAGEAqWNjInJvbgCfY3AAZgAA4DXYRt3lI25DdXJseQABRFGeCqYKbyV1YmxlUXVvdGUAAKAcIHUib3RlAACgGCAAoFQqAAFjbLEKtQpyAADgNdiq3GEAcwBoADuA2ADYQGkAbAHACsUKZABlADuA1QDVQGUAcwAAoDcqbQBsADuA1gDWQGUAcgAAAUJQ0wrmCgABYXLXCtoKcgAAoD4gYQBjAAABZWvgCuIKAKDeI2UAdAAAoLQjYSVyZW50aGVzaXMAAKDcI4AEYWNmaGlsb3JzAP0KAwsFCwkLCwsMCxELIwtaC3IjdGlhbEQAAKACInkAH2RyAADgNdgT3WkApmOgY/Ujc01pbnVzsWAAAWlwFQsgC24AYwBhAHIAZQBwAGwAYQBuAOUACgVmAACgGSGAobsqZWlvACoLRQtJC+MiZWRlc4CheiJFU1QANAs5C0ALcSJ1YWwAAKCvKuwkYW50RXF1YWwAoHwiaSJsZGUAAKB+Im0AZQAAoDMgAAFkcE0LUQv1IWN0AKAPIm8jcnRpb24AYaA3ImwAAKAdIgABY2leC2ILcgAA4DXYq9yoYwACVWZvc2oLbwtzC3cLTwBUADuAIgAiQHIAAOA12BTdcABmAACgGiFjAHIAAOA12KzcAAZCRWFjZWZoaW9yc3WPC5MLlwupC7YL2AvbC90LhQyTDJoMowzhIXJyAKAQKUcAO4CuAK5AgAFjbnIAnQugC6ML9SF0ZVRhZwAAoOsncgB0oKAhbAAAoBYpgAFhZXkArwuyC7UL8iFvblhh5CFpbFZhIGR2oBwhZSJyc2UAAAFFVb8LzwsAAWxxwwvIC+UibWVudACgCyL1JGlsaWJyaXVtAKDLIXAmRXF1aWxpYnJpdW0AAKBvKXIAAKAcIW8AoWPnIWh0AARBQ0RGVFVWYewLCgwQDDIMNwxeDHwM9gIAAW5y8Av4C2clbGVCcmFja2V0AACg6SfyIW93AKGSIUJM/wsDDGEAcgAAoOUhZSRmdEFycm93AACgxCFlI2lsaW5nAACgCSNvAPUBFgwAAB4MYiVsZUJyYWNrZXQAAKDnJ24A1AEjDAAAKgxlJGVWZWN0b3IAAKBdKeUiY3RvckKgwiFhAHIAAKBVKWwib29yAACgCyMAAWVyOwxLDGUAAKGiIkFWQQxGDHIicm93AACgpiHlImN0b3IAoFspaSNhbmdsZQBCorMiVgwAAAAAWgxhAHIAAKDQKXEidWFsAACgtSJwAIABRFRWAGUMbAxzDO8kd25WZWN0b3IAoE8pZSRlVmVjdG9yAACgXCnlImN0b3JCoL4hYQByAACgVCnlImN0b3JCoMAhYQByAACgUykAAXB1iQyMDGYAAKAdIe4kZEltcGxpZXMAoHAp6SRnaHRhcnJvdwCg2yEAAWNongyhDHIAAKAbIQCgsSHsJGVEZWxheWVkAKD0KYAGSE9hY2ZoaW1vcXN0dQC/DMgMzAzQDOIM5gwKDQ0NFA0ZDU8NVA1YDQABQ2PDDMYMyCFjeSlkeQAoZEYiVGN5ACxkYyJ1dGUAWmEAorwqYWVpedgM2wzeDOEM8iFvbmBh5CFpbF5hcgBjAFxhIWRyAADgNdgW3e8hcnQAAkRMUlXvDPYM/QwEDW8kd25BcnJvdwAAoJMhZSRmdEFycm93AACgkCHpJGdodEFycm93AKCSIXAjQXJyb3cAAKCRIechbWGjY+EkbGxDaXJjbGUAoBgicABmAADgNdhK3XICHw0AAAAAIg10AACgGiLhIXJlgKGhJUlTVQAqDTINSg3uJXRlcnNlY3Rpb24AoJMidQAAAWJwNw1ADfMhZXRFoI8icSJ1YWwAAKCRIuUicnNldEWgkCJxInVhbAAAoJIibiJpb24AAKCUImMAcgAA4DXYrtxhAHIAAKDGIgACYmNtcF8Nag2ODZANc6DQImUAdABFoNAicSJ1YWwAAKCGIgABY2huDYkNZSJlZHMAgKF7IkVTVAB4DX0NhA1xInVhbAAAoLAq7CRhbnRFcXVhbACgfSJpImxkZQAAoH8iVABoAGEA9ADHCwCgESIAodEiZXOVDZ8NciJzZXQARaCDInEidWFsAACghyJlAHQAAKDRIoAFSFJTYWNmaGlvcnMAtQ27Db8NyA3ODdsN3w3+DRgOHQ4jDk8AUgBOADuA3gDeQMEhREUAoCIhAAFIY8MNxg1jAHkAC2R5ACZkAAFidcwNzQ0JYKRjgAFhZXkA1A3XDdoN8iFvbmRh5CFpbGJhImRyAADgNdgX3QABZWnjDe4N8gHoDQAA7Q3lImZvcmUAoDQiYQCYYwABY27yDfkNayNTcGFjZQAA4F8gCiDTInBhY2UAoAkg7CFkZYChPCJFRlQABw4MDhMOcSJ1YWwAAKBDInUkbGxFcXVhbAAAoEUiaSJsZGUAAKBIInAAZgAA4DXYS93pI3BsZURvdACg2yAAAWN0Jw4rDnIAAOA12K/c8iFva2Zh4QpFDlYOYA5qDgAAbg5yDgAAAAAAAAAAAAB5DnwOqA6zDgAADg8RDxYPGg8AAWNySA5ODnUAdABlADuA2gDaQHIAb6CfIeMhaXIAoEkpcgDjAVsOAABdDnkADmR2AGUAbGEAAWl5Yw5oDnIAYwA7gNsA20AjZGIibGFjAHBhcgAA4DXYGN1yAGEAdgBlADuA2QDZQOEhY3JqYQABZGl/Dp8OZQByAAABQlCFDpcOAAFhcokOiw5yAF9gYQBjAAABZWuRDpMOAKDfI2UAdAAAoLUjYSVyZW50aGVzaXMAAKDdI28AbgBQoMMi7CF1cwCgjiIAAWdwqw6uDm8AbgByYWYAAOA12EzdAARBREVUYWRwc78O0g7ZDuEOBQPqDvMOBw9yInJvdwDCoZEhyA4AAMwOYQByAACgEilvJHduQXJyb3cAAKDFIW8kd25BcnJvdwAAoJUhcSV1aWxpYnJpdW0AAKBuKWUAZQBBoKUiciJyb3cAAKClIW8AdwBuAGEAcgByAG8A9wAQA2UAcgAAAUxS+Q4AD2UkZnRBcnJvdwAAoJYh6SRnaHRBcnJvdwCglyFpAGyg0gNvAG4ApWPpIW5nbmFjAHIAAOA12LDcaSJsZGUAaGFtAGwAO4DcANxAgAREYmNkZWZvc3YALQ8xDzUPNw89D3IPdg97D4AP4SFzaACgqyJhAHIAAKDrKnkAEmThIXNobKCpIgCg5ioAAWVyQQ9DDwCgwSKAAWJ0eQBJD00Paw9hAHIAAKAWIGmgFiDjIWFsAAJCTFNUWA9cD18PZg9hAHIAAKAjIukhbmV8YGUkcGFyYXRvcgAAoFgnaSJsZGUAAKBAItQkaGluU3BhY2UAoAogcgAA4DXYGd1wAGYAAOA12E3dYwByAADgNdix3GQiYXNoAACgqiKAAmNlZm9zAI4PkQ+VD5kPng/pIXJjdGHkIWdlAKDAInIAAOA12BrdcABmAADgNdhO3WMAcgAA4DXYstwAAmZpb3OqD64Prw+0D3IAAOA12BvdnmNwAGYAAOA12E/dYwByAADgNdiz3IAEQUlVYWNmb3N1AMgPyw/OD9EP2A/gD+QP6Q/uD2MAeQAvZGMAeQAHZGMAeQAuZGMAdQB0AGUAO4DdAN1AAAFpedwP3w9yAGMAdmErZHIAAOA12BzdcABmAADgNdhQ3WMAcgAA4DXYtNxtAGwAeGEABEhhY2RlZm9z/g8BEAUQDRAQEB0QIBAkEGMAeQAWZGMidXRlAHlhAAFheQkQDBDyIW9ufWEXZG8AdAB7YfIBFRAAABwQbwBXAGkAZAB0AOgAVAhhAJZjcgAAoCghcABmAACgJCFjAHIAAOA12LXc4QtCEEkQTRAAAGcQbRByEAAAAAAAAAAAeRCKEJcQ8hD9EAAAGxEhETIROREAAD4RYwB1AHQAZQA7gOEA4UByImV2ZQADYYCiPiJFZGl1eQBWEFkQWxBgEGUQAOA+IjMDAKA/InIAYwA7gOIA4kB0AGUAO4C0ALRAMGRsAGkAZwA7gOYA5kByoGEgAOA12B7dcgBhAHYAZQA7gOAA4EAAAWVwfBCGEAABZnCAEIQQ8yF5bQCgNSHoAIMQaABhALFjAAFhcI0QWwAAAWNskRCTEHIAAWFnAACgPypkApwQAAAAALEQAKInImFkc3ajEKcQqRCuEG4AZAAAoFUqAKBcKmwib3BlAACgWCoAoFoqAKMgImVsbXJzersQvRDAEN0Q5RDtEACgpCllAACgICJzAGQAYaAhImEEzhDQENIQ1BDWENgQ2hDcEACgqCkAoKkpAKCqKQCgqykAoKwpAKCtKQCgrikAoK8pdAB2oB8iYgBkoL4iAKCdKQABcHTpEOwQaAAAoCIixWDhIXJyAKB8IwABZ3D1EPgQbwBuAAVhZgAA4DXYUt0Ao0giRWFlaW9wBxEJEQ0RDxESERQRAKBwKuMhaXIAoG8qAKBKImQAAKBLInMAJ2DyIW94ZaBIIvEADhFpAG4AZwA7gOUA5UCAAWN0eQAmESoRKxFyAADgNdi23CpgbQBwAGWgSCLxAPgBaQBsAGQAZQA7gOMA40BtAGwAO4DkAORAAAFjaUERRxFvAG4AaQBuAPQA6AFuAHQAAKARKgAITmFiY2RlZmlrbG5vcHJzdWQRaBGXEZ8RpxGrEdIR1hErEjASexKKEn0RThNbE3oTbwB0AACg7SoAAWNybBGJEWsAAAJjZXBzdBF4EX0RghHvIW5nAKBMInAjc2lsb24A9mNyImltZQAAoDUgaQBtAGWgPSJxAACgzSJ2AY0RkRFlAGUAAKC9ImUAZABnoAUjZQAAoAUjcgBrAHSgtSPiIXJrAKC2IwABb3mjEaYRbgDnAHcRMWTxIXVvAKAeIIACY21wcnQAtBG5Eb4RwRHFEeEhdXPloDUi5ABwInR5dgAAoLApcwDpAH0RbgBvAPUA6gCAAWFodwDLEcwRzhGyYwCgNiHlIWVuAKBsInIAAOA12B/dZwCAA2Nvc3R1dncA4xHyEQUSEhIhEiYSKRKAAWFpdQDpEesR7xHwAKMFcgBjAACg7yVwAACgwyKAAWRwdAD4EfwRABJvAHQAAKAAKuwhdXMAoAEqaSJtZXMAAKACKnECCxIAAAAADxLjIXVwAKAGKmEAcgAAoAUm8iNpYW5nbGUAAWR1GhIeEu8hd24AoL0lcAAAoLMlcCJsdXMAAKAEKmUA5QBCD+UAkg9hInJvdwAAoA0pgAFha28ANhJoEncSAAFjbjoSZRJrAIABbHN0AEESRxJNEm8jemVuZ2UAAKDrKXEAdQBhAHIA5QBcBPIjaWFuZ2xlgKG0JWRscgBYElwSYBLvIXduAKC+JeUhZnQAoMIlaSJnaHQAAKC4JWsAAKAjJLEBbRIAAHUSsgFxEgAAcxIAoJIlAKCRJTQAAKCTJWMAawAAoIglAAFlb38ShxJx4D0A5SD1IWl2AOBhIuUgdAAAoBAjAAJwdHd4kRKVEpsSnxJmAADgNdhT3XSgpSJvAG0AAKClIvQhaWUAoMgiAAZESFVWYmRobXB0dXayEsES0RLgEvcS+xIKExoTHxMjEygTNxMAAkxSbHK5ErsSvRK/EgCgVyUAoFQlAKBWJQCgUyUAolAlRFVkdckSyxLNEs8SAKBmJQCgaSUAoGQlAKBnJQACTFJsctgS2hLcEt4SAKBdJQCgWiUAoFwlAKBZJQCjUSVITFJobHLrEu0S7xLxEvMS9RIAoGwlAKBjJQCgYCUAoGslAKBiJQCgXyVvAHgAAKDJKQACTFJscgITBBMGEwgTAKBVJQCgUiUAoBAlAKAMJQCiACVEVWR1EhMUExYTGBMAoGUlAKBoJQCgLCUAoDQlaSJudXMAAKCfIuwhdXMAoJ4iaSJtZXMAAKCgIgACTFJsci8TMRMzEzUTAKBbJQCgWCUAoBglAKAUJQCjAiVITFJobHJCE0QTRhNIE0oTTBMAoGolAKBhJQCgXiUAoDwlAKAkJQCgHCUAAWV2UhNVE3YA5QD5AGIAYQByADuApgCmQAACY2Vpb2ITZhNqE24TcgAA4DXYt9xtAGkAAKBPIG0A5aA9IogRbAAAoVwAYmh0E3YTAKDFKfMhdWIAoMgnbAF+E4QTbABloCIgdAAAoCIgcAAAoU4iRWWJE4sTAKCuKvGgTyI8BeEMqRMAAN8TABQDFB8UAAAjFDQUAAAAAIUUAAAAAI0UAAAAANcU4xT3FPsUAACIFQAAlhWAAWNwcgCuE7ET1RP1IXRlB2GAoikiYWJjZHMAuxO/E8QTzhPSE24AZAAAoEQqciJjdXAAAKBJKgABYXXIE8sTcAAAoEsqcAAAoEcqbwB0AACgQCoA4CkiAP4AAWVv2RPcE3QAAKBBIO4ABAUAAmFlaXXlE+8T9RP4E/AB6hMAAO0TcwAAoE0qbwBuAA1hZABpAGwAO4DnAOdAcgBjAAlhcABzAHOgTCptAACgUCpvAHQAC2GAAWRtbgAIFA0UEhRpAGwAO4C4ALhAcCJ0eXYAAKCyKXQAAIGiADtlGBQZFKJAcgBkAG8A9ABiAXIAAOA12CDdgAFjZWkAKBQqFDIUeQBHZGMAawBtoBMn4SFyawCgEyfHY3IAAKPLJUVjZWZtcz8UQRRHFHcUfBSAFACgwykAocYCZWxGFEkUcQAAoFciZQBhAlAUAAAAAGAUciJyb3cAAAFsclYUWhTlIWZ0AKC6IWkiZ2h0AACguyGAAlJTYWNkAGgUaRRrFG8UcxSuYACgyCRzAHQAAKCbIukhcmMAoJoi4SFzaACgnSJuImludAAAoBAqaQBkAACg7yrjIWlyAKDCKfUhYnN1oGMmaQB0AACgYybsApMUmhS2FAAAwxRvAG4AZaA6APGgVCKrAG0CnxQAAAAAoxRhAHSgLABAYAChASJmbKcUqRTuABMNZQAAAW14rhSyFOUhbnQAoAEiZQDzANIB5wG6FAAAwBRkoEUibwB0AACgbSpuAPQAzAGAAWZyeQDIFMsUzhQA4DXYVN1vAOQA1wEAgakAO3MeAdMUcgAAoBchAAFhb9oU3hRyAHIAAKC1IXMAcwAAoBcnAAFjdeYU6hRyAADgNdi43AABYnDuFPIUZaDPKgCg0SploNAqAKDSKuQhb3QAoO8igANkZWxwcnZ3AAYVEBUbFSEVRBVlFYQV4SFycgABbHIMFQ4VAKA4KQCgNSlwAhYVAAAAABkVcgAAoN4iYwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
80108
+ var WP = /* @__PURE__ */ $A2("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");
80040
80109
  var wt3;
80041
80110
  (function(e) {
80042
80111
  e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.FLAG13 = 8192] = "FLAG13", e[e.BRANCH_LENGTH = 8064] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE";
@@ -80049,14 +80118,14 @@ var vm2 = 32;
80049
80118
  function zl2(e) {
80050
80119
  return e >= Ke3.ZERO && e <= Ke3.NINE;
80051
80120
  }
80052
- function WP(e) {
80121
+ function qP(e) {
80053
80122
  return e >= Ke3.UPPER_A && e <= Ke3.UPPER_F || e >= Ke3.LOWER_A && e <= Ke3.LOWER_F;
80054
80123
  }
80055
- function qP(e) {
80124
+ function YP(e) {
80056
80125
  return e >= Ke3.UPPER_A && e <= Ke3.UPPER_Z || e >= Ke3.LOWER_A && e <= Ke3.LOWER_Z || zl2(e);
80057
80126
  }
80058
- function YP(e) {
80059
- return e === Ke3.EQUALS || qP(e);
80127
+ function JP(e) {
80128
+ return e === Ke3.EQUALS || YP(e);
80060
80129
  }
80061
80130
  var ot3;
80062
80131
  (function(e) {
@@ -80067,7 +80136,7 @@ var an2;
80067
80136
  e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute";
80068
80137
  })(an2 || (an2 = {}));
80069
80138
 
80070
- class JP {
80139
+ class ZP {
80071
80140
  constructor(t, n, o2) {
80072
80141
  this.decodeTree = t, this.emitCodePoint = n, this.errors = o2, this.state = ot3.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = an2.Strict, this.runConsumed = 0;
80073
80142
  }
@@ -80094,7 +80163,7 @@ class JP {
80094
80163
  stateNumericHex(t, n) {
80095
80164
  for (;n < t.length; ) {
80096
80165
  const o2 = t.charCodeAt(n);
80097
- if (zl2(o2) || WP(o2)) {
80166
+ if (zl2(o2) || qP(o2)) {
80098
80167
  const i = o2 <= Ke3.NINE ? o2 - Ke3.ZERO : (o2 | vm2) - Ke3.LOWER_A + 10;
80099
80168
  this.result = this.result * 16 + i, this.consumed++, n++;
80100
80169
  } else
@@ -80120,7 +80189,7 @@ class JP {
80120
80189
  this.consumed += 1;
80121
80190
  else if (this.decodeMode === an2.Strict)
80122
80191
  return 0;
80123
- return this.emitCodePoint(KP(this.result), this.consumed), this.errors && (t !== Ke3.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
80192
+ return this.emitCodePoint(HP(this.result), this.consumed), this.errors && (t !== Ke3.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
80124
80193
  }
80125
80194
  stateNamedEntity(t, n) {
80126
80195
  const { decodeTree: o2 } = this;
@@ -80149,8 +80218,8 @@ class JP {
80149
80218
  const a = t.charCodeAt(n);
80150
80219
  if (a === Ke3.SEMI && r2 !== 0 && (i & wt3.FLAG13) !== 0)
80151
80220
  return this.emitNamedEntityData(this.treeIndex, r2, this.consumed + this.excess);
80152
- if (this.treeIndex = ZP(o2, i, this.treeIndex + Math.max(1, r2), a), this.treeIndex < 0)
80153
- return this.result === 0 || this.decodeMode === an2.Attribute && (r2 === 0 || YP(a)) ? 0 : this.emitNotTerminatedNamedEntity();
80221
+ if (this.treeIndex = XP(o2, i, this.treeIndex + Math.max(1, r2), a), this.treeIndex < 0)
80222
+ return this.result === 0 || this.decodeMode === an2.Attribute && (r2 === 0 || JP(a)) ? 0 : this.emitNotTerminatedNamedEntity();
80154
80223
  if (i = o2[this.treeIndex], r2 = (i & wt3.VALUE_LENGTH) >> 14, r2 !== 0) {
80155
80224
  if (a === Ke3.SEMI)
80156
80225
  return this.emitNamedEntityData(this.treeIndex, r2, this.consumed + this.excess);
@@ -80185,7 +80254,7 @@ class JP {
80185
80254
  }
80186
80255
  }
80187
80256
  }
80188
- function ZP(e, t, n, o2) {
80257
+ function XP(e, t, n, o2) {
80189
80258
  const i = (t & wt3.BRANCH_LENGTH) >> 7, r2 = t & wt3.JUMP_TABLE;
80190
80259
  if (i === 0)
80191
80260
  return r2 !== 0 && o2 === r2 ? n : -1;
@@ -80220,7 +80289,7 @@ function hn3(e) {
80220
80289
  function Zi2(e) {
80221
80290
  return e === Q2.Slash || e === Q2.Gt || hn3(e);
80222
80291
  }
80223
- function XP(e) {
80292
+ function eD(e) {
80224
80293
  return e >= Q2.LowerA && e <= Q2.LowerZ || e >= Q2.UpperA && e <= Q2.UpperZ;
80225
80294
  }
80226
80295
  var sn3;
@@ -80249,9 +80318,9 @@ var Xe3 = {
80249
80318
  XmpEnd: new Uint8Array([60, 47, 120, 109, 112])
80250
80319
  };
80251
80320
 
80252
- class eD {
80321
+ class tD {
80253
80322
  constructor({ xmlMode: t = false, decodeEntities: n = true }, o2) {
80254
- this.cbs = o2, this.state = F.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.entityStart = 0, this.baseState = F.Text, this.isSpecial = false, this.running = true, this.offset = 0, this.currentSequence = undefined, this.sequenceIndex = 0, this.xmlMode = t, this.decodeEntities = n, this.entityDecoder = new JP(t ? QP : HP, (i, r2) => this.emitCodePoint(i, r2));
80323
+ this.cbs = o2, this.state = F.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.entityStart = 0, this.baseState = F.Text, this.isSpecial = false, this.running = true, this.offset = 0, this.currentSequence = undefined, this.sequenceIndex = 0, this.xmlMode = t, this.decodeEntities = n, this.entityDecoder = new ZP(t ? WP : QP, (i, r2) => this.emitCodePoint(i, r2));
80255
80324
  }
80256
80325
  reset() {
80257
80326
  this.state = F.Text, this.buffer = "", this.sectionStart = 0, this.index = 0, this.baseState = F.Text, this.currentSequence = undefined, this.running = true, this.offset = 0;
@@ -80309,7 +80378,7 @@ class eD {
80309
80378
  t === this.currentSequence[this.sequenceIndex] ? ++this.sequenceIndex === this.currentSequence.length && (this.currentSequence === Xe3.CdataEnd ? this.cbs.oncdata(this.sectionStart, this.index, 2) : this.cbs.oncomment(this.sectionStart, this.index, 2), this.sequenceIndex = 0, this.sectionStart = this.index + 1, this.state = F.Text) : this.sequenceIndex === 0 ? this.fastForwardTo(this.currentSequence[0]) && (this.sequenceIndex = 1) : t !== this.currentSequence[this.sequenceIndex - 1] && (this.sequenceIndex = 0);
80310
80379
  }
80311
80380
  isTagStartChar(t) {
80312
- return this.xmlMode ? !Zi2(t) : XP(t);
80381
+ return this.xmlMode ? !Zi2(t) : eD(t);
80313
80382
  }
80314
80383
  startSpecial(t, n) {
80315
80384
  this.isSpecial = true, this.currentSequence = t, this.sequenceIndex = n, this.state = F.SpecialStartSequence;
@@ -80559,7 +80628,7 @@ var Ie2 = /* @__PURE__ */ new Set(["p"]);
80559
80628
  var km2 = /* @__PURE__ */ new Set(["thead", "tbody"]);
80560
80629
  var xm2 = /* @__PURE__ */ new Set(["dd", "dt"]);
80561
80630
  var Cm2 = /* @__PURE__ */ new Set(["rt", "rp"]);
80562
- var tD = /* @__PURE__ */ new Map([
80631
+ var nD = /* @__PURE__ */ new Map([
80563
80632
  ["tr", /* @__PURE__ */ new Set(["tr", "th", "td"])],
80564
80633
  ["th", /* @__PURE__ */ new Set(["th"])],
80565
80634
  ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
@@ -80608,7 +80677,7 @@ var tD = /* @__PURE__ */ new Map([
80608
80677
  ["tbody", km2],
80609
80678
  ["tfoot", km2]
80610
80679
  ]);
80611
- var nD = /* @__PURE__ */ new Set([
80680
+ var oD = /* @__PURE__ */ new Set([
80612
80681
  "area",
80613
80682
  "base",
80614
80683
  "basefont",
@@ -80641,12 +80710,12 @@ var Em2 = /* @__PURE__ */ new Set([
80641
80710
  "desc",
80642
80711
  "title"
80643
80712
  ]);
80644
- var oD = /\s|\//;
80713
+ var iD = /\s|\//;
80645
80714
 
80646
- class iD {
80715
+ class rD {
80647
80716
  constructor(t, n = {}) {
80648
80717
  var o2, i, r2, a, s2, l2;
80649
- this.options = n, this.startIndex = 0, this.endIndex = 0, this.openTagStart = 0, this.tagname = "", this.attribname = "", this.attribvalue = "", this.attribs = null, this.stack = [], this.buffers = [], this.bufferOffset = 0, this.writeIndex = 0, this.ended = false, this.cbs = t ?? {}, this.htmlMode = !this.options.xmlMode, this.lowerCaseTagNames = (o2 = n.lowerCaseTags) !== null && o2 !== undefined ? o2 : this.htmlMode, this.lowerCaseAttributeNames = (i = n.lowerCaseAttributeNames) !== null && i !== undefined ? i : this.htmlMode, this.recognizeSelfClosing = (r2 = n.recognizeSelfClosing) !== null && r2 !== undefined ? r2 : !this.htmlMode, this.tokenizer = new ((a = n.Tokenizer) !== null && a !== undefined ? a : eD)(this.options, this), this.foreignContext = [!this.htmlMode], (l2 = (s2 = this.cbs).onparserinit) === null || l2 === undefined || l2.call(s2, this);
80718
+ this.options = n, this.startIndex = 0, this.endIndex = 0, this.openTagStart = 0, this.tagname = "", this.attribname = "", this.attribvalue = "", this.attribs = null, this.stack = [], this.buffers = [], this.bufferOffset = 0, this.writeIndex = 0, this.ended = false, this.cbs = t ?? {}, this.htmlMode = !this.options.xmlMode, this.lowerCaseTagNames = (o2 = n.lowerCaseTags) !== null && o2 !== undefined ? o2 : this.htmlMode, this.lowerCaseAttributeNames = (i = n.lowerCaseAttributeNames) !== null && i !== undefined ? i : this.htmlMode, this.recognizeSelfClosing = (r2 = n.recognizeSelfClosing) !== null && r2 !== undefined ? r2 : !this.htmlMode, this.tokenizer = new ((a = n.Tokenizer) !== null && a !== undefined ? a : tD)(this.options, this), this.foreignContext = [!this.htmlMode], (l2 = (s2 = this.cbs).onparserinit) === null || l2 === undefined || l2.call(s2, this);
80650
80719
  }
80651
80720
  ontext(t, n) {
80652
80721
  var o2, i;
@@ -80658,7 +80727,7 @@ class iD {
80658
80727
  this.endIndex = n - 1, (i = (o2 = this.cbs).ontext) === null || i === undefined || i.call(o2, wm2(t)), this.startIndex = n;
80659
80728
  }
80660
80729
  isVoidElement(t) {
80661
- return this.htmlMode && nD.has(t);
80730
+ return this.htmlMode && oD.has(t);
80662
80731
  }
80663
80732
  onopentagname(t, n) {
80664
80733
  this.endIndex = n;
@@ -80668,7 +80737,7 @@ class iD {
80668
80737
  emitOpenTag(t) {
80669
80738
  var n, o2, i, r2;
80670
80739
  this.openTagStart = this.startIndex, this.tagname = t;
80671
- const a = this.htmlMode && tD.get(t);
80740
+ const a = this.htmlMode && nD.get(t);
80672
80741
  if (a)
80673
80742
  for (;this.stack.length > 0 && a.has(this.stack[0]); ) {
80674
80743
  const s2 = this.stack.shift();
@@ -80725,7 +80794,7 @@ class iD {
80725
80794
  this.endIndex = n, (i = (o2 = this.cbs).onattribute) === null || i === undefined || i.call(o2, this.attribname, this.attribvalue, t === sn3.Double ? '"' : t === sn3.Single ? "'" : t === sn3.NoValue ? undefined : null), this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname) && (this.attribs[this.attribname] = this.attribvalue), this.attribvalue = "";
80726
80795
  }
80727
80796
  getInstructionName(t) {
80728
- const n = t.search(oD);
80797
+ const n = t.search(iD);
80729
80798
  let o2 = n < 0 ? t : t.substr(0, n);
80730
80799
  return this.lowerCaseTagNames && (o2 = o2.toLowerCase()), o2;
80731
80800
  }
@@ -80819,7 +80888,7 @@ var ve3;
80819
80888
  (function(e) {
80820
80889
  e.Root = "root", e.Text = "text", e.Directive = "directive", e.Comment = "comment", e.Script = "script", e.Style = "style", e.Tag = "tag", e.CDATA = "cdata", e.Doctype = "doctype";
80821
80890
  })(ve3 || (ve3 = {}));
80822
- function rD(e) {
80891
+ function aD(e) {
80823
80892
  return e.type === ve3.Tag || e.type === ve3.Script || e.type === ve3.Style;
80824
80893
  }
80825
80894
  ve3.Root;
@@ -80961,42 +81030,42 @@ class OA2 extends Zc2 {
80961
81030
  }
80962
81031
  }
80963
81032
  function zA2(e) {
80964
- return rD(e);
81033
+ return aD(e);
80965
81034
  }
80966
- function aD(e) {
81035
+ function sD(e) {
80967
81036
  return e.type === ve3.CDATA;
80968
81037
  }
80969
- function sD(e) {
81038
+ function lD(e) {
80970
81039
  return e.type === ve3.Text;
80971
81040
  }
80972
- function lD(e) {
81041
+ function cD(e) {
80973
81042
  return e.type === ve3.Comment;
80974
81043
  }
80975
- function cD(e) {
81044
+ function uD(e) {
80976
81045
  return e.type === ve3.Directive;
80977
81046
  }
80978
- function uD(e) {
81047
+ function dD(e) {
80979
81048
  return e.type === ve3.Root;
80980
81049
  }
80981
- function dD(e) {
81050
+ function pD(e) {
80982
81051
  return Object.prototype.hasOwnProperty.call(e, "children");
80983
81052
  }
80984
81053
  function VA2(e, t = false) {
80985
81054
  let n;
80986
- if (sD(e))
81055
+ if (lD(e))
80987
81056
  n = new Vl2(e.data);
80988
- else if (lD(e))
81057
+ else if (cD(e))
80989
81058
  n = new NA2(e.data);
80990
81059
  else if (zA2(e)) {
80991
81060
  const o2 = t ? Js2(e.children) : [], i = new OA2(e.name, { ...e.attribs }, o2);
80992
81061
  o2.forEach((r2) => r2.parent = i), e.namespace != null && (i.namespace = e.namespace), e["x-attribsNamespace"] && (i["x-attribsNamespace"] = { ...e["x-attribsNamespace"] }), e["x-attribsPrefix"] && (i["x-attribsPrefix"] = { ...e["x-attribsPrefix"] }), n = i;
80993
- } else if (aD(e)) {
81062
+ } else if (sD(e)) {
80994
81063
  const o2 = t ? Js2(e.children) : [], i = new RA2(o2);
80995
81064
  o2.forEach((r2) => r2.parent = i), n = i;
80996
- } else if (uD(e)) {
81065
+ } else if (dD(e)) {
80997
81066
  const o2 = t ? Js2(e.children) : [], i = new Gl2(o2);
80998
81067
  o2.forEach((r2) => r2.parent = i), e["x-mode"] && (i["x-mode"] = e["x-mode"]), n = i;
80999
- } else if (cD(e)) {
81068
+ } else if (uD(e)) {
81000
81069
  const o2 = new MA2(e.name, e.data);
81001
81070
  e["x-name"] != null && (o2["x-name"] = e["x-name"], o2["x-publicId"] = e["x-publicId"], o2["x-systemId"] = e["x-systemId"]), n = o2;
81002
81071
  } else
@@ -81015,7 +81084,7 @@ var Tm2 = {
81015
81084
  xmlMode: false
81016
81085
  };
81017
81086
 
81018
- class pD {
81087
+ class mD {
81019
81088
  constructor(t, n, o2) {
81020
81089
  this.dom = [], this.root = new Gl2(this.dom), this.done = false, this.tagStack = [this.root], this.lastNode = null, this.parser = null, typeof n == "function" && (o2 = n, n = Tm2), typeof t == "object" && (n = t, t = undefined), this.callback = t ?? null, this.options = n ?? Tm2, this.elementCB = o2 ?? null;
81021
81090
  }
@@ -81082,7 +81151,7 @@ class pD {
81082
81151
  this.options.withStartIndices && (t.startIndex = this.parser.startIndex), this.options.withEndIndices && (t.endIndex = this.parser.endIndex), n.children.push(t), o2 && (t.prev = o2, o2.next = t), t.parent = n, this.lastNode = null;
81083
81152
  }
81084
81153
  }
81085
- function mD(e, t) {
81154
+ function hD(e, t) {
81086
81155
  const n = [], o2 = [Array.isArray(t) ? t : [t]], i = [0];
81087
81156
  for (;; ) {
81088
81157
  if (i[0] >= o2[0].length) {
@@ -81092,47 +81161,47 @@ function mD(e, t) {
81092
81161
  continue;
81093
81162
  }
81094
81163
  const r2 = o2[0][i[0]++];
81095
- zA2(r2) && e(r2) && n.push(r2), dD(r2) && r2.children.length > 0 && (i.unshift(0), o2.unshift(r2.children));
81164
+ zA2(r2) && e(r2) && n.push(r2), pD(r2) && r2.children.length > 0 && (i.unshift(0), o2.unshift(r2.children));
81096
81165
  }
81097
81166
  }
81098
- function hD(e, t) {
81099
- const n = new pD(undefined, t);
81100
- return new iD(n, t).end(e), n.root;
81167
+ function fD(e, t) {
81168
+ const n = new mD(undefined, t);
81169
+ return new rD(n, t).end(e), n.root;
81101
81170
  }
81102
- var fD = "h-block";
81103
- var gD = "name";
81104
- function AD(e) {
81105
- const t = hD(e, {
81171
+ var gD = "h-block";
81172
+ var AD = "name";
81173
+ function _D(e) {
81174
+ const t = fD(e, {
81106
81175
  withStartIndices: true,
81107
81176
  withEndIndices: true,
81108
81177
  recognizeSelfClosing: true,
81109
81178
  lowerCaseTags: true,
81110
81179
  lowerCaseAttributeNames: true
81111
81180
  });
81112
- return mD((n) => n.tagName === fD, t).flatMap((n) => {
81181
+ return hD((n) => n.tagName === gD, t).flatMap((n) => {
81113
81182
  if (n.startIndex === null || n.endIndex === null)
81114
81183
  return [];
81115
- const o2 = n.attribs[gD];
81184
+ const o2 = n.attribs[AD];
81116
81185
  return typeof o2 != "string" || o2.length === 0 ? [] : [{ name: o2, start: n.startIndex, end: n.endIndex + 1 }];
81117
81186
  });
81118
81187
  }
81119
81188
  var { SourceMapEventKind: Xc2 } = PR;
81120
- function bD(e, t, n) {
81189
+ function wD(e, t, n) {
81121
81190
  const o2 = e?.amql?.adhoc_fields || [], i = e.adhoc_fields || [], r2 = [...o2, ...i];
81122
81191
  if (r2.length)
81123
81192
  return VT2(r2, t, n);
81124
81193
  }
81125
- function wD(e) {
81194
+ function vD(e) {
81126
81195
  if (!e || !Array.isArray(e))
81127
81196
  return "[]";
81128
81197
  const t = e.map((n) => n == null ? tc2 : typeof n == "string" ? `${_2(n)}` : n);
81129
81198
  return t.length === 1 ? `${t[0]}` : `[${t.join(", ")}]`;
81130
81199
  }
81131
- function vD(e) {
81200
+ function kD(e) {
81132
81201
  if (!(!e || typeof e != "string"))
81133
81202
  return e;
81134
81203
  }
81135
- function kD({
81204
+ function xD({
81136
81205
  options: e,
81137
81206
  modifier: t,
81138
81207
  operator: n,
@@ -81151,8 +81220,8 @@ function kD({
81151
81220
  return [i, r2].filter((s2) => s2).join(`
81152
81221
  `);
81153
81222
  }
81154
- function xD(e, t) {
81155
- const n = `operator: ${_2(e.operator)}`, o2 = `value: ${wD(e.values)}`, i = vD(e.modifier), r2 = i ? `modifier: ${_2(i)}` : "", a = kD({
81223
+ function CD(e, t) {
81224
+ const n = `operator: ${_2(e.operator)}`, o2 = `value: ${vD(e.values)}`, i = kD(e.modifier), r2 = i ? `modifier: ${_2(i)}` : "", a = xD({
81156
81225
  options: e.options,
81157
81226
  modifier: e.modifier,
81158
81227
  operator: e.operator,
@@ -81164,17 +81233,17 @@ function xD(e, t) {
81164
81233
  `);
81165
81234
  }
81166
81235
  function GA2(e, t) {
81167
- const n = `field: ${Ot3(e.path_hash, t)}`, o2 = e.aggregation && e.aggregation !== "custom" ? `aggregation: ${_2(e.aggregation)}` : "", i = xD(e, t);
81236
+ const n = `field: ${Ot3(e.path_hash, t)}`, o2 = e.aggregation && e.aggregation !== "custom" ? `aggregation: ${_2(e.aggregation)}` : "", i = CD(e, t);
81168
81237
  return [n, o2, i].filter(Boolean).join(`
81169
81238
  `);
81170
81239
  }
81171
- function CD(e, t) {
81240
+ function SD(e, t) {
81172
81241
  return e.map((n) => ` filter {
81173
81242
  ${GA2(n, t)}
81174
81243
  }`).join(`
81175
81244
  `);
81176
81245
  }
81177
- function SD(e, t) {
81246
+ function ED(e, t) {
81178
81247
  return ` VizFilter {
81179
81248
  ${GA2(e, t)}
81180
81249
  }`;
@@ -81185,7 +81254,7 @@ function jA2(e, t, n = 0) {
81185
81254
  const { link: o2, conditions: i } = e;
81186
81255
  if (!i.length)
81187
81256
  return;
81188
- const r2 = i.map((s2) => lA2(s2) ? jA2(s2, t, n + 1) : SD(s2, t)).filter(Boolean);
81257
+ const r2 = i.map((s2) => lA2(s2) ? jA2(s2, t, n + 1) : ED(s2, t)).filter(Boolean);
81189
81258
  return ` ${o2 === "and" ? "AndFilters" : "OrFilters"} {
81190
81259
  filters: [
81191
81260
  ${r2.join(`,
@@ -81193,7 +81262,7 @@ function jA2(e, t, n = 0) {
81193
81262
  ]
81194
81263
  }`;
81195
81264
  }
81196
- function ED(e, t) {
81265
+ function TD(e, t) {
81197
81266
  if (!e || !e.length)
81198
81267
  return;
81199
81268
  const n = e.map((o2) => jA2(o2, t)).filter(Boolean);
@@ -81266,7 +81335,7 @@ ${[i, r2].join(`
81266
81335
  }`;
81267
81336
  }
81268
81337
  }
81269
- function TD(e) {
81338
+ function BD(e) {
81270
81339
  if (!e || !Object.keys(e).length)
81271
81340
  return;
81272
81341
  const t = `enabled: ${e.enabled ?? true}`, n = `debug_comments: ${e.debug_comments ?? true}`;
@@ -81279,7 +81348,7 @@ function TD(e) {
81279
81348
  }`;
81280
81349
  }
81281
81350
  function _t3(e) {
81282
- const t = TD(e);
81351
+ const t = BD(e);
81283
81352
  if (t)
81284
81353
  return `aggregate_awareness ${t}`;
81285
81354
  }
@@ -81290,7 +81359,7 @@ function yt3(e) {
81290
81359
  ${t}
81291
81360
  }` : "";
81292
81361
  }
81293
- function BD(e, t) {
81362
+ function ID2(e, t) {
81294
81363
  const n = Wg2(e), o2 = n.fields.table_fields || [], i = !!import_lodash.get(n, "settings.aggregation.show_average"), r2 = !!import_lodash.get(n, "settings.aggregation.show_total"), a = import_lodash.get(n, "settings.misc.pagination_size", Ft3), s2 = !!import_lodash.get(n, "settings.misc.show_row_number"), l2 = import_lodash.get(n, "settings.misc.show_field_description"), c3 = import_lodash.get(n, "settings.sort", []), u = import_lodash.get(n, "settings.conditional_formatting", []), d2 = import_lodash.get(n, "settings.pop_settings"), m3 = !!import_lodash.get(n, "settings.others.include_empty_children_rows"), h2 = import_lodash.get(n, "settings.misc.column_width.manual_widths", {}), f3 = import_lodash.get(n, "settings.misc.column_freeze"), g3 = import_lodash.get(n, "settings.misc.single_cell_display"), b2 = import_lodash.get(n, "settings.misc.column_alignment"), x2 = import_lodash.get(n, "settings.misc.column_font_color"), w2 = import_lodash.get(n, "settings.misc.column_bg_color"), v2 = ` fields: [${o2.map((Ve3) => Y2(Ve3, t)).join(`,
81295
81364
  `)}]`, A = i ? `show_average_row: ${i}` : "", C2 = r2 ? `show_sum_row: ${r2}` : "", B2 = a !== undefined && a !== Ft3 ? `pagination_size: ${a}` : "", P2 = UA2(n.settings), y2 = s2 ? `show_row_number: ${s2}` : "", k2 = import_lodash.isNil(l2) ? "" : `show_field_description: ${!!l2}`, D = m3 ? `show_row_with_no_data: ${m3}` : "", U2 = Po3(c3) ? `sorts: ${Po3(c3)}` : "", G3 = Kg2(u, t), W = G3 ? `conditional_formats: ${G3}` : "", K3 = d2 ? Di2(d2, t) : undefined, te3 = K3 ? `pop ${K3}` : "", H2 = zt3(n.settings), oe2 = H2 ? `row_limit: ${H2}` : "", nt3 = _t3(n.settings.aggregate_awareness), ce3 = import_lodash.isNil(f3) ? "" : `frozen_columns: ${f3}`, ke3 = !import_lodash.isNil(g3) && g3 !== mb2.large ? `single_cell_display: '${g3}'` : "", ue3 = Fg2(b2, w2, x2, h2), Ye3 = $g2(ue3), he3 = yt3([
81296
81365
  A,
@@ -81315,15 +81384,15 @@ function BD(e, t) {
81315
81384
  ].filter(Boolean).join(`
81316
81385
  `);
81317
81386
  }
81318
- var ID2 = "columns";
81319
- var PD = "last";
81320
- function DD(e) {
81387
+ var PD = "columns";
81388
+ var DD = "last";
81389
+ function FD(e) {
81321
81390
  if (!e || !Object.keys(e).length)
81322
81391
  return;
81323
81392
  let t;
81324
- e.placement && e.placement !== ID2 && (t = `placement: ${_2(e.placement)}`);
81393
+ e.placement && e.placement !== PD && (t = `placement: ${_2(e.placement)}`);
81325
81394
  let n;
81326
- !import_lodash.isNil(e.order) && e.order !== PD && (n = `order: ${typeof e.order == "number" ? e.order : `${_2(e.order)}`}`);
81395
+ !import_lodash.isNil(e.order) && e.order !== DD && (n = `order: ${typeof e.order == "number" ? e.order : `${_2(e.order)}`}`);
81327
81396
  const o2 = [
81328
81397
  t,
81329
81398
  n
@@ -81334,12 +81403,12 @@ function DD(e) {
81334
81403
  ${o2}
81335
81404
  }`;
81336
81405
  }
81337
- function FD(e) {
81338
- const t = DD(e);
81406
+ function $D(e) {
81407
+ const t = FD(e);
81339
81408
  if (t)
81340
81409
  return `value_labels_position ${t}`;
81341
81410
  }
81342
- function $D(e) {
81411
+ function LD(e) {
81343
81412
  const { enabled: t, smart_suggestions_enabled: n } = e || {}, r2 = [
81344
81413
  t === false ? "enabled: false" : "",
81345
81414
  n === false ? "smart_suggestions_enabled: false" : ""
@@ -81350,13 +81419,13 @@ function $D(e) {
81350
81419
  }` : "";
81351
81420
  }
81352
81421
  function no2(e) {
81353
- const { view_underlying_data: t, breakdown: n } = e, i = t?.enabled === false ? "view_underlying_data { enabled: false }" : "", r2 = $D(n), a = [i, r2].filter(Boolean).join(`
81422
+ const { view_underlying_data: t, breakdown: n } = e, i = t?.enabled === false ? "view_underlying_data { enabled: false }" : "", r2 = LD(n), a = [i, r2].filter(Boolean).join(`
81354
81423
  `);
81355
81424
  return a ? ` analysis_interactions {
81356
81425
  ${a}
81357
81426
  }` : "";
81358
81427
  }
81359
- function LD(e, t) {
81428
+ function ND(e, t) {
81360
81429
  return e.map((n) => {
81361
81430
  const { metric: o2, views: i } = n, r2 = i.map((a) => {
81362
81431
  const s2 = a.fields.map((l2) => Ot3(l2, t)).join(`,
@@ -81376,13 +81445,13 @@ function LD(e, t) {
81376
81445
  }).join(`
81377
81446
  `);
81378
81447
  }
81379
- function ND(e, t) {
81380
- const { metric_views: n } = e || {}, o2 = n ? LD(n, t) : "";
81448
+ function MD(e, t) {
81449
+ const { metric_views: n } = e || {}, o2 = n ? ND(n, t) : "";
81381
81450
  return o2 ? `underlying_data {
81382
81451
  ${o2}
81383
81452
  }` : "";
81384
81453
  }
81385
- function MD(e, t) {
81454
+ function RD(e, t) {
81386
81455
  return e.map((n) => {
81387
81456
  const o2 = n.fields.map((i) => Ot3(i, t)).join(`,
81388
81457
  `);
@@ -81396,21 +81465,21 @@ function MD(e, t) {
81396
81465
  }).join(`
81397
81466
  `);
81398
81467
  }
81399
- function RD(e, t) {
81400
- const { groups: n } = e || {}, o2 = n ? MD(n, t) : "";
81468
+ function OD(e, t) {
81469
+ const { groups: n } = e || {}, o2 = n ? RD(n, t) : "";
81401
81470
  return o2 ? `breakdown {
81402
81471
  ${o2}
81403
81472
  }` : "";
81404
81473
  }
81405
- function OD(e, t) {
81406
- const { underlying_data: n, breakdown: o2 } = e, i = n ? ND(n, t) : "", r2 = o2 ? RD(o2, t) : "", a = [i, r2].filter(Boolean).join(`
81474
+ function zD(e, t) {
81475
+ const { underlying_data: n, breakdown: o2 } = e, i = n ? MD(n, t) : "", r2 = o2 ? OD(o2, t) : "", a = [i, r2].filter(Boolean).join(`
81407
81476
  `);
81408
81477
  return a ? ` analysis {
81409
81478
  ${a}
81410
81479
  }` : "";
81411
81480
  }
81412
- function zD(e, t) {
81413
- const n = Gc2(e), { rows: o2 = [], columns: i = [], values: r2 = [] } = import_lodash.get(n, "fields.pivot_data", {}), a = import_lodash.get(n, "settings.misc.pagination_size", Ft3), s2 = !!import_lodash.get(n, "settings.misc.convert_null_to_zero"), l2 = !!import_lodash.get(n, "settings.others.include_empty_children_rows"), c3 = !!import_lodash.get(n, "settings.others.row_total"), u = !!import_lodash.get(n, "settings.others.column_total"), d2 = !!import_lodash.get(n, "settings.others.sub_total"), m3 = import_lodash.get(n, "settings.sort"), h2 = import_lodash.get(n, "settings.conditional_formatting", []), f3 = import_lodash.get(n, "settings.pop_settings"), g3 = !!import_lodash.get(n, "settings.misc.freeze_rows", true), b2 = import_lodash.get(n, "settings.misc.column_width.manual_widths", {}), x2 = import_lodash.get(n, "settings.misc.column_freeze"), w2 = import_lodash.get(n, "settings.misc.column_alignment"), v2 = import_lodash.get(n, "settings.misc.column_font_color"), A = import_lodash.get(n, "settings.misc.column_bg_color"), C2 = import_lodash.get(n, "settings.misc.show_field_description"), B2 = o2.length ? `rows: [${o2.map((Ze3) => Y2(Ze3, t))}]` : "", P2 = i.length ? `columns: [${i.map((Ze3) => Y2(Ze3, t))}]` : "", y2 = r2.length ? `values: [${r2.map((Ze3) => Y2(Ze3, t))}]` : "", k2 = UA2(n.settings), D = a !== undefined && a !== Ft3 ? `pagination_size: ${a}` : "", E2 = s2 ? `empty_cell_as_zero: ${s2}` : "", U2 = l2 ? `show_row_with_no_data: ${l2}` : "", G3 = c3 ? `show_row_total: ${c3}` : "", W = u ? `show_column_total: ${u}` : "", K3 = d2 ? `show_sub_total: ${d2}` : "", te3 = import_lodash.isNil(C2) ? "" : `show_field_description: ${!!C2}`, H2 = Kg2(h2, t), oe2 = H2 ? `conditional_formats: ${H2}` : "", ce3 = Po3(m3) ? `sorts: ${Po3(m3)}` : "", ke3 = f3 ? Di2(f3, t) : undefined, ue3 = ke3 ? `pop ${ke3}` : "", Ye3 = zt3(n.settings), he3 = Ye3 ? `row_limit: ${Ye3}` : "", $e3 = g3 ? "" : `freeze_rows: ${g3}`, Ve3 = _t3(n.settings.aggregate_awareness), V = import_lodash.isNil(x2) ? "" : `frozen_columns: ${x2}`, S2 = FD(n?.settings?.misc?.value_labels_position), xe2 = Fg2(w2, A, v2, b2), Ge2 = $g2(xe2), je2 = n.settings.analysis_interactions ? no2(n.settings.analysis_interactions) : "", T = yt3([
81481
+ function VD(e, t) {
81482
+ const n = Gc2(e), { rows: o2 = [], columns: i = [], values: r2 = [] } = import_lodash.get(n, "fields.pivot_data", {}), a = import_lodash.get(n, "settings.misc.pagination_size", Ft3), s2 = !!import_lodash.get(n, "settings.misc.convert_null_to_zero"), l2 = !!import_lodash.get(n, "settings.others.include_empty_children_rows"), c3 = !!import_lodash.get(n, "settings.others.row_total"), u = !!import_lodash.get(n, "settings.others.column_total"), d2 = !!import_lodash.get(n, "settings.others.sub_total"), m3 = import_lodash.get(n, "settings.sort"), h2 = import_lodash.get(n, "settings.conditional_formatting", []), f3 = import_lodash.get(n, "settings.pop_settings"), g3 = !!import_lodash.get(n, "settings.misc.freeze_rows", true), b2 = import_lodash.get(n, "settings.misc.column_width.manual_widths", {}), x2 = import_lodash.get(n, "settings.misc.column_freeze"), w2 = import_lodash.get(n, "settings.misc.column_alignment"), v2 = import_lodash.get(n, "settings.misc.column_font_color"), A = import_lodash.get(n, "settings.misc.column_bg_color"), C2 = import_lodash.get(n, "settings.misc.show_field_description"), B2 = o2.length ? `rows: [${o2.map((Ze3) => Y2(Ze3, t))}]` : "", P2 = i.length ? `columns: [${i.map((Ze3) => Y2(Ze3, t))}]` : "", y2 = r2.length ? `values: [${r2.map((Ze3) => Y2(Ze3, t))}]` : "", k2 = UA2(n.settings), D = a !== undefined && a !== Ft3 ? `pagination_size: ${a}` : "", E2 = s2 ? `empty_cell_as_zero: ${s2}` : "", U2 = l2 ? `show_row_with_no_data: ${l2}` : "", G3 = c3 ? `show_row_total: ${c3}` : "", W = u ? `show_column_total: ${u}` : "", K3 = d2 ? `show_sub_total: ${d2}` : "", te3 = import_lodash.isNil(C2) ? "" : `show_field_description: ${!!C2}`, H2 = Kg2(h2, t), oe2 = H2 ? `conditional_formats: ${H2}` : "", ce3 = Po3(m3) ? `sorts: ${Po3(m3)}` : "", ke3 = f3 ? Di2(f3, t) : undefined, ue3 = ke3 ? `pop ${ke3}` : "", Ye3 = zt3(n.settings), he3 = Ye3 ? `row_limit: ${Ye3}` : "", $e3 = g3 ? "" : `freeze_rows: ${g3}`, Ve3 = _t3(n.settings.aggregate_awareness), V = import_lodash.isNil(x2) ? "" : `frozen_columns: ${x2}`, S2 = $D(n?.settings?.misc?.value_labels_position), xe2 = Fg2(w2, A, v2, b2), Ge2 = $g2(xe2), je2 = n.settings.analysis_interactions ? no2(n.settings.analysis_interactions) : "", T = yt3([
81414
81483
  k2,
81415
81484
  D,
81416
81485
  E2,
@@ -81444,16 +81513,16 @@ var Lo3 = (e, t) => e.length ? `[
81444
81513
  }` : "").filter(Boolean).join(`,
81445
81514
  `)}
81446
81515
  ]` : undefined;
81447
- var VD = `${Xn3}.color_palettes`;
81448
- function GD(e) {
81516
+ var GD = `${Xn3}.color_palettes`;
81517
+ function jD(e) {
81449
81518
  return e._id ? e._id : e.label === undefined ? _2(e.color) : `LabeledColor {
81450
81519
  label: ${_2(e.label)}
81451
81520
  color: ${_2(e.color)}
81452
81521
  }`;
81453
81522
  }
81454
- function jD(e) {
81523
+ function UD(e) {
81455
81524
  return e ? e._id ? e._id : !e.colors || e.colors.length === 0 ? undefined : `{
81456
- colors: ${`[${e.colors.map((n) => GD(n)).join(", ")}]`}
81525
+ colors: ${`[${e.colors.map((n) => jD(n)).join(", ")}]`}
81457
81526
  }` : undefined;
81458
81527
  }
81459
81528
  function Yr3(e) {
@@ -81463,14 +81532,14 @@ function Yr3(e) {
81463
81532
  return e;
81464
81533
  const t = [];
81465
81534
  e.title && t.push(`title: ${_2(e.title)}`);
81466
- const n = jD(e.categorical);
81535
+ const n = UD(e.categorical);
81467
81536
  if (n && t.push(j4("categorical", n)), t.length !== 0)
81468
81537
  return `{
81469
81538
  ${t.join(`
81470
81539
  `)}
81471
81540
  }`;
81472
81541
  }
81473
- var UD = {
81542
+ var KD = {
81474
81543
  "pastel-1": "pastel_1",
81475
81544
  "pastel-2": "pastel_2",
81476
81545
  categorical: "categorical",
@@ -81483,7 +81552,7 @@ var UD = {
81483
81552
  };
81484
81553
  function KA2(e) {
81485
81554
  const t = Object.entries(lc2).find(([, n]) => n === e);
81486
- return t ? `${VD}.${UD[t[0]]}` : String(e);
81555
+ return t ? `${GD}.${KD[t[0]]}` : String(e);
81487
81556
  }
81488
81557
  function Jr3(e) {
81489
81558
  const { palette: t, palette_id: n } = e;
@@ -81506,11 +81575,11 @@ function Im2(e, t, n) {
81506
81575
  }
81507
81576
  return { lineStyle: o2, lineInterpolation: i };
81508
81577
  }
81509
- function KD(e) {
81578
+ function HD(e) {
81510
81579
  const { analytic: t } = e, { type: n } = t || {}, { regression: o2 } = t || {};
81511
81580
  return n === "trend" || n === "reference" || n === "moving" && !!o2;
81512
81581
  }
81513
- function HD(e, t) {
81582
+ function QD(e, t) {
81514
81583
  const { x_axis: n, series: o2 } = e.fields, i = import_lodash.get(e, "fields.y_axes", []), r2 = import_lodash.get(e, "settings.y_axes", []), a = import_lodash.get(e, "fields.tooltips", []), s2 = !!import_lodash.get(e, "settings.legend.enabled"), l2 = import_lodash.get(e, "settings.legend.alignment", "bottom"), c3 = !!import_lodash.get(e, "settings.others.always_display_points"), u = !!import_lodash.get(e, "settings.others.include_empty_children_rows"), d2 = !!import_lodash.get(e, "settings.others.connect_discontinuous_points", true), m3 = import_lodash.get(e, "settings.pop_settings"), h2 = import_lodash.get(e, "settings.sort"), f3 = import_lodash.get(e, "settings.x_axis.title"), g3 = import_lodash.get(e, "settings.x_axis.show_null_datetime"), b2 = c3 && ["line_chart", "area_chart", "combination_chart"].includes(e.viz_type) ? `show_data_points: ${c3}` : "", x2 = !d2 && ["line_chart", "area_chart", "combination_chart"].includes(e.viz_type) ? `connect_discontinuous_points: ${d2}` : "", w2 = u ? `show_rows_with_no_data: ${u}` : "", v2 = zt3(e.settings), A = v2 ? `row_limit: ${v2}` : "", C2 = Qg2(h2) || "";
81515
81584
  let B2 = "";
81516
81585
  s2 ? l2 !== "bottom" && (B2 = `legend_label: ${_2(l2)}`) : B2 = "legend_label: 'hidden'";
@@ -81549,7 +81618,7 @@ function HD(e, t) {
81549
81618
  `), M2 = ue3.title ? `label: ${_2(ue3.title)}` : "", le3 = De2 ? ` settings {
81550
81619
  ${De2}
81551
81620
  }` : "", Fe3 = Ye3.map((ye3) => {
81552
- const Ue3 = ye3.series_settings || {}, $t2 = e.viz_type === "combination_chart" && typeof Ue3.series_type == "string" && Ue3.series_type !== "auto" ? `mark_type: ${_2(Ue3.series_type.split("_")[0])}` : "", fu2 = KD(ye3) ? "line_chart" : Ue3.series_type, { lineStyle: ca2, lineInterpolation: ua2 } = Im2(Ue3, e.viz_type, fu2), da2 = Ue3.color !== undefined && Ue3.color !== "auto" ? Ue3.color : ye3.color, S_ = da2 !== undefined && da2 !== "auto" ? `color: ${_2(da2)}` : "", E_ = ca2 !== undefined && ca2 !== "solid" ? `line_style: ${_2(ca2)}` : "", T_ = ua2 !== undefined && ua2 !== "linear" ? `line_interpolation: ${_2(ua2)}` : "", B_ = Jr3(Ue3);
81621
+ const Ue3 = ye3.series_settings || {}, $t2 = e.viz_type === "combination_chart" && typeof Ue3.series_type == "string" && Ue3.series_type !== "auto" ? `mark_type: ${_2(Ue3.series_type.split("_")[0])}` : "", fu2 = HD(ye3) ? "line_chart" : Ue3.series_type, { lineStyle: ca2, lineInterpolation: ua2 } = Im2(Ue3, e.viz_type, fu2), da2 = Ue3.color !== undefined && Ue3.color !== "auto" ? Ue3.color : ye3.color, S_ = da2 !== undefined && da2 !== "auto" ? `color: ${_2(da2)}` : "", E_ = ca2 !== undefined && ca2 !== "solid" ? `line_style: ${_2(ca2)}` : "", T_ = ua2 !== undefined && ua2 !== "linear" ? `line_interpolation: ${_2(ua2)}` : "", B_ = Jr3(Ue3);
81553
81622
  let gu2 = "";
81554
81623
  typeof Ue3.series_hash == "object" && !import_lodash.isEmpty(Ue3.series_hash) && (gu2 = Object.entries(Ue3.series_hash).map(([P_, lo2]) => {
81555
81624
  const co2 = Im2(lo2, e.viz_type, fu2), D_ = `value: ${_2(P_)}`, yu2 = lo2.color !== undefined && lo2.color !== "auto" ? `color: ${_2(lo2.color)}` : "", bu2 = co2.lineStyle !== undefined && co2.lineStyle !== "solid" ? `line_style: ${_2(co2.lineStyle)}` : "", wu2 = co2.lineInterpolation !== undefined && co2.lineInterpolation !== "linear" ? `line_interpolation: ${_2(co2.lineInterpolation)}` : "", vu2 = lo2.hidden === true ? `hidden: ${lo2.hidden}` : "", ku2 = [
@@ -81604,7 +81673,7 @@ function HD(e, t) {
81604
81673
  ].filter(Boolean).join(`
81605
81674
  `);
81606
81675
  }
81607
- function QD(e, t) {
81676
+ function WD(e, t) {
81608
81677
  const n = e.fields.series, o2 = import_lodash.get(e, "fields.y_axis.columns", []), i = import_lodash.get(e, "fields.tooltips", []), r2 = !!import_lodash.get(e, "settings.donut_chart.show_donut"), a = !!import_lodash.get(e, "settings.legend.enabled"), s2 = import_lodash.get(e, "settings.legend.alignment", "bottom"), l2 = !!import_lodash.get(e, "settings.other.show_label"), c3 = import_lodash.get(e, "settings.other.label_position"), u = !!import_lodash.get(e, "settings.other.show_percentage"), d2 = !!import_lodash.get(e, "settings.other.show_stack_total"), m3 = !!import_lodash.get(e, "settings.other.group_long_tail"), h2 = Number(import_lodash.get(e, "settings.other.maximum_groups")), f3 = import_lodash.get(e, "settings.sort"), g3 = r2 ? `display_as_donut: ${r2}` : "", b2 = d2 ? `show_total: ${d2}` : "", x2 = zt3(e.settings), w2 = x2 ? `row_limit: ${x2}` : "";
81609
81678
  let v2 = "";
81610
81679
  !import_lodash.isNil(f3) && !import_lodash.isEmpty(f3.option) && (f3.option.type === "pie" ? v2 = `sort: ${_2(f3.isAscending ? "asc" : "desc")}` : v2 = Qg2(f3) || "");
@@ -81662,7 +81731,7 @@ function QD(e, t) {
81662
81731
  ].filter(Boolean).join(`
81663
81732
  `);
81664
81733
  }
81665
- function WD(e, t) {
81734
+ function qD(e, t) {
81666
81735
  const {
81667
81736
  x_col: n,
81668
81737
  y_col: o2,
@@ -81700,7 +81769,7 @@ function WD(e, t) {
81700
81769
  ].filter(Boolean).join(`
81701
81770
  `);
81702
81771
  }
81703
- function qD(e, t) {
81772
+ function YD(e, t) {
81704
81773
  const n = import_lodash.get(e, "settings.cohort_settings.percentage", true), o2 = import_lodash.get(e, "settings.cohort_settings.convert_empty", false), i = import_lodash.get(e, "fields.cohort"), r2 = import_lodash.get(e, "fields.cohort_size"), a = import_lodash.get(e, "fields.cohort_duration"), s2 = import_lodash.get(e, "fields.cohort_value"), l2 = ae3(i) ? `cohort: ${Y2(i, t)}` : "", c3 = ae3(r2) ? `cohort_size: ${Y2(r2, t)}` : "", u = ae3(a) ? `cohort_duration: ${Y2(a, t)}` : "", d2 = ae3(s2) ? `cohort_value: ${Y2(s2, t)}` : "", m3 = n ? "" : `display_percentage_values: ${n}`, h2 = o2 ? `convert_empty_to_zero: ${o2}` : "", f3 = _t3(e.settings.aggregate_awareness), g3 = yt3([
81705
81774
  m3,
81706
81775
  h2,
@@ -81715,7 +81784,7 @@ function qD(e, t) {
81715
81784
  ].filter(Boolean).join(`
81716
81785
  `);
81717
81786
  }
81718
- function YD(e, t) {
81787
+ function JD(e, t) {
81719
81788
  const n = e.fields.x_axis, o2 = import_lodash.get(e, "fields.y_axis.columns", []), i = import_lodash.get(e, "settings.colors", {}), r2 = import_lodash.get(e, "settings.breakdown", {}), a = ae3(n) ? `breakdown_by: ${Y2(n, t)}` : "", s2 = `values: [
81720
81789
  ${o2.map((w2) => Y2(w2, t)).join(`,
81721
81790
  `)}
@@ -81735,7 +81804,7 @@ function YD(e, t) {
81735
81804
  ].filter(Boolean).join(`
81736
81805
  `);
81737
81806
  }
81738
- function JD(e, t) {
81807
+ function ZD(e, t) {
81739
81808
  const n = t.find((d2) => d2.uuid === e), o2 = import_lodash.get(n, "indent", Kt3);
81740
81809
  if (!!!import_lodash.get(n, "rowType")) {
81741
81810
  const d2 = import_lodash.get(n, "chartType", Kn3);
@@ -81759,12 +81828,12 @@ function JD(e, t) {
81759
81828
  ].filter(Boolean).join(`
81760
81829
  `);
81761
81830
  }
81762
- function ZD(e, t) {
81831
+ function XD(e, t) {
81763
81832
  const n = import_lodash.get(e, "settings.max_column", di2), o2 = import_lodash.get(e, "fields.date", {}), i = import_lodash.get(e, "fields.rows", []), r2 = import_lodash.get(e, "settings.customization", []), a = n !== di2 ? `max_column: ${n}` : undefined, s2 = _t3(e.settings.aggregate_awareness), l2 = yt3([
81764
81833
  a,
81765
81834
  s2
81766
81835
  ]), c3 = i.map((h2) => {
81767
- const f3 = JD(h2.uuid, r2), g3 = f3 ? ` settings {
81836
+ const f3 = ZD(h2.uuid, r2), g3 = f3 ? ` settings {
81768
81837
  ${f3}
81769
81838
  }` : "";
81770
81839
  return ae3(h2) ? ` MetricSeries {
@@ -81792,9 +81861,9 @@ function ZD(e, t) {
81792
81861
  `);
81793
81862
  }
81794
81863
  var Pm2 = false;
81795
- var XD = "compare_by_percent";
81796
- var Dm2 = XD;
81797
- function eF(e, t) {
81864
+ var eF = "compare_by_percent";
81865
+ var Dm2 = eF;
81866
+ function tF(e, t) {
81798
81867
  let n = "";
81799
81868
  const o2 = import_lodash.get(e, "fields.metric_value", {});
81800
81869
  if (import_lodash.get(e, "settings.metric_settings.compare_with", "field") === "field") {
@@ -81820,7 +81889,7 @@ function eF(e, t) {
81820
81889
  ].filter(Boolean).join(`
81821
81890
  `);
81822
81891
  }
81823
- function tF(e, t) {
81892
+ function nF(e, t) {
81824
81893
  const n = import_lodash.get(e, "fields.rows"), o2 = import_lodash.get(e, "fields.values"), i = ae3(n) ? `words: ${Y2(n, t)}` : "", r2 = ae3(o2) ? `weight: ${Y2(o2, t)}` : "", a = zt3(e.settings), s2 = a ? `row_limit: ${a}` : "", l2 = _t3(e.settings.aggregate_awareness), c3 = yt3([
81825
81894
  s2,
81826
81895
  l2
@@ -81832,7 +81901,7 @@ function tF(e, t) {
81832
81901
  ].filter(Boolean).join(`
81833
81902
  `);
81834
81903
  }
81835
- function nF(e, t) {
81904
+ function oF(e, t) {
81836
81905
  const n = import_lodash.get(e, "settings.solid_gauge.title"), o2 = import_lodash.get(e, "settings.solid_gauge.suffix"), i = import_lodash.get(e, "fields.metric_value"), r2 = import_lodash.get(e, "fields.metric_comparison_value"), a = ae3(i) ? `value: ${Y2(i, t)}` : "", s2 = ae3(r2) ? `max_value: ${Y2(r2, t)}` : "", l2 = n ? `label: ${_2(n)}` : "", c3 = o2 ? `suffix: ${_2(o2)}` : "", u = zt3(e.settings), d2 = u ? `row_limit: ${u}` : "", m3 = _t3(e.settings.aggregate_awareness), h2 = e.settings.analysis_interactions ? no2(e.settings.analysis_interactions) : "", f3 = yt3([
81837
81906
  l2,
81838
81907
  c3,
@@ -81853,7 +81922,7 @@ var $m2 = "polygon";
81853
81922
  var Lm2 = "line";
81854
81923
  var Nm2 = false;
81855
81924
  var Mm2 = true;
81856
- function oF(e, t) {
81925
+ function iF(e, t) {
81857
81926
  const {
81858
81927
  x_axis: n,
81859
81928
  legend: o2
@@ -81908,10 +81977,10 @@ var HA2 = (e) => {
81908
81977
  }`;
81909
81978
  };
81910
81979
  var Xs2 = "number";
81911
- var iF = "#C3E8C2";
81912
- var rF = "#34BA5A";
81980
+ var rF = "#C3E8C2";
81981
+ var aF = "#34BA5A";
81913
81982
  var el2 = "percentage";
81914
- var aF = (e) => {
81983
+ var sF = (e) => {
81915
81984
  const t = e.viz_type, n = import_lodash.get(e, "settings.map_settings.tile_provider", ""), o2 = Object.entries(Dn3).find(([, f3]) => f3 === n)?.[0], i = import_lodash.get(e, "settings.map_settings.show_legend", Sg2);
81916
81985
  let r2 = import_lodash.get(e, "settings.map_settings.legend_layout", En3).toLowerCase();
81917
81986
  const a = HA2(e);
@@ -81935,10 +82004,10 @@ var aF = (e) => {
81935
82004
  ].filter(Boolean).join(`
81936
82005
  `);
81937
82006
  };
81938
- var sF = (e) => {
82007
+ var lF = (e) => {
81939
82008
  const t = e.viz_type, n = import_lodash.get(e, "settings.map_color.value");
81940
82009
  if (n) {
81941
- const o2 = import_lodash.get(n, "min.type"), i = import_lodash.get(n, "max.type"), r2 = import_lodash.get(n, "mid.type"), a = import_lodash.get(n, "min.value"), s2 = import_lodash.get(n, "mid.value"), l2 = import_lodash.get(n, "max.value"), c3 = import_lodash.get(n, "min.color", iF), u = import_lodash.get(n, "mid.color"), d2 = import_lodash.get(n, "max.color", rF), m3 = import_lodash.get(n, "style"), h2 = import_lodash.get(n, "steps"), f3 = m3 !== undefined && m3 !== Pc2 && t === "point_map" ? `style: ${_2(m3)}` : "", g3 = h2 !== undefined && h2 !== Dc2 && t === "point_map" ? `steps: ${h2}` : "", b2 = o2 !== undefined && o2 !== Xs2 ? `type: ${_2(el2)}` : "", x2 = a ? `value: ${a}` : "", w2 = `color: ${_2(c3)}`, v2 = [
82010
+ const o2 = import_lodash.get(n, "min.type"), i = import_lodash.get(n, "max.type"), r2 = import_lodash.get(n, "mid.type"), a = import_lodash.get(n, "min.value"), s2 = import_lodash.get(n, "mid.value"), l2 = import_lodash.get(n, "max.value"), c3 = import_lodash.get(n, "min.color", rF), u = import_lodash.get(n, "mid.color"), d2 = import_lodash.get(n, "max.color", aF), m3 = import_lodash.get(n, "style"), h2 = import_lodash.get(n, "steps"), f3 = m3 !== undefined && m3 !== Pc2 && t === "point_map" ? `style: ${_2(m3)}` : "", g3 = h2 !== undefined && h2 !== Dc2 && t === "point_map" ? `steps: ${h2}` : "", b2 = o2 !== undefined && o2 !== Xs2 ? `type: ${_2(el2)}` : "", x2 = a ? `value: ${a}` : "", w2 = `color: ${_2(c3)}`, v2 = [
81942
82011
  b2,
81943
82012
  x2,
81944
82013
  w2
@@ -81971,7 +82040,7 @@ var sF = (e) => {
81971
82040
  }
81972
82041
  return "";
81973
82042
  };
81974
- var lF = (e) => {
82043
+ var cF = (e) => {
81975
82044
  if (e) {
81976
82045
  const t = import_lodash.get(e, "color"), n = import_lodash.get(e, "colors", {}), o2 = Object.keys(n).map((a) => {
81977
82046
  const s2 = `value: ${_2(a)}`, l2 = n[a] ? `color: ${_2(n[a])}` : "";
@@ -81990,7 +82059,7 @@ var lF = (e) => {
81990
82059
  }
81991
82060
  return "";
81992
82061
  };
81993
- function cF(e, t) {
82062
+ function uF(e, t) {
81994
82063
  const n = e.viz_type, o2 = import_lodash.get(e, "fields.lng"), i = import_lodash.get(e, "fields.lat"), r2 = import_lodash.get(e, "fields.value"), a = ae3(o2) ? `lng: ${Y2(o2, t)}` : "", s2 = ae3(i) ? `lat: ${Y2(i, t)}` : "", l2 = r2 && ae3(r2) ? `value: ${Y2(r2, t)}` : "";
81995
82064
  let c3 = "", u = "";
81996
82065
  if (n === "point_map") {
@@ -82002,12 +82071,12 @@ function cF(e, t) {
82002
82071
  u = A ? `tooltips: ${A}` : "";
82003
82072
  }
82004
82073
  }
82005
- const d2 = sF(e), m3 = d2 ? ` value_colors {
82074
+ const d2 = lF(e), m3 = d2 ? ` value_colors {
82006
82075
  ${d2}
82007
82076
  }` : "", h2 = n === "point_map" ? import_lodash.get(e, "settings.map_color.legend") : undefined, f3 = h2 ? ` legend_colors {
82008
- ${lF(h2)}
82077
+ ${cF(h2)}
82009
82078
  }` : "", g3 = _t3(e.settings.aggregate_awareness), b2 = yt3([
82010
- aF(e),
82079
+ sF(e),
82011
82080
  m3,
82012
82081
  f3,
82013
82082
  g3
@@ -82022,14 +82091,14 @@ function cF(e, t) {
82022
82091
  ].filter(Boolean).join(`
82023
82092
  `);
82024
82093
  }
82025
- var uF = true;
82094
+ var dF = true;
82026
82095
  var tl2 = "number";
82027
- var dF = "#C3E8C2";
82028
- var pF = "#34BA5A";
82096
+ var pF = "#C3E8C2";
82097
+ var mF = "#34BA5A";
82029
82098
  var nl2 = "percentage";
82030
- var mF = ["country", "city", "continent", "state"];
82031
- var hF = (e) => {
82032
- const t = import_lodash.get(e, "settings.map_settings.tile_provider", ""), n = Object.entries(Dn3).find(([, c3]) => c3 === t)?.[0], o2 = import_lodash.get(e, "settings.map_settings.show_legend", uF);
82099
+ var hF = ["country", "city", "continent", "state"];
82100
+ var fF = (e) => {
82101
+ const t = import_lodash.get(e, "settings.map_settings.tile_provider", ""), n = Object.entries(Dn3).find(([, c3]) => c3 === t)?.[0], o2 = import_lodash.get(e, "settings.map_settings.show_legend", dF);
82033
82102
  let i = import_lodash.get(e, "settings.map_settings.legend_layout", Io3).toLowerCase();
82034
82103
  o2 || (i = "hidden");
82035
82104
  const r2 = n !== undefined && n !== un2 ? `map_background: ${_2(n)}` : "", a = i !== Io3 ? `color_scale: ${_2(i)}` : "", s2 = HA2(e);
@@ -82040,9 +82109,9 @@ var hF = (e) => {
82040
82109
  ].filter(Boolean).join(`
82041
82110
  `);
82042
82111
  };
82043
- var fF = (e) => {
82112
+ var gF = (e) => {
82044
82113
  if (e) {
82045
- const t = import_lodash.get(e, "min.type"), n = import_lodash.get(e, "max.type"), o2 = import_lodash.get(e, "mid.type"), i = import_lodash.get(e, "min.value"), r2 = import_lodash.get(e, "mid.value"), a = import_lodash.get(e, "max.value"), s2 = import_lodash.get(e, "min.color", dF), l2 = import_lodash.get(e, "mid.color"), c3 = import_lodash.get(e, "max.color", pF), u = import_lodash.get(e, "style"), d2 = import_lodash.get(e, "steps"), m3 = u !== undefined && u !== Fc2 ? `style: ${_2(u)}` : "", h2 = d2 !== undefined && d2 !== $c2 ? `steps: ${d2}` : "", f3 = t !== undefined && t !== tl2 ? `type: ${_2(nl2)}` : "", g3 = i ? `value: ${i}` : "", b2 = `color: ${_2(s2)}`, x2 = [
82114
+ const t = import_lodash.get(e, "min.type"), n = import_lodash.get(e, "max.type"), o2 = import_lodash.get(e, "mid.type"), i = import_lodash.get(e, "min.value"), r2 = import_lodash.get(e, "mid.value"), a = import_lodash.get(e, "max.value"), s2 = import_lodash.get(e, "min.color", pF), l2 = import_lodash.get(e, "mid.color"), c3 = import_lodash.get(e, "max.color", mF), u = import_lodash.get(e, "style"), d2 = import_lodash.get(e, "steps"), m3 = u !== undefined && u !== Fc2 ? `style: ${_2(u)}` : "", h2 = d2 !== undefined && d2 !== $c2 ? `steps: ${d2}` : "", f3 = t !== undefined && t !== tl2 ? `type: ${_2(nl2)}` : "", g3 = i ? `value: ${i}` : "", b2 = `color: ${_2(s2)}`, x2 = [
82046
82115
  f3,
82047
82116
  g3,
82048
82117
  b2
@@ -82094,8 +82163,8 @@ var Rm2 = (e) => {
82094
82163
  }
82095
82164
  return "";
82096
82165
  };
82097
- var gF = (e) => {
82098
- if (mF.includes(e))
82166
+ var AF = (e) => {
82167
+ if (hF.includes(e))
82099
82168
  return `${_2(e)}`;
82100
82169
  const t = /custom_(\d+)_(\w+)/, n = e.match(t);
82101
82170
  if (n) {
@@ -82106,10 +82175,10 @@ var gF = (e) => {
82106
82175
  }`;
82107
82176
  }
82108
82177
  };
82109
- var AF = (e, t) => {
82178
+ var _F = (e, t) => {
82110
82179
  const n = import_lodash.get(e, "fields.location"), o2 = n.field_to_use;
82111
82180
  return n.fields.map((i) => {
82112
- const r2 = ae3(i) ? `field: ${Y2(i, t)}` : "", a = i.location_type ? `location_type: ${gF(i.location_type)}` : "", s2 = i.uuid === o2 ? "primary_field: true" : "", l2 = [
82181
+ const r2 = ae3(i) ? `field: ${Y2(i, t)}` : "", a = i.location_type ? `location_type: ${AF(i.location_type)}` : "", s2 = i.uuid === o2 ? "primary_field: true" : "", l2 = [
82113
82182
  r2,
82114
82183
  a,
82115
82184
  s2
@@ -82121,8 +82190,8 @@ var AF = (e, t) => {
82121
82190
  }).filter(Boolean).join(`
82122
82191
  `);
82123
82192
  };
82124
- function _F(e, t) {
82125
- const n = import_lodash.get(e, "fields.value"), o2 = import_lodash.get(e, "fields.legend"), i = import_lodash.get(e, "fields.tooltips"), r2 = AF(e, t);
82193
+ function yF(e, t) {
82194
+ const n = import_lodash.get(e, "fields.value"), o2 = import_lodash.get(e, "fields.legend"), i = import_lodash.get(e, "fields.tooltips"), r2 = _F(e, t);
82126
82195
  let a = "";
82127
82196
  n && (a = ae3(n) ? `value: ${Y2(n, t)}` : "");
82128
82197
  let s2 = "";
@@ -82132,14 +82201,14 @@ function _F(e, t) {
82132
82201
  const v2 = Lo3(i, t);
82133
82202
  l2 = v2 ? `tooltips: ${v2}` : "";
82134
82203
  }
82135
- const c3 = import_lodash.get(e, "settings.map_color.value"), u = import_lodash.get(e, "settings.map_color.location"), d2 = import_lodash.get(e, "settings.map_color.legend"), m3 = fF(c3), h2 = m3 ? ` value_colors {
82204
+ const c3 = import_lodash.get(e, "settings.map_color.value"), u = import_lodash.get(e, "settings.map_color.location"), d2 = import_lodash.get(e, "settings.map_color.legend"), m3 = gF(c3), h2 = m3 ? ` value_colors {
82136
82205
  ${m3}
82137
82206
  }` : "", f3 = d2 ? ` legend_colors {
82138
82207
  ${Rm2(d2)}
82139
82208
  }` : "", g3 = u ? ` location_colors {
82140
82209
  ${Rm2(u)}
82141
82210
  }` : "", b2 = _t3(e.settings.aggregate_awareness), x2 = yt3([
82142
- hF(e),
82211
+ fF(e),
82143
82212
  h2,
82144
82213
  f3,
82145
82214
  g3,
@@ -82154,10 +82223,10 @@ function _F(e, t) {
82154
82223
  ].filter(Boolean).join(`
82155
82224
  `);
82156
82225
  }
82157
- function yF(e, t) {
82226
+ function bF(e, t) {
82158
82227
  const { custom_chart_id: n, custom_chart_def: o2 } = e;
82159
82228
  let i;
82160
- o2 ? i = `custom_chart: ${jP(o2)}` : typeof n == "string" ? i = `custom_chart: ${n}` : i = `custom_chart_id: ${n}`;
82229
+ o2 ? i = `custom_chart: ${UP(o2)}` : typeof n == "string" ? i = `custom_chart: ${n}` : i = `custom_chart_id: ${n}`;
82161
82230
  const r2 = import_lodash.compact(Object.entries(e.fields).map(([m3, h2]) => ae3(h2) ? `field ${m3}: ${Y2(h2, t)}` : "")).join(`
82162
82231
  `), a = zt3(e.settings), s2 = a ? `row_limit: ${a}` : "", l2 = _t3(e.settings._holistics_reserved_?.aggregate_awareness), c3 = import_lodash.compact(Object.entries(e.settings).map(([m3, h2]) => {
82163
82232
  if (m3 === "misc" || m3 === "_holistics_reserved_" || import_lodash.isNil(h2))
@@ -82209,7 +82278,7 @@ function tu2(e) {
82209
82278
  right: ${tt3(n)}
82210
82279
  }`;
82211
82280
  }
82212
- function bF(e) {
82281
+ function wF(e) {
82213
82282
  if (!e)
82214
82283
  return;
82215
82284
  if (e._id)
@@ -82260,7 +82329,7 @@ function QA2(e) {
82260
82329
  return e._id;
82261
82330
  const t = [], n = tu2(e.border_width);
82262
82331
  n && t.push(j4("border_width", n));
82263
- const o2 = bF(e.border_radius);
82332
+ const o2 = wF(e.border_radius);
82264
82333
  if (o2 && t.push(j4("border_radius", o2)), e.border_color && t.push(`border_color: ${_2(e.border_color)}`), e.border_style && t.push(`border_style: ${_2(e.border_style)}`), t.length !== 0)
82265
82334
  return `{
82266
82335
  ${t.join(`
@@ -82301,7 +82370,7 @@ function nu2(e) {
82301
82370
  `)}
82302
82371
  }`;
82303
82372
  }
82304
- function wF(e) {
82373
+ function vF(e) {
82305
82374
  if (e) {
82306
82375
  if (e._id)
82307
82376
  return e._id;
@@ -82320,7 +82389,7 @@ var Om2 = (e) => {
82320
82389
  `)}
82321
82390
  }`;
82322
82391
  };
82323
- function vF(e) {
82392
+ function kF(e) {
82324
82393
  if (!e)
82325
82394
  return;
82326
82395
  if (e._id)
@@ -82435,7 +82504,7 @@ function ol2(e) {
82435
82504
  `)}
82436
82505
  }`;
82437
82506
  }
82438
- function kF(e) {
82507
+ function xF(e) {
82439
82508
  if (!e)
82440
82509
  return;
82441
82510
  if (e._id)
@@ -82478,11 +82547,11 @@ function WA2(e) {
82478
82547
  return;
82479
82548
  if (e._id)
82480
82549
  return e._id;
82481
- const t = [], n = vF(e.table);
82550
+ const t = [], n = kF(e.table);
82482
82551
  n && t.push(j4("table", n));
82483
82552
  const o2 = eu2(e.color);
82484
82553
  o2 && t.push(j4("color", o2));
82485
- const i = kF(e.metric_kpi);
82554
+ const i = xF(e.metric_kpi);
82486
82555
  if (i && t.push(j4("metric_kpi", i)), t.length !== 0)
82487
82556
  return `{
82488
82557
  ${t.join(`
@@ -82502,7 +82571,7 @@ function jl2(e) {
82502
82571
  o2 && t.push(j4("canvas", o2));
82503
82572
  const i = Nn3(e.block);
82504
82573
  i && t.push(j4("block", i));
82505
- const r2 = wF(e.custom_css);
82574
+ const r2 = vF(e.custom_css);
82506
82575
  r2 && t.push(j4("custom_css", r2));
82507
82576
  const a = WA2(e.viz);
82508
82577
  a && t.push(j4("viz", a));
@@ -82516,7 +82585,7 @@ function jl2(e) {
82516
82585
  function Fi3(e) {
82517
82586
  if (!e)
82518
82587
  return;
82519
- if (!LP(e))
82588
+ if (!NP(e))
82520
82589
  return jl2(e);
82521
82590
  if (e._id)
82522
82591
  return e._id;
@@ -82530,14 +82599,14 @@ function Fi3(e) {
82530
82599
  `)}
82531
82600
  }`;
82532
82601
  }
82533
- function xF(e) {
82602
+ function CF(e) {
82534
82603
  const t = e.filter(Boolean).join(`
82535
82604
  `);
82536
82605
  return t ? ` context {
82537
82606
  ${t}
82538
82607
  }` : "";
82539
82608
  }
82540
- function CF(e, t) {
82609
+ function SF(e, t) {
82541
82610
  const n = Gc2(e), { rows: o2 = [], columns: i = [], values: r2 = [] } = import_lodash.get(n, "fields.pivot_data", {}), a = import_lodash.get(n, "settings.markdown_content") ?? "", s2 = import_lodash.get(n, "settings.misc.pagination_size", Ft3), l2 = !!import_lodash.get(n, "settings.others.include_empty_children_rows"), c3 = !!import_lodash.get(n, "settings.others.row_total"), u = !!import_lodash.get(n, "settings.others.column_total"), d2 = !!import_lodash.get(n, "settings.others.sub_total"), m3 = import_lodash.get(n, "settings.sort"), h2 = import_lodash.get(n, "settings.pop_settings"), f3 = o2.length ? `rows: [${o2.map((te3) => Y2(te3, t))}]` : "", g3 = i.length ? `columns: [${i.map((te3) => Y2(te3, t))}]` : "", b2 = r2.length ? `values: [${r2.map((te3) => Y2(te3, t))}]` : "", x2 = s2 !== undefined && s2 !== Ft3 ? `pagination_size: ${s2}` : "", w2 = l2 ? `show_row_with_no_data: ${l2}` : "", v2 = c3 ? `show_row_total: ${c3}` : "", A = u ? `show_column_total: ${u}` : "", C2 = d2 ? `show_sub_total: ${d2}` : "", P2 = Po3(m3) ? `sorts: ${Po3(m3)}` : "", y2 = h2 ? Di2(h2, t) : undefined, k2 = y2 ? `pop ${y2}` : "", D = zt3(n.settings), E2 = D ? `row_limit: ${D}` : "", U2 = _t3(n.settings.aggregate_awareness), G3 = n.settings.analysis_interactions ? no2(n.settings.analysis_interactions) : "", W = yt3([
82542
82611
  x2,
82543
82612
  w2,
@@ -82563,7 +82632,7 @@ function ou2(e, t, n) {
82563
82632
  const o2 = t.find((A) => A.id === e.dataset_id || A.name === e.dataset_id);
82564
82633
  if (!o2)
82565
82634
  throw new Error(`Referencing to an invalid dataset (id: ${e.dataset_id})`);
82566
- const i = `dataset: ${n?.datasetAsRef ? `${o2.name}` : `${_2(o2.name)}`}`, r2 = bD(e.viz_setting, o2, n), a = e.viz_setting.filters?.length ? CD(e.viz_setting.filters, o2) : "", s2 = e.viz_setting.amql?.filters?.length ? ED(e.viz_setting.amql?.filters, o2) : "", l2 = s2 ? `filter_groups: ${s2}` : "", c3 = e.viz_setting.amql?.conditions ?? [], [u, d2] = import_lodash.partition(c3, (A) => A.is_measure_condition), m3 = d2.length ? Bm2(d2) : "", h2 = u.length ? Bm2(u) : "", f3 = WA2(e.theme), g3 = f3 ? j4("theme", f3) : "", b2 = e.viz_setting.context?.analysis ? OD(e.viz_setting.context.analysis, o2) : "", x2 = xF([b2]), w2 = [
82635
+ const i = `dataset: ${n?.datasetAsRef ? `${o2.name}` : `${_2(o2.name)}`}`, r2 = wD(e.viz_setting, o2, n), a = e.viz_setting.filters?.length ? SD(e.viz_setting.filters, o2) : "", s2 = e.viz_setting.amql?.filters?.length ? TD(e.viz_setting.amql?.filters, o2) : "", l2 = s2 ? `filter_groups: ${s2}` : "", c3 = e.viz_setting.amql?.conditions ?? [], [u, d2] = import_lodash.partition(c3, (A) => A.is_measure_condition), m3 = d2.length ? Bm2(d2) : "", h2 = u.length ? Bm2(u) : "", f3 = WA2(e.theme), g3 = f3 ? j4("theme", f3) : "", b2 = e.viz_setting.context?.analysis ? zD(e.viz_setting.context.analysis, o2) : "", x2 = CF([b2]), w2 = [
82567
82636
  i,
82568
82637
  r2,
82569
82638
  a,
@@ -82576,7 +82645,7 @@ function ou2(e, t, n) {
82576
82645
  `), v2 = e.viz_setting.viz_type;
82577
82646
  switch (v2) {
82578
82647
  case "data_table": {
82579
- const A = BD(e.viz_setting, o2);
82648
+ const A = ID2(e.viz_setting, o2);
82580
82649
  return ` DataTable {
82581
82650
  ${[
82582
82651
  w2,
@@ -82586,7 +82655,7 @@ function ou2(e, t, n) {
82586
82655
  }`;
82587
82656
  }
82588
82657
  case "pivot_table": {
82589
- const A = zD(e.viz_setting, o2);
82658
+ const A = VD(e.viz_setting, o2);
82590
82659
  return ` PivotTable {
82591
82660
  ${[
82592
82661
  w2,
@@ -82600,7 +82669,7 @@ function ou2(e, t, n) {
82600
82669
  case "column_chart":
82601
82670
  case "area_chart":
82602
82671
  case "combination_chart": {
82603
- const A = HD(e.viz_setting, o2), C2 = [
82672
+ const A = QD(e.viz_setting, o2), C2 = [
82604
82673
  w2,
82605
82674
  A
82606
82675
  ].filter(Boolean).join(`
@@ -82612,7 +82681,7 @@ function ou2(e, t, n) {
82612
82681
  case "pie_chart":
82613
82682
  case "pyramid_chart":
82614
82683
  case "funnel_chart": {
82615
- const A = QD(e.viz_setting, o2), C2 = [
82684
+ const A = WD(e.viz_setting, o2), C2 = [
82616
82685
  w2,
82617
82686
  A
82618
82687
  ].filter(Boolean).join(`
@@ -82623,7 +82692,7 @@ function ou2(e, t, n) {
82623
82692
  }
82624
82693
  case "bubble_chart":
82625
82694
  case "scatter_chart": {
82626
- const A = WD(e.viz_setting, o2), C2 = [
82695
+ const A = qD(e.viz_setting, o2), C2 = [
82627
82696
  w2,
82628
82697
  A
82629
82698
  ].filter(Boolean).join(`
@@ -82633,7 +82702,7 @@ function ou2(e, t, n) {
82633
82702
  }`;
82634
82703
  }
82635
82704
  case "retention_heatmap": {
82636
- const A = qD(e.viz_setting, o2), C2 = [
82705
+ const A = YD(e.viz_setting, o2), C2 = [
82637
82706
  w2,
82638
82707
  A
82639
82708
  ].filter(Boolean).join(`
@@ -82643,7 +82712,7 @@ function ou2(e, t, n) {
82643
82712
  }`;
82644
82713
  }
82645
82714
  case "new_conversion_funnel": {
82646
- const A = YD(e.viz_setting, o2);
82715
+ const A = JD(e.viz_setting, o2);
82647
82716
  return ` ConversionFunnel {
82648
82717
  ${[
82649
82718
  w2,
@@ -82653,7 +82722,7 @@ function ou2(e, t, n) {
82653
82722
  }`;
82654
82723
  }
82655
82724
  case "metric_sheet": {
82656
- const A = ZD(e.viz_setting, o2);
82725
+ const A = XD(e.viz_setting, o2);
82657
82726
  return ` MetricSheet {
82658
82727
  ${[
82659
82728
  w2,
@@ -82663,7 +82732,7 @@ function ou2(e, t, n) {
82663
82732
  }`;
82664
82733
  }
82665
82734
  case "metric_kpi": {
82666
- const A = eF(e.viz_setting, o2);
82735
+ const A = tF(e.viz_setting, o2);
82667
82736
  return ` MetricKpi {
82668
82737
  ${[
82669
82738
  w2,
@@ -82673,7 +82742,7 @@ function ou2(e, t, n) {
82673
82742
  }`;
82674
82743
  }
82675
82744
  case "wordcloud": {
82676
- const A = tF(e.viz_setting, o2);
82745
+ const A = nF(e.viz_setting, o2);
82677
82746
  return ` WordCloud {
82678
82747
  ${[
82679
82748
  w2,
@@ -82683,7 +82752,7 @@ function ou2(e, t, n) {
82683
82752
  }`;
82684
82753
  }
82685
82754
  case "solid_gauge": {
82686
- const A = nF(e.viz_setting, o2);
82755
+ const A = oF(e.viz_setting, o2);
82687
82756
  return ` GaugeChart {
82688
82757
  ${[
82689
82758
  w2,
@@ -82693,7 +82762,7 @@ function ou2(e, t, n) {
82693
82762
  }`;
82694
82763
  }
82695
82764
  case "radar_chart": {
82696
- const A = oF(e.viz_setting, o2);
82765
+ const A = iF(e.viz_setting, o2);
82697
82766
  return ` RadarChart {
82698
82767
  ${[
82699
82768
  w2,
@@ -82704,7 +82773,7 @@ function ou2(e, t, n) {
82704
82773
  }
82705
82774
  case "heatmap":
82706
82775
  case "point_map": {
82707
- const A = cF(e.viz_setting, o2), C2 = [
82776
+ const A = uF(e.viz_setting, o2), C2 = [
82708
82777
  w2,
82709
82778
  A
82710
82779
  ].filter(Boolean).join(`
@@ -82714,7 +82783,7 @@ function ou2(e, t, n) {
82714
82783
  }`;
82715
82784
  }
82716
82785
  case "filled_map": {
82717
- const A = _F(e.viz_setting, o2);
82786
+ const A = yF(e.viz_setting, o2);
82718
82787
  return ` FilledMap {
82719
82788
  ${[
82720
82789
  w2,
@@ -82724,7 +82793,7 @@ function ou2(e, t, n) {
82724
82793
  }`;
82725
82794
  }
82726
82795
  case "custom": {
82727
- const A = yF(e.viz_setting, o2);
82796
+ const A = bF(e.viz_setting, o2);
82728
82797
  return ` CustomChart {
82729
82798
  ${[
82730
82799
  w2,
@@ -82734,7 +82803,7 @@ function ou2(e, t, n) {
82734
82803
  }`;
82735
82804
  }
82736
82805
  case "markdown": {
82737
- const A = CF(e.viz_setting, o2);
82806
+ const A = SF(e.viz_setting, o2);
82738
82807
  return ` MarkdownViz {
82739
82808
  ${[
82740
82809
  w2,
@@ -82750,7 +82819,7 @@ function ou2(e, t, n) {
82750
82819
  function qA2(e) {
82751
82820
  return `'${e.uname}'`;
82752
82821
  }
82753
- function SF(e, t) {
82822
+ function EF(e, t) {
82754
82823
  if (import_lodash.isEmpty(e.sources))
82755
82824
  throw new Error("CustomDrillthroughSource `sources` must not be empty.");
82756
82825
  let n;
@@ -82776,7 +82845,7 @@ function SF(e, t) {
82776
82845
  `)}
82777
82846
  }`;
82778
82847
  }
82779
- function EF(e) {
82848
+ function TF(e) {
82780
82849
  return import_lodash.isEmpty(e.excluded_sources) ? "AutoDrillthroughSource {}" : `AutoDrillthroughSource {
82781
82850
  excluded_sources: [
82782
82851
  ${(e.excluded_sources || []).map((t) => qA2(t)).join(`,
@@ -82784,7 +82853,7 @@ function EF(e) {
82784
82853
  ]
82785
82854
  }`;
82786
82855
  }
82787
- function TF({
82856
+ function BF({
82788
82857
  drillthrough: e,
82789
82858
  enable_drillthrough: t,
82790
82859
  datasets: n
@@ -82796,9 +82865,9 @@ function TF({
82796
82865
  throw new Error("Drillthrough: `sources` must not be empty.");
82797
82866
  const i = `enabled: ${o2.enabled}`, r2 = o2.sources.map((s2) => {
82798
82867
  if (s2.type === "CustomDrillthroughSource")
82799
- return SF(s2, n);
82868
+ return EF(s2, n);
82800
82869
  if (s2.type === "AutoDrillthroughSource")
82801
- return EF(s2);
82870
+ return TF(s2);
82802
82871
  throw new Error("Invalid Drillthrough source.");
82803
82872
  }).join(`,
82804
82873
  `), a = import_lodash.isEmpty(r2) ? "sources: []" : `sources: [${r2}]`;
@@ -82807,10 +82876,10 @@ function TF({
82807
82876
  `)}
82808
82877
  }`;
82809
82878
  }
82810
- function BF(e) {
82879
+ function IF(e) {
82811
82880
  return Object.entries(pc2).find(([, t]) => t === e)?.[0];
82812
82881
  }
82813
- function IF(e) {
82882
+ function PF(e) {
82814
82883
  return Object.entries(dc2).find(([, t]) => t === e)?.[0];
82815
82884
  }
82816
82885
  function YA2(e) {
@@ -82823,7 +82892,7 @@ function JA2(e) {
82823
82892
  if (!(!e || typeof e != "string"))
82824
82893
  return `${_2(e)}`;
82825
82894
  }
82826
- function PF({
82895
+ function DF({
82827
82896
  options: e,
82828
82897
  modifier: t,
82829
82898
  operator: n,
@@ -82834,8 +82903,8 @@ function PF({
82834
82903
  if (!(["top", "bottom"].includes(n) && t && typeof t == "object"))
82835
82904
  return "";
82836
82905
  }
82837
- function DF(e, t) {
82838
- const n = e.operator ? `operator: ${_2(e.operator)}` : "", o2 = `value: ${YA2(e.values)}`, i = JA2(e.modifier), r2 = i ? `modifier: ${i}` : "", a = PF({
82906
+ function FF(e, t) {
82907
+ const n = e.operator ? `operator: ${_2(e.operator)}` : "", o2 = `value: ${YA2(e.values)}`, i = JA2(e.modifier), r2 = i ? `modifier: ${i}` : "", a = DF({
82839
82908
  options: e.options,
82840
82909
  modifier: e.modifier,
82841
82910
  operator: e.operator,
@@ -82857,7 +82926,7 @@ function Ul2(e, t, n) {
82857
82926
  filter_source: i,
82858
82927
  default_condition: r2,
82859
82928
  input_type: a
82860
- } = e, s2 = i.source_type === "DmFieldFilterSource" ? "field" : IF(o2);
82929
+ } = e, s2 = i.source_type === "DmFieldFilterSource" ? "field" : PF(o2);
82861
82930
  if (!s2)
82862
82931
  throw new Error(`Invalid filter type: ${o2}`);
82863
82932
  const l2 = `type: ${_2(s2)}`;
@@ -82881,12 +82950,12 @@ function Ul2(e, t, n) {
82881
82950
  }`);
82882
82951
  let u = "";
82883
82952
  if (r2 && !import_lodash.isEmpty(r2)) {
82884
- const v2 = DF(r2);
82953
+ const v2 = FF(r2);
82885
82954
  u = v2 ? ` default {
82886
82955
  ${v2}
82887
82956
  }` : "";
82888
82957
  }
82889
- const d2 = n?.hide_label ? `hide_label: ${n.hide_label}` : "", m3 = n?.hide_controls ? `hide_controls: ${n.hide_controls}` : "", h2 = a ? BF(a) : undefined, f3 = h2 ? `input_type: ${_2(h2)}` : "", g3 = TF({ drillthrough: n?.drillthrough, enable_drillthrough: n?.enable_drillthrough, datasets: t }), b2 = g3 ? `drillthrough: ${g3}` : "", x2 = [
82958
+ const d2 = n?.hide_label ? `hide_label: ${n.hide_label}` : "", m3 = n?.hide_controls ? `hide_controls: ${n.hide_controls}` : "", h2 = a ? IF(a) : undefined, f3 = h2 ? `input_type: ${_2(h2)}` : "", g3 = BF({ drillthrough: n?.drillthrough, enable_drillthrough: n?.enable_drillthrough, datasets: t }), b2 = g3 ? `drillthrough: ${g3}` : "", x2 = [
82890
82959
  d2,
82891
82960
  m3,
82892
82961
  f3,
@@ -82931,7 +83000,7 @@ function ru2(e) {
82931
83000
  if (!(import_lodash.isNil(t) || t === "default"))
82932
83001
  return t === "" ? "default: 'none'" : `default: ${_2(String(t).split(" ")[1])}`;
82933
83002
  }
82934
- function FF(e) {
83003
+ function $F(e) {
82935
83004
  const t = e?.autorun_on_open;
82936
83005
  if (t !== undefined)
82937
83006
  return `autorun_on_open: ${!!t}`;
@@ -82941,7 +83010,7 @@ function FF(e) {
82941
83010
  function $i3(e) {
82942
83011
  if (!e || import_lodash.isEmpty(e))
82943
83012
  return;
82944
- const t = FF(e), n = e?.autorun_on_changes ? `autorun_on_changes: ${!!e.autorun_on_changes}` : "", o2 = e?.show_field_description ? `show_field_description: ${!!e.show_field_description}` : "", i = e?.timezone && _h2.includes(e.timezone) ? `timezone: ${_2(e.timezone)}` : "", r2 = e?.allow_timezone_change ? `allow_timezone_change: ${!!e?.allow_timezone_change}` : "", a = !import_lodash.isNil(e?.cache_duration) && import_lodash.isNumber(e?.cache_duration) && e?.cache_duration >= 10 ? `cache_duration: ${e.cache_duration}` : "";
83013
+ const t = $F(e), n = e?.autorun_on_changes ? `autorun_on_changes: ${!!e.autorun_on_changes}` : "", o2 = e?.show_field_description ? `show_field_description: ${!!e.show_field_description}` : "", i = e?.timezone && _h2.includes(e.timezone) ? `timezone: ${_2(e.timezone)}` : "", r2 = e?.allow_timezone_change ? `allow_timezone_change: ${!!e?.allow_timezone_change}` : "", a = !import_lodash.isNil(e?.cache_duration) && import_lodash.isNumber(e?.cache_duration) && e?.cache_duration >= 10 ? `cache_duration: ${e.cache_duration}` : "";
82945
83014
  return [
82946
83015
  i,
82947
83016
  r2,
@@ -82963,13 +83032,13 @@ function XA2(e, t) {
82963
83032
  }
82964
83033
  return _2(import_lodash.isNil(t) ? "" : String(t));
82965
83034
  }
82966
- function $F(e) {
83035
+ function LF(e) {
82967
83036
  return e == null ? "Unknown" : e?.__type__?.startsWith("Heredoc") ? `Heredoc['${e.name}']` : e?.__type__ === "Dataset" ? "Dataset" : e?.__type__ === "FieldRef" ? "VizFieldRef" : typeof e == "boolean" ? "Boolean" : typeof e == "number" ? "Number" : typeof e == "string" ? "String" : "Unknown";
82968
83037
  }
82969
83038
  function e_(e) {
82970
83039
  if (e == null)
82971
83040
  throw new Error("Unexpected undefined/null template argument");
82972
- const t = $F(e), n = BA2(t, e);
83041
+ const t = LF(e), n = BA2(t, e);
82973
83042
  return XA2(t, n);
82974
83043
  }
82975
83044
  function Br3(e, t) {
@@ -83158,7 +83227,7 @@ function s_(e) {
83158
83227
  `)}
83159
83228
  }`;
83160
83229
  }
83161
- function NF(e) {
83230
+ function MF(e) {
83162
83231
  const t = e.label ? `label: ${_2(e.label)}` : "", n = e.tabs.map((i) => {
83163
83232
  const r2 = i.type === "CanvasLayout" ? s_(i) : t_(i);
83164
83233
  return `tab ${i.uname}: ${r2}`;
@@ -83172,7 +83241,7 @@ function NF(e) {
83172
83241
  function zm2(e, t) {
83173
83242
  return `${e}: @html ${rt3(t, { sanitizeHeredocTermination: true, sanitizeTemplateString: true })};;`;
83174
83243
  }
83175
- function MF(e) {
83244
+ function RF(e) {
83176
83245
  const t = e.label ? `label: ${_2(e.label)}` : "", n = zm2("content", e.content ?? ""), o2 = typeof e.mobile == "string" ? zm2("mobile", e.mobile) : "";
83177
83246
  return ` HTMLLayout {
83178
83247
  ${[
@@ -83190,9 +83259,9 @@ function oo2(e) {
83190
83259
  case "CanvasLayout":
83191
83260
  return s_(e);
83192
83261
  case "TabLayout":
83193
- return NF(e);
83194
- case "HTMLLayout":
83195
83262
  return MF(e);
83263
+ case "HTMLLayout":
83264
+ return RF(e);
83196
83265
  default:
83197
83266
  throw new Error(`Invalid layout: ${e.type}`);
83198
83267
  }
@@ -83205,14 +83274,14 @@ var Vm2 = [
83205
83274
  "CrossFilterInteraction"
83206
83275
  ];
83207
83276
  var l_ = "$$";
83208
- var OF = {
83277
+ var zF = {
83209
83278
  FilterInteraction: "FilterInteraction",
83210
83279
  CrossFilterInteraction: "FilterInteraction",
83211
83280
  LinkedFilterInteraction: "FilterInteraction",
83212
83281
  PopInteraction: "PopInteraction",
83213
83282
  DateDrillInteraction: "DateDrillInteraction"
83214
83283
  };
83215
- function zF(e, t) {
83284
+ function VF(e, t) {
83216
83285
  if (import_lodash.isNil(e))
83217
83286
  return;
83218
83287
  if (typeof e == "string")
@@ -83222,24 +83291,24 @@ function zF(e, t) {
83222
83291
  throw new Error(`Referencing to an invalid data model (id: ${e})`);
83223
83292
  return n.name;
83224
83293
  }
83225
- function VF(e, t) {
83294
+ function GF(e, t) {
83226
83295
  return e.type === "CrossFilterInteraction" ? {} : {
83227
83296
  aggregation: e.type === "FilterInteraction" ? e.aggregation : undefined,
83228
83297
  field: gn3({
83229
83298
  data_set_id: String(e.field_path.data_set_id),
83230
- model_id: zF(e.field_path.model_id, t),
83299
+ model_id: VF(e.field_path.model_id, t),
83231
83300
  field_name: e.field_path.field_name,
83232
83301
  is_metric: e.field_path.is_metric
83233
83302
  })
83234
83303
  };
83235
83304
  }
83236
- function GF({ field: e, aggregation: t }) {
83305
+ function jF({ field: e, aggregation: t }) {
83237
83306
  return [
83238
83307
  e ? `${e.data_set_id}.${e.model_id ?? ""}.${e.field_name}.${e.is_metric ? "metric" : ""}` : "",
83239
83308
  t ?? ""
83240
83309
  ].join(l_);
83241
83310
  }
83242
- function jF(e, t) {
83311
+ function UF(e, t) {
83243
83312
  const n = t.find((o2) => String(o2.id) === e.data_set_id || o2.name === e.data_set_id);
83244
83313
  if (n)
83245
83314
  return Ot3(e, n);
@@ -83247,12 +83316,12 @@ function jF(e, t) {
83247
83316
  throw new Error(`Referencing to an invalid dataset (id: ${e.data_set_id})`);
83248
83317
  return `ref(${_2(String(e.model_id))}, ${_2(e.field_name)})`;
83249
83318
  }
83250
- function UF(e, t, n, { field: o2, aggregation: i }, r2) {
83319
+ function KF(e, t, n, { field: o2, aggregation: i }, r2) {
83251
83320
  const a = [
83252
83321
  `from: ${_2(t)}`,
83253
83322
  `to: [${n.map(_2).join(", ")}]`
83254
83323
  ];
83255
- return o2 && a.push(`field: ${jF(o2, r2)}`), i && a.push(`aggregation: ${_2(i)}`), ` ${e} { ${a.join(" ")} }`;
83324
+ return o2 && a.push(`field: ${UF(o2, r2)}`), i && a.push(`aggregation: ${_2(i)}`), ` ${e} { ${a.join(" ")} }`;
83256
83325
  }
83257
83326
  function c_(e) {
83258
83327
  return e.type !== "ErrorInteraction";
@@ -83260,7 +83329,7 @@ function c_(e) {
83260
83329
  function Zr3(e, t) {
83261
83330
  const n = /* @__PURE__ */ new Map;
83262
83331
  e.filter((i) => c_(i) && !i.disabled).forEach((i) => {
83263
- const r2 = VF(i, t), a = [i.type, i.from, GF(r2)].join(l_), s2 = n.get(a);
83332
+ const r2 = GF(i, t), a = [i.type, i.from, jF(r2)].join(l_), s2 = n.get(a);
83264
83333
  s2 ? s2.targets.push(i.to) : n.set(a, {
83265
83334
  type: i.type,
83266
83335
  from: i.from,
@@ -83268,7 +83337,7 @@ function Zr3(e, t) {
83268
83337
  targets: [i.to]
83269
83338
  });
83270
83339
  });
83271
- const o2 = Array.from(n.values()).sort((i, r2) => Vm2.indexOf(i.type) - Vm2.indexOf(r2.type)).map((i) => UF(OF[i.type], i.from, i.targets, i.props, t));
83340
+ const o2 = Array.from(n.values()).sort((i, r2) => Vm2.indexOf(i.type) - Vm2.indexOf(r2.type)).map((i) => KF(zF[i.type], i.from, i.targets, i.props, t));
83272
83341
  return o2.length > 0 ? `[
83273
83342
  ${o2.join(`,
83274
83343
  `)}
@@ -83409,14 +83478,14 @@ var Mi2 = Ce3;
83409
83478
  var aa2 = Ce3;
83410
83479
  var jo2 = Ce3;
83411
83480
  var Uo2 = Ce3;
83412
- var Q$ = {
83481
+ var W$ = {
83413
83482
  label: Ni2,
83414
83483
  description: ra3,
83415
83484
  theme: Vo2,
83416
83485
  settings: Go2,
83417
83486
  filter: Ae2
83418
83487
  };
83419
- var W$ = {
83488
+ var q$ = {
83420
83489
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83421
83490
  description: qe3({ amlPropName: "description", amlPropType: "text" }),
83422
83491
  theme({ diff: e, astPath: t }) {
@@ -83450,21 +83519,21 @@ var W$ = {
83450
83519
  }));
83451
83520
  }
83452
83521
  };
83453
- var q$ = {
83522
+ var Y$ = {
83454
83523
  label: Mi2,
83455
83524
  description: aa2,
83456
83525
  theme: jo2,
83457
83526
  settings: Uo2,
83458
83527
  filter: Ce3
83459
83528
  };
83460
- var Y$ = {
83529
+ var J$ = {
83461
83530
  label: Ni2,
83462
83531
  description: ra3,
83463
83532
  theme: Vo2,
83464
83533
  settings: Go2,
83465
83534
  viz: Ae2
83466
83535
  };
83467
- var J$ = {
83536
+ var Z$ = {
83468
83537
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83469
83538
  description: qe3({ amlPropName: "description", amlPropType: "text" }),
83470
83539
  theme({ diff: e, astPath: t }) {
@@ -83493,19 +83562,19 @@ var J$ = {
83493
83562
  })];
83494
83563
  }
83495
83564
  };
83496
- var Z$ = {
83565
+ var X$ = {
83497
83566
  label: Mi2,
83498
83567
  description: aa2,
83499
83568
  theme: jo2,
83500
83569
  settings: Uo2,
83501
83570
  viz: Ce3
83502
83571
  };
83503
- var X$ = {
83572
+ var eL = {
83504
83573
  theme: Vo2,
83505
83574
  settings: Go2,
83506
83575
  content: Ae2
83507
83576
  };
83508
- var eL = {
83577
+ var tL = {
83509
83578
  theme({ diff: e, astPath: t }) {
83510
83579
  const n = Nn3(e.newValue), o2 = n ? j4("theme", n) : undefined;
83511
83580
  return [Te3({
@@ -83530,19 +83599,19 @@ var eL = {
83530
83599
  })};;`
83531
83600
  })
83532
83601
  };
83533
- var tL = {
83602
+ var nL = {
83534
83603
  theme: jo2,
83535
83604
  settings: Uo2,
83536
83605
  content: Ce3
83537
83606
  };
83538
- var nL = {
83607
+ var oL = {
83539
83608
  label: Ni2,
83540
83609
  description: ra3,
83541
83610
  theme: Vo2,
83542
83611
  settings: Go2,
83543
83612
  pop: Ae2
83544
83613
  };
83545
- var oL = {
83614
+ var iL = {
83546
83615
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83547
83616
  description: qe3({ amlPropName: "description", amlPropType: "text" }),
83548
83617
  theme({ diff: e, astPath: t }) {
@@ -83569,21 +83638,21 @@ var oL = {
83569
83638
  })];
83570
83639
  }
83571
83640
  };
83572
- var iL = {
83641
+ var rL = {
83573
83642
  label: Mi2,
83574
83643
  description: aa2,
83575
83644
  theme: jo2,
83576
83645
  settings: Uo2,
83577
83646
  pop: Ce3
83578
83647
  };
83579
- var rL = {
83648
+ var aL = {
83580
83649
  label: Ni2,
83581
83650
  description: ra3,
83582
83651
  theme: Vo2,
83583
83652
  settings: Go2,
83584
83653
  date_drill: Ae2
83585
83654
  };
83586
- var aL = {
83655
+ var sL = {
83587
83656
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83588
83657
  description: qe3({ amlPropName: "description", amlPropType: "text" }),
83589
83658
  theme({ diff: e, astPath: t }) {
@@ -83610,28 +83679,28 @@ var aL = {
83610
83679
  })];
83611
83680
  }
83612
83681
  };
83613
- var sL = {
83682
+ var lL = {
83614
83683
  label: Mi2,
83615
83684
  description: aa2,
83616
83685
  theme: jo2,
83617
83686
  settings: Uo2,
83618
83687
  date_drill: Ce3
83619
83688
  };
83620
- var lL = {
83689
+ var cL = {
83621
83690
  sanitizeHeredocTermination: true,
83622
83691
  sanitizeTemplateString: true
83623
83692
  };
83624
- var cL = {
83693
+ var uL = {
83625
83694
  label: Ni2,
83626
83695
  prompt: Ae2,
83627
83696
  settings: Go2,
83628
83697
  theme: Vo2
83629
83698
  };
83630
- var uL = {
83699
+ var dL = {
83631
83700
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83632
83701
  prompt: qe3({
83633
83702
  amlPropName: "prompt",
83634
- propDiffToAml: ({ diff: e }) => `@md ${rt3(e.newValue || "", lL)};;`
83703
+ propDiffToAml: ({ diff: e }) => `@md ${rt3(e.newValue || "", cL)};;`
83635
83704
  }),
83636
83705
  settings({ diff: e, astPath: t }) {
83637
83706
  const n = e.newValue, o2 = Mt3(n);
@@ -83650,7 +83719,7 @@ var uL = {
83650
83719
  })];
83651
83720
  }
83652
83721
  };
83653
- var dL = {
83722
+ var pL = {
83654
83723
  label: Mi2,
83655
83724
  prompt: Ce3,
83656
83725
  settings: Uo2,
@@ -83658,37 +83727,37 @@ var dL = {
83658
83727
  };
83659
83728
  var su2 = {
83660
83729
  FilterBlock: {
83661
- comparator: Q$,
83662
- generator: W$,
83663
- applicator: q$
83730
+ comparator: W$,
83731
+ generator: q$,
83732
+ applicator: Y$
83664
83733
  },
83665
83734
  VizBlock: {
83666
- comparator: Y$,
83667
- generator: J$,
83668
- applicator: Z$
83735
+ comparator: J$,
83736
+ generator: Z$,
83737
+ applicator: X$
83669
83738
  },
83670
83739
  TextBlock: {
83671
- comparator: X$,
83672
- generator: eL,
83673
- applicator: tL
83740
+ comparator: eL,
83741
+ generator: tL,
83742
+ applicator: nL
83674
83743
  },
83675
83744
  PopBlock: {
83676
- comparator: nL,
83677
- generator: oL,
83678
- applicator: iL
83745
+ comparator: oL,
83746
+ generator: iL,
83747
+ applicator: rL
83679
83748
  },
83680
83749
  DateDrillBlock: {
83681
- comparator: rL,
83682
- generator: aL,
83683
- applicator: sL
83750
+ comparator: aL,
83751
+ generator: sL,
83752
+ applicator: lL
83684
83753
  },
83685
83754
  AiBlock: {
83686
- comparator: cL,
83687
- generator: uL,
83688
- applicator: dL
83755
+ comparator: uL,
83756
+ generator: dL,
83757
+ applicator: pL
83689
83758
  }
83690
83759
  };
83691
- var mL = (e) => {
83760
+ var hL = (e) => {
83692
83761
  const { diff: t, astPath: n, context: o2 } = e;
83693
83762
  return ro2({
83694
83763
  diff: t,
@@ -83697,7 +83766,7 @@ var mL = (e) => {
83697
83766
  generator: su2[t.newValue.type].generator
83698
83767
  });
83699
83768
  };
83700
- var gL = ({ diff: e, context: t, astPath: n }) => ia2({
83769
+ var AL = ({ diff: e, context: t, astPath: n }) => ia2({
83701
83770
  diff: e,
83702
83771
  astPath: [...n, "block"],
83703
83772
  context: t,
@@ -83715,14 +83784,14 @@ var gL = ({ diff: e, context: t, astPath: n }) => ia2({
83715
83784
  text: a ?? ""
83716
83785
  })];
83717
83786
  }
83718
- return mL({
83787
+ return hL({
83719
83788
  diff: o2,
83720
83789
  astPath: i,
83721
83790
  context: { ...t, blockDiff: o2 }
83722
83791
  });
83723
83792
  }
83724
83793
  });
83725
- var yL = ({ diff: e, astPath: t, context: n }) => {
83794
+ var bL = ({ diff: e, astPath: t, context: n }) => {
83726
83795
  const o2 = Object.values(e.newValue), i = au2(o2, n.datasets);
83727
83796
  return [
83728
83797
  Te3({
@@ -83735,7 +83804,7 @@ var yL = ({ diff: e, astPath: t, context: n }) => {
83735
83804
  })
83736
83805
  ];
83737
83806
  };
83738
- var VL = (e) => ("fieldsDiff" in e.diff) ? ro2({
83807
+ var GL = (e) => ("fieldsDiff" in e.diff) ? ro2({
83739
83808
  diff: e.diff,
83740
83809
  context: e.context,
83741
83810
  astPath: [...e.astPath, "mobile"],
@@ -83756,7 +83825,7 @@ var VL = (e) => ("fieldsDiff" in e.diff) ? ro2({
83756
83825
  path: [...e.astPath, "mobile"],
83757
83826
  text: n_(e.diff.newValue)
83758
83827
  })];
83759
- var GL = {
83828
+ var jL = {
83760
83829
  label: qe3({ amlPropName: "label", amlPropType: "text" }),
83761
83830
  width: qe3({
83762
83831
  amlPropName: "width",
@@ -83799,7 +83868,7 @@ var GL = {
83799
83868
  }),
83800
83869
  auto_expand_vertically: qe3({ amlPropName: "auto_expand_vertically", amlPropType: "boolean" }),
83801
83870
  auto_expand_horizontally: qe3({ amlPropName: "auto_expand_horizontally", amlPropType: "boolean" }),
83802
- mobile: VL,
83871
+ mobile: GL,
83803
83872
  default_zoom: qe3({
83804
83873
  amlPropName: "default_zoom",
83805
83874
  propDiffToAml: ({ diff: e }) => o_(e.newValue),
@@ -83810,9 +83879,9 @@ var y_ = ({ diff: e, astPath: t, context: n }) => ro2({
83810
83879
  diff: e,
83811
83880
  astPath: t,
83812
83881
  context: n,
83813
- generator: GL
83882
+ generator: jL
83814
83883
  });
83815
- var jL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? y_({
83884
+ var UL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? y_({
83816
83885
  diff: e,
83817
83886
  astPath: t,
83818
83887
  context: n
@@ -83820,7 +83889,7 @@ var jL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? y_({
83820
83889
  path: t,
83821
83890
  text: `tab ${e.newValue.uname}: ${oo2(e.newValue)}`
83822
83891
  })];
83823
- var UL = {
83892
+ var KL = {
83824
83893
  label: qe3({
83825
83894
  amlPropName: "label",
83826
83895
  amlPropType: "text",
@@ -83832,12 +83901,12 @@ var UL = {
83832
83901
  astPath: [...t, "tab"],
83833
83902
  context: n,
83834
83903
  newItemToAmlCode: (o2, i) => `tab ${i}: ${oo2(o2)}`,
83835
- generateEventsForItemDiff: jL
83904
+ generateEventsForItemDiff: UL
83836
83905
  });
83837
83906
  }
83838
83907
  };
83839
- var KL = (e) => ro2({ ...e, generator: UL });
83840
- var HL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? e.newValue.type === "TabLayout" ? KL({
83908
+ var HL = (e) => ro2({ ...e, generator: KL });
83909
+ var QL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? e.newValue.type === "TabLayout" ? HL({
83841
83910
  diff: e,
83842
83911
  astPath: [...t, "view"],
83843
83912
  context: n
@@ -83849,7 +83918,7 @@ var HL = ({ diff: e, astPath: t, context: n }) => ("fieldsDiff" in e) ? e.newVal
83849
83918
  path: [...t, "view"],
83850
83919
  text: `view: ${oo2(e.newValue)}`
83851
83920
  })];
83852
- var WL = {
83921
+ var qL = {
83853
83922
  title: qe3({
83854
83923
  amlPropName: "title",
83855
83924
  amlPropType: "text"
@@ -83858,9 +83927,9 @@ var WL = {
83858
83927
  amlPropName: "description",
83859
83928
  propDiffToAml: ({ diff: e }) => qt3(e.newValue)
83860
83929
  }),
83861
- blocks: gL,
83862
- interactions: yL,
83863
- views: HL,
83930
+ blocks: AL,
83931
+ interactions: bL,
83932
+ views: QL,
83864
83933
  settings: ({ diff: e, astPath: t }) => {
83865
83934
  const n = $i3(e.newValue);
83866
83935
  return [Te3({
@@ -83878,7 +83947,7 @@ var WL = {
83878
83947
  })];
83879
83948
  }
83880
83949
  };
83881
- function mN(e, t, n) {
83950
+ function hN(e, t, n) {
83882
83951
  const o2 = e.symbol(t.id);
83883
83952
  if (o2.isErr())
83884
83953
  return n;
@@ -83905,11 +83974,11 @@ function mN(e, t, n) {
83905
83974
  });
83906
83975
  }), s2;
83907
83976
  }
83908
- var hN = {
83977
+ var fN = {
83909
83978
  name: "UniqueDynamicProp",
83910
83979
  hooks: {
83911
83980
  typecheck: {
83912
- handler: mN,
83981
+ handler: hN,
83913
83982
  strategy: sr.EXTEND_BUILTIN
83914
83983
  }
83915
83984
  }
@@ -83927,7 +83996,7 @@ var vi2 = (e, t) => {
83927
83996
  const i = e.symbolReference(o2.id);
83928
83997
  return i.isOk() && (o2 = i.unwrap()), o2 instanceof _ && o2.declarationId ? e.nodeById(o2.declarationId) : undefined;
83929
83998
  };
83930
- var fN = (e, t) => {
83999
+ var gN = (e, t) => {
83931
84000
  const n = t.body.exprList.map((o2) => {
83932
84001
  const i = vi2(e, o2);
83933
84002
  if (i && i instanceof B && i.body instanceof z) {
@@ -83949,7 +84018,7 @@ var fN = (e, t) => {
83949
84018
  });
83950
84019
  return import_lodash.compact(n);
83951
84020
  };
83952
- var gN = (e, t) => {
84021
+ var AN = (e, t) => {
83953
84022
  const n = t.map((o2) => {
83954
84023
  if (!o2.body || !(o2.body instanceof z))
83955
84024
  return;
@@ -83967,11 +84036,11 @@ var gN = (e, t) => {
83967
84036
  }) ?? [];
83968
84037
  return import_lodash.compact(n);
83969
84038
  };
83970
- var AN = (e, t, n) => [
83971
- ...fN(e, t),
83972
- ...gN(e, n)
84039
+ var _N = (e, t, n) => [
84040
+ ...gN(e, t),
84041
+ ...AN(e, n)
83973
84042
  ];
83974
- var _N = (e, t) => {
84043
+ var yN = (e, t) => {
83975
84044
  let n;
83976
84045
  if (t instanceof $)
83977
84046
  n = t;
@@ -83987,7 +84056,7 @@ var _N = (e, t) => {
83987
84056
  let i;
83988
84057
  return o2.body instanceof $ ? i = o2.body : i = vi2(e, o2.body), i;
83989
84058
  };
83990
- var yN = (e, t, n) => {
84059
+ var bN = (e, t, n) => {
83991
84060
  const o2 = e.split(".");
83992
84061
  if (o2.length === 1) {
83993
84062
  const s2 = qt(t, e, n, t);
@@ -84007,17 +84076,17 @@ var yN = (e, t, n) => {
84007
84076
  if (a instanceof nt)
84008
84077
  return a.moduleId.createIdForObjectInScope("").replaceAll("::", ".") + o2.slice(1).join(".");
84009
84078
  };
84010
- var bN = (e, t, n) => {
84079
+ var wN = (e, t, n) => {
84011
84080
  const o2 = Gn3(e, "model"), i = Gn3(e, "field");
84012
84081
  let r2, a = "", s2;
84013
- if (o2?.body instanceof Fe && (r2 = o2.body.text().slice(1, -1), a = yN(r2, t, n) || ""), i?.body instanceof Fe && (s2 = i.body.text().slice(1, -1)), r2 && s2)
84082
+ if (o2?.body instanceof Fe && (r2 = o2.body.text().slice(1, -1), a = bN(r2, t, n) || ""), i?.body instanceof Fe && (s2 = i.body.text().slice(1, -1)), r2 && s2)
84014
84083
  return {
84015
84084
  modelName: r2,
84016
84085
  modelFqn: a,
84017
84086
  fieldName: s2
84018
84087
  };
84019
84088
  };
84020
- var wN = (e, t) => !!t.find(({ modelFqn: n, fieldNames: o2 }) => {
84089
+ var vN = (e, t) => !!t.find(({ modelFqn: n, fieldNames: o2 }) => {
84021
84090
  const i = o2.includes(e.fieldName) || o2.includes("*");
84022
84091
  return n === e.modelFqn && i;
84023
84092
  });
@@ -84028,10 +84097,10 @@ var th2 = ({
84028
84097
  datasetNode: o2,
84029
84098
  db: i
84030
84099
  }) => {
84031
- const r2 = bN(e.body, o2, i);
84032
- return r2 ? wN(r2, t) ? true : w.createForNode(e.id, E.CustomTypeWarning, Dn(n, r2.modelName, r2.fieldName)) : true;
84100
+ const r2 = wN(e.body, o2, i);
84101
+ return r2 ? vN(r2, t) ? true : w.createForNode(e.id, E.CustomTypeWarning, Dn(n, r2.modelName, r2.fieldName)) : true;
84033
84102
  };
84034
- var vN = (e, t, n) => {
84103
+ var kN = (e, t, n) => {
84035
84104
  if (!(t instanceof B || t instanceof $))
84036
84105
  return n;
84037
84106
  const o2 = e.symbol(t.id);
@@ -84049,9 +84118,9 @@ var vN = (e, t, n) => {
84049
84118
  const c3 = Gn3(t, "models");
84050
84119
  if (!c3)
84051
84120
  return n;
84052
- const u = b_(t, "dimension") ?? [], d2 = AN(e, c3, u), m3 = n === m2.WrongKind ? [] : [...n];
84121
+ const u = b_(t, "dimension") ?? [], d2 = _N(e, c3, u), m3 = n === m2.WrongKind ? [] : [...n];
84053
84122
  return l2.body.exprList.forEach((h2) => {
84054
- const f3 = _N(e, h2);
84123
+ const f3 = yN(e, h2);
84055
84124
  if (!f3)
84056
84125
  return;
84057
84126
  const g3 = Gn3(f3, "from");
@@ -84078,11 +84147,11 @@ var vN = (e, t, n) => {
84078
84147
  w2 instanceof we && m3.push(w2);
84079
84148
  }), m3;
84080
84149
  };
84081
- var kN = {
84150
+ var xN = {
84082
84151
  name: "RelationshipCheck",
84083
84152
  hooks: {
84084
84153
  typecheck: {
84085
- handler: vN,
84154
+ handler: kN,
84086
84155
  strategy: sr.EXTEND_BUILTIN
84087
84156
  }
84088
84157
  }
@@ -84112,7 +84181,7 @@ function w_(e, t, n, o2) {
84112
84181
  c3 && s2.members.set("__refFqn__", c3);
84113
84182
  }
84114
84183
  }
84115
- function xN(e, t, n, o2) {
84184
+ function CN(e, t, n, o2) {
84116
84185
  const i = o2.members.get("group"), r2 = i?.members.get("length")?.data || 0;
84117
84186
  for (let a = 0;a < r2; a += 1) {
84118
84187
  const s2 = i?.data?.[a];
@@ -84121,17 +84190,17 @@ function xN(e, t, n, o2) {
84121
84190
  w_(e, t, n, s2);
84122
84191
  }
84123
84192
  }
84124
- function CN(e, t, n, o2) {
84193
+ function SN(e, t, n, o2) {
84125
84194
  const i = o2.members.get("view");
84126
84195
  if (i) {
84127
84196
  const r2 = i.members.get("length")?.data || 0;
84128
84197
  for (let a = 0;a < r2; ++a) {
84129
84198
  const s2 = i.data?.[a];
84130
- w_(e, t, n, s2), xN(e, t, n, s2);
84199
+ w_(e, t, n, s2), CN(e, t, n, s2);
84131
84200
  }
84132
84201
  }
84133
84202
  }
84134
- function SN(e, t, n, o2) {
84203
+ function EN(e, t, n, o2) {
84135
84204
  const i = o2.members.get("from")?.members.get("model")?.data, r2 = o2.members.get("to")?.members.get("model")?.data;
84136
84205
  if (typeof i != "string" || typeof r2 != "string")
84137
84206
  return;
@@ -84140,7 +84209,7 @@ function SN(e, t, n, o2) {
84140
84209
  const s2 = Hl2(e, t, n, r2);
84141
84210
  s2 && o2.members.get("to")?.members.set("__refFqn__", s2);
84142
84211
  }
84143
- function EN(e, t, n, o2) {
84212
+ function TN(e, t, n, o2) {
84144
84213
  const i = o2.members.get("relationships");
84145
84214
  if (i) {
84146
84215
  const r2 = i.members.get("length")?.data || 0;
@@ -84148,7 +84217,7 @@ function EN(e, t, n, o2) {
84148
84217
  const s2 = i.data?.[a];
84149
84218
  if (s2.type?.kind === x.ProductType && s2.type.name === "RelationshipConfig") {
84150
84219
  const l2 = s2.members.get("rel");
84151
- l2 && SN(e, t, n, l2);
84220
+ l2 && EN(e, t, n, l2);
84152
84221
  }
84153
84222
  }
84154
84223
  }
@@ -84157,16 +84226,16 @@ var Ql2 = (e, t, n) => {
84157
84226
  let i = e.moduleOfFile(l.create(t.id.filepath))?.id?.key ?? "";
84158
84227
  return i = i === "::" ? "" : `${i}::`, `${i}${n}`;
84159
84228
  };
84160
- var TN = (e) => e.replace(/\./g, "::");
84229
+ var BN = (e) => e.replace(/\./g, "::");
84161
84230
  var sa2 = (e, t, n) => new re(n, he.Warning, E.CustomTypeWarning.code, l.create(e.id.filepath), t.span().start, t.span().end);
84162
- var BN = (e, t, n, o2) => new re(o2, he.Warning, E.CustomTypeWarning.code, l.create(e.id.filepath), t, n);
84231
+ var IN = (e, t, n, o2) => new re(o2, he.Warning, E.CustomTypeWarning.code, l.create(e.id.filepath), t, n);
84163
84232
  var uu2 = (e, t) => {
84164
84233
  if (!(t instanceof B) || !(t.body instanceof z))
84165
84234
  return false;
84166
84235
  const n = e.symbol(t.id).chain((i) => e.specificType(i.id));
84167
84236
  return !(n.isErr() || n.unwrap()?.name !== "Dataset");
84168
84237
  };
84169
- var IN = (e, t) => {
84238
+ var PN = (e, t) => {
84170
84239
  if (!(t instanceof B) || !(t.body instanceof z))
84171
84240
  return false;
84172
84241
  const n = e.symbol(t.id).chain((i) => e.specificType(i.id));
@@ -84185,19 +84254,19 @@ var _n3 = (e, t) => e.body instanceof z ? e.body.body.filter((o2) => o2 instance
84185
84254
  node: o2
84186
84255
  };
84187
84256
  }) : [];
84188
- var PN = (e, t) => {
84257
+ var DN = (e, t) => {
84189
84258
  const n = e.symbol(t.id);
84190
84259
  if (n.isErr())
84191
84260
  return;
84192
84261
  const o2 = e.symbolReference(n.unwrap().id);
84193
84262
  return o2.isOk() ? o2.unwrap().id.key : n.unwrap().id.key;
84194
84263
  };
84195
- var DN = (e, t) => {
84264
+ var FN = (e, t) => {
84196
84265
  if (!uu2(e, t))
84197
84266
  return [];
84198
84267
  const n = [], o2 = /* @__PURE__ */ new Set;
84199
84268
  return du2(t).forEach((i) => {
84200
- const r2 = PN(e, i);
84269
+ const r2 = DN(e, i);
84201
84270
  if (r2)
84202
84271
  if (o2.has(r2)) {
84203
84272
  const a = sa2(t, i, `Duplicate model "${i.text()}".`);
@@ -84206,7 +84275,7 @@ var DN = (e, t) => {
84206
84275
  o2.add(r2);
84207
84276
  }), n;
84208
84277
  };
84209
- function FN(e, t, n, o2) {
84278
+ function $N(e, t, n, o2) {
84210
84279
  if (!no(e))
84211
84280
  return o2;
84212
84281
  if (!(e.elementName instanceof I))
@@ -84217,26 +84286,26 @@ function FN(e, t, n, o2) {
84217
84286
  if (!i || i.kind !== x.ProductType || i.name !== "Dataset")
84218
84287
  return o2;
84219
84288
  const { returnVal: r2 } = o2;
84220
- return CN(e, t, n, r2), EN(e, t, n, r2), o2;
84289
+ return SN(e, t, n, r2), TN(e, t, n, r2), o2;
84221
84290
  }
84222
- var $N = (e, t, n) => {
84291
+ var LN = (e, t, n) => {
84223
84292
  const o2 = n === m2.WrongKind ? [] : [...n];
84224
- return o2.push(...DN(e, t)), o2;
84293
+ return o2.push(...FN(e, t)), o2;
84225
84294
  };
84226
- var LN = {
84295
+ var NN = {
84227
84296
  name: "Dataset",
84228
84297
  hooks: {
84229
84298
  evaluate: {
84230
- handler: FN,
84299
+ handler: $N,
84231
84300
  strategy: sr.EXTEND_BUILTIN
84232
84301
  },
84233
84302
  typecheck: {
84234
- handler: $N,
84303
+ handler: LN,
84235
84304
  strategy: sr.EXTEND_BUILTIN
84236
84305
  }
84237
84306
  }
84238
84307
  };
84239
- var NN = (e, t) => {
84308
+ var MN = (e, t) => {
84240
84309
  if (!uu2(e, t))
84241
84310
  return [];
84242
84311
  const n = [], o2 = du2(t).map((a) => {
@@ -84251,16 +84320,16 @@ var NN = (e, t) => {
84251
84320
  n.push(l2);
84252
84321
  }), n;
84253
84322
  };
84254
- var MN = (e) => _n3(e, "dimension").map((o2) => {
84323
+ var RN = (e) => _n3(e, "dimension").map((o2) => {
84255
84324
  const i = _n3(o2.node, "model")[0];
84256
84325
  return {
84257
84326
  name: o2.name,
84258
- modelName: i?.name ? TN(i.name) : "",
84327
+ modelName: i?.name ? BN(i.name) : "",
84259
84328
  nodeSpan: o2.node.span(),
84260
84329
  node: o2.node
84261
84330
  };
84262
84331
  });
84263
- var RN = (e, t) => {
84332
+ var ON = (e, t) => {
84264
84333
  const n = (r2, a) => `${r2}.${a}`, o2 = [], i = /* @__PURE__ */ new Set;
84265
84334
  return t.forEach((r2) => {
84266
84335
  const a = n(r2.modelName, r2.name);
@@ -84271,7 +84340,7 @@ var RN = (e, t) => {
84271
84340
  i.add(a);
84272
84341
  }), o2;
84273
84342
  };
84274
- var ON = (e, t, n) => {
84343
+ var zN = (e, t, n) => {
84275
84344
  const o2 = [], r2 = du2(t).map((s2) => e.symbol(s2.id)).filter((s2) => s2.isOk()).map((s2) => s2.unwrap()).filter((s2) => s2 instanceof _ && !!s2.declarationId).map((s2) => e.nodeById(s2.declarationId)).filter((s2) => s2 instanceof B), a = {};
84276
84345
  return r2.forEach((s2) => {
84277
84346
  const l2 = _n3(s2, "dimension").map((d2) => d2.name), c3 = _n3(s2, "measure").map((d2) => d2.name), u = Ql2(e, s2, s2.elementName.text());
@@ -84283,32 +84352,32 @@ var ON = (e, t, n) => {
84283
84352
  o2.push(l2);
84284
84353
  }), o2;
84285
84354
  };
84286
- var zN = (e, t) => {
84355
+ var VN = (e, t) => {
84287
84356
  if (!uu2(e, t))
84288
84357
  return [];
84289
- const n = [], o2 = MN(t);
84290
- return n.push(...RN(t, o2)), n.push(...ON(e, t, o2)), n;
84358
+ const n = [], o2 = RN(t);
84359
+ return n.push(...ON(t, o2)), n.push(...zN(e, t, o2)), n;
84291
84360
  };
84292
- var VN = (e, t, n) => {
84361
+ var GN = (e, t, n) => {
84293
84362
  const o2 = n === m2.WrongKind ? [] : [...n];
84294
- return o2.push(...NN(e, t)), o2.push(...zN(e, t)), o2;
84363
+ return o2.push(...MN(e, t)), o2.push(...VN(e, t)), o2;
84295
84364
  };
84296
- var GN = {
84365
+ var jN = {
84297
84366
  name: "AqlValidation",
84298
84367
  hooks: {
84299
84368
  typecheck: {
84300
- handler: VN,
84369
+ handler: GN,
84301
84370
  strategy: sr.EXTEND_BUILTIN
84302
84371
  }
84303
84372
  }
84304
84373
  };
84305
- var jN = (e) => {
84374
+ var UN = (e) => {
84306
84375
  const t = _n3(e, "template")[0];
84307
84376
  if (t && t.node.body instanceof He)
84308
84377
  return t.node.body;
84309
84378
  };
84310
- var UN = (e) => {
84311
- const t = jN(e);
84379
+ var KN = (e) => {
84380
+ const t = UN(e);
84312
84381
  if (!t)
84313
84382
  return [];
84314
84383
  const n = t.content.stringText(), o2 = ta2(n);
@@ -84320,9 +84389,9 @@ var UN = (e) => {
84320
84389
  ];
84321
84390
  };
84322
84391
  var hl2 = /@\{([a-zA-Z0-9._]+)\}/g;
84323
- var KN = /* @__PURE__ */ new Set(["name", "type", "format"]);
84324
- var HN = /* @__PURE__ */ new Set(["value"]);
84325
- var QN = "Allowed: values, fields.<name>.(name|type|format), options.<name>.value.";
84392
+ var HN = /* @__PURE__ */ new Set(["name", "type", "format"]);
84393
+ var QN = /* @__PURE__ */ new Set(["value"]);
84394
+ var WN = "Allowed: values, fields.<name>.(name|type|format), options.<name>.value.";
84326
84395
  var nh2 = "Allowed: fields.<name>.(name|type|format).";
84327
84396
  var oh2 = "Allowed: options.<name>.value.";
84328
84397
  var ih2 = (e, t, n) => {
@@ -84336,26 +84405,26 @@ var ih2 = (e, t, n) => {
84336
84405
  const i = _n3(o2.node, n);
84337
84406
  return new Set(i.map((r2) => r2.name));
84338
84407
  };
84339
- var WN = (e) => {
84408
+ var qN = (e) => {
84340
84409
  const t = _n3(e, "template")[0];
84341
84410
  if (t && t.node.body instanceof He)
84342
84411
  return t.node.body;
84343
84412
  };
84344
- var qN = (e, t, n) => {
84413
+ var YN = (e, t, n) => {
84345
84414
  if (e === "values")
84346
84415
  return;
84347
84416
  const o2 = e.split("."), [i, r2, a, ...s2] = o2;
84348
- return i === "fields" ? !r2 || !a || s2.length > 0 ? `Unknown template reference "@{${e}}". ${nh2}` : t.has(r2) ? KN.has(a) ? undefined : `Unknown template reference "@{${e}}". ${nh2}` : `Unknown template reference "@{${e}}". "${r2}" is not a declared field.` : i === "options" ? !r2 || !a || s2.length > 0 ? `Unknown template reference "@{${e}}". ${oh2}` : n.has(r2) ? HN.has(a) ? undefined : `Unknown template reference "@{${e}}". ${oh2}` : `Unknown template reference "@{${e}}". "${r2}" is not a declared option.` : `Unknown template reference "@{${e}}". ${QN}`;
84417
+ return i === "fields" ? !r2 || !a || s2.length > 0 ? `Unknown template reference "@{${e}}". ${nh2}` : t.has(r2) ? HN.has(a) ? undefined : `Unknown template reference "@{${e}}". ${nh2}` : `Unknown template reference "@{${e}}". "${r2}" is not a declared field.` : i === "options" ? !r2 || !a || s2.length > 0 ? `Unknown template reference "@{${e}}". ${oh2}` : n.has(r2) ? QN.has(a) ? undefined : `Unknown template reference "@{${e}}". ${oh2}` : `Unknown template reference "@{${e}}". "${r2}" is not a declared option.` : `Unknown template reference "@{${e}}". ${WN}`;
84349
84418
  };
84350
- var YN = (e) => {
84351
- const t = WN(e);
84419
+ var JN = (e) => {
84420
+ const t = qN(e);
84352
84421
  if (!t)
84353
84422
  return [];
84354
84423
  const n = ih2(e, "fields", "field"), o2 = ih2(e, "options", "option"), i = t.content.stringText(), r2 = t.content.span().start, a = l.create(e.id.filepath), s2 = [];
84355
84424
  hl2.lastIndex = 0;
84356
84425
  let l2 = hl2.exec(i);
84357
84426
  for (;l2 !== null; ) {
84358
- const c3 = l2[1], u = qN(c3, n, o2);
84427
+ const c3 = l2[1], u = YN(c3, n, o2);
84359
84428
  if (u) {
84360
84429
  const d2 = r2 + l2.index, m3 = d2 + l2[0].length;
84361
84430
  s2.push(new re(u, he.Warning, E.CustomTypeWarning.code, a, d2, m3));
@@ -84364,20 +84433,20 @@ var YN = (e) => {
84364
84433
  }
84365
84434
  return s2;
84366
84435
  };
84367
- var JN = (e, t, n) => {
84436
+ var ZN = (e, t, n) => {
84368
84437
  const o2 = n === m2.WrongKind ? [] : [...n];
84369
- return IN(e, t) && (o2.push(...UN(t)), o2.push(...YN(t))), o2;
84438
+ return PN(e, t) && (o2.push(...KN(t)), o2.push(...JN(t))), o2;
84370
84439
  };
84371
- var ZN = {
84440
+ var XN = {
84372
84441
  name: "CustomChartTemplateValidation",
84373
84442
  hooks: {
84374
84443
  typecheck: {
84375
- handler: JN,
84444
+ handler: ZN,
84376
84445
  strategy: sr.EXTEND_BUILTIN
84377
84446
  }
84378
84447
  }
84379
84448
  };
84380
- function XN(e, t, n, o2) {
84449
+ function eM(e, t, n, o2) {
84381
84450
  if (!no(e))
84382
84451
  return o2;
84383
84452
  if (!(e.elementName instanceof I))
@@ -84395,18 +84464,18 @@ function XN(e, t, n, o2) {
84395
84464
  l2.members.set("__childIdx__", new Et(s2)), s2++;
84396
84465
  }), o2;
84397
84466
  }
84398
- var eM = {
84467
+ var tM = {
84399
84468
  name: "OrderDictType",
84400
84469
  hooks: {
84401
84470
  evaluate: {
84402
- handler: XN,
84471
+ handler: eM,
84403
84472
  strategy: sr.EXTEND_BUILTIN
84404
84473
  }
84405
84474
  }
84406
84475
  };
84407
- function tM(e, t) {
84476
+ function nM(e, t) {
84408
84477
  const n = new Set(t);
84409
- return AD(e).filter((o2) => !n.has(o2.name));
84478
+ return _D(e).filter((o2) => !n.has(o2.name));
84410
84479
  }
84411
84480
  function v_(e, t) {
84412
84481
  return e ? e.body.filter((n) => (n instanceof B || n instanceof $) && n.elementType instanceof I && n.elementType.value.value === t) : [];
@@ -84414,7 +84483,7 @@ function v_(e, t) {
84414
84483
  function k_(e, t) {
84415
84484
  return v_(e, t)[0];
84416
84485
  }
84417
- function nM(e) {
84486
+ function oM(e) {
84418
84487
  const { elements: t } = e.content;
84419
84488
  if (t.length !== 1)
84420
84489
  return;
@@ -84427,7 +84496,7 @@ function nM(e) {
84427
84496
  locate: (i) => o2 + i
84428
84497
  };
84429
84498
  }
84430
- function oM(e, t) {
84499
+ function iM(e, t) {
84431
84500
  if (!(t instanceof B))
84432
84501
  return false;
84433
84502
  const n = e.symbol(t.id);
@@ -84439,10 +84508,10 @@ function oM(e, t) {
84439
84508
  const i = e.specificType(o2.id);
84440
84509
  return i.isErr() ? false : i.unwrap().name === "Dashboard";
84441
84510
  }
84442
- function iM(e) {
84511
+ function rM(e) {
84443
84512
  return v_(e, "block").filter((t) => t instanceof B).map((t) => t.elementName.text());
84444
84513
  }
84445
- function rM(e) {
84514
+ function aM(e) {
84446
84515
  const t = e.body;
84447
84516
  if (!(t instanceof $))
84448
84517
  return [];
@@ -84461,36 +84530,36 @@ function rM(e) {
84461
84530
  a instanceof He && o2.push({ field: i, heredocNode: a });
84462
84531
  }), o2;
84463
84532
  }
84464
- var aM = (e, t, n) => {
84465
- if (!oM(e, t) || !(t.body instanceof z))
84533
+ var sM = (e, t, n) => {
84534
+ if (!iM(e, t) || !(t.body instanceof z))
84466
84535
  return n;
84467
84536
  const o2 = k_(t.body, "view");
84468
84537
  if (!o2)
84469
84538
  return n;
84470
- const i = rM(o2);
84539
+ const i = aM(o2);
84471
84540
  if (i.length === 0)
84472
84541
  return n;
84473
- const r2 = iM(t.body), a = n === m2.WrongKind ? [] : [...n], s2 = t.elementName.text();
84542
+ const r2 = rM(t.body), a = n === m2.WrongKind ? [] : [...n], s2 = t.elementName.text();
84474
84543
  return i.forEach(({ heredocNode: l2 }) => {
84475
- const c3 = nM(l2);
84544
+ const c3 = oM(l2);
84476
84545
  if (!c3)
84477
84546
  return;
84478
84547
  const { text: u, locate: d2 } = c3;
84479
- tM(u, r2).forEach((m3) => {
84480
- a.push(BN(t, d2(m3.start), d2(m3.end), `Block "${m3.name}" referenced in HTMLLayout does not exist on dashboard "${s2}".`));
84548
+ nM(u, r2).forEach((m3) => {
84549
+ a.push(IN(t, d2(m3.start), d2(m3.end), `Block "${m3.name}" referenced in HTMLLayout does not exist on dashboard "${s2}".`));
84481
84550
  });
84482
84551
  }), a;
84483
84552
  };
84484
- var sM = {
84553
+ var lM = {
84485
84554
  name: "HTMLLayoutCheck",
84486
84555
  hooks: {
84487
84556
  typecheck: {
84488
- handler: aM,
84557
+ handler: sM,
84489
84558
  strategy: sr.EXTEND_BUILTIN
84490
84559
  }
84491
84560
  }
84492
84561
  };
84493
- function lM(e) {
84562
+ function cM(e) {
84494
84563
  return e instanceof J && e.leftExpression instanceof J && (e.leftExpression.leftExpression instanceof I || e.leftExpression.leftExpression instanceof J) && e.leftExpression.rightExpression instanceof I && e.rightExpression instanceof J && (e.rightExpression.leftExpression instanceof I || e.rightExpression.leftExpression instanceof J) && e.rightExpression.rightExpression instanceof I;
84495
84564
  }
84496
84565
  function rh2(e, t, n) {
@@ -84503,8 +84572,8 @@ function rh2(e, t, n) {
84503
84572
  function ah2(e, t) {
84504
84573
  return !(e instanceof ve) || e.value.kind !== f2.TRUE_LITERAL && e.value.kind !== f2.FALSE_LITERAL ? [$t(e, E.ExpectedThings, `${t}: boolean value`)] : [];
84505
84574
  }
84506
- function cM(e, t, n, o2, i) {
84507
- if (!lM(e) && !(e instanceof I))
84575
+ function uM(e, t, n, o2, i) {
84576
+ if (!cM(e) && !(e instanceof I))
84508
84577
  return [$t(e, E.ExpectedThings, "relationship expression: $model1.$field1 (>|-) $model2.$field2")];
84509
84578
  const r2 = ah2(t, "active");
84510
84579
  if (r2.length)
@@ -84527,7 +84596,7 @@ function cM(e, t, n, o2, i) {
84527
84596
  return [];
84528
84597
  }
84529
84598
  var qo2 = ["rel_expr", "active", "direction", "rlp_propagation", "nullable"];
84530
- function uM(e, t) {
84599
+ function dM(e, t) {
84531
84600
  const n = [], o2 = {};
84532
84601
  let i = false;
84533
84602
  for (let d2 = 0;d2 < t.length; d2++) {
@@ -84560,7 +84629,7 @@ function uM(e, t) {
84560
84629
  }
84561
84630
  if (o2.rel_expr || n.push($t(e.callee, E.MissingThings, "argument: rel_expr")), o2.active || n.push($t(e.callee, E.MissingThings, "argument: active")), et(n))
84562
84631
  return new it(n);
84563
- const r2 = o2.rel_expr.typeReferenceExpression || o2.rel_expr.value, a = o2.active.typeReferenceExpression || o2.active.value, s2 = o2.direction?.typeReferenceExpression || o2.direction?.value, l2 = o2.rlp_propagation?.typeReferenceExpression || o2.rlp_propagation?.value, c3 = o2.nullable?.typeReferenceExpression || o2.nullable?.value, u = cM(r2, a, s2, l2, c3);
84632
+ const r2 = o2.rel_expr.typeReferenceExpression || o2.rel_expr.value, a = o2.active.typeReferenceExpression || o2.active.value, s2 = o2.direction?.typeReferenceExpression || o2.direction?.value, l2 = o2.rlp_propagation?.typeReferenceExpression || o2.rlp_propagation?.value, c3 = o2.nullable?.typeReferenceExpression || o2.nullable?.value, u = uM(r2, a, s2, l2, c3);
84564
84633
  return et(u) ? new it(u) : new on({
84565
84634
  relExpr: r2,
84566
84635
  active: a,
@@ -84572,7 +84641,7 @@ function uM(e, t) {
84572
84641
  function sh2(e) {
84573
84642
  return e.elements[0].value.value;
84574
84643
  }
84575
- function dM(e) {
84644
+ function pM(e) {
84576
84645
  const { relExpr: t, active: n, direction: o2, rlpPropagation: i, nullable: r2 } = e, a = o2 ? `direction: '${sh2(o2)}'` : "", s2 = i ? `rlp_propagation: '${sh2(i)}'` : "", l2 = r2 ? `nullable: ${r2.value.value}` : "";
84577
84646
  if (t instanceof I)
84578
84647
  return `RelationshipConfig {
@@ -84603,12 +84672,12 @@ function dM(e) {
84603
84672
  }
84604
84673
  function x_(e) {
84605
84674
  return new U((t, ...n) => {
84606
- const o2 = uM(t, n);
84607
- return o2.isErr() ? new b("", o2.err()) : new b(dM(o2.unwrap()));
84675
+ const o2 = dM(t, n);
84676
+ return o2.isErr() ? new b("", o2.err()) : new b(pM(o2.unwrap()));
84608
84677
  });
84609
84678
  }
84610
- var pM = x_;
84611
84679
  var mM = x_;
84680
+ var hM = x_;
84612
84681
  var pu2 = { "git.aml": `Type Git {
84613
84682
  is_production: Slot[Boolean]
84614
84683
  current_branch: Slot[String]
@@ -85881,9 +85950,9 @@ var mu2 = {
85881
85950
  var C_ = (e) => (e.type in mu2);
85882
85951
  var hu2 = "current_user";
85883
85952
  var lh2 = (e) => l.create(`/modules/${Xn3}/modules/${hu2}/${e}.aml`);
85884
- var hM = new Set(Object.keys(pu2).filter((e) => e.startsWith(`modules/${hu2}/`)).map((e) => `/modules/${Xn3}/${e}`));
85885
- var fM = (e) => e.moduleTree().modules.find((n) => n.name === Xn3)?.modules.find((n) => n.name === hu2)?.amlFiles ?? [];
85886
- var gM = (e, t = []) => {
85953
+ var fM = new Set(Object.keys(pu2).filter((e) => e.startsWith(`modules/${hu2}/`)).map((e) => `/modules/${Xn3}/${e}`));
85954
+ var gM = (e) => e.moduleTree().modules.find((n) => n.name === Xn3)?.modules.find((n) => n.name === hu2)?.amlFiles ?? [];
85955
+ var AM = (e, t = []) => {
85887
85956
  const n = t.filter(C_), o2 = new Set(n.map((i) => lh2(i.name).toString()));
85888
85957
  return n.forEach((i) => {
85889
85958
  const r2 = lh2(i.name), a = mu2[i.type];
@@ -85891,15 +85960,15 @@ var gM = (e, t = []) => {
85891
85960
  s2 += `const ${i.name} = create_slot[${a}]({
85892
85961
  `, s2 += ` fqn: 'H::current_user::${i.name}'
85893
85962
  `, s2 += "})", e.setDefinitionAtPath(r2, s2);
85894
- }), fM(e).filter((i) => !o2.has(i.toString()) && !hM.has(i.toString())).forEach((i) => e.deleteFile(i)), e;
85963
+ }), gM(e).filter((i) => !o2.has(i.toString()) && !fM.has(i.toString())).forEach((i) => e.deleteFile(i)), e;
85895
85964
  };
85896
- var AM = (e, t = {}) => (t.userAttributes && gM(e, t.userAttributes), e);
85897
- var p1 = (e, t = {}) => (e.setModuleRootPaths(pI2), e.options.childIdxForDynamicProp = true, e.registerCustomModule(hN), e.registerCustomModule(kN), e.registerCustomModule(LN), e.registerCustomModule(GN), e.registerCustomModule(ZN), e.registerCustomModule(eM), e.registerCustomModule(sM), e.registerCustomModule(NR.RefFunction), e.registerCustomModule(NR.RefCallExpression), e.registerCustomModule(NR.RefPropertyAccessExpression), Object.entries(Jl2).forEach(([n, o2]) => {
85965
+ var _M = (e, t = {}) => (t.userAttributes && AM(e, t.userAttributes), e);
85966
+ var m1 = (e, t = {}) => (e.setModuleRootPaths(pI2), e.options.childIdxForDynamicProp = true, e.registerCustomModule(fN), e.registerCustomModule(xN), e.registerCustomModule(NN), e.registerCustomModule(jN), e.registerCustomModule(XN), e.registerCustomModule(tM), e.registerCustomModule(lM), e.registerCustomModule(NR.RefFunction), e.registerCustomModule(NR.RefCallExpression), e.registerCustomModule(NR.RefPropertyAccessExpression), Object.entries(Jl2).forEach(([n, o2]) => {
85898
85967
  const i = l.create(`__H_definition__/${n}`);
85899
85968
  e.setDefinitionAtPath(i, o2);
85900
- }), e.addJsFunc("r", kR(e)), e.setMacro("rel", pM), e.setMacro("relationship", mM), e.addDecorator(MR.templateDecorator.default), Object.entries(pu2).forEach(([n, o2]) => {
85969
+ }), e.addJsFunc("r", kR(e)), e.setMacro("rel", mM), e.setMacro("relationship", hM), e.addDecorator(MR.templateDecorator.default), Object.entries(pu2).forEach(([n, o2]) => {
85901
85970
  e.setDefinitionAtPath(l.create(`/modules/${Xn3}/${n}`), o2);
85902
- }), AM(e, t), e);
85971
+ }), _M(e, t), e);
85903
85972
 
85904
85973
  // src/api/amlStudioApi.ts
85905
85974
  import os6 from "os";
@@ -86120,7 +86189,7 @@ function readAmlFiles(rootPath) {
86120
86189
  }
86121
86190
  function initAMLProgram(rootPath, userAttributes) {
86122
86191
  program2 = new wI;
86123
- p1(program2, { userAttributes });
86192
+ m1(program2, { userAttributes });
86124
86193
  try {
86125
86194
  const amlFiles = readAmlFiles(rootPath);
86126
86195
  amlFiles.forEach(({ filePath, content }) => {
@@ -101986,11 +102055,11 @@ _f4.pattern = () => /* @__PURE__ */ RegExp("(today|yesterday|tomorrow)", "i"), _
101986
102055
  end: Ve$1(l3)
101987
102056
  });
101988
102057
  };
101989
- var m1 = (e9) => {
102058
+ var m12 = (e9) => {
101990
102059
  let t = e9.weekday;
101991
102060
  return t === 7 ? 0 : t;
101992
102061
  };
101993
- var v1 = (e9, t) => (m1(e9) - t + 7) % 7;
102062
+ var v1 = (e9, t) => (m12(e9) - t + 7) % 7;
101994
102063
  var Lf4 = (e9, t, n) => t !== "week" || n === zt$1.Monday ? e9.startOf(t) : e9.minus({ days: v1(e9, n) }).startOf("day");
101995
102064
  var AD2 = (e9, t, n) => t !== "week" || n === zt$1.Monday ? e9.endOf(t) : e9.minus({ days: v1(e9, n) }).plus({ days: 6 }).endOf("day");
101996
102065
  var Wf3 = new ye$1.Parser;
@@ -102013,7 +102082,7 @@ Wf3.pattern = () => /\b(?:(year|quarter|month|week)-to-date|(ytd|qtd|mtd|wtd))\b
102013
102082
  };
102014
102083
  var $f3 = new ye$1.Parser;
102015
102084
  var CD2 = (e9, t) => {
102016
- let n = m1(e9), r3 = zt$1[t];
102085
+ let n = m12(e9), r3 = zt$1[t];
102017
102086
  return n <= r3 ? r3 - n : r3 + 7 - n;
102018
102087
  };
102019
102088
  $f3.pattern = () => RegExp(`(${Object.keys(zt$1).join("|")}) (last|this|current|next)( \\d+)? weeks?`, "i"), $f3.extract = (e9, t, n, r3) => {
@@ -102078,20 +102147,20 @@ var cn$1 = (e9) => kr$1({
102078
102147
  var $v3 = (e9) => {
102079
102148
  e9.imply("hour", 0), e9.imply("minute", 0), e9.imply("second", 0);
102080
102149
  };
102081
- var bD2 = (e9) => {
102150
+ var bD = (e9) => {
102082
102151
  let t = e9.clone(), n = ty2(e9.knownValues) || "millisecond", r3 = {};
102083
102152
  return r3[`${n}s`] = 1, t.impliedValues = Ve$1(cn$1(e9).plus(r3)), t.knownValues = {}, t;
102084
102153
  };
102085
- var FD2 = (e9) => ($v3(e9.start), e9.end ? $v3(e9.end) : e9.end = bD2(e9.start), e9);
102154
+ var FD2 = (e9) => ($v3(e9.start), e9.end ? $v3(e9.end) : e9.end = bD(e9.start), e9);
102086
102155
  var y1 = new ye$1.Refiner;
102087
102156
  y1.refine = (e9, t, n) => t.map((e10) => FD2(e10));
102088
102157
  var Uv4 = (e9, t) => {
102089
102158
  e9.get("timezone") || e9.imply("timezone", t);
102090
102159
  };
102091
- var p12 = new ye$1.Refiner;
102092
- p12.refine = (e9, t, { timezone: n }) => t.map((e10) => (Uv4(e10.start, n), e10.end && Uv4(e10.end, n), e10));
102160
+ var p1 = new ye$1.Refiner;
102161
+ p1.refine = (e9, t, { timezone: n }) => t.map((e10) => (Uv4(e10.start, n), e10.end && Uv4(e10.end, n), e10));
102093
102162
  var Zn$1 = { exports: {} };
102094
- var _D = Zn$1.exports;
102163
+ var _D2 = Zn$1.exports;
102095
102164
  var Gv3;
102096
102165
  function LD2() {
102097
102166
  return Gv3 || (Gv3 = 1, function(e9, t) {
@@ -105684,7 +105753,7 @@ function print() { __p += __j.call(arguments, '') }
105684
105753
  }], qp3.prototype.clone = Jp3, qp3.prototype.reverse = Yp3, qp3.prototype.value = Xp2, Q4.prototype.at = GT3, Q4.prototype.chain = KT3, Q4.prototype.commit = qT3, Q4.prototype.next = JT3, Q4.prototype.plant = XT3, Q4.prototype.reverse = ZT3, Q4.prototype.toJSON = Q4.prototype.valueOf = Q4.prototype.value = QT3, Q4.prototype.first = Q4.prototype.head, sd4 && (Q4.prototype[sd4] = YT3), Q4;
105685
105754
  }();
105686
105755
  Ld4 ? ((Ld4.exports = Rp3)._ = Rp3, Id4._ = Rp3) : Fd4._ = Rp3;
105687
- }).call(_D);
105756
+ }).call(_D2);
105688
105757
  }(Zn$1, Zn$1.exports)), Zn$1.exports;
105689
105758
  }
105690
105759
  var Kt$1 = LD2();
@@ -105750,7 +105819,7 @@ var kD2 = {
105750
105819
  new zn$1.ENMergeDateTimeRefiner,
105751
105820
  new zn$1.ENMergeDateRangeRefiner,
105752
105821
  new zn$1.ENPrioritizeSpecificDateRefiner,
105753
- p12,
105822
+ p1,
105754
105823
  y1,
105755
105824
  Rf4
105756
105825
  ]
@@ -105936,7 +106005,7 @@ var CheckFlags = /* @__PURE__ */ function(e9) {
105936
106005
  return e9[e9.Normal = 0] = "Normal", e9[e9.InBizCal = 1] = "InBizCal", e9[e9.SkipPathResolution = 2] = "SkipPathResolution", e9[e9.SkipCheckingRelationshipKey = 4] = "SkipCheckingRelationshipKey", e9[e9.EnableWarningCheck = 8] = "EnableWarningCheck", e9[e9.RecheckCheckedNode = 16] = "RecheckCheckedNode", e9;
105937
106006
  }({});
105938
106007
  var LinkType = /* @__PURE__ */ function(e9) {
105939
- return e9.ONE_TO_ONE = "one_to_one", e9.MANY_TO_ONE = "many_to_one", e9;
106008
+ return e9.ONE_TO_ONE = "one_to_one", e9.MANY_TO_ONE = "many_to_one", e9.RANGE = "range", e9.MANY_TO_MANY = "many_to_many", e9;
105940
106009
  }({});
105941
106010
  var JoinType = /* @__PURE__ */ function(e9) {
105942
106011
  return e9.CROSS = "cross", e9.INNER = "inner", e9.LEFT = "left", e9.RIGHT = "right", e9.FULL = "full", e9.SEMI = "semi", e9;
@@ -106806,7 +106875,11 @@ function createRelationship(e9, t, n = {}) {
106806
106875
  direction: n.direction ?? FilterDirection.TWOWAY,
106807
106876
  nullable: n.nullable ?? true,
106808
106877
  rlp_propagation: n.rlpPropagation ?? "inherit",
106809
- weight: n.weight
106878
+ weight: n.weight,
106879
+ ...n.name ? { name: n.name } : {},
106880
+ ...n.extraKeys?.length ? { extra_keys: n.extraKeys } : {},
106881
+ ...n.match ? { match: n.match } : {},
106882
+ ...n.where ? { where: n.where } : {}
106810
106883
  };
106811
106884
  }
106812
106885
  function createDataset({ name: e9, label: t = "", description: n = "", dataSource: r3, models: i = [], relationships: a = [], metrics: s3 = [], publicAliases: c3 }) {
@@ -110973,15 +111046,36 @@ function modelFromAml(e10, t, n = true) {
110973
111046
  throw createError(ErrorCode.INVALID_EXPRESSION_0, undefined, ` Object \`${r3.getProp("name")}\` is of type (${r3.type}), need type Model`);
110974
111047
  }
110975
111048
  }
111049
+ var RELATIONSHIP_TYPE_NAMES = new Set([
111050
+ "EqualityRelationship",
111051
+ "RangeRelationship",
111052
+ "ManyToManyRelationship"
111053
+ ]);
111054
+ function heredocContent(e10) {
111055
+ return e10?.data?.content;
111056
+ }
110976
111057
  function relationshipFromAml(e10) {
110977
111058
  let t = new AmlObjWrapper(e10);
110978
- if (t.type !== "Relationship")
111059
+ if (!t.type || !RELATIONSHIP_TYPE_NAMES.has(t.type))
110979
111060
  throw Error("Not a Relationship object");
110980
- let n = new AmlObjWrapper(t.getProp("from")), r3 = new AmlObjWrapper(t.getProp("to")), i = n.getProp("__refFqn__"), a = r3.getProp("__refFqn__"), s3 = i && import_lodash2.isString(i) ? getFqn(i) : n.getProp("model"), c3 = a && import_lodash2.isString(a) ? getFqn(a) : r3.getProp("model");
111061
+ let n = new AmlObjWrapper(t.getProp("from")), r3 = new AmlObjWrapper(t.getProp("to")), i = n.getProp("__refFqn__"), a = r3.getProp("__refFqn__"), s3 = i && import_lodash2.isString(i) ? getFqn(i) : n.getProp("model"), c3 = a && import_lodash2.isString(a) ? getFqn(a) : r3.getProp("model"), l3 = t.getProp("on"), u = l3 ? new AmlObjWrapper(l3).map((e11) => {
111062
+ let t3 = new AmlObjWrapper(e11);
111063
+ return {
111064
+ source_field: new AmlObjWrapper(t3.getProp("from")).getProp("field"),
111065
+ dest_field: new AmlObjWrapper(t3.getProp("to")).getProp("field")
111066
+ };
111067
+ }) : undefined, f3 = t.getProp("where"), p3 = f3 ? new AmlObjWrapper(f3) : undefined, m3 = p3 && heredocContent(p3.getProp("from")), S3 = p3 && heredocContent(p3.getProp("to")), w3 = t.getProp("name"), E3 = heredocContent(t.getProp("match"));
110981
111068
  return {
110982
111069
  from: createModelFieldReference(s3, n.getProp("field")),
110983
111070
  to: createModelFieldReference(c3, r3.getProp("field")),
110984
- type: t.getProp("type")
111071
+ type: t.getProp("type"),
111072
+ ...w3 ? { name: w3 } : {},
111073
+ ...u?.length ? { extra_keys: u } : {},
111074
+ ...E3 ? { match: E3 } : {},
111075
+ ...m3 || S3 ? { where: {
111076
+ ...m3 ? { source: m3 } : {},
111077
+ ...S3 ? { dest: S3 } : {}
111078
+ } } : {}
110985
111079
  };
110986
111080
  }
110987
111081
  function relationshipConfigFromAml(e10) {
@@ -111156,7 +111250,11 @@ function relationshipConfigFromModeling(e10) {
111156
111250
  active: e10.active ?? true,
111157
111251
  direction: e10.direction ?? FilterDirection.TWOWAY,
111158
111252
  nullable: e10.nullable ?? true,
111159
- rlp_propagation: e10.rlp_propagation ?? "inherit"
111253
+ rlp_propagation: e10.rlp_propagation ?? "inherit",
111254
+ ...e10.join.name ? { name: e10.join.name } : {},
111255
+ ...e10.join.extra_keys?.length ? { extra_keys: e10.join.extra_keys } : {},
111256
+ ...e10.join.match ? { match: e10.join.match } : {},
111257
+ ...e10.join.where ? { where: e10.join.where } : {}
111160
111258
  };
111161
111259
  }
111162
111260
  function datasetFromModeling(e10) {
@@ -115023,6 +115121,9 @@ function buildApplyFiltersPlan(e10, t, n, r3, i, a = true, s3 = true, c3 = false
115023
115121
  case LinkType.MANY_TO_ONE:
115024
115122
  li3 = true, u.add(t3.from.modelName);
115025
115123
  break;
115124
+ case LinkType.RANGE:
115125
+ case LinkType.MANY_TO_MANY:
115126
+ throw createError(ErrorCode.UNSUPPORTED_BEHAVIOR_0, undefined, `A ${t3.type} relationship is not handled yet.`);
115026
115127
  default:
115027
115128
  t3.type;
115028
115129
  break;
@@ -121583,7 +121684,11 @@ function normalizeConfigForAql(e10) {
121583
121684
  active: e10.active,
121584
121685
  direction: !e10.direction || e10.direction === "two_way" ? "two_way" : "one_way",
121585
121686
  nullable: e10.nullable,
121586
- rlpPropagation: e10.rlp_propagation
121687
+ rlpPropagation: e10.rlp_propagation,
121688
+ name: e10.name,
121689
+ extraKeys: e10.extraKeys,
121690
+ match: e10.match,
121691
+ where: e10.where
121587
121692
  });
121588
121693
  }
121589
121694
  function normalizeDatasetToAqlDataset(e10) {