driftdetect-core 0.1.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 (221) hide show
  1. package/dist/analyzers/ast-analyzer.d.ts +251 -0
  2. package/dist/analyzers/ast-analyzer.d.ts.map +1 -0
  3. package/dist/analyzers/ast-analyzer.js +548 -0
  4. package/dist/analyzers/ast-analyzer.js.map +1 -0
  5. package/dist/analyzers/flow-analyzer.d.ts +241 -0
  6. package/dist/analyzers/flow-analyzer.d.ts.map +1 -0
  7. package/dist/analyzers/flow-analyzer.js +1219 -0
  8. package/dist/analyzers/flow-analyzer.js.map +1 -0
  9. package/dist/analyzers/index.d.ts +18 -0
  10. package/dist/analyzers/index.d.ts.map +1 -0
  11. package/dist/analyzers/index.js +19 -0
  12. package/dist/analyzers/index.js.map +1 -0
  13. package/dist/analyzers/semantic-analyzer.d.ts +252 -0
  14. package/dist/analyzers/semantic-analyzer.d.ts.map +1 -0
  15. package/dist/analyzers/semantic-analyzer.js +1182 -0
  16. package/dist/analyzers/semantic-analyzer.js.map +1 -0
  17. package/dist/analyzers/type-analyzer.d.ts +289 -0
  18. package/dist/analyzers/type-analyzer.d.ts.map +1 -0
  19. package/dist/analyzers/type-analyzer.js +1269 -0
  20. package/dist/analyzers/type-analyzer.js.map +1 -0
  21. package/dist/analyzers/types.d.ts +537 -0
  22. package/dist/analyzers/types.d.ts.map +1 -0
  23. package/dist/analyzers/types.js +11 -0
  24. package/dist/analyzers/types.js.map +1 -0
  25. package/dist/config/config-loader.d.ts +166 -0
  26. package/dist/config/config-loader.d.ts.map +1 -0
  27. package/dist/config/config-loader.js +429 -0
  28. package/dist/config/config-loader.js.map +1 -0
  29. package/dist/config/config-validator.d.ts +204 -0
  30. package/dist/config/config-validator.d.ts.map +1 -0
  31. package/dist/config/config-validator.js +632 -0
  32. package/dist/config/config-validator.js.map +1 -0
  33. package/dist/config/defaults.d.ts +8 -0
  34. package/dist/config/defaults.d.ts.map +1 -0
  35. package/dist/config/defaults.js +26 -0
  36. package/dist/config/defaults.js.map +1 -0
  37. package/dist/config/index.d.ts +10 -0
  38. package/dist/config/index.d.ts.map +1 -0
  39. package/dist/config/index.js +10 -0
  40. package/dist/config/index.js.map +1 -0
  41. package/dist/config/types.d.ts +47 -0
  42. package/dist/config/types.d.ts.map +1 -0
  43. package/dist/config/types.js +7 -0
  44. package/dist/config/types.js.map +1 -0
  45. package/dist/index.d.ts +37 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +39 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/manifest/exporter.d.ts +21 -0
  50. package/dist/manifest/exporter.d.ts.map +1 -0
  51. package/dist/manifest/exporter.js +339 -0
  52. package/dist/manifest/exporter.js.map +1 -0
  53. package/dist/manifest/index.d.ts +14 -0
  54. package/dist/manifest/index.d.ts.map +1 -0
  55. package/dist/manifest/index.js +15 -0
  56. package/dist/manifest/index.js.map +1 -0
  57. package/dist/manifest/manifest-store.d.ts +111 -0
  58. package/dist/manifest/manifest-store.d.ts.map +1 -0
  59. package/dist/manifest/manifest-store.js +418 -0
  60. package/dist/manifest/manifest-store.js.map +1 -0
  61. package/dist/manifest/types.d.ts +238 -0
  62. package/dist/manifest/types.d.ts.map +1 -0
  63. package/dist/manifest/types.js +11 -0
  64. package/dist/manifest/types.js.map +1 -0
  65. package/dist/matcher/confidence-scorer.d.ts +188 -0
  66. package/dist/matcher/confidence-scorer.d.ts.map +1 -0
  67. package/dist/matcher/confidence-scorer.js +302 -0
  68. package/dist/matcher/confidence-scorer.js.map +1 -0
  69. package/dist/matcher/index.d.ts +24 -0
  70. package/dist/matcher/index.d.ts.map +1 -0
  71. package/dist/matcher/index.js +26 -0
  72. package/dist/matcher/index.js.map +1 -0
  73. package/dist/matcher/outlier-detector.d.ts +252 -0
  74. package/dist/matcher/outlier-detector.d.ts.map +1 -0
  75. package/dist/matcher/outlier-detector.js +544 -0
  76. package/dist/matcher/outlier-detector.js.map +1 -0
  77. package/dist/matcher/pattern-matcher.d.ts +169 -0
  78. package/dist/matcher/pattern-matcher.d.ts.map +1 -0
  79. package/dist/matcher/pattern-matcher.js +692 -0
  80. package/dist/matcher/pattern-matcher.js.map +1 -0
  81. package/dist/matcher/types.d.ts +476 -0
  82. package/dist/matcher/types.d.ts.map +1 -0
  83. package/dist/matcher/types.js +36 -0
  84. package/dist/matcher/types.js.map +1 -0
  85. package/dist/parsers/base-parser.d.ts +282 -0
  86. package/dist/parsers/base-parser.d.ts.map +1 -0
  87. package/dist/parsers/base-parser.js +421 -0
  88. package/dist/parsers/base-parser.js.map +1 -0
  89. package/dist/parsers/css-parser.d.ts +225 -0
  90. package/dist/parsers/css-parser.d.ts.map +1 -0
  91. package/dist/parsers/css-parser.js +477 -0
  92. package/dist/parsers/css-parser.js.map +1 -0
  93. package/dist/parsers/index.d.ts +15 -0
  94. package/dist/parsers/index.d.ts.map +1 -0
  95. package/dist/parsers/index.js +15 -0
  96. package/dist/parsers/index.js.map +1 -0
  97. package/dist/parsers/json-parser.d.ts +219 -0
  98. package/dist/parsers/json-parser.d.ts.map +1 -0
  99. package/dist/parsers/json-parser.js +602 -0
  100. package/dist/parsers/json-parser.js.map +1 -0
  101. package/dist/parsers/markdown-parser.d.ts +276 -0
  102. package/dist/parsers/markdown-parser.d.ts.map +1 -0
  103. package/dist/parsers/markdown-parser.js +731 -0
  104. package/dist/parsers/markdown-parser.js.map +1 -0
  105. package/dist/parsers/parser-manager.d.ts +294 -0
  106. package/dist/parsers/parser-manager.d.ts.map +1 -0
  107. package/dist/parsers/parser-manager.js +738 -0
  108. package/dist/parsers/parser-manager.js.map +1 -0
  109. package/dist/parsers/python-parser.d.ts +204 -0
  110. package/dist/parsers/python-parser.d.ts.map +1 -0
  111. package/dist/parsers/python-parser.js +517 -0
  112. package/dist/parsers/python-parser.js.map +1 -0
  113. package/dist/parsers/types.d.ts +43 -0
  114. package/dist/parsers/types.d.ts.map +1 -0
  115. package/dist/parsers/types.js +7 -0
  116. package/dist/parsers/types.js.map +1 -0
  117. package/dist/parsers/typescript-parser.d.ts +264 -0
  118. package/dist/parsers/typescript-parser.d.ts.map +1 -0
  119. package/dist/parsers/typescript-parser.js +658 -0
  120. package/dist/parsers/typescript-parser.js.map +1 -0
  121. package/dist/rules/evaluator.d.ts +305 -0
  122. package/dist/rules/evaluator.d.ts.map +1 -0
  123. package/dist/rules/evaluator.js +579 -0
  124. package/dist/rules/evaluator.js.map +1 -0
  125. package/dist/rules/index.d.ts +13 -0
  126. package/dist/rules/index.d.ts.map +1 -0
  127. package/dist/rules/index.js +13 -0
  128. package/dist/rules/index.js.map +1 -0
  129. package/dist/rules/quick-fix-generator.d.ts +334 -0
  130. package/dist/rules/quick-fix-generator.d.ts.map +1 -0
  131. package/dist/rules/quick-fix-generator.js +1075 -0
  132. package/dist/rules/quick-fix-generator.js.map +1 -0
  133. package/dist/rules/rule-engine.d.ts +241 -0
  134. package/dist/rules/rule-engine.d.ts.map +1 -0
  135. package/dist/rules/rule-engine.js +585 -0
  136. package/dist/rules/rule-engine.js.map +1 -0
  137. package/dist/rules/severity-manager.d.ts +394 -0
  138. package/dist/rules/severity-manager.d.ts.map +1 -0
  139. package/dist/rules/severity-manager.js +619 -0
  140. package/dist/rules/severity-manager.js.map +1 -0
  141. package/dist/rules/types.d.ts +370 -0
  142. package/dist/rules/types.d.ts.map +1 -0
  143. package/dist/rules/types.js +133 -0
  144. package/dist/rules/types.js.map +1 -0
  145. package/dist/rules/variant-manager.d.ts +388 -0
  146. package/dist/rules/variant-manager.d.ts.map +1 -0
  147. package/dist/rules/variant-manager.js +777 -0
  148. package/dist/rules/variant-manager.js.map +1 -0
  149. package/dist/scanner/change-detector.d.ts +164 -0
  150. package/dist/scanner/change-detector.d.ts.map +1 -0
  151. package/dist/scanner/change-detector.js +263 -0
  152. package/dist/scanner/change-detector.js.map +1 -0
  153. package/dist/scanner/dependency-graph.d.ts +270 -0
  154. package/dist/scanner/dependency-graph.d.ts.map +1 -0
  155. package/dist/scanner/dependency-graph.js +436 -0
  156. package/dist/scanner/dependency-graph.js.map +1 -0
  157. package/dist/scanner/file-walker.d.ts +127 -0
  158. package/dist/scanner/file-walker.d.ts.map +1 -0
  159. package/dist/scanner/file-walker.js +526 -0
  160. package/dist/scanner/file-walker.js.map +1 -0
  161. package/dist/scanner/index.d.ts +12 -0
  162. package/dist/scanner/index.d.ts.map +1 -0
  163. package/dist/scanner/index.js +12 -0
  164. package/dist/scanner/index.js.map +1 -0
  165. package/dist/scanner/types.d.ts +218 -0
  166. package/dist/scanner/types.d.ts.map +1 -0
  167. package/dist/scanner/types.js +10 -0
  168. package/dist/scanner/types.js.map +1 -0
  169. package/dist/scanner/worker-pool.d.ts +317 -0
  170. package/dist/scanner/worker-pool.d.ts.map +1 -0
  171. package/dist/scanner/worker-pool.js +571 -0
  172. package/dist/scanner/worker-pool.js.map +1 -0
  173. package/dist/store/cache-manager.d.ts +179 -0
  174. package/dist/store/cache-manager.d.ts.map +1 -0
  175. package/dist/store/cache-manager.js +391 -0
  176. package/dist/store/cache-manager.js.map +1 -0
  177. package/dist/store/history-store.d.ts +314 -0
  178. package/dist/store/history-store.d.ts.map +1 -0
  179. package/dist/store/history-store.js +707 -0
  180. package/dist/store/history-store.js.map +1 -0
  181. package/dist/store/index.d.ts +20 -0
  182. package/dist/store/index.d.ts.map +1 -0
  183. package/dist/store/index.js +26 -0
  184. package/dist/store/index.js.map +1 -0
  185. package/dist/store/lock-file-manager.d.ts +202 -0
  186. package/dist/store/lock-file-manager.d.ts.map +1 -0
  187. package/dist/store/lock-file-manager.js +475 -0
  188. package/dist/store/lock-file-manager.js.map +1 -0
  189. package/dist/store/pattern-store.d.ts +289 -0
  190. package/dist/store/pattern-store.d.ts.map +1 -0
  191. package/dist/store/pattern-store.js +936 -0
  192. package/dist/store/pattern-store.js.map +1 -0
  193. package/dist/store/schema-validator.d.ts +159 -0
  194. package/dist/store/schema-validator.d.ts.map +1 -0
  195. package/dist/store/schema-validator.js +1096 -0
  196. package/dist/store/schema-validator.js.map +1 -0
  197. package/dist/store/types.d.ts +585 -0
  198. package/dist/store/types.d.ts.map +1 -0
  199. package/dist/store/types.js +82 -0
  200. package/dist/store/types.js.map +1 -0
  201. package/dist/types/analysis.d.ts +19 -0
  202. package/dist/types/analysis.d.ts.map +1 -0
  203. package/dist/types/analysis.js +5 -0
  204. package/dist/types/analysis.js.map +1 -0
  205. package/dist/types/common.d.ts +7 -0
  206. package/dist/types/common.d.ts.map +1 -0
  207. package/dist/types/common.js +5 -0
  208. package/dist/types/common.js.map +1 -0
  209. package/dist/types/index.d.ts +12 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +10 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/types/patterns.d.ts +40 -0
  214. package/dist/types/patterns.d.ts.map +1 -0
  215. package/dist/types/patterns.js +7 -0
  216. package/dist/types/patterns.js.map +1 -0
  217. package/dist/types/violations.d.ts +7 -0
  218. package/dist/types/violations.d.ts.map +1 -0
  219. package/dist/types/violations.js +7 -0
  220. package/dist/types/violations.js.map +1 -0
  221. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/store/schema-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6BH,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,OAAO;IACpB,QAAQ,EAAE,OAAO;IACjB,YAAY,EAAE,OAAO;IACrB,MAAM,EAAE,OAAO;CACP,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,WAAW,EAAE,CAAC,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,OAAO,CAAC;IACtB,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,CAAC;CACT,CAAC;AAiCX;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAG5B;IACA;IAHlB,YACE,OAAe,EACC,MAAyB,EACzB,UAAkB;QAElC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAmB;QACzB,eAAU,GAAV,UAAU,CAAQ;QAGlC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,MAAM;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACzC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACF;AAGD,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,wBAAwB,GAAsB;IAClD,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,KAAK;IACL,MAAM;IACN,QAAQ;IACR,aAAa;IACb,SAAS;IACT,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,aAAa;IACb,eAAe;IACf,eAAe;CAChB,CAAC;AAEF,MAAM,sBAAsB,GAAoB,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAEtF,MAAM,gBAAgB,GAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1E,MAAM,uBAAuB,GAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAE1F,MAAM,oBAAoB,GAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAElG,MAAM,oBAAoB,GAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAE7E,MAAM,yBAAyB,GAAuB;IACpD,SAAS;IACT,UAAU;IACV,SAAS;IACT,SAAS;IACT,SAAS;IACT,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;CACnB,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAEtE,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAE/D,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAG3E,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,GAAG,CAAC,GAA4B,EAAE,GAAW;IACpD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc,EAAE,GAAW,EAAE,GAAW;IAC/D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAI,KAAc,EAAE,WAAyB;IAC3D,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,oDAAoD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAGD,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,uBAAuB,CAC9B,QAAiB,EACjB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAE7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAK,IAAe,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACzH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAK,MAAiB,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAK,OAAkB,GAAG,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAK,SAAoB,GAAG,CAAC,CAAC,EAAE,CAAC;QAC5F,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACnI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,QAAiB,EACjB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,GAAG,GAAG,QAA8C,CAAC;IAC3D,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClC,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAElD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,iBAAiB,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACtI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;GAEG;AACH,SAAS,sBAAsB,CAC7B,UAAmB,EACnB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAU,EAAE,CAAC,CAAC;QACnG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEvC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAChI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACrH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACpH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,mBAAmB,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrK,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,QAAiB,EACjB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,mBAAmB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7J,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QACjH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,mFAAmF;IACnF,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC;QACvH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;QAC3H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAU,EAAE,CAAC,CAAC;QACrI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAC7H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;GAEG;AACH,SAAS,uBAAuB,CAC9B,QAAiB,EACjB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACzI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAU,EAAE,CAAC,CAAC;QACxH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAClH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC3G,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/G,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,eAAe,EAAE,CAAC,CAAC;YACjI,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACjJ,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAChH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QACjH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE1C,yBAAyB;IACzB,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAC7H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,cAAc;IACd,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7J,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,cAAc,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,WAAW,EAAE,CAAC,CAAC;QAC5H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QAClE,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC;QACtE,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;QACnE,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,eAAe;IACf,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC;QACrH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACL,SAAuB,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,CAAS,EAAE,EAAE;YAC3D,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QACnH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACL,QAAsB,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,CAAS,EAAE,EAAE;YAC1D,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACpE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;GAEG;AACH,SAAS,eAAe,CACtB,OAAgB,EAChB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEtC,2CAA2C;IAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,mBAAmB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7K,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,mBAAmB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrK,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,yEAAyE;IACzE,MAAM,mBAAmB,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3C,OAAQ,mBAA+C,CAAC,UAAU,CAAC,CAAC;IACpE,OAAQ,mBAA+C,CAAC,QAAQ,CAAC,CAAC;IAElE,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9G,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvC,qBAAqB;IACrB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;SAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjM,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvK,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACL,QAAsB,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,CAAS,EAAE,EAAE;YAC9D,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACrI,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAA8B,EAAE,CAAC;AAC/D,CAAC;AAGD;;GAEG;AACH,SAAS,2BAA2B,CAClC,KAAc,EACd,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,EAAE,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEtC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,mBAAmB,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACvK,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACxH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,UAAU,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAC/H,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAElD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,mBAAmB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7K,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAC/G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACL,MAAoB,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,CAAS,EAAE,EAAE;YAC1D,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACxE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,eAAe,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7I,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC9G,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE7C,qBAAqB;IACrB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;SAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjM,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACL,QAAsB,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,CAAS,EAAE,EAAE;YAC9D,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAA8B,EAAE,CAAC;AAC/D,CAAC;AAGD;;GAEG;AACH,SAAS,qBAAqB,CAC5B,OAAgB,EAChB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE1C,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,mBAAmB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7K,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,kBAAkB,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QACxI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7J,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,iBAAiB,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACnI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,WAAW,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC3G,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAEvC,qBAAqB;IACrB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;SAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3L,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACL,QAAsB,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,CAAS,EAAE,EAAE;YAC9D,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACrI,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAA2B,EAAE,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEtC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACnH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,EAAE,OAAO,EAAE,mBAAmB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/J,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,wDAAwD;IACxD,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,aAAa,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,UAAU,EAAE,CAAC,CAAC;QACpI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC;QACrH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;SAAM,CAAC;QACL,SAAuB,CAAC,OAAO,CAAC,CAAC,GAAY,EAAE,CAAS,EAAE,EAAE;YAC3D,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrE,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACvI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,YAAY,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAS,EAAE,CAAC,CAAC;QAClI,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QAClH,KAAK,GAAG,KAAK,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/G,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE7C,qBAAqB;IACrB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1H,CAAC;SAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,mCAAmC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACnM,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;IAC7G,CAAC;SAAM,CAAC;QACL,QAAsB,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,CAAS,EAAE,EAAE;YAC9D,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IACrI,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAA+B,EAAE,CAAC;AAChE,CAAC;AAGD,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QACxG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAE7C,gCAAgC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,GAAG,EAAE,EAAE,OAAO,EAAE,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC3J,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC;QACzG,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,qCAAqC,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAChK,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;YACzH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC;gBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxJ,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,oBAAoB,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAC5K,CAAC;QACH,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,GAAG,GAAG,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACnE,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACvD,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACrJ,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,WAAW,EAAE,CAAC,CAAC;QACrH,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YAClD,MAAM,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACtD,MAAM,mBAAmB,GAAG,GAAG,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAK,UAAqB,GAAG,CAAC,EAAE,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YACvI,CAAC;YACD,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,YAAY,EAAE,CAAC,CAAC;YACpI,CAAC;YACD,IAAI,OAAO,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,iCAAiC,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,mBAAmB,EAAE,CAAC,CAAC;YAClJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAmB,EAAE,CAAC;AACpD,CAAC;AAGD,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAe,EAAE,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAa;IACvD,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAqB,EAAE,CAAC;AACtD,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EACpE,MAAM,CAAC,MAAO,EACd,aAAa,CACd,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAa;IAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,yBAAyB,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EACpE,MAAM,CAAC,MAAO,EACd,aAAa,CACd,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,sBAAsB,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EACjE,MAAM,CAAC,MAAO,EACd,UAAU,CACX,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAa;IACnD,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,0BAA0B,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EACrE,MAAM,CAAC,MAAO,EACd,cAAc,CACf,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,mBAAmB,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EAC9D,MAAM,CAAC,MAAO,EACd,aAAa,CACd,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAC7B,oBAAoB,MAAM,CAAC,MAAO,CAAC,MAAM,sBAAsB,EAC/D,MAAM,CAAC,MAAO,EACd,SAAS,CACV,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAK,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAA2C,EAC3C,OAAe;IAEf,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAgB,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAwC;IACxE,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAC9D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAC;IAE5C,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACzD,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,IAAI,eAAe,CAAC,CAAC,QAAQ,GAAG,CAAC;QACpD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,GAAG,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;QACzE,OAAO,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
@@ -0,0 +1,585 @@
1
+ /**
2
+ * Store type definitions
3
+ *
4
+ * Provides comprehensive types for pattern storage, history tracking,
5
+ * and querying. Patterns are stored as JSON in .drift/patterns/ directory.
6
+ *
7
+ * @requirements 4.1 - Patterns SHALL be stored in .drift/patterns/ directory
8
+ * @requirements 4.2 - Pattern files SHALL use JSON format with defined schema
9
+ * @requirements 4.3 - Patterns SHALL be organized by category subdirectories
10
+ * @requirements 4.4 - Pattern history SHALL be tracked in .drift/history/
11
+ * @requirements 4.5 - Pattern schema SHALL be validated on load/save
12
+ * @requirements 4.6 - Patterns SHALL support querying by category, confidence, status
13
+ * @requirements 4.7 - drift.lock SHALL snapshot approved patterns
14
+ */
15
+ /**
16
+ * Status of a pattern in the system
17
+ *
18
+ * - discovered: Pattern found but not yet reviewed
19
+ * - approved: Pattern approved for enforcement
20
+ * - ignored: Pattern explicitly ignored by user
21
+ *
22
+ * @requirements 4.3 - Patterns organized by status subdirectories
23
+ */
24
+ export type PatternStatus = 'discovered' | 'approved' | 'ignored';
25
+ /**
26
+ * Valid state transitions for patterns
27
+ *
28
+ * @requirements 4.3 - Pattern state management
29
+ */
30
+ export declare const VALID_STATUS_TRANSITIONS: Record<PatternStatus, PatternStatus[]>;
31
+ /**
32
+ * Categories of patterns that can be detected
33
+ *
34
+ * Each category corresponds to a detector category and maps to
35
+ * a subdirectory in .drift/patterns/
36
+ *
37
+ * @requirements 4.3 - Patterns organized by category subdirectories
38
+ */
39
+ export type PatternCategory = 'structural' | 'components' | 'styling' | 'api' | 'auth' | 'errors' | 'data-access' | 'testing' | 'logging' | 'security' | 'config' | 'types' | 'performance' | 'accessibility' | 'documentation';
40
+ /**
41
+ * Array of all valid pattern categories
42
+ */
43
+ export declare const PATTERN_CATEGORIES: PatternCategory[];
44
+ /**
45
+ * Severity levels for pattern violations
46
+ *
47
+ * - error: Blocks commits and merges
48
+ * - warning: Displayed but doesn't block
49
+ * - info: Informational only
50
+ * - hint: Subtle suggestion
51
+ */
52
+ export type Severity = 'error' | 'warning' | 'info' | 'hint';
53
+ /**
54
+ * Severity level ordering (higher = more severe)
55
+ */
56
+ export declare const SEVERITY_ORDER: Record<Severity, number>;
57
+ /**
58
+ * Confidence level classification based on score thresholds
59
+ *
60
+ * @requirements 5.3 - High confidence: score >= 0.85
61
+ * @requirements 5.4 - Medium confidence: score >= 0.65 and < 0.85
62
+ * @requirements 5.5 - Low confidence: score >= 0.45 and < 0.65
63
+ * @requirements 5.6 - Uncertain: score < 0.45
64
+ */
65
+ export type ConfidenceLevel = 'high' | 'medium' | 'low' | 'uncertain';
66
+ /**
67
+ * Confidence information for a pattern
68
+ *
69
+ * @requirements 5.1 - Confidence scoring with frequency, consistency, age, spread
70
+ * @requirements 5.2 - Confidence score between 0.0 and 1.0
71
+ */
72
+ export interface ConfidenceInfo {
73
+ /** Frequency score (0.0 to 1.0) - % of applicable locations */
74
+ frequency: number;
75
+ /** Consistency score (0.0 to 1.0) - variance measure */
76
+ consistency: number;
77
+ /** Age in days since first observation */
78
+ age: number;
79
+ /** Spread - number of files containing the pattern */
80
+ spread: number;
81
+ /** Weighted overall score (0.0 to 1.0) */
82
+ score: number;
83
+ /** Confidence level classification */
84
+ level: ConfidenceLevel;
85
+ }
86
+ /**
87
+ * Location of a pattern occurrence in source code
88
+ */
89
+ export interface PatternLocation {
90
+ /** File path (relative to project root) */
91
+ file: string;
92
+ /** Line number (1-indexed) */
93
+ line: number;
94
+ /** Column number (1-indexed) */
95
+ column: number;
96
+ /** End line number (optional, 1-indexed) */
97
+ endLine?: number;
98
+ /** End column number (optional, 1-indexed) */
99
+ endColumn?: number;
100
+ }
101
+ /**
102
+ * Location of an outlier with reason for deviation
103
+ */
104
+ export interface OutlierLocation extends PatternLocation {
105
+ /** Reason why this location is an outlier */
106
+ reason: string;
107
+ /** Deviation score (0.0 to 1.0, higher = more deviation) */
108
+ deviationScore?: number;
109
+ }
110
+ /**
111
+ * Type of detection method used by a detector
112
+ */
113
+ export type DetectorType = 'ast' | 'regex' | 'semantic' | 'structural' | 'custom';
114
+ /**
115
+ * Configuration for a pattern detector
116
+ */
117
+ export interface DetectorConfig {
118
+ /** Type of detection method */
119
+ type: DetectorType;
120
+ /** Detector-specific configuration */
121
+ config: Record<string, unknown>;
122
+ /** AST-specific configuration (when type is 'ast') */
123
+ ast?: ASTDetectorConfig;
124
+ /** Regex-specific configuration (when type is 'regex') */
125
+ regex?: RegexDetectorConfig;
126
+ /** Structural-specific configuration (when type is 'structural') */
127
+ structural?: StructuralDetectorConfig;
128
+ /** Custom detector configuration (when type is 'custom') */
129
+ custom?: CustomDetectorConfig;
130
+ }
131
+ /**
132
+ * Configuration for AST-based detection
133
+ */
134
+ export interface ASTDetectorConfig {
135
+ /** AST node type to match */
136
+ nodeType: string;
137
+ /** Tree-sitter query (optional) */
138
+ query?: string;
139
+ /** Properties to match on the node */
140
+ properties?: Record<string, unknown>;
141
+ /** Child patterns to match */
142
+ children?: ASTDetectorConfig[];
143
+ }
144
+ /**
145
+ * Configuration for regex-based detection
146
+ */
147
+ export interface RegexDetectorConfig {
148
+ /** Regular expression pattern */
149
+ pattern: string;
150
+ /** Regex flags */
151
+ flags?: string;
152
+ /** Named capture groups */
153
+ captureGroups?: string[];
154
+ }
155
+ /**
156
+ * Configuration for structural detection
157
+ */
158
+ export interface StructuralDetectorConfig {
159
+ /** File path pattern (glob) */
160
+ pathPattern?: string;
161
+ /** Directory structure pattern */
162
+ directoryPattern?: string;
163
+ /** File naming convention pattern */
164
+ namingPattern?: string;
165
+ /** Required sibling files */
166
+ requiredSiblings?: string[];
167
+ }
168
+ /**
169
+ * Configuration for custom detection
170
+ */
171
+ export interface CustomDetectorConfig {
172
+ /** Custom detector identifier */
173
+ detectorId: string;
174
+ /** Custom configuration options */
175
+ options?: Record<string, unknown>;
176
+ }
177
+ /**
178
+ * Metadata for a pattern
179
+ */
180
+ export interface PatternMetadata {
181
+ /** ISO timestamp when pattern was first detected */
182
+ firstSeen: string;
183
+ /** ISO timestamp when pattern was last seen */
184
+ lastSeen: string;
185
+ /** ISO timestamp when pattern was approved (if approved) */
186
+ approvedAt?: string;
187
+ /** User who approved the pattern (if approved) */
188
+ approvedBy?: string;
189
+ /** Version of the pattern definition */
190
+ version?: string;
191
+ /** Tags for additional categorization */
192
+ tags?: string[];
193
+ /** Related pattern IDs */
194
+ relatedPatterns?: string[];
195
+ /** Source of the pattern (e.g., 'auto-detected', 'imported', 'cheatcode2026') */
196
+ source?: string;
197
+ /** Custom metadata fields */
198
+ custom?: Record<string, unknown>;
199
+ }
200
+ /**
201
+ * A pattern stored in the pattern store
202
+ *
203
+ * This is the primary pattern type used throughout the store module.
204
+ *
205
+ * @requirements 4.2 - Pattern JSON schema
206
+ */
207
+ export interface Pattern {
208
+ /** Unique pattern identifier */
209
+ id: string;
210
+ /** Pattern category */
211
+ category: PatternCategory;
212
+ /** Pattern subcategory for more specific classification */
213
+ subcategory: string;
214
+ /** Human-readable pattern name */
215
+ name: string;
216
+ /** Detailed pattern description */
217
+ description: string;
218
+ /** Detector configuration */
219
+ detector: DetectorConfig;
220
+ /** Confidence information */
221
+ confidence: ConfidenceInfo;
222
+ /** Locations where pattern is found */
223
+ locations: PatternLocation[];
224
+ /** Outlier locations that deviate from the pattern */
225
+ outliers: OutlierLocation[];
226
+ /** Pattern metadata */
227
+ metadata: PatternMetadata;
228
+ /** Severity level for violations */
229
+ severity: Severity;
230
+ /** Whether the pattern can be auto-fixed */
231
+ autoFixable: boolean;
232
+ /** Current status of the pattern */
233
+ status: PatternStatus;
234
+ }
235
+ /**
236
+ * Stored pattern format (used in JSON files)
237
+ *
238
+ * Similar to Pattern but with string dates for JSON serialization.
239
+ *
240
+ * @requirements 4.2 - Pattern files use JSON format
241
+ */
242
+ export interface StoredPattern {
243
+ /** Unique pattern ID */
244
+ id: string;
245
+ /** Pattern subcategory */
246
+ subcategory: string;
247
+ /** Human-readable name */
248
+ name: string;
249
+ /** Pattern description */
250
+ description: string;
251
+ /** Detector configuration */
252
+ detector: DetectorConfig;
253
+ /** Confidence information */
254
+ confidence: ConfidenceInfo;
255
+ /** Locations where pattern is found */
256
+ locations: PatternLocation[];
257
+ /** Outlier locations */
258
+ outliers: OutlierLocation[];
259
+ /** Pattern metadata */
260
+ metadata: PatternMetadata;
261
+ /** Severity level */
262
+ severity: Severity;
263
+ /** Whether auto-fixable */
264
+ autoFixable: boolean;
265
+ }
266
+ /**
267
+ * Format of a pattern file stored in .drift/patterns/
268
+ *
269
+ * Each category has its own JSON file containing all patterns
270
+ * of that category.
271
+ *
272
+ * @requirements 4.2 - Pattern files use JSON format with defined schema
273
+ */
274
+ export interface PatternFile {
275
+ /** Schema version for migration support */
276
+ version: string;
277
+ /** Pattern category this file contains */
278
+ category: PatternCategory;
279
+ /** Patterns in this file */
280
+ patterns: StoredPattern[];
281
+ /** ISO timestamp of last update */
282
+ lastUpdated: string;
283
+ /** Checksum for integrity verification */
284
+ checksum?: string;
285
+ }
286
+ /**
287
+ * Current schema version for pattern files
288
+ */
289
+ export declare const PATTERN_FILE_VERSION = "1.0.0";
290
+ /**
291
+ * Type of history event
292
+ */
293
+ export type HistoryEventType = 'created' | 'approved' | 'ignored' | 'updated' | 'deleted' | 'confidence_changed' | 'locations_changed' | 'severity_changed';
294
+ /**
295
+ * A single history event for a pattern
296
+ *
297
+ * @requirements 4.4 - Pattern history tracked in .drift/history/
298
+ */
299
+ export interface PatternHistoryEvent {
300
+ /** ISO timestamp of the event */
301
+ timestamp: string;
302
+ /** Type of event */
303
+ type: HistoryEventType;
304
+ /** Pattern ID this event relates to */
305
+ patternId: string;
306
+ /** User who triggered the event (if applicable) */
307
+ user?: string;
308
+ /** Previous value (for updates) */
309
+ previousValue?: unknown;
310
+ /** New value (for updates) */
311
+ newValue?: unknown;
312
+ /** Additional event details */
313
+ details?: Record<string, unknown>;
314
+ }
315
+ /**
316
+ * History record for a pattern
317
+ *
318
+ * @requirements 4.4 - Pattern history tracking
319
+ */
320
+ export interface PatternHistory {
321
+ /** Pattern ID */
322
+ patternId: string;
323
+ /** Pattern category */
324
+ category: PatternCategory;
325
+ /** All history events for this pattern */
326
+ events: PatternHistoryEvent[];
327
+ /** ISO timestamp of first event */
328
+ createdAt: string;
329
+ /** ISO timestamp of last event */
330
+ lastModified: string;
331
+ }
332
+ /**
333
+ * Format of the history file stored in .drift/history/
334
+ */
335
+ export interface HistoryFile {
336
+ /** Schema version */
337
+ version: string;
338
+ /** All pattern histories */
339
+ patterns: PatternHistory[];
340
+ /** ISO timestamp of last update */
341
+ lastUpdated: string;
342
+ }
343
+ /**
344
+ * Current schema version for history files
345
+ */
346
+ export declare const HISTORY_FILE_VERSION = "1.0.0";
347
+ /**
348
+ * Query options for filtering patterns
349
+ *
350
+ * @requirements 4.6 - Patterns support querying by category, confidence, status
351
+ */
352
+ export interface PatternQuery {
353
+ /** Filter by pattern IDs */
354
+ ids?: string[];
355
+ /** Filter by category */
356
+ category?: PatternCategory | PatternCategory[];
357
+ /** Filter by subcategory */
358
+ subcategory?: string | string[];
359
+ /** Filter by status */
360
+ status?: PatternStatus | PatternStatus[];
361
+ /** Filter by minimum confidence score */
362
+ minConfidence?: number;
363
+ /** Filter by maximum confidence score */
364
+ maxConfidence?: number;
365
+ /** Filter by confidence level */
366
+ confidenceLevel?: ConfidenceLevel | ConfidenceLevel[];
367
+ /** Filter by severity */
368
+ severity?: Severity | Severity[];
369
+ /** Filter by auto-fixable */
370
+ autoFixable?: boolean;
371
+ /** Filter by file path (patterns that have locations in this file) */
372
+ file?: string;
373
+ /** Filter by files (patterns that have locations in any of these files) */
374
+ files?: string[];
375
+ /** Filter patterns with outliers */
376
+ hasOutliers?: boolean;
377
+ /** Filter by minimum outlier count */
378
+ minOutliers?: number;
379
+ /** Filter by tag */
380
+ tags?: string[];
381
+ /** Filter by source */
382
+ source?: string;
383
+ /** Search in name and description */
384
+ search?: string;
385
+ /** Filter by date range (firstSeen) */
386
+ createdAfter?: string;
387
+ /** Filter by date range (firstSeen) */
388
+ createdBefore?: string;
389
+ /** Filter by date range (lastSeen) */
390
+ seenAfter?: string;
391
+ /** Filter by date range (lastSeen) */
392
+ seenBefore?: string;
393
+ }
394
+ /**
395
+ * Sort options for pattern queries
396
+ */
397
+ export interface PatternSortOptions {
398
+ /** Field to sort by */
399
+ field: 'name' | 'confidence' | 'severity' | 'firstSeen' | 'lastSeen' | 'outlierCount' | 'locationCount';
400
+ /** Sort direction */
401
+ direction: 'asc' | 'desc';
402
+ }
403
+ /**
404
+ * Pagination options for pattern queries
405
+ */
406
+ export interface PatternPaginationOptions {
407
+ /** Number of results to skip */
408
+ offset?: number;
409
+ /** Maximum number of results to return */
410
+ limit?: number;
411
+ }
412
+ /**
413
+ * Complete query options including filtering, sorting, and pagination
414
+ */
415
+ export interface PatternQueryOptions {
416
+ /** Filter criteria */
417
+ filter?: PatternQuery;
418
+ /** Sort options */
419
+ sort?: PatternSortOptions;
420
+ /** Pagination options */
421
+ pagination?: PatternPaginationOptions;
422
+ }
423
+ /**
424
+ * Result of a pattern query
425
+ */
426
+ export interface PatternQueryResult {
427
+ /** Matching patterns */
428
+ patterns: Pattern[];
429
+ /** Total count (before pagination) */
430
+ total: number;
431
+ /** Whether there are more results */
432
+ hasMore: boolean;
433
+ /** Query execution time in milliseconds */
434
+ executionTime: number;
435
+ }
436
+ /**
437
+ * Scope of a variant
438
+ */
439
+ export type VariantScope = 'global' | 'directory' | 'file';
440
+ /**
441
+ * An intentional deviation from a pattern
442
+ *
443
+ * @requirements 26.1 - Variant system for intentional deviations
444
+ */
445
+ export interface PatternVariant {
446
+ /** Unique variant identifier */
447
+ id: string;
448
+ /** Pattern ID this variant applies to */
449
+ patternId: string;
450
+ /** Human-readable name for the variant */
451
+ name: string;
452
+ /** Reason explaining why this deviation is intentional */
453
+ reason: string;
454
+ /** Scope of the variant */
455
+ scope: VariantScope;
456
+ /** Scope value (directory path or file path, depending on scope) */
457
+ scopeValue?: string;
458
+ /** Locations covered by this variant */
459
+ locations: PatternLocation[];
460
+ /** ISO timestamp when variant was created */
461
+ createdAt: string;
462
+ /** User who created the variant */
463
+ createdBy?: string;
464
+ /** Whether the variant is active */
465
+ active: boolean;
466
+ }
467
+ /**
468
+ * Format of the variants file stored in .drift/patterns/variants/
469
+ */
470
+ export interface VariantsFile {
471
+ /** Schema version */
472
+ version: string;
473
+ /** All variants */
474
+ variants: PatternVariant[];
475
+ /** ISO timestamp of last update */
476
+ lastUpdated: string;
477
+ }
478
+ /**
479
+ * Current schema version for variants files
480
+ */
481
+ export declare const VARIANTS_FILE_VERSION = "1.0.0";
482
+ /**
483
+ * Snapshot of an approved pattern for the lock file
484
+ *
485
+ * @requirements 4.7 - drift.lock snapshots approved patterns
486
+ */
487
+ export interface LockedPattern {
488
+ /** Pattern ID */
489
+ id: string;
490
+ /** Pattern category */
491
+ category: PatternCategory;
492
+ /** Pattern name */
493
+ name: string;
494
+ /** Confidence score at time of lock */
495
+ confidenceScore: number;
496
+ /** Severity level */
497
+ severity: Severity;
498
+ /** Hash of the pattern definition for change detection */
499
+ definitionHash: string;
500
+ /** ISO timestamp when locked */
501
+ lockedAt: string;
502
+ }
503
+ /**
504
+ * Format of the drift.lock file
505
+ *
506
+ * @requirements 4.7 - drift.lock for version control
507
+ */
508
+ export interface LockFile {
509
+ /** Schema version */
510
+ version: string;
511
+ /** Locked patterns */
512
+ patterns: LockedPattern[];
513
+ /** ISO timestamp when lock file was generated */
514
+ generatedAt: string;
515
+ /** Hash of the entire lock file for integrity */
516
+ checksum: string;
517
+ }
518
+ /**
519
+ * Current schema version for lock files
520
+ */
521
+ export declare const LOCK_FILE_VERSION = "1.0.0";
522
+ /**
523
+ * Configuration options for the pattern store
524
+ */
525
+ export interface PatternStoreConfig {
526
+ /** Root directory for .drift folder (defaults to project root) */
527
+ rootDir: string;
528
+ /** Whether to validate schemas on load/save */
529
+ validateSchema: boolean;
530
+ /** Whether to track history */
531
+ trackHistory: boolean;
532
+ /** Whether to auto-save changes */
533
+ autoSave: boolean;
534
+ /** Debounce time for auto-save in milliseconds */
535
+ autoSaveDebounce: number;
536
+ /** Whether to create backup before save */
537
+ createBackup: boolean;
538
+ /** Maximum number of backups to keep */
539
+ maxBackups: number;
540
+ }
541
+ /**
542
+ * Default pattern store configuration
543
+ */
544
+ export declare const DEFAULT_PATTERN_STORE_CONFIG: PatternStoreConfig;
545
+ /**
546
+ * Events emitted by the pattern store
547
+ */
548
+ export type PatternStoreEventType = 'pattern:created' | 'pattern:updated' | 'pattern:deleted' | 'pattern:approved' | 'pattern:ignored' | 'file:loaded' | 'file:saved' | 'error';
549
+ /**
550
+ * Event payload for pattern store events
551
+ */
552
+ export interface PatternStoreEvent {
553
+ /** Event type */
554
+ type: PatternStoreEventType;
555
+ /** Pattern ID (if applicable) */
556
+ patternId?: string;
557
+ /** Pattern category (if applicable) */
558
+ category?: PatternCategory;
559
+ /** Additional event data */
560
+ data?: Record<string, unknown>;
561
+ /** ISO timestamp of the event */
562
+ timestamp: string;
563
+ }
564
+ /**
565
+ * Statistics about the pattern store
566
+ */
567
+ export interface PatternStoreStats {
568
+ /** Total number of patterns */
569
+ totalPatterns: number;
570
+ /** Patterns by status */
571
+ byStatus: Record<PatternStatus, number>;
572
+ /** Patterns by category */
573
+ byCategory: Record<PatternCategory, number>;
574
+ /** Patterns by confidence level */
575
+ byConfidenceLevel: Record<ConfidenceLevel, number>;
576
+ /** Total number of locations */
577
+ totalLocations: number;
578
+ /** Total number of outliers */
579
+ totalOutliers: number;
580
+ /** Total number of variants */
581
+ totalVariants: number;
582
+ /** ISO timestamp of last update */
583
+ lastUpdated: string;
584
+ }
585
+ //# sourceMappingURL=types.d.ts.map