@grimoirelabs/core 0.10.0 → 0.12.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.
Files changed (62) hide show
  1. package/dist/compiler/grimoire/index.d.ts.map +1 -1
  2. package/dist/compiler/grimoire/index.js +1 -3
  3. package/dist/compiler/grimoire/index.js.map +1 -1
  4. package/dist/compiler/grimoire/transformer.d.ts +2 -0
  5. package/dist/compiler/grimoire/transformer.d.ts.map +1 -1
  6. package/dist/compiler/grimoire/transformer.js +162 -2
  7. package/dist/compiler/grimoire/transformer.js.map +1 -1
  8. package/dist/compiler/ir-generator.d.ts.map +1 -1
  9. package/dist/compiler/ir-generator.js +280 -0
  10. package/dist/compiler/ir-generator.js.map +1 -1
  11. package/dist/compiler/validator.js +42 -5
  12. package/dist/compiler/validator.js.map +1 -1
  13. package/dist/index.d.ts +2 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/runtime/context.d.ts +1 -0
  18. package/dist/runtime/context.d.ts.map +1 -1
  19. package/dist/runtime/context.js +3 -3
  20. package/dist/runtime/context.js.map +1 -1
  21. package/dist/runtime/cross-chain-orchestrator.d.ts +52 -0
  22. package/dist/runtime/cross-chain-orchestrator.d.ts.map +1 -0
  23. package/dist/runtime/cross-chain-orchestrator.js +399 -0
  24. package/dist/runtime/cross-chain-orchestrator.js.map +1 -0
  25. package/dist/runtime/index.d.ts +1 -0
  26. package/dist/runtime/index.d.ts.map +1 -1
  27. package/dist/runtime/index.js +1 -0
  28. package/dist/runtime/index.js.map +1 -1
  29. package/dist/runtime/interpreter.d.ts +10 -0
  30. package/dist/runtime/interpreter.d.ts.map +1 -1
  31. package/dist/runtime/interpreter.js +6 -0
  32. package/dist/runtime/interpreter.js.map +1 -1
  33. package/dist/runtime/sqlite-state-store.d.ts +12 -1
  34. package/dist/runtime/sqlite-state-store.d.ts.map +1 -1
  35. package/dist/runtime/sqlite-state-store.js +259 -35
  36. package/dist/runtime/sqlite-state-store.js.map +1 -1
  37. package/dist/runtime/state-store.d.ts +16 -0
  38. package/dist/runtime/state-store.d.ts.map +1 -1
  39. package/dist/runtime/state-store.js +1 -0
  40. package/dist/runtime/state-store.js.map +1 -1
  41. package/dist/runtime/steps/action.d.ts +8 -0
  42. package/dist/runtime/steps/action.d.ts.map +1 -1
  43. package/dist/runtime/steps/action.js +198 -20
  44. package/dist/runtime/steps/action.js.map +1 -1
  45. package/dist/runtime/value-flow.d.ts.map +1 -1
  46. package/dist/runtime/value-flow.js +57 -12
  47. package/dist/runtime/value-flow.js.map +1 -1
  48. package/dist/types/actions.d.ts +71 -1
  49. package/dist/types/actions.d.ts.map +1 -1
  50. package/dist/types/cross-chain.d.ts +102 -0
  51. package/dist/types/cross-chain.d.ts.map +1 -0
  52. package/dist/types/cross-chain.js +5 -0
  53. package/dist/types/cross-chain.js.map +1 -0
  54. package/dist/types/execution.d.ts +56 -1
  55. package/dist/types/execution.d.ts.map +1 -1
  56. package/dist/types/index.d.ts +2 -1
  57. package/dist/types/index.d.ts.map +1 -1
  58. package/dist/types/receipt.d.ts +6 -0
  59. package/dist/types/receipt.d.ts.map +1 -1
  60. package/dist/venues/types.d.ts +18 -0
  61. package/dist/venues/types.d.ts.map +1 -1
  62. package/package.json +1 -1
@@ -651,6 +651,129 @@ function transformAction(raw, errors) {
651
651
  venue: raw.venue,
652
652
  assets: raw.assets,
653
653
  };
654
+ case "add_liquidity":
655
+ return {
656
+ type: "add_liquidity",
657
+ venue: raw.venue,
658
+ asset: raw.asset,
659
+ amount: parseActionAmount(raw.amount, errors),
660
+ assetOut: readAssetOut(raw),
661
+ outputs: parseOutputAssets(raw.outputs),
662
+ keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
663
+ ...parsePendleActionOptions(raw),
664
+ };
665
+ case "add_liquidity_dual":
666
+ return {
667
+ type: "add_liquidity_dual",
668
+ venue: raw.venue,
669
+ inputs: parsePendleInputs(raw.inputs, errors),
670
+ outputs: parseOutputAssets(raw.outputs) ?? [],
671
+ keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
672
+ ...parsePendleActionOptions(raw),
673
+ };
674
+ case "remove_liquidity":
675
+ return {
676
+ type: "remove_liquidity",
677
+ venue: raw.venue,
678
+ asset: raw.asset,
679
+ amount: parseActionAmount(raw.amount, errors),
680
+ assetOut: readAssetOut(raw),
681
+ outputs: parseOutputAssets(raw.outputs),
682
+ ...parsePendleActionOptions(raw),
683
+ };
684
+ case "remove_liquidity_dual":
685
+ return {
686
+ type: "remove_liquidity_dual",
687
+ venue: raw.venue,
688
+ inputs: parsePendleInputs(raw.inputs, errors),
689
+ outputs: parseOutputAssets(raw.outputs) ?? [],
690
+ ...parsePendleActionOptions(raw),
691
+ };
692
+ case "mint_py":
693
+ return {
694
+ type: "mint_py",
695
+ venue: raw.venue,
696
+ asset: raw.asset,
697
+ amount: parseActionAmount(raw.amount, errors),
698
+ assetOut: readAssetOut(raw),
699
+ outputs: parseOutputAssets(raw.outputs),
700
+ ...parsePendleActionOptions(raw),
701
+ };
702
+ case "redeem_py":
703
+ return {
704
+ type: "redeem_py",
705
+ venue: raw.venue,
706
+ asset: raw.asset,
707
+ amount: parseActionAmount(raw.amount, errors),
708
+ assetOut: readAssetOut(raw),
709
+ outputs: parseOutputAssets(raw.outputs),
710
+ ...parsePendleActionOptions(raw),
711
+ };
712
+ case "mint_sy":
713
+ return {
714
+ type: "mint_sy",
715
+ venue: raw.venue,
716
+ asset: raw.asset,
717
+ amount: parseActionAmount(raw.amount, errors),
718
+ assetOut: readAssetOut(raw),
719
+ outputs: parseOutputAssets(raw.outputs),
720
+ ...parsePendleActionOptions(raw),
721
+ };
722
+ case "redeem_sy":
723
+ return {
724
+ type: "redeem_sy",
725
+ venue: raw.venue,
726
+ asset: raw.asset,
727
+ amount: parseActionAmount(raw.amount, errors),
728
+ assetOut: readAssetOut(raw),
729
+ outputs: parseOutputAssets(raw.outputs),
730
+ ...parsePendleActionOptions(raw),
731
+ };
732
+ case "transfer_liquidity":
733
+ return {
734
+ type: "transfer_liquidity",
735
+ venue: raw.venue,
736
+ inputs: parsePendleInputs(raw.inputs, errors),
737
+ outputs: parseOutputAssets(raw.outputs) ?? [],
738
+ keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
739
+ ...parsePendleActionOptions(raw),
740
+ };
741
+ case "roll_over_pt":
742
+ return {
743
+ type: "roll_over_pt",
744
+ venue: raw.venue,
745
+ asset: raw.asset,
746
+ amount: parseActionAmount(raw.amount, errors),
747
+ assetOut: readAssetOut(raw),
748
+ outputs: parseOutputAssets(raw.outputs),
749
+ ...parsePendleActionOptions(raw),
750
+ };
751
+ case "exit_market":
752
+ return {
753
+ type: "exit_market",
754
+ venue: raw.venue,
755
+ inputs: parsePendleInputs(raw.inputs, errors),
756
+ outputs: parseOutputAssets(raw.outputs) ?? [],
757
+ ...parsePendleActionOptions(raw),
758
+ };
759
+ case "convert_lp_to_pt":
760
+ return {
761
+ type: "convert_lp_to_pt",
762
+ venue: raw.venue,
763
+ asset: raw.asset,
764
+ amount: parseActionAmount(raw.amount, errors),
765
+ assetOut: readAssetOut(raw),
766
+ outputs: parseOutputAssets(raw.outputs),
767
+ ...parsePendleActionOptions(raw),
768
+ };
769
+ case "pendle_swap":
770
+ return {
771
+ type: "pendle_swap",
772
+ venue: raw.venue,
773
+ inputs: parsePendleInputs(raw.inputs, errors),
774
+ outputs: parseOutputAssets(raw.outputs) ?? [],
775
+ ...parsePendleActionOptions(raw),
776
+ };
654
777
  case "bridge": {
655
778
  const toChainValue = raw.to_chain ?? raw.toChain;
656
779
  if (toChainValue === undefined) {
@@ -705,6 +828,10 @@ function transformAction(raw, errors) {
705
828
  args[key] = { kind: "literal", value, type: "string" };
706
829
  continue;
707
830
  }
831
+ if (op === "convert") {
832
+ args[key] = parseConvertCustomActionValue(value);
833
+ continue;
834
+ }
708
835
  args[key] = parseCustomActionValue(value, errors);
709
836
  }
710
837
  }
@@ -720,6 +847,134 @@ function transformAction(raw, errors) {
720
847
  return null;
721
848
  }
722
849
  }
850
+ function parseActionAmount(value, errors) {
851
+ if (typeof value === "bigint") {
852
+ return value;
853
+ }
854
+ if (typeof value === "number" || typeof value === "boolean") {
855
+ return parseExpressionSafe(value, errors);
856
+ }
857
+ if (typeof value === "string") {
858
+ return parseExpressionSafe(value, errors);
859
+ }
860
+ if (value && typeof value === "object" && "kind" in value) {
861
+ return value;
862
+ }
863
+ errors.push({
864
+ code: "INVALID_ACTION_AMOUNT",
865
+ message: `Unsupported action amount value '${String(value)}'`,
866
+ });
867
+ return { kind: "literal", value: 0, type: "int" };
868
+ }
869
+ function readAssetOut(raw) {
870
+ const assetOut = raw.asset_out ?? raw.assetOut;
871
+ if (typeof assetOut !== "string") {
872
+ return undefined;
873
+ }
874
+ return assetOut;
875
+ }
876
+ function parseOutputAssets(value) {
877
+ if (Array.isArray(value)) {
878
+ const outputs = value.map((entry) => String(entry).trim()).filter((entry) => entry.length > 0);
879
+ return outputs.length > 0 ? outputs : undefined;
880
+ }
881
+ if (typeof value === "string") {
882
+ const trimmed = value.trim();
883
+ if (!trimmed) {
884
+ return undefined;
885
+ }
886
+ if (!trimmed.includes(",")) {
887
+ return [trimmed];
888
+ }
889
+ const outputs = trimmed
890
+ .split(",")
891
+ .map((entry) => entry.trim())
892
+ .filter((entry) => entry.length > 0);
893
+ return outputs.length > 0 ? outputs : undefined;
894
+ }
895
+ return undefined;
896
+ }
897
+ function parsePendleInputs(value, errors) {
898
+ if (!Array.isArray(value)) {
899
+ return [];
900
+ }
901
+ const inputs = [];
902
+ for (const entry of value) {
903
+ if (!entry || typeof entry !== "object") {
904
+ continue;
905
+ }
906
+ const record = entry;
907
+ const asset = record.asset;
908
+ const amount = record.amount;
909
+ if (typeof asset !== "string") {
910
+ errors.push({
911
+ code: "INVALID_PENDLE_INPUT",
912
+ message: "Pendle input entry is missing asset",
913
+ });
914
+ continue;
915
+ }
916
+ inputs.push({
917
+ asset,
918
+ amount: parseActionAmount(amount, errors),
919
+ });
920
+ }
921
+ return inputs;
922
+ }
923
+ function parseOptionalBoolean(value) {
924
+ if (typeof value === "boolean") {
925
+ return value;
926
+ }
927
+ if (typeof value !== "string") {
928
+ return undefined;
929
+ }
930
+ if (value === "true") {
931
+ return true;
932
+ }
933
+ if (value === "false") {
934
+ return false;
935
+ }
936
+ return undefined;
937
+ }
938
+ function parseOptionalStringArray(value) {
939
+ if (Array.isArray(value)) {
940
+ const items = value.map((entry) => String(entry).trim()).filter((entry) => entry.length > 0);
941
+ return items.length > 0 ? items : undefined;
942
+ }
943
+ if (typeof value === "string") {
944
+ const trimmed = value.trim();
945
+ if (!trimmed)
946
+ return undefined;
947
+ const values = trimmed
948
+ .split(",")
949
+ .map((entry) => entry.trim())
950
+ .filter((entry) => entry.length > 0);
951
+ return values.length > 0 ? values : undefined;
952
+ }
953
+ return undefined;
954
+ }
955
+ function parsePendleActionOptions(raw) {
956
+ const enableAggregator = parseOptionalBoolean(raw.enable_aggregator ?? raw.enableAggregator);
957
+ const aggregators = parseOptionalStringArray(raw.aggregators);
958
+ const needScale = parseOptionalBoolean(raw.need_scale ?? raw.needScale);
959
+ const redeemRewards = parseOptionalBoolean(raw.redeem_rewards ?? raw.redeemRewards);
960
+ const additionalData = raw.additional_data ?? raw.additionalData;
961
+ const useLimitOrder = parseOptionalBoolean(raw.use_limit_order ?? raw.useLimitOrder);
962
+ const options = {};
963
+ if (enableAggregator !== undefined)
964
+ options.enableAggregator = enableAggregator;
965
+ if (aggregators !== undefined)
966
+ options.aggregators = aggregators;
967
+ if (needScale !== undefined)
968
+ options.needScale = needScale;
969
+ if (redeemRewards !== undefined)
970
+ options.redeemRewards = redeemRewards;
971
+ if (typeof additionalData === "string" && additionalData.trim().length > 0) {
972
+ options.additionalData = additionalData;
973
+ }
974
+ if (useLimitOrder !== undefined)
975
+ options.useLimitOrder = useLimitOrder;
976
+ return options;
977
+ }
723
978
  function parseCustomActionValue(input, errors) {
724
979
  if (input === null) {
725
980
  return null;
@@ -746,6 +1001,31 @@ function parseCustomActionValue(input, errors) {
746
1001
  }
747
1002
  return { kind: "literal", value: String(input), type: "string" };
748
1003
  }
1004
+ function parseConvertCustomActionValue(input) {
1005
+ if (input === null) {
1006
+ return null;
1007
+ }
1008
+ if (typeof input === "string" ||
1009
+ typeof input === "number" ||
1010
+ typeof input === "boolean" ||
1011
+ typeof input === "bigint") {
1012
+ return input;
1013
+ }
1014
+ if (Array.isArray(input)) {
1015
+ return input.map((item) => parseConvertCustomActionValue(item));
1016
+ }
1017
+ if (typeof input === "object") {
1018
+ if ("kind" in input && typeof input.kind === "string") {
1019
+ return input;
1020
+ }
1021
+ const out = {};
1022
+ for (const [key, value] of Object.entries(input)) {
1023
+ out[key] = parseConvertCustomActionValue(value);
1024
+ }
1025
+ return out;
1026
+ }
1027
+ return String(input);
1028
+ }
749
1029
  /**
750
1030
  * Parse expression safely, returning a literal on failure
751
1031
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ir-generator.js","sourceRoot":"","sources":["../../src/compiler/ir-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkCH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AASzD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8BAA8B;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,mBAAmB;IACnB,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAkB;gBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAkB;gBACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAG,KAMhB,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAqB;oBACrD,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;oBACtB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,EAAgC;QAC5C,SAAS,EAAE,EAAgC;KAC5C,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAwB;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;oBAC3C,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE;oBACzD,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,KAAK,EAAE,OAAO,CAAC,KAA4B;gBAC3C,KAAK,EAAE,WAAW;gBAClB,YAAY,EAAE,OAAO,CAAC,aAAa;gBACnC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,aAAa;gBACnC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,eAAe,EAAE,OAAO,CAAC,QAAQ;gBACjC,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC3B,CAAC,CAAC;wBACE,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE;wBACpD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,GAAG;qBACxD;oBACH,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,SAAS,GAAqD,EAAE,CAAC;IAEvE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAErB,oDAAoD;oBACpD,MAAM,GAAG,GAAG,OAAO,CAAC,eAA+D,CAAC;oBACpF,IAAI,GAAG,EAAE,CAAC;wBACR,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,6BAA8B,CAAW,CAAC,OAAO,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC/C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,GAAY;QAClB,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,IAAI;SACL;QACD,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAwC;IAChE,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,QAAkB,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,GAAG,CAAC,SAAmB;YACnC,YAAY,EAAG,GAAG,CAAC,aAAwB,IAAI,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,CAAC,KAAe;YAC1B,MAAM,EAAE,GAAG,CAAC,MAA4B;SACzC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAwC,CAAC,CAAC;YAC/E,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,GAA4B,EAC5B,WAAwB,EACxB,MAA0B;IAE1B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;IACf,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAkC,CAAC;QACvD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,UAAsB,CAAC;gBAC3B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAClC,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;gBAC1C,CAAC;qBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACzC,UAAU,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;qBACpD,CAAC;gBACJ,CAAC;qBAAM,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1C,UAAU,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,SAAS,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,mCAAmC,QAAQ,MAAO,CAAW,CAAC,OAAO,EAAE;iBACjF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,EAAE;YACF,WAAW;YACX,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;QACtD,iCAAiC;QACjC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,GAAG,CAAC,EAAY,CAAC;YACtC,IAAI,SAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;iBAC9D,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAiC,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,MAAM,WAAW,GAAG,oBAAoB,CACtC,GAAG,CAAC,WAAkD,EACtD,MAAM,CACP,CAAC;YACF,MAAM,SAAS,GAAI,GAAG,CAAC,UAAqB,IAAI,QAAQ,CAAC;YAEzD,0CAA0C;YAC1C,MAAM,UAAU,GAAe;gBAC7B,IAAI,EAAE,QAAQ;gBACd,EAAE;gBACF,MAAM;gBACN,WAAW;gBACX,SAAS,EAAE,SAAoC;gBAC/C,SAAS,EAAE,EAAE;aACd,CAAC;YAEF,sBAAsB;YACtB,MAAM,gBAAgB,GAAoB;gBACxC,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,GAAG,EAAE,OAAO;gBAChB,SAAS;gBACT,SAAS,EAAE,CAAC,EAAE,CAAC;gBACf,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;aACd,CAAC;YAEF,kEAAkE;YAClE,gDAAgD;YAChD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,kCAAkC;QAClC,MAAM,YAAY,GAAG,GAAG,CAAC,EAAY,CAAC;QACtC,IAAI,SAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,EAAE;YACF,SAAS;YACT,SAAS,EAAG,GAAG,CAAC,IAAiB,IAAI,EAAE;YACvC,SAAS,EAAG,GAAG,CAAC,IAAiB,IAAI,EAAE;YACvC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAiC,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,WAAW,GAAG,oBAAoB,CACtC,GAAG,CAAC,WAAkD,EACtD,MAAM,CACP,CAAC;QACF,MAAM,SAAS,GAAI,GAAG,CAAC,UAAqB,IAAI,QAAQ,CAAC;QAEzD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAA2B;YACtC,WAAW;YACX,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,SAAoC;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACrD,OAAO,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,gDAAgD;IAChD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,YAAY;IACZ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,QAAQ,EAAE,GAAG,CAAC,IAAc;YAC5B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAA8B,CAAC;QACpD,MAAM,IAAI,GAA+B,EAAE,CAAC;QAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,8BAA8B,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,KAAK;YACL,IAAI;YACJ,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,MAAM,EAAE,GAAG,CAAC,IAAc;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAgB,CAAC;QACzC,MAAM,OAAO,GAAI,QAAQ,CAAC,OAAkB,IAAI,SAAS,CAAC;QAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAA8C,CAAC;QAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAA4B,CAAC;QAC1D,MAAM,eAAe,GACnB,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,QAAkB,CAAC;QAC/E,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,qBAAqB,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC;QACjF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,iBAA0C,CAAC;QAChF,MAAM,gBAAgB,GAAG,mBAAmB;YAC1C,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAI,QAAQ,CAAC,OAAkB,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;QAChD,MAAM,aAAa,GAAI,QAAQ,CAAC,MAAiB,IAAI,GAAG,EAAE,SAAS,CAAC;QACpE,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAoD,CAAC;QACtF,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACpC,CAAC,CAAE,EAAE,IAAI,EAAE,SAAS,EAAmC,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,OAAO;YACP,MAAM;YACN,OAAO;YACP,WAAW;YACX,YAAY;YACZ,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,gBAAgB;YAChB,OAAO;YACP,QAAQ,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC;YACrD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,WAAW,GAAI,QAAQ,CAAC,QAA2C,IAAI,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,IAAc,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,KAAK,EAAG,CAAC,CAAC,KAAkB,IAAI,EAAE;SACnC,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAA2C,CAAC;QACrE,IAAI,IAAI,GAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAoC,CAAC;YAC1D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgB,CAAC;gBAC3C,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;oBACrE,KAAK,EAAG,OAAO,CAAC,KAAuB,IAAI,KAAK;iBACjD,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAG,OAAO,CAAC,KAAgB,IAAI,CAAC,EAAE,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,QAAQ;YACR,IAAI;YACJ,MAAM,EAAG,QAAQ,CAAC,OAAgC,IAAI,OAAO;YAC7D,OAAO,EAAE,QAAQ,CAAC,OAA6B;YAC/C,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAgB,CAAC;QAC5C,MAAM,SAAS,GAAI,QAAQ,CAAC,MAAyC,IAAI,EAAE,CAAC;QAC5E,MAAM,MAAM,GAA2B,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,EAA0C,CAAC;YAC5D,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACL,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAc;oBAC1B,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;iBACvD,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO;oBACL,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;oBAC5C,KAAK,EAAG,KAAK,CAAC,KAAwB,IAAI,KAAK;iBAChD,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;YACzF,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAc,EAAoC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC;YAClC,MAAM;YACN,QAAQ,EAAG,QAAQ,CAAC,QAAoB,IAAI,KAAK;YACjD,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAA4B,EAAE,MAA0B;IAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;IAEhC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,OAAO,EAAE,GAAG,CAAC,QAAkB;gBAC/B,QAAQ,EAAE,GAAG,CAAC,SAAmB;gBACjC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,IAAI,EAAG,GAAG,CAAC,IAAiC,IAAI,UAAU;aACjD,CAAC;QAEd,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,UAAU,EAAE,GAAG,CAAC,UAAgC;aACvC,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAChD,CAAC;QAEd,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAA8B;aACjC,CAAC;QAEd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;YACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,iCAAiC;iBAC3C,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,OAAO,EAAE,mBAAmB,CAAC,YAA+B,EAAE,MAAM,CAAC;aAC5D,CAAC;QACd,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAY,CAAC;YACjC,MAAM,SAAS,GACb,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YACnF,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,EAAE,EAAE,SAAS,CAAC,CAAC,CAAE,OAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;aAClE,CAAC;QACd,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,GAAG,CAAC,KAA2B,CAAC;YAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,EAAwB,CAAC;YACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;YAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,2BAA2B;iBACrC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAsC,EAAE,CAAC;YACnD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,IACE,EAAE,KAAK,OAAO;wBACd,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,CAAC;wBACxC,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;wBACvD,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,EAAE;gBACF,IAAI;aACK,CAAC;QACd,CAAC;QAED;YACE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,wBAAwB,IAAI,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,MAA0B;IACxE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,KAA0B,CAAC;QACpC,CAAC;QAED,MAAM,GAAG,GAAsC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,KAAgC,EAChC,MAA0B;IAE1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,+BAA+B,KAAK,MAAO,CAAW,CAAC,OAAO,EAAE;SAC1E,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,MAA0B;IACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,SAAS,GAAI,KAA6B,CAAC,MAAM,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,wCAAwC,SAAS,MAAO,CAAW,CAAC,OAAO,EAAE;iBACvF,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QACD,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,gBAAgB,CAAE,KAAgC,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,wCAAwC,MAAM,CAAC,KAAK,CAAC,MAAO,CAAW,CAAC,OAAO,EAAE;SAC3F,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAA4B,EAC5B,MAA0B;IAE1B,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,qCAAqC,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE;iBAC9E,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAA4B;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4C,CAAC;IAC9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAG,GAAG,CAAC,MAAmB,IAAI,EAAE;aACvC,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,GAAG,CAAC,GAAyB;gBAClC,GAAG,EAAE,GAAG,CAAC,GAAyB;aACnC,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAG,GAAG,CAAC,UAAiC,IAAK,GAAG,CAAC,SAAgC;gBAC1F,SAAS,EAAG,GAAG,CAAC,UAAiC,IAAK,GAAG,CAAC,SAAgC;gBAC1F,OAAO,EAAE,GAAG,CAAC,OAA6B;aAC3C,CAAC;QACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,GAAG,CAAC,MAA6C,CAAC;YACpE,MAAM,MAAM,GAA6D,SAAS;gBAChF,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9C,GAAG;oBACH,iBAAiB,CAAC,KAAgC,CAAC;iBACpD,CAAC,CACH;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,CAAC,KAA4C,CAAC;YAClE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;QACJ,CAAC;QACD;YACE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAAwC,EACxC,MAA0B;IAE1B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAgC,CAAC;IACtF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAgC,CAAC;IACnF,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAgC,CAAC;IAC/F,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAgC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,cAAc,CAGxD,CAAC;IACd,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAIjD,CAAC;IACd,MAAM,oBAAoB,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,iBAAiB,CAIhE,CAAC;IAEd,OAAO;QACL,cAAc,EAAE,GAAG,CAAC,YAAkC;QACtD,iBAAiB,EACf,OAAO,iBAAiB,KAAK,QAAQ;YACnC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,OAAO,iBAAiB,KAAK,QAAQ;gBACrC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACtC,CAAC,CAAC,SAAS;QACjB,QAAQ,EAAE,GAAG,CAAC,QAA8B;QAC5C,SAAS,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7F,QAAQ,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,YAAY,EACV,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACpF,YAAY,EACV,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,iBAAiB,EACf,oBAAoB,KAAK,SAAS;YAChC,CAAC,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,CAAC;YACnD,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,GAA4B,EAC5B,EAAU,EACV,MAA0B;IAE1B,IAAI,QAA8B,CAAC;IAEnC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAgB,EAAE,CAAC;IAC7D,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,GAAa,CAAC;QACpC,4BAA4B;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1C,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE;aAC/D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YACxD,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,mCAAoC,CAAW,CAAC,OAAO,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAChB,GAAG,CAAC,GAAc,IAAM,GAAG,CAAC,IAAgC,EAAE,GAAc,IAAI,GAAG,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,QAAQ;QACR,SAAS,EAAG,GAAG,CAAC,KAAkB,IAAI,EAAE;QACxC,aAAa;QACb,QAAQ,EAAE,GAAG,CAAC,QAA+B;QAC7C,aAAa,EAAE,GAAG,CAAC,MAA4B;QAC/C,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,GAA+C,EAC/C,MAA0B;IAE1B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,iBAAiB;QACjB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,QAAQ,EAAE,GAAG,CAAC,QAA4B;YAC1C,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;SAC/B,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,6BAA6B;SACvD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK;YACL,QAAQ,EAAE,GAAG,CAAC,QAAsC;YACpD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,gCAAiC,CAAW,CAAC,OAAO,EAAE;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,mBAAmB;IACnB,wBAAwB;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,cAAc;CACf,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,GAA4B,EAAE,EAAU;IAChE,MAAM,QAAQ,GAAI,GAAG,CAAC,GAAgB,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAI,GAAG,CAAC,KAAwC,IAAI,EAAE,CAAC;IACrE,MAAM,YAAY,GAAI,GAAG,CAAC,OAAoB,IAAI,SAAS,CAAC;IAE5D,MAAM,WAAW,GAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,UAAU,GAAI,CAAC,CAAC,KAAgB,IAAI,GAAG,CAAC;QAC9C,MAAM,SAAS,GACb,UAAU,KAAK,GAAG;YAChB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjC,CAAC,CAAE,UAAwB;gBAC3B,CAAC,CAAC,GAAG,CAAC;QAEZ,4DAA4D;QAC5D,IAAI,MAA4B,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,CAAC,CAAC,MAAgB,CAAC;YACrC,MAAM,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,SAAkC,CAAC;QACrF,CAAC;QAED,MAAM,KAAK,GAAe,EAAE,SAAS,EAAE,CAAC;QACxC,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAiB,CAAC;QAC/C,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAgC,CAAC;YACjD,KAAK,CAAC,KAAK,GAAG;gBACZ,WAAW,EAAG,KAAK,CAAC,WAAsB,IAAI,CAAC;gBAC/C,OAAO,EAAG,KAAK,CAAC,OAAqD,EAAE,OAAO,IAAI,MAAM;gBACxF,WAAW,EAAE,KAAK,CAAC,WAAiC;gBACpD,UAAU,EAAE,KAAK,CAAC,UAAgC;aACnD,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,KAAK;QACX,EAAE;QACF,QAAQ;QACR,WAAW;QACX,YAAY,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAChF,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ir-generator.js","sourceRoot":"","sources":["../../src/compiler/ir-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwCH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AASzD;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,8BAA8B;IAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,mBAAmB;IACnB,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAkB;gBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,OAAO,EAAE,KAAK,CAAC,OAAkB;gBACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAG,KAMhB,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAqB;oBACrD,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,GAAG,EAAE,QAAQ,CAAC,GAAG;iBAClB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;oBACtB,OAAO,EAAE,KAAK;iBACf,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG;QACZ,UAAU,EAAE,EAAgC;QAC5C,SAAS,EAAE,EAAgC;KAC5C,CAAC;IACF,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC;QAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,IAAI,EAAE,KAAK,CAAC,IAAwB;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,kBAAkB,EAAE,KAAK,CAAC,mBAAmB;oBAC3C,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE;oBACzD,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI;gBACJ,KAAK,EAAE,OAAO,CAAC,KAA4B;gBAC3C,KAAK,EAAE,WAAW;gBAClB,YAAY,EAAE,OAAO,CAAC,aAAa;gBACnC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,YAAY,EAAE,OAAO,CAAC,aAAa;gBACnC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,cAAc,EAAE,OAAO,CAAC,OAAO;gBAC/B,eAAe,EAAE,OAAO,CAAC,QAAQ;gBACjC,SAAS,EAAE,OAAO,CAAC,UAAU;oBAC3B,CAAC,CAAC;wBACE,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,IAAI,EAAE;wBACpD,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,GAAG;qBACxD;oBACH,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,4BAA4B;QAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,SAAS,GAAqD,EAAE,CAAC;IAEvE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAErB,oDAAoD;oBACpD,MAAM,GAAG,GAAG,OAAO,CAAC,eAA+D,CAAC;oBACpF,IAAI,GAAG,EAAE,CAAC;wBACR,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,6BAA8B,CAAW,CAAC,OAAO,EAAE;iBAC7D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC/C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,GAAY;QAClB,EAAE;QACF,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE;YACJ,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,IAAI;SACL;QACD,OAAO;QACP,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,MAAM;QACN,QAAQ;QACR,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;QACpE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAwC;IAChE,IAAI,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,QAAkB,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,GAAG,CAAC,SAAmB;YACnC,YAAY,EAAG,GAAG,CAAC,aAAwB,IAAI,EAAE;SAClD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,CAAC,KAAe;YAC1B,MAAM,EAAE,GAAG,CAAC,MAA4B;SACzC,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAwC,CAAC,CAAC;YAC/E,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CACpB,GAA4B,EAC5B,WAAwB,EACxB,MAA0B;IAE1B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAY,CAAC;IAC5B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;IACf,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,WAAW,GAA+B,EAAE,CAAC;QACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAkC,CAAC;QACvD,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,IAAI,UAAsB,CAAC;gBAC3B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAClC,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;gBAC1C,CAAC;qBAAM,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACzC,UAAU,GAAG;wBACX,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;qBACpD,CAAC;gBACJ,CAAC;qBAAM,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC1C,UAAU,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,SAAS,EAAE,CAAC,CAAC;gBACjE,CAAC;gBACD,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,mCAAmC,QAAQ,MAAO,CAAW,CAAC,OAAO,EAAE;iBACjF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,EAAE;YACF,WAAW;YACX,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;QACtD,iCAAiC;QACjC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,GAAG,CAAC,EAAY,CAAC;YACtC,IAAI,SAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;iBAC9D,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,uBAAuB;YACvB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAiC,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEzB,MAAM,WAAW,GAAG,oBAAoB,CACtC,GAAG,CAAC,WAAkD,EACtD,MAAM,CACP,CAAC;YACF,MAAM,SAAS,GAAI,GAAG,CAAC,UAAqB,IAAI,QAAQ,CAAC;YAEzD,0CAA0C;YAC1C,MAAM,UAAU,GAAe;gBAC7B,IAAI,EAAE,QAAQ;gBACd,EAAE;gBACF,MAAM;gBACN,WAAW;gBACX,SAAS,EAAE,SAAoC;gBAC/C,SAAS,EAAE,EAAE;aACd,CAAC;YAEF,sBAAsB;YACtB,MAAM,gBAAgB,GAAoB;gBACxC,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,GAAG,EAAE,OAAO;gBAChB,SAAS;gBACT,SAAS,EAAE,CAAC,EAAE,CAAC;gBACf,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;aACd,CAAC;YAEF,kEAAkE;YAClE,gDAAgD;YAChD,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,kCAAkC;QAClC,MAAM,YAAY,GAAG,GAAG,CAAC,EAAY,CAAC;QACtC,IAAI,SAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,SAAS,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,8BAA+B,CAAW,CAAC,OAAO,EAAE;aAC9D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,EAAE;YACF,SAAS;YACT,SAAS,EAAG,GAAG,CAAC,IAAiB,IAAI,EAAE;YACvC,SAAS,EAAG,GAAG,CAAC,IAAiB,IAAI,EAAE;YACvC,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAiC,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,WAAW,GAAG,oBAAoB,CACtC,GAAG,CAAC,WAAkD,EACtD,MAAM,CACP,CAAC;QACF,MAAM,SAAS,GAAI,GAAG,CAAC,UAAqB,IAAI,QAAQ,CAAC;QAEzD,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,EAAE;YACF,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAA2B;YACtC,WAAW;YACX,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,SAAoC;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,IAAI,QAAQ,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACrD,OAAO,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,gDAAgD;IAChD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACjB,OAAO,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,YAAY;IACZ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,QAAQ,EAAE,GAAG,CAAC,IAAc;YAC5B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,YAAY;IACZ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAA8B,CAAC;QACpD,MAAM,IAAI,GAA+B,EAAE,CAAC;QAE5C,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,8BAA8B,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,KAAK;YACL,IAAI;YACJ,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,EAAE;YACF,MAAM,EAAE,GAAG,CAAC,IAAc;YAC1B,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAgB,CAAC;QACzC,MAAM,OAAO,GAAI,QAAQ,CAAC,OAAkB,IAAI,SAAS,CAAC;QAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,OAA8C,CAAC;QAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAA4B,CAAC;QAC1D,MAAM,eAAe,GACnB,QAAQ,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAE,OAAiB,CAAC,CAAC,CAAE,QAAkB,CAAC;QAC/E,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,qBAAqB,KAAK,IAAI,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC;QACjF,MAAM,mBAAmB,GAAG,QAAQ,CAAC,iBAA0C,CAAC;QAChF,MAAM,gBAAgB,GAAG,mBAAmB;YAC1C,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAI,QAAQ,CAAC,OAAkB,IAAI,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC;QAChD,MAAM,aAAa,GAAI,QAAQ,CAAC,MAAiB,IAAI,GAAG,EAAE,SAAS,CAAC;QACpE,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAoD,CAAC;QACtF,MAAM,YAAY,GAAG,eAAe;YAClC,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;YACpC,CAAC,CAAE,EAAE,IAAI,EAAE,SAAS,EAAmC,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,OAAO;YACP,MAAM;YACN,OAAO;YACP,WAAW;YACX,YAAY;YACZ,aAAa;YACb,eAAe;YACf,uBAAuB;YACvB,gBAAgB;YAChB,OAAO;YACP,QAAQ,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC;YACrD,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,WAAW,GAAI,QAAQ,CAAC,QAA2C,IAAI,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,IAAc,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,KAAK,EAAG,CAAC,CAAC,KAAkB,IAAI,EAAE;SACnC,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,QAAQ,CAAC,IAA2C,CAAC;QACrE,IAAI,IAAI,GAAyB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACjD,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAoC,CAAC;YAC1D,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgB,CAAC;gBAC3C,IAAI,GAAG;oBACL,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC;oBACrE,KAAK,EAAG,OAAO,CAAC,KAAuB,IAAI,KAAK;iBACjD,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBAC1B,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAG,OAAO,CAAC,KAAgB,IAAI,CAAC,EAAE,CAAC;YAChE,CAAC;iBAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,QAAQ;YACR,IAAI;YACJ,MAAM,EAAG,QAAQ,CAAC,OAAgC,IAAI,OAAO;YAC7D,OAAO,EAAE,QAAQ,CAAC,OAA6B;YAC/C,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAmC,CAAC;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAgB,CAAC;QAC5C,MAAM,SAAS,GAAI,QAAQ,CAAC,MAAyC,IAAI,EAAE,CAAC;QAC5E,MAAM,MAAM,GAA2B,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,EAA0C,CAAC;YAC5D,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACL,EAAE,EAAE,QAAQ;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAc;oBAC1B,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;iBACvD,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAe,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;gBAClB,OAAO;oBACL,EAAE,EAAE,MAAM;oBACV,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;oBAC5C,KAAK,EAAG,KAAK,CAAC,KAAwB,IAAI,KAAK;iBAChD,CAAC;YACJ,CAAC;YACD,IAAI,EAAE,KAAK,OAAO,EAAE,CAAC;gBACnB,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;YACzF,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAc,EAAoC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC;YAClC,MAAM;YACN,QAAQ,EAAG,QAAQ,CAAC,QAAoB,IAAI,KAAK;YACjD,aAAa,EAAE,GAAG,CAAC,MAA4B;YAC/C,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAA4B,EAAE,MAA0B;IAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAc,CAAC;IAEhC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,OAAO,EAAE,GAAG,CAAC,QAAkB;gBAC/B,QAAQ,EAAE,GAAG,CAAC,SAAmB;gBACjC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,IAAI,EAAG,GAAG,CAAC,IAAiC,IAAI,UAAU;aACjD,CAAC;QAEd,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,UAAU,EAAE,GAAG,CAAC,UAAgC;aACvC,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAChD,CAAC;QAEd,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;aAC/E,CAAC;QAEd,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,GAAG,CAAC,MAA8B;aACjC,CAAC;QAEd,KAAK,eAAe;YAClB,OAAO;gBACL,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;gBACvD,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,oBAAoB;YACvB,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC7C,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;gBACvD,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,kBAAkB;YACrB,OAAO;gBACL,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,uBAAuB;YAC1B,OAAO;gBACL,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC7C,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,WAAW;YACd,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,oBAAoB;YACvB,OAAO;gBACL,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC7C,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC;gBACvD,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,cAAc;YACjB,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC7C,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,kBAAkB;YACrB,OAAO;gBACL,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC;gBAC3B,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBACvC,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,aAAa;YAChB,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC7C,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE;gBAC7C,GAAG,wBAAwB,CAAC,GAAG,CAAC;aACvB,CAAC;QAEd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;YACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,iCAAiC;iBAC3C,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,OAAO,EAAE,mBAAmB,CAAC,YAA+B,EAAE,MAAM,CAAC;aAC5D,CAAC;QACd,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,GAAG,CAAC,EAAY,CAAC;YACjC,MAAM,SAAS,GACb,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC;YACnF,OAAO;gBACL,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAe;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,MAAgB,EAAE,MAAM,CAAC;gBACzD,EAAE,EAAE,SAAS,CAAC,CAAC,CAAE,OAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;aAClE,CAAC;QACd,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,GAAG,CAAC,KAA2B,CAAC;YAC9C,MAAM,EAAE,GAAG,GAAG,CAAC,EAAwB,CAAC;YACxC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;YAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,sBAAsB;oBAC5B,OAAO,EAAE,8BAA8B;iBACxC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,2BAA2B;iBACrC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,IAAI,GAAsC,EAAE,CAAC;YACnD,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,IACE,EAAE,KAAK,OAAO;wBACd,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,CAAC;wBACxC,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;wBACvD,SAAS;oBACX,CAAC;oBACD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;wBACjD,SAAS;oBACX,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK;gBACL,EAAE;gBACF,IAAI;aACK,CAAC;QACd,CAAC;QAED;YACE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,wBAAwB,IAAI,GAAG,EAAE,CAAC,CAAC;YACvF,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,MAA0B;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAC1D,OAAO,KAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,uBAAuB;QAC7B,OAAO,EAAE,oCAAoC,MAAM,CAAC,KAAK,CAAC,GAAG;KAC9D,CAAC,CAAC;IACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,GAA4B;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAC;IAC/C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/F,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,OAAO;aACpB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,MAA0B;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,qCAAqC;aAC/C,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK;YACL,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7F,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO;aACnB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,GAA4B;IAC5D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7F,MAAM,WAAW,GAAG,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,cAAc,CAAC;IACjE,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAErF,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAChF,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;IACjE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3D,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACvE,IAAI,OAAO,cAAc,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;IAC1C,CAAC;IACD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;IACvE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,MAA0B;IACxE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QACzF,OAAO,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,kDAAkD;QAClD,IAAI,MAAM,IAAI,KAAK,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,KAA0B,CAAC;QACpC,CAAC;QAED,MAAM,GAAG,GAAsC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,EACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,IAAI,KAAK,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9E,OAAO,KAA0B,CAAC;QACpC,CAAC;QACD,MAAM,GAAG,GAAsC,EAAE,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,KAAgC,EAChC,MAA0B;IAE1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,+BAA+B,KAAK,MAAO,CAAW,CAAC,OAAO,EAAE;SAC1E,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,MAA0B;IACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,SAAS,GAAI,KAA6B,CAAC,MAAM,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,wCAAwC,SAAS,MAAO,CAAW,CAAC,OAAO,EAAE;iBACvF,CAAC,CAAC;gBACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;QACD,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;YACzB,OAAO,gBAAgB,CAAE,KAAgC,CAAC,SAAS,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,wCAAwC,MAAM,CAAC,KAAK,CAAC,MAAO,CAAW,CAAC,OAAO,EAAE;SAC3F,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAgC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,CAAC;AAED,SAAS,uBAAuB,CAC9B,GAA4B,EAC5B,MAA0B;IAE1B,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,qCAAqC,GAAG,MAAO,CAAW,CAAC,OAAO,EAAE;iBAC9E,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,GAA4B;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,IAA4C,CAAC;IAC9D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAG,GAAG,CAAC,MAAmB,IAAI,EAAE;aACvC,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,GAAG,CAAC,GAAyB;gBAClC,GAAG,EAAE,GAAG,CAAC,GAAyB;aACnC,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAG,GAAG,CAAC,UAAiC,IAAK,GAAG,CAAC,SAAgC;gBAC1F,SAAS,EAAG,GAAG,CAAC,UAAiC,IAAK,GAAG,CAAC,SAAgC;gBAC1F,OAAO,EAAE,GAAG,CAAC,OAA6B;aAC3C,CAAC;QACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,GAAG,CAAC,MAA6C,CAAC;YACpE,MAAM,MAAM,GAA6D,SAAS;gBAChF,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9C,GAAG;oBACH,iBAAiB,CAAC,KAAgC,CAAC;iBACpD,CAAC,CACH;gBACH,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACpC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,CAAC,KAA4C,CAAC;YAClE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;aAC1D,CAAC;QACJ,CAAC;QACD;YACE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,GAAwC,EACxC,MAA0B;IAE1B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IAEpB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAgC,CAAC;IACtF,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,QAAQ,CAAgC,CAAC;IACnF,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAAgC,CAAC;IAC/F,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,CAAgC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,cAAc,CAGxD,CAAC;IACd,MAAM,eAAe,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,YAAY,CAIjD,CAAC;IACd,MAAM,oBAAoB,GAAG,CAAC,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,iBAAiB,CAIhE,CAAC;IAEd,OAAO;QACL,cAAc,EAAE,GAAG,CAAC,YAAkC;QACtD,iBAAiB,EACf,OAAO,iBAAiB,KAAK,QAAQ;YACnC,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,OAAO,iBAAiB,KAAK,QAAQ;gBACrC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACtC,CAAC,CAAC,SAAS;QACjB,QAAQ,EAAE,GAAG,CAAC,QAA8B;QAC5C,SAAS,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7F,QAAQ,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,YAAY,EACV,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACpF,YAAY,EACV,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAC1F,iBAAiB,EACf,oBAAoB,KAAK,SAAS;YAChC,CAAC,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,MAAM,CAAC;YACnD,CAAC,CAAC,SAAS;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,GAA4B,EAC5B,EAAU,EACV,MAA0B;IAE1B,IAAI,QAA8B,CAAC;IAEnC,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACpB,QAAQ,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAgB,EAAE,CAAC;IAC7D,CAAC;SAAM,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,GAAa,CAAC;QACpC,4BAA4B;QAC5B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,uBAAuB,SAAS,EAAE,EAAE,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1C,QAAQ,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC/C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,+BAAgC,CAAW,CAAC,OAAO,EAAE;aAC/D,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YACxD,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,mCAAoC,CAAW,CAAC,OAAO,EAAE;aACnE,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAChB,GAAG,CAAC,GAAc,IAAM,GAAG,CAAC,IAAgC,EAAE,GAAc,IAAI,GAAG,CAAC;IAEvF,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,QAAQ;QACR,SAAS,EAAG,GAAG,CAAC,KAAkB,IAAI,EAAE;QACxC,aAAa;QACb,QAAQ,EAAE,GAAG,CAAC,QAA+B;QAC7C,aAAa,EAAE,GAAG,CAAC,MAA4B;QAC/C,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,GAA+C,EAC/C,MAA0B;IAE1B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,iBAAiB;QACjB,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,OAAO,EAAE,GAAG,CAAC,QAAQ;YACrB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,QAAQ,EAAE,GAAG,CAAC,QAA4B;YAC1C,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;SAC/B,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,UAAU,GAAG,CAAC,EAAE,6BAA6B;SACvD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,KAAK;YACL,QAAQ,EAAE,GAAG,CAAC,QAAsC;YACpD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;SAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,gCAAiC,CAAW,CAAC,OAAO,EAAE;SAChE,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,mBAAmB;IACnB,wBAAwB;IACxB,sBAAsB;IACtB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,cAAc;CACf,CAAC,CAAC;AAEH;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,GAA4B,EAAE,EAAU;IAChE,MAAM,QAAQ,GAAI,GAAG,CAAC,GAAgB,IAAI,EAAE,CAAC;IAC7C,MAAM,QAAQ,GAAI,GAAG,CAAC,KAAwC,IAAI,EAAE,CAAC;IACrE,MAAM,YAAY,GAAI,GAAG,CAAC,OAAoB,IAAI,SAAS,CAAC;IAE5D,MAAM,WAAW,GAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,UAAU,GAAI,CAAC,CAAC,KAAgB,IAAI,GAAG,CAAC;QAC9C,MAAM,SAAS,GACb,UAAU,KAAK,GAAG;YAChB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjC,CAAC,CAAE,UAAwB;gBAC3B,CAAC,CAAC,GAAG,CAAC;QAEZ,4DAA4D;QAC5D,IAAI,MAA4B,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,CAAC,CAAC,MAAgB,CAAC;YACrC,MAAM,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,SAAkC,CAAC;QACrF,CAAC;QAED,MAAM,KAAK,GAAe,EAAE,SAAS,EAAE,CAAC;QACxC,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,CAAC,KAAK;YAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAiB,CAAC;QAC/C,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAgC,CAAC;YACjD,KAAK,CAAC,KAAK,GAAG;gBACZ,WAAW,EAAG,KAAK,CAAC,WAAsB,IAAI,CAAC;gBAC/C,OAAO,EAAG,KAAK,CAAC,OAAqD,EAAE,OAAO,IAAI,MAAM;gBACxF,WAAW,EAAE,KAAK,CAAC,WAAiC;gBACpD,UAAU,EAAE,KAAK,CAAC,UAAgC;aACnD,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,KAAK;QACX,EAAE;QACF,QAAQ;QACR,WAAW;QACX,YAAY,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAChF,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC"}
@@ -237,21 +237,55 @@ function validateStep(step, ctx, errors, warnings) {
237
237
  message: `Step '${step.id}' references undefined asset '${step.action.assetIn}'`,
238
238
  });
239
239
  }
240
- if ("assetOut" in step.action && !ctx.assetSymbols.has(step.action.assetOut)) {
240
+ if ("asset" in step.action && !ctx.assetSymbols.has(step.action.asset)) {
241
241
  warnings.push({
242
242
  code: "UNKNOWN_ASSET",
243
- message: `Step '${step.id}' references undefined asset '${step.action.assetOut}'`,
243
+ message: `Step '${step.id}' references undefined asset '${step.action.asset}'`,
244
244
  });
245
245
  }
246
- if ("asset" in step.action && !ctx.assetSymbols.has(step.action.asset)) {
246
+ if ("assetOut" in step.action &&
247
+ step.action.assetOut &&
248
+ !ctx.assetSymbols.has(step.action.assetOut)) {
247
249
  warnings.push({
248
250
  code: "UNKNOWN_ASSET",
249
- message: `Step '${step.id}' references undefined asset '${step.action.asset}'`,
251
+ message: `Step '${step.id}' references undefined asset '${step.action.assetOut}'`,
250
252
  });
251
253
  }
254
+ if ("outputs" in step.action) {
255
+ const outputs = step.action.outputs;
256
+ if (outputs) {
257
+ for (const outputAsset of outputs) {
258
+ if (ctx.assetSymbols.has(outputAsset))
259
+ continue;
260
+ warnings.push({
261
+ code: "UNKNOWN_ASSET",
262
+ message: `Step '${step.id}' references undefined asset '${outputAsset}'`,
263
+ });
264
+ }
265
+ }
266
+ }
267
+ if ("inputs" in step.action) {
268
+ for (const input of step.action.inputs) {
269
+ if (ctx.assetSymbols.has(input.asset))
270
+ continue;
271
+ warnings.push({
272
+ code: "UNKNOWN_ASSET",
273
+ message: `Step '${step.id}' references undefined asset '${input.asset}'`,
274
+ });
275
+ }
276
+ }
252
277
  // Validate amount expression if not "max"
253
278
  if ("amount" in step.action && step.action.amount !== "max") {
254
- validateExpression(step.action.amount, ctx, errors, `step '${step.id}'`);
279
+ if (isExpressionNode(step.action.amount)) {
280
+ validateExpression(step.action.amount, ctx, errors, `step '${step.id}'`);
281
+ }
282
+ }
283
+ if ("inputs" in step.action) {
284
+ for (const input of step.action.inputs) {
285
+ if (isExpressionNode(input.amount)) {
286
+ validateExpression(input.amount, ctx, errors, `step '${step.id}'`);
287
+ }
288
+ }
255
289
  }
256
290
  // Validate skill reference
257
291
  if (step.skill && !ctx.skillNames.has(step.skill)) {
@@ -366,6 +400,9 @@ function validateStep(step, ctx, errors, warnings) {
366
400
  break;
367
401
  }
368
402
  }
403
+ function isExpressionNode(value) {
404
+ return typeof value === "object" && value !== null && "kind" in value;
405
+ }
369
406
  /**
370
407
  * Validate an expression
371
408
  */