@panguard-ai/atr 1.4.3 → 1.5.1

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 (274) hide show
  1. package/dist/action-executor.d.ts +44 -0
  2. package/dist/action-executor.d.ts.map +1 -0
  3. package/dist/action-executor.js +130 -0
  4. package/dist/action-executor.js.map +1 -0
  5. package/dist/adapters/default-adapter.d.ts +24 -0
  6. package/dist/adapters/default-adapter.d.ts.map +1 -0
  7. package/dist/adapters/default-adapter.js +51 -0
  8. package/dist/adapters/default-adapter.js.map +1 -0
  9. package/dist/adapters/stdio-adapter.d.ts +30 -0
  10. package/dist/adapters/stdio-adapter.d.ts.map +1 -0
  11. package/dist/adapters/stdio-adapter.js +128 -0
  12. package/dist/adapters/stdio-adapter.js.map +1 -0
  13. package/dist/badge.d.ts +42 -0
  14. package/dist/badge.d.ts.map +1 -0
  15. package/dist/badge.js +163 -0
  16. package/dist/badge.js.map +1 -0
  17. package/dist/capability-extractor.d.ts +35 -0
  18. package/dist/capability-extractor.d.ts.map +1 -0
  19. package/dist/capability-extractor.js +91 -0
  20. package/dist/capability-extractor.js.map +1 -0
  21. package/dist/cli/scan-handler.d.ts +21 -0
  22. package/dist/cli/scan-handler.d.ts.map +1 -0
  23. package/dist/cli/scan-handler.js +276 -0
  24. package/dist/cli/scan-handler.js.map +1 -0
  25. package/dist/cli/tc-pipeline.d.ts +18 -0
  26. package/dist/cli/tc-pipeline.d.ts.map +1 -0
  27. package/dist/cli/tc-pipeline.js +295 -0
  28. package/dist/cli/tc-pipeline.js.map +1 -0
  29. package/dist/cli.d.ts +12 -0
  30. package/dist/cli.d.ts.map +1 -0
  31. package/dist/cli.js +894 -0
  32. package/dist/cli.js.map +1 -0
  33. package/dist/content-hash.d.ts +7 -0
  34. package/dist/content-hash.d.ts.map +1 -0
  35. package/dist/content-hash.js +10 -0
  36. package/dist/content-hash.js.map +1 -0
  37. package/dist/converters/elastic.d.ts +36 -0
  38. package/dist/converters/elastic.d.ts.map +1 -0
  39. package/dist/converters/elastic.js +125 -0
  40. package/dist/converters/elastic.js.map +1 -0
  41. package/dist/converters/generic-regex.d.ts +37 -0
  42. package/dist/converters/generic-regex.d.ts.map +1 -0
  43. package/dist/converters/generic-regex.js +59 -0
  44. package/dist/converters/generic-regex.js.map +1 -0
  45. package/dist/converters/index.d.ts +32 -0
  46. package/dist/converters/index.d.ts.map +1 -0
  47. package/dist/converters/index.js +38 -0
  48. package/dist/converters/index.js.map +1 -0
  49. package/dist/converters/sarif.d.ts +18 -0
  50. package/dist/converters/sarif.d.ts.map +1 -0
  51. package/dist/converters/sarif.js +142 -0
  52. package/dist/converters/sarif.js.map +1 -0
  53. package/dist/converters/splunk.d.ts +19 -0
  54. package/dist/converters/splunk.d.ts.map +1 -0
  55. package/dist/converters/splunk.js +148 -0
  56. package/dist/converters/splunk.js.map +1 -0
  57. package/dist/coverage-analyzer.d.ts +43 -0
  58. package/dist/coverage-analyzer.d.ts.map +1 -0
  59. package/dist/coverage-analyzer.js +329 -0
  60. package/dist/coverage-analyzer.js.map +1 -0
  61. package/dist/embedding/build-corpus.d.ts +15 -0
  62. package/dist/embedding/build-corpus.d.ts.map +1 -0
  63. package/dist/embedding/build-corpus.js +105 -0
  64. package/dist/embedding/build-corpus.js.map +1 -0
  65. package/dist/embedding/model-loader.d.ts +41 -0
  66. package/dist/embedding/model-loader.d.ts.map +1 -0
  67. package/dist/embedding/model-loader.js +90 -0
  68. package/dist/embedding/model-loader.js.map +1 -0
  69. package/dist/embedding/vector-store.d.ts +41 -0
  70. package/dist/embedding/vector-store.d.ts.map +1 -0
  71. package/dist/embedding/vector-store.js +70 -0
  72. package/dist/embedding/vector-store.js.map +1 -0
  73. package/dist/engine.d.ts +222 -0
  74. package/dist/engine.d.ts.map +1 -0
  75. package/dist/engine.js +1185 -0
  76. package/dist/engine.js.map +1 -0
  77. package/dist/eval/corpus.d.ts +42 -0
  78. package/dist/eval/corpus.d.ts.map +1 -0
  79. package/dist/eval/corpus.js +427 -0
  80. package/dist/eval/corpus.js.map +1 -0
  81. package/dist/eval/eval-harness.d.ts +44 -0
  82. package/dist/eval/eval-harness.d.ts.map +1 -0
  83. package/dist/eval/eval-harness.js +296 -0
  84. package/dist/eval/eval-harness.js.map +1 -0
  85. package/dist/eval/index.d.ts +13 -0
  86. package/dist/eval/index.d.ts.map +1 -0
  87. package/dist/eval/index.js +9 -0
  88. package/dist/eval/index.js.map +1 -0
  89. package/dist/eval/metrics.d.ts +74 -0
  90. package/dist/eval/metrics.d.ts.map +1 -0
  91. package/dist/eval/metrics.js +108 -0
  92. package/dist/eval/metrics.js.map +1 -0
  93. package/dist/eval/pint-corpus.d.ts +34 -0
  94. package/dist/eval/pint-corpus.d.ts.map +1 -0
  95. package/dist/eval/pint-corpus.js +113 -0
  96. package/dist/eval/pint-corpus.js.map +1 -0
  97. package/dist/eval/rule-corpus.d.ts +9 -0
  98. package/dist/eval/rule-corpus.d.ts.map +1 -0
  99. package/dist/eval/rule-corpus.js +4780 -0
  100. package/dist/eval/rule-corpus.js.map +1 -0
  101. package/dist/eval/rule-metrics.d.ts +34 -0
  102. package/dist/eval/rule-metrics.d.ts.map +1 -0
  103. package/dist/eval/rule-metrics.js +92 -0
  104. package/dist/eval/rule-metrics.js.map +1 -0
  105. package/dist/eval/run-eval.d.ts +7 -0
  106. package/dist/eval/run-eval.d.ts.map +1 -0
  107. package/dist/eval/run-eval.js +11 -0
  108. package/dist/eval/run-eval.js.map +1 -0
  109. package/dist/eval/run-pint-benchmark.d.ts +18 -0
  110. package/dist/eval/run-pint-benchmark.d.ts.map +1 -0
  111. package/dist/eval/run-pint-benchmark.js +159 -0
  112. package/dist/eval/run-pint-benchmark.js.map +1 -0
  113. package/dist/eval/skill-benchmark.d.ts +66 -0
  114. package/dist/eval/skill-benchmark.d.ts.map +1 -0
  115. package/dist/eval/skill-benchmark.js +194 -0
  116. package/dist/eval/skill-benchmark.js.map +1 -0
  117. package/dist/flywheel.d.ts +54 -0
  118. package/dist/flywheel.d.ts.map +1 -0
  119. package/dist/flywheel.js +121 -0
  120. package/dist/flywheel.js.map +1 -0
  121. package/dist/hook-handler.d.ts +61 -0
  122. package/dist/hook-handler.d.ts.map +1 -0
  123. package/dist/hook-handler.js +178 -0
  124. package/dist/hook-handler.js.map +1 -0
  125. package/dist/index.d.ts +8 -0
  126. package/dist/index.d.ts.map +1 -0
  127. package/{src/index.ts → dist/index.js} +1 -0
  128. package/dist/index.js.map +1 -0
  129. package/dist/layer-integration.d.ts +55 -0
  130. package/dist/layer-integration.d.ts.map +1 -0
  131. package/dist/layer-integration.js +187 -0
  132. package/dist/layer-integration.js.map +1 -0
  133. package/dist/loader.d.ts +18 -0
  134. package/dist/loader.d.ts.map +1 -0
  135. package/dist/loader.js +129 -0
  136. package/dist/loader.js.map +1 -0
  137. package/dist/mcp-server.d.ts +13 -0
  138. package/dist/mcp-server.d.ts.map +1 -0
  139. package/dist/mcp-server.js +246 -0
  140. package/dist/mcp-server.js.map +1 -0
  141. package/dist/mcp-tools/coverage-gaps.d.ts +13 -0
  142. package/dist/mcp-tools/coverage-gaps.d.ts.map +1 -0
  143. package/dist/mcp-tools/coverage-gaps.js +55 -0
  144. package/dist/mcp-tools/coverage-gaps.js.map +1 -0
  145. package/dist/mcp-tools/list-rules.d.ts +17 -0
  146. package/dist/mcp-tools/list-rules.d.ts.map +1 -0
  147. package/dist/mcp-tools/list-rules.js +45 -0
  148. package/dist/mcp-tools/list-rules.js.map +1 -0
  149. package/dist/mcp-tools/scan-skill.d.ts +17 -0
  150. package/dist/mcp-tools/scan-skill.d.ts.map +1 -0
  151. package/dist/mcp-tools/scan-skill.js +65 -0
  152. package/dist/mcp-tools/scan-skill.js.map +1 -0
  153. package/dist/mcp-tools/scan.d.ts +24 -0
  154. package/dist/mcp-tools/scan.d.ts.map +1 -0
  155. package/dist/mcp-tools/scan.js +94 -0
  156. package/dist/mcp-tools/scan.js.map +1 -0
  157. package/dist/mcp-tools/submit-proposal.d.ts +12 -0
  158. package/dist/mcp-tools/submit-proposal.d.ts.map +1 -0
  159. package/dist/mcp-tools/submit-proposal.js +103 -0
  160. package/dist/mcp-tools/submit-proposal.js.map +1 -0
  161. package/dist/mcp-tools/threat-summary.d.ts +12 -0
  162. package/dist/mcp-tools/threat-summary.d.ts.map +1 -0
  163. package/dist/mcp-tools/threat-summary.js +74 -0
  164. package/dist/mcp-tools/threat-summary.js.map +1 -0
  165. package/dist/mcp-tools/validate.d.ts +15 -0
  166. package/dist/mcp-tools/validate.d.ts.map +1 -0
  167. package/dist/mcp-tools/validate.js +51 -0
  168. package/dist/mcp-tools/validate.js.map +1 -0
  169. package/dist/modules/embedding.d.ts +71 -0
  170. package/dist/modules/embedding.d.ts.map +1 -0
  171. package/dist/modules/embedding.js +141 -0
  172. package/dist/modules/embedding.js.map +1 -0
  173. package/dist/modules/index.d.ts +144 -0
  174. package/dist/modules/index.d.ts.map +1 -0
  175. package/dist/modules/index.js +82 -0
  176. package/dist/modules/index.js.map +1 -0
  177. package/dist/modules/semantic.d.ts +106 -0
  178. package/dist/modules/semantic.d.ts.map +1 -0
  179. package/dist/modules/semantic.js +359 -0
  180. package/dist/modules/semantic.js.map +1 -0
  181. package/dist/modules/session.d.ts +70 -0
  182. package/dist/modules/session.d.ts.map +1 -0
  183. package/dist/modules/session.js +128 -0
  184. package/dist/modules/session.js.map +1 -0
  185. package/dist/quality/adapters/atr.d.ts +65 -0
  186. package/dist/quality/adapters/atr.d.ts.map +1 -0
  187. package/dist/quality/adapters/atr.js +154 -0
  188. package/dist/quality/adapters/atr.js.map +1 -0
  189. package/dist/quality/adapters/index.d.ts +10 -0
  190. package/dist/quality/adapters/index.d.ts.map +1 -0
  191. package/dist/quality/adapters/index.js +10 -0
  192. package/dist/quality/adapters/index.js.map +1 -0
  193. package/dist/quality/compute-confidence.d.ts +45 -0
  194. package/dist/quality/compute-confidence.d.ts.map +1 -0
  195. package/dist/quality/compute-confidence.js +133 -0
  196. package/dist/quality/compute-confidence.js.map +1 -0
  197. package/dist/quality/index.d.ts +36 -0
  198. package/dist/quality/index.d.ts.map +1 -0
  199. package/dist/quality/index.js +39 -0
  200. package/dist/quality/index.js.map +1 -0
  201. package/dist/quality/quality-gate.d.ts +86 -0
  202. package/dist/quality/quality-gate.d.ts.map +1 -0
  203. package/dist/quality/quality-gate.js +187 -0
  204. package/dist/quality/quality-gate.js.map +1 -0
  205. package/dist/quality/types.d.ts +129 -0
  206. package/dist/quality/types.d.ts.map +1 -0
  207. package/dist/quality/types.js +10 -0
  208. package/dist/quality/types.js.map +1 -0
  209. package/dist/quality/validate-maturity.d.ts +51 -0
  210. package/dist/quality/validate-maturity.d.ts.map +1 -0
  211. package/dist/quality/validate-maturity.js +134 -0
  212. package/dist/quality/validate-maturity.js.map +1 -0
  213. package/dist/quality.d.ts +8 -0
  214. package/dist/quality.d.ts.map +1 -0
  215. package/dist/quality.js +8 -0
  216. package/dist/quality.js.map +1 -0
  217. package/dist/rule-scaffolder.d.ts +53 -0
  218. package/dist/rule-scaffolder.d.ts.map +1 -0
  219. package/dist/rule-scaffolder.js +301 -0
  220. package/dist/rule-scaffolder.js.map +1 -0
  221. package/dist/session-tracker.d.ts +58 -0
  222. package/dist/session-tracker.d.ts.map +1 -0
  223. package/dist/session-tracker.js +176 -0
  224. package/dist/session-tracker.js.map +1 -0
  225. package/dist/shadow-evaluator.d.ts +48 -0
  226. package/dist/shadow-evaluator.d.ts.map +1 -0
  227. package/dist/shadow-evaluator.js +129 -0
  228. package/dist/shadow-evaluator.js.map +1 -0
  229. package/dist/skill-fingerprint.d.ts +85 -0
  230. package/dist/skill-fingerprint.d.ts.map +1 -0
  231. package/dist/skill-fingerprint.js +284 -0
  232. package/dist/skill-fingerprint.js.map +1 -0
  233. package/dist/tc-reporter.d.ts +50 -0
  234. package/dist/tc-reporter.d.ts.map +1 -0
  235. package/dist/tc-reporter.js +164 -0
  236. package/dist/tc-reporter.js.map +1 -0
  237. package/dist/tier0-invariant.d.ts +49 -0
  238. package/dist/tier0-invariant.d.ts.map +1 -0
  239. package/dist/tier0-invariant.js +185 -0
  240. package/dist/tier0-invariant.js.map +1 -0
  241. package/dist/tier1-blacklist.d.ts +48 -0
  242. package/dist/tier1-blacklist.d.ts.map +1 -0
  243. package/dist/tier1-blacklist.js +92 -0
  244. package/dist/tier1-blacklist.js.map +1 -0
  245. package/dist/types.d.ts +232 -0
  246. package/dist/types.d.ts.map +1 -0
  247. package/dist/types.js +6 -0
  248. package/dist/types.js.map +1 -0
  249. package/dist/verdict.d.ts +26 -0
  250. package/dist/verdict.d.ts.map +1 -0
  251. package/dist/verdict.js +127 -0
  252. package/dist/verdict.js.map +1 -0
  253. package/package.json +16 -4
  254. package/.github/ISSUE_TEMPLATE/evasion-report.yml +0 -75
  255. package/.github/ISSUE_TEMPLATE/false-positive.yml +0 -31
  256. package/.github/ISSUE_TEMPLATE/mirofish-prediction.yml +0 -128
  257. package/.github/ISSUE_TEMPLATE/new-rule.yml +0 -37
  258. package/.github/PULL_REQUEST_TEMPLATE.md +0 -23
  259. package/.github/workflows/rule-quality.yml +0 -203
  260. package/.github/workflows/validate.yml +0 -42
  261. package/CHANGELOG.md +0 -30
  262. package/CONTRIBUTING.md +0 -168
  263. package/CONTRIBUTORS.md +0 -28
  264. package/COVERAGE.md +0 -135
  265. package/LIMITATIONS.md +0 -154
  266. package/SECURITY.md +0 -48
  267. package/THREAT-MODEL.md +0 -243
  268. package/docs/contribution-paths.md +0 -202
  269. package/docs/mirofish-prediction-guide.md +0 -304
  270. package/docs/quick-start.md +0 -245
  271. package/docs/rule-writing-guide.md +0 -647
  272. package/docs/schema-spec.md +0 -594
  273. package/examples/how-to-write-a-rule.md +0 -251
  274. package/tsconfig.json +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-corpus.js","sourceRoot":"","sources":["../../src/eval/rule-corpus.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6HAA6H;QACnI,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mHAAmH;QACzH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0HAA0H;QAChI,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gHAAgH;QACtH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+GAA+G;QACrH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iGAAiG;QACvG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4FAA4F;QAClG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+DAA+D;QACrE,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8GAA8G;QACpH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gHAAgH;QACtH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qGAAqG;QAC3G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gHAAgH;QACtH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sGAAsG;QAC5G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4FAA4F;QAClG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4GAA4G;QAClH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4FAA4F;QAClG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qGAAqG;QAC3G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,qBAAqB;QAChC,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4GAA4G;QAClH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2GAA2G;QACjH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2GAA2G;QACjH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yGAAyG;QAC/G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wGAAwG;QAC9G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kHAAkH;QACxH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0GAA0G;QAChH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wHAAwH;QAC9H,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0GAA0G;QAChH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uIAAuI;QAC7I,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kHAAkH;QACxH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,uGAAuG;SACtH;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,6FAA6F;SAC5G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iGAAiG;QACvG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,iGAAiG;SAChH;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8GAA8G;QACpH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,8GAA8G;SAC7H;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,kGAAkG;SACjH;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iDAAiD;QACvD,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,iDAAiD;SAChE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,sFAAsF;SACrG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,mFAAmF;SAClG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8HAA8H;QACpI,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,8HAA8H;SAC7I;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,wEAAwE;SACvF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8DAA8D;QACpE,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,8DAA8D;SAC7E;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2DAA2D;QACjE,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,YAAY,EAAE,2DAA2D;SAC1E;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,uEAAuE;SACtF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,yEAAyE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,YAAY;QACvB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,YAAY,EAAE,sEAAsE;SACrF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wGAAwG;QAC9G,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6GAA6G;QACnH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iEAAiE;QACvE,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yDAAyD;QAC/D,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,uGAAuG;SACvH;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,iKAAiK;SACjL;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,6IAA6I;SAC7J;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,6HAA6H;SAC7I;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,+IAA+I;SAC/J;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wCAAwC;QAC9C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,iHAAiH;SACjI;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,8GAA8G;SAC9H;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oEAAoE;QAC1E,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8DAA8D;QACpE,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6FAA6F;QACnG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6DAA6D;QACnE,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yDAAyD;QAC/D,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yDAAyD;QAC/D,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uDAAuD;QAC7D,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kHAAkH;QACxH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sGAAsG;QAC5G,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qHAAqH;QAC3H,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0GAA0G;QAChH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2GAA2G;QACjH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oHAAoH;QAC1H,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iGAAiG;QACvG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0GAA0G;QAChH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2GAA2G;QACjH,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,cAAc;SAC1B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,cAAc;SAC1B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kDAAkD;QACxD,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,cAAc;SAC1B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,cAAc;SAC1B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qDAAqD;QAC3D,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+CAA+C;QACrD,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,oBAAoB;QAC9B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4DAA4D;QAClE,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gEAAgE;QACtE,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yCAAyC;QAC/C,QAAQ,EAAE,aAAa;QACvB,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2JAA2J;QACjK,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wFAAwF;QAC9F,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oIAAoI;QAC1I,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gCAAgC;QACtC,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,gCAAgC;SAC5C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,aAAa;YACxB,SAAS,EAAE,4CAA4C;SACxD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,iCAAiC;SAC7C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,gBAAgB;YAC3B,SAAS,EAAE,mEAAmE;SAC/E;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6DAA6D;QACnE,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,6DAA6D;SACzE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,WAAW;YACtB,SAAS,EAAE,8BAA8B;SAC1C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,uBAAuB;YAClC,SAAS,EAAE,0CAA0C;SACtD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0GAA0G;QAChH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iEAAiE;QACvE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uDAAuD;QAC7D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gEAAgE;QACtE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oDAAoD;QAC1D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,+DAA+D;QACrE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kEAAkE;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qHAAqH;QAC3H,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4DAA4D;QAClE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kEAAkE;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8GAA8G;QACpH,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qHAAqH;QAC3H,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sGAAsG;QAC5G,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uGAAuG;QAC7G,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qEAAqE;QAC3E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oEAAoE;QAC1E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qEAAqE;QAC3E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,yDAAyD;QAC/D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,4BAA4B;QAClC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,yBAAyB;QAC/B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iEAAiE;QACvE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oEAAoE;QAC1E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qEAAqE;QAC3E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gHAAgH;QACtH,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wDAAwD;QAC9D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+CAA+C;QACrD,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kEAAkE;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8DAA8D;QACpE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gEAAgE;QACtE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qEAAqE;QAC3E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6DAA6D;QACnE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4FAA4F;QAClG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6EAA6E;QACnF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,8FAA8F;SAC9G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,wEAAwE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+DAA+D;QACrE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,+DAA+D;SAC/E;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qHAAqH;QAC3H,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,qHAAqH;SACrI;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,2EAA2E;SAC3F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,2EAA2E;SAC3F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kEAAkE;QACxE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4DAA4D;QAClE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wDAAwD;QAC9D,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8DAA8D;QACpE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wFAAwF;QAC9F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sEAAsE;QAC5E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oFAAoF;QAC1F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mHAAmH;QACzH,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4EAA4E;QAClF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mGAAmG;QACzG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0FAA0F;QAChG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iEAAiE;QACvE,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sFAAsF;QAC5F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wFAAwF;QAC9F,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2FAA2F;QACjG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uIAAuI;QAC7I,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8BAA8B;QACpC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0BAA0B;QAChC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6BAA6B;QACnC,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,YAAY;SACxB;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qBAAqB;QAC3B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,qBAAqB;SACjC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,sBAAsB;SAClC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,YAAY;SACxB;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,iBAAiB;SAC7B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,uBAAuB;SACnC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,eAAe;SAC3B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yEAAyE;QAC/E,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,kBAAkB;QAC5B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2HAA2H;QACjI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uHAAuH;QAC7H,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sGAAsG;QAC5G,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iGAAiG;QACvG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sIAAsI;QAC5I,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oHAAoH;QAC1H,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qGAAqG;QAC3G,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gIAAgI;QACtI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sHAAsH;QAC5H,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kGAAkG;QACxG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+GAA+G;QACrH,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4FAA4F;QAClG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gGAAgG;QACtG,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qFAAqF;QAC3F,QAAQ,EAAE,sBAAsB;QAChC,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+JAA+J;QACrK,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0IAA0I;QAChJ,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sHAAsH;QAC5H,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kIAAkI;QACxI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0HAA0H;QAChI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yFAAyF;QAC/F,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6GAA6G;QACnH,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;KACnB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4HAA4H;QAClI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,qEAAqE;QAC3E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,qEAAqE;SACrF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sCAAsC;QAC5C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,sCAAsC;SACtD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,2EAA2E;SAC3F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,wEAAwE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gDAAgD;QACtD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,gDAAgD;SAChE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oEAAoE;QAC1E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,oEAAoE;SACpF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,8EAA8E;SAC9F;KACF;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,sDAAsD;QAC5D,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,sDAAsD;SACtE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,mEAAmE;SACnF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mFAAmF;QACzF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,mFAAmF;SACnG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uEAAuE;QAC7E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,uEAAuE;SACvF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uDAAuD;QAC7D,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,uDAAuD;SACvE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;KACrB;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sIAAsI;QAC5I,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,sIAAsI;SACtJ;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6HAA6H;QACnI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,6HAA6H;SAC7I;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uFAAuF;QAC7F,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,uFAAuF;SACvG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oGAAoG;QAC1G,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,oGAAoG;SACpH;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kFAAkF;QACxF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,kFAAkF;SAClG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,wEAAwE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,iFAAiF;SACjG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,iFAAiF;SACjG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,wEAAwE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8FAA8F;QACpG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,8FAA8F;SAC9G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gFAAgF;QACtF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,gFAAgF;SAChG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iDAAiD;QACvD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,iDAAiD;SACjE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,yIAAyI;QAC/I,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,yIAAyI;SACzJ;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6GAA6G;QACnH,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,6GAA6G;SAC7H;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kHAAkH;QACxH,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,kHAAkH;SAClI;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,mBAAmB;SAC/B;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,wBAAwB;SACpC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6CAA6C;QACnD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,6CAA6C;SACzD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,gDAAgD;QACtD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,gDAAgD;SAC5D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,wEAAwE;SACpF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,2BAA2B;SACvC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,oBAAoB;SAChC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,wBAAwB;SACpC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,iBAAiB;SAC7B;KACF;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,8CAA8C;SAC1D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,uBAAuB;SACnC;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,WAAW;SACvB;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mDAAmD;QACzD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,mDAAmD;SAC/D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,iCAAiC;SAC7C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,0CAA0C;SACtD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4EAA4E;QAClF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,4EAA4E;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,YAAY;SACxB;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mCAAmC;QACzC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,mCAAmC;SAC/C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,mEAAmE;SAC/E;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,oCAAoC;SAChD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+EAA+E;QACrF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,+EAA+E;SAC3F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+BAA+B;QACrC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,+BAA+B;SAC3C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wCAAwC;QAC9C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,wCAAwC;SACpD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,oCAAoC;SAChD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,kCAAkC;SAC9C;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mDAAmD;QACzD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,mDAAmD;SAC/D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sCAAsC;QAC5C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,sCAAsC;SAClD;KACF;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,IAAI,EAAE,kDAAkD;QACxD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,SAAS,EAAE,kDAAkD;SAC9D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wCAAwC;QAC9C,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,wCAAwC;SACpD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,0CAA0C;SACtD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,6CAA6C;QACnD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,6CAA6C;SACzD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+CAA+C;QACrD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,+CAA+C;SAC3D;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0CAA0C;QAChD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,0CAA0C;SACtD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4CAA4C;QAClD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,4CAA4C;SACxD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2CAA2C;QACjD,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,2CAA2C;SACvD;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0DAA0D;QAChE,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,0DAA0D;SACtE;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8IAA8I;QACpJ,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,8IAA8I;SAC9J;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,4HAA4H;QAClI,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,4HAA4H;SAC5I;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,8EAA8E;QACpF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,8EAA8E;SAC9F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,2EAA2E;QACjF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,2EAA2E;SAC3F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,0EAA0E;QAChF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,0EAA0E;SAC1F;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,wEAAwE;QAC9E,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,wEAAwE;SACxF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,mEAAmE;QACzE,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,mEAAmE;SACnF;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE;YACN,aAAa,EAAE,+FAA+F;SAC/G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,iFAAiF;QACvF,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,iFAAiF;SACjG;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,+FAA+F;SAC/G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,+FAA+F;QACrG,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,+FAA+F;SAC/G;KACF;IACD;QACE,EAAE,EAAE,0BAA0B;QAC9B,IAAI,EAAE,sGAAsG;QAC5G,QAAQ,EAAE,gBAAgB;QAC1B,iBAAiB,EAAE,KAAK;QACxB,SAAS,EAAE,eAAe;QAC1B,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE;YACN,aAAa,EAAE,sGAAsG;SACtH;KACF;CACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Per-Rule Quality Metrics -- computes TP, FP, precision, recall,
3
+ * and confidence stats for each individual rule based on eval results.
4
+ *
5
+ * All functions are pure (no side effects, no mutation).
6
+ *
7
+ * @module agent-threat-rules/eval/rule-metrics
8
+ */
9
+ import type { SampleResult } from './metrics.js';
10
+ export interface RuleQuality {
11
+ readonly ruleId: string;
12
+ readonly matchCount: number;
13
+ readonly tpCount: number;
14
+ readonly fpCount: number;
15
+ readonly categories: readonly string[];
16
+ readonly avgConfidence: number;
17
+ }
18
+ export interface RuleQualityReport {
19
+ readonly totalRulesEvaluated: number;
20
+ readonly rulesFired: number;
21
+ readonly rulesNeverFired: number;
22
+ readonly topRules: readonly RuleQuality[];
23
+ readonly weakRules: readonly RuleQuality[];
24
+ readonly neverFiredRuleIds: readonly string[];
25
+ }
26
+ /**
27
+ * Compute per-rule quality metrics from eval results.
28
+ *
29
+ * @param results - The sample results from an eval run
30
+ * @param loadedRuleIds - All rule IDs that were loaded in the engine
31
+ * @returns A RuleQualityReport with top, weak, and never-fired rules
32
+ */
33
+ export declare function computeRuleQuality(results: readonly SampleResult[], loadedRuleIds: readonly string[]): RuleQualityReport;
34
+ //# sourceMappingURL=rule-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-metrics.d.ts","sourceRoot":"","sources":["../../src/eval/rule-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAMjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AA8DD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,iBAAiB,CAyCnB"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Per-Rule Quality Metrics -- computes TP, FP, precision, recall,
3
+ * and confidence stats for each individual rule based on eval results.
4
+ *
5
+ * All functions are pure (no side effects, no mutation).
6
+ *
7
+ * @module agent-threat-rules/eval/rule-metrics
8
+ */
9
+ function emptyAccumulator(ruleId) {
10
+ return {
11
+ ruleId,
12
+ tp: 0,
13
+ fp: 0,
14
+ categories: new Set(),
15
+ confidenceSum: 0,
16
+ confidenceCount: 0,
17
+ };
18
+ }
19
+ function addSampleToAccumulator(acc, sample) {
20
+ const isAttack = sample.expectedDetection;
21
+ const newCategories = new Set(acc.categories);
22
+ newCategories.add(sample.category);
23
+ return {
24
+ ruleId: acc.ruleId,
25
+ tp: acc.tp + (isAttack ? 1 : 0),
26
+ fp: acc.fp + (isAttack ? 0 : 1),
27
+ categories: newCategories,
28
+ confidenceSum: acc.confidenceSum + sample.confidence,
29
+ confidenceCount: acc.confidenceCount + 1,
30
+ };
31
+ }
32
+ function accumulatorToQuality(acc) {
33
+ const matchCount = acc.tp + acc.fp;
34
+ return {
35
+ ruleId: acc.ruleId,
36
+ matchCount,
37
+ tpCount: acc.tp,
38
+ fpCount: acc.fp,
39
+ categories: [...acc.categories].sort(),
40
+ avgConfidence: acc.confidenceCount > 0
41
+ ? acc.confidenceSum / acc.confidenceCount
42
+ : 0,
43
+ };
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Core computation
47
+ // ---------------------------------------------------------------------------
48
+ /**
49
+ * Compute per-rule quality metrics from eval results.
50
+ *
51
+ * @param results - The sample results from an eval run
52
+ * @param loadedRuleIds - All rule IDs that were loaded in the engine
53
+ * @returns A RuleQualityReport with top, weak, and never-fired rules
54
+ */
55
+ export function computeRuleQuality(results, loadedRuleIds) {
56
+ // Build per-rule accumulators from results
57
+ const accumulators = new Map();
58
+ for (const sample of results) {
59
+ for (const ruleId of sample.matchedRules) {
60
+ const existing = accumulators.get(ruleId) ?? emptyAccumulator(ruleId);
61
+ accumulators.set(ruleId, addSampleToAccumulator(existing, sample));
62
+ }
63
+ }
64
+ // Convert accumulators to RuleQuality entries
65
+ const allQualities = [...accumulators.values()]
66
+ .map(accumulatorToQuality);
67
+ // Sort by matchCount descending for top rules
68
+ const sortedByMatch = [...allQualities].sort((a, b) => b.matchCount - a.matchCount);
69
+ // Weak rules: have FP > 0, or matchCount <= 1 (very low contribution)
70
+ const weakRules = [...allQualities]
71
+ .filter((r) => r.fpCount > 0 || r.matchCount <= 1)
72
+ .sort((a, b) => {
73
+ // Sort by fpCount desc first, then matchCount asc
74
+ if (b.fpCount !== a.fpCount)
75
+ return b.fpCount - a.fpCount;
76
+ return a.matchCount - b.matchCount;
77
+ });
78
+ // Determine never-fired rules
79
+ const firedRuleIds = new Set(accumulators.keys());
80
+ const neverFiredRuleIds = loadedRuleIds
81
+ .filter((id) => !firedRuleIds.has(id))
82
+ .sort();
83
+ return {
84
+ totalRulesEvaluated: loadedRuleIds.length,
85
+ rulesFired: firedRuleIds.size,
86
+ rulesNeverFired: neverFiredRuleIds.length,
87
+ topRules: sortedByMatch,
88
+ weakRules,
89
+ neverFiredRuleIds,
90
+ };
91
+ }
92
+ //# sourceMappingURL=rule-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-metrics.js","sourceRoot":"","sources":["../../src/eval/rule-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * CLI entry point for: npx tsx src/eval/run-eval.ts
4
+ * or: npm run eval
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=run-eval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-eval.d.ts","sourceRoot":"","sources":["../../src/eval/run-eval.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * CLI entry point for: npx tsx src/eval/run-eval.ts
4
+ * or: npm run eval
5
+ */
6
+ import { runEvalCLI } from './eval-harness.js';
7
+ runEvalCLI().catch((err) => {
8
+ console.error('Eval failed:', err);
9
+ process.exitCode = 1;
10
+ });
11
+ //# sourceMappingURL=run-eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-eval.js","sourceRoot":"","sources":["../../src/eval/run-eval.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACzB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * PINT Benchmark Runner
4
+ *
5
+ * Standalone CLI that loads the PINT corpus (built from publicly available
6
+ * prompt injection datasets) and runs it through the ATR evaluation harness.
7
+ *
8
+ * Usage:
9
+ * npx tsx src/eval/run-pint-benchmark.ts
10
+ * npm run eval:pint
11
+ *
12
+ * The PINT corpus lives at data/pint-benchmark/pint-corpus.json and is
13
+ * converted on-the-fly into CorpusSample[] via loadPintCorpus().
14
+ *
15
+ * @module agent-threat-rules/eval/run-pint-benchmark
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=run-pint-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-pint-benchmark.d.ts","sourceRoot":"","sources":["../../src/eval/run-pint-benchmark.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
@@ -0,0 +1,159 @@
1
+ #!/usr/bin/env npx tsx
2
+ /**
3
+ * PINT Benchmark Runner
4
+ *
5
+ * Standalone CLI that loads the PINT corpus (built from publicly available
6
+ * prompt injection datasets) and runs it through the ATR evaluation harness.
7
+ *
8
+ * Usage:
9
+ * npx tsx src/eval/run-pint-benchmark.ts
10
+ * npm run eval:pint
11
+ *
12
+ * The PINT corpus lives at data/pint-benchmark/pint-corpus.json and is
13
+ * converted on-the-fly into CorpusSample[] via loadPintCorpus().
14
+ *
15
+ * @module agent-threat-rules/eval/run-pint-benchmark
16
+ */
17
+ import { resolve, join } from 'node:path';
18
+ import { loadPintCorpus, getPintCorpusStats } from './pint-corpus.js';
19
+ import { runEval } from './eval-harness.js';
20
+ // ---------------------------------------------------------------------------
21
+ // Formatting helpers
22
+ // ---------------------------------------------------------------------------
23
+ function formatPercent(n) {
24
+ return `${(n * 100).toFixed(1)}%`;
25
+ }
26
+ function formatMs(n) {
27
+ return `${n.toFixed(2)}ms`;
28
+ }
29
+ // ---------------------------------------------------------------------------
30
+ // Main
31
+ // ---------------------------------------------------------------------------
32
+ async function main() {
33
+ const base = resolve(join(import.meta.dirname ?? '.', '..', '..'));
34
+ const rulesDir = join(base, 'rules');
35
+ const dataPath = join(base, 'data', 'pint-benchmark', 'pint-corpus.json');
36
+ const outputPath = join(base, 'data', 'pint-benchmark', 'pint-eval-report.json');
37
+ console.log('\n=== PINT Benchmark -- ATR Evaluation ===\n');
38
+ console.log(`Corpus: ${dataPath}`);
39
+ console.log(`Rules: ${rulesDir}\n`);
40
+ // Load the PINT corpus
41
+ const corpus = loadPintCorpus(dataPath);
42
+ const stats = getPintCorpusStats(corpus);
43
+ console.log(`Loaded ${stats.total} samples (${stats.attacks} attacks, ${stats.benign} benign)`);
44
+ console.log(`Categories: ${Object.entries(stats.byCategory).map(([k, v]) => `${k}=${v}`).join(', ')}`);
45
+ console.log(`Difficulty: ${Object.entries(stats.byDifficulty).map(([k, v]) => `${k}=${v}`).join(', ')}`);
46
+ console.log(`Languages: ${Object.entries(stats.byLanguage).map(([k, v]) => `${k}=${v}`).join(', ')}`);
47
+ // Use relaxed thresholds for the PINT benchmark since it contains
48
+ // many paraphrased / multilingual attacks that regex-only won't catch.
49
+ // The PINT corpus is an external, adversarial dataset -- low recall is
50
+ // expected and reveals coverage gaps for future rule development.
51
+ // PINT-specific thresholds: relaxed vs global defaults (0.60 recall, 0.05 FP rate)
52
+ // because the PINT corpus contains adversarial paraphrasing and dataset noise.
53
+ const pintThresholds = {
54
+ minRecall: 0.58,
55
+ maxFpRate: 0.15,
56
+ minF1: 0.70,
57
+ maxP95LatencyMs: 100,
58
+ };
59
+ // Run eval with the PINT corpus
60
+ const { report, regression, tiersUsed, ruleQuality } = await runEval({
61
+ rulesDir,
62
+ corpus,
63
+ thresholds: pintThresholds,
64
+ outputPath,
65
+ });
66
+ // Overall metrics
67
+ console.log(`\nTiers: ${tiersUsed.join(' + ')}`);
68
+ console.log(`\n--- Overall ---`);
69
+ console.log(` Precision: ${formatPercent(report.overall.precision)}`);
70
+ console.log(` Recall: ${formatPercent(report.overall.recall)}`);
71
+ console.log(` F1: ${formatPercent(report.overall.f1)}`);
72
+ console.log(` Accuracy: ${formatPercent(report.overall.accuracy)}`);
73
+ console.log(` FP Rate: ${formatPercent(report.overall.fpRate)}`);
74
+ console.log(` Confusion: TP=${report.overall.confusion.tp} FP=${report.overall.confusion.fp} TN=${report.overall.confusion.tn} FN=${report.overall.confusion.fn}`);
75
+ // Latency
76
+ console.log(`\n--- Latency ---`);
77
+ console.log(` P50: ${formatMs(report.latency.p50)}`);
78
+ console.log(` P95: ${formatMs(report.latency.p95)}`);
79
+ console.log(` P99: ${formatMs(report.latency.p99)}`);
80
+ console.log(` Mean: ${formatMs(report.latency.mean)}`);
81
+ console.log(` Max: ${formatMs(report.latency.max)}`);
82
+ // Per category
83
+ console.log(`\n--- By Category ---`);
84
+ for (const cat of report.byCategory) {
85
+ const missed = cat.missedSamples.length;
86
+ const fps = cat.falsePositives.length;
87
+ console.log(` ${cat.category}: recall=${formatPercent(cat.metrics.recall)} ` +
88
+ `precision=${formatPercent(cat.metrics.precision)} ` +
89
+ `f1=${formatPercent(cat.metrics.f1)} ` +
90
+ `(missed=${missed}, FP=${fps})`);
91
+ }
92
+ // Per difficulty
93
+ console.log(`\n--- By Difficulty ---`);
94
+ for (const diff of report.byDifficulty) {
95
+ console.log(` ${diff.difficulty}: recall=${formatPercent(diff.metrics.recall)} ` +
96
+ `precision=${formatPercent(diff.metrics.precision)} ` +
97
+ `f1=${formatPercent(diff.metrics.f1)}`);
98
+ }
99
+ // Missed attacks (show first 20)
100
+ if (report.missedAttacks.length > 0) {
101
+ const showCount = Math.min(report.missedAttacks.length, 20);
102
+ console.log(`\n--- Missed Attacks (${report.missedAttacks.length} total, showing ${showCount}) ---`);
103
+ for (const m of report.missedAttacks.slice(0, showCount)) {
104
+ const lang = corpus.find((c) => c.id === m.id)?.fields?.['language'] ?? '?';
105
+ console.log(` [${m.id}] lang=${lang} ${m.category}/${m.difficulty}`);
106
+ }
107
+ if (report.missedAttacks.length > showCount) {
108
+ console.log(` ... and ${report.missedAttacks.length - showCount} more`);
109
+ }
110
+ }
111
+ // False positives (show first 20)
112
+ if (report.falsePositives.length > 0) {
113
+ const showCount = Math.min(report.falsePositives.length, 20);
114
+ console.log(`\n--- False Positives (${report.falsePositives.length} total, showing ${showCount}) ---`);
115
+ for (const fp of report.falsePositives.slice(0, showCount)) {
116
+ console.log(` [${fp.id}] rules: ${fp.matchedRules.join(', ')}`);
117
+ }
118
+ if (report.falsePositives.length > showCount) {
119
+ console.log(` ... and ${report.falsePositives.length - showCount} more`);
120
+ }
121
+ }
122
+ // Rule quality summary
123
+ console.log(`\n--- Rule Quality ---`);
124
+ console.log(` Total rules loaded: ${ruleQuality.totalRulesEvaluated}`);
125
+ console.log(` Rules fired: ${ruleQuality.rulesFired}`);
126
+ console.log(` Rules never fired: ${ruleQuality.rulesNeverFired}`);
127
+ if (ruleQuality.topRules.length > 0) {
128
+ console.log(`\n Top 10 rules by match count:`);
129
+ for (const rule of ruleQuality.topRules.slice(0, 10)) {
130
+ const precision = rule.matchCount > 0
131
+ ? formatPercent(rule.tpCount / rule.matchCount)
132
+ : 'N/A';
133
+ console.log(` ${rule.ruleId}: matches=${rule.matchCount} ` +
134
+ `TP=${rule.tpCount} FP=${rule.fpCount} ` +
135
+ `precision=${precision}`);
136
+ }
137
+ }
138
+ // Regression
139
+ console.log(`\n--- Regression Check (PINT thresholds) ---`);
140
+ if (regression.passed) {
141
+ console.log(' PASSED');
142
+ }
143
+ else {
144
+ console.log(' FAILED:');
145
+ for (const v of regression.violations) {
146
+ console.log(` - ${v}`);
147
+ }
148
+ }
149
+ console.log(`\nReport saved to: ${outputPath}`);
150
+ console.log('Done.\n');
151
+ if (!regression.passed) {
152
+ process.exitCode = 1;
153
+ }
154
+ }
155
+ main().catch((err) => {
156
+ console.error('PINT benchmark failed:', err);
157
+ process.exitCode = 1;
158
+ });
159
+ //# sourceMappingURL=run-pint-benchmark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-pint-benchmark.js","sourceRoot":"","sources":["../../src/eval/run-pint-benchmark.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * SKILL.md Benchmark Harness
3
+ *
4
+ * Evaluates the ATR scanSkill() method against a labeled corpus of
5
+ * malicious and benign SKILL.md files. Produces per-layer recall,
6
+ * overall precision, and a detailed per-sample report.
7
+ *
8
+ * Corpus: data/skill-benchmark/manifest.json
9
+ * Samples: data/skill-benchmark/malicious/ and data/skill-benchmark/benign/
10
+ *
11
+ * Layers:
12
+ * A = obvious payload (curl|bash, base64 exec, reverse shell)
13
+ * B = obfuscated (bash expansion, paste service relay, encoded)
14
+ * C = semantic (natural language instructions, social engineering)
15
+ *
16
+ * @module agent-threat-rules/eval/skill-benchmark
17
+ */
18
+ interface SampleResult {
19
+ readonly file: string;
20
+ readonly label: 'malicious' | 'benign';
21
+ readonly layer: string;
22
+ readonly attack_type: string;
23
+ readonly detected: boolean;
24
+ readonly rules_fired: readonly string[];
25
+ readonly correct: boolean;
26
+ readonly latency_ms: number;
27
+ readonly expected_rules_matched: boolean;
28
+ readonly category_correct: boolean;
29
+ }
30
+ interface LayerMetrics {
31
+ readonly total: number;
32
+ readonly detected: number;
33
+ readonly recall: number;
34
+ }
35
+ interface SkillBenchmarkReport {
36
+ readonly timestamp: string;
37
+ readonly corpus_size: number;
38
+ readonly malicious_count: number;
39
+ readonly benign_count: number;
40
+ readonly overall_recall: number;
41
+ readonly overall_precision: number;
42
+ readonly overall_f1: number;
43
+ readonly fp_rate: number;
44
+ readonly layer_a: LayerMetrics;
45
+ readonly layer_b: LayerMetrics;
46
+ readonly layer_c: LayerMetrics;
47
+ readonly true_positives: number;
48
+ readonly false_positives: number;
49
+ readonly true_negatives: number;
50
+ readonly false_negatives: number;
51
+ readonly expected_rules_accuracy: number;
52
+ readonly category_accuracy: number;
53
+ readonly avg_latency_ms: number;
54
+ readonly max_latency_ms: number;
55
+ readonly results: readonly SampleResult[];
56
+ readonly missed_attacks: readonly SampleResult[];
57
+ readonly false_alarms: readonly SampleResult[];
58
+ }
59
+ export declare function runSkillBenchmark(options?: {
60
+ readonly rulesDir?: string;
61
+ readonly corpusDir?: string;
62
+ readonly outputPath?: string;
63
+ }): Promise<SkillBenchmarkReport>;
64
+ export declare function printReport(report: SkillBenchmarkReport): void;
65
+ export {};
66
+ //# sourceMappingURL=skill-benchmark.d.ts.map