nlptoolkit-classification 1.0.8 → 1.0.9

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 (178) hide show
  1. package/dist/Attribute/Attribute.js +6 -16
  2. package/dist/Attribute/Attribute.js.map +1 -1
  3. package/dist/Attribute/AttributeType.js +22 -32
  4. package/dist/Attribute/AttributeType.js.map +1 -1
  5. package/dist/Attribute/BinaryAttribute.js +14 -24
  6. package/dist/Attribute/BinaryAttribute.js.map +1 -1
  7. package/dist/Attribute/ContinuousAttribute.js +46 -55
  8. package/dist/Attribute/ContinuousAttribute.js.map +1 -1
  9. package/dist/Attribute/DiscreteAttribute.js +38 -48
  10. package/dist/Attribute/DiscreteAttribute.js.map +1 -1
  11. package/dist/Attribute/DiscreteIndexedAttribute.js +47 -55
  12. package/dist/Attribute/DiscreteIndexedAttribute.js.map +1 -1
  13. package/dist/DataSet/DataDefinition.js +115 -123
  14. package/dist/DataSet/DataDefinition.js.map +1 -1
  15. package/dist/DataSet/DataSet.js +268 -245
  16. package/dist/DataSet/DataSet.js.map +1 -1
  17. package/dist/DistanceMetric/DistanceMetric.js +2 -12
  18. package/dist/DistanceMetric/EuclidianDistance.js +27 -37
  19. package/dist/DistanceMetric/EuclidianDistance.js.map +1 -1
  20. package/dist/DistanceMetric/MahalanobisDistance.js +27 -36
  21. package/dist/DistanceMetric/MahalanobisDistance.js.map +1 -1
  22. package/dist/Experiment/BootstrapRun.js +31 -40
  23. package/dist/Experiment/BootstrapRun.js.map +1 -1
  24. package/dist/Experiment/Experiment.js +46 -53
  25. package/dist/Experiment/Experiment.js.map +1 -1
  26. package/dist/Experiment/KFoldRun.js +45 -54
  27. package/dist/Experiment/KFoldRun.js.map +1 -1
  28. package/dist/Experiment/KFoldRunSeparateTest.js +48 -58
  29. package/dist/Experiment/KFoldRunSeparateTest.js.map +1 -1
  30. package/dist/Experiment/MultipleRun.js +2 -12
  31. package/dist/Experiment/MxKFoldRun.js +31 -40
  32. package/dist/Experiment/MxKFoldRun.js.map +1 -1
  33. package/dist/Experiment/MxKFoldRunSeparateTest.js +35 -44
  34. package/dist/Experiment/MxKFoldRunSeparateTest.js.map +1 -1
  35. package/dist/Experiment/SingleRun.js +2 -12
  36. package/dist/Experiment/SingleRunWithK.js +39 -48
  37. package/dist/Experiment/SingleRunWithK.js.map +1 -1
  38. package/dist/Experiment/StratifiedKFoldRun.js +26 -36
  39. package/dist/Experiment/StratifiedKFoldRun.js.map +1 -1
  40. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js +30 -40
  41. package/dist/Experiment/StratifiedKFoldRunSeparateTest.js.map +1 -1
  42. package/dist/Experiment/StratifiedMxKFoldRun.js +29 -39
  43. package/dist/Experiment/StratifiedMxKFoldRun.js.map +1 -1
  44. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js +34 -43
  45. package/dist/Experiment/StratifiedMxKFoldRunSeparateTest.js.map +1 -1
  46. package/dist/Experiment/StratifiedSingleRunWithK.js +27 -36
  47. package/dist/Experiment/StratifiedSingleRunWithK.js.map +1 -1
  48. package/dist/FeatureSelection/BackwardSelection.js +26 -36
  49. package/dist/FeatureSelection/BackwardSelection.js.map +1 -1
  50. package/dist/FeatureSelection/FeatureSubSet.js +72 -82
  51. package/dist/FeatureSelection/FeatureSubSet.js.map +1 -1
  52. package/dist/FeatureSelection/FloatingSelection.js +25 -35
  53. package/dist/FeatureSelection/FloatingSelection.js.map +1 -1
  54. package/dist/FeatureSelection/ForwardSelection.js +25 -35
  55. package/dist/FeatureSelection/ForwardSelection.js.map +1 -1
  56. package/dist/FeatureSelection/SubSetSelection.js +69 -78
  57. package/dist/FeatureSelection/SubSetSelection.js.map +1 -1
  58. package/dist/Filter/DiscreteToContinuous.js +50 -60
  59. package/dist/Filter/DiscreteToContinuous.js.map +1 -1
  60. package/dist/Filter/DiscreteToIndexed.js +40 -50
  61. package/dist/Filter/DiscreteToIndexed.js.map +1 -1
  62. package/dist/Filter/FeatureFilter.js +23 -32
  63. package/dist/Filter/FeatureFilter.js.map +1 -1
  64. package/dist/Filter/LaryFilter.js +46 -55
  65. package/dist/Filter/LaryFilter.js.map +1 -1
  66. package/dist/Filter/LaryToBinary.js +48 -58
  67. package/dist/Filter/LaryToBinary.js.map +1 -1
  68. package/dist/Filter/Normalize.js +33 -41
  69. package/dist/Filter/Normalize.js.map +1 -1
  70. package/dist/Filter/Pca.js +86 -96
  71. package/dist/Filter/Pca.js.map +1 -1
  72. package/dist/Filter/TrainedFeatureFilter.js +14 -24
  73. package/dist/Filter/TrainedFeatureFilter.js.map +1 -1
  74. package/dist/Instance/CompositeInstance.js +46 -56
  75. package/dist/Instance/CompositeInstance.js.map +1 -1
  76. package/dist/Instance/Instance.js +145 -154
  77. package/dist/Instance/Instance.js.map +1 -1
  78. package/dist/InstanceList/InstanceList.js +466 -443
  79. package/dist/InstanceList/InstanceList.js.map +1 -1
  80. package/dist/InstanceList/InstanceListOfSameClass.js +23 -32
  81. package/dist/InstanceList/InstanceListOfSameClass.js.map +1 -1
  82. package/dist/InstanceList/Partition.js +167 -177
  83. package/dist/InstanceList/Partition.js.map +1 -1
  84. package/dist/Model/DecisionTree/DecisionCondition.js +71 -80
  85. package/dist/Model/DecisionTree/DecisionCondition.js.map +1 -1
  86. package/dist/Model/DecisionTree/DecisionNode.js +302 -311
  87. package/dist/Model/DecisionTree/DecisionNode.js.map +1 -1
  88. package/dist/Model/DecisionTree/DecisionStump.js +22 -32
  89. package/dist/Model/DecisionTree/DecisionStump.js.map +1 -1
  90. package/dist/Model/DecisionTree/DecisionTree.js +89 -98
  91. package/dist/Model/DecisionTree/DecisionTree.js.map +1 -1
  92. package/dist/Model/DummyModel.js +64 -73
  93. package/dist/Model/DummyModel.js.map +1 -1
  94. package/dist/Model/Ensemble/BaggingModel.js +34 -44
  95. package/dist/Model/Ensemble/BaggingModel.js.map +1 -1
  96. package/dist/Model/Ensemble/RandomForestModel.js +31 -41
  97. package/dist/Model/Ensemble/RandomForestModel.js.map +1 -1
  98. package/dist/Model/Ensemble/TreeEnsembleModel.js +55 -64
  99. package/dist/Model/Ensemble/TreeEnsembleModel.js.map +1 -1
  100. package/dist/Model/Model.js +130 -140
  101. package/dist/Model/Model.js.map +1 -1
  102. package/dist/Model/NeuralNetwork/DeepNetworkModel.js +162 -169
  103. package/dist/Model/NeuralNetwork/DeepNetworkModel.js.map +1 -1
  104. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js +69 -78
  105. package/dist/Model/NeuralNetwork/LinearPerceptronModel.js.map +1 -1
  106. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js +112 -120
  107. package/dist/Model/NeuralNetwork/MultiLayerPerceptronModel.js.map +1 -1
  108. package/dist/Model/NeuralNetwork/NeuralNetworkModel.js +197 -201
  109. package/dist/Model/NeuralNetwork/NeuralNetworkModel.js.map +1 -1
  110. package/dist/Model/NonParametric/KnnInstance.js +21 -29
  111. package/dist/Model/NonParametric/KnnInstance.js.map +1 -1
  112. package/dist/Model/NonParametric/KnnModel.js +101 -108
  113. package/dist/Model/NonParametric/KnnModel.js.map +1 -1
  114. package/dist/Model/Parametric/GaussianModel.js +82 -91
  115. package/dist/Model/Parametric/GaussianModel.js.map +1 -1
  116. package/dist/Model/Parametric/KMeansModel.js +59 -67
  117. package/dist/Model/Parametric/KMeansModel.js.map +1 -1
  118. package/dist/Model/Parametric/LdaModel.js +83 -91
  119. package/dist/Model/Parametric/LdaModel.js.map +1 -1
  120. package/dist/Model/Parametric/NaiveBayesModel.js +119 -132
  121. package/dist/Model/Parametric/NaiveBayesModel.js.map +1 -1
  122. package/dist/Model/Parametric/QdaModel.js +70 -79
  123. package/dist/Model/Parametric/QdaModel.js.map +1 -1
  124. package/dist/Model/RandomModel.js +85 -92
  125. package/dist/Model/RandomModel.js.map +1 -1
  126. package/dist/Model/ValidatedModel.js +21 -31
  127. package/dist/Model/ValidatedModel.js.map +1 -1
  128. package/dist/Parameter/ActivationFunction.js +9 -19
  129. package/dist/Parameter/ActivationFunction.js.map +1 -1
  130. package/dist/Parameter/BaggingParameter.js +24 -33
  131. package/dist/Parameter/BaggingParameter.js.map +1 -1
  132. package/dist/Parameter/C45Parameter.js +34 -42
  133. package/dist/Parameter/C45Parameter.js.map +1 -1
  134. package/dist/Parameter/DeepNetworkParameter.js +48 -56
  135. package/dist/Parameter/DeepNetworkParameter.js.map +1 -1
  136. package/dist/Parameter/KMeansParameter.js +29 -38
  137. package/dist/Parameter/KMeansParameter.js.map +1 -1
  138. package/dist/Parameter/KnnParameter.js +25 -34
  139. package/dist/Parameter/KnnParameter.js.map +1 -1
  140. package/dist/Parameter/LinearPerceptronParameter.js +56 -62
  141. package/dist/Parameter/LinearPerceptronParameter.js.map +1 -1
  142. package/dist/Parameter/MultiLayerPerceptronParameter.js +38 -46
  143. package/dist/Parameter/MultiLayerPerceptronParameter.js.map +1 -1
  144. package/dist/Parameter/Parameter.js +21 -30
  145. package/dist/Parameter/Parameter.js.map +1 -1
  146. package/dist/Parameter/RandomForestParameter.js +25 -34
  147. package/dist/Parameter/RandomForestParameter.js.map +1 -1
  148. package/dist/Performance/ClassificationPerformance.js +24 -33
  149. package/dist/Performance/ClassificationPerformance.js.map +1 -1
  150. package/dist/Performance/ConfusionMatrix.js +149 -158
  151. package/dist/Performance/ConfusionMatrix.js.map +1 -1
  152. package/dist/Performance/DetailedClassificationPerformance.js +23 -32
  153. package/dist/Performance/DetailedClassificationPerformance.js.map +1 -1
  154. package/dist/Performance/ExperimentPerformance.js +184 -161
  155. package/dist/Performance/ExperimentPerformance.js.map +1 -1
  156. package/dist/Performance/Performance.js +21 -30
  157. package/dist/Performance/Performance.js.map +1 -1
  158. package/dist/StatisticalTest/Combined5x2F.js +41 -51
  159. package/dist/StatisticalTest/Combined5x2F.js.map +1 -1
  160. package/dist/StatisticalTest/Combined5x2t.js +42 -52
  161. package/dist/StatisticalTest/Combined5x2t.js.map +1 -1
  162. package/dist/StatisticalTest/Paired5x2t.js +40 -50
  163. package/dist/StatisticalTest/Paired5x2t.js.map +1 -1
  164. package/dist/StatisticalTest/PairedTest.js +31 -41
  165. package/dist/StatisticalTest/PairedTest.js.map +1 -1
  166. package/dist/StatisticalTest/Pairedt.js +38 -48
  167. package/dist/StatisticalTest/Pairedt.js.map +1 -1
  168. package/dist/StatisticalTest/Sign.js +50 -60
  169. package/dist/StatisticalTest/Sign.js.map +1 -1
  170. package/dist/StatisticalTest/StatisticalTestResult.js +65 -73
  171. package/dist/StatisticalTest/StatisticalTestResult.js.map +1 -1
  172. package/dist/StatisticalTest/StatisticalTestResultType.js +11 -21
  173. package/dist/StatisticalTest/StatisticalTestResultType.js.map +1 -1
  174. package/dist/index.js +95 -101
  175. package/dist/index.js.map +1 -1
  176. package/package.json +7 -6
  177. package/tsconfig.json +4 -3
  178. package/source/tsconfig.json +0 -13
@@ -1,92 +1,83 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DecisionCondition = void 0;
4
+ const DiscreteIndexedAttribute_1 = require("../../Attribute/DiscreteIndexedAttribute");
5
+ const DiscreteAttribute_1 = require("../../Attribute/DiscreteAttribute");
6
+ const ContinuousAttribute_1 = require("../../Attribute/ContinuousAttribute");
7
+ class DecisionCondition {
8
+ attributeIndex = -1;
9
+ comparison = undefined;
10
+ value;
11
+ /**
12
+ * A constructor that sets attributeIndex, comparison and {@link Attribute} value.
13
+ *
14
+ * @param attributeIndex Integer number that shows attribute index.
15
+ * @param value The value of the {@link Attribute}.
16
+ * @param comparison Comparison character.
17
+ */
18
+ constructor(attributeIndex, value, comparison) {
19
+ this.attributeIndex = attributeIndex;
20
+ this.comparison = comparison;
21
+ this.value = value;
5
22
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "../../Attribute/DiscreteIndexedAttribute", "../../Attribute/DiscreteAttribute", "../../Attribute/ContinuousAttribute"], factory);
23
+ /**
24
+ * Accessor for the attribute index.
25
+ * @return Attribute index.
26
+ */
27
+ getAttributeIndex() {
28
+ return this.attributeIndex;
8
29
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DecisionCondition = void 0;
13
- const DiscreteIndexedAttribute_1 = require("../../Attribute/DiscreteIndexedAttribute");
14
- const DiscreteAttribute_1 = require("../../Attribute/DiscreteAttribute");
15
- const ContinuousAttribute_1 = require("../../Attribute/ContinuousAttribute");
16
- class DecisionCondition {
17
- /**
18
- * A constructor that sets attributeIndex, comparison and {@link Attribute} value.
19
- *
20
- * @param attributeIndex Integer number that shows attribute index.
21
- * @param value The value of the {@link Attribute}.
22
- * @param comparison Comparison character.
23
- */
24
- constructor(attributeIndex, value, comparison) {
25
- this.attributeIndex = -1;
26
- this.comparison = undefined;
27
- this.attributeIndex = attributeIndex;
28
- this.comparison = comparison;
29
- this.value = value;
30
- }
31
- /**
32
- * Accessor for the attribute index.
33
- * @return Attribute index.
34
- */
35
- getAttributeIndex() {
36
- return this.attributeIndex;
37
- }
38
- /**
39
- * Accessor for the value.
40
- * @return Value.
41
- */
42
- getValue() {
43
- return this.value;
30
+ /**
31
+ * Accessor for the value.
32
+ * @return Value.
33
+ */
34
+ getValue() {
35
+ return this.value;
36
+ }
37
+ /**
38
+ * The satisfy method takes an {@link Instance} as an input.
39
+ * <p>
40
+ * If defined {@link Attribute} value is a {@link DiscreteIndexedAttribute} it compares the index of {@link Attribute} of instance at the
41
+ * attributeIndex and the index of {@link Attribute} value and returns the result.
42
+ * <p>
43
+ * If defined {@link Attribute} value is a {@link DiscreteAttribute} it compares the value of {@link Attribute} of instance at the
44
+ * attributeIndex and the value of {@link Attribute} value and returns the result.
45
+ * <p>
46
+ * If defined {@link Attribute} value is a {@link ContinuousAttribute} it compares the value of {@link Attribute} of instance at the
47
+ * attributeIndex and the value of {@link Attribute} value and returns the result according to the comparison character whether it is
48
+ * less than or greater than signs.
49
+ *
50
+ * @param instance Instance to compare.
51
+ * @return True if gicen instance satisfies the conditions.
52
+ */
53
+ satisfy(instance) {
54
+ if (this.value instanceof DiscreteIndexedAttribute_1.DiscreteIndexedAttribute) {
55
+ if (this.value.getIndex() != -1) {
56
+ return instance.getAttribute(this.attributeIndex).getIndex() == this.value.getIndex();
57
+ }
58
+ else {
59
+ return true;
60
+ }
44
61
  }
45
- /**
46
- * The satisfy method takes an {@link Instance} as an input.
47
- * <p>
48
- * If defined {@link Attribute} value is a {@link DiscreteIndexedAttribute} it compares the index of {@link Attribute} of instance at the
49
- * attributeIndex and the index of {@link Attribute} value and returns the result.
50
- * <p>
51
- * If defined {@link Attribute} value is a {@link DiscreteAttribute} it compares the value of {@link Attribute} of instance at the
52
- * attributeIndex and the value of {@link Attribute} value and returns the result.
53
- * <p>
54
- * If defined {@link Attribute} value is a {@link ContinuousAttribute} it compares the value of {@link Attribute} of instance at the
55
- * attributeIndex and the value of {@link Attribute} value and returns the result according to the comparison character whether it is
56
- * less than or greater than signs.
57
- *
58
- * @param instance Instance to compare.
59
- * @return True if gicen instance satisfies the conditions.
60
- */
61
- satisfy(instance) {
62
- if (this.value instanceof DiscreteIndexedAttribute_1.DiscreteIndexedAttribute) {
63
- if (this.value.getIndex() != -1) {
64
- return instance.getAttribute(this.attributeIndex).getIndex() == this.value.getIndex();
65
- }
66
- else {
67
- return true;
68
- }
62
+ else {
63
+ if (this.value instanceof DiscreteAttribute_1.DiscreteAttribute) {
64
+ return (instance.getAttribute(this.attributeIndex).getValue() == this.value.getValue());
69
65
  }
70
66
  else {
71
- if (this.value instanceof DiscreteAttribute_1.DiscreteAttribute) {
72
- return (instance.getAttribute(this.attributeIndex).getValue() == this.value.getValue());
73
- }
74
- else {
75
- if (this.value instanceof ContinuousAttribute_1.ContinuousAttribute) {
76
- if (this.comparison == "<") {
77
- return instance.getAttribute(this.attributeIndex).getValue() <= this.value.getValue();
78
- }
79
- else {
80
- if (this.comparison == ">") {
81
- return instance.getAttribute(this.attributeIndex).getValue() > this.value.getValue();
82
- }
67
+ if (this.value instanceof ContinuousAttribute_1.ContinuousAttribute) {
68
+ if (this.comparison == "<") {
69
+ return instance.getAttribute(this.attributeIndex).getValue() <= this.value.getValue();
70
+ }
71
+ else {
72
+ if (this.comparison == ">") {
73
+ return instance.getAttribute(this.attributeIndex).getValue() > this.value.getValue();
83
74
  }
84
75
  }
85
76
  }
86
77
  }
87
- return false;
88
78
  }
79
+ return false;
89
80
  }
90
- exports.DecisionCondition = DecisionCondition;
91
- });
81
+ }
82
+ exports.DecisionCondition = DecisionCondition;
92
83
  //# sourceMappingURL=DecisionCondition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionCondition.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionCondition.ts"],"names":[],"mappings":";;;;;;;;;;;;IAEA,uFAAkF;IAClF,yEAAoE;IACpE,6EAAwE;IAExE,MAAa,iBAAiB;QAM1B;;;;;;WAMG;QACH,YAAY,cAAsB,EAAE,KAAgB,EAAE,UAAmB;YAXjE,mBAAc,GAAW,CAAC,CAAC,CAAA;YAC3B,eAAU,GAAW,SAAS,CAAA;YAWlC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,CAAC;QAED;;;WAGG;QACH,iBAAiB;YACb,OAAO,IAAI,CAAC,cAAc,CAAA;QAC9B,CAAC;QAED;;;WAGG;QACH,QAAQ;YACJ,OAAO,IAAI,CAAC,KAAK,CAAA;QACrB,CAAC;QAED;;;;;;;;;;;;;;;WAeG;QACH,OAAO,CAAC,QAAkB;YACtB,IAAI,IAAI,CAAC,KAAK,YAAY,mDAAwB,EAAE;gBAChD,IAAgC,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE;oBAC1D,OAAmC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAAgC,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;iBACnJ;qBAAM;oBACH,OAAO,IAAI,CAAC;iBACf;aACJ;iBAAM;gBACH,IAAI,IAAI,CAAC,KAAK,YAAY,qCAAiB,EAAE;oBACzC,OAAO,CAAsB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAAyB,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACvI;qBAAM;oBACH,IAAI,IAAI,CAAC,KAAK,YAAY,yCAAmB,EAAE;wBAC3C,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;4BACxB,OAA8B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAA2B,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;yBACzI;6BAAM;4BACH,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE;gCACxB,OAA8B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,GAA0B,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;6BACxI;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ;IA3ED,8CA2EC"}
1
+ {"version":3,"file":"DecisionCondition.js","sourceRoot":"","sources":["../../../source/Model/DecisionTree/DecisionCondition.ts"],"names":[],"mappings":";;;AAEA,uFAAkF;AAClF,yEAAoE;AACpE,6EAAwE;AAExE,MAAa,iBAAiB;IAElB,cAAc,GAAW,CAAC,CAAC,CAAA;IAC3B,UAAU,GAAW,SAAS,CAAA;IAC9B,KAAK,CAAW;IAExB;;;;;;OAMG;IACH,YAAY,cAAsB,EAAE,KAAgB,EAAE,UAAmB;QACrE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,QAAkB;QACtB,IAAI,IAAI,CAAC,KAAK,YAAY,mDAAwB,EAAE,CAAC;YACjD,IAAgC,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3D,OAAmC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAAgC,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;YACpJ,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,IAAI,CAAC,KAAK,YAAY,qCAAiB,EAAE,CAAC;gBAC1C,OAAO,CAAsB,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAAyB,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxI,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAI,CAAC,KAAK,YAAY,yCAAmB,EAAE,CAAC;oBAC5C,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;wBACzB,OAA8B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,IAA2B,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;oBAC1I,CAAC;yBAAM,CAAC;wBACJ,IAAI,IAAI,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;4BACzB,OAA8B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAE,CAAC,QAAQ,EAAE,GAA0B,IAAI,CAAC,KAAM,CAAC,QAAQ,EAAE,CAAC;wBACzI,CAAC;oBACL,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AA3ED,8CA2EC"}