fingerprint-mcp 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 (269) hide show
  1. package/LICENSE +663 -0
  2. package/README.ar.md +767 -0
  3. package/README.bn.md +767 -0
  4. package/README.bs.md +767 -0
  5. package/README.da.md +767 -0
  6. package/README.de.md +770 -0
  7. package/README.el.md +767 -0
  8. package/README.es.md +769 -0
  9. package/README.fr.md +769 -0
  10. package/README.hi.md +767 -0
  11. package/README.it.md +767 -0
  12. package/README.ja.md +767 -0
  13. package/README.ko.md +772 -0
  14. package/README.md +767 -0
  15. package/README.no.md +767 -0
  16. package/README.pl.md +767 -0
  17. package/README.pt-BR.md +767 -0
  18. package/README.ru.md +767 -0
  19. package/README.th.md +767 -0
  20. package/README.tr.md +767 -0
  21. package/README.uk.md +767 -0
  22. package/README.vi.md +767 -0
  23. package/README.zh-TW.md +768 -0
  24. package/README.zh.md +768 -0
  25. package/dist/app/index.d.ts +3 -0
  26. package/dist/app/index.d.ts.map +1 -0
  27. package/dist/app/index.js +614 -0
  28. package/dist/app/index.js.map +1 -0
  29. package/dist/composite/analyze.d.ts +3 -0
  30. package/dist/composite/analyze.d.ts.map +1 -0
  31. package/dist/composite/analyze.js +59 -0
  32. package/dist/composite/analyze.js.map +1 -0
  33. package/dist/composite/correlate.d.ts +3 -0
  34. package/dist/composite/correlate.d.ts.map +1 -0
  35. package/dist/composite/correlate.js +184 -0
  36. package/dist/composite/correlate.js.map +1 -0
  37. package/dist/composite/enumerate.d.ts +3 -0
  38. package/dist/composite/enumerate.d.ts.map +1 -0
  39. package/dist/composite/enumerate.js +94 -0
  40. package/dist/composite/enumerate.js.map +1 -0
  41. package/dist/composite/helpers.d.ts +22 -0
  42. package/dist/composite/helpers.d.ts.map +1 -0
  43. package/dist/composite/helpers.js +111 -0
  44. package/dist/composite/helpers.js.map +1 -0
  45. package/dist/composite/index.d.ts +3 -0
  46. package/dist/composite/index.d.ts.map +1 -0
  47. package/dist/composite/index.js +29 -0
  48. package/dist/composite/index.js.map +1 -0
  49. package/dist/composite/meta.d.ts +3 -0
  50. package/dist/composite/meta.d.ts.map +1 -0
  51. package/dist/composite/meta.js +23 -0
  52. package/dist/composite/meta.js.map +1 -0
  53. package/dist/composite/osint.d.ts +3 -0
  54. package/dist/composite/osint.d.ts.map +1 -0
  55. package/dist/composite/osint.js +40 -0
  56. package/dist/composite/osint.js.map +1 -0
  57. package/dist/composite/recon.d.ts +3 -0
  58. package/dist/composite/recon.d.ts.map +1 -0
  59. package/dist/composite/recon.js +131 -0
  60. package/dist/composite/recon.js.map +1 -0
  61. package/dist/composite/scan-dns.d.ts +3 -0
  62. package/dist/composite/scan-dns.d.ts.map +1 -0
  63. package/dist/composite/scan-dns.js +44 -0
  64. package/dist/composite/scan-dns.js.map +1 -0
  65. package/dist/composite/scan-http.d.ts +3 -0
  66. package/dist/composite/scan-http.d.ts.map +1 -0
  67. package/dist/composite/scan-http.js +68 -0
  68. package/dist/composite/scan-http.js.map +1 -0
  69. package/dist/composite/scan-paths.d.ts +3 -0
  70. package/dist/composite/scan-paths.d.ts.map +1 -0
  71. package/dist/composite/scan-paths.js +32 -0
  72. package/dist/composite/scan-paths.js.map +1 -0
  73. package/dist/composite/scan-ports.d.ts +3 -0
  74. package/dist/composite/scan-ports.d.ts.map +1 -0
  75. package/dist/composite/scan-ports.js +79 -0
  76. package/dist/composite/scan-ports.js.map +1 -0
  77. package/dist/composite/scan-services.d.ts +3 -0
  78. package/dist/composite/scan-services.d.ts.map +1 -0
  79. package/dist/composite/scan-services.js +111 -0
  80. package/dist/composite/scan-services.js.map +1 -0
  81. package/dist/composite/scan-tls.d.ts +3 -0
  82. package/dist/composite/scan-tls.d.ts.map +1 -0
  83. package/dist/composite/scan-tls.js +32 -0
  84. package/dist/composite/scan-tls.js.map +1 -0
  85. package/dist/composite/scan-waf.d.ts +3 -0
  86. package/dist/composite/scan-waf.d.ts.map +1 -0
  87. package/dist/composite/scan-waf.js +35 -0
  88. package/dist/composite/scan-waf.js.map +1 -0
  89. package/dist/correlation/index.d.ts +3 -0
  90. package/dist/correlation/index.d.ts.map +1 -0
  91. package/dist/correlation/index.js +1044 -0
  92. package/dist/correlation/index.js.map +1 -0
  93. package/dist/data/analytics-patterns.d.ts +21 -0
  94. package/dist/data/analytics-patterns.d.ts.map +1 -0
  95. package/dist/data/analytics-patterns.js +449 -0
  96. package/dist/data/analytics-patterns.js.map +1 -0
  97. package/dist/data/app-signatures.d.ts +52 -0
  98. package/dist/data/app-signatures.d.ts.map +1 -0
  99. package/dist/data/app-signatures.js +1143 -0
  100. package/dist/data/app-signatures.js.map +1 -0
  101. package/dist/data/c2-signatures.d.ts +54 -0
  102. package/dist/data/c2-signatures.d.ts.map +1 -0
  103. package/dist/data/c2-signatures.js +256 -0
  104. package/dist/data/c2-signatures.js.map +1 -0
  105. package/dist/data/cloud-ranges.d.ts +34 -0
  106. package/dist/data/cloud-ranges.d.ts.map +1 -0
  107. package/dist/data/cloud-ranges.js +628 -0
  108. package/dist/data/cloud-ranges.js.map +1 -0
  109. package/dist/data/cookie-patterns.d.ts +28 -0
  110. package/dist/data/cookie-patterns.d.ts.map +1 -0
  111. package/dist/data/cookie-patterns.js +225 -0
  112. package/dist/data/cookie-patterns.js.map +1 -0
  113. package/dist/data/error-signatures.d.ts +19 -0
  114. package/dist/data/error-signatures.d.ts.map +1 -0
  115. package/dist/data/error-signatures.js +321 -0
  116. package/dist/data/error-signatures.js.map +1 -0
  117. package/dist/data/favicon-hashes.d.ts +25 -0
  118. package/dist/data/favicon-hashes.d.ts.map +1 -0
  119. package/dist/data/favicon-hashes.js +249 -0
  120. package/dist/data/favicon-hashes.js.map +1 -0
  121. package/dist/data/h2-signatures.d.ts +50 -0
  122. package/dist/data/h2-signatures.d.ts.map +1 -0
  123. package/dist/data/h2-signatures.js +211 -0
  124. package/dist/data/h2-signatures.js.map +1 -0
  125. package/dist/data/header-order.d.ts +38 -0
  126. package/dist/data/header-order.d.ts.map +1 -0
  127. package/dist/data/header-order.js +185 -0
  128. package/dist/data/header-order.js.map +1 -0
  129. package/dist/data/jarm-signatures.d.ts +25 -0
  130. package/dist/data/jarm-signatures.d.ts.map +1 -0
  131. package/dist/data/jarm-signatures.js +213 -0
  132. package/dist/data/jarm-signatures.js.map +1 -0
  133. package/dist/data/saas-patterns.d.ts +23 -0
  134. package/dist/data/saas-patterns.d.ts.map +1 -0
  135. package/dist/data/saas-patterns.js +139 -0
  136. package/dist/data/saas-patterns.js.map +1 -0
  137. package/dist/data/sensitive-paths.d.ts +12 -0
  138. package/dist/data/sensitive-paths.d.ts.map +1 -0
  139. package/dist/data/sensitive-paths.js +1539 -0
  140. package/dist/data/sensitive-paths.js.map +1 -0
  141. package/dist/data/service-banners.d.ts +59 -0
  142. package/dist/data/service-banners.d.ts.map +1 -0
  143. package/dist/data/service-banners.js +323 -0
  144. package/dist/data/service-banners.js.map +1 -0
  145. package/dist/data/smtp-signatures.d.ts +12 -0
  146. package/dist/data/smtp-signatures.d.ts.map +1 -0
  147. package/dist/data/smtp-signatures.js +350 -0
  148. package/dist/data/smtp-signatures.js.map +1 -0
  149. package/dist/data/takeover-patterns.d.ts +37 -0
  150. package/dist/data/takeover-patterns.d.ts.map +1 -0
  151. package/dist/data/takeover-patterns.js +249 -0
  152. package/dist/data/takeover-patterns.js.map +1 -0
  153. package/dist/data/tech-patterns.d.ts +44 -0
  154. package/dist/data/tech-patterns.d.ts.map +1 -0
  155. package/dist/data/tech-patterns.js +690 -0
  156. package/dist/data/tech-patterns.js.map +1 -0
  157. package/dist/data/waf-signatures.d.ts +21 -0
  158. package/dist/data/waf-signatures.d.ts.map +1 -0
  159. package/dist/data/waf-signatures.js +318 -0
  160. package/dist/data/waf-signatures.js.map +1 -0
  161. package/dist/dns/index.d.ts +3 -0
  162. package/dist/dns/index.d.ts.map +1 -0
  163. package/dist/dns/index.js +1067 -0
  164. package/dist/dns/index.js.map +1 -0
  165. package/dist/enum/index.d.ts +3 -0
  166. package/dist/enum/index.d.ts.map +1 -0
  167. package/dist/enum/index.js +818 -0
  168. package/dist/enum/index.js.map +1 -0
  169. package/dist/h2/index.d.ts +3 -0
  170. package/dist/h2/index.d.ts.map +1 -0
  171. package/dist/h2/index.js +414 -0
  172. package/dist/h2/index.js.map +1 -0
  173. package/dist/http/index.d.ts +3 -0
  174. package/dist/http/index.d.ts.map +1 -0
  175. package/dist/http/index.js +2444 -0
  176. package/dist/http/index.js.map +1 -0
  177. package/dist/identify/index.d.ts +3 -0
  178. package/dist/identify/index.d.ts.map +1 -0
  179. package/dist/identify/index.js +447 -0
  180. package/dist/identify/index.js.map +1 -0
  181. package/dist/index.d.ts +3 -0
  182. package/dist/index.d.ts.map +1 -0
  183. package/dist/index.js +165 -0
  184. package/dist/index.js.map +1 -0
  185. package/dist/infra/index.d.ts +3 -0
  186. package/dist/infra/index.d.ts.map +1 -0
  187. package/dist/infra/index.js +989 -0
  188. package/dist/infra/index.js.map +1 -0
  189. package/dist/iot/index.d.ts +3 -0
  190. package/dist/iot/index.d.ts.map +1 -0
  191. package/dist/iot/index.js +610 -0
  192. package/dist/iot/index.js.map +1 -0
  193. package/dist/meta/index.d.ts +3 -0
  194. package/dist/meta/index.d.ts.map +1 -0
  195. package/dist/meta/index.js +442 -0
  196. package/dist/meta/index.js.map +1 -0
  197. package/dist/osint/index.d.ts +3 -0
  198. package/dist/osint/index.d.ts.map +1 -0
  199. package/dist/osint/index.js +687 -0
  200. package/dist/osint/index.js.map +1 -0
  201. package/dist/passive/index.d.ts +3 -0
  202. package/dist/passive/index.d.ts.map +1 -0
  203. package/dist/passive/index.js +944 -0
  204. package/dist/passive/index.js.map +1 -0
  205. package/dist/path/index.d.ts +3 -0
  206. package/dist/path/index.d.ts.map +1 -0
  207. package/dist/path/index.js +878 -0
  208. package/dist/path/index.js.map +1 -0
  209. package/dist/protocol/mcp-server.d.ts +4 -0
  210. package/dist/protocol/mcp-server.d.ts.map +1 -0
  211. package/dist/protocol/mcp-server.js +32 -0
  212. package/dist/protocol/mcp-server.js.map +1 -0
  213. package/dist/protocol/tools.d.ts +3 -0
  214. package/dist/protocol/tools.d.ts.map +1 -0
  215. package/dist/protocol/tools.js +5 -0
  216. package/dist/protocol/tools.js.map +1 -0
  217. package/dist/service/index.d.ts +3 -0
  218. package/dist/service/index.d.ts.map +1 -0
  219. package/dist/service/index.js +1053 -0
  220. package/dist/service/index.js.map +1 -0
  221. package/dist/smtp/index.d.ts +3 -0
  222. package/dist/smtp/index.d.ts.map +1 -0
  223. package/dist/smtp/index.js +437 -0
  224. package/dist/smtp/index.js.map +1 -0
  225. package/dist/ssh/index.d.ts +3 -0
  226. package/dist/ssh/index.d.ts.map +1 -0
  227. package/dist/ssh/index.js +676 -0
  228. package/dist/ssh/index.js.map +1 -0
  229. package/dist/tcp/index.d.ts +3 -0
  230. package/dist/tcp/index.d.ts.map +1 -0
  231. package/dist/tcp/index.js +369 -0
  232. package/dist/tcp/index.js.map +1 -0
  233. package/dist/timing/index.d.ts +3 -0
  234. package/dist/timing/index.d.ts.map +1 -0
  235. package/dist/timing/index.js +425 -0
  236. package/dist/timing/index.js.map +1 -0
  237. package/dist/tls/index.d.ts +3 -0
  238. package/dist/tls/index.d.ts.map +1 -0
  239. package/dist/tls/index.js +1332 -0
  240. package/dist/tls/index.js.map +1 -0
  241. package/dist/types/index.d.ts +26 -0
  242. package/dist/types/index.d.ts.map +1 -0
  243. package/dist/types/index.js +8 -0
  244. package/dist/types/index.js.map +1 -0
  245. package/dist/utils/cache.d.ts +11 -0
  246. package/dist/utils/cache.d.ts.map +1 -0
  247. package/dist/utils/cache.js +35 -0
  248. package/dist/utils/cache.js.map +1 -0
  249. package/dist/utils/murmurhash3.d.ts +3 -0
  250. package/dist/utils/murmurhash3.d.ts.map +1 -0
  251. package/dist/utils/murmurhash3.js +57 -0
  252. package/dist/utils/murmurhash3.js.map +1 -0
  253. package/dist/utils/rate-limiter.d.ts +10 -0
  254. package/dist/utils/rate-limiter.d.ts.map +1 -0
  255. package/dist/utils/rate-limiter.js +35 -0
  256. package/dist/utils/rate-limiter.js.map +1 -0
  257. package/dist/utils/require-key.d.ts +2 -0
  258. package/dist/utils/require-key.d.ts.map +1 -0
  259. package/dist/utils/require-key.js +8 -0
  260. package/dist/utils/require-key.js.map +1 -0
  261. package/dist/waf/index.d.ts +3 -0
  262. package/dist/waf/index.d.ts.map +1 -0
  263. package/dist/waf/index.js +767 -0
  264. package/dist/waf/index.js.map +1 -0
  265. package/dist/web/index.d.ts +3 -0
  266. package/dist/web/index.d.ts.map +1 -0
  267. package/dist/web/index.js +1366 -0
  268. package/dist/web/index.js.map +1 -0
  269. package/package.json +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/correlation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,kDAAkD;AAElD,0DAA0D;AAC1D,MAAM,qBAAqB,GAA6B;IACtD,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,CAAC;IACzE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC;IAC5D,GAAG,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,CAAC;IACzE,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC;IACzC,SAAS,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC;CAChE,CAAC;AAEF,yDAAyD;AACzD,MAAM,eAAe,GAA2B;IAC9C,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,oBAAoB;IAChC,mBAAmB,EAAE,SAAS;IAC9B,aAAa,EAAE,2BAA2B;IAC1C,KAAK,EAAE,yBAAyB;IAChC,eAAe,EAAE,eAAe;IAChC,UAAU,EAAE,mBAAmB;IAC/B,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,mBAAmB;IACjC,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,iBAAiB;IAC9B,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,iBAAiB;IACnC,iBAAiB,EAAE,4BAA4B;CAChD,CAAC;AAEF,sDAAsD;AACtD,MAAM,eAAe,GAA2B;IAC9C,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,KAAK;IACtB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF,0CAA0C;AAC1C,MAAM,iBAAiB,GAAyD;IAC9E,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;CACxC,CAAC;AAEF,+BAA+B;AAE/B,MAAM,WAAW,GAAY;IAC3B,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,+GAA+G;QAC/G,4GAA4G;QAC5G,uFAAuF;IACzF,MAAM,EAAE;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACnE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACpE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC/E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC9D;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,YAAY,GAAI,IAAI,CAAC,YAAmC,EAAE,WAAW,EAAE,CAAC;QAC9E,MAAM,eAAe,GAAG,IAAI,CAAC,eAAqC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAgC,CAAC;QACzD,MAAM,cAAc,GAAI,IAAI,CAAC,cAAqC,EAAE,WAAW,EAAE,CAAC;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,OAA+B,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;QAE7C,MAAM,cAAc,GAAkF,EAAE,CAAC;QACzG,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,uCAAuC;QACvC,IAAI,kBAAkB,GAAkB,IAAI,CAAC;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC9D,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,kBAAkB,GAAG,IAAI,CAAC;oBAC1B,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;YACpC,WAAW,EAAE,CAAC;YACd,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAErD,8EAA8E;YAC9E,gEAAgE;YAChE,qDAAqD;YACrD,IAAI,CAAC,QAAQ,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC,OAAO,IAAI,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACjD,CAAC,KAAK,IAAI,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC;oBAClB,KAAK,EAAE,wBAAwB;oBAC/B,QAAQ,EAAE,MAAM;oBAChB,WAAW,EAAE,yBAAyB,YAAY,4DAA4D;wBAC5G,oEAAoE;iBACvE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC9D,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEnE,4EAA4E;gBAC5E,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACxF,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,MAAM;wBAChB,WAAW,EAAE,2FAA2F;4BACtG,mHAAmH;qBACtH,CAAC,CAAC;gBACL,CAAC;gBACD,gDAAgD;qBAC3C,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG;oBACvE,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;oBAChE,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,sBAAsB,cAAc,oBAAoB,UAAU,0BAA0B;4BACvG,oFAAoF;qBACvF,CAAC,CAAC;gBACL,CAAC;gBACD,8BAA8B;qBACzB,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACrG,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,wBAAwB,cAAc,2DAA2D;4BAC5G,yDAAyD;qBAC5D,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;YACnC,WAAW,EAAE,CAAC;YACd,MAAM,aAAa,GAA6B;gBAC9C,KAAK,EAAE,CAAC,OAAO,CAAC;gBAChB,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,GAAG,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC;gBAC7B,MAAM,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;gBACnC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;gBAC5C,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC;gBAClD,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;gBAC7B,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC;gBAC1C,OAAO,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;aAC7B,CAAC;YAEF,MAAM,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YACtD,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtE,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,sBAAsB;wBAC7B,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,mCAAmC,cAAc,6BAA6B,YAAY,KAAK;4BAC1G,6GAA6G;qBAChH,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;YAClD,WAAW,EAAE,CAAC;YACd,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,IAAI;oBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,kDAAkD;gBAClD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC9D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAE5D,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnF,uFAAuF;oBACvF,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,6EAA6E;4BACxF,uGAAuG;qBAC1G,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAClG,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,wDAAwD,YAAY,4BAA4B;4BAC3G,uDAAuD;qBAC1D,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC5D,sCAAsC;oBACtC,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,uBAAuB;wBAC9B,QAAQ,EAAE,KAAK;wBACf,WAAW,EAAE,yFAAyF;4BACpG,+CAA+C;qBAClD,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,SAAS,IAAI,YAAY,EAAE,CAAC;YAC9B,WAAW,EAAE,CAAC;YACd,yEAAyE;YACzE,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClD,mCAAmC;gBACnC,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBACjD,cAAc,CAAC,IAAI,CAAC;wBAClB,KAAK,EAAE,sBAAsB;wBAC7B,QAAQ,EAAE,QAAQ;wBAClB,WAAW,EAAE,sBAAsB,UAAU,iDAAiD;4BAC5F,yEAAyE;qBAC5E,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,YAAY,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;QAE5E,MAAM,MAAM,GAAG;YACb,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG;YAC1D,WAAW;YACX,YAAY;YACZ,YAAY,EAAE,cAAc,CAAC,MAAM;YACnC,cAAc;YACd,YAAY,EAAE;gBACZ,YAAY,EAAE,YAAY,IAAI,IAAI;gBAClC,eAAe,EAAE,eAAe,IAAI,IAAI;gBACxC,UAAU,EAAE,UAAU,IAAI,IAAI;gBAC9B,cAAc,EAAE,cAAc,IAAI,IAAI;gBACtC,OAAO,EAAE,OAAO,IAAI,EAAE;gBACtB,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,IAAI,EAAE,IAAI,IAAI,IAAI;aACnB;YACD,kBAAkB;YAClB,UAAU,EACR,gBAAgB,IAAI,GAAG;gBACrB,CAAC,CAAC,8DAA8D;gBAChE,CAAC,CAAC,gBAAgB,IAAI,GAAG;oBACvB,CAAC,CAAC,+FAA+F;oBACjG,CAAC,CAAC,wGAAwG;SACjH,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,8BAA8B;AAE9B,MAAM,UAAU,GAAY;IAC1B,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,+GAA+G;QAC/G,4GAA4G;QAC5G,4GAA4G;QAC5G,0CAA0C;IAC5C,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAC/D,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC/E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;SACrE,CAAC,CACH;aACA,QAAQ,CAAC,sBAAsB,CAAC;QACnC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACvE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KAC7E;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAKpB,CAAC;QACH,MAAM,aAAa,GAAI,IAAI,CAAC,aAAoC,IAAI,QAAQ,CAAC,MAAM,CAAC;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAqC,CAAC;QAEjE,MAAM,OAAO,GAA+D,EAAE,CAAC;QAC/E,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,gCAAgC;QAChC,WAAW,IAAI,GAAG,CAAC;QACnB,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,cAAc,IAAI,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,sBAAsB;gBACjC,MAAM;gBACN,SAAS,EAAE,GAAG,aAAa,qEAAqE;oBAC9F,wEAAwE;aAC3E,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,cAAc,IAAI,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,iBAAiB;gBAC5B,MAAM;gBACN,SAAS,EAAE,GAAG,aAAa,4EAA4E;aACxG,CAAC,CAAC;QACL,CAAC;QAED,gEAAgE;QAChE,WAAW,IAAI,GAAG,CAAC;QACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAe,CAAC,CAAC;QAC3G,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACjF,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAErD,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,IAAI,CAAC;gBACpB,cAAc,IAAI,MAAM,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,2BAA2B;oBACtC,MAAM;oBACN,SAAS,EAAE,OAAO,aAAa,CAAC,MAAM,uDAAuD;wBAC3F,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oEAAoE;wBACpG,4BAA4B;iBAC/B,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,EAAE,CAAC;gBACnB,MAAM,MAAM,GAAG,GAAG,CAAC;gBACnB,cAAc,IAAI,MAAM,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,0BAA0B;oBACrC,MAAM;oBACN,SAAS,EAAE,wFAAwF;iBACpG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,WAAW,IAAI,GAAG,CAAC;QACnB,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU;gBAAE,SAAS;YAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAE7C,iCAAiC;YACjC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACvE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,wBAAwB,CAAC,CAAC;YACrE,CAAC;YACD,sBAAsB;YACtB,IAAI,WAAW,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3E,mBAAmB,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC;YACpE,CAAC;YACD,6CAA6C;YAC7C,IAAI,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7E,mBAAmB,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,6BAA6B,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,cAAc,IAAI,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,yBAAyB;gBACpC,MAAM;gBACN,SAAS,EAAE,gEAAgE,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC3G,6CAA6C;aAChD,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,cAAc,IAAI,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,wBAAwB;gBACnC,MAAM;gBACN,SAAS,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,8CAA8C;aACnF,CAAC,CAAC;QACL,CAAC;QAED,0CAA0C;QAC1C,WAAW,IAAI,GAAG,CAAC;QACnB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjF,IAAI,gBAAgB,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxE,MAAM,MAAM,GAAG,GAAG,CAAC;YACnB,cAAc,IAAI,MAAM,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,SAAS,EAAE,2BAA2B;gBACtC,MAAM;gBACN,SAAS,EAAE,sBAAsB,QAAQ,CAAC,MAAM,0DAA0D;oBACxG,+CAA+C;aAClD,CAAC,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,WAAW,IAAI,GAAG,CAAC;QACnB,IAAI,SAAS,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACnE,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,wDAAwD;gBACxD,MAAM,SAAS,GAAG;oBAChB,mBAAmB;oBACnB,8BAA8B;oBAC9B,oCAAoC;iBACrC,CAAC;gBACF,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEtE,IAAI,QAAQ,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,IAAI,CAAC;oBACpB,cAAc,IAAI,MAAM,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,SAAS,EAAE,0BAA0B;wBACrC,MAAM;wBACN,SAAS,EAAE,6BAA6B,QAAQ,sCAAsC;4BACpF,mFAAmF;qBACtF,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,aAAa;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,WAAW,IAAI,GAAG,CAAC;QACnB,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,WAAW,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3H,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;YACpF,IAAI,aAAa,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC;gBACpB,cAAc,IAAI,MAAM,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,SAAS,EAAE,uBAAuB;oBAClC,MAAM;oBACN,SAAS,EAAE,GAAG,aAAa,CAAC,MAAM,OAAO,WAAW,CAAC,MAAM,8BAA8B;wBACvF,gGAAgG;iBACnG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAEnD,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,YAAY;YAC3B,UAAU,EACR,YAAY,IAAI,GAAG;gBACjB,CAAC,CAAC,qFAAqF;gBACvF,CAAC,CAAC,YAAY,IAAI,GAAG;oBACnB,CAAC,CAAC,yGAAyG;oBAC3G,CAAC,CAAC,YAAY,IAAI,GAAG;wBACnB,CAAC,CAAC,6DAA6D;wBAC/D,CAAC,CAAC,sDAAsD;YAChE,OAAO;YACP,YAAY,EAAE;gBACZ,gBAAgB,EAAE,QAAQ,CAAC,MAAM;gBACjC,aAAa;gBACb,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,iBAAiB,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;aAC9C;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,8BAA8B;AAE9B,MAAM,UAAU,GAAY;IAC1B,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,yGAAyG;QACzG,wGAAwG;QACxG,sDAAsD;IACxD,MAAM,EAAE;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACnE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;QACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC1D,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAClF,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3E;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,YAAY,GAAI,IAAI,CAAC,YAAmC,EAAE,WAAW,EAAE,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAmC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,aAAqC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAoC,CAAC;QAEjE,MAAM,QAAQ,GAOR,EAAE,CAAC;QAET,4CAA4C;QAC5C,IAAI,YAAY,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAEhE,yDAAyD;YACzD,MAAM,cAAc,GAClB,eAAe,CAAC,CAAC,CAAC,KAAK,QAAQ;gBAC/B,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC9E,4CAA4C;YAC5C,MAAM,eAAe,GACnB,eAAe,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACnE,0CAA0C;YAC1C,MAAM,YAAY,GAChB,eAAe,CAAC,CAAC,CAAC,KAAK,cAAc;gBACrC,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAE3C,IAAI,aAAa,GAAG,SAAS,CAAC;YAC9B,IAAI,cAAc,GAAG,SAAS,CAAC;YAE/B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,aAAa,GAAG,OAAO,CAAC;iBACvD,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,aAAa,GAAG,QAAQ,CAAC;iBAC9D,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAE,aAAa,GAAG,KAAK,CAAC;iBAClE,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,aAAa,GAAG,WAAW,CAAC;iBACpE,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,aAAa,GAAG,OAAO,CAAC;YAEjE,IAAI,cAAc;gBAAE,cAAc,GAAG,OAAO,CAAC;iBACxC,IAAI,eAAe;gBAAE,cAAc,GAAG,QAAQ,CAAC;iBAC/C,IAAI,YAAY;gBAAE,cAAc,GAAG,KAAK,CAAC;YAE9C,IAAI,aAAa,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;gBACpG,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,+BAA+B;oBACtC,gBAAgB,EAAE,IAAI;oBACtB,eAAe,EAAE,kBAAkB,YAAY,EAAE;oBACjD,cAAc,EAAE,2BAA2B,cAAc,EAAE;oBAC3D,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,uBAAuB,aAAa,wCAAwC;wBACvF,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,cAAc,IAAI;wBACtF,0EAA0E;iBAC7E,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,+BAA+B;oBACtC,gBAAgB,EAAE,KAAK;oBACvB,eAAe,EAAE,aAAa;oBAC9B,cAAc,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;oBAC/E,UAAU,EAAE,GAAG;oBACf,WAAW,EAAE,mDAAmD;iBACjE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YACvB,2BAA2B;YAC3B,MAAM,WAAW,GAA2B;gBAC1C,kCAAkC,EAAE,iBAAiB;gBACrD,kCAAkC,EAAE,aAAa;gBACjD,kCAAkC,EAAE,cAAc;gBAClD,kCAAkC,EAAE,gBAAgB;gBACpD,kCAAkC,EAAE,mBAAmB;gBACvD,kCAAkC,EAAE,SAAS;aAC9C,CAAC;YAEF,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,UAAU,GAAG,SAAS,CAAC;YAC3B,IAAI,SAAS,GAAG,UAAU,IAAI,2BAA2B,CAAC;YAE1D,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,UAAU,GAAG,SAAS,CAAC;iBAC1D,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,UAAU,GAAG,UAAU,CAAC;iBACjE,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,UAAU,GAAG,OAAO,CAAC;iBAC3D,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,UAAU,GAAG,QAAQ,CAAC;YAElE,IAAI,UAAU,EAAE,CAAC;gBACf,iDAAiD;gBACjD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChE,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,GAAG,wCAAwC,CAAC;gBACvD,CAAC;qBAAM,IAAI,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvE,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,GAAG,oCAAoC,CAAC;gBACnD,CAAC;qBAAM,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvE,OAAO,GAAG,IAAI,CAAC;oBACf,SAAS,GAAG,+CAA+C,CAAC;gBAC9D,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,qBAAqB;gBAC5B,gBAAgB,EAAE,OAAO;gBACzB,eAAe,EAAE,eAAe,SAAS,EAAE;gBAC3C,cAAc,EAAE,SAAS;gBACzB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;gBAC/B,WAAW,EAAE,OAAO;oBAClB,CAAC,CAAC,qBAAqB,UAAU,2BAA2B,KAAK,aAAa,SAAS,IAAI;wBACzF,8FAA8F;oBAChG,CAAC,CAAC,6EAA6E;aAClF,CAAC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,IAAI,SAAS,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAChE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE5C,uDAAuD;gBACvD,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;gBAEpE,kFAAkF;gBAClF,IAAI,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,UAAU,IAAI,SAAS,CAAC,EAAE,CAAC;oBAChE,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,2BAA2B;wBAClC,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,WAAW,OAAO,EAAE;wBACrC,cAAc,EAAE,6DAA6D,OAAO,GAAG;wBACvF,UAAU,EAAE,IAAI;wBAChB,WAAW,EAAE,yBAAyB,OAAO,iBAAiB;4BAC5D,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;4BACjC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;4BAC3B,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;yBACrC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oEAAoE;qBACjG,CAAC,CAAC;gBACL,CAAC;gBAED,mDAAmD;gBACnD,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAChE,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,oBAAoB;wBAC3B,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,WAAW,OAAO,EAAE;wBACrC,cAAc,EAAE,0CAA0C;wBAC1D,UAAU,EAAE,GAAG;wBACf,WAAW,EAAE,yBAAyB,OAAO,mCAAmC;4BAC9E,sFAAsF;4BACtF,wDAAwD;qBAC3D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACvE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAE5C,uCAAuC;gBACvC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAChD,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,oBAAoB;wBAC3B,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,SAAS,cAAc,EAAE;wBAC1C,cAAc,EAAE,sDAAsD;wBACtE,UAAU,EAAE,IAAI;wBAChB,WAAW,EAAE,iBAAiB,cAAc,2DAA2D;4BACrG,yDAAyD;qBAC5D,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBAChE,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,oBAAoB;wBAC3B,gBAAgB,EAAE,IAAI;wBACtB,eAAe,EAAE,UAAU,cAAc,EAAE;wBAC3C,cAAc,EAAE,+CAA+C;wBAC/D,UAAU,EAAE,IAAI;wBAChB,WAAW,EAAE,oBAAoB,KAAK,kEAAkE;4BACtG,oCAAoC;qBACvC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,QAAQ;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;aACjC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG;YACb,gBAAgB;YAChB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG;YACxD,WAAW,EAAE,QAAQ,CAAC,MAAM;YAC5B,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM;YAChE,QAAQ;YACR,UAAU,EAAE,gBAAgB;gBAC1B,CAAC,CAAC,uBAAuB,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,sBAAsB;oBAC9F,6CAA6C;gBAC/C,CAAC,CAAC,kFAAkF;SACvF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,6BAA6B;AAE7B,MAAM,SAAS,GAAY;IACzB,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,6GAA6G;QAC7G,qGAAqG;QACrG,2EAA2E;IAC7E,MAAM,EAAE;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QAC5E,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC9E;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAmC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAmC,CAAC;QAE1D,MAAM,WAAW,GAMX,EAAE,CAAC;QAET,yCAAyC;QACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,wDAAwD;QACxD,SAAS,eAAe,CAAC,GAAW,EAAE,IAAa,EAAE,IAAa;YAChE,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;gBAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBACnD,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,YAAY,EAAE,wDAAwD,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;gBAClH,CAAC;gBACD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACd,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;gBACtF,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,EAAE,YAAY,EAAE,qFAAqF,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACzI,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,YAAY,EAAE,4IAA4I,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;YACtM,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,YAAY,EAAE,iFAAiF,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;YAC1I,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,OAAO,EAAE,YAAY,EAAE,+BAA+B,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACnF,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,YAAY,EAAE,uFAAuF,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;YAC9I,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,EAAE,YAAY,EAAE,mCAAmC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;YAC5F,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,YAAY,EAAE,+DAA+D,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;YACnH,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7D,OAAO,EAAE,YAAY,EAAE,kEAAkE,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;YAC5H,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,YAAY,EAAE,4DAA4D,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;YACtH,CAAC;YAED,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,EAAE,YAAY,EAAE,wEAAwE,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;YAClI,CAAC;YAED,OAAO,EAAE,YAAY,EAAE,6BAA6B,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAChF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,SAAS,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAElC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,WAAW,EAAE,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEtE,WAAW,CAAC,IAAI,CAAC;oBACf,KAAK,EAAE,GAAG;oBACV,MAAM,EAAE,IAAI,IAAI,UAAU;oBAC1B,MAAM,EAAE,IAAI,IAAI,UAAU;oBAC1B,YAAY;oBACZ,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAE7D,wBAAwB;QACxB,MAAM,aAAa,GAA6B,EAAE,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACzE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,MAAM,GAAG;YACb,eAAe,EAAE,YAAY;YAC7B,WAAW,EAAE,SAAS;YACtB,aAAa,EAAE,WAAW;YAC1B,eAAe,EAAE,WAAW,CAAC,MAAM;YACnC,WAAW;YACX,aAAa;YACb,UAAU,EACR,YAAY,IAAI,IAAI;gBAClB,CAAC,CAAC,+FAA+F;gBACjG,CAAC,CAAC,YAAY,IAAI,GAAG;oBACnB,CAAC,CAAC,4EAA4E;oBAC9E,CAAC,CAAC,YAAY,IAAI,GAAG;wBACnB,CAAC,CAAC,2FAA2F;wBAC7F,CAAC,CAAC,YAAY,IAAI,GAAG;4BACnB,CAAC,CAAC,yGAAyG;4BAC3G,CAAC,CAAC,0FAA0F;SACvG,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,8BAA8B;AAE9B,MAAM,UAAU,GAAY;IAC1B,IAAI,EAAE,aAAa;IACnB,WAAW,EACT,wGAAwG;QACxG,6EAA6E;QAC7E,qFAAqF;IACvF,MAAM,EAAE;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACpE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAChE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACjF,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC9E,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QACpE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7D,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC5F;IACD,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAiC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAiC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAgC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAiD,CAAC;QAC1E,MAAM,YAAY,GAAG,IAAI,CAAC,YAAkC,CAAC;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAyC,CAAC;QAEzE,wBAAwB;QACxB,MAAM,MAAM,GAKN,EAAE,CAAC;QAET,qCAAqC;QACrC,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;SACrD,CAAC,CAAC;QAEH,iCAAiC;QACjC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACP,QAAQ,EAAE,WAAW;oBACrB,IAAI,EAAE,6BAA6B;oBACnC,cAAc,EAAE,IAAI;oBACpB,IAAI,EAAE,6FAA6F;iBACpG;aACF,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,MAAM,aAAa,GAA4B,EAAE,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,EAAE,GAAG,QAAQ,CAAC;YAC5B,cAAc;YACd,IAAI,QAAQ,CAAC,KAAK,CAAC,iDAAiD,CAAC,EAAE,CAAC;gBACtE,aAAa,CAAC,WAAW,GAAG,oBAAoB,CAAC;gBACjD,aAAa,CAAC,IAAI,GAAG,uEAAuE,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC;YACvC,CAAC;QACH,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,aAAa,CAAC,cAAc,GAAG,YAAY,CAAC;QAC9C,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAC;gBACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC;oBACnC,aAAa,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,wEAAwE,CAAC;gBAClH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,aAAa,GAA8B,EAAE,CAAC;YAEpD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAA4B,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBAExD,0BAA0B;gBAC1B,gFAAgF;gBAChF,IAAI,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACnD,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAChD,mCAAmC;wBACnC,MAAM,EAAE,GAAG;4BACT,SAAS,GAAG,IAAI;4BAChB,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI;4BACvB,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;4BACxB,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;yBACzB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACZ,6BAA6B;wBAC7B,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;wBACvE,MAAM,CAAC,gBAAgB,GAAG,EAAE,CAAC;wBAC7B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;oBACnC,CAAC;gBACH,CAAC;gBACD,iBAAiB;qBACZ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChE,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC;gBAC9B,CAAC;gBACD,UAAU;qBACL,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/D,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC1B,CAAC;gBAED,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAED,SAAS,CAAC,OAAO,GAAG,aAAa,CAAC;YAClC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,uBAAuB,CAAC;YAEnE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAE/C,sBAAsB;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACjE,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC9C,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChD,MAAM,EAAE,GAAG;wBACT,SAAS,GAAG,IAAI;wBAChB,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI;wBACvB,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;wBACxB,CAAC,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI;qBACzB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACZ,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBACvE,QAAQ,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,kBAAkB;wBAC1B,EAAE;wBACF,IAAI;wBACJ,IAAI,EAAE,sDAAsD;qBAC7D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;gBACzC,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,mBAAmB;oBAC3B,QAAQ;oBACR,IAAI,EAAE,4EAA4E;iBACnF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE;oBACP,KAAK,EAAE,QAAQ,CAAC,MAAM;oBACtB,OAAO,EAAE,QAAQ;iBAClB;aACF,CAAC,CAAC;QACL,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAA4B,EAAE,CAAC;QAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9D,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACnD,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEL,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,WAAW,CAAC,aAAa,GAAG,SAAS,CAAC;YACtC,WAAW,CAAC,iBAAiB,GAAG,aAAa,CAAC;YAC9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC/B,WAAW,CAAC,IAAI,GAAG,gGAAgG,CAAC;YACtH,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE;gBACR,MAAM;gBACN,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,MAAM,EAAE,CAAC,CAAC,WAAW;gBACrB,eAAe,EAAE,UAAU;gBAC3B,YAAY,EAAE,QAAQ,CAAC,MAAM;aAC9B;YACD,WAAW;YACX,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,eAAe,EAAE;gBACf,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,WAAW,uDAAuD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7G,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,8EAA8E,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChH,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,uEAAuE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChG,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBACjC,CAAC,CAAC,CAAC,gGAAgG,CAAC;oBACpG,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,uCAAuC;AAEvC,MAAM,CAAC,MAAM,gBAAgB,GAAc;IACzC,WAAW;IACX,UAAU;IACV,UAAU;IACV,SAAS;IACT,UAAU;CACX,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface AnalyticsPattern {
2
+ /** Service name */
3
+ name: string;
4
+ /** Functional category */
5
+ category: "analytics" | "tag-manager" | "advertising" | "heatmap" | "ab-testing" | "error-tracking";
6
+ /** Detection patterns across different embedding methods */
7
+ patterns: {
8
+ /** Regex patterns to match <script src="..."> attributes */
9
+ script?: string[];
10
+ /** Regex patterns to match inline JavaScript code */
11
+ inline?: string[];
12
+ /** Global variable names set on `window` */
13
+ global?: string[];
14
+ };
15
+ /** Regex to extract the tracking / account ID (first capture group) */
16
+ idExtract?: string;
17
+ /** Whether the extracted ID can link to the same owner across different domains */
18
+ crossRefValue: boolean;
19
+ }
20
+ export declare const ANALYTICS_PATTERNS: AnalyticsPattern[];
21
+ //# sourceMappingURL=analytics-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-patterns.d.ts","sourceRoot":"","sources":["../../src/data/analytics-patterns.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,QAAQ,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB,CAAC;IACpG,4DAA4D;IAC5D,QAAQ,EAAE;QACR,4DAA4D;QAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,qDAAqD;QACrD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,4CAA4C;QAC5C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,EAAE,gBAAgB,EAmdhD,CAAC"}
@@ -0,0 +1,449 @@
1
+ // analytics-patterns.ts — Analytics and tracking code detection patterns
2
+ // Identifies analytics services, tag managers, advertising pixels, and heatmap tools
3
+ // embedded in HTML/JavaScript responses. Supports tracking ID extraction for cross-domain correlation.
4
+ export const ANALYTICS_PATTERNS = [
5
+ // ── Google Analytics (Universal Analytics — UA) ────────────────────────
6
+ {
7
+ name: "Google Analytics (Universal)",
8
+ category: "analytics",
9
+ patterns: {
10
+ script: [
11
+ "google-analytics\\.com\\/analytics\\.js",
12
+ "google-analytics\\.com\\/ga\\.js",
13
+ ],
14
+ inline: [
15
+ "ga\\s*\\(\\s*['\"]create['\"]\\s*,\\s*['\"]UA-",
16
+ "ga\\s*\\(\\s*['\"]send['\"]\\s*,\\s*['\"]pageview['\"]\\s*\\)",
17
+ "_gaq\\.push\\(",
18
+ ],
19
+ global: ["ga", "_gaq", "GoogleAnalyticsObject"],
20
+ },
21
+ idExtract: "(UA-\\d{4,10}-\\d{1,4})",
22
+ crossRefValue: true,
23
+ },
24
+ // ── Google Analytics 4 (GA4) ───────────────────────────────────────────
25
+ {
26
+ name: "Google Analytics 4",
27
+ category: "analytics",
28
+ patterns: {
29
+ script: [
30
+ "googletagmanager\\.com\\/gtag\\/js\\?id=G-",
31
+ "google-analytics\\.com\\/g\\/collect",
32
+ ],
33
+ inline: [
34
+ "gtag\\s*\\(\\s*['\"]config['\"]\\s*,\\s*['\"]G-",
35
+ "gtag\\s*\\(\\s*['\"]event['\"]",
36
+ ],
37
+ global: ["gtag", "dataLayer"],
38
+ },
39
+ idExtract: "(G-[A-Z0-9]{4,15})",
40
+ crossRefValue: true,
41
+ },
42
+ // ── Google Tag Manager ─────────────────────────────────────────────────
43
+ {
44
+ name: "Google Tag Manager",
45
+ category: "tag-manager",
46
+ patterns: {
47
+ script: [
48
+ "googletagmanager\\.com\\/gtm\\.js\\?id=GTM-",
49
+ ],
50
+ inline: [
51
+ "GTM-[A-Z0-9]{4,10}",
52
+ "google_tag_manager",
53
+ "\\(function\\s*\\(w,d,s,l,i\\)\\{",
54
+ ],
55
+ global: ["google_tag_manager", "dataLayer"],
56
+ },
57
+ idExtract: "(GTM-[A-Z0-9]{4,10})",
58
+ crossRefValue: true,
59
+ },
60
+ // ── Google AdSense ─────────────────────────────────────────────────────
61
+ {
62
+ name: "Google AdSense",
63
+ category: "advertising",
64
+ patterns: {
65
+ script: [
66
+ "pagead2\\.googlesyndication\\.com\\/pagead\\/js\\/adsbygoogle\\.js",
67
+ ],
68
+ inline: [
69
+ "adsbygoogle",
70
+ 'data-ad-client\\s*=\\s*["\']ca-pub-',
71
+ "ca-pub-\\d{10,16}",
72
+ ],
73
+ global: ["adsbygoogle"],
74
+ },
75
+ idExtract: "(ca-pub-\\d{10,16})",
76
+ crossRefValue: true,
77
+ },
78
+ // ── Facebook Pixel (Meta Pixel) ────────────────────────────────────────
79
+ {
80
+ name: "Facebook Pixel",
81
+ category: "advertising",
82
+ patterns: {
83
+ script: [
84
+ "connect\\.facebook\\.net\\/[a-z_]+\\/fbevents\\.js",
85
+ ],
86
+ inline: [
87
+ "fbq\\s*\\(\\s*['\"]init['\"]\\s*,\\s*['\"]\\d+['\"]",
88
+ "fbq\\s*\\(\\s*['\"]track['\"]",
89
+ "_fbq",
90
+ ],
91
+ global: ["fbq", "_fbq"],
92
+ },
93
+ idExtract: "fbq\\s*\\(\\s*['\"]init['\"]\\s*,\\s*['\"]?(\\d{10,20})",
94
+ crossRefValue: true,
95
+ },
96
+ // ── Hotjar ─────────────────────────────────────────────────────────────
97
+ {
98
+ name: "Hotjar",
99
+ category: "heatmap",
100
+ patterns: {
101
+ script: [
102
+ "static\\.hotjar\\.com\\/c\\/hotjar-",
103
+ ],
104
+ inline: [
105
+ "hj\\s*\\(\\s*['\"]init['\"]",
106
+ "hotjar\\.com",
107
+ "hjSiteSettings",
108
+ ],
109
+ global: ["hj", "hjSiteSettings"],
110
+ },
111
+ idExtract: "hjid\\s*:\\s*(\\d+)|hotjar-(\\d+)",
112
+ crossRefValue: true,
113
+ },
114
+ // ── Segment ────────────────────────────────────────────────────────────
115
+ {
116
+ name: "Segment",
117
+ category: "analytics",
118
+ patterns: {
119
+ script: [
120
+ "cdn\\.segment\\.com\\/analytics\\.js",
121
+ "cdn\\.segment\\.io\\/",
122
+ ],
123
+ inline: [
124
+ "analytics\\.load\\s*\\(",
125
+ "analytics\\.identify\\s*\\(",
126
+ "analytics\\.track\\s*\\(",
127
+ "analytics\\.page\\s*\\(",
128
+ ],
129
+ global: ["analytics"],
130
+ },
131
+ idExtract: "analytics\\.load\\s*\\(\\s*['\"]([A-Za-z0-9]+)['\"]",
132
+ crossRefValue: true,
133
+ },
134
+ // ── Mixpanel ───────────────────────────────────────────────────────────
135
+ {
136
+ name: "Mixpanel",
137
+ category: "analytics",
138
+ patterns: {
139
+ script: [
140
+ "cdn\\.mxpnl\\.com\\/libs\\/",
141
+ "cdn4?\\.mxpnl\\.com",
142
+ ],
143
+ inline: [
144
+ "mixpanel\\.init\\s*\\(",
145
+ "mixpanel\\.track\\s*\\(",
146
+ "mixpanel\\.identify\\s*\\(",
147
+ ],
148
+ global: ["mixpanel"],
149
+ },
150
+ idExtract: "mixpanel\\.init\\s*\\(\\s*['\"]([a-f0-9]{32})['\"]",
151
+ crossRefValue: true,
152
+ },
153
+ // ── Amplitude ──────────────────────────────────────────────────────────
154
+ {
155
+ name: "Amplitude",
156
+ category: "analytics",
157
+ patterns: {
158
+ script: [
159
+ "cdn\\.amplitude\\.com\\/libs\\/",
160
+ "cdn\\.amplitude\\.com\\/script\\/",
161
+ ],
162
+ inline: [
163
+ "amplitude\\.getInstance\\s*\\(",
164
+ "amplitude\\.init\\s*\\(",
165
+ "amplitude\\.logEvent\\s*\\(",
166
+ ],
167
+ global: ["amplitude"],
168
+ },
169
+ idExtract: "amplitude\\.init\\s*\\(\\s*['\"]([a-f0-9]{32})['\"]",
170
+ crossRefValue: true,
171
+ },
172
+ // ── PostHog ────────────────────────────────────────────────────────────
173
+ {
174
+ name: "PostHog",
175
+ category: "analytics",
176
+ patterns: {
177
+ script: [
178
+ "app\\.posthog\\.com\\/static\\/array\\.js",
179
+ "us\\.posthog\\.com\\/static\\/array\\.js",
180
+ "eu\\.posthog\\.com\\/static\\/array\\.js",
181
+ ],
182
+ inline: [
183
+ "posthog\\.init\\s*\\(",
184
+ "posthog\\.capture\\s*\\(",
185
+ "posthog\\.identify\\s*\\(",
186
+ ],
187
+ global: ["posthog"],
188
+ },
189
+ idExtract: "posthog\\.init\\s*\\(\\s*['\"]([a-zA-Z0-9_-]+)['\"]",
190
+ crossRefValue: true,
191
+ },
192
+ // ── Plausible ──────────────────────────────────────────────────────────
193
+ {
194
+ name: "Plausible",
195
+ category: "analytics",
196
+ patterns: {
197
+ script: [
198
+ "plausible\\.io\\/js\\/script\\.js",
199
+ "plausible\\.io\\/js\\/plausible\\.js",
200
+ ],
201
+ inline: [
202
+ "data-domain\\s*=.*plausible",
203
+ ],
204
+ global: ["plausible"],
205
+ },
206
+ idExtract: 'data-domain\\s*=\\s*["\']([^"\']+)["\']',
207
+ crossRefValue: false,
208
+ },
209
+ // ── Matomo / Piwik ─────────────────────────────────────────────────────
210
+ {
211
+ name: "Matomo",
212
+ category: "analytics",
213
+ patterns: {
214
+ script: [
215
+ "matomo\\.js",
216
+ "piwik\\.js",
217
+ "matomo\\.php",
218
+ "piwik\\.php",
219
+ ],
220
+ inline: [
221
+ "_paq\\.push\\s*\\(",
222
+ "Matomo\\.getTracker\\s*\\(",
223
+ "Piwik\\.getTracker\\s*\\(",
224
+ ],
225
+ global: ["_paq", "Matomo", "Piwik"],
226
+ },
227
+ idExtract: "setSiteId['\",\\s]+(\\d+)",
228
+ crossRefValue: false,
229
+ },
230
+ // ── Heap ───────────────────────────────────────────────────────────────
231
+ {
232
+ name: "Heap",
233
+ category: "analytics",
234
+ patterns: {
235
+ script: [
236
+ "cdn\\.heapanalytics\\.com\\/js\\/heap-",
237
+ "heapanalytics\\.com",
238
+ ],
239
+ inline: [
240
+ "heap\\.load\\s*\\(",
241
+ "heap\\.track\\s*\\(",
242
+ "heap\\.identify\\s*\\(",
243
+ ],
244
+ global: ["heap"],
245
+ },
246
+ idExtract: "heap\\.load\\s*\\(\\s*['\"]?(\\d{8,12})",
247
+ crossRefValue: true,
248
+ },
249
+ // ── FullStory ──────────────────────────────────────────────────────────
250
+ {
251
+ name: "FullStory",
252
+ category: "heatmap",
253
+ patterns: {
254
+ script: [
255
+ "fullstory\\.com\\/s\\/fs\\.js",
256
+ "edge\\.fullstory\\.com",
257
+ ],
258
+ inline: [
259
+ "_fs_host",
260
+ "_fs_org",
261
+ "FS\\.identify\\s*\\(",
262
+ "FS\\.setUserVars\\s*\\(",
263
+ ],
264
+ global: ["FS", "_fs_host", "_fs_org"],
265
+ },
266
+ idExtract: "_fs_org\\s*[=:]\\s*['\"]([A-Z0-9]+)['\"]",
267
+ crossRefValue: true,
268
+ },
269
+ // ── Microsoft Clarity ──────────────────────────────────────────────────
270
+ {
271
+ name: "Microsoft Clarity",
272
+ category: "heatmap",
273
+ patterns: {
274
+ script: [
275
+ "clarity\\.ms\\/tag\\/",
276
+ ],
277
+ inline: [
278
+ "clarity\\s*\\(\\s*['\"]set['\"]",
279
+ 'function\\s*\\(c,l,a,r,i,t,y\\)',
280
+ ],
281
+ global: ["clarity"],
282
+ },
283
+ idExtract: "clarity\\.ms\\/tag\\/([a-z0-9]+)",
284
+ crossRefValue: true,
285
+ },
286
+ // ── Criteo ─────────────────────────────────────────────────────────────
287
+ {
288
+ name: "Criteo",
289
+ category: "advertising",
290
+ patterns: {
291
+ script: [
292
+ "static\\.criteo\\.net\\/js\\/",
293
+ "dynamic\\.criteo\\.com",
294
+ ],
295
+ inline: [
296
+ "criteo_q\\.push\\s*\\(",
297
+ "window\\.criteo_q",
298
+ ],
299
+ global: ["criteo_q"],
300
+ },
301
+ idExtract: "['\"]account['\"]\\s*:\\s*(\\d+)",
302
+ crossRefValue: true,
303
+ },
304
+ // ── Amazon Associates ──────────────────────────────────────────────────
305
+ {
306
+ name: "Amazon Associates",
307
+ category: "advertising",
308
+ patterns: {
309
+ script: [
310
+ "amazon-adsystem\\.com",
311
+ "assoc-amazon\\.com",
312
+ "ws-na\\.amazon-adsystem\\.com",
313
+ ],
314
+ inline: [
315
+ "amzn_assoc_",
316
+ "amazon_ad_tag",
317
+ ],
318
+ global: ["amzn_assoc_ad_type", "amzn_assoc_tracking_id"],
319
+ },
320
+ idExtract: "amzn_assoc_tracking_id\\s*=\\s*['\"]([^'\"]+)['\"]",
321
+ crossRefValue: true,
322
+ },
323
+ // ── Pinterest Tag ──────────────────────────────────────────────────────
324
+ {
325
+ name: "Pinterest Tag",
326
+ category: "advertising",
327
+ patterns: {
328
+ script: [
329
+ "s\\.pinimg\\.com\\/ct\\/",
330
+ "ct\\.pinterest\\.com",
331
+ ],
332
+ inline: [
333
+ "pintrk\\s*\\(\\s*['\"]load['\"]",
334
+ "pintrk\\s*\\(\\s*['\"]page['\"]",
335
+ ],
336
+ global: ["pintrk"],
337
+ },
338
+ idExtract: "pintrk\\s*\\(\\s*['\"]load['\"]\\s*,\\s*['\"]?(\\d+)",
339
+ crossRefValue: true,
340
+ },
341
+ // ── Twitter / X Pixel ──────────────────────────────────────────────────
342
+ {
343
+ name: "Twitter Pixel",
344
+ category: "advertising",
345
+ patterns: {
346
+ script: [
347
+ "static\\.ads-twitter\\.com\\/uwt\\.js",
348
+ "platform\\.twitter\\.com\\/oct\\.js",
349
+ ],
350
+ inline: [
351
+ "twq\\s*\\(\\s*['\"]init['\"]",
352
+ "twq\\s*\\(\\s*['\"]track['\"]",
353
+ ],
354
+ global: ["twq"],
355
+ },
356
+ idExtract: "twq\\s*\\(\\s*['\"]init['\"]\\s*,\\s*['\"]([a-z0-9]+)['\"]",
357
+ crossRefValue: true,
358
+ },
359
+ // ── LinkedIn Insight Tag ───────────────────────────────────────────────
360
+ {
361
+ name: "LinkedIn Insight Tag",
362
+ category: "advertising",
363
+ patterns: {
364
+ script: [
365
+ "snap\\.licdn\\.com\\/li\\.lms-analytics\\/insight\\.min\\.js",
366
+ ],
367
+ inline: [
368
+ "_linkedin_partner_id\\s*=",
369
+ "_linkedin_data_partner_ids\\.push\\s*\\(",
370
+ ],
371
+ global: ["_linkedin_partner_id", "_linkedin_data_partner_ids"],
372
+ },
373
+ idExtract: "_linkedin_partner_id\\s*=\\s*['\"]?(\\d+)",
374
+ crossRefValue: true,
375
+ },
376
+ // ── TikTok Pixel ───────────────────────────────────────────────────────
377
+ {
378
+ name: "TikTok Pixel",
379
+ category: "advertising",
380
+ patterns: {
381
+ script: [
382
+ "analytics\\.tiktok\\.com\\/i18n\\/pixel\\/",
383
+ ],
384
+ inline: [
385
+ "ttq\\.load\\s*\\(",
386
+ "ttq\\.track\\s*\\(",
387
+ "ttq\\.page\\s*\\(",
388
+ ],
389
+ global: ["ttq", "TiktokAnalyticsObject"],
390
+ },
391
+ idExtract: "ttq\\.load\\s*\\(\\s*['\"]([A-Z0-9]+)['\"]",
392
+ crossRefValue: true,
393
+ },
394
+ // ── Snap Pixel (Snapchat) ──────────────────────────────────────────────
395
+ {
396
+ name: "Snap Pixel",
397
+ category: "advertising",
398
+ patterns: {
399
+ script: [
400
+ "sc-static\\.net\\/scevent\\.min\\.js",
401
+ ],
402
+ inline: [
403
+ "snaptr\\s*\\(\\s*['\"]init['\"]",
404
+ "snaptr\\s*\\(\\s*['\"]track['\"]",
405
+ ],
406
+ global: ["snaptr"],
407
+ },
408
+ idExtract: "snaptr\\s*\\(\\s*['\"]init['\"]\\s*,\\s*['\"]([a-f0-9-]+)['\"]",
409
+ crossRefValue: true,
410
+ },
411
+ // ── Sentry (Error Tracking) ────────────────────────────────────────────
412
+ {
413
+ name: "Sentry",
414
+ category: "error-tracking",
415
+ patterns: {
416
+ script: [
417
+ "browser\\.sentry-cdn\\.com\\/",
418
+ "js\\.sentry-cdn\\.com\\/",
419
+ ],
420
+ inline: [
421
+ "Sentry\\.init\\s*\\(",
422
+ "dsn\\s*:\\s*['\"]https:\\/\\/[a-f0-9]+@[a-z0-9.]+\\.ingest\\.sentry\\.io",
423
+ ],
424
+ global: ["Sentry", "__SENTRY__"],
425
+ },
426
+ idExtract: "dsn\\s*:\\s*['\"]https:\\/\\/([a-f0-9]+)@",
427
+ crossRefValue: false,
428
+ },
429
+ // ── Optimizely ─────────────────────────────────────────────────────────
430
+ {
431
+ name: "Optimizely",
432
+ category: "ab-testing",
433
+ patterns: {
434
+ script: [
435
+ "cdn\\.optimizely\\.com\\/js\\/",
436
+ "cdn\\.optimizely\\.com\\/public\\/",
437
+ ],
438
+ inline: [
439
+ "optimizely\\.push\\s*\\(",
440
+ "window\\.optimizely",
441
+ "window\\[\"optimizely\"\\]",
442
+ ],
443
+ global: ["optimizely", "optimizelyEdge"],
444
+ },
445
+ idExtract: "cdn\\.optimizely\\.com\\/js\\/(\\d+)\\.js",
446
+ crossRefValue: true,
447
+ },
448
+ ];
449
+ //# sourceMappingURL=analytics-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-patterns.js","sourceRoot":"","sources":["../../src/data/analytics-patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Application detection signatures for CMS platforms, e-commerce solutions,
3
+ * and backend frameworks.
4
+ *
5
+ * Each entry defines multiple detection vectors: meta tags, characteristic
6
+ * URL paths, script/global patterns, cookie names, HTTP headers, and body
7
+ * content patterns. Matching any subset of these signals with sufficient
8
+ * confidence identifies the technology.
9
+ *
10
+ * Version detection methods (where available) describe how to extract the
11
+ * exact version from a response — typically via generator meta tags, static
12
+ * file checksums, or error page content.
13
+ *
14
+ * References:
15
+ * - https://www.wappalyzer.com/
16
+ * - https://builtwith.com/
17
+ */
18
+ /** An application / platform detection signature. */
19
+ export interface AppSignature {
20
+ /** Application name */
21
+ name: string;
22
+ /** Functional category */
23
+ category: "cms" | "ecommerce" | "framework";
24
+ /** Detection heuristics — multiple signals increase confidence */
25
+ detection: {
26
+ /** Regex patterns matched against <meta> tags */
27
+ meta?: string[];
28
+ /** Characteristic URL paths that indicate the application */
29
+ paths?: string[];
30
+ /** Script src or inline script content patterns */
31
+ scripts?: string[];
32
+ /** window.* global variable names */
33
+ globals?: string[];
34
+ /** Cookie name patterns (regex) */
35
+ cookies?: string[];
36
+ /** HTTP response header patterns (header name → regex for value) */
37
+ headers?: Record<string, string>;
38
+ /** Response body content patterns (regex) */
39
+ body?: string[];
40
+ /** Error response format pattern */
41
+ errorFormat?: string;
42
+ };
43
+ /** How to extract the exact version */
44
+ versionDetection?: {
45
+ /** Method description (e.g., "meta generator tag", "static file hash") */
46
+ method: string;
47
+ /** Regex with a capture group for the version string */
48
+ pattern: string;
49
+ };
50
+ }
51
+ export declare const APP_SIGNATURES: AppSignature[];
52
+ //# sourceMappingURL=app-signatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-signatures.d.ts","sourceRoot":"","sources":["../../src/data/app-signatures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,QAAQ,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5C,kEAAkE;IAClE,SAAS,EAAE;QACT,iDAAiD;QACjD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,6DAA6D;QAC7D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,mDAAmD;QACnD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,mCAAmC;QACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,oEAAoE;QACpE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,6CAA6C;QAC7C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,oCAAoC;QACpC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,uCAAuC;IACvC,gBAAgB,CAAC,EAAE;QACjB,0EAA0E;QAC1E,MAAM,EAAE,MAAM,CAAC;QACf,wDAAwD;QACxD,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,eAAO,MAAM,cAAc,EAAE,YAAY,EA4pCxC,CAAC"}