quickpickle 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hooks.d.ts CHANGED
@@ -4,9 +4,12 @@ interface Hook {
4
4
  f: HookFunction;
5
5
  tags: string;
6
6
  tagsFunction: (tags: string[]) => boolean;
7
+ weight: number;
7
8
  }
8
9
  export declare const applyHooks: (hooksName: string, state: any) => Promise<void>;
9
- type AddHookFunction = (p1: string | Hook | HookFunction, p2?: HookFunction) => void;
10
+ type AddHookFunction = (p1: string | Partial<Hook> & {
11
+ f: HookFunction;
12
+ } | HookFunction, p2?: HookFunction) => void;
10
13
  export declare const BeforeAll: AddHookFunction;
11
14
  export declare const Before: AddHookFunction;
12
15
  export declare const BeforeStep: AddHookFunction;
package/dist/index.cjs CHANGED
@@ -8,12 +8,15 @@ var defaultsDeep = require('lodash/defaultsDeep');
8
8
  var isFunction = require('lodash/isFunction');
9
9
  var isString = require('lodash/isString');
10
10
  var concat = require('lodash/concat');
11
+ var sortBy = require('lodash/sortBy');
11
12
  var intersection = require('lodash/intersection');
12
13
  var parse = require('@cucumber/tag-expressions');
13
14
  var Gherkin = require('@cucumber/gherkin');
14
15
  var Messages = require('@cucumber/messages');
15
16
  var fromPairs = require('lodash/fromPairs');
16
17
  var escapeRegExp = require('lodash/escapeRegExp');
18
+ var pixelmatch = require('pixelmatch');
19
+ var ariaRoles = require('@a11y-tools/aria-roles');
17
20
 
18
21
  function _interopNamespaceDefault(e) {
19
22
  var n = Object.create(null);
@@ -151,7 +154,7 @@ const allHooks = {
151
154
  afterStep: [],
152
155
  };
153
156
  const applyHooks = async (hooksName, state) => {
154
- const hooks = allHooks[hooksName];
157
+ const hooks = sortBy(allHooks[hooksName], 'weight');
155
158
  for (let i = 0; i < hooks.length; i++) {
156
159
  let hook = hooks[i];
157
160
  const result = hook.tagsFunction(state.info.tags.map((t) => t.toLowerCase()));
@@ -162,7 +165,7 @@ const applyHooks = async (hooksName, state) => {
162
165
  return state;
163
166
  };
164
167
  const addHook = (hooksName, p1, p2) => {
165
- let hook = { name: '', f: async () => { }, tags: '', tagsFunction: () => true };
168
+ let hook = { name: '', f: async () => { }, tags: '', tagsFunction: () => true, weight: 0 };
166
169
  if (isFunction(p1))
167
170
  hook = { ...hook, f: p1 };
168
171
  else if (isString(p1))
@@ -762,6 +765,29 @@ function sanitize(pathstr, options = DEFAULT_OPTIONS) {
762
765
  return sanitizedPath.trim();
763
766
  }
764
767
 
768
+ // PNG shim that works in both browser and Node.js environments
769
+ // Uses dynamic imports instead of require()
770
+ // Check if we're in a browser environment
771
+ const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
772
+ // Create a promise that resolves to the PNG constructor
773
+ let pngPromise;
774
+ if (isBrowser) {
775
+ // Browser environment - use browser build
776
+ pngPromise = import('pngjs/browser').then(mod => mod.PNG);
777
+ }
778
+ else {
779
+ // Node.js environment - use main build
780
+ pngPromise = import('pngjs').then(mod => mod.PNG);
781
+ }
782
+ // Cache the PNG constructor once loaded
783
+ let cachedPNG = null;
784
+ async function getPNG() {
785
+ if (!cachedPNG) {
786
+ cachedPNG = await pngPromise;
787
+ }
788
+ return cachedPNG;
789
+ }
790
+
765
791
  class QuickPickleWorld {
766
792
  constructor(context, info) {
767
793
  this._projectRoot = '';
@@ -776,6 +802,7 @@ class QuickPickleWorld {
776
802
  get config() { return this.info.config; }
777
803
  get worldConfig() { return this.info.config.worldConfig; }
778
804
  get isComplete() { return this.info.stepIdx === this.info.steps.length; }
805
+ get projectRoot() { return this._projectRoot; }
779
806
  /**
780
807
  * Checks the tags of the Scenario against a provided list of tags,
781
808
  * and returns the shared tags, with the "@" prefix character.
@@ -801,6 +828,19 @@ class QuickPickleWorld {
801
828
  fullPath(path) {
802
829
  return `${this._projectRoot}/${this.sanitizePath(path)}`;
803
830
  }
831
+ /**
832
+ * A helper function for when you really just need to wait.
833
+ *
834
+ * @deprecated Waiting for arbitrary amounts of time makes your tests flaky! There are
835
+ * usually better ways to wait for something to happen, and this functionality will be
836
+ * removed from the API as soon we're sure nobody will **EVER** want to use it again.
837
+ * (That may be a long time.)
838
+ *
839
+ * @param ms milliseconds to wait
840
+ */
841
+ async wait(ms) {
842
+ await new Promise(r => setTimeout(r, ms));
843
+ }
804
844
  toString() {
805
845
  let parts = [
806
846
  this.constructor.name,
@@ -818,6 +858,71 @@ function getWorldConstructor() {
818
858
  function setWorldConstructor(constructor) {
819
859
  worldConstructor = constructor;
820
860
  }
861
+ const defaultScreenshotComparisonOptions = {
862
+ maxDiffPercentage: 0,
863
+ threshold: 0.1,
864
+ alpha: 0.6
865
+ };
866
+ class VisualWorld extends QuickPickleWorld {
867
+ constructor(context, info) {
868
+ super(context, info);
869
+ }
870
+ async init() { }
871
+ get screenshotDir() {
872
+ return this.sanitizePath(this.worldConfig.screenshotDir);
873
+ }
874
+ get screenshotFilename() {
875
+ return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
876
+ }
877
+ get screenshotPath() {
878
+ return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
879
+ }
880
+ get screenshotOptions() {
881
+ return defaultsDeep((this.worldConfig.screenshotOptions || {}), (this.worldConfig.screenshotOpts || {}), defaultScreenshotComparisonOptions);
882
+ }
883
+ getScreenshotPath(name) {
884
+ if (!name)
885
+ return this.screenshotPath;
886
+ // If name is already a full absolute path (starts with project root), return as-is
887
+ if (name.startsWith(this.projectRoot)) {
888
+ return name;
889
+ }
890
+ // If name starts with the screenshot directory, remove it
891
+ else if (name.startsWith(this.screenshotDir))
892
+ name = name.slice(this.screenshotDir.length);
893
+ // If name already ends with .png, remove it
894
+ const hasExtension = name.endsWith('.png');
895
+ const baseName = hasExtension ? name.slice(0, -4) : name;
896
+ // Add the exploded tags if necessary
897
+ let explodedTags = this.info.explodedIdx ? `_(${this.info.tags.join(',')})` : '';
898
+ if (name.includes(explodedTags))
899
+ explodedTags = '';
900
+ // Return the full path
901
+ return this.fullPath(`${this.screenshotDir}/${baseName}${explodedTags}.png`);
902
+ }
903
+ async screenshotDiff(actual, expected, opts) {
904
+ // Get the PNG constructor using the shim
905
+ const PNG = await getPNG();
906
+ // Parse PNG images to get raw pixel data
907
+ const actualPng = PNG.sync.read(actual);
908
+ const expectedPng = PNG.sync.read(expected);
909
+ const { width, height } = expectedPng;
910
+ const diffPng = new PNG({ width, height });
911
+ try {
912
+ const pixels = pixelmatch(actualPng.data, expectedPng.data, diffPng.data, width, height, opts);
913
+ const pct = (pixels / (width * height)) * 100;
914
+ return { diff: PNG.sync.write(diffPng), pixels, pct };
915
+ }
916
+ catch (e) {
917
+ e.message += `\n expected: w:${width}px h:${height}px ${expectedPng.data.length}b\n actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b`;
918
+ throw e;
919
+ }
920
+ }
921
+ }
922
+ defineParameterType({
923
+ name: 'AriaRole',
924
+ regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles.ariaRoles)]).join('|')})`),
925
+ });
821
926
 
822
927
  const featureRegex = /\.feature(?:\.md)?$/;
823
928
  const Given = addStepDefinition;
@@ -996,10 +1101,12 @@ exports.DocString = DocString;
996
1101
  exports.Given = Given;
997
1102
  exports.QuickPickleWorld = QuickPickleWorld;
998
1103
  exports.Then = Then;
1104
+ exports.VisualWorld = VisualWorld;
999
1105
  exports.When = When;
1000
1106
  exports.applyHooks = applyHooks;
1001
1107
  exports.default = quickpickle;
1002
1108
  exports.defaultConfig = defaultConfig;
1109
+ exports.defaultScreenshotComparisonOptions = defaultScreenshotComparisonOptions;
1003
1110
  exports.defineParameterType = defineParameterType;
1004
1111
  exports.explodeTags = explodeTags;
1005
1112
  exports.formatStack = formatStack;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DataTable.ts","../src/models/DocString.ts","../src/shims/path.ts","../src/shims/path-sanitizer.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/steps.ts","../src/tags.ts","../src/hooks.ts","../src/render.ts","../src/models/DataTable.ts","../src/models/DocString.ts","../src/shims/path.ts","../src/shims/path-sanitizer.ts","../src/shims/png.ts","../src/world.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["ParameterTypeRegistry","ExpressionFactory","CucumberExpressionGenerator","ParameterType","Messages","Gherkin","ariaRoles"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,KAAK,GAAqB,EAAE;AAQlC,MAAM,qBAAqB,GAAG,IAAIA,yCAAqB,EAAE;AACzD,MAAM,iBAAiB,GAAG,IAAIC,qCAAiB,CAAC,qBAAqB,CAAC;AAEtE,MAAM,2BAA2B,GAAG,IAAIC,+CAA2B,CAAC,MAAM,qBAAqB,CAAC,cAAc,CAAC;AAE/G,MAAM,kBAAkB,GAAG,CAAC,IAAkC,KAA4B;AACxF,IAAA,OAAO,IAAIC,iCAAa,CACtB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,EACX,IAAI,EACJ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,IAAI,IAAI,EAC3B,IAAI,CAAC,oBAAoB,IAAI,KAAK,CACnC;AACH,CAAC;AAEY,MAAA,mBAAmB,GAAG,CAAC,aAA4C,KAAU;IACxF,qBAAqB,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAC9E;AAEO,MAAM,iBAAiB,GAAG,CAAC,UAAyB,EAAE,CAAsC,KAAU;IAC3G,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,yBAAyB,GAAG,CAAC,IAAW,KAA2B;IACvE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,WAAkC,EAAE,cAA8B,KAAI;QACzF,MAAM,OAAO,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7D,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,WAAW,EAAE;oBACtB,cAAc;AACd,oBAAA,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAU,KAAK,KAAK,CAAC,QAAQ,EAAE;AACzD,iBAAA,CAAC;;aACG;AACL,YAAA,OAAO,WAAW;;KAErB,EAAE,EAAE,CAAC;AACR,CAAC;AAMM,MAAM,uBAAuB,GAAG,CAAC,IAAW,EAAE,WAAuB,KAAyB;AACnG,IAAA,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,IAAI,CAAC;;IAG7D,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;QAChE,IAAI,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,CAAA;EAClB,OAAO;AACR,CAAA,CAAC;;AAGA,IAAA,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AACpC,QAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAA,CAAA,CAAG,CAAC;;AAGhE,IAAA,OAAO,qBAAqB,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,IAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAc,EAAA;IAEjE,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAClF,IAAA,MAAM,kBAAkB,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE;IAErD,IAAI,YAAY,GAAU,OAAO;IACjC,IAAI,QAAQ,KAAK,QAAQ;QAAE,YAAY,GAAG,MAAM;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,YAAY,GAAG,MAAM;IAEjD,IAAI,cAAc,GAAG,wCAAwC;IAE7D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAChD,CAAC,mBAAmB,EAAE,KAAK,KAAI;AAC7B,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,KAAK;AACvC,QAAA,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CACxC,mBAAmB,CAAC,cAAc,EAClC,kBAAkB,CACnB;AACD,QAAA,OAAO,GAAG,MAAM,GAAG,YAAY,CAAA,EAAA,EAAK,uBAAuB,CACzD,mBAAmB,CACpB,CAAA,mBAAA,EAAsB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;AAC5D,KAAC,CACF;IAED,QACE,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAA0E,wEAAA,CAAA;AACvG,QAAA,CAAA,EAAA,EAAK,cAAc,CAAI,EAAA,CAAA;AACvB,QAAA,KAAK;AAGT;AAEA,SAAS,uBAAuB,CAAC,mBAAwC,EAAA;AACvE,IAAA,IAAI,MAAM,GAAG,mBAAmB,CAAC,MAAM;;IAEvC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;IAEtC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACpC,IAAA,OAAO,MAAM;AACf;;AC/HM,SAAU,aAAa,CAAC,IAA+B,EAAA;AAC3D,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;IACpB,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAC1D,IAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AAC/E;AAEA;;;;;;;AAOG;AACa,SAAA,SAAS,CAAC,QAAiB,EAAE,QAAiB,EAAA;AAC5D,IAAA,IAAI,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/F,OAAO,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;AACnC;AAMA,MAAM,mBAAmB,GAAG,CAAC,cAAsB,KAAmB;AACpE,IAAA,IAAI;AACF,QAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC;AAC9C,QAAA,OAAO,gBAAgB;;IACvB,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAoC,KAAe,CAAC,OAAO,CAAE,CAAA,CAAC;;AAElF,CAAC;AAEK,SAAU,YAAY,CAAC,cAAsB,EAAA;IACjD,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,OAAO,MAAM,IAAI;;AAGnB,IAAA,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,cAAc,CAAC;IAEhE,OAAO,CAAC,IAAc,KAAI;QACxB,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAClD,QAAA,OAAO,MAAM;AACf,KAAC;AACH;;AC7BA,MAAM,QAAQ,GAAmB;AAC/B,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,EAAE;AACV,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,QAAQ,EAAE,EAAE;AACZ,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,SAAS,EAAE,EAAE;CACd;AAWY,MAAA,UAAU,GAAG,OAAO,SAAiB,EAAE,KAAU,KAAmB;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC;AACnD,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAQ,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpF,IAAI,MAAM,EAAE;AACV,YAAA,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;;;AAGvB,IAAA,OAAO,KAAK;AACd;AAEA,MAAM,OAAO,GAAG,CAAC,SAAiB,EAAE,EAA+D,EAAE,EAAqC,KAAU;AAElJ,IAAA,IAAI,IAAI,GAAQ,EAAE,IAAI,EAAC,EAAE,EAAE,CAAC,EAAC,eAAY,EAAE,IAAI,EAAC,EAAE,EAAE,YAAY,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;IAEzF,IAAI,UAAU,CAAC,EAAE,CAAC;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,EAAC;SACvC,IAAI,QAAQ,CAAC,EAAE,CAAC;AAAE,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;;QAChC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;IAE9B,IAAI,UAAU,CAAC,EAAE,CAAC;AAAE,QAAA,IAAI,CAAC,CAAC,GAAG,EAAE;IAE/B,IAAI,CAAC,IAAI,CAAC,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEhF,IAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAEzD,IAAA,QAAQ,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;AACzD,CAAC;MAIY,SAAS,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAE3E,MAAM,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAErE,UAAU,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAE7E,QAAQ,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAEzE,KAAK,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;MAEnE,SAAS,GAAmB,CAAC,EAAE,EAAC,EAAE,KAAU,EAAG,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;;ACpExF,MAAM,MAAM,GAAGC,mBAAQ,CAAC,WAAW,CAAC,IAAI,EAAE;AAC1C,MAAM,OAAO,GAAG,IAAIC,kBAAO,CAAC,UAAU,CAAC,MAAM,CAAC;AAC9C,MAAM,cAAc,GAAG,IAAIA,kBAAO,CAAC,0BAA0B,EAAE;AAC/D,MAAM,aAAa,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;AACjE,MAAM,SAAS,GAAG,IAAIA,kBAAO,CAAC,6BAA6B,EAAE;AAC7D,MAAM,QAAQ,GAAG,IAAIA,kBAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;SAEvC,aAAa,CAAC,GAAU,EAAE,MAAwB,EAAE,UAAmB,EAAA;;IAGrF,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;;AAGnF,IAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;QAC7B,OAAO,CAAA;kBACO;;IAGhB,OAAO,CAAA;;;;;;;;;;;AAWK,YAAA,EAAA,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;UAC1E,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;;;;AAcpF,EAAA,aAAa,CAAC,eAAe,CAAC,OAAQ,EAAE,MAAM,CAAC;CAChD;AACD;AAEgB,SAAA,aAAa,CAAC,OAAe,EAAE,MAAwB,EAAA;;AAGrE,IAAA,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;;AAGxC,IAAA,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,QAA0B,EAAE,MAAM,EAAE,IAAI,CAAC;AAEpG,IAAA,IAAI,WAAW,GAAG,CAAA,EAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;;IAG7D,OAAM;;AAEsC,4CAAA,EAAA,WAAW,CAA4C,yCAAA,EAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAM,GAAA,EAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;;;0BAGzI,WAAW,CAAA;;;;EAInC,eAAe;;;;YAIL,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;EAChD,QAAQ;IACN;AACJ;AAEA,SAAS,MAAM,CAAC,KAA4B,EAAA;AAC1C,IAAA,OAAO,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;AACrC;AAEA,SAAS,cAAc,CAAC,QAAmC,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAE7G,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,QAAQ,EAAE,EAAE;KACb;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,CAAG,EAAA,EAAE,CAAkB,gBAAA,CAAA,EAAC;IAE5E,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;QAC5C,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,UAAW,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;;AAG3G,IAAA,KAAK,IAAI,KAAK,IAAI,QAAQ,EAAE;AAC1B,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjB,YAAA,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;;AAEnD,aAAA,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACzC,YAAA,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;;;AAI9D,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,UAAU,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;IACxF,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,IAAK,CAAC,QAAuB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC;IAEhH,OAAO;AACP,EAAA,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,OAAO,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;;EAE7D,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA,uBAAA,EAA0B,CAAC,CAAC,KAAK,CAAC,IAAK,CAAC,IAAI,CAAC,CAAA;EAC/C,eAAe;EACf,EAAE,CAAA;EACF,EAAE,CAAA;;EAEF,QAAQ;;EAER,EAAE,CAAA;CACH;AACD;AAEA,SAAS,cAAc,CAAC,KAAkB,EAAE,MAAwB,EAAE,IAAa,EAAE,EAAE,GAAG,IAAI,EAAA;AAC5F,IAAA,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,kBAAkB,GAAG,cAAc;IAChE,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAE1D,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1D,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,OAAO,GAAG,EAAE;AAC1D,IAAA,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,EAAE;AAC5D,IAAA,IAAI,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE;IAC5E,IAAI,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,aAAa,GAAG,EAAE;IAC7F,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,UAAU;;IAGzD,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,WAAyB,EAAE,IAAI,CAAC;AAClE,IAAA,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK;IACnD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,WAAW,KAAI;QAEzC,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAK,EAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;;QAGhE,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,KAAK,CAAC,QAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE;AAE1F,YAAA,IAAI,cAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;AAC/F,YAAA,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;gBAClE,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAE,GAAG,GAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAE,CAAC,CAAC;AAC5D,aAAC,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,CAAC,CAAQ,EAAE,UAAmB,KAAI;gBAC1D,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,KAAI;AAC7B,oBAAA,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA,CAAG,EAAE,GAAG,CAAC,GAAG,UAAU,GAAG,OAAO,CAAC,CAAA,EAAA,CAAI,GAAI,CAAK,EAAA,EAAA,CAAC,CAAE,CAAA,EAAE;AACjG,iBAAC,CAAC;AACF,gBAAA,OAAO,CAAC;AACV,aAAC;AAED,YAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AAC/D,YAAA,IAAI,4BAA4B,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;AAE1F,YAAA,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,IAAI,EAAC,EAAC,GAAG,KAAI;AACtD,gBAAA,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAC,IAAI,CAAC;AACnC,gBAAA,OAAO,IAAI;AACb,aAAC,CAAC;YAEF,IAAI,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,QAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,UAAU,GAAG,CAAG,EAAA,WAAW,GAAC,CAAC,CAAE,CAAA,GAAG,EAAE,EAAE,KAAK,EAAE,iBAAiB,CAAC;YAErM,OAAO;AACT,EAAA,EAAE,OAAO,KAAK,CAAA;AACd,EAAA,EAAE,KAAK,WAAW,EAAE,GAAG,CAAC,IAAI,IAAG;AACvB,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC5B,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC;EAChC,EAAE,CAAA;AACF,EAAA,EAAE,CAAM,GAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,CAAK,EAAA,EAAA,QAAQ,GAAG,gBAAgB,CAAA;EACxE,EAAE,CAAA,WAAA,EAAc,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,GAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9D,EAAA,EAAE,CAAyB,sBAAA,EAAA,MAAM,CAAa,UAAA,EAAA,4BAA4B,CAAO,IAAA,EAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,KAAA,EAAA,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EACnJ,aAAa;EACb,EAAE,CAAA;EACF,EAAE,CAAA;EACF,EAAE,CAAA;CACH;;QAGC,OAAO;EACP,EAAE,CAAA,IAAA,EAAO,KAAK,CAAK,EAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,OAAO,CAAC,CAAK,EAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAA,EAAG,gBAAgB,CAAA;EAC5F,EAAE,CAAA,oBAAA,EAAuB,MAAM,CAAc,WAAA,EAAA,CAAC,CAAC,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,CAAQ,KAAA,EAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,KAAA,EAAA,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;EAC/J,WAAW,CAAC,KAAK,CAAC,QAAS,CAAC,KAAe,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,UAAU,GAAG,CAAA,EAAG,WAAW,GAAC,CAAC,CAAA,CAAE,GAAG,EAAE,CAAC;EACrG,EAAE,CAAA;EACF,EAAE,CAAA;CACH;AACC,KAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACjB;AAEA,SAAS,WAAW,CAAC,KAAY,EAAE,MAAwB,EAAE,EAAE,GAAG,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,YAAuB,GAAA,KAAK,EAAE,iBAAA,GAA8D,CAAC,CAAC,KAAK,CAAC,EAAA;IAC7L,IAAI,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,EAAE;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAC,GAAG,KAAI;AAE5B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA,CAAA,EAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG;AACjI,YAAA,OAAO,CAAG,EAAA,EAAE,CAAsB,mBAAA,EAAA,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,KAAK,GAAG,GAAG,GAAC,CAAC,CAAA,EAAA,EAAK,YAAY,IAAI,WAAW,CAAK,EAAA,EAAA,IAAI,IAAI;;AAEtK,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AACvB,YAAA,IAAI,IAAI,GAAG,CAAA,SAAA,EAAY,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI;AAC9J,YAAA,OAAO,CAAG,EAAA,EAAE,CAAsB,mBAAA,EAAA,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAK,EAAA,EAAA,KAAK,GAAG,GAAG,GAAC,CAAC,CAAA,EAAA,EAAK,YAAY,IAAI,WAAW,CAAK,EAAA,EAAA,IAAI,IAAI;;AAG3K,QAAA,OAAO,GAAG,EAAE,CAAA,mBAAA,EAAsB,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAM,GAAA,EAAA,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA,EAAG,GAAG,GAAC,CAAC,GAAG,YAAY,GAAG,CAAA,EAAA,EAAK,YAAY,CAAE,CAAA,GAAG,EAAE,IAAI;AAC5K,KAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACf;AAEA,SAAS,WAAW,CAAC,KAAY,EAAE,GAAU,EAAA;AAC3C,IAAA,QAAQ,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW;AAC5B,QAAA,KAAK,SAAS;AACd,QAAA,KAAK,QAAQ;AACb,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW;AAC/B,QAAA;AACE,YAAA,IAAI,GAAG;gBAAE,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,GAAC,CAAC,CAAC;AACzC,YAAA,OAAO,SAAS;;AAEtB;AAEA;;;;AAIG;AACH,MAAM,CAAC,GAAG,CAAC,CAAQ,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAEtE;;;;;;;;;AASG;AACH,MAAM,EAAE,GAAG,CAAC,IAAW,KAAI;;IAEzB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;;IAElC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;;IAEhC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAChD,IAAA,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG;AACzB,CAAC;AAED;;;;AAIG;AACG,SAAU,YAAY,CAAC,GAAe,EAAA;AAC1C,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,CAAC;AACjC,IAAA,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,IAAG;AACrB,QAAA,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;AACtC,KAAC,CAAC;IAEF,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;AAC5B,IAAA,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;AAE1C,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,IACvB,eAAe,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACrE;AACH;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACa,SAAA,WAAW,CAAC,WAAsB,EAAE,QAAiB,EAAA;IACnE,IAAI,CAAC,WAAW,CAAC,MAAM;QAAE,OAAO,CAAC,QAAQ,CAAC;AAC1C,IAAA,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC;;;IAI9B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,IAAG;AAC3C,QAAA,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,QAAA,OAAO,KAAK;AACd,KAAC,CAAC;;AAGF,IAAA,IAAI,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC;;AAGvC,IAAA,OAAO,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AACpF;;MC7Ta,SAAS,CAAA;AAGpB,IAAA,WAAA,CAAY,WAAqC,EAAA;AAC/C,QAAA,IAAI,WAAW,YAAY,KAAK,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW;;aACtB;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KACvC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CACpC;;;AAIL;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,MAAM,GAAA;AACJ,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,QAAA,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YAChC,MAAM,SAAS,GAA2B,EAAE;YAC5C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D,YAAA,OAAO,SAAS;AAClB,SAAC,CAAC;;AAGJ;;;;;;;;;;;;;;;;;;;;;;;AAuBG;IACH,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG/B;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,IAAI,GAAA;AACF,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;QACvB,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,OAAO,IAAI;;AAGb;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;IACH,QAAQ,GAAA;AACN,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;AACvB,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,qBAAqB,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF;;QAEH,MAAM,MAAM,GAA2B,EAAE;QACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAA,OAAO,MAAM;;AAGf;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;IACH,SAAS,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/B;AACD,QAAA,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC;;AAEnC;;ACvLK,MAAO,SAAU,SAAQ,MAAM,CAAA;IAGnC,WAAY,CAAA,OAAe,EAAE,SAAA,GAAoB,EAAE,EAAA;QACjD,KAAK,CAAC,OAAO,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;IAG5B,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAGvB,IAAA,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAY,EAAA;AAC/B,QAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAE/B,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE;;AAExB;;AClBD;;;;AAIG;AACG,SAAU,SAAS,CAAC,IAAY,EAAA;;IAEpC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACvC,IAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;IAClD,MAAM,eAAe,GAAa,EAAE;AAEpC,IAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,KAAK,GAAG;YAAE;AAClB,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,eAAe,CAAC,GAAG,EAAE;;aAChB;AACL,YAAA,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAI9B,IAAA,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;AAC5D;AAEA;;;;AAIG;AACa,SAAA,IAAI,CAAC,GAAG,KAAe,EAAA;IACrC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC;;ACEO,MAAM,eAAe,GAA4B;AACpD,IAAA,MAAM,EAAE;AACJ,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB,SAAA;AACD,QAAA;AACI,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,WAAW,EAAE;AAChB;AACJ,KAAA;AACD,IAAA,oBAAoB,EAAE,mBAAmB;AACzC,IAAA,eAAe,EAAE;CACpB;AAED;;AAEG;AACqB,SAAA,QAAQ,CAAC,OAAe,EAAE,UAA2B,eAAe,EAAA;AACxF,IAAA,IAAI,CAAC,OAAO;QACR,OAAO,GAAG,eAAe;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ;AAC3B,QAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;AAC9B,QAAA,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM;IAC3C,IAAI,CAAC,OAAO,CAAC,oBAAoB;AAC7B,QAAA,OAAO,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB;IACvE,IAAI,CAAC,OAAO,CAAC,eAAe;AACxB,QAAA,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,eAAe;AAC7D,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;;AAE7B,QAAA,OAAO,GAAG,CAAA,EAAG,OAAO,CAAA,CAAE;;IAE1B,IAAI,aAAa,GAAG,OAAO;;;AAG3B,IAAA,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAG;AAC5B,QAAA,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC;AAC3E,KAAC,CAAC;;IAEF,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;;IAElE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;;IAEnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;;IAExE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;IAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;;IAE1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;;AAEtD,IAAA,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;;AAExC,IAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAChE,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;;AAG9C,IAAA,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACpE,QAAA,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;;;AAG1C,IAAA,aAAa,GAAG,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC;;IAEvC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;;IAElE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;;IAEnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;;IAGtD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;;AAGxE,IAAA,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC9M,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACnD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;;QAEjD,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,CAAC;QAChE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;QAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;QAC1D,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;;;AAIhE,IAAA,aAAa,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,GAAG,aAAa;AAEjE,IAAA,OAAO,aAAa,CAAC,IAAI,EAAE;AAC/B;;AC3HA;AACA;AAiBA;AACA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;AAElF;AACA,IAAI,UAAmC;AAEvC,IAAI,SAAS,EAAE;;AAEb,IAAA,UAAU,GAAG,OAAO,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAC3D;KAAO;;AAEL,IAAA,UAAU,GAAG,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACnD;AAEA;AACA,IAAI,SAAS,GAA0B,IAAI;AAEpC,eAAe,MAAM,GAAA;IAC1B,IAAI,CAAC,SAAS,EAAE;QACd,SAAS,GAAG,MAAM,UAAU;;AAE9B,IAAA,OAAO,SAAS;AAClB;;MCUa,gBAAgB,CAAA;IAO3B,WAAY,CAAA,OAAmB,EAAE,IAAoB,EAAA;QAN7C,IAAY,CAAA,YAAA,GAAW,EAAE;QAIjC,IAAI,CAAA,IAAA,GAAG,EAAE;QACT,IAAY,CAAA,YAAA,GAAG,QAAQ;AAErB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAC,EAAE,EAAE;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;;IAEtC,MAAM,IAAI,GAAA;IACV,IAAI,MAAM,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;AACtC,IAAA,IAAI,WAAW,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;AACvD,IAAA,IAAI,UAAU,GAAK,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IACtE,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAA;AAC5C;;;;;;AAMG;AACH,IAAA,SAAS,CAAC,IAAc,EAAA;QACtB,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;AAExC;;;;;;;;;;;AAWG;AACH,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,YAAY,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,CAAE;;AAG1D;;;;;;;;;AASG;IACH,MAAM,IAAI,CAAC,EAAS,EAAA;AAClB,QAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;;IAG3C,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG;YACV,IAAI,CAAC,WAAW,CAAC,IAAI;YACrB,IAAI,CAAC,IAAI,CAAC,OAAO;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,CAAA,CAAA,GAAG,EAAE,CAAC;YACpF,CAAG,EAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAA;SACrE;AACD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;;AAEzB;AAOD,IAAI,gBAAgB,GAAoB,gBAAgB;SAExC,mBAAmB,GAAA;AACjC,IAAA,OAAO,gBAAgB;AACzB;AAEM,SAAU,mBAAmB,CAAC,WAA6B,EAAA;IAC/D,gBAAgB,GAAG,WAAW;AAChC;AAaa,MAAA,kCAAkC,GAA+B;AAC5E,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,SAAS,EAAE,GAAG;AACd,IAAA,KAAK,EAAE;;AA8JH,MAAO,WAAY,SAAQ,gBAAgB,CAAA;IAE/C,WAAY,CAAA,OAAmB,EAAE,IAAoB,EAAA;AACnD,QAAA,KAAK,CAAC,OAAO,EAAC,IAAI,CAAC;;IAGrB,MAAM,IAAI,GAAA;AAEV,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;;AAG1D,IAAA,IAAI,kBAAkB,GAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA,IAAA,CAAM;;AAGzG,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA,CAAA,EAAI,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC;;AAG1E,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,IAAI,EAAE,GAAG,kCAAkC,CAAC;;AAG9I,IAAA,iBAAiB,CAAC,IAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC,cAAc;;QAGrC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;AACrC,YAAA,OAAO,IAAI;;;AAIR,aAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;YAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;;QAG1F,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1C,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;;QAGxD,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,GAAG,EAAE;AAChF,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,YAAY,GAAG,EAAE;;AAGlD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAA,EAAG,YAAY,CAAA,IAAA,CAAM,CAAC;;AAG9E,IAAA,MAAM,cAAc,CAAC,MAAa,EAAE,QAAe,EAAE,IAAQ,EAAA;;AAG3D,QAAA,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE;;QAG1B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC3C,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,WAAW;QAErC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE1C,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,UAAU,CACvB,SAAS,CAAC,IAAI,EACd,WAAW,CAAC,IAAI,EAChB,OAAO,CAAC,IAAI,EACZ,KAAK,EACL,MAAM,EACN,IAAI,CACL;AACD,YAAA,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG;AAC7C,YAAA,OAAO,EAAE,IAAI,EAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE;;QAEtD,OAAM,CAAK,EAAE;AACX,YAAA,CAAC,CAAC,OAAO,IAAI,CAAA,gBAAA,EAAmB,KAAK,CAAA,KAAA,EAAQ,MAAM,CAAA,GAAA,EAAM,WAAW,CAAC,IAAI,CAAC,MAAM,CAAA,iBAAA,EAAoB,SAAS,CAAC,KAAK,CAAA,KAAA,EAAQ,SAAS,CAAC,MAAM,CAAA,GAAA,EAAM,SAAS,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA,CAAG;AACzK,YAAA,MAAM,CAAC;;;AAIZ;AAED,mBAAmB,CAAC;AAClB,IAAA,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,CAAC,CAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAACC,mBAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC;AACxF,CAAA,CAAC;;ACjWF,MAAM,YAAY,GAAG,qBAAqB;AAInC,MAAM,KAAK,GAAG;AACd,MAAM,IAAI,GAAG;AACb,MAAM,IAAI,GAAG;AAqBpB,MAAM,UAAU,GAAG,4BAA4B;AAC/B,SAAA,WAAW,CAAC,IAAW,EAAE,IAAW,EAAA;AAClD,IAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;AAAE,QAAA,OAAO,IAAI;IACxC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC5B,OAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,KAAK,CAAC,KAAK,EAAE;AAChD,IAAA,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAA,EAAA,CAAI,CAAC;AACtD,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB;AAEA,SAAS,WAAW,CAAI,IAAgB,EAAE,EAAU,EAAE,YAAqB,EAAA;AACzE,IAAA,IAAI,OAAsC;IAC1C,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,KAAI;AACtD,QAAA,OAAO,GAAG,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,CAAC;AACjE,KAAC,CAAC;;AAGF,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAChD;MAEa,WAAW,GAAG,OAAO,QAAqC,EAAE,IAAY,EAAE,KAAU,EAAE,IAAY,EAAE,OAAc,EAAE,UAAkB,EAAE,IAAS,KAAiB;AAE7K,IAAA,IAAI;;AAEF,QAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAC9B,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AACtB,QAAA,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI;AACtB,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO;AAC5B,QAAA,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,UAAU;;QAGnC,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,YAAA,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;YAC1B,QAAQ,GAAG,WAAW;;AAEnB,aAAA,IAAI,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE;AACxC,YAAA,IAAI,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YAClD,QAAQ,GAAG,WAAW;;AAGxB,QAAA,MAAM,OAAO,GAAG,YAAW;AAEzB,YAAA,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC;AAErC,YAAA,IAAI;AACF,gBAAA,MAAM,mBAAmB,GAAwB,uBAAuB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACtG,gBAAA,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC;;YAE5F,OAAM,CAAK,EAAE;;AAEX,gBAAA,CAAC,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAA,CAAE;;AAG9C,gBAAA,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG/C,gBAAA,CAAC,CAAC,WAAW,GAAG,IAAI;;gBAGpB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;AAGzB,gBAAA,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;AAAE,oBAAA,MAAM,CAAC;;oBAEtE;AACN,gBAAA,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC;;AAGxC,SAAC;AACD,QAAA,MAAM,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA,qBAAA,EAAwB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAA,EAAA,CAAI,CAAC;;IAE9G,OAAM,CAAK,EAAE;;AAGX,QAAA,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;;AAGlB,YAAA,CAAC,CAAC,OAAO,GAAG,CAAA,EAAG,IAAI,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,CAAC,CAAC,OAAO,CAAA,CAAE;;YAG9C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;;QAI3B,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE;;;QAIpG,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA,2BAAA,EAA8B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAI,EAAA,CAAA,CAAC;;AAGnI,QAAA,MAAM,CAAC;;YAED;AACN,QAAA,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;AAChD,YAAA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;AACzD,YAAA,KAAK,CAAC,OAAO,GAAG,0BAA0B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAK,KAAK,CAAC,EAAE,OAAO,IAAI,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAC9K,YAAA,MAAM,KAAK;;;AAIjB;AA4Ba,MAAA,aAAa,GAAsB;AAE9C;;AAEG;AACH,IAAA,IAAI,EAAE,EAAE;AAER;;AAEG;AACH,IAAA,WAAW,EAAE,IAAI;AAEjB;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,OAAO,EAAC,MAAM,CAAC;AAE1B;;AAEG;IACH,QAAQ,EAAE,CAAC,OAAO,CAAC;AAEnB;;AAEG;AACH,IAAA,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AAEhC;;AAEG;AACH,IAAA,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;AAEpC;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;AAEG;IACH,cAAc,EAAE,CAAC,aAAa,CAAC;AAE/B;;AAEG;AACH,IAAA,WAAW,EAAE,EAAE;AAEf;;;;AAIG;AACH,IAAA,WAAW,EAAE,EAAE;;AAQjB,SAAS,IAAI,CAAC,GAA8B,EAAA;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrE;MAEa,WAAW,GAAG,CAAC,IAAyC,GAAA,EAAE,KAAW;AAChF,IAAA,IAAI,MAAwB;AAC5B,IAAA,IAAI,YAAY,GAA4B,EAAC,GAAG,IAAI,EAAC;IAErD,OAAO;AACL,QAAA,IAAI,EAAE,uBAAuB;AAC7B,QAAA,cAAc,CAAC,cAA8B,EAAA;YAC3C,MAAM,GAAG,YAAY,CACnB,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,IAAI,EAAE,EAC7C,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,EAAE,EACxC,YAAY,EACZ,aAAa,CACd;YACD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC;YACxD,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5D,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC;AAC5D,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;gBAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC;;gBACnF,MAAM,CAAC,WAAW,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI;AAAE,gBAAA,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI;SACpD;AACD,QAAA,MAAM,SAAS,CAAC,GAAW,EAAE,EAAU,EAAA;AACrC,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACzB,OAAO,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;;SAEtE;KACF;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { explodeTags } from './render';
4
4
  import { DataTable } from './models/DataTable';
5
5
  import { DocString } from './models/DocString';
6
6
  import { normalizeTags, tagsMatch } from './tags';
7
- export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface } from './world';
7
+ export { setWorldConstructor, getWorldConstructor, QuickPickleWorld, QuickPickleWorldInterface, ScreenshotComparisonOptions, VisualConfigSetting, VisualWorld, VisualWorldInterface, VisualDiffResult, defaultScreenshotComparisonOptions, InfoConstructor, AriaRoleExtended, } from './world';
8
8
  export { DocString, DataTable };
9
9
  export { explodeTags, tagsMatch, normalizeTags, applyHooks };
10
10
  export { defineParameterType } from './steps';
package/dist/index.esm.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import { ParameterTypeRegistry, ExpressionFactory, CucumberExpressionGenerator, ParameterType } from '@cucumber/cucumber-expressions';
2
- import { intersection, isFunction, isString, concat, fromPairs, escapeRegExp, defaultsDeep, get } from 'lodash-es';
2
+ import { intersection, sortBy, isFunction, isString, concat, fromPairs, escapeRegExp, defaultsDeep, get } from 'lodash-es';
3
3
  import parse from '@cucumber/tag-expressions';
4
4
  import * as Gherkin from '@cucumber/gherkin';
5
5
  import * as Messages from '@cucumber/messages';
6
+ import pixelmatch from 'pixelmatch';
7
+ import { ariaRoles } from '@a11y-tools/aria-roles';
6
8
 
7
9
  const steps = [];
8
10
  const parameterTypeRegistry = new ParameterTypeRegistry();
@@ -120,7 +122,7 @@ const allHooks = {
120
122
  afterStep: [],
121
123
  };
122
124
  const applyHooks = async (hooksName, state) => {
123
- const hooks = allHooks[hooksName];
125
+ const hooks = sortBy(allHooks[hooksName], 'weight');
124
126
  for (let i = 0; i < hooks.length; i++) {
125
127
  let hook = hooks[i];
126
128
  const result = hook.tagsFunction(state.info.tags.map((t) => t.toLowerCase()));
@@ -131,7 +133,7 @@ const applyHooks = async (hooksName, state) => {
131
133
  return state;
132
134
  };
133
135
  const addHook = (hooksName, p1, p2) => {
134
- let hook = { name: '', f: async () => { }, tags: '', tagsFunction: () => true };
136
+ let hook = { name: '', f: async () => { }, tags: '', tagsFunction: () => true, weight: 0 };
135
137
  if (isFunction(p1))
136
138
  hook = { ...hook, f: p1 };
137
139
  else if (isString(p1))
@@ -731,6 +733,29 @@ function sanitize(pathstr, options = DEFAULT_OPTIONS) {
731
733
  return sanitizedPath.trim();
732
734
  }
733
735
 
736
+ // PNG shim that works in both browser and Node.js environments
737
+ // Uses dynamic imports instead of require()
738
+ // Check if we're in a browser environment
739
+ const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
740
+ // Create a promise that resolves to the PNG constructor
741
+ let pngPromise;
742
+ if (isBrowser) {
743
+ // Browser environment - use browser build
744
+ pngPromise = import('pngjs/browser').then(mod => mod.PNG);
745
+ }
746
+ else {
747
+ // Node.js environment - use main build
748
+ pngPromise = import('pngjs').then(mod => mod.PNG);
749
+ }
750
+ // Cache the PNG constructor once loaded
751
+ let cachedPNG = null;
752
+ async function getPNG() {
753
+ if (!cachedPNG) {
754
+ cachedPNG = await pngPromise;
755
+ }
756
+ return cachedPNG;
757
+ }
758
+
734
759
  class QuickPickleWorld {
735
760
  constructor(context, info) {
736
761
  this._projectRoot = '';
@@ -745,6 +770,7 @@ class QuickPickleWorld {
745
770
  get config() { return this.info.config; }
746
771
  get worldConfig() { return this.info.config.worldConfig; }
747
772
  get isComplete() { return this.info.stepIdx === this.info.steps.length; }
773
+ get projectRoot() { return this._projectRoot; }
748
774
  /**
749
775
  * Checks the tags of the Scenario against a provided list of tags,
750
776
  * and returns the shared tags, with the "@" prefix character.
@@ -770,6 +796,19 @@ class QuickPickleWorld {
770
796
  fullPath(path) {
771
797
  return `${this._projectRoot}/${this.sanitizePath(path)}`;
772
798
  }
799
+ /**
800
+ * A helper function for when you really just need to wait.
801
+ *
802
+ * @deprecated Waiting for arbitrary amounts of time makes your tests flaky! There are
803
+ * usually better ways to wait for something to happen, and this functionality will be
804
+ * removed from the API as soon we're sure nobody will **EVER** want to use it again.
805
+ * (That may be a long time.)
806
+ *
807
+ * @param ms milliseconds to wait
808
+ */
809
+ async wait(ms) {
810
+ await new Promise(r => setTimeout(r, ms));
811
+ }
773
812
  toString() {
774
813
  let parts = [
775
814
  this.constructor.name,
@@ -787,6 +826,71 @@ function getWorldConstructor() {
787
826
  function setWorldConstructor(constructor) {
788
827
  worldConstructor = constructor;
789
828
  }
829
+ const defaultScreenshotComparisonOptions = {
830
+ maxDiffPercentage: 0,
831
+ threshold: 0.1,
832
+ alpha: 0.6
833
+ };
834
+ class VisualWorld extends QuickPickleWorld {
835
+ constructor(context, info) {
836
+ super(context, info);
837
+ }
838
+ async init() { }
839
+ get screenshotDir() {
840
+ return this.sanitizePath(this.worldConfig.screenshotDir);
841
+ }
842
+ get screenshotFilename() {
843
+ return `${this.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + this.info.step, '')}.png`;
844
+ }
845
+ get screenshotPath() {
846
+ return this.fullPath(`${this.screenshotDir}/${this.screenshotFilename}`);
847
+ }
848
+ get screenshotOptions() {
849
+ return defaultsDeep((this.worldConfig.screenshotOptions || {}), (this.worldConfig.screenshotOpts || {}), defaultScreenshotComparisonOptions);
850
+ }
851
+ getScreenshotPath(name) {
852
+ if (!name)
853
+ return this.screenshotPath;
854
+ // If name is already a full absolute path (starts with project root), return as-is
855
+ if (name.startsWith(this.projectRoot)) {
856
+ return name;
857
+ }
858
+ // If name starts with the screenshot directory, remove it
859
+ else if (name.startsWith(this.screenshotDir))
860
+ name = name.slice(this.screenshotDir.length);
861
+ // If name already ends with .png, remove it
862
+ const hasExtension = name.endsWith('.png');
863
+ const baseName = hasExtension ? name.slice(0, -4) : name;
864
+ // Add the exploded tags if necessary
865
+ let explodedTags = this.info.explodedIdx ? `_(${this.info.tags.join(',')})` : '';
866
+ if (name.includes(explodedTags))
867
+ explodedTags = '';
868
+ // Return the full path
869
+ return this.fullPath(`${this.screenshotDir}/${baseName}${explodedTags}.png`);
870
+ }
871
+ async screenshotDiff(actual, expected, opts) {
872
+ // Get the PNG constructor using the shim
873
+ const PNG = await getPNG();
874
+ // Parse PNG images to get raw pixel data
875
+ const actualPng = PNG.sync.read(actual);
876
+ const expectedPng = PNG.sync.read(expected);
877
+ const { width, height } = expectedPng;
878
+ const diffPng = new PNG({ width, height });
879
+ try {
880
+ const pixels = pixelmatch(actualPng.data, expectedPng.data, diffPng.data, width, height, opts);
881
+ const pct = (pixels / (width * height)) * 100;
882
+ return { diff: PNG.sync.write(diffPng), pixels, pct };
883
+ }
884
+ catch (e) {
885
+ e.message += `\n expected: w:${width}px h:${height}px ${expectedPng.data.length}b\n actual: w:${actualPng.width}px h:${actualPng.height}px ${actualPng.data.length}b`;
886
+ throw e;
887
+ }
888
+ }
889
+ }
890
+ defineParameterType({
891
+ name: 'AriaRole',
892
+ regexp: new RegExp(`(${(['element', 'input', ...Object.keys(ariaRoles)]).join('|')})`),
893
+ });
790
894
 
791
895
  const featureRegex = /\.feature(?:\.md)?$/;
792
896
  const Given = addStepDefinition;
@@ -954,5 +1058,5 @@ const quickpickle = (conf = {}) => {
954
1058
  };
955
1059
  };
956
1060
 
957
- export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, When, applyHooks, quickpickle as default, defaultConfig, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
1061
+ export { After, AfterAll, AfterStep, Before, BeforeAll, BeforeStep, DataTable, DocString, Given, QuickPickleWorld, Then, VisualWorld, When, applyHooks, quickpickle as default, defaultConfig, defaultScreenshotComparisonOptions, defineParameterType, explodeTags, formatStack, getWorldConstructor, gherkinStep, normalizeTags, quickpickle, setWorldConstructor, tagsMatch };
958
1062
  //# sourceMappingURL=index.esm.js.map